<?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>82040</bug_id>
          
          <creation_ts>2012-03-23 03:13:34 -0700</creation_ts>
          <short_desc>CSSParser doesn&apos;t set border-*-width/style/color to initial by border shorthand property</short_desc>
          <delta_ts>2012-03-23 12:59:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81737</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586197</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 03:13:34 -0700</bug_when>
    <thetext>​&lt;div id=&quot;test&quot; style=&quot;border:solid;&quot;&gt;hello&lt;/div&gt;​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
alert(​document.getElementById(&apos;test&apos;).style.borderTopColor);

should alert &quot;initial&quot;.
​</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586213</commentid>
    <comment_count>1</comment_count>
      <attachid>133457</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 04:14:22 -0700</bug_when>
    <thetext>Created attachment 133457
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586233</commentid>
    <comment_count>2</comment_count>
      <attachid>133457</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 04:45:36 -0700</bug_when>
    <thetext>Comment on attachment 133457
Fixes the bug

Attachment 133457 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12120603

New failing tests:
inspector/styles/styles-new-API.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586515</commentid>
    <comment_count>3</comment_count>
      <attachid>133457</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-23 11:20:27 -0700</bug_when>
    <thetext>Comment on attachment 133457
Fixes the bug

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

I just have a few drive-by comments about ChangeLog typos.

&gt; Source/WebCore/ChangeLog:9
&gt; +        While CSSParser::parseValue can process these shorthand properties property and set the longhand properties

&quot;shorthand properties *properly*&quot;

&gt; Source/WebCore/ChangeLog:20
&gt; +        This allows us to initialize mutliple properties (e.g. border-*-color) for a signle property missing in the set.

s/mutliple/multiple

&gt; Source/WebCore/ChangeLog:26
&gt; +        (CSSPropertyLonghand): Added the version that takes longhands instances for initialization purposes.

longhand instances, not longhands instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586526</commentid>
    <comment_count>4</comment_count>
      <attachid>133519</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 11:28:49 -0700</bug_when>
    <thetext>Created attachment 133519
Rebaseliined the failling test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586534</commentid>
    <comment_count>5</comment_count>
      <attachid>133519</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-23 11:32:28 -0700</bug_when>
    <thetext>Comment on attachment 133519
Rebaseliined the failling test

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        While CSSParser::parseValue can process these shorthand properties property and set the longhand properties

properties property? Did you mean &quot;properties properly&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586540</commentid>
    <comment_count>6</comment_count>
      <attachid>133519</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 11:35:27 -0700</bug_when>
    <thetext>Comment on attachment 133519
Rebaseliined the failling test

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        While CSSParser::parseValue can process these shorthand properties property and set the longhand properties
&gt; 
&gt; properties property? Did you mean &quot;properties properly&quot;?

Oops, yes. properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586556</commentid>
    <comment_count>7</comment_count>
      <attachid>133525</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 11:50:23 -0700</bug_when>
    <thetext>Created attachment 133525
Fixed typos in the change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586570</commentid>
    <comment_count>8</comment_count>
      <attachid>133525</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-23 12:00:48 -0700</bug_when>
    <thetext>Comment on attachment 133525
Fixed typos in the change log

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        The border shorthand property sets values for border-width, border-style, and border-color shorthand properties.
&gt; +        While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties
&gt; +        such as border-top-width, border-right-width, ... border-left-color, CSSParser::addProperty can&apos;t and the
&gt; +        initialization in parseShorthand fails for the border property.

Please state why you think this won&apos;t break the web.

&gt; Source/WebCore/css/CSSParser.cpp:2805
&gt; +    bool propertyFound[6]= { false, false, false, false, false, false }; // 6 is enough size.

The comment is terribly worded.

&gt; Source/WebCore/css/CSSParser.cpp:2811
&gt; +                    propertyFound[propIndex] = found = true;

We shy away from multiple assignments like this in general. Please split onto 2 lines.

&gt; Source/WebCore/css/CSSParser.cpp:2827
&gt; +    const CSSPropertyLonghand* const* const longhandsForInitialization = longhand.longhandsForInitialization();

That&apos;s a lot of consts.

&gt; Source/WebCore/css/CSSParser.cpp:2833
&gt; +            const CSSPropertyLonghand&amp; initLonghand = *(longhandsForInitialization[i]);

I don&apos;t really see the benefit of using a reference rather than a pointer here.

&gt; Source/WebCore/css/CSSPropertyLonghand.h:35
&gt; +    CSSPropertyLonghand(const int* properties, unsigned numProperties)

I wish we used CSSPropertyID and not int.

&gt; Source/WebCore/css/CSSPropertyLonghand.h:42
&gt; +    CSSPropertyLonghand(const int* properties, const CSSPropertyLonghand** longhandsForInitialization, unsigned numProperties)

Would const CSSPropertyLonghand*[] be clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586574</commentid>
    <comment_count>9</comment_count>
      <attachid>133525</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-03-23 12:03:39 -0700</bug_when>
    <thetext>Comment on attachment 133525
Fixed typos in the change log

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

The majority of my remarks were already raised by Simon Fraser. I had some very minor nits.

&gt; Source/WebCore/ChangeLog:9
&gt; +        While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties

Nit: CSSParser::parseValue =&gt; CSSParser::parseValue()

Since you are referring to the function here as opposed to the name of the function.

&gt; Source/WebCore/ChangeLog:10
&gt; +        such as border-top-width, border-right-width, ... border-left-color, CSSParser::addProperty can&apos;t and the

Similarly, &quot;CSSParser::addProperty&quot; should be &quot;CSSParser::addProperty()&quot;.

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        initialization in parseShorthand fails for the border property.
&gt; 
&gt; Please state why you think this won&apos;t break the web.

Similarly, &quot;parseShorthand&quot; should be &quot;parseShorthand()&quot;.

&gt; Source/WebCore/ChangeLog:20
&gt; +        This allows us to initialize mutliple properties (e.g. border-*-color) for a single property missing in the set.

Nit: mutliple =&gt; multiple</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586601</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 12:23:38 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 133525 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133525&amp;action=review
&gt; 
&gt; The majority of my remarks were already raised by Simon Fraser. I had some very minor nits.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties
&gt; 
&gt; Nit: CSSParser::parseValue =&gt; CSSParser::parseValue()
&gt; 
&gt; Since you are referring to the function here as opposed to the name of the function.

I&apos;m not a big fun of this particular notation since it doesn&apos;t state the full signature. In fact, CSSParser::parseValue() is strictly different from CSSParser::parseValue(StylePropertySet*, int, const String&amp;, bool, bool, CSSStyleSheet*). While CSSParser::parseValue can refer to any symbols or functions of the same name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586615</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 12:37:45 -0700</bug_when>
    <thetext>Committed r111888: &lt;http://trac.webkit.org/changeset/111888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586643</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 12:59:05 -0700</bug_when>
    <thetext>Thanks for the review guys :D</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133457</attachid>
            <date>2012-03-23 04:14:22 -0700</date>
            <delta_ts>2012-03-23 11:28:45 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-82040-20120323041421.patch</filename>
            <type>text/plain</type>
            <size>11101</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTg0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENTU1BhcnNlciBkb2Vzbid0IHNl
dCBib3JkZXItKi13aWR0aC9zdHlsZS9jb2xvciB0byBpbml0aWFsIGJ5IGJvcmRlciBzaG9ydGhh
bmQgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGJvcmRlciBzaG9ydGhhbmQgcHJvcGVydHkgc2V0cyB2YWx1ZXMgZm9yIGJvcmRlci13
aWR0aCwgYm9yZGVyLXN0eWxlLCBhbmQgYm9yZGVyLWNvbG9yIHNob3J0aGFuZCBwcm9wZXJ0aWVz
LgorICAgICAgICBXaGlsZSBDU1NQYXJzZXI6OnBhcnNlVmFsdWUgY2FuIHByb2Nlc3MgdGhlc2Ug
c2hvcnRoYW5kIHByb3BlcnRpZXMgcHJvcGVydHkgYW5kIHNldCB0aGUgbG9uZ2hhbmQgcHJvcGVy
dGllcworICAgICAgICBzdWNoIGFzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13aWR0
aCwgLi4uIGJvcmRlci1sZWZ0LWNvbG9yLCBDU1NQYXJzZXI6OmFkZFByb3BlcnR5IGNhbid0IGFu
ZCB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyc2VTaG9ydGhhbmQgZmFpbHMgZm9y
IHRoZSBib3JkZXIgcHJvcGVydHkuCisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBleHBsaWNp
dGx5IGluaXRpYWxpemluZyBsb25naGFuZCBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAorCisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlVmFsdWUpOiBVc2VzIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKTogVXNlcyBsb25naGFuZCBwcm9wZXJ0aWVzIGZv
ciBpbml0aWFsaXphdGlvbiBpZiBvbmUgaXMgYXZhaWxhYmxlLgorICAgICAgICBUaGlzIGFsbG93
cyB1cyB0byBpbml0aWFsaXplIG11dGxpcGxlIHByb3BlcnRpZXMgKGUuZy4gYm9yZGVyLSotY29s
b3IpIGZvciBhIHNpZ25sZSBwcm9wZXJ0eSBtaXNzaW5nIGluIHRoZSBzZXQuCisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym9yZGVyQWJy
aWRnZWRMb25naGFuZCk6IEFkZGVkLiBUaGUgbG9uZ2hhbmQgaGVyZSAoYm9yZGVyLXdpZHRoLCBi
b3JkZXItc3R5bGUsIGJvcmRlci1jb2xvcikgaXMKKyAgICAgICAgImFicmlkZ2VkIiBpbiB0aGUg
c2Vuc2UgdGhhdCB0aGV5J3JlIHN0aWxsIHNob3J0aGFuZHMuCisgICAgICAgICogY3NzL0NTU1By
b3BlcnR5TG9uZ2hhbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5TG9uZ2hhbmQ6
OkNTU1Byb3BlcnR5TG9uZ2hhbmQpOgorICAgICAgICAoQ1NTUHJvcGVydHlMb25naGFuZCk6IEFk
ZGVkIHRoZSB2ZXJzaW9uIHRoYXQgdGFrZXMgbG9uZ2hhbmRzIGluc3RhbmNlcyBmb3IgaW5pdGlh
bGl6YXRpb24gcHVycG9zZXMuCisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUxvbmdoYW5k
Ojpsb25naGFuZHNGb3JJbml0aWFsaXphdGlvbik6CisKIDIwMTItMDMtMjMgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgY3NzVGV4dCBzaG91bGQgdXNlIFN0cmlu
Z0J1aWxkZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAxMTE4MzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjI3OCw4ICsyMjc4LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
YgogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXI6CiAgICAgICAgIC8vIFsgJ2JvcmRlci13aWR0
aCcgfHwgJ2JvcmRlci1zdHlsZScgfHwgPGNvbG9yPiBdIHwgaW5oZXJpdAogICAgIHsKLSAgICAg
ICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7IENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIENT
U1Byb3BlcnR5Qm9yZGVyU3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IgfTsKLSAgICAgICAg
aWYgKHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgQ1NTUHJvcGVydHlMb25naGFuZChwcm9wZXJ0aWVz
LCAzKSwgaW1wb3J0YW50KSkgeworICAgICAgICBpZiAocGFyc2VTaG9ydGhhbmQocHJvcElkLCBi
b3JkZXJBYnJpZGdlZExvbmdoYW5kKCksIGltcG9ydGFudCkpIHsKICAgICAgICAgICAgIC8vIFRo
ZSBDU1MzIEJvcmRlcnMgYW5kIEJhY2tncm91bmRzIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IGJv
cmRlciBhbHNvIHJlc2V0cyBib3JkZXItaW1hZ2UuIEl0J3MgYXMKICAgICAgICAgICAgIC8vIHRo
b3VnaCBhIHZhbHVlIG9mIG5vbmUgd2FzIHNwZWNpZmllZCBmb3IgdGhlIGltYWdlLgogICAgICAg
ICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJJbWFnZSwgY3NzVmFsdWVQb29sKCkt
PmNyZWF0ZUltcGxpY2l0SW5pdGlhbFZhbHVlKCksIGltcG9ydGFudCk7CkBAIC0yODAzLDEzICsy
ODAyLDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNob3J0aGFuZChpbnQgcHJvcEkKIAogICAg
IGJvb2wgZm91bmQgPSBmYWxzZTsKICAgICB1bnNpZ25lZCBwcm9wZXJ0aWVzUGFyc2VkID0gMDsK
LSAgICBib29sIGZuZFs2XT0geyBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlIH07IC8vIDYgaXMgZW5vdWdoIHNpemUuCisgICAgYm9vbCBwcm9wZXJ0eUZvdW5kWzZdPSB7
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfTsgLy8gNiBpcyBlbm91
Z2ggc2l6ZS4KIAogICAgIHdoaWxlIChtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CiAgICAgICAg
IGZvdW5kID0gZmFsc2U7CiAgICAgICAgIGZvciAodW5zaWduZWQgcHJvcEluZGV4ID0gMDsgIWZv
dW5kICYmIHByb3BJbmRleCA8IGxvbmdoYW5kLmxlbmd0aCgpOyArK3Byb3BJbmRleCkgewotICAg
ICAgICAgICAgaWYgKCFmbmRbcHJvcEluZGV4XSAmJiBwYXJzZVZhbHVlKGxvbmdoYW5kLnByb3Bl
cnRpZXMoKVtwcm9wSW5kZXhdLCBpbXBvcnRhbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZu
ZFtwcm9wSW5kZXhdID0gZm91bmQgPSB0cnVlOworICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eUZv
dW5kW3Byb3BJbmRleF0gJiYgcGFyc2VWYWx1ZShsb25naGFuZC5wcm9wZXJ0aWVzKClbcHJvcElu
ZGV4XSwgaW1wb3J0YW50KSkgeworICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUZvdW5kW3By
b3BJbmRleF0gPSBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNQ
YXJzZWQrKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjgyNSw4ICsyODI0LDE2IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNob3J0aGFuZChpbnQgcHJvcEkKIAogICAgIC8vIEZpbGwg
aW4gYW55IHJlbWFpbmluZyBwcm9wZXJ0aWVzIHdpdGggdGhlIGluaXRpYWwgdmFsdWUuCiAgICAg
SW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIFByb3BlcnR5SW1wbGljaXQpOworICAg
IGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQqIGNvbnN0KiBjb25zdCBsb25naGFuZHNGb3JJbml0
aWFsaXphdGlvbiA9IGxvbmdoYW5kLmxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxvbmdoYW5kLmxlbmd0aCgpOyArK2kpIHsKLSAgICAg
ICAgaWYgKCFmbmRbaV0pCisgICAgICAgIGlmIChwcm9wZXJ0eUZvdW5kW2ldKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKSB7
CisgICAgICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBpbml0TG9uZ2hhbmQgPSAq
KGxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uW2ldKTsKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgcHJvcEluZGV4ID0gMDsgcHJvcEluZGV4IDwgaW5pdExvbmdoYW5kLmxlbmd0aCgpOyArK3By
b3BJbmRleCkKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eShpbml0TG9uZ2hhbmQucHJvcGVy
dGllcygpW3Byb3BJbmRleF0sIGNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVJbXBsaWNpdEluaXRpYWxW
YWx1ZSgpLCBpbXBvcnRhbnQpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGFkZFByb3Bl
cnR5KGxvbmdoYW5kLnByb3BlcnRpZXMoKVtpXSwgY3NzVmFsdWVQb29sKCktPmNyZWF0ZUltcGxp
Y2l0SW5pdGlhbFZhbHVlKCksIGltcG9ydGFudCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwCShyZXZpc2lvbiAxMTE4MzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTcxLDYgKzcxLDE5IEBAIGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJvcmRlckxvbmdo
YW4KICAgICByZXR1cm4gYm9yZGVyTG9uZ2hhbmQ7CiB9CiAKK2NvbnN0IENTU1Byb3BlcnR5TG9u
Z2hhbmQmIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQoKQoreworICAgIHN0YXRpYyBjb25zdCBpbnQg
Ym9yZGVyQWJyaWRnZWRQcm9wZXJ0aWVzW10gPSB7IENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIENT
U1Byb3BlcnR5Qm9yZGVyU3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IgfTsKKyAgICBzdGF0
aWMgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCogcHJvcGVydGllc0ZvckluaXRpYWxpemF0aW9u
W10gPSB7CisgICAgICAgICZib3JkZXJXaWR0aExvbmdoYW5kKCksCisgICAgICAgICZib3JkZXJT
dHlsZUxvbmdoYW5kKCksCisgICAgICAgICZib3JkZXJDb2xvckxvbmdoYW5kKCksCisgICAgfTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Byb3BlcnR5TG9uZ2hhbmQsIGJvcmRlckFicmlk
Z2VkTG9uZ2hhbmQsCisgICAgICAgIChib3JkZXJBYnJpZGdlZFByb3BlcnRpZXMsIHByb3BlcnRp
ZXNGb3JJbml0aWFsaXphdGlvbiwgV1RGX0FSUkFZX0xFTkdUSChib3JkZXJBYnJpZGdlZFByb3Bl
cnRpZXMpKSk7CisgICAgcmV0dXJuIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQ7Cit9CisKIGNvbnN0
IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJvcmRlckJvdHRvbUxvbmdoYW5kKCkKIHsKICAgICBzdGF0
aWMgY29uc3QgaW50IGJvcmRlckJvdHRvbVByb3BlcnRpZXNbXSA9IHsgQ1NTUHJvcGVydHlCb3Jk
ZXJCb3R0b21XaWR0aCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZSwgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21Db2xvciB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
TG9uZ2hhbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlM
b25naGFuZC5oCShyZXZpc2lvbiAxMTE4MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlMb25naGFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSArMjcsMzIgQEAgY2xhc3Mg
Q1NTUHJvcGVydHlMb25naGFuZCB7CiBwdWJsaWM6CiAgICAgQ1NTUHJvcGVydHlMb25naGFuZCgp
CiAgICAgICAgIDogbV9wcm9wZXJ0aWVzKDApCisgICAgICAgICwgbV9sb25naGFuZHNGb3JJbml0
aWFsaXphdGlvbigwKQogICAgICAgICAsIG1fbGVuZ3RoKDApCiAgICAgewogICAgIH0KIAotICAg
IENTU1Byb3BlcnR5TG9uZ2hhbmQoY29uc3QgaW50KiBmaXJzdFByb3BlcnR5LCB1bnNpZ25lZCBu
dW1Qcm9wZXJ0aWVzKQotICAgICAgICA6IG1fcHJvcGVydGllcyhmaXJzdFByb3BlcnR5KQorICAg
IENTU1Byb3BlcnR5TG9uZ2hhbmQoY29uc3QgaW50KiBwcm9wZXJ0aWVzLCB1bnNpZ25lZCBudW1Q
cm9wZXJ0aWVzKQorICAgICAgICA6IG1fcHJvcGVydGllcyhwcm9wZXJ0aWVzKQorICAgICAgICAs
IG1fbG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24oMCkKKyAgICAgICAgLCBtX2xlbmd0aChudW1Q
cm9wZXJ0aWVzKQorICAgIHsKKyAgICB9CisKKyAgICBDU1NQcm9wZXJ0eUxvbmdoYW5kKGNvbnN0
IGludCogcHJvcGVydGllcywgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCoqIGxvbmdoYW5kc0Zv
ckluaXRpYWxpemF0aW9uLCB1bnNpZ25lZCBudW1Qcm9wZXJ0aWVzKQorICAgICAgICA6IG1fcHJv
cGVydGllcyhwcm9wZXJ0aWVzKQorICAgICAgICAsIG1fbG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRp
b24obG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24pCiAgICAgICAgICwgbV9sZW5ndGgobnVtUHJv
cGVydGllcykKICAgICB7CiAgICAgfQogCiAgICAgY29uc3QgaW50KiBwcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzOyB9CisgICAgY29uc3QgQ1NTUHJvcGVydHlMb25naGFu
ZCoqIGxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb25naGFu
ZHNGb3JJbml0aWFsaXphdGlvbjsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGVuZ3RoOyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgaW50KiBtX3Byb3BlcnRpZXM7
CisgICAgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCoqIG1fbG9uZ2hhbmRzRm9ySW5pdGlhbGl6
YXRpb247CiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiB9OwogCkBAIC00OSw2ICs2MCw3IEBAIGNv
bnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJhY2tncm91bmRMb24KIGNvbnN0IENTU1Byb3BlcnR5
TG9uZ2hhbmQmIGJhY2tncm91bmRQb3NpdGlvbkxvbmdoYW5kKCk7CiBjb25zdCBDU1NQcm9wZXJ0
eUxvbmdoYW5kJiBiYWNrZ3JvdW5kUmVwZWF0TG9uZ2hhbmQoKTsKIGNvbnN0IENTU1Byb3BlcnR5
TG9uZ2hhbmQmIGJvcmRlckxvbmdoYW5kKCk7Citjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBi
b3JkZXJBYnJpZGdlZExvbmdoYW5kKCk7CiBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBib3Jk
ZXJCb3R0b21Mb25naGFuZCgpOwogY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgYm9yZGVyQ29s
b3JMb25naGFuZCgpOwogY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgYm9yZGVySW1hZ2VMb25n
aGFuZCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTExODQ2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMjMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTUGFyc2VyIGRvZXNuJ3Qgc2V0
IGJvcmRlci0qLXdpZHRoL3N0eWxlL2NvbG9yIHRvIGluaXRpYWwgYnkgYm9yZGVyIHNob3J0aGFu
ZCBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODIwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCBhIGNvbXByZWhlbnNpdmUgcmVncmVzc2lvbiB0ZXN0LgorCisgICAgICAgICogZmFz
dC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5kcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1s
b25naGFuZHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMjMgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBz
a2lwIGEgZmFpbGluZyB0ZXN0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvYm9yZGVyLXNo
b3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5kcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5k
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9ib3Jk
ZXItc2hvcnRoYW5kLWluaXRpYWxpemUtbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgYm9yZGVyIHNob3J0aGFuZCBw
cm9wZXJ0eSBpbml0aWFsaXplcyBsb25naGFuZCBwcm9wZXJ0aWVzIHN1Y2ggYXMgYm9yZGVyLXRv
cC1zdHlsZSBhbmQgYm9yZGVyLXJpZ2h0LWNvbG9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBkaXYuc2V0QXR0cmlidXRlKCdzdHlsZScsICdib3JkZXI6IDFweCcpO2Rp
di5zdHlsZS5ib3JkZXJUb3BTdHlsZSBpcyAnaW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRl
clRvcFN0eWxlIGlzICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyUmlnaHRTdHlsZSBp
cyAnaW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRlckJvdHRvbVN0eWxlIGlzICdpbml0aWFs
JworUEFTUyBkaXYuc3R5bGUuYm9yZGVyTGVmdFN0eWxlIGlzICdpbml0aWFsJworUEFTUyBkaXYu
c3R5bGUuYm9yZGVyVG9wQ29sb3IgaXMgJ2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJS
aWdodENvbG9yIGlzICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3Ig
aXMgJ2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJMZWZ0Q29sb3IgaXMgJ2luaXRpYWwn
CitQQVNTIGRpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JvcmRlcjogc29saWQnKTtkaXYuc3R5
bGUuYm9yZGVyVG9wV2lkdGggaXMgJ2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJSaWdo
dFdpZHRoIGlzICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyQm90dG9tV2lkdGggaXMg
J2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJMZWZ0V2lkdGggaXMgJ2luaXRpYWwnCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5k
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2JvcmRlci1zaG9ydGhh
bmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgYm9yZGVyIHNob3J0
aGFuZCBwcm9wZXJ0eSBpbml0aWFsaXplcyBsb25naGFuZCBwcm9wZXJ0aWVzIHN1Y2ggYXMgYm9y
ZGVyLXRvcC1zdHlsZSBhbmQgYm9yZGVyLXJpZ2h0LWNvbG9yLiIpOworCit2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CitzaG91bGRCZSgiZGl2LnNldEF0dHJpYnV0ZSgn
c3R5bGUnLCAnYm9yZGVyOiAxcHgnKTtkaXYuc3R5bGUuYm9yZGVyVG9wU3R5bGUiLCAiJ2luaXRp
YWwnIik7CitzaG91bGRCZSgiZGl2LnN0eWxlLmJvcmRlclRvcFN0eWxlIiwgIidpbml0aWFsJyIp
Oworc2hvdWxkQmUoImRpdi5zdHlsZS5ib3JkZXJSaWdodFN0eWxlIiwgIidpbml0aWFsJyIpOwor
c2hvdWxkQmUoImRpdi5zdHlsZS5ib3JkZXJCb3R0b21TdHlsZSIsICInaW5pdGlhbCciKTsKK3No
b3VsZEJlKCJkaXYuc3R5bGUuYm9yZGVyTGVmdFN0eWxlIiwgIidpbml0aWFsJyIpOworCitzaG91
bGRCZSgiZGl2LnN0eWxlLmJvcmRlclRvcENvbG9yIiwgIidpbml0aWFsJyIpOworc2hvdWxkQmUo
ImRpdi5zdHlsZS5ib3JkZXJSaWdodENvbG9yIiwgIidpbml0aWFsJyIpOworc2hvdWxkQmUoImRp
di5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYu
c3R5bGUuYm9yZGVyTGVmdENvbG9yIiwgIidpbml0aWFsJyIpOworCitzaG91bGRCZSgiZGl2LnNl
dEF0dHJpYnV0ZSgnc3R5bGUnLCAnYm9yZGVyOiBzb2xpZCcpO2Rpdi5zdHlsZS5ib3JkZXJUb3BX
aWR0aCIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUuYm9yZGVyUmlnaHRXaWR0
aCIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUuYm9yZGVyQm90dG9tV2lkdGgi
LCAiJ2luaXRpYWwnIik7CitzaG91bGRCZSgiZGl2LnN0eWxlLmJvcmRlckxlZnRXaWR0aCIsICIn
aW5pdGlhbCciKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133519</attachid>
            <date>2012-03-23 11:28:49 -0700</date>
            <delta_ts>2012-03-23 11:50:17 -0700</delta_ts>
            <desc>Rebaseliined the failling test</desc>
            <filename>bug-82040-20120323112848.patch</filename>
            <type>text/plain</type>
            <size>13577</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTg0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENTU1BhcnNlciBkb2Vzbid0IHNl
dCBib3JkZXItKi13aWR0aC9zdHlsZS9jb2xvciB0byBpbml0aWFsIGJ5IGJvcmRlciBzaG9ydGhh
bmQgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGJvcmRlciBzaG9ydGhhbmQgcHJvcGVydHkgc2V0cyB2YWx1ZXMgZm9yIGJvcmRlci13
aWR0aCwgYm9yZGVyLXN0eWxlLCBhbmQgYm9yZGVyLWNvbG9yIHNob3J0aGFuZCBwcm9wZXJ0aWVz
LgorICAgICAgICBXaGlsZSBDU1NQYXJzZXI6OnBhcnNlVmFsdWUgY2FuIHByb2Nlc3MgdGhlc2Ug
c2hvcnRoYW5kIHByb3BlcnRpZXMgcHJvcGVydHkgYW5kIHNldCB0aGUgbG9uZ2hhbmQgcHJvcGVy
dGllcworICAgICAgICBzdWNoIGFzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13aWR0
aCwgLi4uIGJvcmRlci1sZWZ0LWNvbG9yLCBDU1NQYXJzZXI6OmFkZFByb3BlcnR5IGNhbid0IGFu
ZCB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyc2VTaG9ydGhhbmQgZmFpbHMgZm9y
IHRoZSBib3JkZXIgcHJvcGVydHkuCisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBleHBsaWNp
dGx5IGluaXRpYWxpemluZyBsb25naGFuZCBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAorCisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlVmFsdWUpOiBVc2VzIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKTogVXNlcyBsb25naGFuZCBwcm9wZXJ0aWVzIGZv
ciBpbml0aWFsaXphdGlvbiBpZiBvbmUgaXMgYXZhaWxhYmxlLgorICAgICAgICBUaGlzIGFsbG93
cyB1cyB0byBpbml0aWFsaXplIG11dGxpcGxlIHByb3BlcnRpZXMgKGUuZy4gYm9yZGVyLSotY29s
b3IpIGZvciBhIHNpZ25sZSBwcm9wZXJ0eSBtaXNzaW5nIGluIHRoZSBzZXQuCisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym9yZGVyQWJy
aWRnZWRMb25naGFuZCk6IEFkZGVkLiBUaGUgbG9uZ2hhbmQgaGVyZSAoYm9yZGVyLXdpZHRoLCBi
b3JkZXItc3R5bGUsIGJvcmRlci1jb2xvcikgaXMKKyAgICAgICAgImFicmlkZ2VkIiBpbiB0aGUg
c2Vuc2UgdGhhdCB0aGV5J3JlIHN0aWxsIHNob3J0aGFuZHMuCisgICAgICAgICogY3NzL0NTU1By
b3BlcnR5TG9uZ2hhbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5TG9uZ2hhbmQ6
OkNTU1Byb3BlcnR5TG9uZ2hhbmQpOgorICAgICAgICAoQ1NTUHJvcGVydHlMb25naGFuZCk6IEFk
ZGVkIHRoZSB2ZXJzaW9uIHRoYXQgdGFrZXMgbG9uZ2hhbmRzIGluc3RhbmNlcyBmb3IgaW5pdGlh
bGl6YXRpb24gcHVycG9zZXMuCisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUxvbmdoYW5k
Ojpsb25naGFuZHNGb3JJbml0aWFsaXphdGlvbik6CisKIDIwMTItMDMtMjMgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgY3NzVGV4dCBzaG91bGQgdXNlIFN0cmlu
Z0J1aWxkZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAxMTE4MzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjI3OCw4ICsyMjc4LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
YgogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXI6CiAgICAgICAgIC8vIFsgJ2JvcmRlci13aWR0
aCcgfHwgJ2JvcmRlci1zdHlsZScgfHwgPGNvbG9yPiBdIHwgaW5oZXJpdAogICAgIHsKLSAgICAg
ICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7IENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIENT
U1Byb3BlcnR5Qm9yZGVyU3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IgfTsKLSAgICAgICAg
aWYgKHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgQ1NTUHJvcGVydHlMb25naGFuZChwcm9wZXJ0aWVz
LCAzKSwgaW1wb3J0YW50KSkgeworICAgICAgICBpZiAocGFyc2VTaG9ydGhhbmQocHJvcElkLCBi
b3JkZXJBYnJpZGdlZExvbmdoYW5kKCksIGltcG9ydGFudCkpIHsKICAgICAgICAgICAgIC8vIFRo
ZSBDU1MzIEJvcmRlcnMgYW5kIEJhY2tncm91bmRzIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IGJv
cmRlciBhbHNvIHJlc2V0cyBib3JkZXItaW1hZ2UuIEl0J3MgYXMKICAgICAgICAgICAgIC8vIHRo
b3VnaCBhIHZhbHVlIG9mIG5vbmUgd2FzIHNwZWNpZmllZCBmb3IgdGhlIGltYWdlLgogICAgICAg
ICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJJbWFnZSwgY3NzVmFsdWVQb29sKCkt
PmNyZWF0ZUltcGxpY2l0SW5pdGlhbFZhbHVlKCksIGltcG9ydGFudCk7CkBAIC0yODAzLDEzICsy
ODAyLDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNob3J0aGFuZChpbnQgcHJvcEkKIAogICAg
IGJvb2wgZm91bmQgPSBmYWxzZTsKICAgICB1bnNpZ25lZCBwcm9wZXJ0aWVzUGFyc2VkID0gMDsK
LSAgICBib29sIGZuZFs2XT0geyBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlIH07IC8vIDYgaXMgZW5vdWdoIHNpemUuCisgICAgYm9vbCBwcm9wZXJ0eUZvdW5kWzZdPSB7
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfTsgLy8gNiBpcyBlbm91
Z2ggc2l6ZS4KIAogICAgIHdoaWxlIChtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CiAgICAgICAg
IGZvdW5kID0gZmFsc2U7CiAgICAgICAgIGZvciAodW5zaWduZWQgcHJvcEluZGV4ID0gMDsgIWZv
dW5kICYmIHByb3BJbmRleCA8IGxvbmdoYW5kLmxlbmd0aCgpOyArK3Byb3BJbmRleCkgewotICAg
ICAgICAgICAgaWYgKCFmbmRbcHJvcEluZGV4XSAmJiBwYXJzZVZhbHVlKGxvbmdoYW5kLnByb3Bl
cnRpZXMoKVtwcm9wSW5kZXhdLCBpbXBvcnRhbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZu
ZFtwcm9wSW5kZXhdID0gZm91bmQgPSB0cnVlOworICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eUZv
dW5kW3Byb3BJbmRleF0gJiYgcGFyc2VWYWx1ZShsb25naGFuZC5wcm9wZXJ0aWVzKClbcHJvcElu
ZGV4XSwgaW1wb3J0YW50KSkgeworICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUZvdW5kW3By
b3BJbmRleF0gPSBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNQ
YXJzZWQrKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjgyNSw4ICsyODI0LDE2IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNob3J0aGFuZChpbnQgcHJvcEkKIAogICAgIC8vIEZpbGwg
aW4gYW55IHJlbWFpbmluZyBwcm9wZXJ0aWVzIHdpdGggdGhlIGluaXRpYWwgdmFsdWUuCiAgICAg
SW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIFByb3BlcnR5SW1wbGljaXQpOworICAg
IGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQqIGNvbnN0KiBjb25zdCBsb25naGFuZHNGb3JJbml0
aWFsaXphdGlvbiA9IGxvbmdoYW5kLmxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxvbmdoYW5kLmxlbmd0aCgpOyArK2kpIHsKLSAgICAg
ICAgaWYgKCFmbmRbaV0pCisgICAgICAgIGlmIChwcm9wZXJ0eUZvdW5kW2ldKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKSB7
CisgICAgICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBpbml0TG9uZ2hhbmQgPSAq
KGxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uW2ldKTsKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgcHJvcEluZGV4ID0gMDsgcHJvcEluZGV4IDwgaW5pdExvbmdoYW5kLmxlbmd0aCgpOyArK3By
b3BJbmRleCkKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eShpbml0TG9uZ2hhbmQucHJvcGVy
dGllcygpW3Byb3BJbmRleF0sIGNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVJbXBsaWNpdEluaXRpYWxW
YWx1ZSgpLCBpbXBvcnRhbnQpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGFkZFByb3Bl
cnR5KGxvbmdoYW5kLnByb3BlcnRpZXMoKVtpXSwgY3NzVmFsdWVQb29sKCktPmNyZWF0ZUltcGxp
Y2l0SW5pdGlhbFZhbHVlKCksIGltcG9ydGFudCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwCShyZXZpc2lvbiAxMTE4MzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTcxLDYgKzcxLDE5IEBAIGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJvcmRlckxvbmdo
YW4KICAgICByZXR1cm4gYm9yZGVyTG9uZ2hhbmQ7CiB9CiAKK2NvbnN0IENTU1Byb3BlcnR5TG9u
Z2hhbmQmIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQoKQoreworICAgIHN0YXRpYyBjb25zdCBpbnQg
Ym9yZGVyQWJyaWRnZWRQcm9wZXJ0aWVzW10gPSB7IENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIENT
U1Byb3BlcnR5Qm9yZGVyU3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IgfTsKKyAgICBzdGF0
aWMgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCogcHJvcGVydGllc0ZvckluaXRpYWxpemF0aW9u
W10gPSB7CisgICAgICAgICZib3JkZXJXaWR0aExvbmdoYW5kKCksCisgICAgICAgICZib3JkZXJT
dHlsZUxvbmdoYW5kKCksCisgICAgICAgICZib3JkZXJDb2xvckxvbmdoYW5kKCksCisgICAgfTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Byb3BlcnR5TG9uZ2hhbmQsIGJvcmRlckFicmlk
Z2VkTG9uZ2hhbmQsCisgICAgICAgIChib3JkZXJBYnJpZGdlZFByb3BlcnRpZXMsIHByb3BlcnRp
ZXNGb3JJbml0aWFsaXphdGlvbiwgV1RGX0FSUkFZX0xFTkdUSChib3JkZXJBYnJpZGdlZFByb3Bl
cnRpZXMpKSk7CisgICAgcmV0dXJuIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQ7Cit9CisKIGNvbnN0
IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJvcmRlckJvdHRvbUxvbmdoYW5kKCkKIHsKICAgICBzdGF0
aWMgY29uc3QgaW50IGJvcmRlckJvdHRvbVByb3BlcnRpZXNbXSA9IHsgQ1NTUHJvcGVydHlCb3Jk
ZXJCb3R0b21XaWR0aCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZSwgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21Db2xvciB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
TG9uZ2hhbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlM
b25naGFuZC5oCShyZXZpc2lvbiAxMTE4MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlMb25naGFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSArMjcsMzIgQEAgY2xhc3Mg
Q1NTUHJvcGVydHlMb25naGFuZCB7CiBwdWJsaWM6CiAgICAgQ1NTUHJvcGVydHlMb25naGFuZCgp
CiAgICAgICAgIDogbV9wcm9wZXJ0aWVzKDApCisgICAgICAgICwgbV9sb25naGFuZHNGb3JJbml0
aWFsaXphdGlvbigwKQogICAgICAgICAsIG1fbGVuZ3RoKDApCiAgICAgewogICAgIH0KIAotICAg
IENTU1Byb3BlcnR5TG9uZ2hhbmQoY29uc3QgaW50KiBmaXJzdFByb3BlcnR5LCB1bnNpZ25lZCBu
dW1Qcm9wZXJ0aWVzKQotICAgICAgICA6IG1fcHJvcGVydGllcyhmaXJzdFByb3BlcnR5KQorICAg
IENTU1Byb3BlcnR5TG9uZ2hhbmQoY29uc3QgaW50KiBwcm9wZXJ0aWVzLCB1bnNpZ25lZCBudW1Q
cm9wZXJ0aWVzKQorICAgICAgICA6IG1fcHJvcGVydGllcyhwcm9wZXJ0aWVzKQorICAgICAgICAs
IG1fbG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24oMCkKKyAgICAgICAgLCBtX2xlbmd0aChudW1Q
cm9wZXJ0aWVzKQorICAgIHsKKyAgICB9CisKKyAgICBDU1NQcm9wZXJ0eUxvbmdoYW5kKGNvbnN0
IGludCogcHJvcGVydGllcywgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCoqIGxvbmdoYW5kc0Zv
ckluaXRpYWxpemF0aW9uLCB1bnNpZ25lZCBudW1Qcm9wZXJ0aWVzKQorICAgICAgICA6IG1fcHJv
cGVydGllcyhwcm9wZXJ0aWVzKQorICAgICAgICAsIG1fbG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRp
b24obG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24pCiAgICAgICAgICwgbV9sZW5ndGgobnVtUHJv
cGVydGllcykKICAgICB7CiAgICAgfQogCiAgICAgY29uc3QgaW50KiBwcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzOyB9CisgICAgY29uc3QgQ1NTUHJvcGVydHlMb25naGFu
ZCoqIGxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb25naGFu
ZHNGb3JJbml0aWFsaXphdGlvbjsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGVuZ3RoOyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgaW50KiBtX3Byb3BlcnRpZXM7
CisgICAgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCoqIG1fbG9uZ2hhbmRzRm9ySW5pdGlhbGl6
YXRpb247CiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiB9OwogCkBAIC00OSw2ICs2MCw3IEBAIGNv
bnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJhY2tncm91bmRMb24KIGNvbnN0IENTU1Byb3BlcnR5
TG9uZ2hhbmQmIGJhY2tncm91bmRQb3NpdGlvbkxvbmdoYW5kKCk7CiBjb25zdCBDU1NQcm9wZXJ0
eUxvbmdoYW5kJiBiYWNrZ3JvdW5kUmVwZWF0TG9uZ2hhbmQoKTsKIGNvbnN0IENTU1Byb3BlcnR5
TG9uZ2hhbmQmIGJvcmRlckxvbmdoYW5kKCk7Citjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBi
b3JkZXJBYnJpZGdlZExvbmdoYW5kKCk7CiBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBib3Jk
ZXJCb3R0b21Mb25naGFuZCgpOwogY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgYm9yZGVyQ29s
b3JMb25naGFuZCgpOwogY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgYm9yZGVySW1hZ2VMb25n
aGFuZCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTExODQ2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMjMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTUGFyc2VyIGRvZXNuJ3Qgc2V0
IGJvcmRlci0qLXdpZHRoL3N0eWxlL2NvbG9yIHRvIGluaXRpYWwgYnkgYm9yZGVyIHNob3J0aGFu
ZCBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODIwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCBhIGNvbXByZWhlbnNpdmUgcmVncmVzc2lvbiB0ZXN0LgorCisgICAgICAgICogZmFz
dC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5kcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1s
b25naGFuZHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
bmV3LUFQSS1leHBlY3RlZC50eHQ6IENvcnJlY3RseSBsaXN0cyBib3JkZXIncyBsb25naGFuZCBw
cm9wZXJ0aWVzLgorCiAyMDEyLTAzLTIzICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZywgc2tpcCBhIGZhaWxp
bmcgdGVzdC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5p
dGlhbGl6ZS1sb25naGFuZHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFu
ZC1pbml0aWFsaXplLWxvbmdoYW5kcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGJvcmRlciBzaG9ydGhhbmQgcHJvcGVydHkgaW5p
dGlhbGl6ZXMgbG9uZ2hhbmQgcHJvcGVydGllcyBzdWNoIGFzIGJvcmRlci10b3Atc3R5bGUgYW5k
IGJvcmRlci1yaWdodC1jb2xvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgZGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYm9yZGVyOiAxcHgnKTtkaXYuc3R5bGUuYm9y
ZGVyVG9wU3R5bGUgaXMgJ2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJUb3BTdHlsZSBp
cyAnaW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRlclJpZ2h0U3R5bGUgaXMgJ2luaXRpYWwn
CitQQVNTIGRpdi5zdHlsZS5ib3JkZXJCb3R0b21TdHlsZSBpcyAnaW5pdGlhbCcKK1BBU1MgZGl2
LnN0eWxlLmJvcmRlckxlZnRTdHlsZSBpcyAnaW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRl
clRvcENvbG9yIGlzICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyUmlnaHRDb2xvciBp
cyAnaW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yIGlzICdpbml0aWFs
JworUEFTUyBkaXYuc3R5bGUuYm9yZGVyTGVmdENvbG9yIGlzICdpbml0aWFsJworUEFTUyBkaXYu
c2V0QXR0cmlidXRlKCdzdHlsZScsICdib3JkZXI6IHNvbGlkJyk7ZGl2LnN0eWxlLmJvcmRlclRv
cFdpZHRoIGlzICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyUmlnaHRXaWR0aCBpcyAn
aW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRlckJvdHRvbVdpZHRoIGlzICdpbml0aWFsJwor
UEFTUyBkaXYuc3R5bGUuYm9yZGVyTGVmdFdpZHRoIGlzICdpbml0aWFsJworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9ib3JkZXItc2hvcnRoYW5kLWluaXRpYWxp
emUtbG9uZ2hhbmRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9i
b3JkZXItc2hvcnRoYW5kLWluaXRpYWxpemUtbG9uZ2hhbmRzLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIGJvcmRlciBzaG9ydGhhbmQgcHJvcGVy
dHkgaW5pdGlhbGl6ZXMgbG9uZ2hhbmQgcHJvcGVydGllcyBzdWNoIGFzIGJvcmRlci10b3Atc3R5
bGUgYW5kIGJvcmRlci1yaWdodC1jb2xvci4iKTsKKwordmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworc2hvdWxkQmUoImRpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Jv
cmRlcjogMXB4Jyk7ZGl2LnN0eWxlLmJvcmRlclRvcFN0eWxlIiwgIidpbml0aWFsJyIpOworc2hv
dWxkQmUoImRpdi5zdHlsZS5ib3JkZXJUb3BTdHlsZSIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJl
KCJkaXYuc3R5bGUuYm9yZGVyUmlnaHRTdHlsZSIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJk
aXYuc3R5bGUuYm9yZGVyQm90dG9tU3R5bGUiLCAiJ2luaXRpYWwnIik7CitzaG91bGRCZSgiZGl2
LnN0eWxlLmJvcmRlckxlZnRTdHlsZSIsICInaW5pdGlhbCciKTsKKworc2hvdWxkQmUoImRpdi5z
dHlsZS5ib3JkZXJUb3BDb2xvciIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUu
Ym9yZGVyUmlnaHRDb2xvciIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUuYm9y
ZGVyQm90dG9tQ29sb3IiLCAiJ2luaXRpYWwnIik7CitzaG91bGRCZSgiZGl2LnN0eWxlLmJvcmRl
ckxlZnRDb2xvciIsICInaW5pdGlhbCciKTsKKworc2hvdWxkQmUoImRpdi5zZXRBdHRyaWJ1dGUo
J3N0eWxlJywgJ2JvcmRlcjogc29saWQnKTtkaXYuc3R5bGUuYm9yZGVyVG9wV2lkdGgiLCAiJ2lu
aXRpYWwnIik7CitzaG91bGRCZSgiZGl2LnN0eWxlLmJvcmRlclJpZ2h0V2lkdGgiLCAiJ2luaXRp
YWwnIik7CitzaG91bGRCZSgiZGl2LnN0eWxlLmJvcmRlckJvdHRvbVdpZHRoIiwgIidpbml0aWFs
JyIpOworc2hvdWxkQmUoImRpdi5zdHlsZS5ib3JkZXJMZWZ0V2lkdGgiLCAiJ2luaXRpYWwnIik7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDExMTgzMykKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5l
dy1BUEktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNyArMTgzLDEwIEBAIGgx
OiBbcmVndWxhcl0KIFsnYm9yZGVyLXJpZ2h0LXN0eWxlJzonc29saWQnXSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1ib3R0b20tc3R5bGUnOidzb2xpZCddIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWxlZnQtc3R5bGUnOidzb2xpZCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVyLWNvbG9yJzonaW5pdGlhbCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snYm9yZGVyLXRvcC1jb2xvcic6J2luaXRpYWwnXSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci1yaWdodC1jb2xvcic6J2luaXRp
YWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci1ib3R0b20tY29sb3In
Oidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3JkZXItbGVmdC1j
b2xvcic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1p
bWFnZSc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci10
b3Atd2lkdGgnOicwcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1y
aWdodC13aWR0aCc6JzBweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKQEAgLTQyMCw3
ICs0MjMsMTAgQEAgcmF3IHN0eWxlCiBbJ2JvcmRlci1yaWdodC1zdHlsZSc6J3NvbGlkJ10gQFt1
bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogWydib3JkZXItYm90dG9tLXN0eWxlJzonc29saWQn
XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1sZWZ0LXN0eWxlJzonc29s
aWQnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1jb2xvcic6J2luaXRp
YWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci10b3AtY29sb3InOidp
bml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3JkZXItcmlnaHQtY29s
b3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3JkZXItYm90
dG9tLWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snYm9y
ZGVyLWxlZnQtY29sb3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQog
Wydib3JkZXItaW1hZ2UnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQog
Wydib3JkZXItdG9wLXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQog
Wydib3JkZXItcmlnaHQtd2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxl
CkBAIC00NDQsNyArNDUwLDEwIEBAIHJhdyBzdHlsZQogWydib3JkZXItcmlnaHQtc3R5bGUnOidz
b2xpZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWJvdHRvbS1zdHls
ZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogWydib3JkZXItbGVmdC1z
dHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydib3JkZXItY29s
b3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3JkZXItdG9w
LWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snYm9yZGVy
LXJpZ2h0LWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1sn
Ym9yZGVyLWJvdHRvbS1jb2xvcic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0
eWxlCitbJ2JvcmRlci1sZWZ0LWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKIFsnYm9yZGVyLWltYWdlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKIFsnYm9yZGVyLXRvcC13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKIFsnYm9yZGVyLXJpZ2h0LXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZp
bmVkXSBzdHlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133525</attachid>
            <date>2012-03-23 11:50:23 -0700</date>
            <delta_ts>2012-03-23 12:03:39 -0700</delta_ts>
            <desc>Fixed typos in the change log</desc>
            <filename>bug-82040-20120323115022.patch</filename>
            <type>text/plain</type>
            <size>13576</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTg0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENTU1BhcnNlciBkb2Vzbid0IHNl
dCBib3JkZXItKi13aWR0aC9zdHlsZS9jb2xvciB0byBpbml0aWFsIGJ5IGJvcmRlciBzaG9ydGhh
bmQgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGJvcmRlciBzaG9ydGhhbmQgcHJvcGVydHkgc2V0cyB2YWx1ZXMgZm9yIGJvcmRlci13
aWR0aCwgYm9yZGVyLXN0eWxlLCBhbmQgYm9yZGVyLWNvbG9yIHNob3J0aGFuZCBwcm9wZXJ0aWVz
LgorICAgICAgICBXaGlsZSBDU1NQYXJzZXI6OnBhcnNlVmFsdWUgY2FuIHByb2Nlc3MgdGhlc2Ug
c2hvcnRoYW5kIHByb3BlcnRpZXMgcHJvcGVybHkgYW5kIHNldCB0aGUgbG9uZ2hhbmQgcHJvcGVy
dGllcworICAgICAgICBzdWNoIGFzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13aWR0
aCwgLi4uIGJvcmRlci1sZWZ0LWNvbG9yLCBDU1NQYXJzZXI6OmFkZFByb3BlcnR5IGNhbid0IGFu
ZCB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyc2VTaG9ydGhhbmQgZmFpbHMgZm9y
IHRoZSBib3JkZXIgcHJvcGVydHkuCisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBleHBsaWNp
dGx5IGluaXRpYWxpemluZyBsb25naGFuZCBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAorCisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlVmFsdWUpOiBVc2VzIGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKTogVXNlcyBsb25naGFuZCBwcm9wZXJ0aWVzIGZv
ciBpbml0aWFsaXphdGlvbiBpZiBvbmUgaXMgYXZhaWxhYmxlLgorICAgICAgICBUaGlzIGFsbG93
cyB1cyB0byBpbml0aWFsaXplIG11dGxpcGxlIHByb3BlcnRpZXMgKGUuZy4gYm9yZGVyLSotY29s
b3IpIGZvciBhIHNpbmdsZSBwcm9wZXJ0eSBtaXNzaW5nIGluIHRoZSBzZXQuCisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym9yZGVyQWJy
aWRnZWRMb25naGFuZCk6IEFkZGVkLiBUaGUgbG9uZ2hhbmQgaGVyZSAoYm9yZGVyLXdpZHRoLCBi
b3JkZXItc3R5bGUsIGJvcmRlci1jb2xvcikgaXMKKyAgICAgICAgImFicmlkZ2VkIiBpbiB0aGUg
c2Vuc2UgdGhhdCB0aGV5J3JlIHN0aWxsIHNob3J0aGFuZHMuCisgICAgICAgICogY3NzL0NTU1By
b3BlcnR5TG9uZ2hhbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5TG9uZ2hhbmQ6
OkNTU1Byb3BlcnR5TG9uZ2hhbmQpOgorICAgICAgICAoQ1NTUHJvcGVydHlMb25naGFuZCk6IEFk
ZGVkIHRoZSB2ZXJzaW9uIHRoYXQgdGFrZXMgbG9uZ2hhbmQgaW5zdGFuY2VzIGZvciBpbml0aWFs
aXphdGlvbiBwdXJwb3Nlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5TG9uZ2hhbmQ6
OmxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKToKKwogMjAxMi0wMy0yMyAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBjc3NUZXh0IHNob3VsZCB1c2UgU3RyaW5n
QnVpbGRlcgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDExMTgzMykK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Mjc4LDggKzIyNzgsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBi
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlcjoKICAgICAgICAgLy8gWyAnYm9yZGVyLXdpZHRo
JyB8fCAnYm9yZGVyLXN0eWxlJyB8fCA8Y29sb3I+IF0gfCBpbmhlcml0CiAgICAgewotICAgICAg
ICBjb25zdCBpbnQgcHJvcGVydGllc1szXSA9IHsgQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgQ1NT
UHJvcGVydHlCb3JkZXJTdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJDb2xvciB9OwotICAgICAgICBp
ZiAocGFyc2VTaG9ydGhhbmQocHJvcElkLCBDU1NQcm9wZXJ0eUxvbmdoYW5kKHByb3BlcnRpZXMs
IDMpLCBpbXBvcnRhbnQpKSB7CisgICAgICAgIGlmIChwYXJzZVNob3J0aGFuZChwcm9wSWQsIGJv
cmRlckFicmlkZ2VkTG9uZ2hhbmQoKSwgaW1wb3J0YW50KSkgewogICAgICAgICAgICAgLy8gVGhl
IENTUzMgQm9yZGVycyBhbmQgQmFja2dyb3VuZHMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgYm9y
ZGVyIGFsc28gcmVzZXRzIGJvcmRlci1pbWFnZS4gSXQncyBhcwogICAgICAgICAgICAgLy8gdGhv
dWdoIGEgdmFsdWUgb2Ygbm9uZSB3YXMgc3BlY2lmaWVkIGZvciB0aGUgaW1hZ2UuCiAgICAgICAg
ICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckltYWdlLCBjc3NWYWx1ZVBvb2woKS0+
Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSwgaW1wb3J0YW50KTsKQEAgLTI4MDMsMTMgKzI4
MDIsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKGludCBwcm9wSQogCiAgICAg
Ym9vbCBmb3VuZCA9IGZhbHNlOwogICAgIHVuc2lnbmVkIHByb3BlcnRpZXNQYXJzZWQgPSAwOwot
ICAgIGJvb2wgZm5kWzZdPSB7IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UgfTsgLy8gNiBpcyBlbm91Z2ggc2l6ZS4KKyAgICBib29sIHByb3BlcnR5Rm91bmRbNl09IHsg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9OyAvLyA2IGlzIGVub3Vn
aCBzaXplLgogCiAgICAgd2hpbGUgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpIHsKICAgICAgICAg
Zm91bmQgPSBmYWxzZTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9wSW5kZXggPSAwOyAhZm91
bmQgJiYgcHJvcEluZGV4IDwgbG9uZ2hhbmQubGVuZ3RoKCk7ICsrcHJvcEluZGV4KSB7Ci0gICAg
ICAgICAgICBpZiAoIWZuZFtwcm9wSW5kZXhdICYmIHBhcnNlVmFsdWUobG9uZ2hhbmQucHJvcGVy
dGllcygpW3Byb3BJbmRleF0sIGltcG9ydGFudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgZm5k
W3Byb3BJbmRleF0gPSBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoIXByb3BlcnR5Rm91
bmRbcHJvcEluZGV4XSAmJiBwYXJzZVZhbHVlKGxvbmdoYW5kLnByb3BlcnRpZXMoKVtwcm9wSW5k
ZXhdLCBpbXBvcnRhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5Rm91bmRbcHJv
cEluZGV4XSA9IGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllc1Bh
cnNlZCsrOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yODI1LDggKzI4MjQsMTYgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKGludCBwcm9wSQogCiAgICAgLy8gRmlsbCBp
biBhbnkgcmVtYWluaW5nIHByb3BlcnRpZXMgd2l0aCB0aGUgaW5pdGlhbCB2YWx1ZS4KICAgICBJ
bXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUodGhpcywgUHJvcGVydHlJbXBsaWNpdCk7CisgICAg
Y29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCogY29uc3QqIGNvbnN0IGxvbmdoYW5kc0ZvckluaXRp
YWxpemF0aW9uID0gbG9uZ2hhbmQubG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24oKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbG9uZ2hhbmQubGVuZ3RoKCk7ICsraSkgewotICAgICAg
ICBpZiAoIWZuZFtpXSkKKyAgICAgICAgaWYgKHByb3BlcnR5Rm91bmRbaV0pCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBpZiAobG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24pIHsK
KyAgICAgICAgICAgIGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGluaXRMb25naGFuZCA9ICoo
bG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb25baV0pOworICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBwcm9wSW5kZXggPSAwOyBwcm9wSW5kZXggPCBpbml0TG9uZ2hhbmQubGVuZ3RoKCk7ICsrcHJv
cEluZGV4KQorICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5KGluaXRMb25naGFuZC5wcm9wZXJ0
aWVzKClbcHJvcEluZGV4XSwgY3NzVmFsdWVQb29sKCktPmNyZWF0ZUltcGxpY2l0SW5pdGlhbFZh
bHVlKCksIGltcG9ydGFudCk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYWRkUHJvcGVy
dHkobG9uZ2hhbmQucHJvcGVydGllcygpW2ldLCBjc3NWYWx1ZVBvb2woKS0+Y3JlYXRlSW1wbGlj
aXRJbml0aWFsVmFsdWUoKSwgaW1wb3J0YW50KTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAJKHJldmlzaW9uIDExMTgzMykKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzEsNiArNzEsMTkgQEAgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgYm9yZGVyTG9uZ2hh
bgogICAgIHJldHVybiBib3JkZXJMb25naGFuZDsKIH0KIAorY29uc3QgQ1NTUHJvcGVydHlMb25n
aGFuZCYgYm9yZGVyQWJyaWRnZWRMb25naGFuZCgpCit7CisgICAgc3RhdGljIGNvbnN0IGludCBi
b3JkZXJBYnJpZGdlZFByb3BlcnRpZXNbXSA9IHsgQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgQ1NT
UHJvcGVydHlCb3JkZXJTdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJDb2xvciB9OworICAgIHN0YXRp
YyBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kKiBwcm9wZXJ0aWVzRm9ySW5pdGlhbGl6YXRpb25b
XSA9IHsKKyAgICAgICAgJmJvcmRlcldpZHRoTG9uZ2hhbmQoKSwKKyAgICAgICAgJmJvcmRlclN0
eWxlTG9uZ2hhbmQoKSwKKyAgICAgICAgJmJvcmRlckNvbG9yTG9uZ2hhbmQoKSwKKyAgICB9Owor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ1NTUHJvcGVydHlMb25naGFuZCwgYm9yZGVyQWJyaWRn
ZWRMb25naGFuZCwKKyAgICAgICAgKGJvcmRlckFicmlkZ2VkUHJvcGVydGllcywgcHJvcGVydGll
c0ZvckluaXRpYWxpemF0aW9uLCBXVEZfQVJSQVlfTEVOR1RIKGJvcmRlckFicmlkZ2VkUHJvcGVy
dGllcykpKTsKKyAgICByZXR1cm4gYm9yZGVyQWJyaWRnZWRMb25naGFuZDsKK30KKwogY29uc3Qg
Q1NTUHJvcGVydHlMb25naGFuZCYgYm9yZGVyQm90dG9tTG9uZ2hhbmQoKQogewogICAgIHN0YXRp
YyBjb25zdCBpbnQgYm9yZGVyQm90dG9tUHJvcGVydGllc1tdID0geyBDU1NQcm9wZXJ0eUJvcmRl
ckJvdHRvbVdpZHRoLCBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVN0eWxlLCBDU1NQcm9wZXJ0eUJv
cmRlckJvdHRvbUNvbG9yIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlM
b25naGFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUxv
bmdoYW5kLmgJKHJldmlzaW9uIDExMTgzMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eUxvbmdoYW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDIxICsyNywzMiBAQCBjbGFzcyBD
U1NQcm9wZXJ0eUxvbmdoYW5kIHsKIHB1YmxpYzoKICAgICBDU1NQcm9wZXJ0eUxvbmdoYW5kKCkK
ICAgICAgICAgOiBtX3Byb3BlcnRpZXMoMCkKKyAgICAgICAgLCBtX2xvbmdoYW5kc0ZvckluaXRp
YWxpemF0aW9uKDApCiAgICAgICAgICwgbV9sZW5ndGgoMCkKICAgICB7CiAgICAgfQogCi0gICAg
Q1NTUHJvcGVydHlMb25naGFuZChjb25zdCBpbnQqIGZpcnN0UHJvcGVydHksIHVuc2lnbmVkIG51
bVByb3BlcnRpZXMpCi0gICAgICAgIDogbV9wcm9wZXJ0aWVzKGZpcnN0UHJvcGVydHkpCisgICAg
Q1NTUHJvcGVydHlMb25naGFuZChjb25zdCBpbnQqIHByb3BlcnRpZXMsIHVuc2lnbmVkIG51bVBy
b3BlcnRpZXMpCisgICAgICAgIDogbV9wcm9wZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgICAgICwg
bV9sb25naGFuZHNGb3JJbml0aWFsaXphdGlvbigwKQorICAgICAgICAsIG1fbGVuZ3RoKG51bVBy
b3BlcnRpZXMpCisgICAgeworICAgIH0KKworICAgIENTU1Byb3BlcnR5TG9uZ2hhbmQoY29uc3Qg
aW50KiBwcm9wZXJ0aWVzLCBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kKiogbG9uZ2hhbmRzRm9y
SW5pdGlhbGl6YXRpb24sIHVuc2lnbmVkIG51bVByb3BlcnRpZXMpCisgICAgICAgIDogbV9wcm9w
ZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgICAgICwgbV9sb25naGFuZHNGb3JJbml0aWFsaXphdGlv
bihsb25naGFuZHNGb3JJbml0aWFsaXphdGlvbikKICAgICAgICAgLCBtX2xlbmd0aChudW1Qcm9w
ZXJ0aWVzKQogICAgIHsKICAgICB9CiAKICAgICBjb25zdCBpbnQqIHByb3BlcnRpZXMoKSBjb25z
dCB7IHJldHVybiBtX3Byb3BlcnRpZXM7IH0KKyAgICBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5k
KiogbG9uZ2hhbmRzRm9ySW5pdGlhbGl6YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvbmdoYW5k
c0ZvckluaXRpYWxpemF0aW9uOyB9CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9sZW5ndGg7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBpbnQqIG1fcHJvcGVydGllczsK
KyAgICBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kKiogbV9sb25naGFuZHNGb3JJbml0aWFsaXph
dGlvbjsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKIH07CiAKQEAgLTQ5LDYgKzYwLDcgQEAgY29u
c3QgQ1NTUHJvcGVydHlMb25naGFuZCYgYmFja2dyb3VuZExvbgogY29uc3QgQ1NTUHJvcGVydHlM
b25naGFuZCYgYmFja2dyb3VuZFBvc2l0aW9uTG9uZ2hhbmQoKTsKIGNvbnN0IENTU1Byb3BlcnR5
TG9uZ2hhbmQmIGJhY2tncm91bmRSZXBlYXRMb25naGFuZCgpOwogY29uc3QgQ1NTUHJvcGVydHlM
b25naGFuZCYgYm9yZGVyTG9uZ2hhbmQoKTsKK2NvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJv
cmRlckFicmlkZ2VkTG9uZ2hhbmQoKTsKIGNvbnN0IENTU1Byb3BlcnR5TG9uZ2hhbmQmIGJvcmRl
ckJvdHRvbUxvbmdoYW5kKCk7CiBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBib3JkZXJDb2xv
ckxvbmdoYW5kKCk7CiBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBib3JkZXJJbWFnZUxvbmdo
YW5kKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTE4NDYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMy0yMyAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1NQYXJzZXIgZG9lc24ndCBzZXQg
Ym9yZGVyLSotd2lkdGgvc3R5bGUvY29sb3IgdG8gaW5pdGlhbCBieSBib3JkZXIgc2hvcnRoYW5k
IHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MjA0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGEgY29tcHJlaGVuc2l2ZSByZWdyZXNzaW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0
L2Nzcy9ib3JkZXItc2hvcnRoYW5kLWluaXRpYWxpemUtbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxv
bmdoYW5kcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1u
ZXctQVBJLWV4cGVjdGVkLnR4dDogQ29ycmVjdGx5IGxpc3RzIGJvcmRlcidzIGxvbmdoYW5kIHBy
b3BlcnRpZXMuCisKIDIwMTItMDMtMjMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0
Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBza2lwIGEgZmFpbGlu
ZyB0ZXN0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0
aWFsaXplLWxvbmdoYW5kcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5kcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9ib3JkZXItc2hvcnRoYW5k
LWluaXRpYWxpemUtbG9uZ2hhbmRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgYm9yZGVyIHNob3J0aGFuZCBwcm9wZXJ0eSBpbml0
aWFsaXplcyBsb25naGFuZCBwcm9wZXJ0aWVzIHN1Y2ggYXMgYm9yZGVyLXRvcC1zdHlsZSBhbmQg
Ym9yZGVyLXJpZ2h0LWNvbG9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBkaXYuc2V0QXR0cmlidXRlKCdzdHlsZScsICdib3JkZXI6IDFweCcpO2Rpdi5zdHlsZS5ib3Jk
ZXJUb3BTdHlsZSBpcyAnaW5pdGlhbCcKK1BBU1MgZGl2LnN0eWxlLmJvcmRlclRvcFN0eWxlIGlz
ICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyUmlnaHRTdHlsZSBpcyAnaW5pdGlhbCcK
K1BBU1MgZGl2LnN0eWxlLmJvcmRlckJvdHRvbVN0eWxlIGlzICdpbml0aWFsJworUEFTUyBkaXYu
c3R5bGUuYm9yZGVyTGVmdFN0eWxlIGlzICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVy
VG9wQ29sb3IgaXMgJ2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJSaWdodENvbG9yIGlz
ICdpbml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgaXMgJ2luaXRpYWwn
CitQQVNTIGRpdi5zdHlsZS5ib3JkZXJMZWZ0Q29sb3IgaXMgJ2luaXRpYWwnCitQQVNTIGRpdi5z
ZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JvcmRlcjogc29saWQnKTtkaXYuc3R5bGUuYm9yZGVyVG9w
V2lkdGggaXMgJ2luaXRpYWwnCitQQVNTIGRpdi5zdHlsZS5ib3JkZXJSaWdodFdpZHRoIGlzICdp
bml0aWFsJworUEFTUyBkaXYuc3R5bGUuYm9yZGVyQm90dG9tV2lkdGggaXMgJ2luaXRpYWwnCitQ
QVNTIGRpdi5zdHlsZS5ib3JkZXJMZWZ0V2lkdGggaXMgJ2luaXRpYWwnCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvYm9yZGVyLXNob3J0aGFuZC1pbml0aWFsaXplLWxvbmdoYW5kcy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2JvcmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6
ZS1sb25naGFuZHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Jv
cmRlci1zaG9ydGhhbmQtaW5pdGlhbGl6ZS1sb25naGFuZHMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgYm9yZGVyIHNob3J0aGFuZCBwcm9wZXJ0
eSBpbml0aWFsaXplcyBsb25naGFuZCBwcm9wZXJ0aWVzIHN1Y2ggYXMgYm9yZGVyLXRvcC1zdHls
ZSBhbmQgYm9yZGVyLXJpZ2h0LWNvbG9yLiIpOworCit2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CitzaG91bGRCZSgiZGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYm9y
ZGVyOiAxcHgnKTtkaXYuc3R5bGUuYm9yZGVyVG9wU3R5bGUiLCAiJ2luaXRpYWwnIik7CitzaG91
bGRCZSgiZGl2LnN0eWxlLmJvcmRlclRvcFN0eWxlIiwgIidpbml0aWFsJyIpOworc2hvdWxkQmUo
ImRpdi5zdHlsZS5ib3JkZXJSaWdodFN0eWxlIiwgIidpbml0aWFsJyIpOworc2hvdWxkQmUoImRp
di5zdHlsZS5ib3JkZXJCb3R0b21TdHlsZSIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYu
c3R5bGUuYm9yZGVyTGVmdFN0eWxlIiwgIidpbml0aWFsJyIpOworCitzaG91bGRCZSgiZGl2LnN0
eWxlLmJvcmRlclRvcENvbG9yIiwgIidpbml0aWFsJyIpOworc2hvdWxkQmUoImRpdi5zdHlsZS5i
b3JkZXJSaWdodENvbG9yIiwgIidpbml0aWFsJyIpOworc2hvdWxkQmUoImRpdi5zdHlsZS5ib3Jk
ZXJCb3R0b21Db2xvciIsICInaW5pdGlhbCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUuYm9yZGVy
TGVmdENvbG9yIiwgIidpbml0aWFsJyIpOworCitzaG91bGRCZSgiZGl2LnNldEF0dHJpYnV0ZSgn
c3R5bGUnLCAnYm9yZGVyOiBzb2xpZCcpO2Rpdi5zdHlsZS5ib3JkZXJUb3BXaWR0aCIsICInaW5p
dGlhbCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUuYm9yZGVyUmlnaHRXaWR0aCIsICInaW5pdGlh
bCciKTsKK3Nob3VsZEJlKCJkaXYuc3R5bGUuYm9yZGVyQm90dG9tV2lkdGgiLCAiJ2luaXRpYWwn
Iik7CitzaG91bGRCZSgiZGl2LnN0eWxlLmJvcmRlckxlZnRXaWR0aCIsICInaW5pdGlhbCciKTsK
KworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTExODMzKQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3
LUFQSS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsxODMsMTAgQEAgaDE6
IFtyZWd1bGFyXQogWydib3JkZXItcmlnaHQtc3R5bGUnOidzb2xpZCddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWJvdHRvbS1zdHlsZSc6J3NvbGlkJ10gQFt1bmRlZmlu
ZWQtdW5kZWZpbmVkXSBzdHlsZQogWydib3JkZXItbGVmdC1zdHlsZSc6J3NvbGlkJ10gQFt1bmRl
ZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydib3JkZXItY29sb3InOidpbml0aWFsJ10gQFt1bmRl
ZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3JkZXItdG9wLWNvbG9yJzonaW5pdGlhbCddIEBb
dW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snYm9yZGVyLXJpZ2h0LWNvbG9yJzonaW5pdGlh
bCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snYm9yZGVyLWJvdHRvbS1jb2xvcic6
J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci1sZWZ0LWNv
bG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWlt
YWdlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLXRv
cC13aWR0aCc6JzBweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLXJp
Z2h0LXdpZHRoJzonMHB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQpAQCAtNDIwLDcg
KzQyMywxMCBAQCByYXcgc3R5bGUKIFsnYm9yZGVyLXJpZ2h0LXN0eWxlJzonc29saWQnXSBAW3Vu
ZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1ib3R0b20tc3R5bGUnOidzb2xpZCdd
IEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKIFsnYm9yZGVyLWxlZnQtc3R5bGUnOidzb2xp
ZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVyLWNvbG9yJzonaW5pdGlh
bCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snYm9yZGVyLXRvcC1jb2xvcic6J2lu
aXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci1yaWdodC1jb2xv
cic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci1ib3R0
b20tY29sb3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3Jk
ZXItbGVmdC1jb2xvcic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBb
J2JvcmRlci1pbWFnZSc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBb
J2JvcmRlci10b3Atd2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBb
J2JvcmRlci1yaWdodC13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUK
QEAgLTQ0NCw3ICs0NTAsMTAgQEAgcmF3IHN0eWxlCiBbJ2JvcmRlci1yaWdodC1zdHlsZSc6J3Nv
bGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQogWydib3JkZXItYm90dG9tLXN0eWxl
Jzonc29saWQnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCiBbJ2JvcmRlci1sZWZ0LXN0
eWxlJzonc29saWQnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1jb2xv
cic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2JvcmRlci10b3At
Y29sb3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydib3JkZXIt
cmlnaHQtY29sb3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWydi
b3JkZXItYm90dG9tLWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKK1snYm9yZGVyLWxlZnQtY29sb3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQogWydib3JkZXItaW1hZ2UnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQogWydib3JkZXItdG9wLXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQogWydib3JkZXItcmlnaHQtd2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCg==
</data>
<flag name="review"
          id="137544"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>