<?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>31683</bug_id>
          
          <creation_ts>2009-11-19 13:51:20 -0800</creation_ts>
          <short_desc>JSC bindings for HasIndexGetter generates incorrect code (affects MediaList and CSSStyleDeclaration)</short_desc>
          <delta_ts>2009-11-24 09:05:33 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20709</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165079</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-19 13:51:20 -0800</bug_when>
    <thetext>When the IDL has an index getter that is also set to convert null strings we return undefined even though we should return null.

This happens with MediaList.idl and CSSStyleDeclaration.idl

The generated code looks like this:

    bool ok;
    unsigned index = propertyName.toUInt32(&amp;ok, false);
    if (ok &amp;&amp; index &lt; static_cast&lt;MediaList*&gt;(impl())-&gt;length()) {
        slot.setCustomIndex(this, index, indexGetter);
        return true;
    }
    return getStaticValueSlot&lt;JSMediaList, Base&gt;(exec, &amp;JSMediaListTable, this, propertyName, slot);

http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList says this about item

Returns the indexth in the list. If index is greater than or equal to the number of media in the list, this returns null.

One way to solve this is to always call the index getter if |ok| is true but that might expose bugs in the existing code. Another option is to not check the length if ConvertNullStringTo is present. That will solve my cases but it feels a bit hacky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165197</commentid>
    <comment_count>1</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-19 21:42:27 -0800</bug_when>
    <thetext>I got this working. I ended up checking whether IndexGetterReturnsStrings and in that case skip the length check. I also checked all the use cases of this (I hope) and only CSSVariableDeclaration needed some trivial changes.

I&apos;ll upload a patch tomorrow and also create a layout test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165477</commentid>
    <comment_count>2</comment_count>
      <attachid>43620</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-20 15:34:06 -0800</bug_when>
    <thetext>Created attachment 43620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165478</commentid>
    <comment_count>3</comment_count>
      <attachid>43621</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-20 15:36:31 -0800</bug_when>
    <thetext>Created attachment 43621
Fixed ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165479</commentid>
    <comment_count>4</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-20 15:40:05 -0800</bug_when>
    <thetext>CodeGeneratorJS.pm has a remnant from another git branch. I&apos;ll clean that up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165480</commentid>
    <comment_count>5</comment_count>
      <attachid>43621</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-20 15:43:08 -0800</bug_when>
    <thetext>Comment on attachment 43621
Fixed ChangeLog

You say that these now return empty string according to &quot;the spec&quot;. What spec? Does this also match other browsers? Which other browsers did you test.

Changing behavior could cause compatibility with sites that have worked with Safari, for example, for years, so we want to be sure this matches both the de facto standard and specifications.

&gt; -    return 1 if $type eq &quot;CSSStyleDeclaration&quot; or $type eq &quot;MediaList&quot; or $type eq &quot;CSSVariablesDeclaration&quot; or $type eq &quot;DOMTokenList&quot;;
&gt; +    return 1 if $type eq &quot;CSSStyleDeclaration&quot; or $type eq &quot;MediaList&quot; or $type eq &quot;CSSVariablesDeclaration&quot;;

This change seems separate from the others. Or is there some relationship? Do you have test cases for all the uses of DOMTokenList?

&gt;      if (i &gt;= length())
&gt; -        return String();
&gt; +        return &quot;&quot;;

&gt;      if (i &gt;= m_properties.size())
&gt; -       return String();
&gt; +       return &quot;&quot;;

&gt;      if (index &gt;= m_variableNames.size())
&gt; -        return String();
&gt; +        return &quot;&quot;;

I only see two tests where the result is an empty string, so I&apos;m not sure all three of these changes are covered by tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165481</commentid>
    <comment_count>6</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-20 15:55:29 -0800</bug_when>
    <thetext>DOMTokenList is how I found this bug. That line of change should not be here. I screwed up with my git branch. I&apos;m working on fixing that.

Here are the specs.

MediaList should return null
http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList

Firefox returns undefined here


CSSStyleDeclaration should return &quot;&quot;
http://www.w3.org/TR/DOM-Level-2-Style/css#CSS-CSSStyleDeclaration

Our implementations of this interface are CSSComputedStyleDeclaration, CSSMutableStyleDeclaration and these now return the empty string instead of null string.

Firefox returns &quot;&quot; for these


CSSVariablesDeclaration should return  &quot;&quot;
http://disruptive-innovations.com/zoo/cssvariables/#mozTocId496530

CSS variables never made it and are disabled. I can add a test but it will fail.


So there is a slight change compared to Firefox, the media list returns null instead of undefined. I think this should be safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165511</commentid>
    <comment_count>7</comment_count>
      <attachid>43630</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-20 16:58:06 -0800</bug_when>
    <thetext>Created attachment 43630
Removed DOMTokenList part from CodeGeneratorJS.pm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165531</commentid>
    <comment_count>8</comment_count>
      <attachid>43634</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-20 17:36:35 -0800</bug_when>
    <thetext>Created attachment 43634
Reverted ws changes to CSSVariablesDeclaration.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165604</commentid>
    <comment_count>9</comment_count>
      <attachid>43634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-21 07:15:43 -0800</bug_when>
    <thetext>Comment on attachment 43634
Reverted ws changes to CSSVariablesDeclaration.idl

This looks right to me, but since Darin reviewed the previous patch, we should wait just a bit in case he has further comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165631</commentid>
    <comment_count>10</comment_count>
      <attachid>43634</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-21 12:12:23 -0800</bug_when>
    <thetext>Comment on attachment 43634
Reverted ws changes to CSSVariablesDeclaration.idl

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165997</commentid>
    <comment_count>11</comment_count>
      <attachid>43634</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-23 21:18:22 -0800</bug_when>
    <thetext>Comment on attachment 43634
Reverted ws changes to CSSVariablesDeclaration.idl

Rejecting patch 43634 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Eric Seidel&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
bCore/css/CSSComputedStyleDeclaration.cpp
Hunk #1 FAILED at 1478.
1 out of 1 hunk FAILED -- saving rejects to file WebCore/css/CSSComputedStyleDeclaration.cpp.rej
patching file WebCore/css/CSSMutableStyleDeclaration.cpp
Hunk #1 FAILED at 636.
1 out of 1 hunk FAILED -- saving rejects to file WebCore/css/CSSMutableStyleDeclaration.cpp.rej
patching file WebCore/css/CSSStyleDeclaration.idl
Hunk #1 FAILED at 44.
1 out of 1 hunk FAILED -- saving rejects to file WebCore/css/CSSStyleDeclaration.idl.rej</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166111</commentid>
    <comment_count>12</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-24 09:00:11 -0800</bug_when>
    <thetext>I committed this manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166112</commentid>
    <comment_count>13</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-24 09:01:00 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/51326</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166113</commentid>
    <comment_count>14</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-24 09:03:21 -0800</bug_when>
    <thetext>I see that the ChangeLogs got confused. I think git svn dcommit added the changelog or something like this. Should I go back and fix the changelogs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166115</commentid>
    <comment_count>15</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-11-24 09:05:33 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I see that the ChangeLogs got confused. I think git svn dcommit added the
&gt; changelog or something like this. Should I go back and fix the changelogs?

I&apos;m confused. The diffs of the changelogs look correct but the message in trac duplicates the changelog message. It seems like it included both my git commit message and the changelog diff.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43620</attachid>
            <date>2009-11-20 15:34:06 -0800</date>
            <delta_ts>2009-11-20 15:36:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-31683-20091120153405.patch</filename>
            <type>text/plain</type>
            <size>14469</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MDY5ZjA1Li5jN2Y5ODUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMDktMTEt
MjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4
R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29kZSAoYWZmZWN0cworICAgICAgICBNZWRpYUxp
c3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgorICAgICAgICBUaGlzIGNsZWFucyB1cCB0aGUg
ZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9mIHJhbmdlIGZvciBzdHlsZSBhbmQKKyAgICAg
ICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFjY29y
ZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWFMaXN0IG5vdyByZXR1cm5zIG51bGwgd2hl
biBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xh
cmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0ZWQtc3R5bGUtaXRl
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
cy1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NT
U3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0ZWQtc3R5
bGUtaXRlbS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9zY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9zY3JpcHQtdGVzdHMvVEVNUExBVEUu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9z
Y3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzOiBBZGRlZC4KKworMjAwOS0xMS0yMCAg
RXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQg
YnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9u
L2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0ZWQtc3R5bGUtaXRlbS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1zdHls
ZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVE
ZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0ZWQtc3R5bGUtaXRl
bS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9zY3Jp
cHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1N0
eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvc2NyaXB0LXRl
c3RzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9zY3JpcHQt
dGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzOiBBZGRlZC4KKwogMjAwOS0xMS0xNyAgQnJpYW4g
V2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1w
ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0ZWQtc3R5
bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YjQyNWFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxl
RGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIGNv
bXB1dGVkIHN0eWxlIG9iamVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdHlwZW9mIGNvbXB1dGVkU3R5bGUubGVuZ3RoIGlzICJudW1iZXIiCitQQVNTIGNvbXB1dGVk
U3R5bGVbY29tcHV0ZWRTdHlsZS5sZW5ndGhdIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGVbLTFd
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xh
cmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU1YzY3MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0
eWxlLWl0ZW0uaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVt
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUt
aXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI1
N2U0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVj
bGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Ro
aXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIHN0eWxlIG9iamVjdC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3R5bGUubGVuZ3RoIGlzIDEK
K1BBU1Mgc3R5bGVbMF0gaXMgImNvbG9yIgorUEFTUyBzdHlsZVsxXSBpcyAiIgorUEFTUyBzdHls
ZVstMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxl
RGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iMDg1OGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sCkBAIC0wLDAg
KzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0ZWQtc3R5
bGUtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTIyZjY1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMKQEAgLTAsMCArMSwxNCBA
QAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Yg
dGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4iKTsKKwordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKK2VsZW1lbnQuc3R5bGUuY29sb3IgPSAncmdiKDEyMCwgMTIw
LCAxMjApJzsKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTsK
K3ZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVs
bCk7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIGNvbXB1dGVkU3R5bGUubGVuZ3Ro
JywgJ251bWJlcicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlW2NvbXB1
dGVkU3R5bGUubGVuZ3RoXScsICcnKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdjb21wdXRlZFN0eWxl
Wy0xXScpCisKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChlbGVtZW50KTsK
Kworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1pdGVtLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9zY3JpcHQtdGVzdHMv
Y3NzLXN0eWxlLWl0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ4
NWZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVj
bGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1pdGVtLmpzCkBAIC0wLDAgKzEsMTUgQEAK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRo
ZSBzdHlsZSBvYmplY3QuIik7CisKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CitlbGVtZW50LnN0eWxlLmNvbG9yID0gJ3JlZCc7Citkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit2YXIgc3R5bGUgPSBlbGVtZW50LnN0eWxl
OworCitzaG91bGRFdmFsdWF0ZVRvKCdzdHlsZS5sZW5ndGgnLCAxKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnc3R5bGVbMF0nLCAnY29sb3InKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3R5
bGVbMV0nLCAnJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnc3R5bGVbLTFdJykKKworZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworCitzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9j
c3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5
bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE0NjhmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9TdHlsZVNoZWV0L2Nzcy1tZWRpYWxpc3QtaXRlbS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyBpbmRleGluZyBvdXRzaWRlIHRoZSByYW5nZSBvZiB0
aGUgbWVkaWEgbGlzdCBvYmplY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIG1lZGlhTGlzdC5sZW5ndGggaXMgMgorUEFTUyBtZWRpYUxpc3RbMF0gaXMgInNjcmVlbiIK
K1BBU1MgbWVkaWFMaXN0WzFdIGlzICJwcmludCIKK1BBU1MgbWVkaWFMaXN0WzJdIGlzIG51bGwK
K1BBU1MgbWVkaWFMaXN0Wy0xXSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwYzU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9jc3MtbWVkaWFsaXN0LWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9zY3Jp
cHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQv
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTk1MWM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0
eWxlU2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9I
RVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nzcy1tZWRpYWxpc3QtaXRlbS5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nzcy1tZWRp
YWxpc3QtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjk3NGU3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9zY3Jp
cHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSBtZWRpYSBs
aXN0IG9iamVjdC4iKTsKKwordmFyIHN0eWxlRWxlbWVudCAgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzdHlsZScpOworc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAnc2NyZWVu
LCBwcmludCcpOworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHN0eWxlRWxl
bWVudCkKK3ZhciBtZWRpYUxpc3QgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1tkb2N1bWVudC5zdHls
ZVNoZWV0cy5sZW5ndGggLSAxXS5tZWRpYTsKKworc2hvdWxkRXZhbHVhdGVUbygnbWVkaWFMaXN0
Lmxlbmd0aCcsIDIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdtZWRpYUxpc3RbMF0nLCAnc2Ny
ZWVuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ21lZGlhTGlzdFsxXScsICdwcmludCcpOwor
c2hvdWxkQmVOdWxsKCdtZWRpYUxpc3RbMl0nKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdtZWRpYUxp
c3RbLTFdJykKKworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxl
bWVudCk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2NWVlNjEuLjViYjc4MzYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMDktMTEtMjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0Mg
YmluZGluZ3MgZm9yIEhhc0luZGV4R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29kZSAoYWZm
ZWN0cworICAgICAgICBNZWRpYUxpc3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgorICAgICAg
ICBUaGlzIGNsZWFucyB1cCB0aGUgZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9mIHJhbmdl
IGZvciBzdHlsZSBhbmQKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byByZXR1cm4g
YW4gZW1wdHkgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWFMaXN0
IG5vdyByZXR1cm5zIG51bGwgd2hlbiBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0u
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5
bGUtaXRlbS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9TdHlsZVNoZWV0L2Nzcy1tZWRp
YWxpc3QtaXRlbS5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbTogSWYgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5nIHRoZW4KKyAgICAgICAgICAgICAg
ICB3ZSBkbyBub3QgY2hlY2sgdGhlIGxlbmd0aCBiZWZvcmUgY2FsbGluZyB0aGUgaXRlbSBmdW5j
dGlvbi4KKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6aXRlbSk6CisgICAg
ICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppdGVtKToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVEZWNsYXJhdGlvbi5pZGw6CisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uOjppdGVt
KToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsOgorCiAyMDA5LTEx
LTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGM5ZTI0NmUuLjVjMzkwZGMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTY1LDcgKzE2NSw3IEBAIHN1YiBJ
bmRleEdldHRlclJldHVybnNTdHJpbmdzCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKIAotICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAi
TWVkaWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iIG9yICR0eXBl
IGVxICJET01Ub2tlbkxpc3QiOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURl
Y2xhcmF0aW9uIiBvciAkdHlwZSBlcSAiTWVkaWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24iOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBlMDU2ZGE0Li41OGU0YWM2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE0NzgsNyArMTQ3
OCw3IEBAIHVuc2lnbmVkIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6bGVuZ3RoKCkgY29u
c3QKIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246Oml0ZW0odW5zaWduZWQgaSkg
Y29uc3QKIHsKICAgICBpZiAoaSA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgICAgICByZXR1cm4gIiI7CiAKICAgICByZXR1cm4gZ2V0UHJvcGVydHlOYW1lKHN0YXRp
Y19jYXN0PENTU1Byb3BlcnR5SUQ+KGNvbXB1dGVkUHJvcGVydGllc1tpXSkpOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29y
ZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGFhOGUwMjguLmE3ZTdi
NTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTYz
Niw3ICs2MzYsNyBAQCB1bnNpZ25lZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6bGVuZ3Ro
KCkgY29uc3QKIFN0cmluZyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6aXRlbSh1bnNpZ25l
ZCBpKSBjb25zdAogewogICAgIGlmIChpID49IG1fcHJvcGVydGllcy5zaXplKCkpCi0gICAgICAg
cmV0dXJuIFN0cmluZygpOworICAgICAgIHJldHVybiAiIjsKICAgICByZXR1cm4gZ2V0UHJvcGVy
dHlOYW1lKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KG1fcHJvcGVydGllc1tpXS5pZCgpKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsIGIv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKaW5kZXggM2UzNzQxOC4uNDI2ODJl
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKKysrIGIv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKQEAgLTQ0LDcgKzQ0LDcgQEAgbW9k
dWxlIGNzcyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICBsZW5ndGg7Ci0gICAgICAgIFtDb252
ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyAgICAgICAgICBpdGVtKGluIHVuc2lnbmVk
IGxvbmcgaW5kZXgpOworICAgICAgICBET01TdHJpbmcgICAgICAgICAgaXRlbShpbiB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGUgICAgICAg
ICAgcGFyZW50UnVsZTsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5jcHAKaW5kZXggMDU0MWViNS4uY2I4NTJjYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHVuc2lnbmVk
IENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAogU3RyaW5nIENTU1Zhcmlh
Ymxlc0RlY2xhcmF0aW9uOjppdGVtKHVuc2lnbmVkIGluZGV4KQogewogICAgIGlmIChpbmRleCA+
PSBtX3ZhcmlhYmxlTmFtZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
ICAgIHJldHVybiAiIjsKICAgICByZXR1cm4gbV92YXJpYWJsZU5hbWVzW2luZGV4XTsKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsIGIvV2Vi
Q29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsCmluZGV4IGJmNTIyZWUuLjJiMDE4
YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmlkbAor
KysgYi9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5pZGwKQEAgLTM4LDcgKzM4
LDcgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgICAgbGVuZ3RoOwotICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
XSBET01TdHJpbmcgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgRE9NU3Ry
aW5nIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBDU1NSdWxlICAgICAgICAgIHBhcmVudFJ1bGU7CiAgICAgfTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43621</attachid>
            <date>2009-11-20 15:36:31 -0800</date>
            <delta_ts>2009-11-20 16:58:02 -0800</delta_ts>
            <desc>Fixed ChangeLog</desc>
            <filename>bug-31683-20091120153630.patch</filename>
            <type>text/plain</type>
            <size>13506</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MDY5ZjA1Li42ZDVmMDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTEt
MjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4
R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29kZSAoYWZmZWN0cworICAgICAgICBNZWRpYUxp
c3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgorICAgICAgICBUaGlzIGNsZWFucyB1cCB0aGUg
ZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9mIHJhbmdlIGZvciBzdHlsZSBhbmQKKyAgICAg
ICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFjY29y
ZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWFMaXN0IG5vdyByZXR1cm5zIG51bGwgd2hl
biBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xh
cmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0ZWQtc3R5bGUtaXRl
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
cy1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NT
U3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0ZWQtc3R5
bGUtaXRlbS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9zY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9zY3JpcHQtdGVzdHMvVEVNUExBVEUu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9z
Y3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzOiBBZGRlZC4KKwogMjAwOS0xMS0xNyAg
QnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0
ZWQtc3R5bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjQyNWFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Yg
dGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdHlwZW9mIGNvbXB1dGVkU3R5bGUubGVuZ3RoIGlzICJudW1iZXIiCitQQVNTIGNv
bXB1dGVkU3R5bGVbY29tcHV0ZWRTdHlsZS5sZW5ndGhdIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5
bGVbLTFdIGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHls
ZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU1YzY3MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1
dGVkLXN0eWxlLWl0ZW0uaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Nzcy1jb21wdXRlZC1zdHls
ZS1pdGVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mt
c3R5bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWI1N2U0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIHN0eWxlIG9i
amVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3R5bGUubGVuZ3Ro
IGlzIDEKK1BBU1Mgc3R5bGVbMF0gaXMgImNvbG9yIgorUEFTUyBzdHlsZVsxXSBpcyAiIgorUEFT
UyBzdHlsZVstMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDg1OGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0
ZWQtc3R5bGUtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTIy
ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMKQEAgLTAsMCAr
MSwxNCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFu
Z2Ugb2YgdGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4iKTsKKwordmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2VsZW1lbnQuc3R5bGUuY29sb3IgPSAncmdiKDEy
MCwgMTIwLCAxMjApJzsKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK3ZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgbnVsbCk7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIGNvbXB1dGVkU3R5bGUu
bGVuZ3RoJywgJ251bWJlcicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxl
W2NvbXB1dGVkU3R5bGUubGVuZ3RoXScsICcnKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdjb21wdXRl
ZFN0eWxlWy0xXScpCisKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChlbGVt
ZW50KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1p
dGVtLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9zY3JpcHQt
dGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWQ4NWZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1pdGVtLmpzCkBAIC0wLDAgKzEs
MTUgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdl
IG9mIHRoZSBzdHlsZSBvYmplY3QuIik7CisKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CitlbGVtZW50LnN0eWxlLmNvbG9yID0gJ3JlZCc7Citkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit2YXIgc3R5bGUgPSBlbGVtZW50
LnN0eWxlOworCitzaG91bGRFdmFsdWF0ZVRvKCdzdHlsZS5sZW5ndGgnLCAxKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnc3R5bGVbMF0nLCAnY29sb3InKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygnc3R5bGVbMV0nLCAnJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnc3R5bGVbLTFdJykKKworZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworCitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVT
aGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NjhmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0L2Nzcy1tZWRpYWxpc3QtaXRlbS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyBpbmRleGluZyBvdXRzaWRlIHRoZSByYW5n
ZSBvZiB0aGUgbWVkaWEgbGlzdCBvYmplY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG1lZGlhTGlzdC5sZW5ndGggaXMgMgorUEFTUyBtZWRpYUxpc3RbMF0gaXMgInNj
cmVlbiIKK1BBU1MgbWVkaWFMaXN0WzFdIGlzICJwcmludCIKK1BBU1MgbWVkaWFMaXN0WzJdIGlz
IG51bGwKK1BBU1MgbWVkaWFMaXN0Wy0xXSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwYzU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jc3MtbWVkaWFsaXN0LWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxl
U2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTk1MWM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNf
RklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nzcy1tZWRpYWxpc3Qt
aXRlbS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nz
cy1tZWRpYWxpc3QtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
Mjk3NGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9zY3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSBt
ZWRpYSBsaXN0IG9iamVjdC4iKTsKKwordmFyIHN0eWxlRWxlbWVudCAgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzdHlsZScpOworc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAn
c2NyZWVuLCBwcmludCcpOworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHN0
eWxlRWxlbWVudCkKK3ZhciBtZWRpYUxpc3QgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1tkb2N1bWVu
dC5zdHlsZVNoZWV0cy5sZW5ndGggLSAxXS5tZWRpYTsKKworc2hvdWxkRXZhbHVhdGVUbygnbWVk
aWFMaXN0Lmxlbmd0aCcsIDIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdtZWRpYUxpc3RbMF0n
LCAnc2NyZWVuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ21lZGlhTGlzdFsxXScsICdwcmlu
dCcpOworc2hvdWxkQmVOdWxsKCdtZWRpYUxpc3RbMl0nKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdt
ZWRpYUxpc3RbLTFdJykKKworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKHN0
eWxlRWxlbWVudCk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2NWVlNjEuLjViYjc4
MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMDktMTEtMjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29k
ZSAoYWZmZWN0cworICAgICAgICBNZWRpYUxpc3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgor
ICAgICAgICBUaGlzIGNsZWFucyB1cCB0aGUgZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9m
IHJhbmdlIGZvciBzdHlsZSBhbmQKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byBy
ZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVk
aWFMaXN0IG5vdyByZXR1cm5zIG51bGwgd2hlbiBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxl
LWl0ZW0uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9j
c3Mtc3R5bGUtaXRlbS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9TdHlsZVNoZWV0L2Nz
cy1tZWRpYWxpc3QtaXRlbS5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbTogSWYgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5nIHRoZW4KKyAgICAgICAg
ICAgICAgICB3ZSBkbyBub3QgY2hlY2sgdGhlIGxlbmd0aCBiZWZvcmUgY2FsbGluZyB0aGUgaXRl
bSBmdW5jdGlvbi4KKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6aXRlbSk6
CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppdGVtKToKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw6CisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
OjppdGVtKToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsOgorCiAy
MDA5LTExLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGM5ZTI0NmUuLjVjMzkwZGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTY1LDcgKzE2NSw3IEBA
IHN1YiBJbmRleEdldHRlclJldHVybnNTdHJpbmdzCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsK
IAotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBvciAkdHlw
ZSBlcSAiTWVkaWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iIG9y
ICR0eXBlIGVxICJET01Ub2tlbkxpc3QiOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJDU1NT
dHlsZURlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAiTWVkaWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24iOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBlMDU2ZGE0Li41OGU0YWM2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisr
KyBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE0Nzgs
NyArMTQ3OCw3IEBAIHVuc2lnbmVkIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6bGVuZ3Ro
KCkgY29uc3QKIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246Oml0ZW0odW5zaWdu
ZWQgaSkgY29uc3QKIHsKICAgICBpZiAoaSA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFN0
cmluZygpOworICAgICAgICByZXR1cm4gIiI7CiAKICAgICByZXR1cm4gZ2V0UHJvcGVydHlOYW1l
KHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KGNvbXB1dGVkUHJvcGVydGllc1tpXSkpOwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIGIv
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGFhOGUwMjgu
LmE3ZTdiNTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTYzNiw3ICs2MzYsNyBAQCB1bnNpZ25lZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6
bGVuZ3RoKCkgY29uc3QKIFN0cmluZyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6aXRlbSh1
bnNpZ25lZCBpKSBjb25zdAogewogICAgIGlmIChpID49IG1fcHJvcGVydGllcy5zaXplKCkpCi0g
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgIHJldHVybiAiIjsKICAgICByZXR1cm4gZ2V0
UHJvcGVydHlOYW1lKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KG1fcHJvcGVydGllc1tpXS5p
ZCgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24u
aWRsIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKaW5kZXggM2UzNzQxOC4u
NDI2ODJlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKQEAgLTQ0LDcgKzQ0LDcg
QEAgbW9kdWxlIGNzcyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICBsZW5ndGg7Ci0gICAgICAg
IFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyAgICAgICAgICBpdGVtKGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICBET01TdHJpbmcgICAgICAgICAgaXRlbShpbiB1
bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGUg
ICAgICAgICAgcGFyZW50UnVsZTsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9D
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAKaW5kZXggMDU0MWViNS4uY2I4NTJjYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHVu
c2lnbmVkIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAogU3RyaW5nIENT
U1ZhcmlhYmxlc0RlY2xhcmF0aW9uOjppdGVtKHVuc2lnbmVkIGluZGV4KQogewogICAgIGlmIChp
bmRleCA+PSBtX3ZhcmlhYmxlTmFtZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiAiIjsKICAgICByZXR1cm4gbV92YXJpYWJsZU5hbWVzW2luZGV4XTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRs
IGIvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsCmluZGV4IGJmNTIyZWUu
LjJiMDE4YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
LmlkbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5pZGwKQEAgLTM4
LDcgKzM4LDcgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgICAgbGVuZ3RoOwotICAgICAgICBbQ29udmVydE51bGxTdHJpbmdU
bz1OdWxsXSBET01TdHJpbmcgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAg
RE9NU3RyaW5nIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NSdWxlICAgICAgICAgIHBhcmVudFJ1bGU7CiAgICAgfTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43630</attachid>
            <date>2009-11-20 16:58:06 -0800</date>
            <delta_ts>2009-11-20 17:36:14 -0800</delta_ts>
            <desc>Removed DOMTokenList part from CodeGeneratorJS.pm</desc>
            <filename>bug-31683-20091120165804.patch</filename>
            <type>text/plain</type>
            <size>13848</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MDY5ZjA1Li42ZDVmMDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTEt
MjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4
R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29kZSAoYWZmZWN0cworICAgICAgICBNZWRpYUxp
c3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgorICAgICAgICBUaGlzIGNsZWFucyB1cCB0aGUg
ZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9mIHJhbmdlIGZvciBzdHlsZSBhbmQKKyAgICAg
ICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFjY29y
ZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWFMaXN0IG5vdyByZXR1cm5zIG51bGwgd2hl
biBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xh
cmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0ZWQtc3R5bGUtaXRl
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
cy1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NT
U3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0ZWQtc3R5
bGUtaXRlbS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9zY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9zY3JpcHQtdGVzdHMvVEVNUExBVEUu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9z
Y3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzOiBBZGRlZC4KKwogMjAwOS0xMS0xNyAg
QnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0
ZWQtc3R5bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjQyNWFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Yg
dGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdHlwZW9mIGNvbXB1dGVkU3R5bGUubGVuZ3RoIGlzICJudW1iZXIiCitQQVNTIGNv
bXB1dGVkU3R5bGVbY29tcHV0ZWRTdHlsZS5sZW5ndGhdIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5
bGVbLTFdIGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHls
ZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU1YzY3MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1
dGVkLXN0eWxlLWl0ZW0uaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Nzcy1jb21wdXRlZC1zdHls
ZS1pdGVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mt
c3R5bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWI1N2U0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIHN0eWxlIG9i
amVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3R5bGUubGVuZ3Ro
IGlzIDEKK1BBU1Mgc3R5bGVbMF0gaXMgImNvbG9yIgorUEFTUyBzdHlsZVsxXSBpcyAiIgorUEFT
UyBzdHlsZVstMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDg1OGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0
ZWQtc3R5bGUtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTIy
ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMKQEAgLTAsMCAr
MSwxNCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFu
Z2Ugb2YgdGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4iKTsKKwordmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2VsZW1lbnQuc3R5bGUuY29sb3IgPSAncmdiKDEy
MCwgMTIwLCAxMjApJzsKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK3ZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgbnVsbCk7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIGNvbXB1dGVkU3R5bGUu
bGVuZ3RoJywgJ251bWJlcicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxl
W2NvbXB1dGVkU3R5bGUubGVuZ3RoXScsICcnKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdjb21wdXRl
ZFN0eWxlWy0xXScpCisKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChlbGVt
ZW50KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1p
dGVtLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9zY3JpcHQt
dGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWQ4NWZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1pdGVtLmpzCkBAIC0wLDAgKzEs
MTUgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdl
IG9mIHRoZSBzdHlsZSBvYmplY3QuIik7CisKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CitlbGVtZW50LnN0eWxlLmNvbG9yID0gJ3JlZCc7Citkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit2YXIgc3R5bGUgPSBlbGVtZW50
LnN0eWxlOworCitzaG91bGRFdmFsdWF0ZVRvKCdzdHlsZS5sZW5ndGgnLCAxKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnc3R5bGVbMF0nLCAnY29sb3InKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygnc3R5bGVbMV0nLCAnJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnc3R5bGVbLTFdJykKKworZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworCitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVT
aGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NjhmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0L2Nzcy1tZWRpYWxpc3QtaXRlbS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyBpbmRleGluZyBvdXRzaWRlIHRoZSByYW5n
ZSBvZiB0aGUgbWVkaWEgbGlzdCBvYmplY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG1lZGlhTGlzdC5sZW5ndGggaXMgMgorUEFTUyBtZWRpYUxpc3RbMF0gaXMgInNj
cmVlbiIKK1BBU1MgbWVkaWFMaXN0WzFdIGlzICJwcmludCIKK1BBU1MgbWVkaWFMaXN0WzJdIGlz
IG51bGwKK1BBU1MgbWVkaWFMaXN0Wy0xXSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwYzU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jc3MtbWVkaWFsaXN0LWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxl
U2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTk1MWM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNf
RklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nzcy1tZWRpYWxpc3Qt
aXRlbS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nz
cy1tZWRpYWxpc3QtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
Mjk3NGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9zY3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSBt
ZWRpYSBsaXN0IG9iamVjdC4iKTsKKwordmFyIHN0eWxlRWxlbWVudCAgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzdHlsZScpOworc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAn
c2NyZWVuLCBwcmludCcpOworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHN0
eWxlRWxlbWVudCkKK3ZhciBtZWRpYUxpc3QgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1tkb2N1bWVu
dC5zdHlsZVNoZWV0cy5sZW5ndGggLSAxXS5tZWRpYTsKKworc2hvdWxkRXZhbHVhdGVUbygnbWVk
aWFMaXN0Lmxlbmd0aCcsIDIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdtZWRpYUxpc3RbMF0n
LCAnc2NyZWVuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ21lZGlhTGlzdFsxXScsICdwcmlu
dCcpOworc2hvdWxkQmVOdWxsKCdtZWRpYUxpc3RbMl0nKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdt
ZWRpYUxpc3RbLTFdJykKKworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKHN0
eWxlRWxlbWVudCk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2NWVlNjEuLjViYjc4
MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMDktMTEtMjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29k
ZSAoYWZmZWN0cworICAgICAgICBNZWRpYUxpc3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgor
ICAgICAgICBUaGlzIGNsZWFucyB1cCB0aGUgZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9m
IHJhbmdlIGZvciBzdHlsZSBhbmQKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byBy
ZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVk
aWFMaXN0IG5vdyByZXR1cm5zIG51bGwgd2hlbiBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxl
LWl0ZW0uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9j
c3Mtc3R5bGUtaXRlbS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9TdHlsZVNoZWV0L2Nz
cy1tZWRpYWxpc3QtaXRlbS5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbTogSWYgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5nIHRoZW4KKyAgICAgICAg
ICAgICAgICB3ZSBkbyBub3QgY2hlY2sgdGhlIGxlbmd0aCBiZWZvcmUgY2FsbGluZyB0aGUgaXRl
bSBmdW5jdGlvbi4KKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6aXRlbSk6
CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppdGVtKToKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw6CisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
OjppdGVtKToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsOgorCiAy
MDA5LTExLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGQ4MzY3YWMuLjVjMzkwZGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzE2LDcgKzMxNiwxNCBA
QCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGJvb2wgb2s7XG4iKTsKICAgICAgICAg
cHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3Bl
cnR5TmFtZS50b1VJbnQzMigmb2ssIGZhbHNlKTtcbiIpOwotICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBs
Q2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworCisgICAgICAgICMgSWYgdGhl
IGl0ZW0gZnVuY3Rpb24gcmV0dXJucyBhIHN0cmluZyB0aGVuIHdlIGxldCB0aGUgQ29udmVydE51
bGxTdHJpbmdUbyBoYW5kbGUgdGhlIGNhc2VzCisgICAgICAgICMgd2hlcmUgdGhlIGluZGV4IGlz
IG91dCBvZiByYW5nZS4KKyAgICAgICAgaWYgKEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MoJGlt
cGxDbGFzc05hbWUpKSB7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBs
LCAiICAgIGlmIChvaykge1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19j
YXN0PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICB9
CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21J
bmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVy
aWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJ
bXBsLCAiICAgICAgICBzbG90LnNldFZhbHVlKGdldEJ5SW5kZXgoZXhlYywgaW5kZXgpKTtcbiIp
OwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKaW5kZXggZTA1NmRhNC4uNThlNGFjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNDc4LDcgKzE0NzgsNyBAQCB1bnNpZ25lZCBD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246Omxlbmd0aCgpIGNvbnN0CiBTdHJpbmcgQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjppdGVtKHVuc2lnbmVkIGkpIGNvbnN0CiB7CiAgICAgaWYg
KGkgPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJu
ICIiOwogCiAgICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZShzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0
eUlEPihjb21wdXRlZFByb3BlcnRpZXNbaV0pKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBhYThlMDI4Li5hN2U3YjU4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9j
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC02MzYsNyArNjM2LDcgQEAgdW5z
aWduZWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Omxlbmd0aCgpIGNvbnN0CiBTdHJpbmcg
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Oml0ZW0odW5zaWduZWQgaSkgY29uc3QKIHsKICAg
ICBpZiAoaSA+PSBtX3Byb3BlcnRpZXMuc2l6ZSgpKQotICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KyAgICAgICByZXR1cm4gIiI7CiAgICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZShzdGF0aWNfY2Fz
dDxDU1NQcm9wZXJ0eUlEPihtX3Byb3BlcnRpZXNbaV0uaWQoKSkpOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBiL1dlYkNvcmUvY3NzL0NTU1N0
eWxlRGVjbGFyYXRpb24uaWRsCmluZGV4IDNlMzc0MTguLjQyNjgyZWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0
eWxlRGVjbGFyYXRpb24uaWRsCkBAIC00NCw3ICs0NCw3IEBAIG1vZHVsZSBjc3MgewogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgICAgbGVuZ3RoOwotICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1O
dWxsXSBET01TdHJpbmcgICAgICAgICAgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAg
ICAgICAgRE9NU3RyaW5nICAgICAgICAgIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlICAgICAgICAgIHBhcmVudFJ1bGU7CiAK
ICAgICAgICAgLy8gRXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24uaWRsIGIvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24u
aWRsCmluZGV4IDgyZDJlOWMuLjJiMDE4YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Zh
cmlhYmxlc0RlY2xhcmF0aW9uLmlkbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZXNEZWNs
YXJhdGlvbi5pZGwKQEAgLTM4LDcgKzM4LDcgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgICAgbGVuZ3RoOwotICAgICAgICBE
T01TdHJpbmcgICAgICAgICAgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAg
RE9NU3RyaW5nIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NSdWxlICAgICAgICAgIHBhcmVudFJ1bGU7CiAgICAgfTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43634</attachid>
            <date>2009-11-20 17:36:35 -0800</date>
            <delta_ts>2009-11-23 21:18:22 -0800</delta_ts>
            <desc>Reverted ws changes to CSSVariablesDeclaration.idl</desc>
            <filename>bug-31683-20091120173634.patch</filename>
            <type>text/plain</type>
            <size>13074</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MDY5ZjA1Li42ZDVmMDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTEt
MjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4
R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29kZSAoYWZmZWN0cworICAgICAgICBNZWRpYUxp
c3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pLgorICAgICAgICBUaGlzIGNsZWFucyB1cCB0aGUg
ZWRnZSBjYXNlcyBmb3IgaW5kZXhpbmcgb3V0IG9mIHJhbmdlIGZvciBzdHlsZSBhbmQKKyAgICAg
ICAgY29tcHV0ZWQgc3R5bGUgb2JqZWN0cyB0byByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFjY29y
ZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWFMaXN0IG5vdyByZXR1cm5zIG51bGwgd2hl
biBpbmRleGVkIG91dCBvZiByYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNjgzCisKKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xh
cmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0ZWQtc3R5bGUtaXRl
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
cy1zdHlsZS1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NT
U3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0ZWQtc3R5
bGUtaXRlbS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9zY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9zY3JpcHQtdGVzdHMvVEVNUExBVEUu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yZXBlYXQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwuCisgICAgICAgICogZmFzdC9kb20vU3R5bGVTaGVldC9z
Y3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzOiBBZGRlZC4KKwogMjAwOS0xMS0xNyAg
QnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtY29tcHV0
ZWQtc3R5bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjQyNWFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Yg
dGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdHlwZW9mIGNvbXB1dGVkU3R5bGUubGVuZ3RoIGlzICJudW1iZXIiCitQQVNTIGNv
bXB1dGVkU3R5bGVbY29tcHV0ZWRTdHlsZS5sZW5ndGhdIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5
bGVbLTFdIGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHls
ZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1jb21wdXRlZC1zdHlsZS1pdGVtLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU1YzY3MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLWNvbXB1
dGVkLXN0eWxlLWl0ZW0uaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Nzcy1jb21wdXRlZC1zdHls
ZS1pdGVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mt
c3R5bGUtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWI1N2U0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKK1RoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIHN0eWxlIG9i
amVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3R5bGUubGVuZ3Ro
IGlzIDEKK1BBU1Mgc3R5bGVbMF0gaXMgImNvbG9yIgorUEFTUyBzdHlsZVsxXSBpcyAiIgorUEFT
UyBzdHlsZVstMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXN0eWxlLWl0ZW0uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDg1OGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mtc3R5bGUtaXRlbS5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtY29tcHV0
ZWQtc3R5bGUtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTIy
ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9zY3JpcHQtdGVzdHMvY3NzLWNvbXB1dGVkLXN0eWxlLWl0ZW0uanMKQEAgLTAsMCAr
MSwxNCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaW5kZXhpbmcgb3V0c2lkZSB0aGUgcmFu
Z2Ugb2YgdGhlIGNvbXB1dGVkIHN0eWxlIG9iamVjdC4iKTsKKwordmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2VsZW1lbnQuc3R5bGUuY29sb3IgPSAncmdiKDEy
MCwgMTIwLCAxMjApJzsKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK3ZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgbnVsbCk7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIGNvbXB1dGVkU3R5bGUu
bGVuZ3RoJywgJ251bWJlcicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxl
W2NvbXB1dGVkU3R5bGUubGVuZ3RoXScsICcnKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdjb21wdXRl
ZFN0eWxlWy0xXScpCisKK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChlbGVt
ZW50KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1p
dGVtLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9zY3JpcHQt
dGVzdHMvY3NzLXN0eWxlLWl0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWQ4NWZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0
eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1zdHlsZS1pdGVtLmpzCkBAIC0wLDAgKzEs
MTUgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdl
IG9mIHRoZSBzdHlsZSBvYmplY3QuIik7CisKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CitlbGVtZW50LnN0eWxlLmNvbG9yID0gJ3JlZCc7Citkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit2YXIgc3R5bGUgPSBlbGVtZW50
LnN0eWxlOworCitzaG91bGRFdmFsdWF0ZVRvKCdzdHlsZS5sZW5ndGgnLCAxKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnc3R5bGVbMF0nLCAnY29sb3InKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygnc3R5bGVbMV0nLCAnJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnc3R5bGVbLTFdJykKKworZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworCitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVT
aGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NjhmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0L2Nzcy1tZWRpYWxpc3QtaXRlbS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyBpbmRleGluZyBvdXRzaWRlIHRoZSByYW5n
ZSBvZiB0aGUgbWVkaWEgbGlzdCBvYmplY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG1lZGlhTGlzdC5sZW5ndGggaXMgMgorUEFTUyBtZWRpYUxpc3RbMF0gaXMgInNj
cmVlbiIKK1BBU1MgbWVkaWFMaXN0WzFdIGlzICJwcmludCIKK1BBU1MgbWVkaWFMaXN0WzJdIGlz
IG51bGwKK1BBU1MgbWVkaWFMaXN0Wy0xXSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vU3R5bGVTaGVldC9jc3MtbWVkaWFsaXN0LWl0ZW0uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwYzU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvY3NzLW1lZGlhbGlzdC1pdGVtLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jc3MtbWVkaWFsaXN0LWl0ZW0uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxl
U2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTk1MWM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNf
RklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nzcy1tZWRpYWxpc3Qt
aXRlbS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvc2NyaXB0LXRlc3RzL2Nz
cy1tZWRpYWxpc3QtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
Mjk3NGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9zY3JpcHQtdGVzdHMvY3NzLW1lZGlhbGlzdC1pdGVtLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4aW5nIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSBt
ZWRpYSBsaXN0IG9iamVjdC4iKTsKKwordmFyIHN0eWxlRWxlbWVudCAgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzdHlsZScpOworc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAn
c2NyZWVuLCBwcmludCcpOworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHN0
eWxlRWxlbWVudCkKK3ZhciBtZWRpYUxpc3QgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1tkb2N1bWVu
dC5zdHlsZVNoZWV0cy5sZW5ndGggLSAxXS5tZWRpYTsKKworc2hvdWxkRXZhbHVhdGVUbygnbWVk
aWFMaXN0Lmxlbmd0aCcsIDIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdtZWRpYUxpc3RbMF0n
LCAnc2NyZWVuJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ21lZGlhTGlzdFsxXScsICdwcmlu
dCcpOworc2hvdWxkQmVOdWxsKCdtZWRpYUxpc3RbMl0nKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdt
ZWRpYUxpc3RbLTFdJykKKworZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKHN0
eWxlRWxlbWVudCk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2NWVlNjEuLmQ2MzVj
YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTEtMjAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBKU0MgYmluZGluZ3MgZm9yIEhhc0luZGV4R2V0dGVyIGdlbmVyYXRlcyBpbmNvcnJlY3QgY29k
ZSAoYWZmZWN0cyBNZWRpYUxpc3QgYW5kIENTU1N0eWxlRGVjbGFyYXRpb24pCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTY4MworCisgICAgICAgIEpT
QyBiaW5kaW5ncyBmb3IgSGFzSW5kZXhHZXR0ZXIgZ2VuZXJhdGVzIGluY29ycmVjdCBjb2RlIChh
ZmZlY3RzCisgICAgICAgIE1lZGlhTGlzdCBhbmQgQ1NTU3R5bGVEZWNsYXJhdGlvbikuCisgICAg
ICAgIFRoaXMgY2xlYW5zIHVwIHRoZSBlZGdlIGNhc2VzIGZvciBpbmRleGluZyBvdXQgb2YgcmFu
Z2UgZm9yIHN0eWxlIGFuZAorICAgICAgICBjb21wdXRlZCBzdHlsZSBvYmplY3RzIHRvIHJldHVy
biBhbiBlbXB0eSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLgorICAgICAgICBNZWRpYUxp
c3Qgbm93IHJldHVybnMgbnVsbCB3aGVuIGluZGV4ZWQgb3V0IG9mIHJhbmdlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE2ODMKKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBJZiBJbmRleEdldHRlclJldHVy
bnNTdHJpbmcgdGhlbgorICAgICAgICAgICAgICAgIHdlIGRvIG5vdCBjaGVjayB0aGUgbGVuZ3Ro
IGJlZm9yZSBjYWxsaW5nIHRoZSBpdGVtIGZ1bmN0aW9uLgorICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjppdGVtKToKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246Oml0ZW0pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKwogMjAw
OS0xMS0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkODM2N2FjLi41YzM5MGRjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMxNiw3ICszMTYsMTQgQEAg
c3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBib29sIG9rO1xuIik7CiAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0
eU5hbWUudG9VSW50MzIoJm9rLCBmYWxzZSk7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENs
YXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKKworICAgICAgICAjIElmIHRoZSBp
dGVtIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcgdGhlbiB3ZSBsZXQgdGhlIENvbnZlcnROdWxs
U3RyaW5nVG8gaGFuZGxlIHRoZSBjYXNlcworICAgICAgICAjIHdoZXJlIHRoZSBpbmRleCBpcyBv
dXQgb2YgcmFuZ2UuCisgICAgICAgIGlmIChJbmRleEdldHRlclJldHVybnNTdHJpbmdzKCRpbXBs
Q2xhc3NOYW1lKSkgeworICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwg
IiAgICBpZiAob2spIHtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChA
Z2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2Fz
dDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKKyAgICAgICAgfQog
ICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5k
ZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmlj
SW5kZXhHZXR0ZXIifSkgewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7XG4iKTsK
ICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCmluZGV4IGUwNTZkYTQuLjU4ZTRhYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTQ3OCw3ICsxNDc4LDcgQEAgdW5zaWduZWQgQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAogU3RyaW5nIENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6aXRlbSh1bnNpZ25lZCBpKSBjb25zdAogewogICAgIGlmIChp
ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybiAi
IjsKIAogICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJ
RD4oY29tcHV0ZWRQcm9wZXJ0aWVzW2ldKSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYWE4ZTAyOC4uYTdlN2I1OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNjM2LDcgKzYzNiw3IEBAIHVuc2ln
bmVkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAogU3RyaW5nIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppdGVtKHVuc2lnbmVkIGkpIGNvbnN0CiB7CiAgICAg
aWYgKGkgPj0gbV9wcm9wZXJ0aWVzLnNpemUoKSkKLSAgICAgICByZXR1cm4gU3RyaW5nKCk7Cisg
ICAgICAgcmV0dXJuICIiOwogICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWUoc3RhdGljX2Nhc3Q8
Q1NTUHJvcGVydHlJRD4obV9wcm9wZXJ0aWVzW2ldLmlkKCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwgYi9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbAppbmRleCAzZTM3NDE4Li40MjY4MmVmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbApAQCAtNDQsNyArNDQsNyBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nICAgIGxlbmd0aDsKLSAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVs
bF0gRE9NU3RyaW5nICAgICAgICAgIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAg
ICAgIERPTVN0cmluZyAgICAgICAgICBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAgICBwYXJlbnRSdWxlOwogCiAg
ICAgICAgIC8vIEV4dGVuc2lvbnMK
</data>
<flag name="review"
          id="25381"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="25476"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>