<?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>124572</bug_id>
          
          <creation_ts>2013-11-19 02:51:34 -0800</creation_ts>
          <short_desc>Map the dir attribute to the CSS direction property</short_desc>
          <delta_ts>2014-03-10 12:26:20 -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>MathML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>123018</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbarton</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>952012</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-19 02:51:34 -0800</bug_when>
    <thetext>This is the first step for bug 123018: map dir attribute on math, mstyle, mrow and token elements to style. I&apos;ll add minimal tests for that and address Davin&apos;s request in but 124121 comment 2. The actual implementation is not done, but that should work for token elements (needed for MathJax error message) and very simple math (e.g. mrow, scripts).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952013</commentid>
    <comment_count>1</comment_count>
      <attachid>217283</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-19 02:57:38 -0800</bug_when>
    <thetext>Created attachment 217283
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952087</commentid>
    <comment_count>2</comment_count>
      <attachid>217283</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-19 09:06:40 -0800</bug_when>
    <thetext>Comment on attachment 217283
Patch V1

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

This is OK, but I see room for improvement, especially on test coverage.

&gt; Source/WebCore/mathml/MathMLElement.cpp:81
&gt; +    if (name == mathbackgroundAttr || name == mathsizeAttr || name == mathcolorAttr || name == fontsizeAttr || name == backgroundAttr || name == colorAttr || name == fontstyleAttr || name == fontweightAttr || name == fontfamilyAttr || name == dirAttr)

I would be more comfortable with this if statement if the attributes were in some obvious order, say alphabetical. Also would be nice if there was a test that would fail if each of these was removed. I am betting that I could remove one of these 10 without any test failing.

&gt; Source/WebCore/mathml/MathMLElement.cpp:110
&gt; +        if (hasTagName(mathTag) || hasTagName(mstyleTag) || hasTagName(mrowTag) || hasTagName(mtextTag) || hasTagName(msTag) || hasTagName(moTag) || hasTagName(miTag) || hasTagName(mnTag))

I would be more comfortable with this if statement if the tag names were in some obvious order, say alphabetical. Also would be nice if there was a test that would fail if each of these was removed. I am betting that I could remove one of these 8 without any test failing.

Also, this might be a good candidate for a named function (can be inline so the code generated is the same), since it’s not obvious to me what these elements have in common. Think of the function name as a good way to comment what this set of tags represents.

&gt; Source/WebCore/mathml/mathtags.in:11
&gt; +mstyle interfaceName=MathMLElement

I’d like to see test coverage for this. We have tests that check if elements get the right kind of wrapper, and we should cover this tag in that kind of test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952102</commentid>
    <comment_count>3</comment_count>
      <attachid>217283</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 09:33:41 -0800</bug_when>
    <thetext>Comment on attachment 217283
Patch V1

Clearing flags on attachment: 217283

Committed r159504: &lt;http://trac.webkit.org/changeset/159504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952103</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 09:33:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952107</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-19 09:41:37 -0800</bug_when>
    <thetext>Frédéric: Would you mind posting a secondary patch to incorporate Darin&apos;s suggestions for improvements? We can reopen this bug to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952114</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-19 09:55:49 -0800</bug_when>
    <thetext>OK, I will come back to this tomorrow.

Regarding the first set, there should already test coverage for these attributes and test for dir is added here.

Regarding the second set, new tests are added here for each element. However, perhaps I should add a test verifying that dir has no effect on other elements like e.g. msqrt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952511</commentid>
    <comment_count>7</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-20 02:43:45 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I’d like to see test coverage for this. We have tests that check if elements get the right kind of wrapper, and we should cover this tag in that kind of test.

Can you give me an example of such a test so that I can do that for mstyle?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952529</commentid>
    <comment_count>8</comment_count>
      <attachid>217415</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-20 03:31:23 -0800</bug_when>
    <thetext>Created attachment 217415
Follow up V1

&gt; if (name == mathbackgroundAttr || name == mathsizeAttr || name == mathcolorAttr || name == fontsizeAttr || name == backgroundAttr || name == colorAttr || name == fontstyleAttr || name == fontweightAttr || name == fontfamilyAttr || name == dirAttr)

These were tested by mathml/presentation/attributes-mathvariant, mathsize and background-color.
The dir attribute is tested by the test added in the first patch.

&gt;  if (hasTagName(mathTag) || hasTagName(mstyleTag) || hasTagName(mrowTag) || hasTagName(mtextTag) || hasTagName(msTag) || hasTagName(moTag) || hasTagName(miTag) || hasTagName(mnTag))

These are tested by the new tests, especially direction-overall and direction-token. I&apos;ve added a test to direction-overall to check that the dir attribute is not applied to &lt;msqrt&gt;.

&gt; I’d like to see test coverage for this. We have tests that check if elements get the right kind of wrapper, and we should cover this tag in that kind of test.

I have not done that yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952630</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-20 09:32:11 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I’d like to see test coverage for this. We have tests that check if elements get the right kind of wrapper, and we should cover this tag in that kind of test.
&gt; 
&gt; Can you give me an example of such a test so that I can do that for mstyle?

fast/dom/wrapper-classes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952739</commentid>
    <comment_count>10</comment_count>
      <attachid>217469</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-20 13:04:14 -0800</bug_when>
    <thetext>Created attachment 217469
Follow up V2

Mmm, MathML does not have a DOM so I&apos;m not really sure I can access the exact class from Javascript. I tried something but it seems to just returns &quot;Element&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952920</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-20 20:13:35 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Mmm, MathML does not have a DOM so I&apos;m not really sure I can access the exact class from Javascript. I tried something but it seems to just returns &quot;Element&quot;.

I see. I did not know that.

We’ll have to test this indirectly by checking for the different behavior caused by the internal DOM class, not by looking at wrappers at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953014</commentid>
    <comment_count>12</comment_count>
      <attachid>217541</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-21 03:14:33 -0800</bug_when>
    <thetext>Created attachment 217541
Follow up V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953015</commentid>
    <comment_count>13</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-21 03:16:19 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I see. I did not know that.
&gt; 
&gt; We’ll have to test this indirectly by checking for the different behavior caused by the internal DOM class, not by looking at wrappers at all.

OK, I&apos;ve removed that test. Although removing one of the presentation attribute would have broken the test for the token elements, there were nothing to check the presentation attributes on &lt;mstyle&gt; so I&apos;ve added a test for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953016</commentid>
    <comment_count>14</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-21 03:17:10 -0800</bug_when>
    <thetext>Reopening per comment 5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953275</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-21 13:47:03 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Frédéric: Would you mind posting a secondary patch to incorporate Darin&apos;s suggestions for improvements? We can reopen this bug to do so.

Brent, why did you suggest reopening this bug? I thought the best practice for a case like this is to use a new bug report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953320</commentid>
    <comment_count>16</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-21 15:21:46 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #5)
&gt; &gt; Frédéric: Would you mind posting a secondary patch to incorporate Darin&apos;s suggestions for improvements? We can reopen this bug to do so.
&gt; 
&gt; Brent, why did you suggest reopening this bug? I thought the best practice for a case like this is to use a new bug report.

I thought he just had a couple of small changes to incorporate some suggestions you had on his original patch.  I thought it would be easier to track this in the same bug, rather than have multiple bugs (and possibly Radars) that track a small set of changes focused on the same topic.

But in the future I&apos;ll have people leave the bug closed and open a new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953425</commentid>
    <comment_count>17</comment_count>
      <attachid>217541</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-21 20:14:14 -0800</bug_when>
    <thetext>Comment on attachment 217541
Follow up V3

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

&gt; Source/WebCore/mathml/MathMLElement.cpp:128
&gt; +bool MathMLElement::isMathMLToken() const
&gt; +{
&gt; +    return hasTagName(miTag) || hasTagName(mnTag) || hasTagName(moTag) || hasTagName(msTag) || hasTagName(mtextTag);
&gt; +}

Are you sure this is actually getting inlined? In older compilers we had to put the function higher in the file than the call sites, and also mark it inline here, not just in the declaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953433</commentid>
    <comment_count>18</comment_count>
      <attachid>217541</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-21 21:01:04 -0800</bug_when>
    <thetext>Comment on attachment 217541
Follow up V3

Clearing flags on attachment: 217541

Committed r159680: &lt;http://trac.webkit.org/changeset/159680&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953434</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-21 21:01:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989021</commentid>
    <comment_count>20</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2014-03-10 12:26:20 -0700</bug_when>
    <thetext>Mass change: add WebExposed keyword to help MDN documentation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217283</attachid>
            <date>2013-11-19 02:57:38 -0800</date>
            <delta_ts>2013-11-19 09:33:40 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>direction.diff</filename>
            <type>text/plain</type>
            <size>13006</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZWQ4MzdjLi44MjhlOTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMTEt
MTkgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIE1hcCB0
aGUgZGlyIGF0dHJpYnV0ZSB0byB0aGUgQ1NTIGRpcmVjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3Mi4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1hdGhtbC9wcmVzZW50
YXRpb24vZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWw6IGFkZCBtb3JlIHRlc3RzLgorICAgICAgICAq
IG1hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi10b2tlbi1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL2RpcmVj
dGlvbi10b2tlbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL2Rp
cmVjdGlvbi5odG1sOiBhZGQgbW9yZSB0ZXN0cy4KKwogMjAxMy0xMS0xOCAgU3VuLXdvbyBOYW0g
IDxzdW5ueS5uYW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gTGF5b3V0IHRlc3RzIG5l
ZWQgdG8gYmUgcmViYXNlbGluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL2RpcmVjdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3By
ZXNlbnRhdGlvbi9kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbAppbmRleCAyNGMyNWM2Li5lNDY3ZDUw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1l
eHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0
aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTgsNSArOCwxOSBAQAogCiAgICAgPHA+16nXldeo16nXmSDX
ntep15XXldeQ15Qg157XldeT15LXqdeqINeW15UgPG1hdGggc3R5bGU9ImRpcmVjdGlvbjogbHRy
OyI+IDxtc3R5bGUgbWF0aHZhcmlhbnQ9ImJvbGQiPiA8bXN1cD4gPG1pPnk8L21pPiA8bW4+Mzwv
bW4+IDwvbXN1cD4gPG1vPis8L21vPiA8bWk+cDwvbWk+IDxtaT55PC9taT4gPG1vPis8L21vPiA8
bWk+cTwvbWk+IDxtbz49PC9tbz4gPG1uPjA8L21uPiA8L21zdHlsZT4gPC9tYXRoPiDXnteV15PX
ktep15nXnSDXktedINeU1508L3A+CiAKKyAgICA8cD5sdHI8L3A+CisKKyAgICA8cD7XqdeV16jX
qdeZINee16nXldeV15DXlCDXnteV15PXktep16og15bXlSA8bWF0aCBzdHlsZT0iZGlyZWN0aW9u
OiBsdHI7Ij4gPG1zdHlsZSBtYXRodmFyaWFudD0iYm9sZCI+IDxtc3VwPiA8bWk+eTwvbWk+IDxt
bj4zPC9tbj4gPC9tc3VwPiA8bW8+KzwvbW8+IDxtaT5wPC9taT4gPG1pPnk8L21pPiA8bW8+Kzwv
bW8+IDxtaT5xPC9taT4gPG1vPj08L21vPiA8bW4+MDwvbW4+IDwvbXN0eWxlPiA8L21hdGg+INee
15XXk9eS16nXmdedINeS150g15TXnTwvcD4KKworICAgIDxwPmx0cjwvcD4KKworICAgIDxwPtep
15XXqNep15kg157XqdeV15XXkNeUINee15XXk9eS16nXqiDXlteVIDxtYXRoIHN0eWxlPSJkaXJl
Y3Rpb246IGx0cjsiPiA8bXN0eWxlIG1hdGh2YXJpYW50PSJib2xkIj4gPG1zdXA+IDxtaT55PC9t
aT4gPG1uPjM8L21uPiA8L21zdXA+IDxtbz4rPC9tbz4gPG1pPnA8L21pPiA8bWk+eTwvbWk+IDxt
bz4rPC9tbz4gPG1pPnE8L21pPiA8bW8+PTwvbW8+IDxtbj4wPC9tbj4gPC9tc3R5bGU+IDwvbWF0
aD4g157XldeT15LXqdeZ150g15LXnSDXlNedPC9wPgorCisgICAgPHA+bHRyPC9wPgorCisgICAg
PHA+16nXldeo16nXmSDXntep15XXldeQ15Qg157XldeT15LXqdeqINeW15UgPG1hdGggc3R5bGU9
ImRpcmVjdGlvbjogcnRsOyI+IDxtc3R5bGUgbWF0aHZhcmlhbnQ9ImJvbGQiPiA8bXN1cD4gPG1p
Pnk8L21pPiA8bW4+MzwvbW4+IDwvbXN1cD4gPG1vPis8L21vPiA8bWk+cDwvbWk+IDxtaT55PC9t
aT4gPG1vPis8L21vPiA8bWk+cTwvbWk+IDxtbz49PC9tbz4gPG1uPjA8L21uPiA8L21zdHlsZT4g
PC9tYXRoPiDXnteV15PXktep15nXnSDXktedINeU1508L3A+CisKKyAgICA8cD5ydGw8L3A+CisK
ICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNl
bnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0
aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwM2RkNjAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1vdmVyYWxsLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+
PHRpdGxlPlRlc3Qgb3ZlcmFsbCBkaXJlY3Rpb25hbGl0eTwvdGl0bGU+PC9oZWFkPgorICA8Ym9k
eT4KKyAgICA8cD4KKyAgICAgIG1hdGg6CisgICAgICA8bWF0aD4KKyAgICAgICAgPG1zcGFjZSB3
aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iYmx1ZSIvPgorICAgICAg
ICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJncmVl
biIvPgorICAgICAgICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNr
Z3JvdW5kPSJyZWQiLz4KKyAgICAgIDwvbWF0aD4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAg
IG1yb3c6CisgICAgICA8bWF0aD4KKyAgICAgICAgPG1yb3c+CisgICAgICAgICAgPG1zcGFjZSB3
aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iYmx1ZSIvPgorICAgICAg
ICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9Imdy
ZWVuIi8+CisgICAgICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4IiBtYXRo
YmFja2dyb3VuZD0icmVkIi8+CisgICAgICAgIDwvbXJvdz4KKyAgICAgIDwvbWF0aD4KKyAgICA8
L3A+CisKKyAgICA8cD4KKyAgICAgIG1zdHlsZToKKyAgICAgIDxtYXRoPgorICAgICAgICA8bXN0
eWxlPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJh
Y2tncm91bmQ9ImJsdWUiLz4KKyAgICAgICAgICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9
IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJncmVlbiIvPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9
IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9InJlZCIvPgorICAgICAgICA8L21z
dHlsZT4KKyAgICAgIDwvbWF0aD4KKyAgICA8L3A+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFs
bC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFs
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YWIwMGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1v
dmVyYWxsLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
PGhlYWQ+PHRpdGxlPlRlc3Qgb3ZlcmFsbCBkaXJlY3Rpb25hbGl0eTwvdGl0bGU+PC9oZWFkPgor
ICA8Ym9keT4KKworICAgIDwhLS0gVGVzdCBkaXI9InJ0bCIgb24gPG1hdGg+LCA8bXJvdz4gYW5k
IDxtc3R5bGU+IGVsZW1lbnRzLiBUaGUgcmVjdGFuZ2xlCisgICAgICAgICBpbnNpZGUgdGhlc2Ug
ZWxlbWVudHMgc2hvdWxkIGJlIGRpc3BsYXllZCByaWdodC10by1sZWZ0LiAgLS0+CisKKyAgICA8
cD4KKyAgICAgIG1hdGg6CisgICAgICA8bWF0aCBkaXI9InJ0bCI+CisgICAgICAgIDxtc3BhY2Ug
d2lkdGg9IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9InJlZCIvPgorICAgICAg
ICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJncmVl
biIvPgorICAgICAgICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNr
Z3JvdW5kPSJibHVlIi8+CisgICAgICA8L21hdGg+CisgICAgPC9wPgorCisgICAgPHA+CisgICAg
ICBtcm93OgorICAgICAgPG1hdGg+CisgICAgICAgIDxtcm93IGRpcj0icnRsIj4KKyAgICAgICAg
ICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJyZWQi
Lz4KKyAgICAgICAgICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNr
Z3JvdW5kPSJncmVlbiIvPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0i
MjVweCIgbWF0aGJhY2tncm91bmQ9ImJsdWUiLz4KKyAgICAgICAgPC9tcm93PgorICAgICAgPC9t
YXRoPgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgbXN0eWxlOgorICAgICAgPG1hdGg+Cisg
ICAgICAgIDxtc3R5bGUgZGlyPSJydGwiPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgi
IGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9InJlZCIvPgorICAgICAgICAgIDxtc3BhY2Ug
d2lkdGg9IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9ImdyZWVuIi8+CisgICAg
ICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0i
Ymx1ZSIvPgorICAgICAgICA8L21zdHlsZT4KKyAgICAgIDwvbWF0aD4KKyAgICA8L3A+CisKKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRh
dGlvbi9kaXJlY3Rpb24tdG9rZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9w
cmVzZW50YXRpb24vZGlyZWN0aW9uLXRva2VuLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNTI3MTBhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLXRva2VuLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBkaXI9InJ0bCI+CisgIDxoZWFk
PgorICAgIDx0aXRsZT5kaXJlY3Rpb24gdG9rZW48L3RpdGxlPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ii8+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisKKyAgIDxwPjxtYXRoPjxtdGV4dCBzdHls
ZT0iZGlyZWN0aW9uOiBydGw7Ij7Xl9eV16cgXGxlZnQg15fXodeoINeQ15Ug15fXldenIFxyaWdo
dCDXnteZ15XXqteoPC9tdGV4dD48L21hdGg+PC9wPgorICAgPHA+PG1hdGg+PG1zIHN0eWxlPSJk
aXJlY3Rpb246IHJ0bDsiPteX15XXpyBcbGVmdCDXl9eh16gg15DXlSDXl9eV16cgXHJpZ2h0INee
15nXldeq16g8L21zPjwvbWF0aD48L3A+CisgICA8cD48bWF0aD48bW8gc3R5bGU9ImRpcmVjdGlv
bjogcnRsOyI+15fXldenIFxsZWZ0INeX16HXqCDXkNeVINeX15XXpyBccmlnaHQg157XmdeV16rX
qDwvbW8+PC9tYXRoPjwvcD4KKyAgIDxwPjxtYXRoPjxtaSBzdHlsZT0iZGlyZWN0aW9uOiBydGw7
Ij7Xl9eV16cgXGxlZnQg15fXodeoINeQ15Ug15fXldenIFxyaWdodCDXnteZ15XXqteoPC9taT48
L21hdGg+PC9wPgorICAgPHA+PG1hdGg+PG1uIHN0eWxlPSJkaXJlY3Rpb246IHJ0bDsiPteX15XX
pyBcbGVmdCDXl9eh16gg15DXlSDXl9eV16cgXHJpZ2h0INee15nXldeq16g8L21uPjwvbWF0aD48
L3A+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1s
L3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tdG9rZW4uaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9w
cmVzZW50YXRpb24vZGlyZWN0aW9uLXRva2VuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2MwOWM4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21hdGht
bC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLXRva2VuLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbCBkaXI9InJ0bCI+CisgIDxoZWFkPgorICAgIDx0aXRsZT5kaXJl
Y3Rpb24gdG9rZW48L3RpdGxlPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CisgIDwvaGVh
ZD4KKyAgPGJvZHk+CisKKyAgICA8IS0tIFRlc3QgZGlyPSJydGwiIG9uIE1hdGhNTCB0b2tlbiBl
bGVtZW50cy4gVGhlIHRleHQgY29udGFpbnMgUlRMIGFuZAorICAgICAgICAgTFRSIGNoYXJhY3Rl
cnMsIHNvIHRoZSBhdHRyaWJ1dGUgaXMgbmVlZGVkIHRvIHNwZWNpZnkgdGhlIGFjdHVhbAorICAg
ICAgICAgZGlyZWN0aW9uLiAtLT4KKworICAgPHA+PG1hdGg+PG10ZXh0IGRpcj0icnRsIj7Xl9eV
16cgXGxlZnQg15fXodeoINeQ15Ug15fXldenIFxyaWdodCDXnteZ15XXqteoPC9tdGV4dD48L21h
dGg+PC9wPgorICAgPHA+PG1hdGg+PG1zIGRpcj0icnRsIj7Xl9eV16cgXGxlZnQg15fXodeoINeQ
15Ug15fXldenIFxyaWdodCDXnteZ15XXqteoPC9tcz48L21hdGg+PC9wPgorICAgPHA+PG1hdGg+
PG1vIGRpcj0icnRsIj7Xl9eV16cgXGxlZnQg15fXodeoINeQ15Ug15fXldenIFxyaWdodCDXnteZ
15XXqteoPC9tbz48L21hdGg+PC9wPgorICAgPHA+PG1hdGg+PG1pIGRpcj0icnRsIj7Xl9eV16cg
XGxlZnQg15fXodeoINeQ15Ug15fXldenIFxyaWdodCDXnteZ15XXqteoPC9taT48L21hdGg+PC9w
PgorICAgPHA+PG1hdGg+PG1uIGRpcj0icnRsIj7Xl9eV16cgXGxlZnQg15fXodeoINeQ15Ug15fX
ldenIFxyaWdodCDXnteZ15XXqteoPC9tbj48L21hdGg+PC9wPgorCisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi5odG1sCmlu
ZGV4IDVmMTliYjEuLmE0ZTY4MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVz
ZW50YXRpb24vZGlyZWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRh
dGlvbi9kaXJlY3Rpb24uaHRtbApAQCAtMywxMCArMywzNSBAQAogICA8aGVhZD4KICAgICA8dGl0
bGU+ZGlyZWN0aW9uPC90aXRsZT4KICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIGZ1bmN0aW9uIGNoZWNrRGlyZWN0
aW9uKCkKKyAgICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gNDsgaSsrKSB7Cisg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3knK2kpLmlubmVySFRNTCA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4JytpKSkuZGlyZWN0
aW9uOworICAgICAgICB9CisgICAgICB9CisgICAgPC9zY3JpcHQ+CiAgIDwvaGVhZD4KLSAgPGJv
ZHk+CisgIDxib2R5IG9ubG9hZD0iY2hlY2tEaXJlY3Rpb24oKSI+CiAKLSAgICA8cD7XqdeV16jX
qdeZINee16nXldeV15DXlCDXnteV15PXktep16og15bXlSA8bWF0aD4gPG1zdHlsZSBtYXRodmFy
aWFudD0iYm9sZCI+IDxtc3VwPiA8bWk+eTwvbWk+IDxtbj4zPC9tbj4gPC9tc3VwPiA8bW8+Kzwv
bW8+IDxtaT5wPC9taT4gPG1pPnk8L21pPiA8bW8+KzwvbW8+IDxtaT5xPC9taT4gPG1vPj08L21v
PiA8bW4+MDwvbW4+IDwvbXN0eWxlPiA8L21hdGg+INee15XXk9eS16nXmdedINeS150g15TXnTwv
cD4KKyAgICA8IS0tIFRlc3QgdGhlIENTUyBkaXJlY3Rpb24gYW5kIGRpciBhdHRyaWJ1dGUgb24g
dGhlIDxtYXRoPiBlbGVtZW50LiBJdAorICAgICAgICAgc2hvdWxkIGJlICJsdHIiLCBleGNlcHQg
aWYgYW4gZXhwbGljaXQgZGlyPSJydGwiIGlzIHVzZWQuIC0tPgorCisgICAgPHA+16nXldeo16nX
mSDXntep15XXldeQ15Qg157XldeT15LXqdeqINeW15UgPG1hdGggaWQ9IngxIj4gPG1zdHlsZSBt
YXRodmFyaWFudD0iYm9sZCI+IDxtc3VwPiA8bWk+eTwvbWk+IDxtbj4zPC9tbj4gPC9tc3VwPiA8
bW8+KzwvbW8+IDxtaT5wPC9taT4gPG1pPnk8L21pPiA8bW8+KzwvbW8+IDxtaT5xPC9taT4gPG1v
Pj08L21vPiA8bW4+MDwvbW4+IDwvbXN0eWxlPiA8L21hdGg+INee15XXk9eS16nXmdedINeS150g
15TXnTwvcD4KKworICAgIDxwIGlkPSJ5MSI+PC9wPgorCisgICAgPHA+16nXldeo16nXmSDXntep
15XXldeQ15Qg157XldeT15LXqdeqINeW15UgPG1hdGggaWQ9IngyIiBkaXI9Imx0ciI+IDxtc3R5
bGUgbWF0aHZhcmlhbnQ9ImJvbGQiPiA8bXN1cD4gPG1pPnk8L21pPiA8bW4+MzwvbW4+IDwvbXN1
cD4gPG1vPis8L21vPiA8bWk+cDwvbWk+IDxtaT55PC9taT4gPG1vPis8L21vPiA8bWk+cTwvbWk+
IDxtbz49PC9tbz4gPG1uPjA8L21uPiA8L21zdHlsZT4gPC9tYXRoPiDXnteV15PXktep15nXnSDX
ktedINeU1508L3A+CisKKyAgICA8cCBpZD0ieTIiPjwvcD4KKworICAgIDxwPtep15XXqNep15kg
157XqdeV15XXkNeUINee15XXk9eS16nXqiDXlteVIDxtYXRoIGlkPSJ4MyIgZGlyPSJpbnZhbGlk
Ij4gPG1zdHlsZSBtYXRodmFyaWFudD0iYm9sZCI+IDxtc3VwPiA8bWk+eTwvbWk+IDxtbj4zPC9t
bj4gPC9tc3VwPiA8bW8+KzwvbW8+IDxtaT5wPC9taT4gPG1pPnk8L21pPiA8bW8+KzwvbW8+IDxt
aT5xPC9taT4gPG1vPj08L21vPiA8bW4+MDwvbW4+IDwvbXN0eWxlPiA8L21hdGg+INee15XXk9eS
16nXmdedINeS150g15TXnTwvcD4KKworICAgIDxwIGlkPSJ5MyI+PC9wPgorCisgICAgPHA+16nX
ldeo16nXmSDXntep15XXldeQ15Qg157XldeT15LXqdeqINeW15UgPG1hdGggaWQ9Ing0IiBkaXI9
InJ0bCI+IDxtc3R5bGUgbWF0aHZhcmlhbnQ9ImJvbGQiPiA8bXN1cD4gPG1pPnk8L21pPiA8bW4+
MzwvbW4+IDwvbXN1cD4gPG1vPis8L21vPiA8bWk+cDwvbWk+IDxtaT55PC9taT4gPG1vPis8L21v
PiA8bWk+cTwvbWk+IDxtbz49PC9tbz4gPG1uPjA8L21uPiA8L21zdHlsZT4gPC9tYXRoPiDXnteV
15PXktep15nXnSDXktedINeU1508L3A+CisKKyAgICA8cCBpZD0ieTQiPjwvcD4KIAogICA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JmMDk5ZS4uM2Y1NTIyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDEzLTExLTE5ICBGcsOpZMOpcmljIFdhbmcgIDxmcmVkLndhbmdA
ZnJlZS5mcj4KKworICAgICAgICBNYXAgdGhlIGRpciBhdHRyaWJ1dGUgdG8gdGhlIENTUyBkaXJl
Y3Rpb24gcHJvcGVydHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjQ1NzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdHM6IG1hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwuaHRt
bAorICAgICAgICAgICAgICAgbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tdG9rZW4uaHRt
bAorICAgICAgICAgICAgICAgbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24uaHRtbAorCisg
ICAgICAgICogbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0
aE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBhZGQgZGlyCisgICAgICAgIChX
ZWJDb3JlOjpNYXRoTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUpOiBtYXAgZGlyCisgICAgICAgICogbWF0aG1sL21hdGhhdHRycy5pbjogYWRkIHRoZSBkaXIg
YXR0cmlidXRlCisgICAgICAgICogbWF0aG1sL21hdGh0YWdzLmluOiBhZGQgdGhlIG1zdHlsZSB0
YWcgKG5lZWRlZCB0byB1c2UgbXN0eWxlVGFnKQorCiAyMDEzLTExLTE4ICBCZW5qYW1pbiBQb3Vs
YWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIGlPUydzIFJlc291
cmNlSGFuZGxlIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVu
dC5jcHAKaW5kZXggYjNiM2FkMy4uNTM1NDg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIE1hdGhNTEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZwog
CiBib29sIE1hdGhNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7Ci0gICAgaWYgKG5hbWUgPT0gbWF0aGJhY2tncm91bmRB
dHRyIHx8IG5hbWUgPT0gbWF0aHNpemVBdHRyIHx8IG5hbWUgPT0gbWF0aGNvbG9yQXR0ciB8fCBu
YW1lID09IGZvbnRzaXplQXR0ciB8fCBuYW1lID09IGJhY2tncm91bmRBdHRyIHx8IG5hbWUgPT0g
Y29sb3JBdHRyIHx8IG5hbWUgPT0gZm9udHN0eWxlQXR0ciB8fCBuYW1lID09IGZvbnR3ZWlnaHRB
dHRyIHx8IG5hbWUgPT0gZm9udGZhbWlseUF0dHIpCisgICAgaWYgKG5hbWUgPT0gbWF0aGJhY2tn
cm91bmRBdHRyIHx8IG5hbWUgPT0gbWF0aHNpemVBdHRyIHx8IG5hbWUgPT0gbWF0aGNvbG9yQXR0
ciB8fCBuYW1lID09IGZvbnRzaXplQXR0ciB8fCBuYW1lID09IGJhY2tncm91bmRBdHRyIHx8IG5h
bWUgPT0gY29sb3JBdHRyIHx8IG5hbWUgPT0gZm9udHN0eWxlQXR0ciB8fCBuYW1lID09IGZvbnR3
ZWlnaHRBdHRyIHx8IG5hbWUgPT0gZm9udGZhbWlseUF0dHIgfHwgbmFtZSA9PSBkaXJBdHRyKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6aXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CkBAIC0xMDYsNyArMTA2LDEwIEBAIHZvaWQgTWF0aE1M
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hCiAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlGb250V2VpZ2h0LCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAo
bmFtZSA9PSBmb250ZmFtaWx5QXR0cikKICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIHZhbHVlKTsKLSAg
ICBlbHNlIHsKKyAgICBlbHNlIGlmIChuYW1lID09IGRpckF0dHIpIHsKKyAgICAgICAgaWYgKGhh
c1RhZ05hbWUobWF0aFRhZykgfHwgaGFzVGFnTmFtZShtc3R5bGVUYWcpIHx8IGhhc1RhZ05hbWUo
bXJvd1RhZykgfHwgaGFzVGFnTmFtZShtdGV4dFRhZykgfHwgaGFzVGFnTmFtZShtc1RhZykgfHwg
aGFzVGFnTmFtZShtb1RhZykgfHwgaGFzVGFnTmFtZShtaVRhZykgfHwgaGFzVGFnTmFtZShtblRh
ZykpCisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5RGlyZWN0aW9uLCB2YWx1ZSk7CisgICAgfSAgZWxzZSB7CiAgICAg
ICAgIEFTU0VSVCghaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSkpOwogICAgICAgICBTdHls
ZWRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFs
dWUKICAgICAgICAgLCBzdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
bWF0aGF0dHJzLmluIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGhhdHRycy5pbgppbmRleCBj
MjcwNTI1Li4xYTQ4ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aGF0
dHJzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4KQEAgLTExLDYg
KzExLDcgQEAgY29sdW1uc3BhbgogZGVmaW5pdGlvblVSTAogZGVub21hbGlnbgogZGVwdGgKK2Rp
cgogZW5jb2RpbmcKIGZvbnRmYW1pbHkKIGZvbnRzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvbWF0aHRhZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3Mu
aW4KaW5kZXggMTE0ODNjYy4uODlmNDBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL21hdGh0YWdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbgpA
QCAtOCw2ICs4LDcgQEAgbWZyYWMgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJF
bGVtZW50CiBtZmVuY2VkIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dAogbXN1YnN1cCBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1y
b3cgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Cittc3R5bGUgaW50
ZXJmYWNlTmFtZT1NYXRoTUxFbGVtZW50CiBtb3ZlciBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQKIG11bmRlciBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRh
aW5lckVsZW1lbnQKIG11bmRlcm92ZXIgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWlu
ZXJFbGVtZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217415</attachid>
            <date>2013-11-20 03:31:23 -0800</date>
            <delta_ts>2013-11-21 03:14:33 -0800</delta_ts>
            <desc>Follow up V1</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>4137</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92
ZXJhbGwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGly
ZWN0aW9uLW92ZXJhbGwtZXhwZWN0ZWQuaHRtbAppbmRleCAzMDNkZDYwLi4xMDZlMmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1vdmVyYWxs
LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJl
Y3Rpb24tb3ZlcmFsbC1leHBlY3RlZC5odG1sCkBAIC0zMyw1ICszMywxNiBAQAogICAgICAgPC9t
YXRoPgogICAgIDwvcD4KIAorICAgIDxwPgorICAgICAgbXNxcnQ6CisgICAgICA8bWF0aD4KKyAg
ICAgICAgPG1zcXJ0PgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0iMjVw
eCIgbWF0aGJhY2tncm91bmQ9InJlZCIvPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgi
IGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9ImdyZWVuIi8+CisgICAgICAgICAgPG1zcGFj
ZSB3aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iYmx1ZSIvPgorICAg
ICAgICA8L21zcXJ0PgorICAgICAgPC9tYXRoPgorICAgIDwvcD4KKwogICA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlv
bi1vdmVyYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlv
bi1vdmVyYWxsLmh0bWwKaW5kZXggZTRhYjAwYy4uYWU0ZTMyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwuaHRtbApAQCAt
MzcsNSArMzcsMTkgQEAKICAgICAgIDwvbWF0aD4KICAgICA8L3A+CiAKKyAgICA8IS0tIGRpcj0i
cnRsIiBvbiA8bXNxcnQ+IHNob3VsZCBiZSBpZ25vcmVkLiBUaGUgcmVjdGFuZ2xlCisgICAgICAg
ICBpbnNpZGUgdGhpcyBlbGVtZW50IHNob3VsZCBiZSBkaXNwbGF5ZWQgbGVmdC10by1yaWdodC4g
LS0+CisKKyAgICA8cD4KKyAgICAgIG1zcXJ0OgorICAgICAgPG1hdGg+CisgICAgICAgIDxtc3Fy
dCBkaXI9InJ0bCI+CisgICAgICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4
IiBtYXRoYmFja2dyb3VuZD0icmVkIi8+CisgICAgICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIg
aGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iZ3JlZW4iLz4KKyAgICAgICAgICA8bXNwYWNl
IHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJibHVlIi8+CisgICAg
ICAgIDwvbXNxcnQ+CisgICAgICA8L21hdGg+CisgICAgPC9wPgorCiAgIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCA1MzU0ODU4Li45
N2ZkYjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIHZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nCiAKIGJvb2wgTWF0aE1MRWxlbWVudDo6
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QK
IHsKLSAgICBpZiAobmFtZSA9PSBtYXRoYmFja2dyb3VuZEF0dHIgfHwgbmFtZSA9PSBtYXRoc2l6
ZUF0dHIgfHwgbmFtZSA9PSBtYXRoY29sb3JBdHRyIHx8IG5hbWUgPT0gZm9udHNpemVBdHRyIHx8
IG5hbWUgPT0gYmFja2dyb3VuZEF0dHIgfHwgbmFtZSA9PSBjb2xvckF0dHIgfHwgbmFtZSA9PSBm
b250c3R5bGVBdHRyIHx8IG5hbWUgPT0gZm9udHdlaWdodEF0dHIgfHwgbmFtZSA9PSBmb250ZmFt
aWx5QXR0ciB8fCBuYW1lID09IGRpckF0dHIpCisgICAgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0
dHIgfHwgbmFtZSA9PSBjb2xvckF0dHIgfHwgbmFtZSA9PSBkaXJBdHRyIHx8IG5hbWUgPT0gZm9u
dGZhbWlseUF0dHIgfHwgbmFtZSA9PSBmb250c2l6ZUF0dHIgfHwgbmFtZSA9PSBmb250c3R5bGVB
dHRyIHx8IG5hbWUgPT0gZm9udHdlaWdodEF0dHIgfHwgbmFtZSA9PSBtYXRoYmFja2dyb3VuZEF0
dHIgfHwgbmFtZSA9PSBtYXRoY29sb3JBdHRyIHx8IG5hbWUgPT0gbWF0aHNpemVBdHRyKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSk7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBNYXRoTUxFbGVt
ZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmEKICAgICBlbHNlIGlmIChuYW1lID09IGZvbnRmYW1pbHlBdHRyKQogICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
Rm9udEZhbWlseSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gZGlyQXR0cikgewotICAg
ICAgICBpZiAoaGFzVGFnTmFtZShtYXRoVGFnKSB8fCBoYXNUYWdOYW1lKG1zdHlsZVRhZykgfHwg
aGFzVGFnTmFtZShtcm93VGFnKSB8fCBoYXNUYWdOYW1lKG10ZXh0VGFnKSB8fCBoYXNUYWdOYW1l
KG1zVGFnKSB8fCBoYXNUYWdOYW1lKG1vVGFnKSB8fCBoYXNUYWdOYW1lKG1pVGFnKSB8fCBoYXNU
YWdOYW1lKG1uVGFnKSkKKyAgICAgICAgaWYgKGhhc1RhZ05hbWUobWF0aFRhZykgfHwgaGFzVGFn
TmFtZShtcm93VGFnKSB8fCBoYXNUYWdOYW1lKG1zdHlsZVRhZykgfHwgaXNNYXRoTUxUb2tlbigp
KQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwgdmFsdWUpOwogICAgIH0gIGVsc2UgewogICAgICAg
ICBBU1NFUlQoIWlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpKTsKQEAgLTEyMiw2ICsxMjIs
MTEgQEAgYm9vbCBNYXRoTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBjaGlsZC5pc1RleHROb2RlKCkgfHwgY2hp
bGQuaXNNYXRoTUxFbGVtZW50KCk7CiB9CiAKK2Jvb2wgTWF0aE1MRWxlbWVudDo6aXNNYXRoTUxU
b2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1RhZ05hbWUobWlUYWcpIHx8IGhhc1RhZ05h
bWUobW5UYWcpIHx8IGhhc1RhZ05hbWUobW9UYWcpIHx8IGhhc1RhZ05hbWUobXNUYWcpIHx8IGhh
c1RhZ05hbWUobXRleHRUYWcpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKaW5kZXggZjU5ZDRiZS4uOTI5OTA0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCkBAIC01MSw2ICs1MSw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKKworICAgIGlubGlu
ZSBib29sIGlzTWF0aE1MVG9rZW4oKSBjb25zdDsKIH07CiAKIHZvaWQgaXNNYXRoTUxFbGVtZW50
KGNvbnN0IE1hdGhNTEVsZW1lbnQmKTsgLy8gQ2F0Y2ggdW5uZWNlc3NhcnkgcnVudGltZSBjaGVj
ayBvZiB0eXBlIGtub3duIGF0IGNvbXBpbGUgdGltZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217469</attachid>
            <date>2013-11-20 13:04:14 -0800</date>
            <delta_ts>2013-11-21 03:14:33 -0800</delta_ts>
            <desc>Follow up V2</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>7394</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92
ZXJhbGwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGly
ZWN0aW9uLW92ZXJhbGwtZXhwZWN0ZWQuaHRtbAppbmRleCAzMDNkZDYwLi4xMDZlMmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1vdmVyYWxs
LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJl
Y3Rpb24tb3ZlcmFsbC1leHBlY3RlZC5odG1sCkBAIC0zMyw1ICszMywxNiBAQAogICAgICAgPC9t
YXRoPgogICAgIDwvcD4KIAorICAgIDxwPgorICAgICAgbXNxcnQ6CisgICAgICA8bWF0aD4KKyAg
ICAgICAgPG1zcXJ0PgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0iMjVw
eCIgbWF0aGJhY2tncm91bmQ9InJlZCIvPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgi
IGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9ImdyZWVuIi8+CisgICAgICAgICAgPG1zcGFj
ZSB3aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iYmx1ZSIvPgorICAg
ICAgICA8L21zcXJ0PgorICAgICAgPC9tYXRoPgorICAgIDwvcD4KKwogICA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlv
bi1vdmVyYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlv
bi1vdmVyYWxsLmh0bWwKaW5kZXggZTRhYjAwYy4uYWU0ZTMyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwuaHRtbApAQCAt
MzcsNSArMzcsMTkgQEAKICAgICAgIDwvbWF0aD4KICAgICA8L3A+CiAKKyAgICA8IS0tIGRpcj0i
cnRsIiBvbiA8bXNxcnQ+IHNob3VsZCBiZSBpZ25vcmVkLiBUaGUgcmVjdGFuZ2xlCisgICAgICAg
ICBpbnNpZGUgdGhpcyBlbGVtZW50IHNob3VsZCBiZSBkaXNwbGF5ZWQgbGVmdC10by1yaWdodC4g
LS0+CisKKyAgICA8cD4KKyAgICAgIG1zcXJ0OgorICAgICAgPG1hdGg+CisgICAgICAgIDxtc3Fy
dCBkaXI9InJ0bCI+CisgICAgICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIgaGVpZ2h0PSIyNXB4
IiBtYXRoYmFja2dyb3VuZD0icmVkIi8+CisgICAgICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIg
aGVpZ2h0PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iZ3JlZW4iLz4KKyAgICAgICAgICA8bXNwYWNl
IHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJibHVlIi8+CisgICAg
ICAgIDwvbXNxcnQ+CisgICAgICA8L21hdGg+CisgICAgPC9wPgorCiAgIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC93cmFwcGVyLWNsYXNzZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWF0aG1sL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcwMTNhMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21hdGhtbC93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgTWF0aE1MIHdyYXBwZXIgY2xhc3MgbmFtZXMgZm9y
IEphdmFTY3JpcHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK01hdGhNTCBF
bGVtZW50cworCitQQVNTIHRhZ0pTV3JhcHBlckNsYXNzKCdtc3R5bGUnKSBpcyAnRWxlbWVudCcK
K1BBU1MgdGFnSlNXcmFwcGVyUHJvdG90eXBlQ2xhc3MoJ21zdHlsZScpIGlzICdFbGVtZW50UHJv
dG90eXBlJworUEFTUyB0YWdKU1dyYXBwZXJDb25zdHJ1Y3RvckNsYXNzKCdtc3R5bGUnKSBpcyAn
RWxlbWVudENvbnN0cnVjdG9yJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvd3Jh
cHBlci1jbGFzc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvd3JhcHBlci1jbGFzc2VzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzAxYWEwOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC93cmFwcGVyLWNsYXNzZXMuaHRtbApAQCAtMCww
ICsxLDg3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxlIiBtZWRpYT0ic2NyZWVuIj4K
Ky5ub24tZXhpc3RlbnQtY2xhc3MgeworICAgIGNvbG9yOiByZ2IoMCwgMCwgMCk7CisgICAgY2xp
cDogcmVjdCgwLCAwLCAxLCAxKTsKKyAgICBjb250ZW50OiBjb3VudGVyKGR1bW15LCBzcXVhcmUp
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKwordmFyIG1hdGhtbE5T
ID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiOworCitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIGpz
V3JhcHBlckNsYXNzKG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gIltu
dWxsXSI7CisgICAgdmFyIHN0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHko
bm9kZSk7CisgICAgcmV0dXJuIHN0cmluZy5zdWJzdHIoOCwgc3RyaW5nLmxlbmd0aCAtIDkpOwor
fQorCitmdW5jdGlvbiB0YWdKU1dyYXBwZXJDbGFzcyh0YWdOYW1lKQoreworICAgIHJldHVybiBq
c1dyYXBwZXJDbGFzcyhkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobWF0aG1sTlMsIHRhZ05hbWUp
KTsKK30KKworZnVuY3Rpb24gdGFnSlNXcmFwcGVyUHJvdG90eXBlQ2xhc3ModGFnTmFtZSkKK3sK
KyAgICByZXR1cm4ganNXcmFwcGVyQ2xhc3MoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG1hdGht
bE5TLCB0YWdOYW1lKS5fX3Byb3RvX18pOworfQorCitmdW5jdGlvbiB0YWdKU1dyYXBwZXJDb25z
dHJ1Y3RvckNsYXNzKHRhZ05hbWUpCit7CisgICAgcmV0dXJuIGpzV3JhcHBlckNsYXNzKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnROUyhtYXRobWxOUywgdGFnTmFtZSkuY29uc3RydWN0b3IpOworfQor
CitmdW5jdGlvbiB0ZXN0VGFnKHRhZ05hbWUsIGNsYXNzTmFtZSwgcHJvdG90eXBlTmFtZSwgY29u
c3RydWN0b3JOYW1lKQoreworICAgIGlmICghcHJvdG90eXBlTmFtZSkKKyAgICAgICAgcHJvdG90
eXBlTmFtZSA9IGNsYXNzTmFtZSArICJQcm90b3R5cGUiOworICAgIGlmICghY29uc3RydWN0b3JO
YW1lKQorICAgICAgICBjb25zdHJ1Y3Rvck5hbWUgPSBjbGFzc05hbWUgKyAiQ29uc3RydWN0b3Ii
OworICAgIHNob3VsZEJlKCJ0YWdKU1dyYXBwZXJDbGFzcygnIiArIHRhZ05hbWUgKyAiJykiLCAi
JyIgKyBjbGFzc05hbWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJ0YWdKU1dyYXBwZXJQcm90b3R5
cGVDbGFzcygnIiArIHRhZ05hbWUgKyAiJykiLCAiJyIgKyBwcm90b3R5cGVOYW1lICsgIiciKTsK
KyAgICBzaG91bGRCZSgidGFnSlNXcmFwcGVyQ29uc3RydWN0b3JDbGFzcygnIiArIHRhZ05hbWUg
KyAiJykiLCAiJyIgKyBjb25zdHJ1Y3Rvck5hbWUgKyAiJyIpOworfQorCitmdW5jdGlvbiB0ZXN0
KGV4cHJlc3Npb24sIGNsYXNzTmFtZSwgcHJvdG90eXBlTmFtZSwgY29uc3RydWN0b3JOYW1lKQor
eworICAgIGlmICghcHJvdG90eXBlTmFtZSkKKyAgICAgICAgcHJvdG90eXBlTmFtZSA9IGNsYXNz
TmFtZSArICJQcm90b3R5cGUiOworICAgIGlmICghY29uc3RydWN0b3JOYW1lKQorICAgICAgICBj
b25zdHJ1Y3Rvck5hbWUgPSBjbGFzc05hbWUgKyAiQ29uc3RydWN0b3IiOworICAgIHNob3VsZEJl
KCJqc1dyYXBwZXJDbGFzcygiICsgZXhwcmVzc2lvbiArICIpIiwgIiciICsgY2xhc3NOYW1lICsg
IiciKTsKKyAgICBzaG91bGRCZSgianNXcmFwcGVyQ2xhc3MoIiArIGV4cHJlc3Npb24gKyAiLl9f
cHJvdG9fXykiLCAiJyIgKyBwcm90b3R5cGVOYW1lICsgIiciKTsKKyAgICBzaG91bGRCZSgianNX
cmFwcGVyQ2xhc3MoIiArIGV4cHJlc3Npb24gKyAiLmNvbnN0cnVjdG9yKSIsICInIiArIGNvbnN0
cnVjdG9yTmFtZSArICInIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIE1hdGhNTCB3cmFwcGVyIGNsYXNzIG5hbWVzIGZvciBKYXZhU2Ny
aXB0LiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdNYXRoTUwgRWxlbWVudHMnKTsK
KyAgICBkZWJ1ZygnJyk7CisKKyAgICB0ZXN0VGFnKCJtc3R5bGUiLCAiRWxlbWVudCIpOworCisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKK30KKworZnVuY3Rpb24gZnJhbWVMb2FkZWQoKQoreworICAgIHJ1blRlc3QoKTsKK30KKwor
PC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ4bWxmcmFtZSIgb25sb2FkPSJmcmFtZUxvYWRlZCgpIiBz
dHlsZT0iaGVpZ2h0OjBweCIgc3JjPSJkYXRhOmFwcGxpY2F0aW9uL3hodG1sK3htbCw8P3htbCB2
ZXJzaW9uPScxLjAnIGVuY29kaW5nPSdVVEYtOCc/Pjxib2R5Lz4iPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCmluZGV4IDUz
NTQ4NTguLjk3ZmRiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAK
QEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcKIAogYm9vbCBNYXRoTUxF
bGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
KSBjb25zdAogewotICAgIGlmIChuYW1lID09IG1hdGhiYWNrZ3JvdW5kQXR0ciB8fCBuYW1lID09
IG1hdGhzaXplQXR0ciB8fCBuYW1lID09IG1hdGhjb2xvckF0dHIgfHwgbmFtZSA9PSBmb250c2l6
ZUF0dHIgfHwgbmFtZSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBuYW1lID09IGNvbG9yQXR0ciB8fCBu
YW1lID09IGZvbnRzdHlsZUF0dHIgfHwgbmFtZSA9PSBmb250d2VpZ2h0QXR0ciB8fCBuYW1lID09
IGZvbnRmYW1pbHlBdHRyIHx8IG5hbWUgPT0gZGlyQXR0cikKKyAgICBpZiAobmFtZSA9PSBiYWNr
Z3JvdW5kQXR0ciB8fCBuYW1lID09IGNvbG9yQXR0ciB8fCBuYW1lID09IGRpckF0dHIgfHwgbmFt
ZSA9PSBmb250ZmFtaWx5QXR0ciB8fCBuYW1lID09IGZvbnRzaXplQXR0ciB8fCBuYW1lID09IGZv
bnRzdHlsZUF0dHIgfHwgbmFtZSA9PSBmb250d2VpZ2h0QXR0ciB8fCBuYW1lID09IG1hdGhiYWNr
Z3JvdW5kQXR0ciB8fCBuYW1lID09IG1hdGhjb2xvckF0dHIgfHwgbmFtZSA9PSBtYXRoc2l6ZUF0
dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojppc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIE1h
dGhNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYQogICAgIGVsc2UgaWYgKG5hbWUgPT0gZm9udGZhbWlseUF0dHIpCiAg
ICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NT
UHJvcGVydHlGb250RmFtaWx5LCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBkaXJBdHRy
KSB7Ci0gICAgICAgIGlmIChoYXNUYWdOYW1lKG1hdGhUYWcpIHx8IGhhc1RhZ05hbWUobXN0eWxl
VGFnKSB8fCBoYXNUYWdOYW1lKG1yb3dUYWcpIHx8IGhhc1RhZ05hbWUobXRleHRUYWcpIHx8IGhh
c1RhZ05hbWUobXNUYWcpIHx8IGhhc1RhZ05hbWUobW9UYWcpIHx8IGhhc1RhZ05hbWUobWlUYWcp
IHx8IGhhc1RhZ05hbWUobW5UYWcpKQorICAgICAgICBpZiAoaGFzVGFnTmFtZShtYXRoVGFnKSB8
fCBoYXNUYWdOYW1lKG1yb3dUYWcpIHx8IGhhc1RhZ05hbWUobXN0eWxlVGFnKSB8fCBpc01hdGhN
TFRva2VuKCkpCiAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5RGlyZWN0aW9uLCB2YWx1ZSk7CiAgICAgfSAgZWxzZSB7
CiAgICAgICAgIEFTU0VSVCghaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSkpOwpAQCAtMTIy
LDYgKzEyMiwxMSBAQCBib29sIE1hdGhNTEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuIGNoaWxkLmlzVGV4dE5vZGUo
KSB8fCBjaGlsZC5pc01hdGhNTEVsZW1lbnQoKTsKIH0KIAorYm9vbCBNYXRoTUxFbGVtZW50Ojpp
c01hdGhNTFRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzVGFnTmFtZShtaVRhZykgfHwg
aGFzVGFnTmFtZShtblRhZykgfHwgaGFzVGFnTmFtZShtb1RhZykgfHwgaGFzVGFnTmFtZShtc1Rh
ZykgfHwgaGFzVGFnTmFtZShtdGV4dFRhZyk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShN
QVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAppbmRleCBmNTlkNGJlLi45
Mjk5MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKQEAgLTUxLDYgKzUx
LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIGNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOworCisg
ICAgaW5saW5lIGJvb2wgaXNNYXRoTUxUb2tlbigpIGNvbnN0OwogfTsKIAogdm9pZCBpc01hdGhN
TEVsZW1lbnQoY29uc3QgTWF0aE1MRWxlbWVudCYpOyAvLyBDYXRjaCB1bm5lY2Vzc2FyeSBydW50
aW1lIGNoZWNrIG9mIHR5cGUga25vd24gYXQgY29tcGlsZSB0aW1lLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217541</attachid>
            <date>2013-11-21 03:14:33 -0800</date>
            <delta_ts>2013-11-21 21:01:03 -0800</delta_ts>
            <desc>Follow up V3</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>9459</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxOWFiNjI5Li4wZTg5ZGExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMTEt
MjEgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIE1hcCB0
aGUgZGlyIGF0dHJpYnV0ZSB0byB0aGUgQ1NTIGRpcmVjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3Mi4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1hdGhtbC9wcmVzZW50
YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwtZXhwZWN0ZWQuaHRtbDogdGVzdCB0aGF0IGRpciBkb2Vz
IG5vdCBhcHBseSB0byBtc3FydAorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0
aW9uLW92ZXJhbGwuaHRtbDoKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21zdHlsZS1j
c3MtYXR0cmlidXRlcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJl
c2VudGF0aW9uL21zdHlsZS1jc3MtYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKworICAgICAgICBB
ZGQgbW9yZSB0ZXN0cyBmb3IgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZXMgb24gbXN0eWxlLgorCiAy
MDEzLTExLTE5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEVu
YWJsZSBIVE1MVGVtcGxhdGVFbGVtZW50IG9uIE1hYyBwb3J0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1vdmVyYWxsLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2RpcmVjdGlvbi1vdmVyYWxsLWV4cGVj
dGVkLmh0bWwKaW5kZXggMzAzZGQ2MC4uMTA2ZTJmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC1leHBlY3RlZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwtZXhwZWN0
ZWQuaHRtbApAQCAtMzMsNSArMzMsMTYgQEAKICAgICAgIDwvbWF0aD4KICAgICA8L3A+CiAKKyAg
ICA8cD4KKyAgICAgIG1zcXJ0OgorICAgICAgPG1hdGg+CisgICAgICAgIDxtc3FydD4KKyAgICAg
ICAgICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhiYWNrZ3JvdW5kPSJy
ZWQiLz4KKyAgICAgICAgICA8bXNwYWNlIHdpZHRoPSIyNXB4IiBoZWlnaHQ9IjI1cHgiIG1hdGhi
YWNrZ3JvdW5kPSJncmVlbiIvPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdo
dD0iMjVweCIgbWF0aGJhY2tncm91bmQ9ImJsdWUiLz4KKyAgICAgICAgPC9tc3FydD4KKyAgICAg
IDwvbWF0aD4KKyAgICA8L3A+CisKICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC5odG1sIGIvTGF5
b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9kaXJlY3Rpb24tb3ZlcmFsbC5odG1sCmluZGV4
IGU0YWIwMGMuLmFlNGUzMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50
YXRpb24vZGlyZWN0aW9uLW92ZXJhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL2RpcmVjdGlvbi1vdmVyYWxsLmh0bWwKQEAgLTM3LDUgKzM3LDE5IEBACiAgICAg
ICA8L21hdGg+CiAgICAgPC9wPgogCisgICAgPCEtLSBkaXI9InJ0bCIgb24gPG1zcXJ0PiBzaG91
bGQgYmUgaWdub3JlZC4gVGhlIHJlY3RhbmdsZQorICAgICAgICAgaW5zaWRlIHRoaXMgZWxlbWVu
dCBzaG91bGQgYmUgZGlzcGxheWVkIGxlZnQtdG8tcmlnaHQuIC0tPgorCisgICAgPHA+CisgICAg
ICBtc3FydDoKKyAgICAgIDxtYXRoPgorICAgICAgICA8bXNxcnQgZGlyPSJydGwiPgorICAgICAg
ICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJhY2tncm91bmQ9InJl
ZCIvPgorICAgICAgICAgIDxtc3BhY2Ugd2lkdGg9IjI1cHgiIGhlaWdodD0iMjVweCIgbWF0aGJh
Y2tncm91bmQ9ImdyZWVuIi8+CisgICAgICAgICAgPG1zcGFjZSB3aWR0aD0iMjVweCIgaGVpZ2h0
PSIyNXB4IiBtYXRoYmFja2dyb3VuZD0iYmx1ZSIvPgorICAgICAgICA8L21zcXJ0PgorICAgICAg
PC9tYXRoPgorICAgIDwvcD4KKwogICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL21zdHlsZS1jc3MtYXR0cmlidXRlcy1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tc3R5bGUtY3NzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
MTk1Yzc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlv
bi9tc3R5bGUtY3NzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+bXN0eWxlIGNzcyBh
dHRyaWJ1dGVzPC90aXRsZT4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgorICA8L2hlYWQ+
CisgIDxib2R5PgorCisgICAgPHA+PG1hdGg+PG1zdHlsZSBzdHlsZT0iYmFja2dyb3VuZDogcmVk
OyI+PG10ZXh0PnJnYigyNTUsIDAsIDApPC9tdGV4dD48L21zdHlsZT48L21hdGg+PC9wPgorICAg
IDxwPjxtYXRoPjxtc3R5bGUgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsiPjxtdGV4dD4zMnB4PC9t
dGV4dD48L21zdHlsZT48L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5bGUgc3R5bGU9ImNv
bG9yOiBncmVlbjsiPjxtdGV4dD5yZ2IoMCwgMTI4LCAwKTwvbXRleHQ+PC9tc3R5bGU+PC9tYXRo
PjwvcD4KKyAgICA8cD48bWF0aD48bXN0eWxlIHN0eWxlPSJmb250LXNpemU6IDY0cHg7Ij48bXRl
eHQ+NjRweDwvbXRleHQ+PC9tc3R5bGU+PC9tYXRoPjwvcD4KKyAgICA8cD48bWF0aD48bXN0eWxl
IHN0eWxlPSJiYWNrZ3JvdW5kOiBibHVlOyI+PG10ZXh0PnJnYigwLCAwLCAyNTUpPC9tdGV4dD48
L21zdHlsZT48L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5bGUgc3R5bGU9ImNvbG9yOiBt
YWdlbnRhOyI+PG10ZXh0PnJnYigyNTUsIDAsIDI1NSk8L210ZXh0PjwvbXN0eWxlPjwvbWF0aD48
L3A+CisgICAgPHA+PG1hdGg+PG1zdHlsZSBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyI+PG10
ZXh0Pml0YWxpYzwvbXRleHQ+PC9tc3R5bGU+PC9tYXRoPjwvcD4KKyAgICA8cD48bWF0aD48bXN0
eWxlIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPjxtdGV4dD5ib2xkPC9tdGV4dD48L21zdHls
ZT48L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5bGUgc3R5bGU9ImZvbnQtZmFtaWx5OiBj
b3VyaWVyOyI+PG10ZXh0PmNvdXJpZXI8L210ZXh0PjwvbXN0eWxlPjwvbWF0aD48L3A+CisgICAg
PHA+PG1hdGg+PG1zdHlsZT48bXNwYWNlIHdpZHRoPSI1ZW0iLz48bXRleHQ+cnRsPC9tdGV4dD48
L21zdHlsZT48L21hdGg+PC9wPgorCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbXN0eWxlLWNzcy1hdHRyaWJ1dGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL21zdHlsZS1jc3MtYXR0cmlidXRlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZDlhNTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL21zdHlsZS1jc3MtYXR0
cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT5tc3R5bGUgY3NzIGF0dHJpYnV0ZXM8L3RpdGxlPgorICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgorICAgICAgZnVuY3Rpb24gY29tcHV0ZUNTUyhpLCBwcm9wZXJ0eSkKKyAgICAgIHsKKyAgICAg
ICAgdmFyIG1zdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4JytpKTsKKyAgICAgICAg
dmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShtc3R5bGUpW3Byb3BlcnR5XSk7CisgICAgICAgIG1zdHlsZS5maXJzdENoaWxkLmFwcGVuZENo
aWxkKHRleHQpOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBpbml0KCkKKyAgICAgIHsKKyAg
ICAgICAgY29tcHV0ZUNTUygxLCAnYmFja2dyb3VuZENvbG9yJyk7CisgICAgICAgIGNvbXB1dGVD
U1MoMiwgJ2ZvbnRTaXplJyk7CisgICAgICAgIGNvbXB1dGVDU1MoMywgJ2NvbG9yJyk7CisgICAg
ICAgIGNvbXB1dGVDU1MoNCwgJ2ZvbnRTaXplJyk7CisgICAgICAgIGNvbXB1dGVDU1MoNSwgJ2Jh
Y2tncm91bmRDb2xvcicpOworICAgICAgICBjb21wdXRlQ1NTKDYsICdjb2xvcicpOworICAgICAg
ICBjb21wdXRlQ1NTKDcsICdmb250U3R5bGUnKTsKKyAgICAgICAgY29tcHV0ZUNTUyg4LCAnZm9u
dFdlaWdodCcpOworICAgICAgICBjb21wdXRlQ1NTKDksICdmb250RmFtaWx5Jyk7CisgICAgICAg
IGNvbXB1dGVDU1MoMTAsICdkaXJlY3Rpb24nKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
PC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisKKyAgICA8IS0tIFRoZXNlIHRlc3Qg
Q1NTIG1hcHBpbmcgb2YgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZXMgb24gdGhlIDxtc3R5bGU+IGVs
ZW1lbnQuIC0tPgorCisgICAgPHA+PG1hdGg+PG1zdHlsZSBpZD0ieDEiIG1hdGhiYWNrZ3JvdW5k
PSJyZWQiPjxtdGV4dD48L210ZXh0PjwvbXN0eWxlPjwvbWF0aD48L3A+CisgICAgPHA+PG1hdGg+
PG1zdHlsZSBpZD0ieDIiIG1hdGhzaXplPSIzMnB4Ij48bXRleHQ+PC9tdGV4dD48L21zdHlsZT48
L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5bGUgaWQ9IngzIiBtYXRoY29sb3I9ImdyZWVu
Ij48bXRleHQ+PC9tdGV4dD48L21zdHlsZT48L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5
bGUgaWQ9Ing0IiBmb250c2l6ZT0iNjRweCI+PG10ZXh0PjwvbXRleHQ+PC9tc3R5bGU+PC9tYXRo
PjwvcD4KKyAgICA8cD48bWF0aD48bXN0eWxlIGlkPSJ4NSIgYmFja2dyb3VuZD0iYmx1ZSI+PG10
ZXh0PjwvbXRleHQ+PC9tc3R5bGU+PC9tYXRoPjwvcD4KKyAgICA8cD48bWF0aD48bXN0eWxlIGlk
PSJ4NiIgY29sb3I9Im1hZ2VudGEiPjxtdGV4dD48L210ZXh0PjwvbXN0eWxlPjwvbWF0aD48L3A+
CisgICAgPHA+PG1hdGg+PG1zdHlsZSBpZD0ieDciIGZvbnRzdHlsZT0iaXRhbGljIj48bXRleHQ+
PC9tdGV4dD48L21zdHlsZT48L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5bGUgaWQ9Ing4
IiBmb250d2VpZ2h0PSJib2xkIj48bXRleHQ+PC9tdGV4dD48L21zdHlsZT48L21hdGg+PC9wPgor
ICAgIDxwPjxtYXRoPjxtc3R5bGUgaWQ9Ing5IiBmb250ZmFtaWx5PSJjb3VyaWVyIj48bXRleHQ+
PC9tdGV4dD48L21zdHlsZT48L21hdGg+PC9wPgorICAgIDxwPjxtYXRoPjxtc3R5bGUgaWQ9Ingx
MCIgZGlyPSJydGwiPjxtdGV4dD48L210ZXh0Pjxtc3BhY2Ugd2lkdGg9IjVlbSIvPjwvbXN0eWxl
PjwvbWF0aD48L3A+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYzYzgzMjUu
LjljMjRhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0xMS0yMSAgRnLDqWTD
qXJpYyBXYW5nICA8ZnJlZC53YW5nQGZyZWUuZnI+CisKKyAgICAgICAgTWFwIHRoZSBkaXIgYXR0
cmlidXRlIHRvIHRoZSBDU1MgZGlyZWN0aW9uIHByb3BlcnR5LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTcyLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1hdGhtbC9wcmVzZW50YXRpb24v
bXN0eWxlLWNzcy1hdHRyaWJ1dGVzLmh0bWwKKworICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKTogcmVvcmRlciBhdHRyaWJ1dGVzCisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiByZW9yZGVyIHRh
Z3MgdGhhdCBhY2NlcHQgZGlyCisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxFbGVtZW50Ojppc01h
dGhNTFRva2VuKTogYWRkIGFuIGlubGluZSBmdW5jdGlvbiB0byB0ZXN0IHRoYXQgYSB0YWcgY29y
cmVzcG9uZHMgdG8gYSBNYXRoTUwgVG9rZW4gRWxlbWVudC4KKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MRWxlbWVudC5oOgorCisgICAgICAgIEZvbGxvdy11cCB3b3JrIHRvIGFkZHJlc3MgRGFyaW4n
cyBjb21tZW50cy4KKwogMjAxMy0xMS0yMCAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNv
bT4KIAogICAgICAgICBbQ1NTUmVnaW9uc10gTW92ZSByZWdpb24gc3R5bGluZyBjb2RlIGludG8g
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50
LmNwcAppbmRleCA1MzU0ODU4Li45N2ZkYjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEVsZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nCiAK
IGJvb2wgTWF0aE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKLSAgICBpZiAobmFtZSA9PSBtYXRoYmFja2dyb3VuZEF0
dHIgfHwgbmFtZSA9PSBtYXRoc2l6ZUF0dHIgfHwgbmFtZSA9PSBtYXRoY29sb3JBdHRyIHx8IG5h
bWUgPT0gZm9udHNpemVBdHRyIHx8IG5hbWUgPT0gYmFja2dyb3VuZEF0dHIgfHwgbmFtZSA9PSBj
b2xvckF0dHIgfHwgbmFtZSA9PSBmb250c3R5bGVBdHRyIHx8IG5hbWUgPT0gZm9udHdlaWdodEF0
dHIgfHwgbmFtZSA9PSBmb250ZmFtaWx5QXR0ciB8fCBuYW1lID09IGRpckF0dHIpCisgICAgaWYg
KG5hbWUgPT0gYmFja2dyb3VuZEF0dHIgfHwgbmFtZSA9PSBjb2xvckF0dHIgfHwgbmFtZSA9PSBk
aXJBdHRyIHx8IG5hbWUgPT0gZm9udGZhbWlseUF0dHIgfHwgbmFtZSA9PSBmb250c2l6ZUF0dHIg
fHwgbmFtZSA9PSBmb250c3R5bGVBdHRyIHx8IG5hbWUgPT0gZm9udHdlaWdodEF0dHIgfHwgbmFt
ZSA9PSBtYXRoYmFja2dyb3VuZEF0dHIgfHwgbmFtZSA9PSBtYXRoY29sb3JBdHRyIHx8IG5hbWUg
PT0gbWF0aHNpemVBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gU3R5bGVk
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CkBAIC0xMDcsNyArMTA3
LDcgQEAgdm9pZCBNYXRoTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEKICAgICBlbHNlIGlmIChuYW1lID09IGZvbnRm
YW1pbHlBdHRyKQogICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5Rm9udEZhbWlseSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKG5h
bWUgPT0gZGlyQXR0cikgewotICAgICAgICBpZiAoaGFzVGFnTmFtZShtYXRoVGFnKSB8fCBoYXNU
YWdOYW1lKG1zdHlsZVRhZykgfHwgaGFzVGFnTmFtZShtcm93VGFnKSB8fCBoYXNUYWdOYW1lKG10
ZXh0VGFnKSB8fCBoYXNUYWdOYW1lKG1zVGFnKSB8fCBoYXNUYWdOYW1lKG1vVGFnKSB8fCBoYXNU
YWdOYW1lKG1pVGFnKSB8fCBoYXNUYWdOYW1lKG1uVGFnKSkKKyAgICAgICAgaWYgKGhhc1RhZ05h
bWUobWF0aFRhZykgfHwgaGFzVGFnTmFtZShtcm93VGFnKSB8fCBoYXNUYWdOYW1lKG1zdHlsZVRh
ZykgfHwgaXNNYXRoTUxUb2tlbigpKQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwgdmFsdWUpOwog
ICAgIH0gIGVsc2UgewogICAgICAgICBBU1NFUlQoIWlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5h
bWUpKTsKQEAgLTEyMiw2ICsxMjIsMTEgQEAgYm9vbCBNYXRoTUxFbGVtZW50OjpjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBjaGls
ZC5pc1RleHROb2RlKCkgfHwgY2hpbGQuaXNNYXRoTUxFbGVtZW50KCk7CiB9CiAKK2Jvb2wgTWF0
aE1MRWxlbWVudDo6aXNNYXRoTUxUb2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1RhZ05h
bWUobWlUYWcpIHx8IGhhc1RhZ05hbWUobW5UYWcpIHx8IGhhc1RhZ05hbWUobW9UYWcpIHx8IGhh
c1RhZ05hbWUobXNUYWcpIHx8IGhhc1RhZ05hbWUobXRleHRUYWcpOworfQorCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKaW5k
ZXggZjU5ZDRiZS4uOTI5OTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5o
CkBAIC01MSw2ICs1MSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIAogICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBP
VkVSUklERTsKKworICAgIGlubGluZSBib29sIGlzTWF0aE1MVG9rZW4oKSBjb25zdDsKIH07CiAK
IHZvaWQgaXNNYXRoTUxFbGVtZW50KGNvbnN0IE1hdGhNTEVsZW1lbnQmKTsgLy8gQ2F0Y2ggdW5u
ZWNlc3NhcnkgcnVudGltZSBjaGVjayBvZiB0eXBlIGtub3duIGF0IGNvbXBpbGUgdGltZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>