<?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>105065</bug_id>
          
          <creation_ts>2012-12-14 16:03:25 -0800</creation_ts>
          <short_desc>Free one bit in RenderObject</short_desc>
          <delta_ts>2012-12-18 21:21:03 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>791938</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-14 16:03:25 -0800</bug_when>
    <thetext>In order to implement bug 104829, I need to steal a bit on RenderObject as the class is completely packed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791958</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-14 16:36:27 -0800</bug_when>
    <thetext>Get rid of the &apos;being dragged&apos; bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791959</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-14 16:37:36 -0800</bug_when>
    <thetext>We we really want to waste a bit for this? I think a bit would be put to more use for something like bug 102617. Seems like it would be better to track things that need pre-layout via some side-band mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791962</commentid>
    <comment_count>3</comment_count>
      <attachid>179555</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-14 16:43:41 -0800</bug_when>
    <thetext>Created attachment 179555
Proposed stealing: Pack the positioned bits more efficiently to save one bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791973</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-14 16:54:30 -0800</bug_when>
    <thetext>Simon, I didn&apos;t see your comments and already have made some efforts around free&apos;ing one bit (that doesn&apos;t mean we *have* to use it for bug 104829).

&gt; We we really want to waste a bit for this? I think a bit would be put to more use for something like bug 102617. Seems like it would be better to track things that need pre-layout via some side-band mechanism.

Not sure about the out-of-band mechanism, we are going with a tree traversal so that means we will have to do some hash lookup for each renderer which could end up being expensive.

&gt; Get rid of the &apos;being dragged&apos; bit.

AFAICT the &apos;being dragged bit&apos; applies to a subtree so I am not 100% sure it can be removed easily. Another candidate was the reflection bit but we would need some data (it feels rare). I went for a free bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792006</commentid>
    <comment_count>5</comment_count>
      <attachid>179555</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-14 18:02:34 -0800</bug_when>
    <thetext>Comment on attachment 179555
Proposed stealing: Pack the positioned bits more efficiently to save one bit.

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

&gt; Source/WebCore/rendering/RenderObject.h:1122
&gt; +        void setPositionedState(int positionState) { m_positionedState = static_cast&lt;PositionedState&gt;(positionState &amp; 0x3); }

This deserves a comment that we are doing this to save a bit by mapping AbsolutePosition and FixedPosition to the same state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792131</commentid>
    <comment_count>6</comment_count>
      <attachid>179555</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-15 09:03:31 -0800</bug_when>
    <thetext>Comment on attachment 179555
Proposed stealing: Pack the positioned bits more efficiently to save one bit.

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

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:102
&gt; +    StaticPosition = 0,
&gt; +    RelativePosition = 1,
&gt; +    AbsolutePosition = 2,
&gt; +    /* Required to pack our bits efficiently in RenderObject. */
&gt; +    FixedPosition = 6,
&gt; +    StickyPosition = 3

This ordering is confusing. Why not put StickyPosition in order? It would be clearer why you&apos;re using 6 for FixedPosition if you declared this with bits:

const unsigned InFlowPositionBit = 0
const unsigned OutOfFlowPositionBit = 1

FixedPosition = 1 &lt;&lt; 2 | 1 &lt;&lt;  OutOfFlowPositionBit
or something.
We could also add isInFlowPositioned() const { return foo &amp; (1 &lt;&lt; InFlowPositionBit) } at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793034</commentid>
    <comment_count>7</comment_count>
      <attachid>179555</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-17 14:24:33 -0800</bug_when>
    <thetext>Comment on attachment 179555
Proposed stealing: Pack the positioned bits more efficiently to save one bit.

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

&gt;&gt; Source/WebCore/rendering/RenderObject.h:1122
&gt;&gt; +        void setPositionedState(int positionState) { m_positionedState = static_cast&lt;PositionedState&gt;(positionState &amp; 0x3); }
&gt; 
&gt; This deserves a comment that we are doing this to save a bit by mapping AbsolutePosition and FixedPosition to the same state.

Sounds good.

&gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:102
&gt;&gt; +    StickyPosition = 3
&gt; 
&gt; This ordering is confusing. Why not put StickyPosition in order? It would be clearer why you&apos;re using 6 for FixedPosition if you declared this with bits:
&gt; 
&gt; const unsigned InFlowPositionBit = 0
&gt; const unsigned OutOfFlowPositionBit = 1
&gt; 
&gt; FixedPosition = 1 &lt;&lt; 2 | 1 &lt;&lt;  OutOfFlowPositionBit
&gt; or something.
&gt; We could also add isInFlowPositioned() const { return foo &amp; (1 &lt;&lt; InFlowPositionBit) } at some point.

First, OK for the ordering.

It would be possible to do what you propose but there is a big downside. However screwy this code looks like, it makes it very efficient to convert from EPosition to PositionedState and what makes this possible is that AbsolutePosition and FixedPosition have the same lower bits but differ on the high bit, which we mask out.

With your scheme, I can&apos;t think of a way that wouldn&apos;t include a branch (there may be a way with some pretty crazy bit arithmetic).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793058</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-17 14:55:19 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:102
&gt; &gt;&gt; +    StickyPosition = 3
&gt; &gt; 
&gt; &gt; This ordering is confusing. Why not put StickyPosition in order? It would be clearer why you&apos;re using 6 for FixedPosition if you declared this with bits:
&gt; &gt; 
&gt; &gt; const unsigned InFlowPositionBit = 0
&gt; &gt; const unsigned OutOfFlowPositionBit = 1
&gt; &gt; 
&gt; &gt; FixedPosition = 1 &lt;&lt; 2 | 1 &lt;&lt;  OutOfFlowPositionBit
&gt; &gt; or something.
&gt; &gt; We could also add isInFlowPositioned() const { return foo &amp; (1 &lt;&lt; InFlowPositionBit) } at some point.
&gt; 
&gt; First, OK for the ordering.
&gt; 
&gt; It would be possible to do what you propose but there is a big downside. However screwy this code looks like, it makes it very efficient to convert from EPosition to PositionedState and what makes this possible is that AbsolutePosition and FixedPosition have the same lower bits but differ on the high bit, which we mask out.
&gt; 
&gt; With your scheme, I can&apos;t think of a way that wouldn&apos;t include a branch (there may be a way with some pretty crazy bit arithmetic).

 My scheme has the same bit layout as your scheme, unless I was misunderstanding. I was just asking for your scheme&apos;s bit layout to be more explicit in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793077</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-17 15:22:43 -0800</bug_when>
    <thetext>&gt; &gt; With your scheme, I can&apos;t think of a way that wouldn&apos;t include a branch (there may be a way with some pretty crazy bit arithmetic).
&gt; 
&gt;  My scheme has the same bit layout as your scheme, unless I was misunderstanding. I was just asking for your scheme&apos;s bit layout to be more explicit in the code.

Now you got me confused, not about the goal but the proposal in comment #6: 

const unsigned OutOfFlowPositionBit = 1

FixedPosition = 1 &lt;&lt; 2 | 1 &lt;&lt;  OutOfFlowPositionBit

As defined the bit is set on both AbsolutePosition and FixedPosition but also on StickyPosition (= 3), which makes the name confusing. If you change StickPosition value to hold having an OutOfFlowPositionBit is where it adds more conversion complexity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793098</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-17 15:46:10 -0800</bug_when>
    <thetext>I got my bits wrong, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793179</commentid>
    <comment_count>11</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-17 16:57:49 -0800</bug_when>
    <thetext>Thanks Simon, I wanted to make sure I wasn&apos;t missing something obvious. Re-titling the bug as we will use an out-of-band mechanism for bug 104829 and see how this goes. We can always change our mind later if we find some performance bottleneck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793733</commentid>
    <comment_count>12</comment_count>
      <attachid>179962</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-18 09:38:42 -0800</bug_when>
    <thetext>Created attachment 179962
Updated fix: added the comment ojan&apos;s requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794145</commentid>
    <comment_count>13</comment_count>
      <attachid>179962</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-18 16:19:25 -0800</bug_when>
    <thetext>Comment on attachment 179962
Updated fix: added the comment ojan&apos;s requested.

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

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:101
&gt; +    /* This value is required to pack our bits efficiently in RenderObject. */

This C style comment slipped in, I will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794146</commentid>
    <comment_count>14</comment_count>
      <attachid>180051</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-18 16:19:49 -0800</bug_when>
    <thetext>Created attachment 180051
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794326</commentid>
    <comment_count>15</comment_count>
      <attachid>180051</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 21:20:59 -0800</bug_when>
    <thetext>Comment on attachment 180051
Patch for landing

Clearing flags on attachment: 180051

Committed r138113: &lt;http://trac.webkit.org/changeset/138113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794327</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 21:21:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179555</attachid>
            <date>2012-12-14 16:43:41 -0800</date>
            <delta_ts>2012-12-18 09:38:40 -0800</delta_ts>
            <desc>Proposed stealing: Pack the positioned bits more efficiently to save one bit.</desc>
            <filename>bug-105065-20121214164100.patch</filename>
            <type>text/plain</type>
            <size>13334</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRhYTNiMTk1OTlhNDE0
MDU3OTE0MmM4ZGM2ZDE1Y2RmNjY0NTgzMi4uMDE5MTkxZjEwNmFhY2ViYmU4NzA1OGMyNDM5YTAz
NjY1YTI4Y2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEyLTE0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEZyZWUgb25l
IGJpdCBpbiBSZW5kZXJPYmplY3QgZm9yIHByZS1sYXlvdXQgdGFzaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MDY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgdXNlcyB0aGUgbXV0
dWFsIGV4Y2x1c2l2aXR5IGJldHdlZW4gdGhlIGRpZmZlcmVudCBwb3NpdGlvbiBiaXRzIHRvIHBh
Y2sKKyAgICAgICAgdGhlIGluZm9ybWF0aW9uIG1vcmUgZWZmaWNpZW50bHkuIEJlY2F1c2UgeW91
IGNhbiBiZSBvbmx5IGluIG9uZSBwb3NpdGlvbiBhdCBhbnkgcG9pbnQKKyAgICAgICAgaW4gdGlt
ZSwgeW91IG9ubHkgbmVlZCB0byBzdG9yZSA0IHN0YXRlcyBpbiBSZW5kZXJPYmplY3QgKGllIDIg
Yml0cyBvZiBpbmZvcm1hdGlvbikgYnV0CisgICAgICAgIHdlIHdlcmUgdXNpbmcgMyBiaXRzIHRv
IHN0b3JlIHRoaXMgaW5mb3JtYXRpb24sIHRodXMgbG9zaW5nIG9uZSBiaXQgdGhhdCBJIGFtIHJl
Y2xhaW1pbmcuCisKKyAgICAgICAgVGhlIGNoYW5nZSBjb3ZlcnMgdGhlIDMgYml0cyBpbnRvIGEg
c2luZ2xlIFBvc2l0aW9uU3RhdGUuIEluIG9yZGVyIHRvIGF2b2lkIGFueSBleHRyYSBicmFuY2gK
KyAgICAgICAgb24gdGhlIGNvbW1vbiBjb2RlIHBhdGgsIHRoZSBsb2dpYyB3YXMgbW9kaWZpZWQg
dG8gYmUgYWJsZSB0byBjb252ZXJ0IGEgRVBvc2l0aW9uIHRvIGEgUG9zaXRpb25TdGF0ZQorICAg
ICAgICB1c2luZyBvbmx5IGEgYml0IG1hc2suIFRoaXMgYWxzbyBtZWFucyB0aGF0IHdlIG5vdyBz
ZXRzIHVwIGFuZCBjbGVhcnMgYWxsIHRoZSBiaXRzIGF0IG9uY2UgaW5zdGVhZAorICAgICAgICBv
ZiBzZXZlcmFsIGNhbGxzLCB3aGljaCBtYXRjaGVzIG1vcmUgY2xvc2VseSB3aGF0IGhhcHBlbnMg
YXQgc3R5bGUgY2hhbmdlLgorCisgICAgICAgIENoYW5nZSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OnVwZGF0ZUZyb21TdHlsZSk6CisgICAgICAgIFJlbW92ZWQgYSBjYWxs
LCBzdXBlcnNlZWQgYnkgdGhlIG9uZSBpbiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6dXBkYXRlRnJv
bVN0eWxlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojp1cGRhdGVGcm9tU3R5bGUp
OgorICAgICAgICBDaGFuZ2VkIHRvIHNldCB0aGUgcG9zaXRpb25lZCBiaXRzIGluIG9ubHkgb25l
IGNhbGwgdG8gc2V0UG9zaXRpb25lZFN0YXRlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0eWxlV2lsbENo
YW5nZSk6CisgICAgICAgIENoYW5nZWQgdG8gY2xlYXIgYWxsIHBvc2l0aW9uZWQgYml0cyBhdCBv
bmNlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFyUGFydDo6c3R5bGVEaWRDaGFuZ2UpOgorICAg
ICAgICBEaXR0bywgd2hpY2ggd2FzIHByb2JhYmx5IHRoZSBpbnRlbnQgYW55d2F5LgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6UmVuZGVyVmlldyk6CisgICAgICAgIENoYW5nZWQgdG8gZXhwbGljaXRseSBiZSBBYnNv
bHV0ZWx5UG9zaXRpb25lZCwgbm90IHRoYXQgaXQgcmVhbGx5IG1hdHRlcnMgYXMgd2Ugb25seSBz
dG9yZQorICAgICAgICB0aGUgb3V0LW9mLWZsb3cgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OmlzT3V0T2ZGbG93UG9zaXRpb25lZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OmlzSW5GbG93UG9zaXRpb25lZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omlz
UmVsUG9zaXRpb25lZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU3RpY2t5
UG9zaXRpb25lZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUG9zaXRpb25l
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNsZWFyUG9zaXRpb25lZFN0YXRl
KToKKyAgICAgICAgVXBkYXRlZCBhZnRlciB0aGUgcmVuYW1pbmcgYmVsb3cuCisKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0UG9zaXRpb25TdGF0ZSk6CisgICAgICAgIERpdHRv
LCBidXQgYWRkZWQgYW4gQVNTRVJUIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXQtb2YtZmxvdyBiaXQg
aXMgb25seSBzZXQgb24gYm94ZXMsIHRvIG1hdGNoCisgICAgICAgIGV4aXN0aW5nIGNvZGUuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAg
ICAgQ2hhbmdlZCB0aGUgdmFsdWVzIHNvIHRoYXQgdGhlIGNvbnZlcnNpb24gdG8gUG9zaXRpb25T
dGF0ZSBpcyBhIHNpbXBsZSBiaXQgbWFzaywgZS5nCisgICAgICAgIEZpeGVkUG9zaXRpb24gJiAw
eDMgPT0gQWJzb2x1dGVQb3NpdGlvbiBhcyB3ZSBvbmx5IHN0b3JlIHRoZSBvdXQtb2YtZmxvdyBw
b3NpdGlvbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpS
ZW5kZXJPYmplY3RCaXRmaWVsZHM6OlJlbmRlck9iamVjdEJpdGZpZWxkcyk6CisgICAgICAgIElu
dHJvZHVjZWQgUG9zaXRpb25TdGF0ZSB0byBob2xkIHRoZSBkaWZmZXJlbnQgYml0cy4KKworICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OnNldFBv
c2l0aW9uZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9i
amVjdEJpdGZpZWxkczo6Y2xlYXJQb3NpdGlvbmVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxk
czo6aXNSZWxQb3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVu
ZGVyT2JqZWN0Qml0ZmllbGRzOjppc1N0aWNreVBvc2l0aW9uZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OmlzUG9zaXRpb25lZCk6Cisg
ICAgICAgIFJlLWltcGxlbWVudGVkIHRoZXNlIGdldHRlcnMgLyBzZXR0ZXJzIGFuZCByZW5hbWVk
IHRoZW0gdG8gbWF0Y2ggb3VyIHN0eWxlIHdoaWxlIGF0IGl0LgorCisKIDIwMTItMTItMTMgIFlv
bmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBEb2N1bWVu
dCB3aWxsIG5ldmVyIGJlIHJlbGVhc2VkIHdoZW4gYW4gSW1hZ2UgaXMgY3JlYXRlZCBpbnNpZGUg
dW5sb2FkIGV2ZW50IGxpc3RlbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDI1MmQzMDkxMGZmZDdjNzc5YThhOGI0NTJjOTUzZDNjNzkwYzFkMTcuLjE4MjcxZmNh
NDM3ZmY1OGJjMzA3ZDZiYzYzYzgwZWMxY2M2ODQ2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCkBAIC0yOTUsNyArMjk1LDYgQEAgdm9pZCBSZW5kZXJCb3g6OnVwZGF0
ZUZyb21TdHlsZSgpCiAgICAgaWYgKGlzUm9vdE9iamVjdCB8fCBpc1ZpZXdPYmplY3QpCiAgICAg
ICAgIHNldEhhc0JveERlY29yYXRpb25zKHRydWUpOwogCi0gICAgc2V0UG9zaXRpb25lZChzdHls
ZVRvVXNlLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKTsKICAgICBzZXRGbG9hdGluZyghaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGVUb1VzZS0+aXNGbG9hdGluZygpKTsKIAogICAgIC8v
IFdlIGFsc28gaGFuZGxlIDxib2R5PiBhbmQgPGh0bWw+LCB3aG9zZSBvdmVyZmxvdyBhcHBsaWVz
IHRvIHRoZSB2aWV3cG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDFmOGI0ZWI1YmY4ZjZhYzY2OGEzZTRlYjEyOTg3MmZk
OWI5ZTRlN2MuLjVlYWJlN2RhZDAwMmFkNzhkMDQyOGQwNGFjNDc1Y2FlMGQ4OTAyNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApA
QCAtMzU3LDggKzM1Nyw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnVwZGF0ZUZyb21T
dHlsZSgpCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBzdHlsZSgpOwogICAgIHNldEhh
c0JveERlY29yYXRpb25zKGhhc0JhY2tncm91bmQoKSB8fCBzdHlsZVRvVXNlLT5oYXNCb3JkZXIo
KSB8fCBzdHlsZVRvVXNlLT5oYXNBcHBlYXJhbmNlKCkgfHwgc3R5bGVUb1VzZS0+Ym94U2hhZG93
KCkpOwogICAgIHNldElubGluZShzdHlsZVRvVXNlLT5pc0Rpc3BsYXlJbmxpbmVUeXBlKCkpOwot
ICAgIHNldFJlbFBvc2l0aW9uZWQoc3R5bGVUb1VzZS0+cG9zaXRpb24oKSA9PSBSZWxhdGl2ZVBv
c2l0aW9uKTsKLSAgICBzZXRTdGlja3lQb3NpdGlvbmVkKHN0eWxlVG9Vc2UtPnBvc2l0aW9uKCkg
PT0gU3RpY2t5UG9zaXRpb24pOworICAgIHNldFBvc2l0aW9uU3RhdGUoc3R5bGVUb1VzZS0+cG9z
aXRpb24oKSk7CiAgICAgc2V0SG9yaXpvbnRhbFdyaXRpbmdNb2RlKHN0eWxlVG9Vc2UtPmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDcxOGNkYjNjYjk0MGE0NWNmNDQyYTQ2NThmY2JiNmNkYjk2YzEw
MzAuLmYwMWQ0NjhkOTkzOGNjODMwNGE5NzY4ZTljOWFhY2E1MGJiMGFiYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xODkwLDkgKzE4OTAsNyBAQCB2
b2lkIFJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSogbmV3UwogICAgICAgICAvLyByZXNldCBzdHlsZSBmbGFncwogICAg
ICAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQgfHwgZGlmZiA9PSBTdHlsZURp
ZmZlcmVuY2VMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KSB7CiAgICAgICAgICAgICBzZXRG
bG9hdGluZyhmYWxzZSk7Ci0gICAgICAgICAgICBzZXRQb3NpdGlvbmVkKGZhbHNlKTsKLSAgICAg
ICAgICAgIHNldFJlbFBvc2l0aW9uZWQoZmFsc2UpOwotICAgICAgICAgICAgc2V0U3RpY2t5UG9z
aXRpb25lZChmYWxzZSk7CisgICAgICAgICAgICBjbGVhclBvc2l0aW9uZWRTdGF0ZSgpOwogICAg
ICAgICB9CiAgICAgICAgIHNldEhvcml6b250YWxXcml0aW5nTW9kZSh0cnVlKTsKICAgICAgICAg
c2V0UGFpbnRCYWNrZ3JvdW5kKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAppbmRleCBhZDQ2MjYwMTc0ZjRjNGVkODg2MTkwYTkxY2FkODhiNzk2M2IyMzZlLi43
YmE0NzMyYmQ2ZmVhODcyNWY5MDU3ZjA3YjIwODFhNjY4OWJhNjY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01NDEsMTEgKzU0MSwxMSBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzRmxvYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5mbG9hdGlu
ZygpOyB9CiAKLSAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0ZmllbGRzLnBvc2l0aW9uZWQoKTsgfSAvLyBhYnNvbHV0ZSBvciBmaXhlZCBwb3NpdGlv
bmluZwotICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRm
aWVsZHMucmVsUG9zaXRpb25lZCgpIHx8IG1fYml0ZmllbGRzLnN0aWNreVBvc2l0aW9uZWQoKTsg
fSAvLyByZWxhdGl2ZSBvciBzdGlja3kgcG9zaXRpb25pbmcKLSAgICBib29sIGlzUmVsUG9zaXRp
b25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLnJlbFBvc2l0aW9uZWQoKTsgfSAvLyBy
ZWxhdGl2ZSBwb3NpdGlvbmluZwotICAgIGJvb2wgaXNTdGlja3lQb3NpdGlvbmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRmaWVsZHMuc3RpY2t5UG9zaXRpb25lZCgpOyB9Ci0gICAgYm9vbCBpc1Bv
c2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5wb3NpdGlvbmVkKCkgfHwgbV9i
aXRmaWVsZHMucmVsUG9zaXRpb25lZCgpIHx8IG1fYml0ZmllbGRzLnN0aWNreVBvc2l0aW9uZWQo
KTsgfQorICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9i
aXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0gLy8gYWJzb2x1dGUgb3IgZml4ZWQg
cG9zaXRpb25pbmcKKyAgICBib29sIGlzSW5GbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpIHx8IG1fYml0ZmllbGRzLmlzU3RpY2t5UG9z
aXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlvbmluZworICAgIGJvb2wg
aXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlv
bmVkKCk7IH0gLy8gcmVsYXRpdmUgcG9zaXRpb25pbmcKKyAgICBib29sIGlzU3RpY2t5UG9zaXRp
b25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9
CisgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1Bv
c2l0aW9uZWQoKTsgfQogCiAgICAgYm9vbCBpc1RleHQoKSBjb25zdCAgeyByZXR1cm4gbV9iaXRm
aWVsZHMuaXNUZXh0KCk7IH0KICAgICBib29sIGlzQm94KCkgY29uc3QgeyByZXR1cm4gbV9iaXRm
aWVsZHMuaXNCb3goKTsgfQpAQCAtNjU5LDkgKzY1OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHNl
dFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSh0cnVlKTsKICAgICB9CiAKLSAgICB2b2lkIHNl
dFBvc2l0aW9uZWQoYm9vbCBiID0gdHJ1ZSkgIHsgbV9iaXRmaWVsZHMuc2V0UG9zaXRpb25lZChi
KTsgIH0KLSAgICB2b2lkIHNldFJlbFBvc2l0aW9uZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZp
ZWxkcy5zZXRSZWxQb3NpdGlvbmVkKGIpOyB9Ci0gICAgdm9pZCBzZXRTdGlja3lQb3NpdGlvbmVk
KGJvb2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0U3RpY2t5UG9zaXRpb25lZChiKTsgfQor
ICAgIHZvaWQgc2V0UG9zaXRpb25TdGF0ZShFUG9zaXRpb24gcG9zaXRpb24pCisgICAgeworICAg
ICAgICBBU1NFUlQoKHBvc2l0aW9uICE9IEFic29sdXRlUG9zaXRpb24gJiYgcG9zaXRpb24gIT0g
Rml4ZWRQb3NpdGlvbikgfHwgaXNCb3goKSk7CisgICAgICAgIG1fYml0ZmllbGRzLnNldFBvc2l0
aW9uZWRTdGF0ZShwb3NpdGlvbik7CisgICAgfQorICAgIHZvaWQgY2xlYXJQb3NpdGlvbmVkU3Rh
dGUoKSB7IG1fYml0ZmllbGRzLmNsZWFyUG9zaXRpb25lZFN0YXRlKCk7IH0KKwogICAgIHZvaWQg
c2V0RmxvYXRpbmcoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRGbG9hdGluZyhiKTsg
fQogICAgIHZvaWQgc2V0SW5saW5lKGJvb2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0SXNJ
bmxpbmUoYik7IH0KICAgICB2b2lkIHNldEhhc0JveERlY29yYXRpb25zKGJvb2wgYiA9IHRydWUp
IHsgbV9iaXRmaWVsZHMuc2V0UGFpbnRCYWNrZ3JvdW5kKGIpOyB9CkBAIC0xMDI4LDYgKzEwMzIs
MTIgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXQjI05hbWUoYm9vbCBuYW1lKSB7IG1fIyNu
YW1lID0gbmFtZTsgfVwKIAogICAgIGNsYXNzIFJlbmRlck9iamVjdEJpdGZpZWxkcyB7CisgICAg
ICAgIGVudW0gUG9zaXRpb25lZFN0YXRlIHsKKyAgICAgICAgICAgIElzU3RhdGljbHlQb3NpdGlv
bmVkID0gMCwKKyAgICAgICAgICAgIElzUmVsYXRpdmVseVBvc2l0aW9uZWQgPSAxLAorICAgICAg
ICAgICAgSXNPdXRPZkZsb3dQb3NpdGlvbmVkID0gMiwKKyAgICAgICAgICAgIElzU3RpY2t5UG9z
aXRpb25lZCA9IDMKKyAgICAgICAgfTsKICAgICBwdWJsaWM6CiAgICAgICAgIFJlbmRlck9iamVj
dEJpdGZpZWxkcyhOb2RlKiBub2RlKQogICAgICAgICAgICAgOiBtX25lZWRzTGF5b3V0KGZhbHNl
KQpAQCAtMTAzNyw5ICsxMDQ3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgbV9uZWVkc1Np
bXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KGZhbHNlKQogICAgICAgICAgICAgLCBtX3ByZWZlcnJl
ZExvZ2ljYWxXaWR0aHNEaXJ0eShmYWxzZSkKICAgICAgICAgICAgICwgbV9mbG9hdGluZyhmYWxz
ZSkKLSAgICAgICAgICAgICwgbV9wb3NpdGlvbmVkKGZhbHNlKQotICAgICAgICAgICAgLCBtX3Jl
bFBvc2l0aW9uZWQoZmFsc2UpCi0gICAgICAgICAgICAsIG1fc3RpY2t5UG9zaXRpb25lZChmYWxz
ZSkKICAgICAgICAgICAgICwgbV9wYWludEJhY2tncm91bmQoZmFsc2UpCiAgICAgICAgICAgICAs
IG1faXNBbm9ueW1vdXMobm9kZSA9PSBub2RlLT5kb2N1bWVudCgpKQogICAgICAgICAgICAgLCBt
X2lzVGV4dChmYWxzZSkKQEAgLTEwNTksNiArMTA2Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAsIG1fbWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpIAogICAgICAgICAgICAgLCBtX21hcmdpbkFm
dGVyUXVpcmsoZmFsc2UpCiAgICAgICAgICAgICAsIG1faGFzQ29sdW1ucyhmYWxzZSkKKyAgICAg
ICAgICAgICwgbV9wb3NpdGlvbmVkU3RhdGUoSXNTdGF0aWNseVBvc2l0aW9uZWQpCiAgICAgICAg
ICAgICAsIG1fc2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uTm9uZSkKICAgICAgICAgewogICAgICAg
ICB9CkBAIC0xMDcyLDkgKzEwODAsNiBAQCBwcml2YXRlOgogICAgICAgICBBRERfQk9PTEVBTl9C
SVRGSUVMRChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHksIFByZWZlcnJlZExvZ2ljYWxXaWR0
aHNEaXJ0eSk7CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGZsb2F0aW5nLCBGbG9hdGlu
Zyk7CiAKLSAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQocG9zaXRpb25lZCwgUG9zaXRpb25l
ZCk7Ci0gICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKHJlbFBvc2l0aW9uZWQsIFJlbFBvc2l0
aW9uZWQpOwotICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChzdGlja3lQb3NpdGlvbmVkLCBT
dGlja3lQb3NpdGlvbmVkKTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQocGFpbnRCYWNr
Z3JvdW5kLCBQYWludEJhY2tncm91bmQpOyAvLyBpZiB0aGUgYm94IGhhcyBzb21ldGhpbmcgdG8g
cGFpbnQgaW4gdGhlCiAgICAgICAgIC8vIGJhY2tncm91bmQgcGFpbnRpbmcgcGhhc2UgKGJhY2tn
cm91bmQsIGJvcmRlciwgZXRjKQogCkBAIC0xMTA1LDkgKzExMTAsMTggQEAgcHJpdmF0ZToKICAg
ICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaGFzQ29sdW1ucywgSGFzQ29sdW1ucyk7CiAKICAg
ICBwcml2YXRlOgorICAgICAgICB1bnNpZ25lZCBtX3Bvc2l0aW9uZWRTdGF0ZSA6IDI7IC8vIFBv
c2l0aW9uZWRTdGF0ZQogICAgICAgICB1bnNpZ25lZCBtX3NlbGVjdGlvblN0YXRlIDogMzsgLy8g
U2VsZWN0aW9uU3RhdGUKIAogICAgIHB1YmxpYzoKKyAgICAgICAgYm9vbCBpc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc091dE9mRmxv
d1Bvc2l0aW9uZWQ7IH0KKyAgICAgICAgYm9vbCBpc1JlbFBvc2l0aW9uZWQoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc1JlbGF0aXZlbHlQb3NpdGlvbmVkOyB9CisgICAg
ICAgIGJvb2wgaXNTdGlja3lQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbmVk
U3RhdGUgPT0gSXNTdGlja3lQb3NpdGlvbmVkOyB9CisgICAgICAgIGJvb2wgaXNQb3NpdGlvbmVk
KCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbmVkU3RhdGUgIT0gSXNTdGF0aWNseVBvc2l0aW9u
ZWQ7IH0KKworICAgICAgICB2b2lkIHNldFBvc2l0aW9uZWRTdGF0ZShpbnQgcG9zaXRpb25TdGF0
ZSkgeyBtX3Bvc2l0aW9uZWRTdGF0ZSA9IHN0YXRpY19jYXN0PFBvc2l0aW9uZWRTdGF0ZT4ocG9z
aXRpb25TdGF0ZSAmIDB4Myk7IH0KKyAgICAgICAgdm9pZCBjbGVhclBvc2l0aW9uZWRTdGF0ZSgp
IHsgbV9wb3NpdGlvbmVkU3RhdGUgPSBTdGF0aWNQb3NpdGlvbjsgfQorCiAgICAgICAgIEFMV0FZ
U19JTkxJTkUgU2VsZWN0aW9uU3RhdGUgc2VsZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxTZWxlY3Rpb25TdGF0ZT4obV9zZWxlY3Rpb25TdGF0ZSk7IH0KICAgICAgICAg
QUxXQVlTX0lOTElORSB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHNlbGVj
dGlvblN0YXRlKSB7IG1fc2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsgfQogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFy
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAK
aW5kZXggM2VlYjFkODlmM2M3NjdkYmM2MGVjN2I1YzJkNjQ1ZWIwMmI2NDE1MC4uOTQ5ZDNlYTQ3
YzI3OWU0YWIwNWVjNTc4NTc4NThkM2VkMjE0ZDEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgUmVuZGVyU2Nyb2xsYmFyUGFydDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlCiB7CiAgICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdl
KGRpZmYsIG9sZFN0eWxlKTsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwotICAgIHNldFBvc2l0aW9u
ZWQoZmFsc2UpOworICAgIGNsZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgc2V0RmxvYXRpbmco
ZmFsc2UpOwogICAgIHNldEhhc092ZXJmbG93Q2xpcChmYWxzZSk7CiAgICAgaWYgKG9sZFN0eWxl
ICYmIG1fc2Nyb2xsYmFyICYmIG1fcGFydCAhPSBOb1BhcnQgJiYgZGlmZiA+PSBTdHlsZURpZmZl
cmVuY2VSZXBhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4
IDQ5YWI4ZjhiY2Y5YWY1NTBjMzdkN2U1NWUyNjlkMzExZTA3MDg4ODYuLjM4YTU5ZjNiMGZhMDk3
YmU2OTk0NTI4M2E0YTI0ODJhMDllNmEwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgUmVuZGVyVmlldzo6UmVuZGVyVmlldyhOb2Rl
KiBub2RlLCBGcmFtZVZpZXcqIHZpZXcpCiAKICAgICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
RGlydHkodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAKLSAgICBzZXRQb3NpdGlvbmVkKHRydWUp
OyAvLyB0byAwLDAgOikKKyAgICBzZXRQb3NpdGlvblN0YXRlKEFic29sdXRlUG9zaXRpb24pOyAv
LyB0byAwLDAgOikKIH0KIAogUmVuZGVyVmlldzo6flJlbmRlclZpZXcoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRl
eCA0YTU1MGUyYzhkNjc0ZWVkZTAzODRiMGRjNGU2NzFjMDI2NGNlNTVmLi4xMGUyNDBkZWI5Nzhj
YjFjMDA1Y2Q5YzcyZTZmNDI5NDIzMjBjOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtOTQsNyArOTQsMTIg
QEAgZW51bSBFQm9yZGVyUHJlY2VkZW5jZSB7IEJPRkYsIEJUQUJMRSwgQkNPTEdST1VQLCBCQ09M
LCBCUk9XR1JPVVAsIEJST1csIEJDRUxMIH0KIGVudW0gT3V0bGluZUlzQXV0byB7IEFVVE9fT0ZG
ID0gMCwgQVVUT19PTiB9OwogCiBlbnVtIEVQb3NpdGlvbiB7Ci0gICAgU3RhdGljUG9zaXRpb24s
IFJlbGF0aXZlUG9zaXRpb24sIEFic29sdXRlUG9zaXRpb24sIEZpeGVkUG9zaXRpb24sIFN0aWNr
eVBvc2l0aW9uCisgICAgU3RhdGljUG9zaXRpb24gPSAwLAorICAgIFJlbGF0aXZlUG9zaXRpb24g
PSAxLAorICAgIEFic29sdXRlUG9zaXRpb24gPSAyLAorICAgIC8qIFJlcXVpcmVkIHRvIHBhY2sg
b3VyIGJpdHMgZWZmaWNpZW50bHkgaW4gUmVuZGVyT2JqZWN0LiAqLworICAgIEZpeGVkUG9zaXRp
b24gPSA2LAorICAgIFN0aWNreVBvc2l0aW9uID0gMwogfTsKIAogZW51bSBFRmxvYXQgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179962</attachid>
            <date>2012-12-18 09:38:42 -0800</date>
            <delta_ts>2012-12-18 16:19:47 -0800</delta_ts>
            <desc>Updated fix: added the comment ojan&apos;s requested.</desc>
            <filename>bug-105065-20121218093559.patch</filename>
            <type>text/plain</type>
            <size>13399</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjJkYmVjNzYxOGRk
YWI5YTEzOGNjMmQ3YmY5YzRiYmQyNWJjOC4uMDhkN2ViMjY2MGE4N2JlMjBiMzIxMTMyODNjODQx
MTQ2M2JmNzBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEyLTE3ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEZyZWUgb25l
IGJpdCBpbiBSZW5kZXJPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNTA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgY2hhbmdlIHVzZXMgdGhlIG11dHVhbCBleGNsdXNpdml0eSBiZXR3
ZWVuIHRoZSBkaWZmZXJlbnQgcG9zaXRpb24gYml0cyB0byBwYWNrCisgICAgICAgIHRoZSBpbmZv
cm1hdGlvbiBtb3JlIGVmZmljaWVudGx5LiBCZWNhdXNlIHlvdSBjYW4gYmUgb25seSBpbiBvbmUg
cG9zaXRpb24gYXQgYW55IHBvaW50CisgICAgICAgIGluIHRpbWUsIHlvdSBvbmx5IG5lZWQgdG8g
c3RvcmUgNCBzdGF0ZXMgaW4gUmVuZGVyT2JqZWN0IChpZSAyIGJpdHMgb2YgaW5mb3JtYXRpb24p
IGJ1dAorICAgICAgICB3ZSB3ZXJlIHVzaW5nIDMgYml0cyB0byBzdG9yZSB0aGlzIGluZm9ybWF0
aW9uLCB0aHVzIGxvc2luZyBvbmUgYml0IHRoYXQgSSBhbSByZWNsYWltaW5nLgorCisgICAgICAg
IFRoZSBjaGFuZ2UgY292ZXJzIHRoZSAzIGJpdHMgaW50byBhIHNpbmdsZSBQb3NpdGlvblN0YXRl
LiBJbiBvcmRlciB0byBhdm9pZCBhbnkgZXh0cmEgYnJhbmNoCisgICAgICAgIG9uIHRoZSBjb21t
b24gY29kZSBwYXRoLCB0aGUgbG9naWMgd2FzIG1vZGlmaWVkIHRvIGJlIGFibGUgdG8gY29udmVy
dCBhIEVQb3NpdGlvbiB0byBhIFBvc2l0aW9uU3RhdGUKKyAgICAgICAgdXNpbmcgb25seSBhIGJp
dCBtYXNrLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB3ZSBub3cgc2V0cyB1cCBhbmQgY2xlYXJzIGFs
bCB0aGUgYml0cyBhdCBvbmNlIGluc3RlYWQKKyAgICAgICAgb2Ygc2V2ZXJhbCBjYWxscywgd2hp
Y2ggbWF0Y2hlcyBtb3JlIGNsb3NlbHkgd2hhdCBoYXBwZW5zIGF0IHN0eWxlIGNoYW5nZS4KKwor
ICAgICAgICBDaGFuZ2UgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRh
dGVGcm9tU3R5bGUpOgorICAgICAgICBSZW1vdmVkIGEgY2FsbCwgc3VwZXJzZWVkIGJ5IHRoZSBv
bmUgaW4gUmVuZGVyQm94TW9kZWxPYmplY3Q6OnVwZGF0ZUZyb21TdHlsZS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6dXBkYXRlRnJvbVN0eWxlKToKKyAgICAgICAgQ2hhbmdlZCB0
byBzZXQgdGhlIHBvc2l0aW9uZWQgYml0cyBpbiBvbmx5IG9uZSBjYWxsIHRvIHNldFBvc2l0aW9u
ZWRTdGF0ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICBDaGFu
Z2VkIHRvIGNsZWFyIGFsbCBwb3NpdGlvbmVkIGJpdHMgYXQgb25jZS4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNjcm9sbGJhclBhcnQ6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgRGl0dG8sIHdoaWNoIHdh
cyBwcm9iYWJseSB0aGUgaW50ZW50IGFueXdheS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlbmRlclZpZXcpOgor
ICAgICAgICBDaGFuZ2VkIHRvIGV4cGxpY2l0bHkgYmUgQWJzb2x1dGVseVBvc2l0aW9uZWQsIG5v
dCB0aGF0IGl0IHJlYWxseSBtYXR0ZXJzIGFzIHdlIG9ubHkgc3RvcmUKKyAgICAgICAgdGhlIG91
dC1vZi1mbG93IGluZm9ybWF0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc091dE9mRmxvd1Bvc2l0aW9u
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0luRmxvd1Bvc2l0aW9uZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1JlbFBvc2l0aW9uZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1N0aWNreVBvc2l0aW9uZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1Bvc2l0aW9uZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjpjbGVhclBvc2l0aW9uZWRTdGF0ZSk6CisgICAgICAgIFVwZGF0ZWQg
YWZ0ZXIgdGhlIHJlbmFtaW5nIGJlbG93LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnNldFBvc2l0aW9uU3RhdGUpOgorICAgICAgICBEaXR0bywgYnV0IGFkZGVkIGFuIEFTU0VS
VCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0LW9mLWZsb3cgYml0IGlzIG9ubHkgc2V0IG9uIGJveGVz
LCB0byBtYXRjaAorICAgICAgICBleGlzdGluZyBjb2RlLgorCisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIENoYW5nZWQgdGhlIHZhbHVl
cyBzbyB0aGF0IHRoZSBjb252ZXJzaW9uIHRvIFBvc2l0aW9uU3RhdGUgaXMgYSBzaW1wbGUgYml0
IG1hc2ssIGUuZworICAgICAgICBGaXhlZFBvc2l0aW9uICYgMHgzID09IEFic29sdXRlUG9zaXRp
b24gYXMgd2Ugb25seSBzdG9yZSB0aGUgb3V0LW9mLWZsb3cgcG9zaXRpb24gaW5mb3JtYXRpb24u
CisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRz
OjpSZW5kZXJPYmplY3RCaXRmaWVsZHMpOgorICAgICAgICBJbnRyb2R1Y2VkIFBvc2l0aW9uU3Rh
dGUgdG8gaG9sZCB0aGUgZGlmZmVyZW50IGJpdHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjpzZXRQb3NpdGlvbmVkU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OmNsZWFy
UG9zaXRpb25lZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVuZGVy
T2JqZWN0Qml0ZmllbGRzOjppc091dE9mRmxvd1Bvc2l0aW9uZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OmlzUmVsUG9zaXRpb25lZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6
aXNTdGlja3lQb3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVu
ZGVyT2JqZWN0Qml0ZmllbGRzOjppc1Bvc2l0aW9uZWQpOgorICAgICAgICBSZS1pbXBsZW1lbnRl
ZCB0aGVzZSBnZXR0ZXJzIC8gc2V0dGVycyBhbmQgcmVuYW1lZCB0aGVtIHRvIG1hdGNoIG91ciBz
dHlsZSB3aGlsZSBhdCBpdC4KKworCiAyMDEyLTEyLTE3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFw
cGxlLmNvbT4KIAogICAgICAgICBUcmFjayBtZW51IHNob3VsZCBiZSBzb3J0ZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNGI5NmVjZDY0ZDY3MWJhNzgwOTU0ZjAx
ZjY4ODIxZDFlNGI3NWE0OS4uNWUwZjBmNzlmZTRlNTkyMGQwZDcxZDg5NzYzOWRiYjYxMzkwNTM2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTMxOSw3ICszMTks
NiBAQCB2b2lkIFJlbmRlckJveDo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICBpZiAoaXNSb290T2Jq
ZWN0IHx8IGlzVmlld09iamVjdCkKICAgICAgICAgc2V0SGFzQm94RGVjb3JhdGlvbnModHJ1ZSk7
CiAKLSAgICBzZXRQb3NpdGlvbmVkKHN0eWxlVG9Vc2UtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkp
OwogICAgIHNldEZsb2F0aW5nKCFpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZVRvVXNl
LT5pc0Zsb2F0aW5nKCkpOwogCiAgICAgLy8gV2UgYWxzbyBoYW5kbGUgPGJvZHk+IGFuZCA8aHRt
bD4sIHdob3NlIG92ZXJmbG93IGFwcGxpZXMgdG8gdGhlIHZpZXdwb3J0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMGI3ZDc3
MTkxMzJiYWUwYzAxZmMxNmIxYmY3NjQ2Mzk5ZmQ3OWM2ZS4uOWM3MTY4N2UzMDBlMDhhMjk2MGJk
MWY4MjI5YjA4MzI5OTNlMzlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0zNTcsOCArMzU3LDcgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICBSZW5kZXJTdHlsZSogc3R5bGVU
b1VzZSA9IHN0eWxlKCk7CiAgICAgc2V0SGFzQm94RGVjb3JhdGlvbnMoaGFzQmFja2dyb3VuZCgp
IHx8IHN0eWxlVG9Vc2UtPmhhc0JvcmRlcigpIHx8IHN0eWxlVG9Vc2UtPmhhc0FwcGVhcmFuY2Uo
KSB8fCBzdHlsZVRvVXNlLT5ib3hTaGFkb3coKSk7CiAgICAgc2V0SW5saW5lKHN0eWxlVG9Vc2Ut
PmlzRGlzcGxheUlubGluZVR5cGUoKSk7Ci0gICAgc2V0UmVsUG9zaXRpb25lZChzdHlsZVRvVXNl
LT5wb3NpdGlvbigpID09IFJlbGF0aXZlUG9zaXRpb24pOwotICAgIHNldFN0aWNreVBvc2l0aW9u
ZWQoc3R5bGVUb1VzZS0+cG9zaXRpb24oKSA9PSBTdGlja3lQb3NpdGlvbik7CisgICAgc2V0UG9z
aXRpb25TdGF0ZShzdHlsZVRvVXNlLT5wb3NpdGlvbigpKTsKICAgICBzZXRIb3Jpem9udGFsV3Jp
dGluZ01vZGUoc3R5bGVUb1VzZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggZGViNmQ5NjBjODg2
MDEyN2I5YTdlZDU4OWFiNmQwNDNmZDYwNTg3NC4uMzA2NmU1MzRhOTMzYTFmMmMwMjYxN2I4M2Qx
YjFhODVlN2VlNTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKQEAgLTE4OTEsOSArMTg5MSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTCiAgICAgICAg
IC8vIHJlc2V0IHN0eWxlIGZsYWdzCiAgICAgICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZUxheW91dCB8fCBkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dFBvc2l0aW9uZWRNb3ZlbWVu
dE9ubHkpIHsKICAgICAgICAgICAgIHNldEZsb2F0aW5nKGZhbHNlKTsKLSAgICAgICAgICAgIHNl
dFBvc2l0aW9uZWQoZmFsc2UpOwotICAgICAgICAgICAgc2V0UmVsUG9zaXRpb25lZChmYWxzZSk7
Ci0gICAgICAgICAgICBzZXRTdGlja3lQb3NpdGlvbmVkKGZhbHNlKTsKKyAgICAgICAgICAgIGNs
ZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgICAgIH0KICAgICAgICAgc2V0SG9yaXpvbnRhbFdy
aXRpbmdNb2RlKHRydWUpOwogICAgICAgICBzZXRQYWludEJhY2tncm91bmQoZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGQzODA5MzBiN2NmMGI2ZDNm
NWJlYWEyN2IyOWEzYzY0ZWQ1ZWU2OTcuLmYyMWM2NjE0OWQ0MTU3NGM0NDMzNGIxM2U5OGE4NTcy
NGY1NmVkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTU0
MCwxMSArNTQwLDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNGbG9hdGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fYml0ZmllbGRzLmZsb2F0aW5nKCk7IH0KIAotICAgIGJvb2wgaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMucG9zaXRpb25lZCgpOyB9IC8v
IGFic29sdXRlIG9yIGZpeGVkIHBvc2l0aW9uaW5nCi0gICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9u
ZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5yZWxQb3NpdGlvbmVkKCkgfHwgbV9iaXRm
aWVsZHMuc3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlv
bmluZwotICAgIGJvb2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVs
ZHMucmVsUG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIHBvc2l0aW9uaW5nCi0gICAgYm9vbCBp
c1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5zdGlja3lQb3Np
dGlvbmVkKCk7IH0KLSAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0
ZmllbGRzLnBvc2l0aW9uZWQoKSB8fCBtX2JpdGZpZWxkcy5yZWxQb3NpdGlvbmVkKCkgfHwgbV9i
aXRmaWVsZHMuc3RpY2t5UG9zaXRpb25lZCgpOyB9CisgICAgYm9vbCBpc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KTsgfSAvLyBhYnNvbHV0ZSBvciBmaXhlZCBwb3NpdGlvbmluZworICAgIGJvb2wgaXNJbkZsb3dQ
b3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCkg
fHwgbV9iaXRmaWVsZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgb3Igc3Rp
Y2t5IHBvc2l0aW9uaW5nCisgICAgYm9vbCBpc1JlbFBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVy
biBtX2JpdGZpZWxkcy5pc1JlbFBvc2l0aW9uZWQoKTsgfSAvLyByZWxhdGl2ZSBwb3NpdGlvbmlu
ZworICAgIGJvb2wgaXNTdGlja3lQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVs
ZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0KKyAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0
IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUG9zaXRpb25lZCgpOyB9CiAKICAgICBib29sIGlzVGV4
dCgpIGNvbnN0ICB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1RleHQoKTsgfQogICAgIGJvb2wgaXNC
b3goKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc0JveCgpOyB9CkBAIC02NTgsOSArNjU4
LDEzIEBAIHB1YmxpYzoKICAgICAgICAgc2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KHRy
dWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0UG9zaXRpb25lZChib29sIGIgPSB0cnVlKSAgeyBt
X2JpdGZpZWxkcy5zZXRQb3NpdGlvbmVkKGIpOyAgfQotICAgIHZvaWQgc2V0UmVsUG9zaXRpb25l
ZChib29sIGIgPSB0cnVlKSB7IG1fYml0ZmllbGRzLnNldFJlbFBvc2l0aW9uZWQoYik7IH0KLSAg
ICB2b2lkIHNldFN0aWNreVBvc2l0aW9uZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5z
ZXRTdGlja3lQb3NpdGlvbmVkKGIpOyB9CisgICAgdm9pZCBzZXRQb3NpdGlvblN0YXRlKEVQb3Np
dGlvbiBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCgocG9zaXRpb24gIT0gQWJzb2x1
dGVQb3NpdGlvbiAmJiBwb3NpdGlvbiAhPSBGaXhlZFBvc2l0aW9uKSB8fCBpc0JveCgpKTsKKyAg
ICAgICAgbV9iaXRmaWVsZHMuc2V0UG9zaXRpb25lZFN0YXRlKHBvc2l0aW9uKTsKKyAgICB9Cisg
ICAgdm9pZCBjbGVhclBvc2l0aW9uZWRTdGF0ZSgpIHsgbV9iaXRmaWVsZHMuY2xlYXJQb3NpdGlv
bmVkU3RhdGUoKTsgfQorCiAgICAgdm9pZCBzZXRGbG9hdGluZyhib29sIGIgPSB0cnVlKSB7IG1f
Yml0ZmllbGRzLnNldEZsb2F0aW5nKGIpOyB9CiAgICAgdm9pZCBzZXRJbmxpbmUoYm9vbCBiID0g
dHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRJc0lubGluZShiKTsgfQogICAgIHZvaWQgc2V0SGFzQm94
RGVjb3JhdGlvbnMoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRQYWludEJhY2tncm91
bmQoYik7IH0KQEAgLTEwMjcsNiArMTAzMSwxMiBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNl
dCMjTmFtZShib29sIG5hbWUpIHsgbV8jI25hbWUgPSBuYW1lOyB9XAogCiAgICAgY2xhc3MgUmVu
ZGVyT2JqZWN0Qml0ZmllbGRzIHsKKyAgICAgICAgZW51bSBQb3NpdGlvbmVkU3RhdGUgeworICAg
ICAgICAgICAgSXNTdGF0aWNseVBvc2l0aW9uZWQgPSAwLAorICAgICAgICAgICAgSXNSZWxhdGl2
ZWx5UG9zaXRpb25lZCA9IDEsCisgICAgICAgICAgICBJc091dE9mRmxvd1Bvc2l0aW9uZWQgPSAy
LAorICAgICAgICAgICAgSXNTdGlja3lQb3NpdGlvbmVkID0gMworICAgICAgICB9OwogICAgIHB1
YmxpYzoKICAgICAgICAgUmVuZGVyT2JqZWN0Qml0ZmllbGRzKE5vZGUqIG5vZGUpCiAgICAgICAg
ICAgICA6IG1fbmVlZHNMYXlvdXQoZmFsc2UpCkBAIC0xMDM2LDkgKzEwNDYsNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgLCBtX25lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoZmFsc2Up
CiAgICAgICAgICAgICAsIG1fcHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KGZhbHNlKQogICAg
ICAgICAgICAgLCBtX2Zsb2F0aW5nKGZhbHNlKQotICAgICAgICAgICAgLCBtX3Bvc2l0aW9uZWQo
ZmFsc2UpCi0gICAgICAgICAgICAsIG1fcmVsUG9zaXRpb25lZChmYWxzZSkKLSAgICAgICAgICAg
ICwgbV9zdGlja3lQb3NpdGlvbmVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3BhaW50QmFja2dy
b3VuZChmYWxzZSkKICAgICAgICAgICAgICwgbV9pc0Fub255bW91cyhub2RlID09IG5vZGUtPmRv
Y3VtZW50KCkpCiAgICAgICAgICAgICAsIG1faXNUZXh0KGZhbHNlKQpAQCAtMTA1OCw2ICsxMDY1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgbV9tYXJnaW5CZWZvcmVRdWlyayhmYWxzZSkg
CiAgICAgICAgICAgICAsIG1fbWFyZ2luQWZ0ZXJRdWlyayhmYWxzZSkKICAgICAgICAgICAgICwg
bV9oYXNDb2x1bW5zKGZhbHNlKQorICAgICAgICAgICAgLCBtX3Bvc2l0aW9uZWRTdGF0ZShJc1N0
YXRpY2x5UG9zaXRpb25lZCkKICAgICAgICAgICAgICwgbV9zZWxlY3Rpb25TdGF0ZShTZWxlY3Rp
b25Ob25lKQogICAgICAgICB7CiAgICAgICAgIH0KQEAgLTEwNzEsOSArMTA3OSw2IEBAIHByaXZh
dGU6CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKHByZWZlcnJlZExvZ2ljYWxXaWR0aHNE
aXJ0eSwgUHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KTsKICAgICAgICAgQUREX0JPT0xFQU5f
QklURklFTEQoZmxvYXRpbmcsIEZsb2F0aW5nKTsKIAotICAgICAgICBBRERfQk9PTEVBTl9CSVRG
SUVMRChwb3NpdGlvbmVkLCBQb3NpdGlvbmVkKTsKLSAgICAgICAgQUREX0JPT0xFQU5fQklURklF
TEQocmVsUG9zaXRpb25lZCwgUmVsUG9zaXRpb25lZCk7Ci0gICAgICAgIEFERF9CT09MRUFOX0JJ
VEZJRUxEKHN0aWNreVBvc2l0aW9uZWQsIFN0aWNreVBvc2l0aW9uZWQpOwogICAgICAgICBBRERf
Qk9PTEVBTl9CSVRGSUVMRChwYWludEJhY2tncm91bmQsIFBhaW50QmFja2dyb3VuZCk7IC8vIGlm
IHRoZSBib3ggaGFzIHNvbWV0aGluZyB0byBwYWludCBpbiB0aGUKICAgICAgICAgLy8gYmFja2dy
b3VuZCBwYWludGluZyBwaGFzZSAoYmFja2dyb3VuZCwgYm9yZGVyLCBldGMpCiAKQEAgLTExMDQs
OSArMTEwOSwyMiBAQCBwcml2YXRlOgogICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChoYXND
b2x1bW5zLCBIYXNDb2x1bW5zKTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIHVuc2lnbmVkIG1f
cG9zaXRpb25lZFN0YXRlIDogMjsgLy8gUG9zaXRpb25lZFN0YXRlCiAgICAgICAgIHVuc2lnbmVk
IG1fc2VsZWN0aW9uU3RhdGUgOiAzOyAvLyBTZWxlY3Rpb25TdGF0ZQogCiAgICAgcHVibGljOgor
ICAgICAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb25lZFN0YXRlID09IElzT3V0T2ZGbG93UG9zaXRpb25lZDsgfQorICAgICAgICBib29sIGlz
UmVsUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRlID09IElzUmVs
YXRpdmVseVBvc2l0aW9uZWQ7IH0KKyAgICAgICAgYm9vbCBpc1N0aWNreVBvc2l0aW9uZWQoKSBj
b25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc1N0aWNreVBvc2l0aW9uZWQ7IH0K
KyAgICAgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRT
dGF0ZSAhPSBJc1N0YXRpY2x5UG9zaXRpb25lZDsgfQorCisgICAgICAgIHZvaWQgc2V0UG9zaXRp
b25lZFN0YXRlKGludCBwb3NpdGlvblN0YXRlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBU
aGlzIG1hc2sgbWFwcyBGaXhlZFBvc2l0aW9uIGFuZCBBYnNvbHV0ZVBvc2l0aW9uIHRvIElzT3V0
T2ZGbG93UG9zaXRpb25lZCwgc2F2aW5nIG9uZSBiaXQuCisgICAgICAgICAgICBtX3Bvc2l0aW9u
ZWRTdGF0ZSA9IHN0YXRpY19jYXN0PFBvc2l0aW9uZWRTdGF0ZT4ocG9zaXRpb25TdGF0ZSAmIDB4
Myk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBjbGVhclBvc2l0aW9uZWRTdGF0ZSgpIHsgbV9w
b3NpdGlvbmVkU3RhdGUgPSBTdGF0aWNQb3NpdGlvbjsgfQorCiAgICAgICAgIEFMV0FZU19JTkxJ
TkUgU2VsZWN0aW9uU3RhdGUgc2VsZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxTZWxlY3Rpb25TdGF0ZT4obV9zZWxlY3Rpb25TdGF0ZSk7IH0KICAgICAgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHNlbGVjdGlvblN0
YXRlKSB7IG1fc2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsgfQogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAKaW5kZXgg
M2VlYjFkODlmM2M3NjdkYmM2MGVjN2I1YzJkNjQ1ZWIwMmI2NDE1MC4uOTQ5ZDNlYTQ3YzI3OWU0
YWIwNWVjNTc4NTc4NThkM2VkMjE0ZDEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgUmVu
ZGVyU2Nyb2xsYmFyUGFydDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlCiB7CiAgICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKGRpZmYs
IG9sZFN0eWxlKTsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwotICAgIHNldFBvc2l0aW9uZWQoZmFs
c2UpOworICAgIGNsZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgc2V0RmxvYXRpbmcoZmFsc2Up
OwogICAgIHNldEhhc092ZXJmbG93Q2xpcChmYWxzZSk7CiAgICAgaWYgKG9sZFN0eWxlICYmIG1f
c2Nyb2xsYmFyICYmIG1fcGFydCAhPSBOb1BhcnQgJiYgZGlmZiA+PSBTdHlsZURpZmZlcmVuY2VS
ZXBhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDJjOTZj
MWI5ODljNzExMjg2YjUxODc5ZmUwZDUzYTMyZjBiNzE0NjAuLjdjYzg5ZjNlODhjYzI5NjQ5MmQ1
ZWViMGVhOThmNjUwZWJiNzk1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgUmVuZGVyVmlldzo6UmVuZGVyVmlldyhOb2RlKiBub2Rl
LCBGcmFtZVZpZXcqIHZpZXcpCiAKICAgICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHko
dHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAKLSAgICBzZXRQb3NpdGlvbmVkKHRydWUpOyAvLyB0
byAwLDAgOikKKyAgICBzZXRQb3NpdGlvblN0YXRlKEFic29sdXRlUG9zaXRpb24pOyAvLyB0byAw
LDAgOikKIH0KIAogUmVuZGVyVmlldzo6flJlbmRlclZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCA0YTU1
MGUyYzhkNjc0ZWVkZTAzODRiMGRjNGU2NzFjMDI2NGNlNTVmLi4zYjFiNjcyNTdlYmI5ZTNlNmJl
NTg4M2QzMGFiODkwODE5Y2E5MWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtOTQsNyArOTQsMTIgQEAgZW51
bSBFQm9yZGVyUHJlY2VkZW5jZSB7IEJPRkYsIEJUQUJMRSwgQkNPTEdST1VQLCBCQ09MLCBCUk9X
R1JPVVAsIEJST1csIEJDRUxMIH0KIGVudW0gT3V0bGluZUlzQXV0byB7IEFVVE9fT0ZGID0gMCwg
QVVUT19PTiB9OwogCiBlbnVtIEVQb3NpdGlvbiB7Ci0gICAgU3RhdGljUG9zaXRpb24sIFJlbGF0
aXZlUG9zaXRpb24sIEFic29sdXRlUG9zaXRpb24sIEZpeGVkUG9zaXRpb24sIFN0aWNreVBvc2l0
aW9uCisgICAgU3RhdGljUG9zaXRpb24gPSAwLAorICAgIFJlbGF0aXZlUG9zaXRpb24gPSAxLAor
ICAgIEFic29sdXRlUG9zaXRpb24gPSAyLAorICAgIFN0aWNreVBvc2l0aW9uID0gMywKKyAgICAv
KiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIHRvIHBhY2sgb3VyIGJpdHMgZWZmaWNpZW50bHkgaW4g
UmVuZGVyT2JqZWN0LiAqLworICAgIEZpeGVkUG9zaXRpb24gPSA2CiB9OwogCiBlbnVtIEVGbG9h
dCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180051</attachid>
            <date>2012-12-18 16:19:49 -0800</date>
            <delta_ts>2012-12-18 21:20:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105065-20121218161706.patch</filename>
            <type>text/plain</type>
            <size>13441</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIzMGMzNTI5MWE1ZGE2
YzE2ZGNjMTNhMTAwMTk3MzYxMDcxNzQzYy4uYTVjZDZkM2U3ZmZhY2QwYmI2MjFmMmRlOTZjNDIx
ZDgyY2U1NGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEyLTE4ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEZyZWUgb25l
IGJpdCBpbiBSZW5kZXJPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNTA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBUaGlzIGNoYW5nZSB1c2VzIHRoZSBtdXR1YWwgZXhjbHVzaXZpdHkgYmV0d2Vl
biB0aGUgZGlmZmVyZW50IHBvc2l0aW9uIGJpdHMgdG8gcGFjaworICAgICAgICB0aGUgaW5mb3Jt
YXRpb24gbW9yZSBlZmZpY2llbnRseS4gQmVjYXVzZSB5b3UgY2FuIGJlIG9ubHkgaW4gb25lIHBv
c2l0aW9uIGF0IGFueSBwb2ludAorICAgICAgICBpbiB0aW1lLCB5b3Ugb25seSBuZWVkIHRvIHN0
b3JlIDQgc3RhdGVzIGluIFJlbmRlck9iamVjdCAoaWUgMiBiaXRzIG9mIGluZm9ybWF0aW9uKSBi
dXQKKyAgICAgICAgd2Ugd2VyZSB1c2luZyAzIGJpdHMgdG8gc3RvcmUgdGhpcyBpbmZvcm1hdGlv
biwgdGh1cyBsb3Npbmcgb25lIGJpdCB0aGF0IEkgYW0gcmVjbGFpbWluZy4KKworICAgICAgICBU
aGUgY2hhbmdlIGNvdmVycyB0aGUgMyBiaXRzIGludG8gYSBzaW5nbGUgUG9zaXRpb25TdGF0ZS4g
SW4gb3JkZXIgdG8gYXZvaWQgYW55IGV4dHJhIGJyYW5jaAorICAgICAgICBvbiB0aGUgY29tbW9u
IGNvZGUgcGF0aCwgdGhlIGxvZ2ljIHdhcyBtb2RpZmllZCB0byBiZSBhYmxlIHRvIGNvbnZlcnQg
YSBFUG9zaXRpb24gdG8gYSBQb3NpdGlvblN0YXRlCisgICAgICAgIHVzaW5nIG9ubHkgYSBiaXQg
bWFzay4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgd2Ugbm93IHNldHMgdXAgYW5kIGNsZWFycyBhbGwg
dGhlIGJpdHMgYXQgb25jZSBpbnN0ZWFkCisgICAgICAgIG9mIHNldmVyYWwgY2FsbHMsIHdoaWNo
IG1hdGNoZXMgbW9yZSBjbG9zZWx5IHdoYXQgaGFwcGVucyBhdCBzdHlsZSBjaGFuZ2UuCisKKyAg
ICAgICAgQ2hhbmdlIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6dXBkYXRl
RnJvbVN0eWxlKToKKyAgICAgICAgUmVtb3ZlZCBhIGNhbGwsIHN1cGVyc2VlZCBieSB0aGUgb25l
IGluIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp1cGRhdGVGcm9tU3R5bGUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnVwZGF0ZUZyb21TdHlsZSk6CisgICAgICAgIENoYW5nZWQgdG8g
c2V0IHRoZSBwb3NpdGlvbmVkIGJpdHMgaW4gb25seSBvbmUgY2FsbCB0byBzZXRQb3NpdGlvbmVk
U3RhdGUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgQ2hhbmdl
ZCB0byBjbGVhciBhbGwgcG9zaXRpb25lZCBiaXRzIGF0IG9uY2UuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
Y3JvbGxiYXJQYXJ0OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgIERpdHRvLCB3aGljaCB3YXMg
cHJvYmFibHkgdGhlIGludGVudCBhbnl3YXkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpSZW5kZXJWaWV3KToKKyAg
ICAgICAgQ2hhbmdlZCB0byBleHBsaWNpdGx5IGJlIEFic29sdXRlbHlQb3NpdGlvbmVkLCBub3Qg
dGhhdCBpdCByZWFsbHkgbWF0dGVycyBhcyB3ZSBvbmx5IHN0b3JlCisgICAgICAgIHRoZSBvdXQt
b2YtZmxvdyBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNPdXRPZkZsb3dQb3NpdGlvbmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNJbkZsb3dQb3NpdGlvbmVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZWxQb3NpdGlvbmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNTdGlja3lQb3NpdGlvbmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNQb3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6Y2xlYXJQb3NpdGlvbmVkU3RhdGUpOgorICAgICAgICBVcGRhdGVkIGFm
dGVyIHRoZSByZW5hbWluZyBiZWxvdy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzZXRQb3NpdGlvblN0YXRlKToKKyAgICAgICAgRGl0dG8sIGJ1dCBhZGRlZCBhbiBBU1NFUlQg
dG8gZW5zdXJlIHRoYXQgdGhlIG91dC1vZi1mbG93IGJpdCBpcyBvbmx5IHNldCBvbiBib3hlcywg
dG8gbWF0Y2gKKyAgICAgICAgZXhpc3RpbmcgY29kZS4KKworICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICBDaGFuZ2VkIHRoZSB2YWx1ZXMg
c28gdGhhdCB0aGUgY29udmVyc2lvbiB0byBQb3NpdGlvblN0YXRlIGlzIGEgc2ltcGxlIGJpdCBt
YXNrLCBlLmcKKyAgICAgICAgRml4ZWRQb3NpdGlvbiAmIDB4MyA9PSBBYnNvbHV0ZVBvc2l0aW9u
IGFzIHdlIG9ubHkgc3RvcmUgdGhlIG91dC1vZi1mbG93IHBvc2l0aW9uIGluZm9ybWF0aW9uLgor
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6
UmVuZGVyT2JqZWN0Qml0ZmllbGRzKToKKyAgICAgICAgSW50cm9kdWNlZCBQb3NpdGlvblN0YXRl
IHRvIGhvbGQgdGhlIGRpZmZlcmVudCBiaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6c2V0UG9zaXRpb25lZFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjpjbGVhclBv
c2l0aW9uZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9i
amVjdEJpdGZpZWxkczo6aXNPdXRPZkZsb3dQb3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjppc1JlbFBvc2l0aW9uZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6Omlz
U3RpY2t5UG9zaXRpb25lZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRl
ck9iamVjdEJpdGZpZWxkczo6aXNQb3NpdGlvbmVkKToKKyAgICAgICAgUmUtaW1wbGVtZW50ZWQg
dGhlc2UgZ2V0dGVycyAvIHNldHRlcnMgYW5kIHJlbmFtZWQgdGhlbSB0byBtYXRjaCBvdXIgc3R5
bGUgd2hpbGUgYXQgaXQuCisKKwogMjAxMi0xMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBwb3NpdGlvbjpzdGlja3kgZWxlbWVudHMg
dG8gYmUgbW92ZWQgYnkgdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKaW5kZXggNGI5NmVjZDY0ZDY3MWJhNzgwOTU0ZjAxZjY4ODIxZDFlNGI3
NWE0OS4uNWUwZjBmNzlmZTRlNTkyMGQwZDcxZDg5NzYzOWRiYjYxMzkwNTM2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTMxOSw3ICszMTksNiBAQCB2b2lkIFJl
bmRlckJveDo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICBpZiAoaXNSb290T2JqZWN0IHx8IGlzVmll
d09iamVjdCkKICAgICAgICAgc2V0SGFzQm94RGVjb3JhdGlvbnModHJ1ZSk7CiAKLSAgICBzZXRQ
b3NpdGlvbmVkKHN0eWxlVG9Vc2UtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpOwogICAgIHNldEZs
b2F0aW5nKCFpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZVRvVXNlLT5pc0Zsb2F0aW5n
KCkpOwogCiAgICAgLy8gV2UgYWxzbyBoYW5kbGUgPGJvZHk+IGFuZCA8aHRtbD4sIHdob3NlIG92
ZXJmbG93IGFwcGxpZXMgdG8gdGhlIHZpZXdwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNjdiMzI0MWQyMGIxNzRkY2Y1
N2U0MmVkYTJiOGYyZTRjNDQyMmE3NC4uNDdjYzRmM2NiMjQxYmRkOTQ1ZWMzMDA2ODg4MTBiNDhh
MDQ1MTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCkBAIC0zNTcsOCArMzU3LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IHN0eWxl
KCk7CiAgICAgc2V0SGFzQm94RGVjb3JhdGlvbnMoaGFzQmFja2dyb3VuZCgpIHx8IHN0eWxlVG9V
c2UtPmhhc0JvcmRlcigpIHx8IHN0eWxlVG9Vc2UtPmhhc0FwcGVhcmFuY2UoKSB8fCBzdHlsZVRv
VXNlLT5ib3hTaGFkb3coKSk7CiAgICAgc2V0SW5saW5lKHN0eWxlVG9Vc2UtPmlzRGlzcGxheUlu
bGluZVR5cGUoKSk7Ci0gICAgc2V0UmVsUG9zaXRpb25lZChzdHlsZVRvVXNlLT5wb3NpdGlvbigp
ID09IFJlbGF0aXZlUG9zaXRpb24pOwotICAgIHNldFN0aWNreVBvc2l0aW9uZWQoc3R5bGVUb1Vz
ZS0+cG9zaXRpb24oKSA9PSBTdGlja3lQb3NpdGlvbik7CisgICAgc2V0UG9zaXRpb25TdGF0ZShz
dHlsZVRvVXNlLT5wb3NpdGlvbigpKTsKICAgICBzZXRIb3Jpem9udGFsV3JpdGluZ01vZGUoc3R5
bGVUb1VzZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggZGViNmQ5NjBjODg2MDEyN2I5YTdlZDU4
OWFiNmQwNDNmZDYwNTg3NC4uMzA2NmU1MzRhOTMzYTFmMmMwMjYxN2I4M2QxYjFhODVlN2VlNTc2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE4OTEs
OSArMTg5MSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTCiAgICAgICAgIC8vIHJlc2V0IHN0
eWxlIGZsYWdzCiAgICAgICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dCB8fCBk
aWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkpIHsKICAg
ICAgICAgICAgIHNldEZsb2F0aW5nKGZhbHNlKTsKLSAgICAgICAgICAgIHNldFBvc2l0aW9uZWQo
ZmFsc2UpOwotICAgICAgICAgICAgc2V0UmVsUG9zaXRpb25lZChmYWxzZSk7Ci0gICAgICAgICAg
ICBzZXRTdGlja3lQb3NpdGlvbmVkKGZhbHNlKTsKKyAgICAgICAgICAgIGNsZWFyUG9zaXRpb25l
ZFN0YXRlKCk7CiAgICAgICAgIH0KICAgICAgICAgc2V0SG9yaXpvbnRhbFdyaXRpbmdNb2RlKHRy
dWUpOwogICAgICAgICBzZXRQYWludEJhY2tncm91bmQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGQzODA5MzBiN2NmMGI2ZDNmNWJlYWEyN2IyOWEz
YzY0ZWQ1ZWU2OTcuLmYyMWM2NjE0OWQ0MTU3NGM0NDMzNGIxM2U5OGE4NTcyNGY1NmVkMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTU0MCwxMSArNTQwLDEx
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNGbG9hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYml0
ZmllbGRzLmZsb2F0aW5nKCk7IH0KIAotICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMucG9zaXRpb25lZCgpOyB9IC8vIGFic29sdXRlIG9y
IGZpeGVkIHBvc2l0aW9uaW5nCi0gICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9uZWQoKSBjb25zdCB7
IHJldHVybiBtX2JpdGZpZWxkcy5yZWxQb3NpdGlvbmVkKCkgfHwgbV9iaXRmaWVsZHMuc3RpY2t5
UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlvbmluZwotICAgIGJv
b2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMucmVsUG9zaXRp
b25lZCgpOyB9IC8vIHJlbGF0aXZlIHBvc2l0aW9uaW5nCi0gICAgYm9vbCBpc1N0aWNreVBvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5zdGlja3lQb3NpdGlvbmVkKCk7IH0K
LSAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLnBvc2l0
aW9uZWQoKSB8fCBtX2JpdGZpZWxkcy5yZWxQb3NpdGlvbmVkKCkgfHwgbV9iaXRmaWVsZHMuc3Rp
Y2t5UG9zaXRpb25lZCgpOyB9CisgICAgYm9vbCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSBjb25z
dCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsgfSAvLyBhYnNv
bHV0ZSBvciBmaXhlZCBwb3NpdGlvbmluZworICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCkgfHwgbV9iaXRmaWVs
ZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgb3Igc3RpY2t5IHBvc2l0aW9u
aW5nCisgICAgYm9vbCBpc1JlbFBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxk
cy5pc1JlbFBvc2l0aW9uZWQoKTsgfSAvLyByZWxhdGl2ZSBwb3NpdGlvbmluZworICAgIGJvb2wg
aXNTdGlja3lQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNTdGlja3lQ
b3NpdGlvbmVkKCk7IH0KKyAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0ZmllbGRzLmlzUG9zaXRpb25lZCgpOyB9CiAKICAgICBib29sIGlzVGV4dCgpIGNvbnN0ICB7
IHJldHVybiBtX2JpdGZpZWxkcy5pc1RleHQoKTsgfQogICAgIGJvb2wgaXNCb3goKSBjb25zdCB7
IHJldHVybiBtX2JpdGZpZWxkcy5pc0JveCgpOyB9CkBAIC02NTgsOSArNjU4LDEzIEBAIHB1Ymxp
YzoKICAgICAgICAgc2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KHRydWUpOwogICAgIH0K
IAotICAgIHZvaWQgc2V0UG9zaXRpb25lZChib29sIGIgPSB0cnVlKSAgeyBtX2JpdGZpZWxkcy5z
ZXRQb3NpdGlvbmVkKGIpOyAgfQotICAgIHZvaWQgc2V0UmVsUG9zaXRpb25lZChib29sIGIgPSB0
cnVlKSB7IG1fYml0ZmllbGRzLnNldFJlbFBvc2l0aW9uZWQoYik7IH0KLSAgICB2b2lkIHNldFN0
aWNreVBvc2l0aW9uZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRTdGlja3lQb3Np
dGlvbmVkKGIpOyB9CisgICAgdm9pZCBzZXRQb3NpdGlvblN0YXRlKEVQb3NpdGlvbiBwb3NpdGlv
bikKKyAgICB7CisgICAgICAgIEFTU0VSVCgocG9zaXRpb24gIT0gQWJzb2x1dGVQb3NpdGlvbiAm
JiBwb3NpdGlvbiAhPSBGaXhlZFBvc2l0aW9uKSB8fCBpc0JveCgpKTsKKyAgICAgICAgbV9iaXRm
aWVsZHMuc2V0UG9zaXRpb25lZFN0YXRlKHBvc2l0aW9uKTsKKyAgICB9CisgICAgdm9pZCBjbGVh
clBvc2l0aW9uZWRTdGF0ZSgpIHsgbV9iaXRmaWVsZHMuY2xlYXJQb3NpdGlvbmVkU3RhdGUoKTsg
fQorCiAgICAgdm9pZCBzZXRGbG9hdGluZyhib29sIGIgPSB0cnVlKSB7IG1fYml0ZmllbGRzLnNl
dEZsb2F0aW5nKGIpOyB9CiAgICAgdm9pZCBzZXRJbmxpbmUoYm9vbCBiID0gdHJ1ZSkgeyBtX2Jp
dGZpZWxkcy5zZXRJc0lubGluZShiKTsgfQogICAgIHZvaWQgc2V0SGFzQm94RGVjb3JhdGlvbnMo
Ym9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRQYWludEJhY2tncm91bmQoYik7IH0KQEAg
LTEwMjcsNiArMTAzMSwxMiBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldCMjTmFtZShib29s
IG5hbWUpIHsgbV8jI25hbWUgPSBuYW1lOyB9XAogCiAgICAgY2xhc3MgUmVuZGVyT2JqZWN0Qml0
ZmllbGRzIHsKKyAgICAgICAgZW51bSBQb3NpdGlvbmVkU3RhdGUgeworICAgICAgICAgICAgSXNT
dGF0aWNseVBvc2l0aW9uZWQgPSAwLAorICAgICAgICAgICAgSXNSZWxhdGl2ZWx5UG9zaXRpb25l
ZCA9IDEsCisgICAgICAgICAgICBJc091dE9mRmxvd1Bvc2l0aW9uZWQgPSAyLAorICAgICAgICAg
ICAgSXNTdGlja3lQb3NpdGlvbmVkID0gMworICAgICAgICB9OwogICAgIHB1YmxpYzoKICAgICAg
ICAgUmVuZGVyT2JqZWN0Qml0ZmllbGRzKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICA6IG1fbmVl
ZHNMYXlvdXQoZmFsc2UpCkBAIC0xMDM2LDkgKzEwNDYsNiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgLCBtX25lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoZmFsc2UpCiAgICAgICAgICAg
ICAsIG1fcHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KGZhbHNlKQogICAgICAgICAgICAgLCBt
X2Zsb2F0aW5nKGZhbHNlKQotICAgICAgICAgICAgLCBtX3Bvc2l0aW9uZWQoZmFsc2UpCi0gICAg
ICAgICAgICAsIG1fcmVsUG9zaXRpb25lZChmYWxzZSkKLSAgICAgICAgICAgICwgbV9zdGlja3lQ
b3NpdGlvbmVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3BhaW50QmFja2dyb3VuZChmYWxzZSkK
ICAgICAgICAgICAgICwgbV9pc0Fub255bW91cyhub2RlID09IG5vZGUtPmRvY3VtZW50KCkpCiAg
ICAgICAgICAgICAsIG1faXNUZXh0KGZhbHNlKQpAQCAtMTA1OCw2ICsxMDY1LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICwgbV9tYXJnaW5CZWZvcmVRdWlyayhmYWxzZSkgCiAgICAgICAgICAg
ICAsIG1fbWFyZ2luQWZ0ZXJRdWlyayhmYWxzZSkKICAgICAgICAgICAgICwgbV9oYXNDb2x1bW5z
KGZhbHNlKQorICAgICAgICAgICAgLCBtX3Bvc2l0aW9uZWRTdGF0ZShJc1N0YXRpY2x5UG9zaXRp
b25lZCkKICAgICAgICAgICAgICwgbV9zZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25Ob25lKQogICAg
ICAgICB7CiAgICAgICAgIH0KQEAgLTEwNzEsOSArMTA3OSw2IEBAIHByaXZhdGU6CiAgICAgICAg
IEFERF9CT09MRUFOX0JJVEZJRUxEKHByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSwgUHJlZmVy
cmVkTG9naWNhbFdpZHRoc0RpcnR5KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoZmxv
YXRpbmcsIEZsb2F0aW5nKTsKIAotICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChwb3NpdGlv
bmVkLCBQb3NpdGlvbmVkKTsKLSAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQocmVsUG9zaXRp
b25lZCwgUmVsUG9zaXRpb25lZCk7Ci0gICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKHN0aWNr
eVBvc2l0aW9uZWQsIFN0aWNreVBvc2l0aW9uZWQpOwogICAgICAgICBBRERfQk9PTEVBTl9CSVRG
SUVMRChwYWludEJhY2tncm91bmQsIFBhaW50QmFja2dyb3VuZCk7IC8vIGlmIHRoZSBib3ggaGFz
IHNvbWV0aGluZyB0byBwYWludCBpbiB0aGUKICAgICAgICAgLy8gYmFja2dyb3VuZCBwYWludGlu
ZyBwaGFzZSAoYmFja2dyb3VuZCwgYm9yZGVyLCBldGMpCiAKQEAgLTExMDQsOSArMTEwOSwyMiBA
QCBwcml2YXRlOgogICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChoYXNDb2x1bW5zLCBIYXND
b2x1bW5zKTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIHVuc2lnbmVkIG1fcG9zaXRpb25lZFN0
YXRlIDogMjsgLy8gUG9zaXRpb25lZFN0YXRlCiAgICAgICAgIHVuc2lnbmVkIG1fc2VsZWN0aW9u
U3RhdGUgOiAzOyAvLyBTZWxlY3Rpb25TdGF0ZQogCiAgICAgcHVibGljOgorICAgICAgICBib29s
IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRl
ID09IElzT3V0T2ZGbG93UG9zaXRpb25lZDsgfQorICAgICAgICBib29sIGlzUmVsUG9zaXRpb25l
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRlID09IElzUmVsYXRpdmVseVBvc2l0
aW9uZWQ7IH0KKyAgICAgICAgYm9vbCBpc1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVy
biBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc1N0aWNreVBvc2l0aW9uZWQ7IH0KKyAgICAgICAgYm9v
bCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSAhPSBJc1N0
YXRpY2x5UG9zaXRpb25lZDsgfQorCisgICAgICAgIHZvaWQgc2V0UG9zaXRpb25lZFN0YXRlKGlu
dCBwb3NpdGlvblN0YXRlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIG1hc2sgbWFw
cyBGaXhlZFBvc2l0aW9uIGFuZCBBYnNvbHV0ZVBvc2l0aW9uIHRvIElzT3V0T2ZGbG93UG9zaXRp
b25lZCwgc2F2aW5nIG9uZSBiaXQuCisgICAgICAgICAgICBtX3Bvc2l0aW9uZWRTdGF0ZSA9IHN0
YXRpY19jYXN0PFBvc2l0aW9uZWRTdGF0ZT4ocG9zaXRpb25TdGF0ZSAmIDB4Myk7CisgICAgICAg
IH0KKyAgICAgICAgdm9pZCBjbGVhclBvc2l0aW9uZWRTdGF0ZSgpIHsgbV9wb3NpdGlvbmVkU3Rh
dGUgPSBTdGF0aWNQb3NpdGlvbjsgfQorCiAgICAgICAgIEFMV0FZU19JTkxJTkUgU2VsZWN0aW9u
U3RhdGUgc2VsZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTZWxlY3Rp
b25TdGF0ZT4obV9zZWxlY3Rpb25TdGF0ZSk7IH0KICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lk
IHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHNlbGVjdGlvblN0YXRlKSB7IG1fc2Vs
ZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAKaW5kZXggM2VlYjFkODlmM2M3
NjdkYmM2MGVjN2I1YzJkNjQ1ZWIwMmI2NDE1MC4uOTQ5ZDNlYTQ3YzI3OWU0YWIwNWVjNTc4NTc4
NThkM2VkMjE0ZDEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNjcm9sbGJhclBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
Y3JvbGxiYXJQYXJ0LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgUmVuZGVyU2Nyb2xsYmFy
UGFydDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
eWxlCiB7CiAgICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsK
ICAgICBzZXRJbmxpbmUoZmFsc2UpOwotICAgIHNldFBvc2l0aW9uZWQoZmFsc2UpOworICAgIGNs
ZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgc2V0RmxvYXRpbmcoZmFsc2UpOwogICAgIHNldEhh
c092ZXJmbG93Q2xpcChmYWxzZSk7CiAgICAgaWYgKG9sZFN0eWxlICYmIG1fc2Nyb2xsYmFyICYm
IG1fcGFydCAhPSBOb1BhcnQgJiYgZGlmZiA+PSBTdHlsZURpZmZlcmVuY2VSZXBhaW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDJjOTZjMWI5ODljNzExMjg2
YjUxODc5ZmUwZDUzYTMyZjBiNzE0NjAuLjdjYzg5ZjNlODhjYzI5NjQ5MmQ1ZWViMGVhOThmNjUw
ZWJiNzk1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTgx
LDcgKzgxLDcgQEAgUmVuZGVyVmlldzo6UmVuZGVyVmlldyhOb2RlKiBub2RlLCBGcmFtZVZpZXcq
IHZpZXcpCiAKICAgICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkodHJ1ZSwgTWFya09u
bHlUaGlzKTsKICAgICAKLSAgICBzZXRQb3NpdGlvbmVkKHRydWUpOyAvLyB0byAwLDAgOikKKyAg
ICBzZXRQb3NpdGlvblN0YXRlKEFic29sdXRlUG9zaXRpb24pOyAvLyB0byAwLDAgOikKIH0KIAog
UmVuZGVyVmlldzo6flJlbmRlclZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCA0YTU1MGUyYzhkNjc0ZWVk
ZTAzODRiMGRjNGU2NzFjMDI2NGNlNTVmLi44NDRhNDNmOTlkYzE3Zjk5YmNjMWM5ZDVmZmZiMWY3
OWQyYWFjMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtOTQsNyArOTQsMTIgQEAgZW51bSBFQm9yZGVyUHJl
Y2VkZW5jZSB7IEJPRkYsIEJUQUJMRSwgQkNPTEdST1VQLCBCQ09MLCBCUk9XR1JPVVAsIEJST1cs
IEJDRUxMIH0KIGVudW0gT3V0bGluZUlzQXV0byB7IEFVVE9fT0ZGID0gMCwgQVVUT19PTiB9Owog
CiBlbnVtIEVQb3NpdGlvbiB7Ci0gICAgU3RhdGljUG9zaXRpb24sIFJlbGF0aXZlUG9zaXRpb24s
IEFic29sdXRlUG9zaXRpb24sIEZpeGVkUG9zaXRpb24sIFN0aWNreVBvc2l0aW9uCisgICAgU3Rh
dGljUG9zaXRpb24gPSAwLAorICAgIFJlbGF0aXZlUG9zaXRpb24gPSAxLAorICAgIEFic29sdXRl
UG9zaXRpb24gPSAyLAorICAgIFN0aWNreVBvc2l0aW9uID0gMywKKyAgICAvLyBUaGlzIHZhbHVl
IGlzIHJlcXVpcmVkIHRvIHBhY2sgb3VyIGJpdHMgZWZmaWNpZW50bHkgaW4gUmVuZGVyT2JqZWN0
LgorICAgIEZpeGVkUG9zaXRpb24gPSA2CiB9OwogCiBlbnVtIEVGbG9hdCB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>