<?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>126601</bug_id>
          
          <creation_ts>2014-01-07 14:32:25 -0800</creation_ts>
          <short_desc>[CSS Shapes] First line gets incorrectly adjusted in shape-inside due to rounding in some polygons</short_desc>
          <delta_ts>2014-01-09 16:51:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>bjonesbe</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>giles_joplin</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965171</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-07 14:32:25 -0800</bug_when>
    <thetext>First line gets incorrectly adjusted due to rounding in some polygons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965175</commentid>
    <comment_count>1</comment_count>
      <attachid>220552</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-07 14:46:28 -0800</bug_when>
    <thetext>Created attachment 220552
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965193</commentid>
    <comment_count>2</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-07 15:25:45 -0800</bug_when>
    <thetext>A little explanation: 

float firstPositiveWidth ends up used in 

shape.firstIncludedIntervalLogicalTop(m_shapeLineTop, LayoutSize(minSegmentWidth, m_lineHeight), newLineTop) (ShapeInsideInfo.cpp:99)

where minSegmentWidth becomes a LayoutUnit, which clamps floats to ints in LayoutUnit.h:11, so we our segment width becomes smaller than its actual width, which leads to the layout error. Ceiling the float in firstPositiveWidth solves the problem.

A following patch could be to clarify floats/ints in/call sites of firstPositiveWidth, but I&apos;d do that separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965220</commentid>
    <comment_count>3</comment_count>
      <attachid>220552</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-01-07 15:51:47 -0800</bug_when>
    <thetext>Comment on attachment 220552
proposed patch

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

&gt; Source/WebCore/rendering/line/BreakingContextInlineHeaders.h:467
&gt; +            return ceilf(wordMeasurements[i].width);

Have you tested this with subpixel rendering both on and off?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965223</commentid>
    <comment_count>4</comment_count>
      <attachid>220552</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-01-07 15:55:44 -0800</bug_when>
    <thetext>Comment on attachment 220552
proposed patch

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

&gt; LayoutTests/fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html:14
&gt; +&lt;div class=&quot;shape-inside&quot;&gt;The&lt;/div&gt;

I am worried that this test will be flaky on different platforms with different fonts. At the very least, I think you should specify a font size and font face if you can&apos;t put this together with something like Ahem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965337</commentid>
    <comment_count>5</comment_count>
      <attachid>220594</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-07 21:57:37 -0800</bug_when>
    <thetext>Created attachment 220594
Patch

(In reply to comment #3)
&gt; (From update of attachment 220552 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220552&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/line/BreakingContextInlineHeaders.h:467
&gt; &gt; +            return ceilf(wordMeasurements[i].width);
&gt; 
&gt; Have you tested this with subpixel rendering both on and off?

I haven&apos;t tested. As far as I know subpixel layout is enabled only on ELF and GTK. We don&apos;t have any tests which would fail due to this rounding (most of the tests uses fixed font width, or shapes without the requirement of first line adjusting, thus the new rounding won&apos;t change anything), otherwise it would have failed already.

(In reply to comment #4)
&gt; (From update of attachment 220552 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220552&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html:14
&gt; &gt; +&lt;div class=&quot;shape-inside&quot;&gt;The&lt;/div&gt;
&gt; 
&gt; I am worried that this test will be flaky on different platforms with different fonts. At the very least, I think you should specify a font size and font face if you can&apos;t put this together with something like Ahem.

Unfortunately, we can&apos;t use Ahem, since it has fixed width, thus it won&apos;t result a floating width. I specified the font in the test to make it clear.

I also added a short explanation about the problem to the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965534</commentid>
    <comment_count>6</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-01-08 10:14:21 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=220594) [details]
&gt; Patch
&gt; 
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 220552 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220552&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/line/BreakingContextInlineHeaders.h:467
&gt; &gt; &gt; +            return ceilf(wordMeasurements[i].width);
&gt; &gt; 
&gt; &gt; Have you tested this with subpixel rendering both on and off?
&gt; 
&gt; I haven&apos;t tested. As far as I know subpixel layout is enabled only on ELF and GTK. We don&apos;t have any tests which would fail due to this rounding (most of the tests uses fixed font width, or shapes without the requirement of first line adjusting, thus the new rounding won&apos;t change anything), otherwise it would have failed already.

It is only enabled on ELF/Gtk for now, they are working on enabling it for Mac right now. Note that there is no rounding due to LayoutUnit when subpixel layout is turned on, which is why I am concerned that your fix may not be valid and your test may even fail when run on Gtk/EFL.

&gt; 
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 220552 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220552&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html:14
&gt; &gt; &gt; +&lt;div class=&quot;shape-inside&quot;&gt;The&lt;/div&gt;
&gt; &gt; 
&gt; &gt; I am worried that this test will be flaky on different platforms with different fonts. At the very least, I think you should specify a font size and font face if you can&apos;t put this together with something like Ahem.
&gt; 
&gt; Unfortunately, we can&apos;t use Ahem, since it has fixed width, thus it won&apos;t result a floating width. I specified the font in the test to make it clear.

Have you tried to specify a floating point width for your Ahem characters? Or does that not work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965536</commentid>
    <comment_count>7</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-08 10:17:02 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; It is only enabled on ELF/Gtk for now, they are working on enabling it for Mac right now. Note that there is no rounding due to LayoutUnit when subpixel layout is turned on, which is why I am concerned that your fix may not be valid and your test may even fail when run on Gtk/EFL.

Good point.

&gt; &gt; (In reply to comment #4)
&gt; Have you tried to specify a floating point width for your Ahem characters? Or does that not work?

I tried. I didn&apos;t work. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965543</commentid>
    <comment_count>8</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-01-08 10:37:33 -0800</bug_when>
    <thetext>(In reply to comment #7) 
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; Have you tried to specify a floating point width for your Ahem characters? Or does that not work?
&gt; 
&gt; I tried. I didn&apos;t work. :(

Well, even if you don&apos;t use Ahem, it would probably help if you did specify a font that you know has the metrics you want, as right now you are at the mercy of whatever default font is used by the test. I don&apos;t remember off the top of my head, but isn&apos;t there a list of fonts that one can rely on other than Ahem as being installed for the tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965548</commentid>
    <comment_count>9</comment_count>
      <attachid>220594</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2014-01-08 10:54:00 -0800</bug_when>
    <thetext>Comment on attachment 220594
Patch

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

&gt; LayoutTests/fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit-expected.html:7
&gt; +    height: 75px;

I am also concerned about the fragility of this test. If you need a font with characters with a specific height / width ratio, I can build one for you and you can embed it in the test as a data uri.
Will the test pass with subpixel layout enabled as well?

&gt; Source/WebCore/rendering/line/BreakingContextInlineHeaders.h:467
&gt; +            return ceilf(wordMeasurements[i].width);

I don&apos;t think this should be adjusted here, but rather when the float -&gt; LayoutUnit conversion takes place (in ShapeInsideInfo::adjustLogicalLineTop). Alternatively you could change adjustLogicalLineTop to take a LayoutUnit.

I think the correct behavior (including subpixel layout concerns) is to round up to the nearest value LayoutUnit can express. Without subpixel layout, this is in steps of 1 pixel. With subpixel layout, it&apos;s in steps of 1/64 of a pixel. You can use LayoutUnit::fromFloatCeil to get this value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965663</commentid>
    <comment_count>10</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-01-08 15:34:04 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; A little explanation: 
&gt; 
&gt; float firstPositiveWidth ends up used in 
&gt; 
&gt; shape.firstIncludedIntervalLogicalTop(m_shapeLineTop, LayoutSize(minSegmentWidth, m_lineHeight), newLineTop) (ShapeInsideInfo.cpp:99)
&gt; 
&gt; where minSegmentWidth becomes a LayoutUnit, which clamps floats to ints in LayoutUnit.h:11, so we our segment width becomes smaller than its actual width, which leads to the layout error. Ceiling the float in firstPositiveWidth solves the problem.

Per our discussion on IRC: I think this problem would be better solved by making the firstIncludedIntervalLogicalTop() minLogicalIntervalSize parameter a float for all of the Shape subclasses.  The fact that it&apos;s implicitly converted to a LayoutUnit and then back to a float is just asking for trouble and appears to be unnecessary.  The minLogicalIntervalSize parameter&apos;s LayoutUnit type may just be a historical artifact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965975</commentid>
    <comment_count>11</comment_count>
      <attachid>220750</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-09 10:40:33 -0800</bug_when>
    <thetext>Created attachment 220750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966056</commentid>
    <comment_count>12</comment_count>
      <attachid>220750</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-01-09 13:49:40 -0800</bug_when>
    <thetext>Comment on attachment 220750
Patch

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

&gt; LayoutTests/fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html:13
&gt; +    background-color: green;
&gt; +    color: green;

Since the color of the text is green, and it&apos;s very tiny compared to the square, it can be hard to tell if this test fails with manual inspection. It would be nice if you could make the failure mode show some red, for example, by placing a green div on top of the div with the shape-inside so that you can make the text red. (and then put &quot;You should not see any red&quot; in the description)

&gt; Source/WebCore/rendering/shapes/Shape.h:81
&gt; +    virtual bool firstIncludedIntervalLogicalTop(LayoutUnit minLogicalIntervalTop, const float minLogicalWidth, const LayoutUnit logicalHeight, LayoutUnit&amp; result) const = 0;

Why not have this take a FloatSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966105</commentid>
    <comment_count>13</comment_count>
      <attachid>220779</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-09 15:50:33 -0800</bug_when>
    <thetext>Created attachment 220779
Patch

(In reply to comment #12)
&gt; (From update of attachment 220750 [details])
&gt; Since the color of the text is green, and it&apos;s very tiny compared to the square, it can be hard to tell if this test fails with manual inspection. It would be nice if you could make the failure mode show some red, for example, by placing a green div on top of the div with the shape-inside so that you can make the text red. (and then put &quot;You should not see any red&quot; in the description)

I increased the size of the content, so it&apos;s much bigger now. I also painted to red and added green overlay. There is no way to miss it now, if it fails. I also updated the test description.

&gt; &gt; Source/WebCore/rendering/shapes/Shape.h:81
&gt; &gt; +    virtual bool firstIncludedIntervalLogicalTop(LayoutUnit minLogicalIntervalTop, const float minLogicalWidth, const LayoutUnit logicalHeight, LayoutUnit&amp; result) const = 0;
&gt; 
&gt; Why not have this take a FloatSize?

I modified to use FloatSize.

Thanks for looking into.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966106</commentid>
    <comment_count>14</comment_count>
      <attachid>220780</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-09 15:51:38 -0800</bug_when>
    <thetext>Created attachment 220780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966113</commentid>
    <comment_count>15</comment_count>
      <attachid>220780</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-01-09 16:09:55 -0800</bug_when>
    <thetext>Comment on attachment 220780
Patch

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

r=me, even if you don&apos;t feel like updating for the nit on the test.

&gt; LayoutTests/fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html:15
&gt; +    background-color: green;

Nit: I&apos;d delete this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966119</commentid>
    <comment_count>16</comment_count>
      <attachid>220785</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-09 16:16:22 -0800</bug_when>
    <thetext>Created attachment 220785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966136</commentid>
    <comment_count>17</comment_count>
      <attachid>220785</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-09 16:51:38 -0800</bug_when>
    <thetext>Comment on attachment 220785
Patch

Clearing flags on attachment: 220785

Committed r161604: &lt;http://trac.webkit.org/changeset/161604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966137</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-09 16:51:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220552</attachid>
            <date>2014-01-07 14:46:28 -0800</date>
            <delta_ts>2014-01-07 21:57:37 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>ceil.patch</filename>
            <type>text/plain</type>
            <size>4131</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZjcyYjA4Li5kNTdjZWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEt
MDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNp
ZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdv
bi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMS0wNyAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhw
ZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXBvbHlnb24tcm91bmRlZC1maXJzdC1maXQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZmU1ZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNoYXBlLWluc2lkZSB7CisgICAgd2lkdGg6IDYz
cHg7CisgICAgaGVpZ2h0OiA3NXB4OworICAgIHBhZGRpbmctdG9wOiAyNXB4OworICAgIHBhZGRp
bmctbGVmdDogMzdweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9InNoYXBlLWluc2lkZSI+VGhlPC9kaXY+Cis8
cD5UaGVyZSBpcyBhIHRyaWFuZ2xlIHNoYXBlLWluc2lkZSBhcHBsaWVkIG9uIHRoZSBncmVlbiBi
b3guIFRoZSB0ZXh0IGNvbnRlbnQgc2hvdWxkIGJlIGluc2lkZSB0aGUgZ3JlZW4gcmVjdGFuZ2xl
LjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEyNjYwMSI+MTI2NjAx
PC9hPjogW0NTUyBTaGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBp
biBzaGFwZS1pbnNpZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnM8L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1maXQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3Vu
ZGVkLWZpcnN0LWZpdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUw
NWRmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1maXQuaHRtbApAQCAtMCww
ICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisuc2hh
cGUtaW5zaWRlIHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcG9seWdv
big1MHB4IDBweCwgMTAwcHggMTAwcHgsIDBweCAxMDBweCk7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUiPlRoZTwvZGl2PgorCis8cD5UaGVy
ZSBpcyBhIHRyaWFuZ2xlIHNoYXBlLWluc2lkZSBhcHBsaWVkIG9uIHRoZSBncmVlbiBib3guIFRo
ZSB0ZXh0IGNvbnRlbnQgc2hvdWxkIGJlIGluc2lkZSB0aGUgZ3JlZW4gcmVjdGFuZ2xlLjwvcD4K
KzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEyNjYwMSI+MTI2NjAxPC9hPjog
W0NTUyBTaGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFw
ZS1pbnNpZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnM8L3A+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ2ZWQyNy4uNDA5YTBhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE0LTAxLTA3ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBGaXJzdCBsaW5lIGdldHMgaW5jb3JyZWN0bHkgYWRq
dXN0ZWQgaW4gc2hhcGUtaW5zaWRlIGR1ZSB0byByb3VuZGluZyBpbiBzb21lIHBvbHlnb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBvcmRlciB0
byBnZXQgY29uc2lzdGVudCByZXN1bHRzIG9uIHRoZSBmaXJzdCBmaXQgcG9zaXRpb24gb2YgY29u
dGVudCBpbiBzaGFwZS1pbnNpZGVzLCB3ZSBuZWVkCisgICAgICAgIHRvIGNlaWwgdGhlIHdvcmQn
cyB3aWR0aC4gVGhpcyBkb2Vzbid0IGJyZWFrIHRoZSBleGlzdGluZyBiZWhhdmlvciwgYW5kIGZp
eGVzIHNvbWUgZWRnZSBjYXNlcywgd2hlbgorICAgICAgICByb3VuZGluZyBlbmRzIHVwIGRpZmZl
cmVudGx5LgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvbGluZS9CcmVha2luZ0NvbnRleHRJbmxpbmVIZWFkZXJzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpmaXJzdFBvc2l0aXZlV2lkdGgpOiBjZWlsIHdvcmQncyB3aWR0aAorCiAyMDE0LTAxLTA3ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTYxNDQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0SW5saW5lSGVhZGVycy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0SW5saW5lSGVhZGVycy5oCmluZGV4IDJk
NDY2ZDUuLmFiY2EyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5l
L0JyZWFraW5nQ29udGV4dElubGluZUhlYWRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHRJbmxpbmVIZWFkZXJzLmgKQEAgLTQ2NCw3ICs0NjQs
NyBAQCBpbmxpbmUgZmxvYXQgZmlyc3RQb3NpdGl2ZVdpZHRoKGNvbnN0IFdvcmRNZWFzdXJlbWVu
dHMmIHdvcmRNZWFzdXJlbWVudHMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3b3Jk
TWVhc3VyZW1lbnRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmICh3b3JkTWVhc3VyZW1lbnRz
W2ldLndpZHRoID4gMCkKLSAgICAgICAgICAgIHJldHVybiB3b3JkTWVhc3VyZW1lbnRzW2ldLndp
ZHRoOworICAgICAgICAgICAgcmV0dXJuIGNlaWxmKHdvcmRNZWFzdXJlbWVudHNbaV0ud2lkdGgp
OwogICAgIH0KICAgICByZXR1cm4gMDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220594</attachid>
            <date>2014-01-07 21:57:37 -0800</date>
            <delta_ts>2014-01-09 10:40:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ceil.patch</filename>
            <type>text/plain</type>
            <size>4564</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZjcyYjA4Li5kNTdjZWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEt
MDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNp
ZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdv
bi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMS0wNyAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhw
ZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXBvbHlnb24tcm91bmRlZC1maXJzdC1maXQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43ZGNjZDcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNoYXBlLWluc2lkZSB7CisgICAgd2lkdGg6IDYz
cHg7CisgICAgaGVpZ2h0OiA3NXB4OworICAgIHBhZGRpbmctdG9wOiAyNXB4OworICAgIHBhZGRp
bmctbGVmdDogMzdweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICBmb250OiAx
MnB0LzEgIlRpbWVzIE5ldyBSb21hbiIsIHNhbnMtc2VyaWY7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUiPlRoZTwvZGl2PgorPHA+VGhlcmUg
aXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgYXBwbGllZCBvbiB0aGUgZ3JlZW4gYm94LiBUaGUg
dGV4dCBjb250ZW50IHNob3VsZCBiZSBpbnNpZGUgdGhlIGdyZWVuIHJlY3RhbmdsZS48L3A+Cis8
cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMjY2MDEiPjEyNjYwMTwvYT46IFtD
U1MgU2hhcGVzXSBGaXJzdCBsaW5lIGdldHMgaW5jb3JyZWN0bHkgYWRqdXN0ZWQgaW4gc2hhcGUt
aW5zaWRlIGR1ZSB0byByb3VuZGluZyBpbiBzb21lIHBvbHlnb25zPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJz
dC1maXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDNlMDdiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0Lmh0bWwKQEAgLTAsMCArMSwyMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnNoYXBlLWluc2lk
ZSB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47CisgICAgZm9udDogMTJwdC8xICJUaW1lcyBOZXcgUm9tYW4iLCBzYW5z
LXNlcmlmOworICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDUwcHggMHB4LCAxMDBw
eCAxMDBweCwgMHB4IDEwMHB4KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
Y2xhc3M9InNoYXBlLWluc2lkZSI+VGhlPC9kaXY+CisKKzxwPlRoZXJlIGlzIGEgdHJpYW5nbGUg
c2hhcGUtaW5zaWRlIGFwcGxpZWQgb24gdGhlIGdyZWVuIGJveC4gVGhlIHRleHQgY29udGVudCBz
aG91bGQgYmUgaW5zaWRlIHRoZSBncmVlbiByZWN0YW5nbGUuPC9wPgorPHA+QnVnIDxhIGhyZWY9
Imh0dHA6Ly93ZWJraXQub3JnL2IvMTI2NjAxIj4xMjY2MDE8L2E+OiBbQ1NTIFNoYXBlc10gRmly
c3QgbGluZSBnZXRzIGluY29ycmVjdGx5IGFkanVzdGVkIGluIHNoYXBlLWluc2lkZSBkdWUgdG8g
cm91bmRpbmcgaW4gc29tZSBwb2x5Z29uczwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA4ZDZlZDI3Li5hNGMxNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTQt
MDEtMDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NT
UyBTaGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1p
bnNpZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGdldCBjb25zaXN0ZW50
IHJlc3VsdHMgb24gdGhlIGZpcnN0IGZpdCBwb3NpdGlvbiBvZiBjb250ZW50IGluIHNoYXBlLWlu
c2lkZXMsIHdlIG5lZWQKKyAgICAgICAgdG8gY2VpbCB0aGUgd29yZCdzIHdpZHRoLiBUaGlzIGRv
ZXNuJ3QgYnJlYWsgdGhlIGV4aXN0aW5nIGJlaGF2aW9yLCBhbmQgZml4ZXMgc29tZSBlZGdlIGNh
c2VzLCB3aGVuCisgICAgICAgIHJvdW5kaW5nIGVuZHMgdXAgZGlmZmVyZW50bHkuCisKKyAgICAg
ICAgRXhwbGFuYXRpb246IGZpcnN0UG9zaXRpdmVXaWR0aCByZXR1cm5zIGEgZmxvYXQsIHdoaWNo
IGlzIHVzZWQgYXMgYSBMYXlvdXRTaXplIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGluCisgICAgICAg
IFNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wLiBMYXlvdXRTaXplJ3MgY29u
c3RydWN0b3IgdGFrZXMgTGF5b3V0VW5pdCwgYnV0IHRoZSBjb25zdHJ1Y3RvcgorICAgICAgICBv
ZiBMYXlvdXRVbml0IGNsYW1wcyB0aGUgZmxvYXQgdG8gaW50LCB3aGljaCBsZWFkcyB0byBhbiBp
bmNvcnJlY3QgU2hhcGVJbnNpZGVJbmZvOjptX3NoYXBlTGluZVRvcC4KKworICAgICAgICBUZXN0
OiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1m
aXJzdC1maXQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0
SW5saW5lSGVhZGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RQb3NpdGl2ZVdpZHRoKTog
Y2VpbCB3b3JkJ3Mgd2lkdGgKKwogMjAxNC0wMS0wNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MTQ0
Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29u
dGV4dElubGluZUhlYWRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFr
aW5nQ29udGV4dElubGluZUhlYWRlcnMuaAppbmRleCAyZDQ2NmQ1Li5hYmNhMjQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHRJbmxpbmVI
ZWFkZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250
ZXh0SW5saW5lSGVhZGVycy5oCkBAIC00NjQsNyArNDY0LDcgQEAgaW5saW5lIGZsb2F0IGZpcnN0
UG9zaXRpdmVXaWR0aChjb25zdCBXb3JkTWVhc3VyZW1lbnRzJiB3b3JkTWVhc3VyZW1lbnRzKQog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZE1lYXN1cmVtZW50cy5zaXplKCk7ICsr
aSkgewogICAgICAgICBpZiAod29yZE1lYXN1cmVtZW50c1tpXS53aWR0aCA+IDApCi0gICAgICAg
ICAgICByZXR1cm4gd29yZE1lYXN1cmVtZW50c1tpXS53aWR0aDsKKyAgICAgICAgICAgIHJldHVy
biBjZWlsZih3b3JkTWVhc3VyZW1lbnRzW2ldLndpZHRoKTsKICAgICB9CiAgICAgcmV0dXJuIDA7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220750</attachid>
            <date>2014-01-09 10:40:33 -0800</date>
            <delta_ts>2014-01-09 15:50:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ceiled.patch</filename>
            <type>text/plain</type>
            <size>17576</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZjcyYjA4Li5kNTdjZWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEt
MDkgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNp
ZGUgZHVlIHRvIHJvdW5kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjY2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdv
bi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1m
aXQuaHRtbDogQWRkZWQuCisKIDIwMTQtMDEtMDcgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIHVwZGF0ZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDk4ZWNlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5zaGFwZS1pbnNpZGUgeworICAgIHdpZHRoOiA1NnB4OworICAgIGhlaWdodDog
ODhweDsKKyAgICBwYWRkaW5nLXRvcDogMTJweDsKKyAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUiPjwvZGl2PgorPHA+VGhlcmUgaXMgYSB0cmlhbmds
ZSBzaGFwZS1pbnNpZGUgYXBwbGllZCBvbiB0aGUgZ3JlZW4gYm94LgorVGhlIGdyZWVuIGNvbnRl
bnQgc2hvdWxkIGJlIGluc2lkZSB0aGUgc2hhcGUtaW5zaWRlLCB0aHVzIHlvdSBzaG91bGQgc2Vl
IG9ubHkgYSAxMDB4MTAwcHggZ3JlZW4gcmVjdGFuZ2xlLjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJo
dHRwOi8vd2Via2l0Lm9yZy9iLzEyNjYwMSI+MTI2NjAxPC9hPjogW0NTUyBTaGFwZXNdIEZpcnN0
IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNpZGUgZHVlIHRvIHJv
dW5kaW5nIGluIHNvbWUgcG9seWdvbnM8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHln
b24tcm91bmRlZC1maXJzdC1maXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZjUyZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHln
b24tcm91bmRlZC1maXJzdC1maXQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWls
eTogJ0ZyYWN0aW9uYWwgVGVzdCBGb250JzsKKyAgICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9u
L3gtZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFBUllBQThBQUFB
QUJrQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCV0FBQUFCd0FBQUFj
YWlZVXZFZEVSVVlBQUFGMEFBQUFIUUFBQUNBQU5nQUVUMU12TWdBQUFaUUFBQUJEQUFBQVZtTm5p
Z3hqYldGd0FBQUIyQUFBQUYwQUFBRmlCWkUzUVdOMmRDQUFBQUk0QUFBQUJBQUFBQVFBSWdIZVoy
RnpjQUFBQWp3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBQ1JBQUFBSUlBQUFEWUpENEN2R2hsWVdR
QUFBTElBQUFBTGdBQUFEWUZIRmxmYUdobFlRQUFBdmdBQUFBY0FBQUFKQXdDQStKb2JYUjRBQUFE
RkFBQUFDQUFBQUFrSEg0QVJHeHZZMkVBQUFNMEFBQUFGQUFBQUJRQkJBRlViV0Y0Y0FBQUEwZ0FB
QUFmQUFBQUlBQk5BRGx1WVcxbEFBQURhQUFBQUx3QUFBRm1HaVkyYkhCdmMzUUFBQVFrQUFBQUxB
QUFBRVJ5amxTSmQyVmlaZ0FBQkZBQUFBQUdBQUFBQnRteVVzNEFBQUFCQUFBQUFNdzlvczhBQUFB
QXp2UG52QUFBQUFETzlJb3dlTnBqWUdSZ1lPQURZZ2tHRUdCaVlBUkNEaUJtQWZNWUFBU2lBRHNB
QUFCNDJtTmdaSjdCT0lHQmxZR0YxWWgxQmdNRG94eUVacjdHa01Za3hNREF4TURLekFBRGpBeElJ
Q0ROTllYQmdZRlg5UThMd3g4Z240V0JSUU9tQmdDRGt3aGFBSGphWTJCZ1lHYUFZQmtHUmdZUWlB
SHlHTUY4RmdZSElNM0R3TUhBQkdUek1oZ3htREJZcVA3NS94OG95c3RnQ09QOS8vYi84djlMLzgv
ZjRvR2FBQWVNYkF4d0lVWW1xRDBvQ2hnd0FRc3JBMUFiQXp2RDhBQUFVSzRSQXdBQUFBQWlBZDRB
QVFBQi8vOEFEM2phWGN5eERjSXdFSVhoLzg1T25OWWxIWmFnQlFrcXBKUWVoWUlSR0lVMTdIbFln
WjRpaXJBamtFeXVldTk5MHFGRTBLc0ZnK09RaE9PWW5lVjFTbjMzSExQUkVrbW16bDJkcyt0bEdy
UFUvZXlEM3djZm9tN25uVHptbTJVaW1qc2dsRGl3L0dVandROUxmL016MjVoZG1UYW1LNVBHNU0r
K1YreGlQaFBVSWhNQUFIamFZMkJrWUdBQTR0MDdFeGZFODl0OFpaRG5ZQUNCYzErNkRCSDBId1lP
QmhZUWw0T0JDVVFCQUVGeENrb0FBSGphWTJCa1lHQmgrSDJEZ1lHREFRU0FKQ01ES3VBRUFEZ3pB
Zk40Mm1ONncrRENBQVFzUU15MGlvR0JBOFlHWWtZZ1puN0J3QUFBUFI0QzNRQUFBQ3dBTEFBc0FD
d0FPZ0JJQUZZQVpBQnNlTnBqWUdSZ1lPQms0R0JnWWdBQkVNbklBQkp6WU5BRENRQUFCUWdBaHdC
NDJuV1F5dzdCVUJDR3Yyb0pHeXV4UGhGYm9pVnhlUUFMU3hIV0pYVkpHcEtxOS9BVUhzSVRzUE5J
ZnUzcFFzSmk1bnd6ODg4bEI2aXl4Y1h4YWpnMHdIS0p1cUtjWFdhMExIdTBpUzJYYVhLMVhKSDZa
dm1oL04zeWt4NHZiVWdJMlpCeTRNUlJIRE1uWXNkRkZLbzZ6ZkpwOWliS1J4Z0N1dW8yVEdTL0p1
U1ZFUjE4V1NDdHorQ1A4bnZiVWxIQzJTcU0rajZiZm5XdXBGeXJrbDlYS0Jmc05jdm9YOEtzM3pE
T2FvRXU4aG5LOStWTmNkTWJGTTR3czNqYVkyQml3QTg0Z1ppUmdZbVJpVUdFUVpSQm5FR2FrWm05
TkMvVHdNREFCVVFibWJvNUF3QXdLZ1RiQUFGU3p0bXhBQUE9KSBmb3JtYXQoJ3dvZmYnKTsKK30K
Ky5zaGFwZS1pbnNpZGUgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIGNvbG9yOiBncmVlbjsKKyAgICBmb250
OiAwLjVlbSAnRnJhY3Rpb25hbCBUZXN0IEZvbnQnLCBzZXJpZjsKKyAgICAtd2Via2l0LXNoYXBl
LWluc2lkZTogcG9seWdvbig1MHB4IDBweCwgMTAwcHggMTAwcHgsIDBweCAxMDBweCk7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUiPjI8L2Rp
dj4KKworPHA+VGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgYXBwbGllZCBvbiB0aGUg
Z3JlZW4gYm94LgorVGhlIGdyZWVuIGNvbnRlbnQgc2hvdWxkIGJlIGluc2lkZSB0aGUgc2hhcGUt
aW5zaWRlLCB0aHVzIHlvdSBzaG91bGQgc2VlIG9ubHkgYSAxMDB4MTAwcHggZ3JlZW4gcmVjdGFu
Z2xlLjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEyNjYwMSI+MTI2
NjAxPC9hPjogW0NTUyBTaGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3Rl
ZCBpbiBzaGFwZS1pbnNpZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnM8L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ2ZWQyNy4uNmM5YTFlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTAxLTA5ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBGaXJzdCBsaW5lIGdldHMgaW5jb3Jy
ZWN0bHkgYWRqdXN0ZWQgaW4gc2hhcGUtaW5zaWRlIGR1ZSB0byByb3VuZGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZ2V0IGNv
bnNpc3RlbnQgcmVzdWx0cyBvZiB0aGUgZmlyc3QgZml0IHBvc2l0aW9uIG9mIHRoZSBjb250ZW50
IGluIHNoYXBlcywKKyAgICAgICAgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCBzaG91
bGQgdGFrZSBhIGZsb2F0IHJhdGhlciB0aGFuIExheW91dFVuaXQgZm9yIG1pbkxvZ2ljYWxXaWR0
aCwKKyAgICAgICAgYmVjYXVzZSBMYXlvdXRVbml0IGNsYW1wcyB0aGUgZmxvYXQgdmFsdWUgdG8g
aW50IHdoZW4gc3VicGl4ZWwtbGF5b3V0IGlzIGRpc2FibGVkLCB0aHVzCisgICAgICAgIGZpcnN0
SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AgY291bGQgZW5kIHVwIGNhbGN1bGF0aW5nIHdpdGgg
YW4gdW5wcmVjaXplIHZhbHVlLiBUaGlzIGNoYW5nZQorICAgICAgICBtb2RpZmllcyBmaXJzdElu
Y2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wIHRvIHRha2UgZmxvYXQsIHRodXMgY2FsY3VsYXRlIHdp
dGggZmxvYXQgYWxsIHRoZSB0aW1lLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJveFNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9Q
b2x5Z29uU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9seWdvblNoYXBlOjpmaXJzdElu
Y2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1Bv
bHlnb25TaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmFzdGVyU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlY3RhbmdsZVNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmg6CisgICAgICAgICog
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hh
cGVJbnNpZGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6YWRq
dXN0TG9naWNhbExpbmVUb3ApOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjpj
b21wdXRlRmlyc3RGaXRQb3NpdGlvbkZvckZsb2F0KToKKwogMjAxNC0wMS0wNyAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE2MTQ0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvQm94U2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hT
aGFwZS5jcHAKaW5kZXggMzQwNDUzNi4uNDg3MTA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEJveFNo
YXBlOjpnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVu
aXQgbG9naWNhbEhlaQogICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7CiB9
CiAKLWJvb2wgQm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0
VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmLCBMYXlvdXRVbml0
JiByZXN1bHQpIGNvbnN0Citib29sIEJveFNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dp
Y2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBmbG9hdCwgY29u
c3QgTGF5b3V0VW5pdCwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdAogewogICAgIC8vIEZJWE1F
OiB0aGlzIG1ldGhvZCBpcyBvbmx5IGEgc3R1YiwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNDYwNi4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9Cb3hTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9C
b3hTaGFwZS5oCmluZGV4IDA5OWVjODAuLmViYTBlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ib3VuZHMuaXNF
bXB0eSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVu
aXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlv
dXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3Qm
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFs
TG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0
U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBmbG9hdCBtaW5Mb2dpY2FsV2lkdGgs
IGNvbnN0IExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJS
SURFOwogCiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYp
IGNvbnN0IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1BvbHlnb25TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1BvbHlnb25TaGFwZS5jcHAKaW5kZXggMGI4YmFkYS4uYTFiNDM2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmNwcApAQCAtNDM5LDExICs0
MzksMTEgQEAgc3RhdGljIGlubGluZSBib29sIGFib3ZlT3JUb1RoZUxlZnQoY29uc3QgRmxvYXRS
ZWN0JiByMSwgY29uc3QgRmxvYXRSZWN0JiByMikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgUG9seWdvblNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVu
aXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50
ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0Citib29sIFBvbHlnb25TaGFwZTo6
Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRl
cnZhbFRvcCwgY29uc3QgZmxvYXQgbWluTG9naWNhbFdpZHRoLCBjb25zdCBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKIHsKICAgICBmbG9hdCBtaW5J
bnRlcnZhbFRvcCA9IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcDsKLSAgICBmbG9hdCBtaW5JbnRlcnZh
bEhlaWdodCA9IG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgbWlu
SW50ZXJ2YWxXaWR0aCA9IG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUud2lkdGgoKTsKKyAgICBmbG9h
dCBtaW5JbnRlcnZhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7CisgICAgZmxvYXQgbWluSW50ZXJ2
YWxXaWR0aCA9IG1pbkxvZ2ljYWxXaWR0aDsKIAogICAgIGNvbnN0IEZsb2F0UG9seWdvbiYgcG9s
eWdvbiA9IHNoYXBlUGFkZGluZ0JvdW5kcygpOwogICAgIGNvbnN0IEZsb2F0UmVjdCBib3VuZGlu
Z0JveCA9IHBvbHlnb24uYm91bmRpbmdCb3goKTsKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFBv
bHlnb25TaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1p
bkxvZ2ljYWxJbnRlcnZhbAogICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBpICsgMTsgaiA8IG9m
ZnNldEVkZ2VzLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAgICBpZiAob2Zmc2V0RWRnZXNbaV0u
aW50ZXJzZWN0aW9uKG9mZnNldEVkZ2VzW2pdLCBvZmZzZXRFZGdlc0ludGVyc2VjdGlvbikpIHsK
ICAgICAgICAgICAgICAgICBGbG9hdFBvaW50IHBvdGVudGlhbEZpcnN0Rml0TG9jYXRpb24ob2Zm
c2V0RWRnZXNJbnRlcnNlY3Rpb24ueCgpIC0gZHgsIG9mZnNldEVkZ2VzSW50ZXJzZWN0aW9uLnko
KSAtIGR5KTsKLSAgICAgICAgICAgICAgICBGbG9hdFJlY3QgcG90ZW50aWFsRmlyc3RGaXRSZWN0
KHBvdGVudGlhbEZpcnN0Rml0TG9jYXRpb24sIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUpOworICAg
ICAgICAgICAgICAgIEZsb2F0UmVjdCBwb3RlbnRpYWxGaXJzdEZpdFJlY3QocG90ZW50aWFsRmly
c3RGaXRMb2NhdGlvbiwgRmxvYXRTaXplKG1pbkxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCkp
OwogICAgICAgICAgICAgICAgIGlmICgob2Zmc2V0RWRnZXNbaV0uYmFzaXMoKSA9PSBPZmZzZXRQ
b2x5Z29uRWRnZTo6TGluZVRvcAogICAgICAgICAgICAgICAgICAgICB8fCBvZmZzZXRFZGdlc1tq
XS5iYXNpcygpID09IE9mZnNldFBvbHlnb25FZGdlOjpMaW5lVG9wCiAgICAgICAgICAgICAgICAg
ICAgIHx8IHBvdGVudGlhbEZpcnN0Rml0TG9jYXRpb24ueSgpID49IG1pbkludGVydmFsVG9wKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgKaW5kZXgg
NTIxNGZiYy4uODFkMmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9Qb2x5Z29uU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1BvbHlnb25TaGFwZS5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcG9seWdvbi5pc0VtcHR5KCk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dp
Y2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQg
bG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2Fs
VG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBt
aW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBt
aW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IGZsb2F0IG1pbkxvZ2ljYWxXaWR0aCwgY29uc3Qg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgYnVpbGREaXNwbGF5UGF0aHMoRGlzcGxheVBhdGhzJikgY29uc3Qg
T1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
UmFzdGVyU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJT
aGFwZS5jcHAKaW5kZXggNzk5OTZkNS4uMGJhMzFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5jcHAKQEAgLTMyMCwxMyArMzIwLDEzIEBAIHZv
aWQgUmFzdGVyU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBsb2dpY2FsCiAgICAgYXBwZW5kTGluZVNlZ21lbnRzKGluY2x1ZGVkSW50
ZXJ2YWxzLCByZXN1bHQpOwogfQogCi1ib29sIFJhc3RlclNoYXBlOjpmaXJzdEluY2x1ZGVkSW50
ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBM
YXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNv
bnN0Citib29sIFJhc3RlclNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExh
eW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBmbG9hdCBtaW5Mb2dpY2FsV2lk
dGgsIGNvbnN0IExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCYgcmVzdWx0KSBj
b25zdAogewogICAgIGNvbnN0IFJhc3RlclNoYXBlSW50ZXJ2YWxzJiBpbnRlcnZhbHMgPSBwYWRk
aW5nSW50ZXJ2YWxzKCk7CiAgICAgaWYgKGludGVydmFscy5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIHJldHVybiBpbnRlcnZhbHMuZmlyc3RJbmNsdWRlZEludGVydmFs
WShtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AuZmxvb3IoKSwgZmxvb3JlZEludFNpemUobWluTG9naWNh
bEludGVydmFsU2l6ZSksIHJlc3VsdCk7CisgICAgcmV0dXJuIGludGVydmFscy5maXJzdEluY2x1
ZGVkSW50ZXJ2YWxZKG1pbkxvZ2ljYWxJbnRlcnZhbFRvcC5mbG9vcigpLCBmbG9vcmVkSW50U2l6
ZShMYXlvdXRTaXplKG1pbkxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCkpLCByZXN1bHQpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1Jhc3RlclNoYXBlLmgKaW5kZXggY2NiYjhhMi4uNDE4ZmNkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaApAQCAtMTAwLDcgKzEwMCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1faW50ZXJ2YWxzLT5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhj
bHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdl
dEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbElu
dGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlv
dXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJ
bnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0
IGZsb2F0IG1pbkxvZ2ljYWxXaWR0aCwgY29uc3QgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBM
YXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYnVpbGREaXNw
bGF5UGF0aHMoRGlzcGxheVBhdGhzJiBwYXRocykgY29uc3QgT1ZFUlJJREUKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuY3BwCmlu
ZGV4IDBmNzZjYzEuLjA2ZjRjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuY3BwCkBAIC0xNjMsMTEgKzE2MywxMSBAQCBzdGF0aWMg
RmxvYXRQb2ludCBjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCwgZmxvYXQgd2lk
dGhBdEludGVyY2VwdCwgZgogICAgIHJldHVybiBGbG9hdFBvaW50KHhpLCB5aSk7CiB9CiAKLWJv
b2wgUmVjdGFuZ2xlU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0
VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJ
bnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK2Jvb2wgUmVjdGFuZ2xlU2hh
cGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2Fs
SW50ZXJ2YWxUb3AsIGNvbnN0IGZsb2F0IG1pbkxvZ2ljYWxXaWR0aCwgY29uc3QgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgZmxvYXQg
bWluSW50ZXJ2YWxUb3AgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7Ci0gICAgZmxvYXQgbWluSW50
ZXJ2YWxIZWlnaHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpOwotICAgIGZsb2F0
IG1pbkludGVydmFsV2lkdGggPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRoKCk7CisgICAg
ZmxvYXQgbWluSW50ZXJ2YWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OworICAgIGZsb2F0IG1pbklu
dGVydmFsV2lkdGggPSBtaW5Mb2dpY2FsV2lkdGg7CiAKICAgICBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kcyA9IHNoYXBlUGFkZGluZ0JvdW5kcygpOwogICAgIGlmIChib3VuZHMuaXNFbXB0eSgpIHx8
IG1pbkludGVydmFsV2lkdGggPiBib3VuZHMud2lkdGgoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaAppbmRleCA0N2JhZDU0Li4xYWU1YjQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNo
YXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFw
ZS5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYm91bmRzLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91
dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5p
dCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRl
cnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRl
cnZhbFRvcCwgY29uc3QgZmxvYXQgbWluTG9naWNhbFdpZHRoLCBjb25zdCBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwg
dm9pZCBidWlsZERpc3BsYXlQYXRocyhEaXNwbGF5UGF0aHMmKSBjb25zdCBPVkVSUklERTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IDM0NTM5NmMuLjI0NTMz
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKQEAgLTc4LDcgKzc4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3As
IExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1p
bkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFs
U2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGZp
cnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2
YWxUb3AsIGNvbnN0IGZsb2F0IG1pbkxvZ2ljYWxXaWR0aCwgY29uc3QgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0LCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0ID0gMDsKICAgICBib29sIGxpbmVP
dmVybGFwc1NoYXBlTWFyZ2luQm91bmRzKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KSBjb25zdCB7IHJldHVybiBsaW5lT3ZlcmxhcHNCb3VuZGluZ0JveChsaW5lVG9w
LCBsaW5lSGVpZ2h0LCBzaGFwZU1hcmdpbkxvZ2ljYWxCb3VuZGluZ0JveCgpKTsgfQogICAgIGJv
b2wgbGluZU92ZXJsYXBzU2hhcGVQYWRkaW5nQm91bmRzKExheW91dFVuaXQgbGluZVRvcCwgTGF5
b3V0VW5pdCBsaW5lSGVpZ2h0KSBjb25zdCB7IHJldHVybiBsaW5lT3ZlcmxhcHNCb3VuZGluZ0Jv
eChsaW5lVG9wLCBsaW5lSGVpZ2h0LCBzaGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKSk7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUlu
c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lk
ZUluZm8uY3BwCmluZGV4IGU0YTU2MDEuLjM3OGI4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAKQEAgLTk2LDcgKzk2LDcg
QEAgYm9vbCBTaGFwZUluc2lkZUluZm86OmFkanVzdExvZ2ljYWxMaW5lVG9wKGZsb2F0IG1pblNl
Z21lbnRXaWR0aCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTGF5b3V0VW5pdCBuZXdM
aW5lVG9wOwotICAgIGlmIChzaGFwZS5maXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKG1f
c2hhcGVMaW5lVG9wLCBMYXlvdXRTaXplKG1pblNlZ21lbnRXaWR0aCwgbV9saW5lSGVpZ2h0KSwg
bmV3TGluZVRvcCkpIHsKKyAgICBpZiAoc2hhcGUuZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNh
bFRvcChtX3NoYXBlTGluZVRvcCwgbWluU2VnbWVudFdpZHRoLCBtX2xpbmVIZWlnaHQsIG5ld0xp
bmVUb3ApKSB7CiAgICAgICAgIGlmIChuZXdMaW5lVG9wID4gbV9zaGFwZUxpbmVUb3ApIHsKICAg
ICAgICAgICAgIG1fc2hhcGVMaW5lVG9wID0gbmV3TGluZVRvcDsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTE3LDcgKzExNyw3IEBAIExheW91dFVuaXQgU2hhcGVJbnNpZGVJbmZvOjpj
b21wdXRlRmlyc3RGaXRQb3NpdGlvbkZvckZsb2F0KGNvbnN0IExheW91dFNpemUgZmxvCiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgTGF5b3V0VW5pdCBmaXJzdEZpdFBvc2l0aW9uID0gMDsKLSAg
ICBpZiAoY29tcHV0ZWRTaGFwZSgpLmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AobV9z
aGFwZUxpbmVUb3AsIGZsb2F0U2l6ZSwgZmlyc3RGaXRQb3NpdGlvbikgJiYgKG1fc2hhcGVMaW5l
VG9wIDw9IGZpcnN0Rml0UG9zaXRpb24pKQorICAgIGlmIChjb21wdXRlZFNoYXBlKCkuZmlyc3RJ
bmNsdWRlZEludGVydmFsTG9naWNhbFRvcChtX3NoYXBlTGluZVRvcCwgZmxvYXRTaXplLndpZHRo
KCksIGZsb2F0U2l6ZS5oZWlnaHQoKSwgZmlyc3RGaXRQb3NpdGlvbikgJiYgKG1fc2hhcGVMaW5l
VG9wIDw9IGZpcnN0Rml0UG9zaXRpb24pKQogICAgICAgICByZXR1cm4gZmlyc3RGaXRQb3NpdGlv
bjsKIAogICAgIHJldHVybiAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220779</attachid>
            <date>2014-01-09 15:50:33 -0800</date>
            <delta_ts>2014-01-09 15:51:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ceiled.patch</filename>
            <type>text/plain</type>
            <size>16521</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZjcyYjA4Li4xYTE2M2M2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEt
MDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNp
ZGUgZHVlIHRvIHJvdW5kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjY2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdv
bi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1m
aXQuaHRtbDogQWRkZWQuCisKIDIwMTQtMDEtMDcgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIHVwZGF0ZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjI3MDFmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5zaGFwZS1pbnNpZGUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDA7CisgICAgbGVmdDowOworICAgIHdpZHRoOiA1NnB4OworICAgIGhlaWdodDogODhweDsK
KyAgICBwYWRkaW5nLXRvcDogMTJweDsKKyAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGNsYXNzPSJzaGFwZS1pbnNpZGUiPjwvZGl2PgorPHAgc3R5bGU9Im1hcmdpbi10b3A6IDEyMHB4
OyI+VGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgYXBwbGllZCBvbiB0aGUgZ3JlZW4g
Ym94LgorVGhlIGdyZWVuIGNvbnRlbnQgc2hvdWxkIGJlIGluc2lkZSB0aGUgc2hhcGUtaW5zaWRl
LiBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHJlZC48L3A+Cis8cD5CdWcgPGEgaHJlZj0iaHR0cDov
L3dlYmtpdC5vcmcvYi8xMjY2MDEiPjEyNjYwMTwvYT46IFtDU1MgU2hhcGVzXSBGaXJzdCBsaW5l
IGdldHMgaW5jb3JyZWN0bHkgYWRqdXN0ZWQgaW4gc2hhcGUtaW5zaWRlIGR1ZSB0byByb3VuZGlu
ZyBpbiBzb21lIHBvbHlnb25zPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJv
dW5kZWQtZmlyc3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1maXQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzAzNTNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJv
dW5kZWQtZmlyc3QtZml0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICdG
cmFjdGlvbmFsIFRlc3QgRm9udCc7CisgICAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZv
bnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQVJZQUE4QUFBQUFCa0FB
QVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQldBQUFBQndBQUFBY2FpWVV2
RWRFUlVZQUFBRjBBQUFBSFFBQUFDQUFOZ0FFVDFNdk1nQUFBWlFBQUFCREFBQUFWbU5uaWd4amJX
RndBQUFCMkFBQUFGMEFBQUZpQlpFM1FXTjJkQ0FBQUFJNEFBQUFCQUFBQUFRQUlnSGVaMkZ6Y0FB
QUFqd0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQUNSQUFBQUlJQUFBRFlKRDRDdkdobFlXUUFBQUxJ
QUFBQUxnQUFBRFlGSEZsZmFHaGxZUUFBQXZnQUFBQWNBQUFBSkF3Q0ErSm9iWFI0QUFBREZBQUFB
Q0FBQUFBa0hINEFSR3h2WTJFQUFBTTBBQUFBRkFBQUFCUUJCQUZVYldGNGNBQUFBMGdBQUFBZkFB
QUFJQUJOQURsdVlXMWxBQUFEYUFBQUFMd0FBQUZtR2lZMmJIQnZjM1FBQUFRa0FBQUFMQUFBQUVS
eWpsU0pkMlZpWmdBQUJGQUFBQUFHQUFBQUJ0bXlVczRBQUFBQkFBQUFBTXc5b3M4QUFBQUF6dlBu
dkFBQUFBRE85SW93ZU5wallHUmdZT0FEWWdrR0VHQmlZQVJDRGlCbUFmTVlBQVNpQURzQUFBQjQy
bU5nWko3Qk9JR0JsWUdGMVloMUJnTURveHlFWnI3R2tNWWt4TURBeE1ES3pBQURqQXhJSUNETk5Z
WEJnWUZYOVE4THd4OGduNFdCUlFPbUJnQ0Rrd2hhQUhqYVkyQmdZR2FBWUJrR1JnWVFpQUh5R01G
OEZnWUhJTTNEd01IQUJHVHpNaGd4bURCWXFQNzUveDhveXN0Z0NPUDkvL2IvOHY5TC84L2Y0b0dh
QUFlTWJBeHdJVVltcUQwb0NoZ3dBUXNyQTFBYkF6dkQ4QUFBVUs0UkF3QUFBQUFpQWQ0QUFRQUIv
LzhBRDNqYVhjeXhEY0l3RUlYaC84NU9uTllsSFphZ0JRa3FwSlFlaFlJUkdJVTE3SGxZZ1o0aWly
QWprRXl1ZXU5OTBxRkUwS3NGZytPUWhPT1luZVYxU24zM0hMUFJFa21temwyZHMrdGxHclBVL2V5
RDN3Y2ZvbTdublR6bW0yVWltanNnbERpdy9HVWp3UTlMZi9NejI1aGRtVGFtSzVQRzVNKytWK3hp
UGhQVUloTUFBSGphWTJCa1lHQUE0dDA3RXhmRTg5dDhaWkRuWUFDQmMxKzZEQkgwSHdZT0JoWVFs
NE9CQ1VRQkFFRnhDa29BQUhqYVkyQmtZR0JoK0gyRGdZR0RBUVNBSkNNREt1QUVBRGd6QWZONDJt
TjZ3K0RDQUFRc1FNeTBpb0dCQThZR1lrWWdabjdCd0FBQVBSNEMzUUFBQUN3QUxBQXNBQ3dBT2dC
SUFGWUFaQUJzZU5wallHUmdZT0JrNEdCZ1lnQUJFTW5JQUJKellOQURDUUFBQlFnQWh3QjQybldR
eXc3QlVCQ0d2Mm9KR3l1eFBoRmJvaVZ4ZVFBTFN4SFdKWFZKR3BLcTkvQVVIc0lUc1BOSWZ1M3BR
c0ppNW53ejg4OGxCNml5eGNYeGFqZzB3SEtKdXFLY1hXYTBMSHUwaVMyWGFYSzFYSkg2WnZtaC9O
M3lreDR2YlVnSTJaQnk0TVJSSERNbllzZEZGS282emZKcDlpYktSeGdDdXVvMlRHUy9KdVNWRVIx
OFdTQ3R6K0NQOG52YlVsSEMyU3FNK2o2YmZuV3VwRnlya2w5WEtCZnNOY3ZvWDhLczN6RE9hb0V1
OGhuSzkrVk5jZE1iRk00d3MzamFZMkJpd0E4NGdaaVJnWW1SaVVHRVFaUkJuRUdha1ptOU5DL1R3
TURBQlVRYm1ibzVBd0F3S2dUYkFBRlN6dG14QUFBPSkgZm9ybWF0KCd3b2ZmJyk7Cit9Cisuc2hh
cGUtaW5zaWRlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxl
ZnQ6MDsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICBjb2xvcjogcmVkOworICAgIGZvbnQ6IDAuNWVtICdGcmFj
dGlvbmFsIFRlc3QgRm9udCcsIHNlcmlmOworICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5
Z29uKDUwcHggMHB4LCAxMDBweCAxMDBweCwgMHB4IDEwMHB4KTsKK30KKy5vdmVybGF5IHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6MDsKKyAgICB3aWR0
aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9InNoYXBlLWluc2lk
ZSI+MTExMTExMjxici8+PC9kaXY+Cis8ZGl2IGNsYXNzPSJvdmVybGF5Ij48L2Rpdj4KKworPHAg
c3R5bGU9Im1hcmdpbi10b3A6IDEyMHB4OyI+VGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNp
ZGUgYXBwbGllZCBvbiB0aGUgZ3JlZW4gYm94LgorVGhlIGdyZWVuIGNvbnRlbnQgc2hvdWxkIGJl
IGluc2lkZSB0aGUgc2hhcGUtaW5zaWRlLiBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHJlZC48L3A+
Cis8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMjY2MDEiPjEyNjYwMTwvYT46
IFtDU1MgU2hhcGVzXSBGaXJzdCBsaW5lIGdldHMgaW5jb3JyZWN0bHkgYWRqdXN0ZWQgaW4gc2hh
cGUtaW5zaWRlIGR1ZSB0byByb3VuZGluZyBpbiBzb21lIHBvbHlnb25zPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhkNmVkMjcuLmE3MWFhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNC0wMS0wOSAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBbQ1NTIFNoYXBlc10gRmlyc3QgbGluZSBnZXRzIGluY29ycmVjdGx5IGFk
anVzdGVkIGluIHNoYXBlLWluc2lkZSBkdWUgdG8gcm91bmRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGdldCBjb25zaXN0ZW50
IHJlc3VsdHMgb2YgdGhlIGZpcnN0IGZpdCBwb3NpdGlvbiBvZiB0aGUgY29udGVudCBpbiBzaGFw
ZXMsCisgICAgICAgIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3Agc2hvdWxkIHRha2Ug
YSBGbG9hdFNpemUgcmF0aGVyIHRoYW4gTGF5b3V0U2l6ZSBmb3IKKyAgICAgICAgbWluTG9naWNh
bEludGVydmFsU2l6ZSwgYmVjYXVzZSBMYXlvdXRTaXplIGNsYW1wcyB0aGUgZmxvYXQgdmFsdWUg
dG8gaW50LCB3aGVuIHN1YnBpeGVsLWxheW91dAorICAgICAgICBpcyBkaXNhYmxlZCwgdGh1cyBm
aXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wIGNvdWxkIGVuZCB1cCBjYWxjdWxhdGluZyB3
aXRoIGFuIHVucHJlY2l6ZQorICAgICAgICB2YWx1ZS4gVGhpcyBjaGFuZ2UgbW9kaWZpZXMgZmly
c3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCB0byB0YWtlIEZsb2F0U2l6ZSBjb25zaXN0ZW50
bHkuCisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9z
aGFwZXMvQm94U2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5j
bHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94
U2hhcGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2x5Z29uU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2lj
YWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSYXN0ZXJTaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
aGFwZXMvUmVjdGFuZ2xlU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVjdGFuZ2xlU2hh
cGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1No
YXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluc2lkZUluZm86OmNvbXB1dGVGaXJzdEZpdFBvc2l0
aW9uRm9yRmxvYXQpOgorCiAyMDE0LTAxLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTYxNDQ3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAppbmRleCAzNDA0
NTM2Li4yNWM5NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L0JveFNoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNo
YXBlLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgQm94U2hhcGU6OmdldEluY2x1ZGVkSW50
ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpCiAgICAg
cmVzdWx0LmFwcGVuZChMaW5lU2VnbWVudCh4MSwgeDIpKTsKIH0KIAotYm9vbCBCb3hTaGFwZTo6
Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRl
cnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK2Jv
b2wgQm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBt
aW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYsIExheW91dFVuaXQmIHJlc3Vs
dCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MDYuCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaAppbmRleCAwOTllYzgwLi5kZDU1MjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCkBAIC00Nyw3
ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIG1fYm91bmRzLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRF
eGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNh
bEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2Fs
SW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExh
eW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRl
ZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29u
c3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYnVpbGREaXNwbGF5UGF0aHMoRGlzcGxheVBh
dGhzJikgY29uc3QgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvUG9seWdvblNoYXBlLmNwcAppbmRleCAwYjhiYWRhLi44ZTI0MWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwCkBAIC00Mzks
NyArNDM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIGFib3ZlT3JUb1RoZUxlZnQoY29uc3QgRmxv
YXRSZWN0JiByMSwgY29uc3QgRmxvYXRSZWN0JiByMikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgUG9seWdvblNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0Citib29sIFBvbHlnb25TaGFw
ZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJ
bnRlcnZhbFRvcCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlv
dXRVbml0JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgZmxvYXQgbWluSW50ZXJ2YWxUb3AgPSBtaW5M
b2dpY2FsSW50ZXJ2YWxUb3A7CiAgICAgZmxvYXQgbWluSW50ZXJ2YWxIZWlnaHQgPSBtaW5Mb2dp
Y2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvUG9seWdvblNoYXBlLmgKaW5kZXggNTIxNGZiYy4uOGIzMmVhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCkBAIC05NCw3ICs5NCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fcG9seWdvbi5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVk
ZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldElu
Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBm
aXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVy
dmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRV
bml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRl
cnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZs
b2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJS
SURFOwogCiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYp
IGNvbnN0IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1Jhc3RlclNoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
UmFzdGVyU2hhcGUuY3BwCmluZGV4IDc5OTk2ZDUuLmU2YTMwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCkBAIC0zMjAsNyArMzIwLDcg
QEAgdm9pZCBSYXN0ZXJTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dp
Y2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWwKICAgICBhcHBlbmRMaW5lU2VnbWVudHMoaW5jbHVk
ZWRJbnRlcnZhbHMsIHJlc3VsdCk7CiB9CiAKLWJvb2wgUmFzdGVyU2hhcGU6OmZpcnN0SW5jbHVk
ZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNv
bnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3Vs
dCkgY29uc3QKK2Jvb2wgUmFzdGVyU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxU
b3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWlu
TG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdAogewogICAgIGNv
bnN0IFJhc3RlclNoYXBlSW50ZXJ2YWxzJiBpbnRlcnZhbHMgPSBwYWRkaW5nSW50ZXJ2YWxzKCk7
CiAgICAgaWYgKGludGVydmFscy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKaW5kZXggY2NiYjhhMi4uNjM2OGRkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaApAQCAtMTAwLDcgKzEw
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1faW50ZXJ2YWxzLT5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0
RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBs
b2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNh
bEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBM
YXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVk
ZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNv
bnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0
IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQ
YXRocyYgcGF0aHMpIGNvbnN0IE9WRVJSSURFCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcAppbmRleCAwZjc2Y2MxLi5lNjk2
NjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3Rhbmds
ZVNoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3Rhbmds
ZVNoYXBlLmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyBGbG9hdFBvaW50IGNvcm5lcklu
dGVyY2VwdEZvcldpZHRoKGZsb2F0IHdpZHRoLCBmbG9hdCB3aWR0aEF0SW50ZXJjZXB0LCBmCiAg
ICAgcmV0dXJuIEZsb2F0UG9pbnQoeGksIHlpKTsKIH0KIAotYm9vbCBSZWN0YW5nbGVTaGFwZTo6
Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRl
cnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0
VW5pdCYgcmVzdWx0KSBjb25zdAorYm9vbCBSZWN0YW5nbGVTaGFwZTo6Zmlyc3RJbmNsdWRlZElu
dGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3Qg
RmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNv
bnN0CiB7CiAgICAgZmxvYXQgbWluSW50ZXJ2YWxUb3AgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7
CiAgICAgZmxvYXQgbWluSW50ZXJ2YWxIZWlnaHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhl
aWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0
YW5nbGVTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVT
aGFwZS5oCmluZGV4IDQ3YmFkNTQuLmI5NDBmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9i
b3VuZHMuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxz
KExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50
TGlzdCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVy
dmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2Vn
bWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRl
ZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29u
c3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2Fs
VG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1p
bkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgdm9pZCBidWlsZERpc3BsYXlQYXRocyhEaXNwbGF5UGF0aHMmKSBjb25zdCBPVkVS
UklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IDM0NTM5
NmMuLmY0NmRlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKQEAg
LTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxv
Z2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9n
aWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlv
dXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNh
bEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dp
Y2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwg
TGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdCA9IDA7CiAgICAgYm9vbCBsaW5lT3ZlcmxhcHNTaGFw
ZU1hcmdpbkJvdW5kcyhMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkg
Y29uc3QgeyByZXR1cm4gbGluZU92ZXJsYXBzQm91bmRpbmdCb3gobGluZVRvcCwgbGluZUhlaWdo
dCwgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3goKSk7IH0KICAgICBib29sIGxpbmVPdmVy
bGFwc1NoYXBlUGFkZGluZ0JvdW5kcyhMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGlu
ZUhlaWdodCkgY29uc3QgeyByZXR1cm4gbGluZU92ZXJsYXBzQm91bmRpbmdCb3gobGluZVRvcCwg
bGluZUhlaWdodCwgc2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5nQm94KCkpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcApp
bmRleCBlNGE1NjAxLi5mZjdlMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgU2hh
cGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lkdGgp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIExheW91dFVuaXQgbmV3TGluZVRvcDsKLSAg
ICBpZiAoc2hhcGUuZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChtX3NoYXBlTGluZVRv
cCwgTGF5b3V0U2l6ZShtaW5TZWdtZW50V2lkdGgsIG1fbGluZUhlaWdodCksIG5ld0xpbmVUb3Ap
KSB7CisgICAgaWYgKHNoYXBlLmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AobV9zaGFw
ZUxpbmVUb3AsIEZsb2F0U2l6ZShtaW5TZWdtZW50V2lkdGgsIG1fbGluZUhlaWdodCksIG5ld0xp
bmVUb3ApKSB7CiAgICAgICAgIGlmIChuZXdMaW5lVG9wID4gbV9zaGFwZUxpbmVUb3ApIHsKICAg
ICAgICAgICAgIG1fc2hhcGVMaW5lVG9wID0gbmV3TGluZVRvcDsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTExLDcgKzExMSw3IEBAIFNoYXBlVmFsdWUqIFNoYXBlSW5zaWRlSW5mbzo6
c2hhcGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyZXIuc3R5bGUoKS5yZXNvbHZl
ZFNoYXBlSW5zaWRlKCk7CiB9CiAKLUxheW91dFVuaXQgU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRl
Rmlyc3RGaXRQb3NpdGlvbkZvckZsb2F0KGNvbnN0IExheW91dFNpemUgZmxvYXRTaXplKSBjb25z
dAorTGF5b3V0VW5pdCBTaGFwZUluc2lkZUluZm86OmNvbXB1dGVGaXJzdEZpdFBvc2l0aW9uRm9y
RmxvYXQoY29uc3QgRmxvYXRTaXplIGZsb2F0U2l6ZSkgY29uc3QKIHsKICAgICBpZiAoIWZsb2F0
U2l6ZS53aWR0aCgpIHx8IHNoYXBlTG9naWNhbEJvdHRvbSgpIDwgbG9naWNhbExpbmVUb3AoKSkK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZUluc2lkZUluZm8uaAppbmRleCBlZjgyYmFmLi5jNzBhYzE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTk2LDcg
Kzk2LDcgQEAgcHVibGljOgogICAgIH0KICAgICB2b2lkIGNsZWFyU2VnbWVudHMoKSB7IG1fc2Vn
bWVudHMuY2xlYXIoKTsgfQogICAgIGJvb2wgYWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWlu
U2VnbWVudFdpZHRoKTsKLSAgICBMYXlvdXRVbml0IGNvbXB1dGVGaXJzdEZpdFBvc2l0aW9uRm9y
RmxvYXQoY29uc3QgTGF5b3V0U2l6ZSkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlRmly
c3RGaXRQb3NpdGlvbkZvckZsb2F0KGNvbnN0IEZsb2F0U2l6ZSkgY29uc3Q7CiAKICAgICB2b2lk
IHNldE5lZWRzTGF5b3V0KGJvb2wgdmFsdWUpIHsgbV9uZWVkc0xheW91dCA9IHZhbHVlOyB9CiAg
ICAgYm9vbCBuZWVkc0xheW91dCgpIHsgcmV0dXJuIG1fbmVlZHNMYXlvdXQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220780</attachid>
            <date>2014-01-09 15:51:38 -0800</date>
            <delta_ts>2014-01-09 16:16:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ceiled.patch</filename>
            <type>text/plain</type>
            <size>16509</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZjcyYjA4Li4xYTE2M2M2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEt
MDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNp
ZGUgZHVlIHRvIHJvdW5kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjY2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdv
bi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1m
aXQuaHRtbDogQWRkZWQuCisKIDIwMTQtMDEtMDcgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIHVwZGF0ZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmRhZTE1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5zaGFwZS1pbnNpZGUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDA7CisgICAgbGVmdDowOworICAgIHdpZHRoOiA1NnB4OworICAgIGhlaWdodDogODhweDsK
KyAgICBwYWRkaW5nLXRvcDogMTJweDsKKyAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGNsYXNzPSJzaGFwZS1pbnNpZGUiPjwvZGl2PgorPHAgc3R5bGU9Im1hcmdpbi10b3A6IDEyMHB4
OyI+VGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgYXBwbGllZCBvbiB0aGUgZ3JlZW4g
Ym94LgorVGhlIGNvbnRlbnQgc2hvdWxkIGJlIGluc2lkZSB0aGUgc2hhcGUtaW5zaWRlLiBZb3Ug
c2hvdWxkIG5vdCBzZWUgYW55IHJlZC48L3A+Cis8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtp
dC5vcmcvYi8xMjY2MDEiPjEyNjYwMTwvYT46IFtDU1MgU2hhcGVzXSBGaXJzdCBsaW5lIGdldHMg
aW5jb3JyZWN0bHkgYWRqdXN0ZWQgaW4gc2hhcGUtaW5zaWRlIGR1ZSB0byByb3VuZGluZyBpbiBz
b21lIHBvbHlnb25zPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1maXJzdC1maXQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hYmI2YWI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQt
Zmlyc3QtZml0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICdGcmFjdGlv
bmFsIFRlc3QgRm9udCc7CisgICAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtd29m
ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQVJZQUE4QUFBQUFCa0FBQVFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQldBQUFBQndBQUFBY2FpWVV2RWRFUlVZ
QUFBRjBBQUFBSFFBQUFDQUFOZ0FFVDFNdk1nQUFBWlFBQUFCREFBQUFWbU5uaWd4amJXRndBQUFC
MkFBQUFGMEFBQUZpQlpFM1FXTjJkQ0FBQUFJNEFBQUFCQUFBQUFRQUlnSGVaMkZ6Y0FBQUFqd0FB
QUFJQUFBQUNBQUFBQkJuYkhsbUFBQUNSQUFBQUlJQUFBRFlKRDRDdkdobFlXUUFBQUxJQUFBQUxn
QUFBRFlGSEZsZmFHaGxZUUFBQXZnQUFBQWNBQUFBSkF3Q0ErSm9iWFI0QUFBREZBQUFBQ0FBQUFB
a0hINEFSR3h2WTJFQUFBTTBBQUFBRkFBQUFCUUJCQUZVYldGNGNBQUFBMGdBQUFBZkFBQUFJQUJO
QURsdVlXMWxBQUFEYUFBQUFMd0FBQUZtR2lZMmJIQnZjM1FBQUFRa0FBQUFMQUFBQUVSeWpsU0pk
MlZpWmdBQUJGQUFBQUFHQUFBQUJ0bXlVczRBQUFBQkFBQUFBTXc5b3M4QUFBQUF6dlBudkFBQUFB
RE85SW93ZU5wallHUmdZT0FEWWdrR0VHQmlZQVJDRGlCbUFmTVlBQVNpQURzQUFBQjQybU5nWko3
Qk9JR0JsWUdGMVloMUJnTURveHlFWnI3R2tNWWt4TURBeE1ES3pBQURqQXhJSUNETk5ZWEJnWUZY
OVE4THd4OGduNFdCUlFPbUJnQ0Rrd2hhQUhqYVkyQmdZR2FBWUJrR1JnWVFpQUh5R01GOEZnWUhJ
TTNEd01IQUJHVHpNaGd4bURCWXFQNzUveDhveXN0Z0NPUDkvL2IvOHY5TC84L2Y0b0dhQUFlTWJB
eHdJVVltcUQwb0NoZ3dBUXNyQTFBYkF6dkQ4QUFBVUs0UkF3QUFBQUFpQWQ0QUFRQUIvLzhBRDNq
YVhjeXhEY0l3RUlYaC84NU9uTllsSFphZ0JRa3FwSlFlaFlJUkdJVTE3SGxZZ1o0aWlyQWprRXl1
ZXU5OTBxRkUwS3NGZytPUWhPT1luZVYxU24zM0hMUFJFa21temwyZHMrdGxHclBVL2V5RDN3Y2Zv
bTdublR6bW0yVWltanNnbERpdy9HVWp3UTlMZi9NejI1aGRtVGFtSzVQRzVNKytWK3hpUGhQVUlo
TUFBSGphWTJCa1lHQUE0dDA3RXhmRTg5dDhaWkRuWUFDQmMxKzZEQkgwSHdZT0JoWVFsNE9CQ1VR
QkFFRnhDa29BQUhqYVkyQmtZR0JoK0gyRGdZR0RBUVNBSkNNREt1QUVBRGd6QWZONDJtTjZ3K0RD
QUFRc1FNeTBpb0dCQThZR1lrWWdabjdCd0FBQVBSNEMzUUFBQUN3QUxBQXNBQ3dBT2dCSUFGWUFa
QUJzZU5wallHUmdZT0JrNEdCZ1lnQUJFTW5JQUJKellOQURDUUFBQlFnQWh3QjQybldReXc3QlVC
Q0d2Mm9KR3l1eFBoRmJvaVZ4ZVFBTFN4SFdKWFZKR3BLcTkvQVVIc0lUc1BOSWZ1M3BRc0ppNW53
ejg4OGxCNml5eGNYeGFqZzB3SEtKdXFLY1hXYTBMSHUwaVMyWGFYSzFYSkg2WnZtaC9OM3lreDR2
YlVnSTJaQnk0TVJSSERNbllzZEZGS282emZKcDlpYktSeGdDdXVvMlRHUy9KdVNWRVIxOFdTQ3R6
K0NQOG52YlVsSEMyU3FNK2o2YmZuV3VwRnlya2w5WEtCZnNOY3ZvWDhLczN6RE9hb0V1OGhuSzkr
Vk5jZE1iRk00d3MzamFZMkJpd0E4NGdaaVJnWW1SaVVHRVFaUkJuRUdha1ptOU5DL1R3TURBQlVR
Ym1ibzVBd0F3S2dUYkFBRlN6dG14QUFBPSkgZm9ybWF0KCd3b2ZmJyk7Cit9Cisuc2hhcGUtaW5z
aWRlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6MDsK
KyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKyAgICBjb2xvcjogcmVkOworICAgIGZvbnQ6IDAuNWVtICdGcmFjdGlvbmFs
IFRlc3QgRm9udCcsIHNlcmlmOworICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBwb2x5Z29uKDUw
cHggMHB4LCAxMDBweCAxMDBweCwgMHB4IDEwMHB4KTsKK30KKy5vdmVybGF5IHsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6MDsKKyAgICB3aWR0aDogMTAw
cHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9InNoYXBlLWluc2lkZSI+MTEx
MTExMjxici8+PC9kaXY+Cis8ZGl2IGNsYXNzPSJvdmVybGF5Ij48L2Rpdj4KKworPHAgc3R5bGU9
Im1hcmdpbi10b3A6IDEyMHB4OyI+VGhlcmUgaXMgYSB0cmlhbmdsZSBzaGFwZS1pbnNpZGUgYXBw
bGllZCBvbiB0aGUgZ3JlZW4gYm94LgorVGhlIGNvbnRlbnQgc2hvdWxkIGJlIGluc2lkZSB0aGUg
c2hhcGUtaW5zaWRlLiBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHJlZC48L3A+Cis8cD5CdWcgPGEg
aHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8xMjY2MDEiPjEyNjYwMTwvYT46IFtDU1MgU2hhcGVz
XSBGaXJzdCBsaW5lIGdldHMgaW5jb3JyZWN0bHkgYWRqdXN0ZWQgaW4gc2hhcGUtaW5zaWRlIGR1
ZSB0byByb3VuZGluZyBpbiBzb21lIHBvbHlnb25zPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDhkNmVkMjcuLmE3MWFhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAor
MjAxNC0wMS0wOSAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBbQ1NTIFNoYXBlc10gRmlyc3QgbGluZSBnZXRzIGluY29ycmVjdGx5IGFkanVzdGVkIGluIHNo
YXBlLWluc2lkZSBkdWUgdG8gcm91bmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjYwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGdldCBjb25zaXN0ZW50IHJlc3VsdHMgb2Yg
dGhlIGZpcnN0IGZpdCBwb3NpdGlvbiBvZiB0aGUgY29udGVudCBpbiBzaGFwZXMsCisgICAgICAg
IGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3Agc2hvdWxkIHRha2UgYSBGbG9hdFNpemUg
cmF0aGVyIHRoYW4gTGF5b3V0U2l6ZSBmb3IKKyAgICAgICAgbWluTG9naWNhbEludGVydmFsU2l6
ZSwgYmVjYXVzZSBMYXlvdXRTaXplIGNsYW1wcyB0aGUgZmxvYXQgdmFsdWUgdG8gaW50LCB3aGVu
IHN1YnBpeGVsLWxheW91dAorICAgICAgICBpcyBkaXNhYmxlZCwgdGh1cyBmaXJzdEluY2x1ZGVk
SW50ZXJ2YWxMb2dpY2FsVG9wIGNvdWxkIGVuZCB1cCBjYWxjdWxhdGluZyB3aXRoIGFuIHVucHJl
Y2l6ZQorICAgICAgICB2YWx1ZS4gVGhpcyBjaGFuZ2UgbW9kaWZpZXMgZmlyc3RJbmNsdWRlZElu
dGVydmFsTG9naWNhbFRvcCB0byB0YWtlIEZsb2F0U2l6ZSBjb25zaXN0ZW50bHkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJv
dW5kZWQtZmlyc3QtZml0Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hh
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZh
bExvZ2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb2x5Z29uU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOgorICAg
ICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYXN0ZXJTaGFw
ZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCk6CisgICAgICAgICogcmVuZGVyaW5n
L3NoYXBlcy9SYXN0ZXJTaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmVjdGFu
Z2xlU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVjdGFuZ2xlU2hhcGU6OmZpcnN0SW5j
bHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmVj
dGFuZ2xlU2hhcGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFwZUluc2lkZUluZm86OmNvbXB1dGVGaXJzdEZpdFBvc2l0aW9uRm9yRmxvYXQp
OgorCiAyMDE0LTAxLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTYxNDQ3LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAppbmRleCAzNDA0NTM2Li4yNWM5NjY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcApAQCAt
MTQ4LDcgKzE0OCw3IEBAIHZvaWQgQm94U2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91
dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpCiAgICAgcmVzdWx0LmFwcGVu
ZChMaW5lU2VnbWVudCh4MSwgeDIpKTsKIH0KIAotYm9vbCBCb3hTaGFwZTo6Zmlyc3RJbmNsdWRl
ZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29u
c3QgTGF5b3V0U2l6ZSYsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK2Jvb2wgQm94U2hhcGU6
OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50
ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MDYuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvQm94U2hhcGUuaAppbmRleCAwOTllYzgwLi5kZDU1MjAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fYm91bmRzLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVy
dmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2Vn
bWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJ
bnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQs
IFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGZpcnN0SW5j
bHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3As
IGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9n
aWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgRmxvYXRTaXpl
JiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgYnVpbGREaXNwbGF5UGF0aHMoRGlzcGxheVBhdGhzJikgY29uc3Qg
T1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
UG9seWdvblNoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdv
blNoYXBlLmNwcAppbmRleCAwYjhiYWRhLi44ZTI0MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwCkBAIC00MzksNyArNDM5LDcgQEAg
c3RhdGljIGlubGluZSBib29sIGFib3ZlT3JUb1RoZUxlZnQoY29uc3QgRmxvYXRSZWN0JiByMSwg
Y29uc3QgRmxvYXRSZWN0JiByMikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUG9seWdv
blNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9n
aWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXpl
LCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0Citib29sIFBvbHlnb25TaGFwZTo6Zmlyc3RJbmNs
dWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwg
Y29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1
bHQpIGNvbnN0CiB7CiAgICAgZmxvYXQgbWluSW50ZXJ2YWxUb3AgPSBtaW5Mb2dpY2FsSW50ZXJ2
YWxUb3A7CiAgICAgZmxvYXQgbWluSW50ZXJ2YWxIZWlnaHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxT
aXplLmhlaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9Qb2x5Z29uU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdv
blNoYXBlLmgKaW5kZXggNTIxNGZiYy4uOGIzMmVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcG9s
eWdvbi5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMo
TGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRM
aXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2
YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdt
ZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVk
SW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25z
dCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxU
b3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWlu
TG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
dmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYpIGNvbnN0IE9WRVJS
SURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3Rl
clNoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUu
Y3BwCmluZGV4IDc5OTk2ZDUuLmU2YTMwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBSYXN0
ZXJTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGxvZ2ljYWwKICAgICBhcHBlbmRMaW5lU2VnbWVudHMoaW5jbHVkZWRJbnRlcnZhbHMs
IHJlc3VsdCk7CiB9CiAKLWJvb2wgUmFzdGVyU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNp
emUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK2Jv
b2wgUmFzdGVyU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5p
dCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVy
dmFsU2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdAogewogICAgIGNvbnN0IFJhc3RlclNo
YXBlSW50ZXJ2YWxzJiBpbnRlcnZhbHMgPSBwYWRkaW5nSW50ZXJ2YWxzKCk7CiAgICAgaWYgKGlu
dGVydmFscy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1Jhc3RlclNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jh
c3RlclNoYXBlLmgKaW5kZXggY2NiYjhhMi4uNjM2OGRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
aW50ZXJ2YWxzLT5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRl
cnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNl
Z21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVk
SW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBmaXJzdElu
Y2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9w
LCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0Jikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6
ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYgcGF0aHMp
IGNvbnN0IE9WRVJSSURFCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcAppbmRleCAwZjc2Y2MxLi5lNjk2NjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcApA
QCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyBGbG9hdFBvaW50IGNvcm5lckludGVyY2VwdEZvcldp
ZHRoKGZsb2F0IHdpZHRoLCBmbG9hdCB3aWR0aEF0SW50ZXJjZXB0LCBmCiAgICAgcmV0dXJuIEZs
b2F0UG9pbnQoeGksIHlpKTsKIH0KIAotYm9vbCBSZWN0YW5nbGVTaGFwZTo6Zmlyc3RJbmNsdWRl
ZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29u
c3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0
KSBjb25zdAorYm9vbCBSZWN0YW5nbGVTaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNh
bFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgRmxvYXRTaXplJiBt
aW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0CiB7CiAgICAg
ZmxvYXQgbWluSW50ZXJ2YWxUb3AgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7CiAgICAgZmxvYXQg
bWluSW50ZXJ2YWxIZWlnaHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCmluZGV4
IDQ3YmFkNTQuLmI5NDBmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvUmVjdGFuZ2xlU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1JlY3RhbmdsZVNoYXBlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ib3VuZHMuaXNFbXB0
eSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQg
bG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRV
bml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9n
aWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6
ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVu
aXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxvZ2ljYWxJbnRl
cnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBidWlsZERpc3BsYXlQYXRocyhEaXNwbGF5UGF0aHMmKSBjb25zdCBPVkVSUklERTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IDM0NTM5NmMuLmY0NmRlNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKQEAgLTc4LDcgKzc4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxv
Z2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6
ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGZpcnN0
SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxU
b3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYg
cmVzdWx0KSBjb25zdCA9IDA7CiAgICAgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZU1hcmdpbkJvdW5k
cyhMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgY29uc3QgeyByZXR1
cm4gbGluZU92ZXJsYXBzQm91bmRpbmdCb3gobGluZVRvcCwgbGluZUhlaWdodCwgc2hhcGVNYXJn
aW5Mb2dpY2FsQm91bmRpbmdCb3goKSk7IH0KICAgICBib29sIGxpbmVPdmVybGFwc1NoYXBlUGFk
ZGluZ0JvdW5kcyhMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgY29u
c3QgeyByZXR1cm4gbGluZU92ZXJsYXBzQm91bmRpbmdCb3gobGluZVRvcCwgbGluZUhlaWdodCwg
c2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5nQm94KCkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBlNGE1NjAx
Li5mZjdlMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlSW5zaWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZUluc2lkZUluZm8uY3BwCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgU2hhcGVJbnNpZGVJbmZv
OjphZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lkdGgpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIExheW91dFVuaXQgbmV3TGluZVRvcDsKLSAgICBpZiAoc2hhcGUu
Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChtX3NoYXBlTGluZVRvcCwgTGF5b3V0U2l6
ZShtaW5TZWdtZW50V2lkdGgsIG1fbGluZUhlaWdodCksIG5ld0xpbmVUb3ApKSB7CisgICAgaWYg
KHNoYXBlLmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AobV9zaGFwZUxpbmVUb3AsIEZs
b2F0U2l6ZShtaW5TZWdtZW50V2lkdGgsIG1fbGluZUhlaWdodCksIG5ld0xpbmVUb3ApKSB7CiAg
ICAgICAgIGlmIChuZXdMaW5lVG9wID4gbV9zaGFwZUxpbmVUb3ApIHsKICAgICAgICAgICAgIG1f
c2hhcGVMaW5lVG9wID0gbmV3TGluZVRvcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
MTExLDcgKzExMSw3IEBAIFNoYXBlVmFsdWUqIFNoYXBlSW5zaWRlSW5mbzo6c2hhcGVWYWx1ZSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyZXIuc3R5bGUoKS5yZXNvbHZlZFNoYXBlSW5zaWRl
KCk7CiB9CiAKLUxheW91dFVuaXQgU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlRmlyc3RGaXRQb3Np
dGlvbkZvckZsb2F0KGNvbnN0IExheW91dFNpemUgZmxvYXRTaXplKSBjb25zdAorTGF5b3V0VW5p
dCBTaGFwZUluc2lkZUluZm86OmNvbXB1dGVGaXJzdEZpdFBvc2l0aW9uRm9yRmxvYXQoY29uc3Qg
RmxvYXRTaXplIGZsb2F0U2l6ZSkgY29uc3QKIHsKICAgICBpZiAoIWZsb2F0U2l6ZS53aWR0aCgp
IHx8IHNoYXBlTG9naWNhbEJvdHRvbSgpIDwgbG9naWNhbExpbmVUb3AoKSkKICAgICAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
SW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lk
ZUluZm8uaAppbmRleCBlZjgyYmFmLi5jNzBhYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVi
bGljOgogICAgIH0KICAgICB2b2lkIGNsZWFyU2VnbWVudHMoKSB7IG1fc2VnbWVudHMuY2xlYXIo
KTsgfQogICAgIGJvb2wgYWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWluU2VnbWVudFdpZHRo
KTsKLSAgICBMYXlvdXRVbml0IGNvbXB1dGVGaXJzdEZpdFBvc2l0aW9uRm9yRmxvYXQoY29uc3Qg
TGF5b3V0U2l6ZSkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlRmlyc3RGaXRQb3NpdGlv
bkZvckZsb2F0KGNvbnN0IEZsb2F0U2l6ZSkgY29uc3Q7CiAKICAgICB2b2lkIHNldE5lZWRzTGF5
b3V0KGJvb2wgdmFsdWUpIHsgbV9uZWVkc0xheW91dCA9IHZhbHVlOyB9CiAgICAgYm9vbCBuZWVk
c0xheW91dCgpIHsgcmV0dXJuIG1fbmVlZHNMYXlvdXQ7IH0K
</data>
<flag name="review"
          id="244556"
          type_id="1"
          status="+"
          setter="bjonesbe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220785</attachid>
            <date>2014-01-09 16:16:22 -0800</date>
            <delta_ts>2014-01-09 16:51:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ceiled.patch</filename>
            <type>text/plain</type>
            <size>16477</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZjcyYjA4Li4xNzhmYmVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEt
MDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBT
aGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNp
ZGUgZHVlIHRvIHJvdW5kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjY2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBCZW0gSm9uZXMtQmV5Lgor
CisgICAgICAgICogZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29u
LXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZp
dC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMS0wNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1m
aXJzdC1maXQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yZGFlMTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXJvdW5kZWQtZmlyc3QtZml0LWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLnNoYXBlLWluc2lkZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRv
cDogMDsKKyAgICBsZWZ0OjA7CisgICAgd2lkdGg6IDU2cHg7CisgICAgaGVpZ2h0OiA4OHB4Owor
ICAgIHBhZGRpbmctdG9wOiAxMnB4OworICAgIHBhZGRpbmctbGVmdDogNDRweDsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
Y2xhc3M9InNoYXBlLWluc2lkZSI+PC9kaXY+Cis8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTIwcHg7
Ij5UaGVyZSBpcyBhIHRyaWFuZ2xlIHNoYXBlLWluc2lkZSBhcHBsaWVkIG9uIHRoZSBncmVlbiBi
b3guCitUaGUgY29udGVudCBzaG91bGQgYmUgaW5zaWRlIHRoZSBzaGFwZS1pbnNpZGUuIFlvdSBz
aG91bGQgbm90IHNlZSBhbnkgcmVkLjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0
Lm9yZy9iLzEyNjYwMSI+MTI2NjAxPC9hPjogW0NTUyBTaGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBp
bmNvcnJlY3RseSBhZGp1c3RlZCBpbiBzaGFwZS1pbnNpZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNv
bWUgcG9seWdvbnM8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1m
aXJzdC1maXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjVmNjNhOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcm91bmRlZC1m
aXJzdC1maXQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogJ0ZyYWN0aW9u
YWwgVGVzdCBGb250JzsKKyAgICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC13b2Zm
O2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFBUllBQThBQUFBQUJrQUFBUUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCV0FBQUFCd0FBQUFjYWlZVXZFZEVSVVlB
QUFGMEFBQUFIUUFBQUNBQU5nQUVUMU12TWdBQUFaUUFBQUJEQUFBQVZtTm5pZ3hqYldGd0FBQUIy
QUFBQUYwQUFBRmlCWkUzUVdOMmRDQUFBQUk0QUFBQUJBQUFBQVFBSWdIZVoyRnpjQUFBQWp3QUFB
QUlBQUFBQ0FBQUFCQm5iSGxtQUFBQ1JBQUFBSUlBQUFEWUpENEN2R2hsWVdRQUFBTElBQUFBTGdB
QUFEWUZIRmxmYUdobFlRQUFBdmdBQUFBY0FBQUFKQXdDQStKb2JYUjRBQUFERkFBQUFDQUFBQUFr
SEg0QVJHeHZZMkVBQUFNMEFBQUFGQUFBQUJRQkJBRlViV0Y0Y0FBQUEwZ0FBQUFmQUFBQUlBQk5B
RGx1WVcxbEFBQURhQUFBQUx3QUFBRm1HaVkyYkhCdmMzUUFBQVFrQUFBQUxBQUFBRVJ5amxTSmQy
VmlaZ0FBQkZBQUFBQUdBQUFBQnRteVVzNEFBQUFCQUFBQUFNdzlvczhBQUFBQXp2UG52QUFBQUFE
TzlJb3dlTnBqWUdSZ1lPQURZZ2tHRUdCaVlBUkNEaUJtQWZNWUFBU2lBRHNBQUFCNDJtTmdaSjdC
T0lHQmxZR0YxWWgxQmdNRG94eUVacjdHa01Za3hNREF4TURLekFBRGpBeElJQ0ROTllYQmdZRlg5
UThMd3g4Z240V0JSUU9tQmdDRGt3aGFBSGphWTJCZ1lHYUFZQmtHUmdZUWlBSHlHTUY4RmdZSElN
M0R3TUhBQkdUek1oZ3htREJZcVA3NS94OG95c3RnQ09QOS8vYi84djlMLzgvZjRvR2FBQWVNYkF4
d0lVWW1xRDBvQ2hnd0FRc3JBMUFiQXp2RDhBQUFVSzRSQXdBQUFBQWlBZDRBQVFBQi8vOEFEM2ph
WGN5eERjSXdFSVhoLzg1T25OWWxIWmFnQlFrcXBKUWVoWUlSR0lVMTdIbFlnWjRpaXJBamtFeXVl
dTk5MHFGRTBLc0ZnK09RaE9PWW5lVjFTbjMzSExQUkVrbW16bDJkcyt0bEdyUFUvZXlEM3djZm9t
N25uVHptbTJVaW1qc2dsRGl3L0dVandROUxmL016MjVoZG1UYW1LNVBHNU0rK1YreGlQaFBVSWhN
QUFIamFZMkJrWUdBQTR0MDdFeGZFODl0OFpaRG5ZQUNCYzErNkRCSDBId1lPQmhZUWw0T0JDVVFC
QUVGeENrb0FBSGphWTJCa1lHQmgrSDJEZ1lHREFRU0FKQ01ES3VBRUFEZ3pBZk40Mm1ONncrRENB
QVFzUU15MGlvR0JBOFlHWWtZZ1puN0J3QUFBUFI0QzNRQUFBQ3dBTEFBc0FDd0FPZ0JJQUZZQVpB
QnNlTnBqWUdSZ1lPQms0R0JnWWdBQkVNbklBQkp6WU5BRENRQUFCUWdBaHdCNDJuV1F5dzdCVUJD
R3Yyb0pHeXV4UGhGYm9pVnhlUUFMU3hIV0pYVkpHcEtxOS9BVUhzSVRzUE5JZnUzcFFzSmk1bnd6
ODg4bEI2aXl4Y1h4YWpnMHdIS0p1cUtjWFdhMExIdTBpUzJYYVhLMVhKSDZadm1oL04zeWt4NHZi
VWdJMlpCeTRNUlJIRE1uWXNkRkZLbzZ6ZkpwOWliS1J4Z0N1dW8yVEdTL0p1U1ZFUjE4V1NDdHor
Q1A4bnZiVWxIQzJTcU0rajZiZm5XdXBGeXJrbDlYS0Jmc05jdm9YOEtzM3pET2FvRXU4aG5LOStW
TmNkTWJGTTR3czNqYVkyQml3QTg0Z1ppUmdZbVJpVUdFUVpSQm5FR2FrWm05TkMvVHdNREFCVVFi
bWJvNUF3QXdLZ1RiQUFGU3p0bXhBQUE9KSBmb3JtYXQoJ3dvZmYnKTsKK30KKy5zaGFwZS1pbnNp
ZGUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDowOwor
ICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGNvbG9yOiByZWQ7Cisg
ICAgZm9udDogMC41ZW0gJ0ZyYWN0aW9uYWwgVGVzdCBGb250Jywgc2VyaWY7CisgICAgLXdlYmtp
dC1zaGFwZS1pbnNpZGU6IHBvbHlnb24oNTBweCAwcHgsIDEwMHB4IDEwMHB4LCAwcHggMTAwcHgp
OworfQorLm92ZXJsYXkgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cisg
ICAgbGVmdDowOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBjbGFzcz0ic2hhcGUtaW5zaWRlIj4xMTExMTEyPGJyLz48L2Rpdj4KKzxkaXYgY2xhc3M9Im92
ZXJsYXkiPjwvZGl2PgorCis8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTIwcHg7Ij5UaGVyZSBpcyBh
IHRyaWFuZ2xlIHNoYXBlLWluc2lkZSBhcHBsaWVkIG9uIHRoZSBncmVlbiBib3guCitUaGUgY29u
dGVudCBzaG91bGQgYmUgaW5zaWRlIHRoZSBzaGFwZS1pbnNpZGUuIFlvdSBzaG91bGQgbm90IHNl
ZSBhbnkgcmVkLjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEyNjYw
MSI+MTI2NjAxPC9hPjogW0NTUyBTaGFwZXNdIEZpcnN0IGxpbmUgZ2V0cyBpbmNvcnJlY3RseSBh
ZGp1c3RlZCBpbiBzaGFwZS1pbnNpZGUgZHVlIHRvIHJvdW5kaW5nIGluIHNvbWUgcG9seWdvbnM8
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ2ZWQyNy4uNmZjOTQ0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTAxLTA5ICBab2x0YW4gSG9ydmF0aCAgPHpv
bHRhbkB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBGaXJzdCBsaW5lIGdldHMg
aW5jb3JyZWN0bHkgYWRqdXN0ZWQgaW4gc2hhcGUtaW5zaWRlIGR1ZSB0byByb3VuZGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQmVtIEpvbmVzLUJleS4KKworICAgICAgICBJbiBvcmRlciB0byBn
ZXQgY29uc2lzdGVudCByZXN1bHRzIG9mIHRoZSBmaXJzdCBmaXQgcG9zaXRpb24gb2YgdGhlIGNv
bnRlbnQgaW4gc2hhcGVzLAorICAgICAgICBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9w
IHNob3VsZCB0YWtlIGEgRmxvYXRTaXplIHJhdGhlciB0aGFuIExheW91dFNpemUgZm9yCisgICAg
ICAgIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIGJlY2F1c2UgTGF5b3V0U2l6ZSBjbGFtcHMgdGhl
IGZsb2F0IHZhbHVlIHRvIGludCwgd2hlbiBzdWJwaXhlbC1sYXlvdXQKKyAgICAgICAgaXMgZGlz
YWJsZWQsIHRodXMgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCBjb3VsZCBlbmQgdXAg
Y2FsY3VsYXRpbmcgd2l0aCBhbiB1bnByZWNpemUKKyAgICAgICAgdmFsdWUuIFRoaXMgY2hhbmdl
IG1vZGlmaWVzIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AgdG8gdGFrZSBGbG9hdFNp
emUgY29uc2lzdGVudGx5LgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1yb3VuZGVkLWZpcnN0LWZpdC5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJveFNo
YXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc2hhcGVzL0JveFNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29u
U2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9seWdvblNoYXBlOjpmaXJzdEluY2x1ZGVk
SW50ZXJ2YWxMb2dpY2FsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25T
aGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmFzdGVyU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxU
b3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlY3RhbmdsZVNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNp
ZGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9n
aWNhbExpbmVUb3ApOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjpjb21wdXRl
Rmlyc3RGaXRQb3NpdGlvbkZvckZsb2F0KToKKwogMjAxNC0wMS0wNyAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE2MTQ0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
Qm94U2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5j
cHAKaW5kZXggMzQwNDUzNi4uMjVjOTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEJveFNoYXBlOjpn
ZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9n
aWNhbEhlaQogICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7CiB9CiAKLWJv
b2wgQm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBt
aW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmLCBMYXlvdXRVbml0JiByZXN1
bHQpIGNvbnN0Citib29sIEJveFNoYXBlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9w
KExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmLCBMYXlv
dXRVbml0JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IHRoaXMgbWV0aG9kIGlzIG9u
bHkgYSBzdHViLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NjA2
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKaW5kZXggMDk5
ZWM4MC4uZGQ1NTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9Cb3hTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hh
cGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHko
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kcy5pc0VtcHR5KCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVu
aXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50
ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50
ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0
VW5pdCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBh
dGhzKERpc3BsYXlQYXRocyYpIGNvbnN0IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAKaW5kZXggMGI4YmFkYS4uOGUyNDFl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hh
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBl
LmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhYm92ZU9yVG9UaGVM
ZWZ0KGNvbnN0IEZsb2F0UmVjdCYgcjEsIGNvbnN0IEZsb2F0UmVjdCYgcjIpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1ib29sIFBvbHlnb25TaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9n
aWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6
ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdAorYm9v
bCBQb2x5Z29uU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5p
dCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVy
dmFsU2l6ZSwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdAogewogICAgIGZsb2F0IG1pbkludGVy
dmFsVG9wID0gbWluTG9naWNhbEludGVydmFsVG9wOwogICAgIGZsb2F0IG1pbkludGVydmFsSGVp
Z2h0ID0gbWluTG9naWNhbEludGVydmFsU2l6ZS5oZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCmluZGV4IDUyMTRmYmMuLjhiMzJlYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaApA
QCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBtX3BvbHlnb24uaXNFbXB0eSgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91
dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1p
bkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFs
U2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBmaXJz
dEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFs
VG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQm
KSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBidWlsZERpc3BsYXlQYXRocyhE
aXNwbGF5UGF0aHMmKSBjb25zdCBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmNwcAppbmRleCA3OTk5NmQ1Li5lNmEzMGU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmNwcApAQCAt
MzIwLDcgKzMyMCw3IEBAIHZvaWQgUmFzdGVyU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKExh
eW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsCiAgICAgYXBwZW5kTGluZVNl
Z21lbnRzKGluY2x1ZGVkSW50ZXJ2YWxzLCByZXN1bHQpOwogfQogCi1ib29sIFJhc3RlclNoYXBl
OjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbElu
dGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlv
dXRVbml0JiByZXN1bHQpIGNvbnN0Citib29sIFJhc3RlclNoYXBlOjpmaXJzdEluY2x1ZGVkSW50
ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBG
bG9hdFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29u
c3QKIHsKICAgICBjb25zdCBSYXN0ZXJTaGFwZUludGVydmFscyYgaW50ZXJ2YWxzID0gcGFkZGlu
Z0ludGVydmFscygpOwogICAgIGlmIChpbnRlcnZhbHMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCmluZGV4IGNjYmI4YTIuLjYzNjhk
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hh
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgK
QEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2ludGVydmFscy0+aXNFbXB0eSgpOyB9CiAgICAgdmly
dHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3As
IExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRV
bml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbElu
dGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbElu
dGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91
dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBidWlsZERpc3BsYXlQ
YXRocyhEaXNwbGF5UGF0aHMmIHBhdGhzKSBjb25zdCBPVkVSUklERQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKaW5kZXgg
MGY3NmNjMS4uZTY5NjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMgRmxvYXRQ
b2ludCBjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCwgZmxvYXQgd2lkdGhBdElu
dGVyY2VwdCwgZgogICAgIHJldHVybiBGbG9hdFBvaW50KHhpLCB5aSk7CiB9CiAKLWJvb2wgUmVj
dGFuZ2xlU2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBt
aW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZh
bFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK2Jvb2wgUmVjdGFuZ2xlU2hhcGU6OmZp
cnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2
YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5p
dCYgcmVzdWx0KSBjb25zdAogewogICAgIGZsb2F0IG1pbkludGVydmFsVG9wID0gbWluTG9naWNh
bEludGVydmFsVG9wOwogICAgIGZsb2F0IG1pbkludGVydmFsSGVpZ2h0ID0gbWluTG9naWNhbElu
dGVydmFsU2l6ZS5oZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUmVjdGFuZ2xlU2hhcGUuaAppbmRleCA0N2JhZDU0Li5iOTQwZjIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fYm91bmRzLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNs
dWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50
ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91
dFVuaXQmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZElu
dGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3Qg
RmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYnVpbGREaXNwbGF5UGF0aHMoRGlzcGxheVBhdGhz
JikgY29uc3QgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUu
aAppbmRleCAzNDUzOTZjLi5mNDZkZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNF
bXB0eSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMo
TGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRM
aXN0JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhM
YXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExp
c3QmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNp
emUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxvZ2ljYWxJ
bnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QgPSAwOwogICAgIGJvb2wgbGlu
ZU92ZXJsYXBzU2hhcGVNYXJnaW5Cb3VuZHMoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0
IGxpbmVIZWlnaHQpIGNvbnN0IHsgcmV0dXJuIGxpbmVPdmVybGFwc0JvdW5kaW5nQm94KGxpbmVU
b3AsIGxpbmVIZWlnaHQsIHNoYXBlTWFyZ2luTG9naWNhbEJvdW5kaW5nQm94KCkpOyB9CiAgICAg
Ym9vbCBsaW5lT3ZlcmxhcHNTaGFwZVBhZGRpbmdCb3VuZHMoTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVIZWlnaHQpIGNvbnN0IHsgcmV0dXJuIGxpbmVPdmVybGFwc0JvdW5kaW5n
Qm94KGxpbmVUb3AsIGxpbmVIZWlnaHQsIHNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgp
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
SW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5z
aWRlSW5mby5jcHAKaW5kZXggZTRhNTYwMS4uZmY3ZTIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtOTYsNyArOTYs
NyBAQCBib29sIFNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWlu
U2VnbWVudFdpZHRoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBMYXlvdXRVbml0IG5l
d0xpbmVUb3A7Ci0gICAgaWYgKHNoYXBlLmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3Ao
bV9zaGFwZUxpbmVUb3AsIExheW91dFNpemUobWluU2VnbWVudFdpZHRoLCBtX2xpbmVIZWlnaHQp
LCBuZXdMaW5lVG9wKSkgeworICAgIGlmIChzaGFwZS5maXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dp
Y2FsVG9wKG1fc2hhcGVMaW5lVG9wLCBGbG9hdFNpemUobWluU2VnbWVudFdpZHRoLCBtX2xpbmVI
ZWlnaHQpLCBuZXdMaW5lVG9wKSkgewogICAgICAgICBpZiAobmV3TGluZVRvcCA+IG1fc2hhcGVM
aW5lVG9wKSB7CiAgICAgICAgICAgICBtX3NoYXBlTGluZVRvcCA9IG5ld0xpbmVUb3A7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExMSw3ICsxMTEsNyBAQCBTaGFwZVZhbHVlKiBTaGFw
ZUluc2lkZUluZm86OnNoYXBlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlcmVyLnN0
eWxlKCkucmVzb2x2ZWRTaGFwZUluc2lkZSgpOwogfQogCi1MYXlvdXRVbml0IFNoYXBlSW5zaWRl
SW5mbzo6Y29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdChjb25zdCBMYXlvdXRTaXplIGZs
b2F0U2l6ZSkgY29uc3QKK0xheW91dFVuaXQgU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlRmlyc3RG
aXRQb3NpdGlvbkZvckZsb2F0KGNvbnN0IEZsb2F0U2l6ZSBmbG9hdFNpemUpIGNvbnN0CiB7CiAg
ICAgaWYgKCFmbG9hdFNpemUud2lkdGgoKSB8fCBzaGFwZUxvZ2ljYWxCb3R0b20oKSA8IGxvZ2lj
YWxMaW5lVG9wKCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggZWY4MmJhZi4uYzcwYWMxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUlu
Zm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5m
by5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdm9pZCBjbGVhclNlZ21l
bnRzKCkgeyBtX3NlZ21lbnRzLmNsZWFyKCk7IH0KICAgICBib29sIGFkanVzdExvZ2ljYWxMaW5l
VG9wKGZsb2F0IG1pblNlZ21lbnRXaWR0aCk7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlRmlyc3RG
aXRQb3NpdGlvbkZvckZsb2F0KGNvbnN0IExheW91dFNpemUpIGNvbnN0OworICAgIExheW91dFVu
aXQgY29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JGbG9hdChjb25zdCBGbG9hdFNpemUpIGNvbnN0
OwogCiAgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIHZhbHVlKSB7IG1fbmVlZHNMYXlvdXQg
PSB2YWx1ZTsgfQogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSB7IHJldHVybiBtX25lZWRzTGF5b3V0
OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>