<?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>136063</bug_id>
          
          <creation_ts>2014-08-19 00:32:21 -0700</creation_ts>
          <short_desc>REGRESSION: CSS not() selector does not work when it appears after or within @supports</short_desc>
          <delta_ts>2014-08-21 14:22:42 -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>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.9</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Koji Ishii">kojii</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>betravis</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yuki.sekiguchi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1029974</commentid>
    <comment_count>0</comment_count>
      <attachid>236804</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2014-08-19 00:32:21 -0700</bug_when>
    <thetext>Created attachment 236804
Test file for CSS not() selector after @supports

CSS not() selector does not work when it appears after or within @supports.

Just inserting:
  @supports (display:block) {
  }
before a not() selector causes  the not() selector not working.

* Not work on Nightly build on Mac OS X 10.9
* Safari 7.0.6 (9537.78.2) on the same Mac OS X 10.9 is fine
* Chrome, Firefox are fine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030005</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-08-19 04:49:33 -0700</bug_when>
    <thetext>Confirmed it works in the shipping Safari but fails in nightly builds of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030006</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-19 04:49:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/18061252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030220</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-08-19 23:09:00 -0700</bug_when>
    <thetext>What a weird bug.
Getting the CSS Rules with CSSOM, it looks like the second style rules disappear when @supports is there. All we have is the first style rule, and the support rule.

I suspect something horribly wrong happens when we are parsing the empty @supports rule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030221</commentid>
    <comment_count>4</comment_count>
      <attachid>236856</attachid>
    <who name="Yuki Sekiguchi">yuki.sekiguchi</who>
    <bug_when>2014-08-19 23:10:21 -0700</bug_when>
    <thetext>Created attachment 236856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030223</commentid>
    <comment_count>5</comment_count>
    <who name="Yuki Sekiguchi">yuki.sekiguchi</who>
    <bug_when>2014-08-19 23:17:49 -0700</bug_when>
    <thetext>I confirmed that combining the patch in Bug 136062 and this patch fixed http://ikilote.net/fr/Collection/Personnalit%C3%A9.html?id=394</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030240</commentid>
    <comment_count>6</comment_count>
    <who name="Yuki Sekiguchi">yuki.sekiguchi</who>
    <bug_when>2014-08-20 00:46:21 -0700</bug_when>
    <thetext>Win EWS was failed with:

&gt; error MSB3073: The command &quot;REM Do not edit from the Visual Studio IDE! Customize via a TestWebKitAPIPreBuild.cmd file.

I think this is not related to my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030280</commentid>
    <comment_count>7</comment_count>
      <attachid>236856</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-20 09:06:14 -0700</bug_when>
    <thetext>Comment on attachment 236856
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:11347
&gt; +        // Since -webkit-supports-condition uses &apos;{&apos;, which is CharacterStartRuleGroup, only SupportsMode should be cleared.
&gt; +        if (m_parsingMode == SupportsMode)
&gt; +            m_parsingMode = NormalMode;

Windows is failing to compile because these three lines of code need to be inside #if ENABLE(CSS3_CONDITIONAL_RULES)

&gt; Source/WebCore/css/CSSParser.h:551
&gt; +    bool isSupportsMode() const { return m_parsingMode == SupportsMode || m_parsingMode == SupportsConditionMode; };

Windows is failing to compile because this function needs to be inside #if ENABLE(CSS3_CONDITIONAL_RULES).

The name of this function is not right. We would not say that a “CSS parser is supports mode”, so we don’t want to write the code like that. Perhaps the name isParsingSupports()?

Extra unneeded semicolon on the end of this line.

&gt; LayoutTests/css3/supports-not-selector-expected.html:6
&gt; +&lt;div class=&quot;inside&quot;&gt;This should be green if not() pseudo class selector works inside @supports rule.&lt;/div&gt;
&gt; +&lt;div class=&quot;outside&quot;&gt;This should be green if not() pseudo class selector works after/outside @supports rule.&lt;/div&gt;

I suggest removing the class attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030282</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-20 09:11:46 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Win EWS was failed with:
&gt; 
&gt; &gt; error MSB3073: The command &quot;REM Do not edit from the Visual Studio IDE! Customize via a TestWebKitAPIPreBuild.cmd file.
&gt; 
&gt; I think this is not related to my patch.

That’s not the error on the bot. The errors are many like these:

     1&gt;C:\cygwin\home\buildbot\WebKit\Source\WebCore\css\CSSParser.h(551): error C2065: &apos;SupportsMode&apos; : undeclared identifier (..\page\animation\AnimationController.cpp)
     1&gt;C:\cygwin\home\buildbot\WebKit\Source\WebCore\css\CSSParser.h(551): error C2065: &apos;SupportsConditionMode&apos; : undeclared identifier (..\page\animation\AnimationController.cpp)

Sorry it’s so hard to find the Windows errors. The trick I use is to search for the string &quot;: error&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030327</commentid>
    <comment_count>9</comment_count>
      <attachid>236856</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2014-08-20 11:16:33 -0700</bug_when>
    <thetext>Comment on attachment 236856
Patch

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

Thanks for taking this on. Added some small suggestions that I think could help clean up the patch, mainly I think we should follow media query&apos;s lead and avoid the addition of the SupportsConditionMode type.

&gt; Source/WebCore/css/CSSParser.cpp:9985
&gt;      CharacterEndMediaQuery,

This seems more like renaming &apos;CharacterEndMediaQuery&apos; than adding a new CharacterType, so you may want to drop &apos;CharacterEndMediaQuery&apos;. You might also choose a name like CharacterEndConditionQuery to remain consistent with the old name, but that&apos;s just my opinion.

&gt; Source/WebCore/css/CSSParser.cpp:11349
&gt;      case CharacterEndMediaQuery:

I think it&apos;s odd to have this leftover case when you&apos;ll never actually have &apos;CharacterEndMediaQuery&apos; returned by the ASCII array values used in this switch.

&gt; Source/WebCore/css/CSSParser.h:558
&gt; +        SupportsConditionMode,

Rather than adding an extra mode and the above isSupports test, would it be possible to use the same approach as media queries, and use a space as the initial delimiter?  See CSSGrammar.y.in&apos;s webkit_mediaquery production, and CSSParser.cpp::parseMediaQuery. It&apos;s a little hacky, but has precedent and seems cleaner than needing to track SupportsMode and SupportsConditionMode separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030328</commentid>
    <comment_count>10</comment_count>
      <attachid>236856</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2014-08-20 11:16:33 -0700</bug_when>
    <thetext>Comment on attachment 236856
Patch

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

Thanks for taking this on. Added some small suggestions that I think could help clean up the patch, mainly I think we should follow media query&apos;s lead and avoid the addition of the SupportsConditionMode type.

&gt; Source/WebCore/css/CSSParser.cpp:9985
&gt;      CharacterEndMediaQuery,

This seems more like renaming &apos;CharacterEndMediaQuery&apos; than adding a new CharacterType, so you may want to drop &apos;CharacterEndMediaQuery&apos;. You might also choose a name like CharacterEndConditionQuery to remain consistent with the old name, but that&apos;s just my opinion.

&gt; Source/WebCore/css/CSSParser.cpp:11349
&gt;      case CharacterEndMediaQuery:

I think it&apos;s odd to have this leftover case when you&apos;ll never actually have &apos;CharacterEndMediaQuery&apos; returned by the ASCII array values used in this switch.

&gt; Source/WebCore/css/CSSParser.h:558
&gt; +        SupportsConditionMode,

Rather than adding an extra mode and the above isSupports test, would it be possible to use the same approach as media queries, and use a space as the initial delimiter?  See CSSGrammar.y.in&apos;s webkit_mediaquery production, and CSSParser.cpp::parseMediaQuery. It&apos;s a little hacky, but has precedent and seems cleaner than needing to track SupportsMode and SupportsConditionMode separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030372</commentid>
    <comment_count>11</comment_count>
      <attachid>236856</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-08-20 13:23:14 -0700</bug_when>
    <thetext>Comment on attachment 236856
Patch

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

&gt; LayoutTests/ChangeLog:11
&gt; +        * css3/supports-not-selector-expected.html: Added.
&gt; +        * css3/supports-not-selector.html: Added.

For completeness, it would be good to also have tests for
-empty @support rule.
-the CSSOM model of the 2 cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030450</commentid>
    <comment_count>12</comment_count>
      <attachid>236914</attachid>
    <who name="Yuki Sekiguchi">yuki.sekiguchi</who>
    <bug_when>2014-08-20 22:18:35 -0700</bug_when>
    <thetext>Created attachment 236914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030495</commentid>
    <comment_count>13</comment_count>
    <who name="Yuki Sekiguchi">yuki.sekiguchi</who>
    <bug_when>2014-08-21 04:33:09 -0700</bug_when>
    <thetext>Hi Darin,  Bear,  Benjamin,

Thank you all for reviewing my patch.

I realized that @supports also handle error case that there is @supports followed by &apos;;&apos; like @media. Chrome and Firefox correctly handle &quot;not&quot; selector after the invalid @supports, but my patch didn&apos;t.

I rewrote my patch, and @supports mostly work like @media.

(In reply to comment #7)
&gt; &gt; Source/WebCore/css/CSSParser.h:551
&gt; &gt; +    bool isSupportsMode() const { return m_parsingMode == SupportsMode || m_parsingMode == SupportsConditionMode; };
&gt; 
&gt; Windows is failing to compile because this function needs to be inside #if ENABLE(CSS3_CONDITIONAL_RULES).

Sorry. I should be more careful when I write code behind compile flag.

&gt; &gt; LayoutTests/css3/supports-not-selector-expected.html:6
&gt; &gt; +&lt;div class=&quot;inside&quot;&gt;This should be green if not() pseudo class selector works inside @supports rule.&lt;/div&gt;
&gt; &gt; +&lt;div class=&quot;outside&quot;&gt;This should be green if not() pseudo class selector works after/outside @supports rule.&lt;/div&gt;
&gt; 
&gt; I suggest removing the class attributes.

Removed.

(In reply to comment #10)
&gt; &gt; Source/WebCore/css/CSSParser.cpp:9985
&gt; &gt;      CharacterEndMediaQuery,
&gt; 
&gt; This seems more like renaming &apos;CharacterEndMediaQuery&apos; than adding a new CharacterType, so you may want to drop &apos;CharacterEndMediaQuery&apos;. You might also choose a name like CharacterEndConditionQuery to remain consistent with the old name, but that&apos;s just my opinion.
&gt; 
&gt; &gt; Source/WebCore/css/CSSParser.cpp:11349
&gt; &gt;      case CharacterEndMediaQuery:
&gt; 
&gt; I think it&apos;s odd to have this leftover case when you&apos;ll never actually have &apos;CharacterEndMediaQuery&apos; returned by the ASCII array values used in this switch.

I didn&apos;t realized &apos;;&apos; error recovery of @supports. Yes, sharing same code with media query is better! Fixed.

&gt; &gt; Source/WebCore/css/CSSParser.h:558
&gt; &gt; +        SupportsConditionMode,
&gt; 
&gt; Rather than adding an extra mode and the above isSupports test, would it be possible to use the same approach as media queries, and use a space as the initial delimiter?  See CSSGrammar.y.in&apos;s webkit_mediaquery production, and CSSParser.cpp::parseMediaQuery. It&apos;s a little hacky, but has precedent and seems cleaner than needing to track SupportsMode and SupportsConditionMode separately.

I thought it was a little hacky, too. But, fixing this made my patch cleaner. Fixed.

(In reply to comment #11)
&gt; For completeness, it would be good to also have tests for
&gt; -empty @support rule.
&gt; -the CSSOM model of the 2 cases.

Thanks. I can find the bug in &apos;;&apos; error recovery case.
Added error recovery test case and CSSOM test case. Now, my patch works same as Chrome and Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030537</commentid>
    <comment_count>14</comment_count>
      <attachid>236914</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-21 12:57:31 -0700</bug_when>
    <thetext>Comment on attachment 236914
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:11352
&gt; +        bool isParsingCondition = m_parsingMode == MediaQueryMode;
&gt; +#if ENABLE(CSS3_CONDITIONAL_RULES)
&gt; +        isParsingCondition = isParsingCondition || m_parsingMode == SupportsMode;
&gt; +#endif
&gt; +        if (isParsingCondition)
&gt;              m_parsingMode = NormalMode;
&gt;          break;

While this is OK, I think two separate if statements would read more simply:

    if (m_parsingMode == MediaQueryMode)
        m_parsingMode = NormalMode;
#if ENABLE(CSS3_CONDITIONAL_RULES)
    if (m_parsingMode == SupportsMode)
        m_parsingMode = NormalMode;
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030545</commentid>
    <comment_count>15</comment_count>
      <attachid>236914</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-21 13:29:59 -0700</bug_when>
    <thetext>Comment on attachment 236914
Patch

Clearing flags on attachment: 236914

Committed r172833: &lt;http://trac.webkit.org/changeset/172833&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030546</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-21 13:30:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030552</commentid>
    <comment_count>17</comment_count>
      <attachid>236914</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-08-21 14:22:42 -0700</bug_when>
    <thetext>Comment on attachment 236914
Patch

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

LGTM too.

&gt; LayoutTests/ChangeLog:11
&gt; +        * css3/supports-not-selector-cssom-expected.txt: Added.
&gt; +        * css3/supports-not-selector-cssom.html: Added.

Thanks for the new test. It is great.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>236804</attachid>
            <date>2014-08-19 00:32:21 -0700</date>
            <delta_ts>2014-08-19 00:32:21 -0700</delta_ts>
            <desc>Test file for CSS not() selector after @supports</desc>
            <filename>not-selector-and-supports.htm</filename>
            <type>text/html</type>
            <size>334</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgpkaXY6bm90KC50MikgewogIGJh
Y2tncm91bmQtY29sb3I6bGlnaHRncmVlbjsKfQoKQHN1cHBvcnRzIChkaXNwbGF5OmJsb2NrKSB7
Cn0KCmRpdjpub3QoLnQxKSB7CiAgYmFja2dyb3VuZC1jb2xvcjpsaWdodGdyZWVuOwp9Cjwvc3R5
bGU+CjwvaGVhZD4KPGJvZHk+CiAgPGRpdiBjbGFzcz0idDEiPjxwPkdyZWVuIGlmIG5vdCBzZWxl
Y3RvciB3b3Jrcy48L2Rpdj4KICA8ZGl2IGNsYXNzPSJ0MiI+PHA+R3JlZW4gaWYgbm90IHNlbGVj
dG9yIGFmdGVyIEBzdXBwb3J0cyB3b3Jrcy48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236856</attachid>
            <date>2014-08-19 23:10:21 -0700</date>
            <delta_ts>2014-08-20 22:18:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136063-20140820151012.patch</filename>
            <type>text/plain</type>
            <size>8012</size>
            <attacher name="Yuki Sekiguchi">yuki.sekiguchi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU2Nzk0MjFjMzgwOWUy
ZTRjZDVhYjljNDA1M2Y1YWFkOGM0OGE2NC4uNWQyMmNlY2IyNmFkMmE1ZmQzMzA5ZGIzNzM1YjRl
YWVhNDU0ODZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA4LTE5ICBZdWtp
IFNla2lndWNoaSAgPHl1a2kuc2VraWd1Y2hpQGFjY2Vzcy1jb21wYW55LmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OOiBDU1Mgbm90KCkgc2VsZWN0b3IgZG9lcyBub3Qgd29yayB3aGVuIGl0IGFw
cGVhcnMgYWZ0ZXIgb3Igd2l0aGluIEBzdXBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTUGFyc2VyIGNoYW5nZXMgaXRzIG1fcGFyc2luZ01v
ZGUgdG8gU3VwcG9ydHNNb2RlIHdoZW4gaXQgZmluZHMKKyAgICAgICAgIkBzdXBwb3J0cyIgdG9r
ZW4uIEhvd2V2ZXIsIHRoZSBtb2RlIHdpbGwgYmUgbmV2ZXIgY2hhbmdlZCB0bworICAgICAgICBO
b3JtYWxNb2RlLiBUaGlzIGNoYW5nZXMgcGFyc2luZyBhbGdvcml0aG0gZm9yICJub3QiIHRva2Vu
IGZvcmV2ZXIsCisgICAgICAgIGFuZCBpdCBjYW5ub3QgcGFyc2Ugbm90IHBzZXVkbyBjbGFzcyBz
ZWxlY3Rvci4KKworICAgICAgICBXaGVuIHdlIGZpbmlzaCBwYXJzaW5nIEBzdXBwb3J0cyBydWxl
LCB3ZSBzaG91bGQgY2hhbmdlIHRvIG5vcm1hbAorICAgICAgICBtb2RlLgorCisgICAgICAgIEBt
ZWRpYSBkb2VzIHRoZSBzYW1lIHRoaW5nLCBidXQgQHN1cHBvcnRzIGRvZXNuJ3Qgbm90IGZpbmlz
aCB3aXRoCisgICAgICAgICc7Jywgc28gdGhpcyBwYXRjaCBjaGFuZ2VkIHRva2VuIG5hbWUgZm9y
ICd7JyB0bworICAgICAgICBDaGFyYWN0ZXJTdGFydFJ1bGVHcm91cC4gSWYgd2UgZmluZCBDaGFy
YWN0ZXJTdGFydFJ1bGVHcm91cCwKKyAgICAgICAgd2UgY2hhbmdlIHRoZSBtb2RlIHRvIG5vcm1h
bCBtb2RlLgorCisgICAgICAgIFNpbmNlICJALXdlYmtpdC1zdXBwb3J0cy1jb25kaXRpb257IHN0
cmluZyB9IiBpbgorICAgICAgICBwYXJzZVN1cHBvcnRzQ29uZGl0aW9uKCkgdXNlcyAneycsIHdl
IHNob3VsZCBub3QgY2hhbmdlIHRoZSBtb2RlCisgICAgICAgIHdoZW4gdGhlIHJ1bGUgaXMgQC13
ZWJraXQtc3VwcG9ydHMtY29uZGl0aW9uLiBUbyBkbyB0aGlzLAorICAgICAgICBhZGRlZCBTdXBw
b3J0c0NvbmRpdGlvbk1vZGUgdG8gUGFyc2luZ01vZGUuCisKKyAgICAgICAgVGVzdDogY3NzMy9z
dXBwb3J0cy1ub3Qtc2VsZWN0b3IuaHRtbAorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc0NTU0xldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OmRldGVjdEF0VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpkZXRl
Y3RTdXBwb3J0c1Rva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmVhbExleCk6
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
Ojppc1N1cHBvcnRzTW9kZSk6CisKIDIwMTQtMDgtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9u
cyBvZiBhbGwgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IGRkZjBkNzBhOThkMzc5OTJmYjc5ZDY0ODgxNTJjNjUyNjg5ODY3NzcuLmJhZTkw
N2Q0YTVhOTQ0YjI2NDU1ODRjNTNhNDkwZDUzZjJiOWEyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC05OTgxLDYgKzk5ODEsNyBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogICAgIENo
YXJhY3Rlck90aGVyLAogICAgIENoYXJhY3Rlck51bGwsCiAgICAgQ2hhcmFjdGVyV2hpdGVTcGFj
ZSwKKyAgICBDaGFyYWN0ZXJTdGFydFJ1bGVHcm91cCwKICAgICBDaGFyYWN0ZXJFbmRNZWRpYVF1
ZXJ5LAogICAgIENoYXJhY3RlckVuZE50aENoaWxkLAogICAgIENoYXJhY3RlclF1b3RlLApAQCAt
MTAxMjQsNyArMTAxMjUsNyBAQCBzdGF0aWMgY29uc3QgQ2hhcmFjdGVyVHlwZSB0eXBlc09mQVND
SUlDaGFyYWN0ZXJzWzEyOF0gPSB7CiAvKiAxMjAgLSB4ICAgICAgICAgICAgICAgICAgKi8gQ2hh
cmFjdGVySWRlbnRpZmllclN0YXJ0LAogLyogMTIxIC0geSAgICAgICAgICAgICAgICAgICovIENo
YXJhY3RlcklkZW50aWZpZXJTdGFydCwKIC8qIDEyMiAtIHogICAgICAgICAgICAgICAgICAqLyBD
aGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQsCi0vKiAxMjMgLSB7ICAgICAgICAgICAgICAgICAgKi8g
Q2hhcmFjdGVyRW5kTWVkaWFRdWVyeSwKKy8qIDEyMyAtIHsgICAgICAgICAgICAgICAgICAqLyBD
aGFyYWN0ZXJTdGFydFJ1bGVHcm91cCwKIC8qIDEyNCAtIHwgICAgICAgICAgICAgICAgICAqLyBD
aGFyYWN0ZXJWZXJ0aWNhbEJhciwKIC8qIDEyNSAtIH0gICAgICAgICAgICAgICAgICAqLyBDaGFy
YWN0ZXJPdGhlciwKIC8qIDEyNiAtIH4gICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJUaWxk
ZSwKQEAgLTExMDY0LDcgKzExMDY1LDcgQEAgaW5saW5lIHZvaWQgQ1NTUGFyc2VyOjpkZXRlY3RB
dFRva2VuKGludCBsZW5ndGgsIGJvb2wgaGFzRXNjYXBlKQogICAgICAgICBjYXNlIDI3OgogI2lm
IEVOQUJMRShDU1MzX0NPTkRJVElPTkFMX1JVTEVTKQogICAgICAgICAgICAgaWYgKGlzRXF1YWxU
b0NTU0lkZW50aWZpZXIobmFtZSArIDIsICJ3ZWJraXQtc3VwcG9ydHMtY29uZGl0aW9uIikpIHsK
LSAgICAgICAgICAgICAgICBtX3BhcnNpbmdNb2RlID0gU3VwcG9ydHNNb2RlOworICAgICAgICAg
ICAgICAgIG1fcGFyc2luZ01vZGUgPSBTdXBwb3J0c0NvbmRpdGlvbk1vZGU7CiAgICAgICAgICAg
ICAgICAgbV90b2tlbiA9IFdFQktJVF9TVVBQT1JUU19DT05ESVRJT05fU1lNOwogICAgICAgICAg
ICAgfQogI2VuZGlmCkBAIC0xMTA3Nyw3ICsxMTA3OCw3IEBAIGlubGluZSB2b2lkIENTU1BhcnNl
cjo6ZGV0ZWN0QXRUb2tlbihpbnQgbGVuZ3RoLCBib29sIGhhc0VzY2FwZSkKIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogaW5saW5lIHZvaWQgQ1NTUGFyc2VyOjpkZXRlY3RTdXBw
b3J0c1Rva2VuKGludCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUKG1fcGFyc2luZ01vZGUgPT0gU3Vw
cG9ydHNNb2RlKTsKKyAgICBBU1NFUlQoaXNTdXBwb3J0c01vZGUoKSk7CiAgICAgQ2hhcmFjdGVy
VHlwZSogbmFtZSA9IHRva2VuU3RhcnQ8Q2hhcmFjdGVyVHlwZT4oKTsKIAogICAgIGlmIChsZW5n
dGggPT0gMikgewpAQCAtMTExMzMsNyArMTExMzQsNyBAQCByZXN0YXJ0QWZ0ZXJDb21tZW50Ogog
CiAgICAgICAgIGlmIChVTkxJS0VMWSgqY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBl
PigpID09ICcoJykpIHsKICNpZiBFTkFCTEUoQ1NTM19DT05ESVRJT05BTF9SVUxFUykKLSAgICAg
ICAgICAgIGlmIChtX3BhcnNpbmdNb2RlID09IFN1cHBvcnRzTW9kZSAmJiAhaGFzRXNjYXBlKSB7
CisgICAgICAgICAgICBpZiAoaXNTdXBwb3J0c01vZGUoKSAmJiAhaGFzRXNjYXBlKSB7CiAgICAg
ICAgICAgICAgICAgZGV0ZWN0U3VwcG9ydHNUb2tlbjxTcmNDaGFyYWN0ZXJUeXBlPihyZXN1bHQg
LSB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCkpOwogICAgICAgICAgICAgICAgIGlmICht
X3Rva2VuICE9IElERU5UKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTExMTY5LDcg
KzExMTcwLDcgQEAgcmVzdGFydEFmdGVyQ29tbWVudDoKICAgICAgICAgICAgIGlmIChtX3BhcnNp
bmdNb2RlID09IE1lZGlhUXVlcnlNb2RlKQogICAgICAgICAgICAgICAgIGRldGVjdE1lZGlhUXVl
cnlUb2tlbjxTcmNDaGFyYWN0ZXJUeXBlPihyZXN1bHQgLSB0b2tlblN0YXJ0PFNyY0NoYXJhY3Rl
clR5cGU+KCkpOwogI2lmIEVOQUJMRShDU1MzX0NPTkRJVElPTkFMX1JVTEVTKQotICAgICAgICAg
ICAgZWxzZSBpZiAobV9wYXJzaW5nTW9kZSA9PSBTdXBwb3J0c01vZGUpCisgICAgICAgICAgICBl
bHNlIGlmIChpc1N1cHBvcnRzTW9kZSgpKQogICAgICAgICAgICAgICAgIGRldGVjdFN1cHBvcnRz
VG9rZW48U3JjQ2hhcmFjdGVyVHlwZT4ocmVzdWx0IC0gdG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJU
eXBlPigpKTsKICNlbmRpZgogICAgICAgICAgICAgZWxzZSBpZiAobV9wYXJzaW5nTW9kZSA9PSBO
dGhDaGlsZE1vZGUgJiYgaXNBU0NJSUFscGhhQ2FzZWxlc3NFcXVhbCh0b2tlblN0YXJ0PFNyY0No
YXJhY3RlclR5cGU+KClbMF0sICduJykpIHsKQEAgLTExMzQwLDYgKzExMzQxLDExIEBAIHJlc3Rh
cnRBZnRlckNvbW1lbnQ6CiAgICAgICAgIH0gd2hpbGUgKCpjdXJyZW50Q2hhcmFjdGVyPFNyY0No
YXJhY3RlclR5cGU+KCkgPD0gJyAnICYmICh0eXBlc09mQVNDSUlDaGFyYWN0ZXJzWypjdXJyZW50
Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCldID09IENoYXJhY3RlcldoaXRlU3BhY2UpKTsK
ICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENoYXJhY3RlclN0YXJ0UnVsZUdyb3VwOgorICAg
ICAgICAvLyBTaW5jZSAtd2Via2l0LXN1cHBvcnRzLWNvbmRpdGlvbiB1c2VzICd7Jywgd2hpY2gg
aXMgQ2hhcmFjdGVyU3RhcnRSdWxlR3JvdXAsIG9ubHkgU3VwcG9ydHNNb2RlIHNob3VsZCBiZSBj
bGVhcmVkLgorICAgICAgICBpZiAobV9wYXJzaW5nTW9kZSA9PSBTdXBwb3J0c01vZGUpCisgICAg
ICAgICAgICBtX3BhcnNpbmdNb2RlID0gTm9ybWFsTW9kZTsKKyAgICAgICAgRkFMTFRIUk9VR0g7
CiAgICAgY2FzZSBDaGFyYWN0ZXJFbmRNZWRpYVF1ZXJ5OgogICAgICAgICBpZiAobV9wYXJzaW5n
TW9kZSA9PSBNZWRpYVF1ZXJ5TW9kZSkKICAgICAgICAgICAgIG1fcGFyc2luZ01vZGUgPSBOb3Jt
YWxNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGUyZWJkM2UwYTBmZWNiYTdiMGEzNTU4
NzFmOWU0M2ZiYzM5ZDM1NTkuLjlkZDYzZTVjOWM1NTI2MjFmMzYyMDljYzNkYjQ4NjUwOTM1OWM2
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTU0OCwxMSArNTQ4LDE0IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBwYXJzZUludGVnZXJPckN1c3RvbUlkZW50RnJvbUdyaWRQb3NpdGlvbihSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+JiBudW1lcmljVmFsdWUsIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4mIGdyaWRMaW5lTmFtZSk7CiAjZW5kaWYKIAorICAgIGJvb2wgaXNTdXBwb3J0c01vZGUo
KSBjb25zdCB7IHJldHVybiBtX3BhcnNpbmdNb2RlID09IFN1cHBvcnRzTW9kZSB8fCBtX3BhcnNp
bmdNb2RlID09IFN1cHBvcnRzQ29uZGl0aW9uTW9kZTsgfTsKKwogICAgIGVudW0gUGFyc2luZ01v
ZGUgewogICAgICAgICBOb3JtYWxNb2RlLAogICAgICAgICBNZWRpYVF1ZXJ5TW9kZSwKICNpZiBF
TkFCTEUoQ1NTM19DT05ESVRJT05BTF9SVUxFUykKICAgICAgICAgU3VwcG9ydHNNb2RlLAorICAg
ICAgICBTdXBwb3J0c0NvbmRpdGlvbk1vZGUsCiAjZW5kaWYKICAgICAgICAgTnRoQ2hpbGRNb2Rl
CiAgICAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmMTYwN2NmMDA0ZDg5NWU0ZmQ3NWFmNjVmZDJlNzEwMTRjNWEwNjVh
Li4xYzA4ZTYyYWYxMmYzNjliYmI1YjQwMjVmMThmNGUxYjM3MGUxZDUyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTQtMDgtMTkgIFl1a2kgU2VraWd1Y2hpICA8eXVraS5zZWtpZ3VjaGlAYWNj
ZXNzLWNvbXBhbnkuY29tPgorCisgICAgICAgIFJFR1JFU1NJT046IENTUyBub3QoKSBzZWxlY3Rv
ciBkb2VzIG5vdCB3b3JrIHdoZW4gaXQgYXBwZWFycyBhZnRlciBvciB3aXRoaW4gQHN1cHBvcnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwNjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRo
YXQgQHN1cHBvcnRzIGRvZXNuJ3QgYnJlYWsgIm5vdCIgcHNldWRvIGNsYXNzIHNlbGVjdG9yLgor
CisgICAgICAgICogY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3ItZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3IuaHRtbDogQWRkZWQuCisK
IDIwMTQtMDgtMTggIFJlYmVjY2EgSGF1Y2sgIDxyaGF1Y2tAYWRvYmUuY29tPgogCiAgICAgICAg
IFtDU1MgU2hhcGVzXSBJbXBvcnQgdGhlIENTUyBTaGFwZXMgVzNDIHRlc3Qgc3VpdGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMtbm90LXNlbGVjdG9yLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYwMzJlYjMzNWE4MDUyMjk1MWQzNTA2MmE0NGQzODIwYzM4OWJhZDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Citk
aXYgeyBjb2xvcjogZ3JlZW47IH0KKzwvc3R5bGU+Cis8ZGl2IGNsYXNzPSJpbnNpZGUiPlRoaXMg
c2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFzcyBzZWxlY3RvciB3b3JrcyBpbnNp
ZGUgQHN1cHBvcnRzIHJ1bGUuPC9kaXY+Cis8ZGl2IGNsYXNzPSJvdXRzaWRlIj5UaGlzIHNob3Vs
ZCBiZSBncmVlbiBpZiBub3QoKSBwc2V1ZG8gY2xhc3Mgc2VsZWN0b3Igd29ya3MgYWZ0ZXIvb3V0
c2lkZSBAc3VwcG9ydHMgcnVsZS48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
c3VwcG9ydHMtbm90LXNlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLW5v
dC1zZWxlY3Rvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MjE1MTM0ZjQyZGU5YjkxZmMxYmNjNGY2Yjcz
N2MxZDgzNjA4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRz
LW5vdC1zZWxlY3Rvci5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0
eWxlPgorZGl2IHsgY29sb3I6IHJlZDsgfQorQHN1cHBvcnRzIChkaXNwbGF5OmJsb2NrKSB7Cisg
ICAgZGl2Om5vdCgub3V0c2lkZSkgeyBjb2xvcjogZ3JlZW47IH0KK30KK2Rpdjpub3QoLmluc2lk
ZSkgeworICAgIGNvbG9yOmdyZWVuOworfQorPC9zdHlsZT4KKzxkaXYgY2xhc3M9Imluc2lkZSI+
VGhpcyBzaG91bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9yIHdvcmtz
IGluc2lkZSBAc3VwcG9ydHMgcnVsZS48L2Rpdj4KKzxkaXYgY2xhc3M9Im91dHNpZGUiPlRoaXMg
c2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFzcyBzZWxlY3RvciB3b3JrcyBhZnRl
ci9vdXRzaWRlIEBzdXBwb3J0cyBydWxlLjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236914</attachid>
            <date>2014-08-20 22:18:35 -0700</date>
            <delta_ts>2014-08-21 14:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136063-20140821141826.patch</filename>
            <type>text/plain</type>
            <size>14360</size>
            <attacher name="Yuki Sekiguchi">yuki.sekiguchi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU2Nzk0MjFjMzgwOWUy
ZTRjZDVhYjljNDA1M2Y1YWFkOGM0OGE2NC4uYWMxNGE3NGQ3MTU2ODRmNjdmY2UwNWFjYzgxNzNj
NjJhZDdlMTlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA4LTE5ICBZdWtp
IFNla2lndWNoaSAgPHl1a2kuc2VraWd1Y2hpQGFjY2Vzcy1jb21wYW55LmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OOiBDU1Mgbm90KCkgc2VsZWN0b3IgZG9lcyBub3Qgd29yayB3aGVuIGl0IGFw
cGVhcnMgYWZ0ZXIgb3Igd2l0aGluIEBzdXBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTUGFyc2VyIGNoYW5nZXMgaXRzIG1fcGFyc2luZ01v
ZGUgdG8gU3VwcG9ydHNNb2RlIHdoZW4gaXQgZmluZHMKKyAgICAgICAgIkBzdXBwb3J0cyIgdG9r
ZW4uIEhvd2V2ZXIsIHRoZSBtb2RlIHdpbGwgYmUgbmV2ZXIgY2hhbmdlZCB0bworICAgICAgICBO
b3JtYWxNb2RlLiBUaGlzIGNoYW5nZXMgcGFyc2luZyBhbGdvcml0aG0gZm9yICJub3QiIHRva2Vu
IGZvcmV2ZXIsCisgICAgICAgIGFuZCBpdCBjYW5ub3QgcGFyc2Ugbm90IHBzZXVkbyBjbGFzcyBz
ZWxlY3Rvci4KKworICAgICAgICBXaGVuIHdlIGZpbmlzaCBwYXJzaW5nIEBzdXBwb3J0cyBydWxl
LCB3ZSBzaG91bGQgY2hhbmdlIHRvIG5vcm1hbAorICAgICAgICBtb2RlLgorCisgICAgICAgIEBt
ZWRpYSBkb2VzIHRoZSBzYW1lIHRoaW5nLiBUaGlzIHBhdGNoIGNoYW5nZWQgQ2hhcmFjdGVyRW5k
TWVkaWFRdWVyeQorICAgICAgICB0byBDaGFyYWN0ZXJFbmRDb25kaXRpb25RdWVyeSwgYW5kIHdl
IGNoYW5nZSBwYXJzaW5nIG1vZGUgZnJvbQorICAgICAgICBTdXBwb3J0c01vZGUgdG8gTm9ybWFs
TW9kZSB3aGVuIHRoZSBwYXJzZXIgZmluaXNoZWQgdG8gcGFyc2UKKyAgICAgICAgQHN1cHBvcnRz
IHJ1bGUuCisKKyAgICAgICAgTGlrZSAiQC13ZWJraXQtbWVkaWFxdWVyeSIsIHdlIGNhbm5vdCB1
c2UgJ3snIHRvCisgICAgICAgICJALXdlYmtpdC1zdXBwb3J0cy1jb25kaXRpb24iLiBDaGFuZ2Vk
ICJALXdlYmtpdC1zdXBwb3J0cy1jb25kaXRpb24iCisgICAgICAgIHBhcnNpbmcgcnVsZSBhbmQg
cGFyc2VTdXBwb3J0c0NvbmRpdGlvbigpIG5vdCB0byB1c2UgJ3snLgorCisgICAgICAgIFRlc3Rz
OiBjc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci1jc3NvbS5odG1sCisgICAgICAgICAgICAgICBj
c3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1h
ci55LmluOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjpwYXJzZVN1cHBvcnRzQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omlz
Q1NTTGV0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmVhbExleCk6CisKIDIw
MTQtMDgtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBvZiBhbGwgR3JhcGhpY3NMYXllckNs
aWVudCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgppbmRleCA4NjkzZmVjMjgy
NDY0YjRmYWVmNTQ4ZjI2M2Y1YTQ1NTRiYjZiNWU2Li4zMWQwMzkyNGYwZTI5OTVjODdkYWRmOTk0
OTQ1ODRjMjU3NDgzNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KQEAgLTM5MSw3
ICszOTEsNyBAQCB3ZWJraXRfc2VsZWN0b3I6CiAKICNpZiBFTkFCTEVfQ1NTM19DT05ESVRJT05B
TF9SVUxFUwogCi13ZWJraXRfc3VwcG9ydHNfY29uZGl0aW9uOiBXRUJLSVRfU1VQUE9SVFNfQ09O
RElUSU9OX1NZTSAneycgbWF5YmVfc3BhY2Ugc3VwcG9ydHNfY29uZGl0aW9uICd9JyB7IHBhcnNl
ci0+bV9zdXBwb3J0c0NvbmRpdGlvbiA9ICQ0OyB9IDsKK3dlYmtpdF9zdXBwb3J0c19jb25kaXRp
b246IFdFQktJVF9TVVBQT1JUU19DT05ESVRJT05fU1lNIFdISVRFU1BBQ0UgbWF5YmVfc3BhY2Ug
c3VwcG9ydHNfY29uZGl0aW9uICd9JyB7IHBhcnNlci0+bV9zdXBwb3J0c0NvbmRpdGlvbiA9ICQ0
OyB9IDsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZGRmMGQ3MGE5
OGQzNzk5MmZiNzlkNjQ4ODE1MmM2NTI2ODk4Njc3Ny4uNWIyODY0OGFhZjUzNTYzZDg5YWVmYTdh
OWE5YTQxYzViNTE5ZWQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ3MSw3ICs0
NzEsOSBAQCBQYXNzUmVmUHRyPFN0eWxlS2V5ZnJhbWU+IENTU1BhcnNlcjo6cGFyc2VLZXlmcmFt
ZVJ1bGUoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlU3Vw
cG9ydHNDb25kaXRpb24oY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgbV9zdXBwb3J0c0Nv
bmRpdGlvbiA9IGZhbHNlOwotICAgIHNldHVwUGFyc2VyKCJALXdlYmtpdC1zdXBwb3J0cy1jb25k
aXRpb257ICIsIHN0cmluZywgIn0gIik7CisgICAgLy8gY2FuJ3QgdXNlIHsgYmVjYXVzZSB0b2tl
bml6ZXIgc3RhdGUgc3dpdGNoZXMgZnJvbSBzdXBwb3J0cyB0byBpbml0aWFsIHN0YXRlIHdoZW4g
aXQgc2VlcyB7IHRva2VuLgorICAgIC8vIGluc3RlYWQgaW5zZXJ0IG9uZSAiICIgKHdoaWNoIGlz
IFdISVRFU1BBQ0UgaW4gQ1NTR3JhbW1hci55KQorICAgIHNldHVwUGFyc2VyKCJALXdlYmtpdC1z
dXBwb3J0cy1jb25kaXRpb24gIiwgc3RyaW5nLCAifSAiKTsKICAgICBjc3N5eXBhcnNlKHRoaXMp
OwogICAgIHJldHVybiBtX3N1cHBvcnRzQ29uZGl0aW9uOwogfQpAQCAtOTk4MSw3ICs5OTgzLDcg
QEAgZW51bSBDaGFyYWN0ZXJUeXBlIHsKICAgICBDaGFyYWN0ZXJPdGhlciwKICAgICBDaGFyYWN0
ZXJOdWxsLAogICAgIENoYXJhY3RlcldoaXRlU3BhY2UsCi0gICAgQ2hhcmFjdGVyRW5kTWVkaWFR
dWVyeSwKKyAgICBDaGFyYWN0ZXJFbmRDb25kaXRpb25RdWVyeSwKICAgICBDaGFyYWN0ZXJFbmRO
dGhDaGlsZCwKICAgICBDaGFyYWN0ZXJRdW90ZSwKICAgICBDaGFyYWN0ZXJFeGNsYW1hdGlvbk1h
cmssCkBAIC0xMDA2MCw3ICsxMDA2Miw3IEBAIHN0YXRpYyBjb25zdCBDaGFyYWN0ZXJUeXBlIHR5
cGVzT2ZBU0NJSUNoYXJhY3RlcnNbMTI4XSA9IHsKIC8qICA1NiAtIDggICAgICAgICAgICAgICAg
ICAqLyBDaGFyYWN0ZXJOdW1iZXIsCiAvKiAgNTcgLSA5ICAgICAgICAgICAgICAgICAgKi8gQ2hh
cmFjdGVyTnVtYmVyLAogLyogIDU4IC0gOiAgICAgICAgICAgICAgICAgICovIENoYXJhY3Rlck90
aGVyLAotLyogIDU5IC0gOyAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlckVuZE1lZGlhUXVl
cnksCisvKiAgNTkgLSA7ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyRW5kQ29uZGl0aW9u
UXVlcnksCiAvKiAgNjAgLSA8ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyTGVzcywKIC8q
ICA2MSAtID0gICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJPdGhlciwKIC8qICA2MiAtID4g
ICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJPdGhlciwKQEAgLTEwMTI0LDcgKzEwMTI2LDcg
QEAgc3RhdGljIGNvbnN0IENoYXJhY3RlclR5cGUgdHlwZXNPZkFTQ0lJQ2hhcmFjdGVyc1sxMjhd
ID0gewogLyogMTIwIC0geCAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJT
dGFydCwKIC8qIDEyMSAtIHkgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJZGVudGlmaWVy
U3RhcnQsCiAvKiAxMjIgLSB6ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySWRlbnRpZmll
clN0YXJ0LAotLyogMTIzIC0geyAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlckVuZE1lZGlh
UXVlcnksCisvKiAxMjMgLSB7ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyRW5kQ29uZGl0
aW9uUXVlcnksCiAvKiAxMjQgLSB8ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyVmVydGlj
YWxCYXIsCiAvKiAxMjUgLSB9ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyT3RoZXIsCiAv
KiAxMjYgLSB+ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyVGlsZGUsCkBAIC0xMTM0MCwx
MCArMTEzNDIsMTUgQEAgcmVzdGFydEFmdGVyQ29tbWVudDoKICAgICAgICAgfSB3aGlsZSAoKmN1
cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKSA8PSAnICcgJiYgKHR5cGVzT2ZBU0NJ
SUNoYXJhY3RlcnNbKmN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKV0gPT0gQ2hh
cmFjdGVyV2hpdGVTcGFjZSkpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ2hhcmFjdGVy
RW5kTWVkaWFRdWVyeToKLSAgICAgICAgaWYgKG1fcGFyc2luZ01vZGUgPT0gTWVkaWFRdWVyeU1v
ZGUpCisgICAgY2FzZSBDaGFyYWN0ZXJFbmRDb25kaXRpb25RdWVyeTogeworICAgICAgICBib29s
IGlzUGFyc2luZ0NvbmRpdGlvbiA9IG1fcGFyc2luZ01vZGUgPT0gTWVkaWFRdWVyeU1vZGU7Cisj
aWYgRU5BQkxFKENTUzNfQ09ORElUSU9OQUxfUlVMRVMpCisgICAgICAgIGlzUGFyc2luZ0NvbmRp
dGlvbiA9IGlzUGFyc2luZ0NvbmRpdGlvbiB8fCBtX3BhcnNpbmdNb2RlID09IFN1cHBvcnRzTW9k
ZTsKKyNlbmRpZgorICAgICAgICBpZiAoaXNQYXJzaW5nQ29uZGl0aW9uKQogICAgICAgICAgICAg
bV9wYXJzaW5nTW9kZSA9IE5vcm1hbE1vZGU7CiAgICAgICAgIGJyZWFrOworICAgIH0KIAogICAg
IGNhc2UgQ2hhcmFjdGVyRW5kTnRoQ2hpbGQ6CiAgICAgICAgIGlmIChtX3BhcnNpbmdNb2RlID09
IE50aENoaWxkTW9kZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMTYwN2NmMDA0ZDg5NWU0ZmQ3NWFmNjVmZDJlNzEwMTRj
NWEwNjVhLi4xZThmMGJkY2Q4ZjM1ZGM1ZWVkOTY3NWQ1Y2Q3YjU5ODM0NmYwZWE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTQtMDgtMTkgIFl1a2kgU2VraWd1Y2hpICA8eXVraS5zZWtpZ3Vj
aGlAYWNjZXNzLWNvbXBhbnkuY29tPgorCisgICAgICAgIFJFR1JFU1NJT046IENTUyBub3QoKSBz
ZWxlY3RvciBkb2VzIG5vdCB3b3JrIHdoZW4gaXQgYXBwZWFycyBhZnRlciBvciB3aXRoaW4gQHN1
cHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzYwNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0IHRoYXQgQHN1cHBvcnRzIGRvZXNuJ3QgYnJlYWsgIm5vdCIgcHNldWRvIGNsYXNzIHNlbGVj
dG9yLgorCisgICAgICAgICogY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3ItY3Nzb20tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci1jc3Nv
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci5o
dG1sOiBBZGRlZC4KKwogMjAxNC0wOC0xOCAgUmViZWNjYSBIYXVjayAgPHJoYXVja0BhZG9iZS5j
b20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIEltcG9ydCB0aGUgQ1NTIFNoYXBlcyBXM0MgdGVz
dCBzdWl0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0
b3ItY3Nzb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1ub3Qtc2Vs
ZWN0b3ItY3Nzb20tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZmQwOGUyMjUwODE1OWFmOGQ0
MzQ2YzJiODY5YTZkMjA5ZmI3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L3N1cHBvcnRzLW5vdC1zZWxlY3Rvci1jc3NvbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBA
QAorVGVzdCB0aGF0IEBzdXBwb3J0cyBkb2Vzbid0IGJyZWFrICdub3QnIHBzZXVkbyBjbGFzcyBz
ZWxlY3Rvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQ1NTUnVsZS5T
VVBQT1JUU19SVUxFIGlzIGRlZmluZWQuCitydWxlcyA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzFd
LmNzc1J1bGVzCitQQVNTIHJ1bGVzLmxlbmd0aCBpcyAyCitQQVNTIHJ1bGVzWzBdLnR5cGUgaXMg
Q1NTUnVsZS5TVVBQT1JUU19SVUxFCitQQVNTIHJ1bGVzWzBdLmNzc1J1bGVzLmxlbmd0aCBpcyAx
CitQQVNTIHJ1bGVzWzBdLmNzc1J1bGVzWzBdLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQ
QVNTIHJ1bGVzWzBdLmNzc1J1bGVzWzBdLnN0eWxlLmNvbG9yIGlzICJncmVlbiIKK1BBU1MgcnVs
ZXNbMV0udHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgcnVsZXNbMV0uc3R5bGUuY29s
b3IgaXMgImdyZWVuIgorcnVsZXMgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1syXS5jc3NSdWxlcwor
UEFTUyBydWxlcy5sZW5ndGggaXMgMgorUEFTUyBydWxlc1sxXS50eXBlIGlzIENTU1J1bGUuU1RZ
TEVfUlVMRQorUEFTUyBydWxlc1sxXS5zdHlsZS5jb2xvciBpcyAiZ3JlZW4iCitydWxlcyA9IGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzNdLmNzc1J1bGVzCitQQVNTIHJ1bGVzLmxlbmd0aCBpcyAxCitQ
QVNTIHJ1bGVzWzBdLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHJ1bGVzWzBdLnN0
eWxlLmNvbG9yIGlzICJncmVlbiIKK0NoZWNrcyBhbGwgZWxlbWVudHMgYXJlIGdyZWVuLgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKHJlc3VsdCwgbnVsbCkuY29sb3IgaXMgInJnYigwLCAxMjgsIDAp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHJlc3VsdCwgbnVsbCkuY29sb3IgaXMgInJnYigwLCAx
MjgsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHJlc3VsdCwgbnVsbCkuY29sb3IgaXMgInJn
YigwLCAxMjgsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHJlc3VsdCwgbnVsbCkuY29sb3Ig
aXMgInJnYigwLCAxMjgsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHJlc3VsdCwgbnVsbCku
Y29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHJlc3VsdCwg
bnVsbCkuY29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUaGlzIHNob3VsZCBiZSBncmVlbiBpZiBub3QoKSBw
c2V1ZG8gY2xhc3Mgc2VsZWN0b3Igd29ya3MgaW5zaWRlIEBzdXBwb3J0cyBydWxlLgorVGhpcyBz
aG91bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9yIHdvcmtzIGFmdGVy
L291dHNpZGUgQHN1cHBvcnRzIHJ1bGUuCitUaGlzIHNob3VsZCBiZSBncmVlbiBpZiBub3QoKSBw
c2V1ZG8gY2xhc3Mgc2VsZWN0b3IgRE9FUyBOT1Qgd29yayBpbnNpZGUgQHN1cHBvcnRzIHJ1bGUg
d2l0aG91dCBjb25kaXRpb24uCitUaGlzIHNob3VsZCBiZSBncmVlbiBpZiBub3QoKSBwc2V1ZG8g
Y2xhc3Mgc2VsZWN0b3Igd29ya3MgYWZ0ZXIvb3V0c2lkZSBAc3VwcG9ydHMgcnVsZSB3aXRob3V0
IGNvbmRpdGlvbi4KK1RoaXMgc2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFzcyBz
ZWxlY3RvciBET0VTIE5PVCB3b3JrIGFmdGVyL291dHNpZGUgQHN1cHBvcnRzIHJ1bGUgd2l0aG91
dCBydWxlLgorVGhpcyBzaG91bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVj
dG9yIHdvcmtzIGFmdGVyL291dHNpZGUgQHN1cHBvcnRzIHJ1bGUgd2l0aG91dCBjb25kaXRpb24g
YW5kIHJ1bGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLW5vdC1zZWxl
Y3Rvci1jc3NvbS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3It
Y3Nzb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDkzOGYxYTFiMmUzOGZiM2Q1ZWIyMjM3YjA3NmU1ZWFl
YzA5YmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1ub3Qt
c2VsZWN0b3ItY3Nzb20uaHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
dHlsZT4KK2RpdiB7IGNvbG9yOiByZWQ7IH0KKzwvc3R5bGU+Cis8c3R5bGU+CitAc3VwcG9ydHMg
KGRpc3BsYXk6YmxvY2spIHsKKyAgICBkaXY6bm90KC5vdXRzaWRlKS52YWxpZCB7IGNvbG9yOiBn
cmVlbjsgfQorfQorZGl2Om5vdCguaW5zaWRlKS52YWxpZCB7CisgICAgY29sb3I6Z3JlZW47Cit9
Cis8L3N0eWxlPgorPHN0eWxlPgorZGl2Lm5vY29uZGl0aW9uLmluc2lkZSB7IGNvbG9yOiBncmVl
bjsgfQorQHN1cHBvcnRzIHsKKyAgICBkaXY6bm90KC5vdXRzaWRlKS5ub2NvbmRpdGlvbiB7IGNv
bG9yOiByZWQ7IH0KK30KK2Rpdjpub3QoLmluc2lkZSkubm9jb25kaXRpb24geworICAgIGNvbG9y
OmdyZWVuOworfQorPC9zdHlsZT4KKzxzdHlsZT4KK2Rpdi5ub3J1bGUub3V0c2lkZSB7IGNvbG9y
OiBncmVlbjsgfQorQHN1cHBvcnRzIChkaXNwbGF5OmJsb2NrKQorZGl2Om5vdCguaW5zaWRlKS5u
b3J1bGUgeworICAgIGNvbG9yOnJlZDsKK30KKzwvc3R5bGU+Cis8c3R5bGU+CitAc3VwcG9ydHM7
CitkaXY6bm90KC5pbnNpZGUpLnNlbWljb2xvbiB7CisgICAgY29sb3I6Z3JlZW47Cit9Cis8L3N0
eWxlPgorPGRpdiBjbGFzcz0icmVzdWx0IGluc2lkZSB2YWxpZCI+VGhpcyBzaG91bGQgYmUgZ3Jl
ZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9yIHdvcmtzIGluc2lkZSBAc3VwcG9ydHMg
cnVsZS48L2Rpdj4KKzxkaXYgY2xhc3M9InJlc3VsdCBvdXRzaWRlIHZhbGlkIj5UaGlzIHNob3Vs
ZCBiZSBncmVlbiBpZiBub3QoKSBwc2V1ZG8gY2xhc3Mgc2VsZWN0b3Igd29ya3MgYWZ0ZXIvb3V0
c2lkZSBAc3VwcG9ydHMgcnVsZS48L2Rpdj4KKworPGRpdiBjbGFzcz0icmVzdWx0IGluc2lkZSBu
b2NvbmRpdGlvbiI+VGhpcyBzaG91bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNl
bGVjdG9yIERPRVMgTk9UIHdvcmsgaW5zaWRlIEBzdXBwb3J0cyBydWxlIHdpdGhvdXQgY29uZGl0
aW9uLjwvZGl2PgorPGRpdiBjbGFzcz0icmVzdWx0IG91dHNpZGUgbm9jb25kaXRpb24iPlRoaXMg
c2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFzcyBzZWxlY3RvciB3b3JrcyBhZnRl
ci9vdXRzaWRlIEBzdXBwb3J0cyBydWxlIHdpdGhvdXQgY29uZGl0aW9uLjwvZGl2PgorCis8ZGl2
IGNsYXNzPSJyZXN1bHQgb3V0c2lkZSBub3J1bGUiPlRoaXMgc2hvdWxkIGJlIGdyZWVuIGlmIG5v
dCgpIHBzZXVkbyBjbGFzcyBzZWxlY3RvciBET0VTIE5PVCB3b3JrIGFmdGVyL291dHNpZGUgQHN1
cHBvcnRzIHJ1bGUgd2l0aG91dCBydWxlLjwvZGl2PgorCis8ZGl2IGNsYXNzPSJyZXN1bHQgb3V0
c2lkZSBzZW1pY29sb24iPlRoaXMgc2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFz
cyBzZWxlY3RvciB3b3JrcyBhZnRlci9vdXRzaWRlIEBzdXBwb3J0cyBydWxlIHdpdGhvdXQgY29u
ZGl0aW9uIGFuZCBydWxlLjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhh
dCBAc3VwcG9ydHMgZG9lc24ndCBicmVhayAnbm90JyBwc2V1ZG8gY2xhc3Mgc2VsZWN0b3IuIik7
CisKKworICAgIHNob3VsZEJlRGVmaW5lZCgiQ1NTUnVsZS5TVVBQT1JUU19SVUxFIik7CisKKyAg
ICBldmFsQW5kTG9nKCJydWxlcyA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzIik7
CisgICAgc2hvdWxkRXZhbHVhdGVUbygicnVsZXMubGVuZ3RoIiwgMik7CisgICAgc2hvdWxkQmUo
InJ1bGVzWzBdLnR5cGUiLCAiQ1NTUnVsZS5TVVBQT1JUU19SVUxFIik7CisgICAgc2hvdWxkRXZh
bHVhdGVUbygicnVsZXNbMF0uY3NzUnVsZXMubGVuZ3RoIiwgMSk7CisgICAgc2hvdWxkQmUoInJ1
bGVzWzBdLmNzc1J1bGVzWzBdLnR5cGUiLCAiQ1NTUnVsZS5TVFlMRV9SVUxFIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJydWxlc1swXS5jc3NSdWxlc1swXS5zdHlsZS5jb2xvciIsICJn
cmVlbiIpOworICAgIHNob3VsZEJlKCJydWxlc1sxXS50eXBlIiwgIkNTU1J1bGUuU1RZTEVfUlVM
RSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicnVsZXNbMV0uc3R5bGUuY29sb3IiLCAi
Z3JlZW4iKTsKKworICAgIGV2YWxBbmRMb2coInJ1bGVzID0gZG9jdW1lbnQuc3R5bGVTaGVldHNb
Ml0uY3NzUnVsZXMiKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJydWxlcy5sZW5ndGgiLCAyKTsK
KyAgICBzaG91bGRCZSgicnVsZXNbMV0udHlwZSIsICJDU1NSdWxlLlNUWUxFX1JVTEUiKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJ1bGVzWzFdLnN0eWxlLmNvbG9yIiwgImdyZWVuIik7
CisKKyAgICBldmFsQW5kTG9nKCJydWxlcyA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzNdLmNzc1J1
bGVzIik7CisgICAgc2hvdWxkRXZhbHVhdGVUbygicnVsZXMubGVuZ3RoIiwgMSk7CisgICAgc2hv
dWxkQmUoInJ1bGVzWzBdLnR5cGUiLCAiQ1NTUnVsZS5TVFlMRV9SVUxFIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJydWxlc1swXS5zdHlsZS5jb2xvciIsICJncmVlbiIpOworCisgICAg
ZGVidWcoIkNoZWNrcyBhbGwgZWxlbWVudHMgYXJlIGdyZWVuLiIpOworICAgIHZhciByZXN1bHRz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicmVzdWx0Iik7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciByZXN1bHQg
PSByZXN1bHRzW2ldOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVk
U3R5bGUocmVzdWx0LCBudWxsKS5jb2xvciIsICJyZ2IoMCwgMTI4LCAwKSIpOworICAgIH0KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3It
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMtbm90LXNlbGVjdG9yLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFiMzEyMDFjZTRiNDUwZjBhODE1MmI5MzZiOGZmNmZm
NmJhYzFiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMtbm90
LXNlbGVjdG9yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c3R5bGU+CitkaXYgeyBjb2xvcjogZ3JlZW47IH0KKzwvc3R5bGU+Cis8ZGl2PlRoaXMgc2hv
dWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFzcyBzZWxlY3RvciB3b3JrcyBpbnNpZGUg
QHN1cHBvcnRzIHJ1bGUuPC9kaXY+Cis8ZGl2PlRoaXMgc2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgp
IHBzZXVkbyBjbGFzcyBzZWxlY3RvciB3b3JrcyBhZnRlci9vdXRzaWRlIEBzdXBwb3J0cyBydWxl
LjwvZGl2PgorCis8ZGl2PlRoaXMgc2hvdWxkIGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFz
cyBzZWxlY3RvciBET0VTIE5PVCB3b3JrIGluc2lkZSBAc3VwcG9ydHMgcnVsZSB3aXRob3V0IGNv
bmRpdGlvbi48L2Rpdj4KKzxkaXY+VGhpcyBzaG91bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRv
IGNsYXNzIHNlbGVjdG9yIHdvcmtzIGFmdGVyL291dHNpZGUgQHN1cHBvcnRzIHJ1bGUgd2l0aG91
dCBjb25kaXRpb24uPC9kaXY+CisKKzxkaXY+VGhpcyBzaG91bGQgYmUgZ3JlZW4gaWYgbm90KCkg
cHNldWRvIGNsYXNzIHNlbGVjdG9yIERPRVMgTk9UIHdvcmsgYWZ0ZXIvb3V0c2lkZSBAc3VwcG9y
dHMgcnVsZSB3aXRob3V0IHJ1bGUuPC9kaXY+CisKKzxkaXY+VGhpcyBzaG91bGQgYmUgZ3JlZW4g
aWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9yIHdvcmtzIGFmdGVyL291dHNpZGUgQHN1cHBv
cnRzIHJ1bGUgd2l0aG91dCBjb25kaXRpb24gYW5kIHJ1bGUuPC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLW5vdC1zZWxlY3Rvci5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTRkYjFmOTUwYTZj
MjVmNmVlOTVjMDA1MjdlZTQ4MTRkNjJhNmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9zdXBwb3J0cy1ub3Qtc2VsZWN0b3IuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzdHlsZT4KK2RpdiB7IGNvbG9yOiByZWQ7IH0KKzwvc3R5bGU+Cis8c3R5
bGU+CitAc3VwcG9ydHMgKGRpc3BsYXk6YmxvY2spIHsKKyAgICBkaXY6bm90KC5vdXRzaWRlKS52
YWxpZCB7IGNvbG9yOiBncmVlbjsgfQorfQorZGl2Om5vdCguaW5zaWRlKS52YWxpZCB7CisgICAg
Y29sb3I6Z3JlZW47Cit9Cis8L3N0eWxlPgorPHN0eWxlPgorZGl2Lm5vY29uZGl0aW9uLmluc2lk
ZSB7IGNvbG9yOiBncmVlbjsgfQorQHN1cHBvcnRzIHsKKyAgICBkaXY6bm90KC5vdXRzaWRlKS5u
b2NvbmRpdGlvbiB7IGNvbG9yOiByZWQ7IH0KK30KK2Rpdjpub3QoLmluc2lkZSkubm9jb25kaXRp
b24geworICAgIGNvbG9yOmdyZWVuOworfQorPC9zdHlsZT4KKzxzdHlsZT4KK2Rpdi5ub3J1bGUu
b3V0c2lkZSB7IGNvbG9yOiBncmVlbjsgfQorQHN1cHBvcnRzIChkaXNwbGF5OmJsb2NrKQorZGl2
Om5vdCguaW5zaWRlKS5ub3J1bGUgeworICAgIGNvbG9yOnJlZDsKK30KKzwvc3R5bGU+Cis8c3R5
bGU+CitAc3VwcG9ydHM7CitkaXY6bm90KC5pbnNpZGUpLnNlbWljb2xvbiB7CisgICAgY29sb3I6
Z3JlZW47Cit9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz0iaW5zaWRlIHZhbGlkIj5UaGlzIHNob3Vs
ZCBiZSBncmVlbiBpZiBub3QoKSBwc2V1ZG8gY2xhc3Mgc2VsZWN0b3Igd29ya3MgaW5zaWRlIEBz
dXBwb3J0cyBydWxlLjwvZGl2PgorPGRpdiBjbGFzcz0ib3V0c2lkZSB2YWxpZCI+VGhpcyBzaG91
bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9yIHdvcmtzIGFmdGVyL291
dHNpZGUgQHN1cHBvcnRzIHJ1bGUuPC9kaXY+CisKKzxkaXYgY2xhc3M9Imluc2lkZSBub2NvbmRp
dGlvbiI+VGhpcyBzaG91bGQgYmUgZ3JlZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9y
IERPRVMgTk9UIHdvcmsgaW5zaWRlIEBzdXBwb3J0cyBydWxlIHdpdGhvdXQgY29uZGl0aW9uLjwv
ZGl2PgorPGRpdiBjbGFzcz0ib3V0c2lkZSBub2NvbmRpdGlvbiI+VGhpcyBzaG91bGQgYmUgZ3Jl
ZW4gaWYgbm90KCkgcHNldWRvIGNsYXNzIHNlbGVjdG9yIHdvcmtzIGFmdGVyL291dHNpZGUgQHN1
cHBvcnRzIHJ1bGUgd2l0aG91dCBjb25kaXRpb24uPC9kaXY+CisKKzxkaXYgY2xhc3M9Im91dHNp
ZGUgbm9ydWxlIj5UaGlzIHNob3VsZCBiZSBncmVlbiBpZiBub3QoKSBwc2V1ZG8gY2xhc3Mgc2Vs
ZWN0b3IgRE9FUyBOT1Qgd29yayBhZnRlci9vdXRzaWRlIEBzdXBwb3J0cyBydWxlIHdpdGhvdXQg
cnVsZS48L2Rpdj4KKworPGRpdiBjbGFzcz0ib3V0c2lkZSBzZW1pY29sb24iPlRoaXMgc2hvdWxk
IGJlIGdyZWVuIGlmIG5vdCgpIHBzZXVkbyBjbGFzcyBzZWxlY3RvciB3b3JrcyBhZnRlci9vdXRz
aWRlIEBzdXBwb3J0cyBydWxlIHdpdGhvdXQgY29uZGl0aW9uIGFuZCBydWxlLjwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>