<?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>46610</bug_id>
          
          <creation_ts>2010-09-27 00:22:47 -0700</creation_ts>
          <short_desc>Implement getParameter from the URL API</short_desc>
          <delta_ts>2011-11-08 13:26:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>285354</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-27 00:22:47 -0700</bug_when>
    <thetext>Implement getParameter from the URL API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285355</commentid>
    <comment_count>1</comment_count>
      <attachid>68884</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-27 00:26:44 -0700</bug_when>
    <thetext>Created attachment 68884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285379</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-27 02:37:57 -0700</bug_when>
    <thetext>Attachment 68884 did not build on chromium:
Build output: http://queues.webkit.org/results/4005163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285519</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-27 10:02:51 -0700</bug_when>
    <thetext>Hum...  Looks like I need a GURL implementation of the KURL part of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286042</commentid>
    <comment_count>4</comment_count>
      <attachid>69017</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-27 21:10:54 -0700</bug_when>
    <thetext>Created attachment 69017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286043</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-27 21:11:13 -0700</bug_when>
    <thetext>Duplicated code for GURL =&gt; sadness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292223</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-09 15:58:52 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Duplicated code for GURL =&gt; sadness.

It seems the two implementations of copyParsedQueryTo() simply differ in their initialization of pos and end.

Could we use a similar approach to ScriptControllerBase for KURL? That is, add a header and implementation file called KURLBase.h and KURLBase.cpp and extract the common code from the KURL and KURLGoogle files into a private function, say copyParsedQueryTo(ParsedURLParameters&amp;, const UChar* startPosOfQueryString, const UChar* endPosOfQueryString). Then have KURL.h include KURLBase.h and have each implementation of the one-argument public variant of copyParsedQueryTo call the common private routine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292225</commentid>
    <comment_count>7</comment_count>
      <attachid>69017</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-09 16:28:04 -0700</bug_when>
    <thetext>Comment on attachment 69017
Patch

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

&gt; WebCore/ChangeLog:29
&gt; +        * html/HTMLAnchorElement.cpp:
&gt; +        (WebCore::HTMLAnchorElement::getParameter):
&gt; +        * html/HTMLAnchorElement.h:
&gt; +        * html/HTMLAnchorElement.idl:
&gt; +        * page/Location.cpp:
&gt; +        (WebCore::Location::getParameter):
&gt; +        * page/Location.h:
&gt; +        * page/Location.idl:
&gt; +        * platform/KURL.cpp:
&gt; +        (WebCore::KURL::copyParsedQueryTo):
&gt; +        * platform/KURLGoogle.cpp:
&gt; +        (WebCore::KURL::copyParsedQueryTo):
&gt; +        * platform/KURL.h:

For your consideration, I would suggest using the space to the right of the &apos;:&apos;  in each entry above to remark on which methods were added by this patch.

&gt; LayoutTests/fast/dom/anchor-getParameter.html:31
&gt; +for (var i = 0; i &lt; cases.length; ++i)
&gt; +    document.write(&apos;&lt;a href=&quot;&apos; + cases[i][0] + &apos;&quot;&gt;Link&lt;/a&gt;&lt;br&gt;&apos;);

Could we hide the output of this so that the text results don&apos;t show a long list of the word &quot;Link&quot;? For instance, we could enclose the output within a &lt;div id=&quot;test-container&quot;&gt;&lt;/div&gt;, which we remove from the DOM before the of the &lt;script&gt;. If you see value in keeping such a list of hyperlinks, say for inspecting when running this test by hand, then could we just hide this output when the test is run with DRT?

&gt; LayoutTests/fast/dom/anchor-getParameter.html:38
&gt; +&lt;/html&gt;

Is there a reason why you chose not to use fast/js/resources/js-test-pre.js, inline the expected results, and make this a PASS/FAIL test? I see the benefit of the verbose output (i.e. A =&gt; B) and we could make the PASS/FAIL message include similar verbose output so as to add context to the PASS/FAIL text results should a human read them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293664</commentid>
    <comment_count>8</comment_count>
      <attachid>69017</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-13 13:16:24 -0700</bug_when>
    <thetext>Comment on attachment 69017
Patch

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

Thanks, looks good. I didn’t set commit-queue+ -- I’ll let you make the call on that.

&gt; WebCore/platform/KURL.cpp:624
&gt; +        const UChar* parameterBegin = pos;

I’d prefer the noun “start” to the verb “begin” for the name here.

&gt; WebCore/platform/KURL.cpp:634
&gt; +        const UChar* nameBegin = parameterBegin;

And here.

&gt; WebCore/platform/KURL.cpp:640
&gt; +        String name(nameBegin, equalSign - nameBegin);
&gt; +        if (name.isEmpty())
&gt; +            continue;

Might be slightly cleaner to do the empty check by checking if equalSign == nameBegin rather than constructing the string first.

&gt; WebCore/platform/KURL.h:63
&gt; +typedef WTF::HashMap&lt;String, String&gt; ParsedURLParameters;

No need for the WTF:: prefix here.

&gt; WebCore/platform/KURL.h:139
&gt; +    void copyParsedQueryTo(ParsedURLParameters&amp; parameters) const;

No need for the argument name “parameters” here.

&gt; WebCore/platform/KURLGoogle.cpp:556
&gt; +    String query = m_url.componentString(m_url.m_parsed.query);
&gt; +    const UChar* pos = query.characters();
&gt; +    const UChar* end = query.characters() + query.length();

Too bad we have two copies of this given that almost all the code is identical.

&gt;&gt; LayoutTests/fast/dom/anchor-getParameter.html:38
&gt;&gt; +&lt;/html&gt;
&gt; 
&gt; Is there a reason why you chose not to use fast/js/resources/js-test-pre.js, inline the expected results, and make this a PASS/FAIL test? I see the benefit of the verbose output (i.e. A =&gt; B) and we could make the PASS/FAIL message include similar verbose output so as to add context to the PASS/FAIL text results should a human read them.

I agree with Daniel. I’d go further and say that a script-tests style test would be even better than the test here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293727</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-13 14:43:42 -0700</bug_when>
    <thetext>Thanks for the reviews.  I&apos;ve applied all of your suggestions except converting the test to a script-test.  I&apos;m not a big fan of the script-test framework, but I&apos;ll use it for these patches in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293729</commentid>
    <comment_count>10</comment_count>
      <attachid>70666</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-13 14:44:57 -0700</bug_when>
    <thetext>Created attachment 70666
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293912</commentid>
    <comment_count>11</comment_count>
      <attachid>70666</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-13 19:52:24 -0700</bug_when>
    <thetext>Comment on attachment 70666
Patch for landing

Rejecting patch 70666 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
.
Files=14, Tests=304,  3 wallclock secs ( 0.10 usr  0.07 sys +  0.65 cusr  0.20 csys =  1.02 CPU)
Result: PASS
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 21249 test cases.
fast/dom/Window/window-appendages-cleared.html -&gt; failed

Exiting early after 1 failures. 6976 tests run.
210.34s total testing time

6975 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout

Full output: http://queues.webkit.org/results/4455017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294007</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-14 01:02:35 -0700</bug_when>
    <thetext>Committed r69749: &lt;http://trac.webkit.org/changeset/69749&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294017</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-14 01:53:20 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/69749 might have broken Qt Linux Release
The following tests are not passing:
fast/dom/Window/window-properties.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294026</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-10-14 02:24:28 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; http://trac.webkit.org/changeset/69749 might have broken Qt Linux Release
&gt; The following tests are not passing:
&gt; fast/dom/Window/window-properties.html

Qt specific expected file updated: http://trac.webkit.org/changeset/69754</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294308</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-14 13:20:25 -0700</bug_when>
    <thetext>&gt; Qt specific expected file updated: http://trac.webkit.org/changeset/69754

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68884</attachid>
            <date>2010-09-27 00:26:44 -0700</date>
            <delta_ts>2010-09-27 21:10:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46610-20100927002643.patch</filename>
            <type>text/plain</type>
            <size>11218</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODM3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDktMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgZ2V0UGFyYW1ldGVyIGZyb20gdGhlIFVSTCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NjEwCisKKyAgICAgICAgQW5vdGhlciBBUEkg
ZnJvbQorICAgICAgICBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9lZGl0P2lkPTFy
X1ZURktBcFZPYU5Ja29jcmcwei10N2xaZ3ppc1R1R1RYa2R6QWs0Z0xVJmhsPWVuIworICAgICAg
ICBnZXRQYXJhbWV0ZXIgbGV0cyBhIHdlYiBzaXRlIGVhc2lseSByZWFkIHRoZSB2YWx1ZSBvZiBh
IFVSTCBwYXJhbWV0ZXIuCisgICAgICAgIFRoaXMgQVBJIGlzIGZvciB0aGUgc2ltcGxlIGNhc2Ug
b2YgYSBub24tcmVwZWF0ZWQgcGFyYW1ldGVyIG5hbWUuCisgICAgICAgIGdldFBhcmFtZXRlckFs
bCB3aWxsIGhhbmRsZSByZXBlYXRlZCBwYXJhbWV0ZXIgbmFtZXMgaW4gYSBmdXR1cmUgcGF0Y2gu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXIuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBhcmFtZXRlci5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxBbmNob3JFbGVtZW50OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBwYWdlL0xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2F0aW9uOjpn
ZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIHBhZ2UvTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWdl
L0xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OktVUkw6OmNvcHlQYXJzZWRRdWVyeVRvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJM
Lmg6CisKIDIwMTAtMDktMjYgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcAkocmV2aXNpb24gNjgzNTYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsNiArNDQ4LDEzIEBAIFN0cmluZyBI
VE1MQW5jaG9yRWxlbWVudDo6b3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gb3JpZ2luLT50b1N0
cmluZygpOwogfQogCitTdHJpbmcgSFRNTEFuY2hvckVsZW1lbnQ6OmdldFBhcmFtZXRlcihjb25z
dCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgUGFyc2VkVVJMUGFyYW1ldGVycyBwYXJhbWV0
ZXJzOworICAgIGhyZWYoKS5jb3B5UGFyc2VkUXVlcnlUbyhwYXJhbWV0ZXJzKTsKKyAgICByZXR1
cm4gcGFyYW1ldGVycy5nZXQobmFtZSk7Cit9CisKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNl
dFNlYXJjaChjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIEtVUkwgdXJsID0gaHJlZigpOwpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHJldmlzaW9uIDY4MzU2KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDgg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0OwogCisgICAgU3RyaW5nIGdl
dFBhcmFtZXRlcihjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIFN0cmluZyB0ZXh0KCkgY29u
c3Q7CiAKICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmlkbAkocmV2aXNpb24gNjgzNTYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIG9yaWdpbjsKICNlbmRpZgogCisgICAgICAgIERPTVN0cmluZyBnZXRQYXJhbWV0
ZXIoaW4gRE9NU3RyaW5nIG5hbWUpOworCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdGV4dDsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VB
R0VfSkFWQVNDUklQVApJbmRleDogV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwCShyZXZpc2lvbiA2ODM1NikKKysrIFdlYkNv
cmUvcGFnZS9Mb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsMTYgQEAg
U3RyaW5nIExvY2F0aW9uOjpoYXNoKCkgY29uc3QKICAgICByZXR1cm4gZnJhZ21lbnRJZGVudGlm
aWVyLmlzRW1wdHkoKSA/ICIiIDogIiMiICsgZnJhZ21lbnRJZGVudGlmaWVyOwogfQogCitTdHJp
bmcgTG9jYXRpb246OmdldFBhcmFtZXRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBQYXJzZWRV
UkxQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgdXJsKCkuY29weVBhcnNlZFF1ZXJ5VG8ocGFy
YW1ldGVycyk7CisgICAgcmV0dXJuIHBhcmFtZXRlcnMuZ2V0KG5hbWUpOworfQorCiBTdHJpbmcg
TG9jYXRpb246OnRvU3RyaW5nKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTG9jYXRp
b24uaAkocmV2aXNpb24gNjgzNTYpCisrKyBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksNiArNTksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAKKyAgICAgICAgU3RyaW5nIGdldFBhcmFtZXRlcihj
b25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIExvY2F0aW9uKEZy
YW1lKik7CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAkocmV2aXNpb24gNjgzNTYpCisrKyBXZWJDb3JlL3Bh
Z2UvTG9jYXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG9y
aWdpbjsKICNlbmRpZgogCisgICAgICAgIERPTVN0cmluZyBnZXRQYXJhbWV0ZXIoaW4gRE9NU3Ry
aW5nIG5hbWUpOworCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFH
RV9KQVZBU0NSSVBUCiAgICAgICAgIFtEb250RW51bSwgQ3VzdG9tLCBWOE9uSW5zdGFuY2UsIFY4
UmVhZE9ubHldIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL0tVUkwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAJ
KHJldmlzaW9uIDY4MzU2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjE2LDYgKzYxNiwzMyBAQCBib29sIEtVUkw6Omhhc0ZyYWdtZW50SWRlbnRpZmll
cigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhZ21lbnRFbmQgIT0gbV9xdWVyeUVuZDsKIH0KIAor
dm9pZCBLVVJMOjpjb3B5UGFyc2VkUXVlcnlUbyhQYXJzZWRVUkxQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKSBjb25zdAoreworICAgIGNvbnN0IFVDaGFyKiBwb3MgPSBtX3N0cmluZy5jaGFyYWN0ZXJz
KCkgKyBtX3BhdGhFbmQgKyAxOworICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBtX3N0cmluZy5jaGFy
YWN0ZXJzKCkgKyBtX3F1ZXJ5RW5kOworICAgIHdoaWxlIChwb3MgPCBlbmQpIHsKKyAgICAgICAg
Y29uc3QgVUNoYXIqIHBhcmFtZXRlckJlZ2luID0gcG9zOworICAgICAgICB3aGlsZSAocG9zIDwg
ZW5kICYmICpwb3MgIT0gJyYnKQorICAgICAgICAgICAgKytwb3M7CisgICAgICAgIGNvbnN0IFVD
aGFyKiBwYXJhbWV0ZXJFbmQgPSBwb3M7CisgICAgICAgIGlmIChwb3MgPCBlbmQpIHsKKyAgICAg
ICAgICAgIEFTU0VSVCgqcG9zID09ICcmJyk7CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAg
fQorICAgICAgICBpZiAocGFyYW1ldGVyQmVnaW4gPT0gcGFyYW1ldGVyRW5kKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGNvbnN0IFVDaGFyKiBuYW1lQmVnaW4gPSBwYXJhbWV0ZXJC
ZWdpbjsKKyAgICAgICAgY29uc3QgVUNoYXIqIGVxdWFsU2lnbiA9IHBhcmFtZXRlckJlZ2luOwor
ICAgICAgICB3aGlsZSAoZXF1YWxTaWduIDwgcGFyYW1ldGVyRW5kICYmICplcXVhbFNpZ24gIT0g
Jz0nKQorICAgICAgICAgICAgKytlcXVhbFNpZ247CisgICAgICAgIFN0cmluZyBuYW1lKG5hbWVC
ZWdpbiwgZXF1YWxTaWduIC0gbmFtZUJlZ2luKTsKKyAgICAgICAgaWYgKG5hbWUuaXNFbXB0eSgp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IGVxdWFsU2ln
biA9PSBwYXJhbWV0ZXJFbmQgPyBTdHJpbmcoKSA6IFN0cmluZyhlcXVhbFNpZ24gKyAxLCBwYXJh
bWV0ZXJFbmQgLSBlcXVhbFNpZ24gLSAxKTsKKyAgICAgICAgcGFyYW1ldGVycy5zZXQobmFtZSwg
dmFsdWUpOworICAgIH0KK30KKwogU3RyaW5nIEtVUkw6OmJhc2VBc1N0cmluZygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fc3RyaW5nLmxlZnQobV9wYXRoQWZ0ZXJMYXN0U2xhc2gpOwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9L
VVJMLmgJKHJldmlzaW9uIDY4MzU2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgS1VSTF9oCiAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKICNpZiBQTEFURk9S
TShDRikKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkwqIENGVVJMUmVmOwpAQCAtNTksNiAr
NjAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0RW5jb2Rpbmc7CiBzdHJ1Y3Qg
S1VSTEhhc2g7CiAKK3R5cGVkZWYgV1RGOjpIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBQYXJzZWRV
UkxQYXJhbWV0ZXJzOworCiBlbnVtIFBhcnNlZFVSTFN0cmluZ1RhZyB7IFBhcnNlZFVSTFN0cmlu
ZyB9OwogCiBjbGFzcyBLVVJMIHsKQEAgLTEzMyw2ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIGZyYWdtZW50SWRlbnRpZmllcigpIGNvbnN0OwogICAgIGJvb2wgaGFzRnJhZ21lbnRJZGVu
dGlmaWVyKCkgY29uc3Q7CiAKKyAgICB2b2lkIGNvcHlQYXJzZWRRdWVyeVRvKFBhcnNlZFVSTFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpIGNvbnN0OworCiAgICAgU3RyaW5nIGJhc2VBc1N0cmluZygp
IGNvbnN0OwogCiAgICAgU3RyaW5nIHByZXR0eVVSTCgpIGNvbnN0OwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjgzNzQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNyBAQAorMjAxMC0wOS0yNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCBnZXRQYXJhbWV0ZXIgZnJvbSB0aGUgVVJMIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY2MTAKKworICAgICAgICBUZXN0IHZhcmlvdXMgaW50
ZXJlc3RpbmcgY2FzZXMgaW4gcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vYW5jaG9yLWdldFBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBhcmFtZXRlci5odG1sOiBBZGRlZC4K
KwogMjAxMC0wOS0yNiAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vYW5jaG9yLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vYW5jaG9yLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorTGluaworTGluaworTGluaworTGlu
aworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGluawor
TGluaworTGluaworTGluaworTGluaworTGluaworTGluaworaHR0cDovL2V4YW1wbGUuY29tL2Zv
by9iYXI/YT1iIChhKSA9PiBiCitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hYmM9eHkgKGFi
YykgPT4geHkKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkgKGEpID0+IHgKK2h0
dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkgKGIpID0+IHkKK2h0dHA6Ly9leGFtcGxl
LmNvbS9mb28vYmFyP2E9eCZhPXkgKGEpID0+IHkKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFy
P2E9eCZhPXkmYT16IChhKSA9PiB6CitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPXgmQT15
JmE9eiAoQSkgPT4geQoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/MTIxPSAoMTIxKSA9PiAK
K2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2EmIChhKSA9PiAKK2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28vYmFyP2EgKGEpID0+IAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/PWEmIChhKSA9
PiAKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9Yj1jIChhKSA9PiBiPWMKK2h0dHA6Ly9l
eGFtcGxlLmNvbS9mb28vYmFyP2E9Yj1jIChiKSA9PiAKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28v
YmFyP2E9Yj0mIChhKSA9PiBiPQoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1iPSYgKGIp
ID0+IAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiAoYSkgPT4gYgoraHR0cDovL2V4
YW1wbGUuY29tL2Zvby9iYXI/JmE9YiYgKGEpID0+IGIKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28v
YmFyP2E9YiN4eXogKGEpID0+IGIKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyPyNhPWIlMjN4
eXogKGEpID0+IAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1l
dGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5jaG9yLWdldFBh
cmFtZXRlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5jaG9y
LWdldFBhcmFtZXRlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3Zh
ciBjYXNlcyA9IFsKKyAgICBbImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9YiIsICdhJ10s
CisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hYmM9eHkiLCAnYWJjJ10sCisgICAg
WyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPXgmYj15IiwgJ2EnXSwKKyAgICBbImh0dHA6
Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkiLCAnYiddLAorICAgIFsiaHR0cDovL2V4YW1w
bGUuY29tL2Zvby9iYXI/YT14JmE9eSIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20v
Zm9vL2Jhcj9hPXgmYT15JmE9eiIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9v
L2Jhcj9hPXgmQT15JmE9eiIsICdBJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jh
cj8xMjE9IiwgJzEyMSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YSYiLCAn
YSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YSIsICdhJ10sCisgICAgWyJo
dHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj89YSYiLCAnYSddLAorICAgIFsiaHR0cDovL2V4YW1w
bGUuY29tL2Zvby9iYXI/YT1iPWMiLCAnYSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zv
by9iYXI/YT1iPWMiLCAnYiddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1i
PSYiLCAnYSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1iPSYiLCAnYidd
LAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiIsICdhJ10sCisgICAgWyJo
dHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iJiIsICdhJ10sCisgICAgWyJodHRwOi8vZXhh
bXBsZS5jb20vZm9vL2Jhcj9hPWIjeHl6IiwgJ2EnXSwKKyAgICBbImh0dHA6Ly9leGFtcGxlLmNv
bS9mb28vYmFyPyNhPWIjeHl6IiwgJ2EnXQorXTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCBjYXNl
cy5sZW5ndGg7ICsraSkKKyAgICBkb2N1bWVudC53cml0ZSgnPGEgaHJlZj0iJyArIGNhc2VzW2ld
WzBdICsgJyI+TGluazwvYT48YnI+Jyk7CisKK3ZhciBlbG10cyA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdhJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IGVsbXRzLmxlbmd0aDsgKytp
KQorICAgIGRvY3VtZW50LndyaXRlKGVsbXRzW2ldLmhyZWYgKyAnICgnICsgY2FzZXNbaV1bMV0g
KyAnKSA9PiAnICsgZWxtdHNbaV0uZ2V0UGFyYW1ldGVyKGNhc2VzW2ldWzFdKSArICc8YnI+Jyk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9sb2NhdGlvbi1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9sb2NhdGlvbi1nZXRQYXJhbWV0ZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xvY2F0
aW9uLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBA
QAorCitiCitkCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9sb2NhdGlvbi1n
ZXRQYXJhbWV0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTYgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworaWYgKHRvcCA9
PT0gc2VsZikgeworICAgIGRvY3VtZW50LndyaXRlKCc8aWZyYW1lIHNyYz0iJysgbG9jYXRpb24g
KyAnP2E9YiZjPWQjdHR0Ij48L2lmcmFtZT4nKTsKKworICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5l
ckhUTUwgPSAKKyAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLmdldFBhcmFtZXRlcignYScpICsg
Jzxicj4nICsKKyAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLmdldFBhcmFtZXRlcignYycpICsg
Jzxicj4nICsKKyAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLmdldFBhcmFtZXRlcignZCcpOwor
ICAgIH0KK30KKzwvc2NyaXB0PgorPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69017</attachid>
            <date>2010-09-27 21:10:54 -0700</date>
            <delta_ts>2010-10-13 14:44:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46610-20100927211053.patch</filename>
            <type>text/plain</type>
            <size>12760</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODQwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDktMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgZ2V0UGFyYW1ldGVyIGZyb20gdGhlIFVSTCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NjEwCisKKyAgICAgICAgQW5vdGhlciBBUEkg
ZnJvbQorICAgICAgICBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9lZGl0P2lkPTFy
X1ZURktBcFZPYU5Ja29jcmcwei10N2xaZ3ppc1R1R1RYa2R6QWs0Z0xVJmhsPWVuIworICAgICAg
ICBnZXRQYXJhbWV0ZXIgbGV0cyBhIHdlYiBzaXRlIGVhc2lseSByZWFkIHRoZSB2YWx1ZSBvZiBh
IFVSTCBwYXJhbWV0ZXIuCisgICAgICAgIFRoaXMgQVBJIGlzIGZvciB0aGUgc2ltcGxlIGNhc2Ug
b2YgYSBub24tcmVwZWF0ZWQgcGFyYW1ldGVyIG5hbWUuCisgICAgICAgIGdldFBhcmFtZXRlckFs
bCB3aWxsIGhhbmRsZSByZXBlYXRlZCBwYXJhbWV0ZXIgbmFtZXMgaW4gYSBmdXR1cmUgcGF0Y2gu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXIuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBhcmFtZXRlci5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxBbmNob3JFbGVtZW50OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBwYWdlL0xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2F0aW9uOjpn
ZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIHBhZ2UvTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWdl
L0xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OktVUkw6OmNvcHlQYXJzZWRRdWVyeVRvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJM
R29vZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OmNvcHlQYXJzZWRRdWVyeVRvKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9LVVJMLmg6CisKIDIwMTAtMDktMjcgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBS
b2JpbnNvbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNpb24gNjg0
MDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NDgsNiArNDQ4LDEzIEBAIFN0cmluZyBIVE1MQW5jaG9yRWxlbWVudDo6b3JpZ2luKCkg
Y29uc3QKICAgICByZXR1cm4gb3JpZ2luLT50b1N0cmluZygpOwogfQogCitTdHJpbmcgSFRNTEFu
Y2hvckVsZW1lbnQ6OmdldFBhcmFtZXRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7Cisg
ICAgUGFyc2VkVVJMUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIGhyZWYoKS5jb3B5UGFyc2Vk
UXVlcnlUbyhwYXJhbWV0ZXJzKTsKKyAgICByZXR1cm4gcGFyYW1ldGVycy5nZXQobmFtZSk7Cit9
CisKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldFNlYXJjaChjb25zdCBTdHJpbmcmIHZhbHVl
KQogewogICAgIEtVUkwgdXJsID0gaHJlZigpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmgJKHJldmlzaW9uIDY4NDA1KQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIG9y
aWdpbigpIGNvbnN0OwogCisgICAgU3RyaW5nIGdldFBhcmFtZXRlcihjb25zdCBTdHJpbmcmKSBj
b25zdDsKKwogICAgIFN0cmluZyB0ZXh0KCkgY29uc3Q7CiAKICAgICBTdHJpbmcgdG9TdHJpbmco
KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkocmV2aXNpb24gNjg0
MDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw2ICs1Myw4IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG9yaWdpbjsKICNlbmRpZgog
CisgICAgICAgIERPTVN0cmluZyBnZXRQYXJhbWV0ZXIoaW4gRE9NU3RyaW5nIG5hbWUpOworCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKIAogI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVApJbmRleDogV2ViQ29y
ZS9wYWdlL0xvY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTG9jYXRpb24u
Y3BwCShyZXZpc2lvbiA2ODQwNSkKKysrIFdlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzOCw2ICsxMzgsMTYgQEAgU3RyaW5nIExvY2F0aW9uOjpoYXNoKCkgY29u
c3QKICAgICByZXR1cm4gZnJhZ21lbnRJZGVudGlmaWVyLmlzRW1wdHkoKSA/ICIiIDogIiMiICsg
ZnJhZ21lbnRJZGVudGlmaWVyOwogfQogCitTdHJpbmcgTG9jYXRpb246OmdldFBhcmFtZXRlcihj
b25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisKKyAgICBQYXJzZWRVUkxQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Cisg
ICAgdXJsKCkuY29weVBhcnNlZFF1ZXJ5VG8ocGFyYW1ldGVycyk7CisgICAgcmV0dXJuIHBhcmFt
ZXRlcnMuZ2V0KG5hbWUpOworfQorCiBTdHJpbmcgTG9jYXRpb246OnRvU3RyaW5nKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fZnJhbWUpCkluZGV4OiBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAkocmV2aXNpb24gNjg0MDUpCisrKyBX
ZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAK
KyAgICAgICAgU3RyaW5nIGdldFBhcmFtZXRlcihjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAg
IHByaXZhdGU6CiAgICAgICAgIExvY2F0aW9uKEZyYW1lKik7CiAKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9Mb2NhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAko
cmV2aXNpb24gNjg0MDUpCisrKyBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC02Miw2ICs2Miw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAgICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG9yaWdpbjsKICNlbmRpZgogCisgICAgICAgIERP
TVN0cmluZyBnZXRQYXJhbWV0ZXIoaW4gRE9NU3RyaW5nIG5hbWUpOworCiAjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIFtEb250
RW51bSwgQ3VzdG9tLCBWOE9uSW5zdGFuY2UsIFY4UmVhZE9ubHldIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAJKHJldmlzaW9uIDY4NDA1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9LVVJMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjE2LDYgKzYxNiwzMyBAQCBi
b29sIEtVUkw6Omhhc0ZyYWdtZW50SWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJh
Z21lbnRFbmQgIT0gbV9xdWVyeUVuZDsKIH0KIAordm9pZCBLVVJMOjpjb3B5UGFyc2VkUXVlcnlU
byhQYXJzZWRVUkxQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKSBjb25zdAoreworICAgIGNvbnN0IFVD
aGFyKiBwb3MgPSBtX3N0cmluZy5jaGFyYWN0ZXJzKCkgKyBtX3BhdGhFbmQgKyAxOworICAgIGNv
bnN0IFVDaGFyKiBlbmQgPSBtX3N0cmluZy5jaGFyYWN0ZXJzKCkgKyBtX3F1ZXJ5RW5kOworICAg
IHdoaWxlIChwb3MgPCBlbmQpIHsKKyAgICAgICAgY29uc3QgVUNoYXIqIHBhcmFtZXRlckJlZ2lu
ID0gcG9zOworICAgICAgICB3aGlsZSAocG9zIDwgZW5kICYmICpwb3MgIT0gJyYnKQorICAgICAg
ICAgICAgKytwb3M7CisgICAgICAgIGNvbnN0IFVDaGFyKiBwYXJhbWV0ZXJFbmQgPSBwb3M7Cisg
ICAgICAgIGlmIChwb3MgPCBlbmQpIHsKKyAgICAgICAgICAgIEFTU0VSVCgqcG9zID09ICcmJyk7
CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAgfQorICAgICAgICBpZiAocGFyYW1ldGVyQmVn
aW4gPT0gcGFyYW1ldGVyRW5kKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnN0
IFVDaGFyKiBuYW1lQmVnaW4gPSBwYXJhbWV0ZXJCZWdpbjsKKyAgICAgICAgY29uc3QgVUNoYXIq
IGVxdWFsU2lnbiA9IHBhcmFtZXRlckJlZ2luOworICAgICAgICB3aGlsZSAoZXF1YWxTaWduIDwg
cGFyYW1ldGVyRW5kICYmICplcXVhbFNpZ24gIT0gJz0nKQorICAgICAgICAgICAgKytlcXVhbFNp
Z247CisgICAgICAgIFN0cmluZyBuYW1lKG5hbWVCZWdpbiwgZXF1YWxTaWduIC0gbmFtZUJlZ2lu
KTsKKyAgICAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIFN0cmluZyB2YWx1ZSA9IGVxdWFsU2lnbiA9PSBwYXJhbWV0ZXJFbmQgPyBTdHJpbmco
KSA6IFN0cmluZyhlcXVhbFNpZ24gKyAxLCBwYXJhbWV0ZXJFbmQgLSBlcXVhbFNpZ24gLSAxKTsK
KyAgICAgICAgcGFyYW1ldGVycy5zZXQobmFtZSwgdmFsdWUpOworICAgIH0KK30KKwogU3RyaW5n
IEtVUkw6OmJhc2VBc1N0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3RyaW5nLmxlZnQo
bV9wYXRoQWZ0ZXJMYXN0U2xhc2gpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgJKHJldmlzaW9uIDY4NDA1KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAK
ICNkZWZpbmUgS1VSTF9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAKICNpZiBQTEFURk9STShDRikKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IF9fQ0ZVUkwqIENGVVJMUmVmOwpAQCAtNTksNiArNjAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBUZXh0RW5jb2Rpbmc7CiBzdHJ1Y3QgS1VSTEhhc2g7CiAKK3R5cGVkZWYgV1RGOjpI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBQYXJzZWRVUkxQYXJhbWV0ZXJzOworCiBlbnVtIFBhcnNl
ZFVSTFN0cmluZ1RhZyB7IFBhcnNlZFVSTFN0cmluZyB9OwogCiBjbGFzcyBLVVJMIHsKQEAgLTEz
Myw2ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGZyYWdtZW50SWRlbnRpZmllcigpIGNv
bnN0OwogICAgIGJvb2wgaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkgY29uc3Q7CiAKKyAgICB2b2lk
IGNvcHlQYXJzZWRRdWVyeVRvKFBhcnNlZFVSTFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpIGNvbnN0
OworCiAgICAgU3RyaW5nIGJhc2VBc1N0cmluZygpIGNvbnN0OwogCiAgICAgU3RyaW5nIHByZXR0
eVVSTCgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwCShyZXZpc2lvbiA2ODQw
NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vS1VSTEdvb2dsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU0OSw2ICs1NDksMzQgQEAgYm9vbCBLVVJMOjpoYXNGcmFnbWVudElkZW50aWZpZXIoKSBjb25z
dAogICAgIHJldHVybiBtX3VybC5tX3BhcnNlZC5yZWYubGVuID49IDA7CiB9CiAKK3ZvaWQgS1VS
TDo6Y29weVBhcnNlZFF1ZXJ5VG8oUGFyc2VkVVJMUGFyYW1ldGVycyYgcGFyYW1ldGVycykgY29u
c3QKK3sKKyAgICBTdHJpbmcgcXVlcnkgPSBtX3VybC5jb21wb25lbnRTdHJpbmcobV91cmwubV9w
YXJzZWQucXVlcnkpOworICAgIGNvbnN0IFVDaGFyKiBwb3MgPSBxdWVyeS5jaGFyYWN0ZXJzKCk7
CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IHF1ZXJ5LmNoYXJhY3RlcnMoKSArIHF1ZXJ5Lmxlbmd0
aCgpOworICAgIHdoaWxlIChwb3MgPCBlbmQpIHsKKyAgICAgICAgY29uc3QgVUNoYXIqIHBhcmFt
ZXRlckJlZ2luID0gcG9zOworICAgICAgICB3aGlsZSAocG9zIDwgZW5kICYmICpwb3MgIT0gJyYn
KQorICAgICAgICAgICAgKytwb3M7CisgICAgICAgIGNvbnN0IFVDaGFyKiBwYXJhbWV0ZXJFbmQg
PSBwb3M7CisgICAgICAgIGlmIChwb3MgPCBlbmQpIHsKKyAgICAgICAgICAgIEFTU0VSVCgqcG9z
ID09ICcmJyk7CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAgfQorICAgICAgICBpZiAocGFy
YW1ldGVyQmVnaW4gPT0gcGFyYW1ldGVyRW5kKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGNvbnN0IFVDaGFyKiBuYW1lQmVnaW4gPSBwYXJhbWV0ZXJCZWdpbjsKKyAgICAgICAgY29u
c3QgVUNoYXIqIGVxdWFsU2lnbiA9IHBhcmFtZXRlckJlZ2luOworICAgICAgICB3aGlsZSAoZXF1
YWxTaWduIDwgcGFyYW1ldGVyRW5kICYmICplcXVhbFNpZ24gIT0gJz0nKQorICAgICAgICAgICAg
KytlcXVhbFNpZ247CisgICAgICAgIFN0cmluZyBuYW1lKG5hbWVCZWdpbiwgZXF1YWxTaWduIC0g
bmFtZUJlZ2luKTsKKyAgICAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IGVxdWFsU2lnbiA9PSBwYXJhbWV0ZXJFbmQg
PyBTdHJpbmcoKSA6IFN0cmluZyhlcXVhbFNpZ24gKyAxLCBwYXJhbWV0ZXJFbmQgLSBlcXVhbFNp
Z24gLSAxKTsKKyAgICAgICAgcGFyYW1ldGVycy5zZXQobmFtZSwgdmFsdWUpOworICAgIH0KK30K
KwogU3RyaW5nIEtVUkw6OmJhc2VBc1N0cmluZygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRo
ZXJlIGlzIHByb2JhYmx5IGEgbW9yZSBlZmZpY2llbnQgd2F5IHRvIGRvIHRoaXM/CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODQwNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA5LTI3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IGdldFBhcmFtZXRlciBmcm9tIHRoZSBVUkwgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjYxMAorCisgICAgICAgIFRlc3QgdmFy
aW91cyBpbnRlcmVzdGluZyBjYXNlcyBpbiBwYXJhbWV0ZXIgcGFyc2luZy4KKworICAgICAgICAq
IGZhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy9sb2NhdGlvbi1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLmh0bWw6
IEFkZGVkLgorCiAyMDEwLTA5LTE0ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vYW5jaG9yLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vYW5jaG9yLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorTGluaworTGluaworTGluawor
TGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworTGlu
aworTGluaworTGluaworTGluaworTGluaworTGluaworTGluaworaHR0cDovL2V4YW1wbGUuY29t
L2Zvby9iYXI/YT1iIChhKSA9PiBiCitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hYmM9eHkg
KGFiYykgPT4geHkKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkgKGEpID0+IHgK
K2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkgKGIpID0+IHkKK2h0dHA6Ly9leGFt
cGxlLmNvbS9mb28vYmFyP2E9eCZhPXkgKGEpID0+IHkKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28v
YmFyP2E9eCZhPXkmYT16IChhKSA9PiB6CitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPXgm
QT15JmE9eiAoQSkgPT4geQoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/MTIxPSAoMTIxKSA9
PiAKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2EmIChhKSA9PiAKK2h0dHA6Ly9leGFtcGxl
LmNvbS9mb28vYmFyP2EgKGEpID0+IAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/PWEmIChh
KSA9PiAKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9Yj1jIChhKSA9PiBiPWMKK2h0dHA6
Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9Yj1jIChiKSA9PiAKK2h0dHA6Ly9leGFtcGxlLmNvbS9m
b28vYmFyP2E9Yj0mIChhKSA9PiBiPQoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1iPSYg
KGIpID0+IAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiAoYSkgPT4gYgoraHR0cDov
L2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiYgKGEpID0+IGIKK2h0dHA6Ly9leGFtcGxlLmNvbS9m
b28vYmFyP2E9YiN4eXogKGEpID0+IGIKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyPyNhPWIl
MjN4eXogKGEpID0+IAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFy
YW1ldGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5jaG9yLWdl
dFBhcmFtZXRlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5j
aG9yLWdldFBhcmFtZXRlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
K3ZhciBjYXNlcyA9IFsKKyAgICBbImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9YiIsICdh
J10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hYmM9eHkiLCAnYWJjJ10sCisg
ICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPXgmYj15IiwgJ2EnXSwKKyAgICBbImh0
dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkiLCAnYiddLAorICAgIFsiaHR0cDovL2V4
YW1wbGUuY29tL2Zvby9iYXI/YT14JmE9eSIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5j
b20vZm9vL2Jhcj9hPXgmYT15JmE9eiIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20v
Zm9vL2Jhcj9hPXgmQT15JmE9eiIsICdBJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9v
L2Jhcj8xMjE9IiwgJzEyMSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YSYi
LCAnYSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YSIsICdhJ10sCisgICAg
WyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj89YSYiLCAnYSddLAorICAgIFsiaHR0cDovL2V4
YW1wbGUuY29tL2Zvby9iYXI/YT1iPWMiLCAnYSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29t
L2Zvby9iYXI/YT1iPWMiLCAnYiddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/
YT1iPSYiLCAnYSddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1iPSYiLCAn
YiddLAorICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiIsICdhJ10sCisgICAg
WyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iJiIsICdhJ10sCisgICAgWyJodHRwOi8v
ZXhhbXBsZS5jb20vZm9vL2Jhcj9hPWIjeHl6IiwgJ2EnXSwKKyAgICBbImh0dHA6Ly9leGFtcGxl
LmNvbS9mb28vYmFyPyNhPWIjeHl6IiwgJ2EnXQorXTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCBj
YXNlcy5sZW5ndGg7ICsraSkKKyAgICBkb2N1bWVudC53cml0ZSgnPGEgaHJlZj0iJyArIGNhc2Vz
W2ldWzBdICsgJyI+TGluazwvYT48YnI+Jyk7CisKK3ZhciBlbG10cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdhJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IGVsbXRzLmxlbmd0aDsg
KytpKQorICAgIGRvY3VtZW50LndyaXRlKGVsbXRzW2ldLmhyZWYgKyAnICgnICsgY2FzZXNbaV1b
MV0gKyAnKSA9PiAnICsgZWxtdHNbaV0uZ2V0UGFyYW1ldGVyKGNhc2VzW2ldWzFdKSArICc8YnI+
Jyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9sb2NhdGlvbi1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9sb2NhdGlvbi1nZXRQYXJhbWV0ZXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xv
Y2F0aW9uLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NCBAQAorCitiCitkCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9sb2NhdGlv
bi1nZXRQYXJhbWV0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTYgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworaWYgKHRv
cCA9PT0gc2VsZikgeworICAgIGRvY3VtZW50LndyaXRlKCc8aWZyYW1lIHNyYz0iJysgbG9jYXRp
b24gKyAnP2E9YiZjPWQjdHR0Ij48L2lmcmFtZT4nKTsKKworICAgIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5p
bm5lckhUTUwgPSAKKyAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLmdldFBhcmFtZXRlcignYScp
ICsgJzxicj4nICsKKyAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLmdldFBhcmFtZXRlcignYycp
ICsgJzxicj4nICsKKyAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLmdldFBhcmFtZXRlcignZCcp
OworICAgIH0KK30KKzwvc2NyaXB0PgorPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70666</attachid>
            <date>2010-10-13 14:44:57 -0700</date>
            <delta_ts>2010-10-13 19:52:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-46610-20101013144455.patch</filename>
            <type>text/plain</type>
            <size>12725</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTY5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMTAtMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJbXBsZW1l
bnQgZ2V0UGFyYW1ldGVyIGZyb20gdGhlIFVSTCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NjEwCisKKyAgICAgICAgQW5vdGhlciBBUEkgZnJv
bQorICAgICAgICBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9lZGl0P2lkPTFyX1ZU
RktBcFZPYU5Ja29jcmcwei10N2xaZ3ppc1R1R1RYa2R6QWs0Z0xVJmhsPWVuIworICAgICAgICBn
ZXRQYXJhbWV0ZXIgbGV0cyBhIHdlYiBzaXRlIGVhc2lseSByZWFkIHRoZSB2YWx1ZSBvZiBhIFVS
TCBwYXJhbWV0ZXIuCisgICAgICAgIFRoaXMgQVBJIGlzIGZvciB0aGUgc2ltcGxlIGNhc2Ugb2Yg
YSBub24tcmVwZWF0ZWQgcGFyYW1ldGVyIG5hbWUuCisgICAgICAgIGdldFBhcmFtZXRlckFsbCB3
aWxsIGhhbmRsZSByZXBlYXRlZCBwYXJhbWV0ZXIgbmFtZXMgaW4gYSBmdXR1cmUgcGF0Y2guCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXIuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBhcmFtZXRlci5odG1sCisKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBwYWdlL0xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2F0aW9uOjpnZXRQ
YXJhbWV0ZXIpOgorICAgICAgICAqIHBhZ2UvTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL0xv
Y2F0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OktVUkw6OmNvcHlQYXJzZWRRdWVyeVRvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJMR29v
Z2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OmNvcHlQYXJzZWRRdWVyeVRvKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9LVVJMLmg6CisKIDIwMTAtMTAtMTMgIEdhdmluIEJhcnJhY2xvdWdo
ICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIENocm9taXVtIGJ1aWxkIGZpeCBw
dDEuCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDY5Njk2KQor
KysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDQ5LDYgKzQ0OSwxMyBAQCBTdHJpbmcgSFRNTEFuY2hvckVsZW1lbnQ6Om9yaWdpbigpIGNvbnN0
CiAgICAgcmV0dXJuIG9yaWdpbi0+dG9TdHJpbmcoKTsKIH0KIAorU3RyaW5nIEhUTUxBbmNob3JF
bGVtZW50OjpnZXRQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIFBh
cnNlZFVSTFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBocmVmKCkuY29weVBhcnNlZFF1ZXJ5
VG8ocGFyYW1ldGVycyk7CisgICAgcmV0dXJuIHBhcmFtZXRlcnMuZ2V0KG5hbWUpOworfQorCiB2
b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRTZWFyY2goY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICBLVVJMIHVybCA9IGhyZWYoKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCShy
ZXZpc2lvbiA2OTY5NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCw2ICs4NCw4IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBvcmlnaW4o
KSBjb25zdDsKIAorICAgIFN0cmluZyBnZXRQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJikgY29uc3Q7
CisKICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0OwogCiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29u
c3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDY5Njk2KQor
KysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBvcmlnaW47CiAjZW5kaWYKIAorICAg
ICAgICBET01TdHJpbmcgZ2V0UGFyYW1ldGVyKGluIERPTVN0cmluZyBuYW1lKTsKKwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAKICNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9Mb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcAko
cmV2aXNpb24gNjk2OTYpCisrKyBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzgsNiArMTM4LDE2IEBAIFN0cmluZyBMb2NhdGlvbjo6aGFzaCgpIGNvbnN0CiAg
ICAgcmV0dXJuIGZyYWdtZW50SWRlbnRpZmllci5pc0VtcHR5KCkgPyAiIiA6ICIjIiArIGZyYWdt
ZW50SWRlbnRpZmllcjsKIH0KIAorU3RyaW5nIExvY2F0aW9uOjpnZXRQYXJhbWV0ZXIoY29uc3Qg
U3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworCisgICAgUGFyc2VkVVJMUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHVy
bCgpLmNvcHlQYXJzZWRRdWVyeVRvKHBhcmFtZXRlcnMpOworICAgIHJldHVybiBwYXJhbWV0ZXJz
LmdldChuYW1lKTsKK30KKwogU3RyaW5nIExvY2F0aW9uOjp0b1N0cmluZygpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2ZyYW1lKQpJbmRleDogV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmgJKHJldmlzaW9uIDY5Njk2KQorKysgV2ViQ29y
ZS9wYWdlL0xvY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCisgICAg
ICAgIFN0cmluZyBnZXRQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJikgY29uc3Q7CisKICAgICBwcml2
YXRlOgogICAgICAgICBMb2NhdGlvbihGcmFtZSopOwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvTG9j
YXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwJKHJldmlz
aW9uIDY5Njk2KQorKysgV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNiArNjIsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBvcmlnaW47CiAjZW5kaWYKIAorICAgICAgICBET01TdHJp
bmcgZ2V0UGFyYW1ldGVyKGluIERPTVN0cmluZyBuYW1lKTsKKwogI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICBbRG9udEVudW0s
IEN1c3RvbSwgVjhPbkluc3RhbmNlLCBWOFJlYWRPbmx5XSBET01TdHJpbmcgdG9TdHJpbmcoKTsK
ICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCShyZXZpc2lvbiA2OTY5NikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vS1VSTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxNiw2ICs2MTYsMzMgQEAgYm9vbCBL
VVJMOjpoYXNGcmFnbWVudElkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBtX2ZyYWdtZW50
RW5kICE9IG1fcXVlcnlFbmQ7CiB9CiAKK3ZvaWQgS1VSTDo6Y29weVBhcnNlZFF1ZXJ5VG8oUGFy
c2VkVVJMUGFyYW1ldGVycyYgcGFyYW1ldGVycykgY29uc3QKK3sKKyAgICBjb25zdCBVQ2hhciog
cG9zID0gbV9zdHJpbmcuY2hhcmFjdGVycygpICsgbV9wYXRoRW5kICsgMTsKKyAgICBjb25zdCBV
Q2hhciogZW5kID0gbV9zdHJpbmcuY2hhcmFjdGVycygpICsgbV9xdWVyeUVuZDsKKyAgICB3aGls
ZSAocG9zIDwgZW5kKSB7CisgICAgICAgIGNvbnN0IFVDaGFyKiBwYXJhbWV0ZXJTdGFydCA9IHBv
czsKKyAgICAgICAgd2hpbGUgKHBvcyA8IGVuZCAmJiAqcG9zICE9ICcmJykKKyAgICAgICAgICAg
ICsrcG9zOworICAgICAgICBjb25zdCBVQ2hhciogcGFyYW1ldGVyRW5kID0gcG9zOworICAgICAg
ICBpZiAocG9zIDwgZW5kKSB7CisgICAgICAgICAgICBBU1NFUlQoKnBvcyA9PSAnJicpOworICAg
ICAgICAgICAgKytwb3M7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhcmFtZXRlclN0YXJ0ID09
IHBhcmFtZXRlckVuZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjb25zdCBVQ2hh
ciogbmFtZVN0YXJ0ID0gcGFyYW1ldGVyU3RhcnQ7CisgICAgICAgIGNvbnN0IFVDaGFyKiBlcXVh
bFNpZ24gPSBwYXJhbWV0ZXJTdGFydDsKKyAgICAgICAgd2hpbGUgKGVxdWFsU2lnbiA8IHBhcmFt
ZXRlckVuZCAmJiAqZXF1YWxTaWduICE9ICc9JykKKyAgICAgICAgICAgICsrZXF1YWxTaWduOwor
ICAgICAgICBpZiAoZXF1YWxTaWduID09IG5hbWVTdGFydCkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBTdHJpbmcgbmFtZShuYW1lU3RhcnQsIGVxdWFsU2lnbiAtIG5hbWVTdGFydCk7
CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IGVxdWFsU2lnbiA9PSBwYXJhbWV0ZXJFbmQgPyBTdHJp
bmcoKSA6IFN0cmluZyhlcXVhbFNpZ24gKyAxLCBwYXJhbWV0ZXJFbmQgLSBlcXVhbFNpZ24gLSAx
KTsKKyAgICAgICAgcGFyYW1ldGVycy5zZXQobmFtZSwgdmFsdWUpOworICAgIH0KK30KKwogU3Ry
aW5nIEtVUkw6OmJhc2VBc1N0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3RyaW5nLmxl
ZnQobV9wYXRoQWZ0ZXJMYXN0U2xhc2gpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgJKHJldmlzaW9uIDY5Njk2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgS1VSTF9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKICNpZiBQTEFURk9STShDRikKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IF9fQ0ZVUkwqIENGVVJMUmVmOwpAQCAtNTksNiArNjAsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBUZXh0RW5jb2Rpbmc7CiBzdHJ1Y3QgS1VSTEhhc2g7CiAKK3R5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gUGFyc2VkVVJMUGFyYW1ldGVyczsKKwogZW51bSBQYXJzZWRV
UkxTdHJpbmdUYWcgeyBQYXJzZWRVUkxTdHJpbmcgfTsKIAogY2xhc3MgS1VSTCB7CkBAIC0xMzMs
NiArMTM2LDggQEAgcHVibGljOgogICAgIFN0cmluZyBmcmFnbWVudElkZW50aWZpZXIoKSBjb25z
dDsKICAgICBib29sIGhhc0ZyYWdtZW50SWRlbnRpZmllcigpIGNvbnN0OwogCisgICAgdm9pZCBj
b3B5UGFyc2VkUXVlcnlUbyhQYXJzZWRVUkxQYXJhbWV0ZXJzJikgY29uc3Q7CisKICAgICBTdHJp
bmcgYmFzZUFzU3RyaW5nKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgcHJldHR5VVJMKCkgY29uc3Q7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vS1VSTEdvb2dsZS5jcHAJKHJldmlzaW9uIDY5Njk2KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ5LDYgKzU0OSwz
NCBAQCBib29sIEtVUkw6Omhhc0ZyYWdtZW50SWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJu
IG1fdXJsLm1fcGFyc2VkLnJlZi5sZW4gPj0gMDsKIH0KIAordm9pZCBLVVJMOjpjb3B5UGFyc2Vk
UXVlcnlUbyhQYXJzZWRVUkxQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKSBjb25zdAoreworICAgIFN0
cmluZyBxdWVyeSA9IG1fdXJsLmNvbXBvbmVudFN0cmluZyhtX3VybC5tX3BhcnNlZC5xdWVyeSk7
CisgICAgY29uc3QgVUNoYXIqIHBvcyA9IHF1ZXJ5LmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBV
Q2hhciogZW5kID0gcXVlcnkuY2hhcmFjdGVycygpICsgcXVlcnkubGVuZ3RoKCk7CisgICAgd2hp
bGUgKHBvcyA8IGVuZCkgeworICAgICAgICBjb25zdCBVQ2hhciogcGFyYW1ldGVyU3RhcnQgPSBw
b3M7CisgICAgICAgIHdoaWxlIChwb3MgPCBlbmQgJiYgKnBvcyAhPSAnJicpCisgICAgICAgICAg
ICArK3BvczsKKyAgICAgICAgY29uc3QgVUNoYXIqIHBhcmFtZXRlckVuZCA9IHBvczsKKyAgICAg
ICAgaWYgKHBvcyA8IGVuZCkgeworICAgICAgICAgICAgQVNTRVJUKCpwb3MgPT0gJyYnKTsKKyAg
ICAgICAgICAgICsrcG9zOworICAgICAgICB9CisgICAgICAgIGlmIChwYXJhbWV0ZXJTdGFydCA9
PSBwYXJhbWV0ZXJFbmQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29uc3QgVUNo
YXIqIG5hbWVTdGFydCA9IHBhcmFtZXRlclN0YXJ0OworICAgICAgICBjb25zdCBVQ2hhciogZXF1
YWxTaWduID0gcGFyYW1ldGVyU3RhcnQ7CisgICAgICAgIHdoaWxlIChlcXVhbFNpZ24gPCBwYXJh
bWV0ZXJFbmQgJiYgKmVxdWFsU2lnbiAhPSAnPScpCisgICAgICAgICAgICArK2VxdWFsU2lnbjsK
KyAgICAgICAgaWYgKGVxdWFsU2lnbiA9PSBuYW1lU3RhcnQpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgU3RyaW5nIG5hbWUobmFtZVN0YXJ0LCBlcXVhbFNpZ24gLSBuYW1lU3RhcnQp
OworICAgICAgICBTdHJpbmcgdmFsdWUgPSBlcXVhbFNpZ24gPT0gcGFyYW1ldGVyRW5kID8gU3Ry
aW5nKCkgOiBTdHJpbmcoZXF1YWxTaWduICsgMSwgcGFyYW1ldGVyRW5kIC0gZXF1YWxTaWduIC0g
MSk7CisgICAgICAgIHBhcmFtZXRlcnMuc2V0KG5hbWUsIHZhbHVlKTsKKyAgICB9Cit9CisKIFN0
cmluZyBLVVJMOjpiYXNlQXNTdHJpbmcoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGVyZSBp
cyBwcm9iYWJseSBhIG1vcmUgZWZmaWNpZW50IHdheSB0byBkbyB0aGlzPwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gNjk2OTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNyBAQAorMjAxMC0xMC0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEltcGxlbWVu
dCBnZXRQYXJhbWV0ZXIgZnJvbSB0aGUgVVJMIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY2MTAKKworICAgICAgICBUZXN0IHZhcmlvdXMgaW50
ZXJlc3RpbmcgY2FzZXMgaW4gcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vYW5jaG9yLWdldFBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBhcmFtZXRlci5odG1sOiBBZGRlZC4K
KwogMjAxMC0xMC0xMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQ3NhYmEgT3N6dHJvZ29uYWMuCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACitodHRwOi8vZXhhbXBs
ZS5jb20vZm9vL2Jhcj9hPWIgKGEpID0+IGIKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2Fi
Yz14eSAoYWJjKSA9PiB4eQoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT14JmI9eSAoYSkg
PT4geAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT14JmI9eSAoYikgPT4geQoraHR0cDov
L2V4YW1wbGUuY29tL2Zvby9iYXI/YT14JmE9eSAoYSkgPT4geQoraHR0cDovL2V4YW1wbGUuY29t
L2Zvby9iYXI/YT14JmE9eSZhPXogKGEpID0+IHoKK2h0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFy
P2E9eCZBPXkmYT16IChBKSA9PiB5CitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8xMjE9ICgx
MjEpID0+IAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YSYgKGEpID0+IAoraHR0cDovL2V4
YW1wbGUuY29tL2Zvby9iYXI/YSAoYSkgPT4gCitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj89
YSYgKGEpID0+IAoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1iPWMgKGEpID0+IGI9Ywor
aHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1iPWMgKGIpID0+IAoraHR0cDovL2V4YW1wbGUu
Y29tL2Zvby9iYXI/YT1iPSYgKGEpID0+IGI9CitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9h
PWI9JiAoYikgPT4gCitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iIChhKSA9PiBiCito
dHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iJiAoYSkgPT4gYgoraHR0cDovL2V4YW1wbGUu
Y29tL2Zvby9iYXI/YT1iI3h5eiAoYSkgPT4gYgoraHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/
I2E9YiUyM3h5eiAoYSkgPT4gCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2FuY2hvci1n
ZXRQYXJhbWV0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNo
b3ItZ2V0UGFyYW1ldGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9hbmNob3ItZ2V0UGFyYW1ldGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKwordmFyIGNhc2VzID0gWworICAgIFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT1i
IiwgJ2EnXSwKKyAgICBbImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2FiYz14eSIsICdhYmMn
XSwKKyAgICBbImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9eCZiPXkiLCAnYSddLAorICAg
IFsiaHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/YT14JmI9eSIsICdiJ10sCisgICAgWyJodHRw
Oi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPXgmYT15IiwgJ2EnXSwKKyAgICBbImh0dHA6Ly9leGFt
cGxlLmNvbS9mb28vYmFyP2E9eCZhPXkmYT16IiwgJ2EnXSwKKyAgICBbImh0dHA6Ly9leGFtcGxl
LmNvbS9mb28vYmFyP2E9eCZBPXkmYT16IiwgJ0EnXSwKKyAgICBbImh0dHA6Ly9leGFtcGxlLmNv
bS9mb28vYmFyPzEyMT0iLCAnMTIxJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jh
cj9hJiIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hIiwgJ2EnXSwK
KyAgICBbImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyPz1hJiIsICdhJ10sCisgICAgWyJodHRw
Oi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPWI9YyIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBs
ZS5jb20vZm9vL2Jhcj9hPWI9YyIsICdiJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9v
L2Jhcj9hPWI9JiIsICdhJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj9hPWI9
JiIsICdiJ10sCisgICAgWyJodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iIiwgJ2EnXSwK
KyAgICBbImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyPyZhPWImIiwgJ2EnXSwKKyAgICBbImh0
dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9YiN4eXoiLCAnYSddLAorICAgIFsiaHR0cDovL2V4
YW1wbGUuY29tL2Zvby9iYXI/I2E9YiN4eXoiLCAnYSddCitdOworCitkb2N1bWVudC53cml0ZSgn
PGRpdiBzdHlsZT0iZGlzcGxheTpub25lIj4nKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgY2FzZXMu
bGVuZ3RoOyArK2kpCisgICAgZG9jdW1lbnQud3JpdGUoJzxhIGhyZWY9IicgKyBjYXNlc1tpXVsw
XSArICciPkxpbms8L2E+PGJyPicpOworZG9jdW1lbnQud3JpdGUoJzwvZGl2PicpOworCit2YXIg
ZWxtdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpOworZm9yICh2YXIgaSA9
IDA7IGkgPCBlbG10cy5sZW5ndGg7ICsraSkKKyAgICBkb2N1bWVudC53cml0ZShlbG10c1tpXS5o
cmVmICsgJyAoJyArIGNhc2VzW2ldWzFdICsgJykgPT4gJyArIGVsbXRzW2ldLmdldFBhcmFtZXRl
cihjYXNlc1tpXVsxXSkgKyAnPGJyPicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbG9j
YXRpb24tZ2V0UGFyYW1ldGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9sb2NhdGlvbi1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKKworYgorZAorCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvbG9jYXRpb24tZ2V0UGFyYW1ldGVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBhcmFtZXRlci5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xvY2F0aW9uLWdldFBh
cmFtZXRlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK2lmICh0b3AgPT09IHNlbGYpIHsKKyAgICBkb2N1bWVudC53cml0ZSgn
PGlmcmFtZSBzcmM9IicrIGxvY2F0aW9uICsgJz9hPWImYz1kI3R0dCI+PC9pZnJhbWU+Jyk7CisK
KyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MID0gCisgICAgICAgIGZyYW1lc1swXS5sb2Nh
dGlvbi5nZXRQYXJhbWV0ZXIoJ2EnKSArICc8YnI+JyArCisgICAgICAgIGZyYW1lc1swXS5sb2Nh
dGlvbi5nZXRQYXJhbWV0ZXIoJ2MnKSArICc8YnI+JyArCisgICAgICAgIGZyYW1lc1swXS5sb2Nh
dGlvbi5nZXRQYXJhbWV0ZXIoJ2QnKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InJl
c3VsdHMiPjwvZGl2Pgo=
</data>
<flag name="commit-queue"
          id="60533"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>