<?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>84059</bug_id>
          
          <creation_ts>2012-04-16 12:07:48 -0700</creation_ts>
          <short_desc>Re-implement backFaceVisibility to avoid dealing with perspective w &lt; 0 problem</short_desc>
          <delta_ts>2012-04-26 16:59:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>603320</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-16 12:07:48 -0700</bug_when>
    <thetext>When CCLayerTreeHostCommon checks back-face visibility by transforming a normal, it currently uses un-clipped transforms that can be incorrect on perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603440</commentid>
    <comment_count>1</comment_count>
      <attachid>137401</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-16 14:21:08 -0700</bug_when>
    <thetext>Created attachment 137401
Patch

tested on osx layout tests and unit tests, no obvious regressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603465</commentid>
    <comment_count>2</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-04-16 14:52:30 -0700</bug_when>
    <thetext>There&apos;s an interesting discussion in this thread:
http://lists.w3.org/Archives/Public/public-css-bugzilla/2012Mar/0078.html

which mentions that Chrome&apos;s implementation of backface visibility may be wrong altogether. The spec suggests a very straightforward implementation.  We should try it out!

There&apos;s also a few good examples in that thread that we should use for testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603526</commentid>
    <comment_count>3</comment_count>
      <attachid>137401</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-16 15:58:15 -0700</bug_when>
    <thetext>Comment on attachment 137401
Patch

Thanks for that information!

Removing r=?  in the meantime while I look into that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604250</commentid>
    <comment_count>4</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-17 12:43:38 -0700</bug_when>
    <thetext>Update:

It is possible to make a completely equivalent, more straightforward implementation, we just have to check if inverseTransform().m33() &lt; 0.  

Note, however, the W3C spec seems to have an incorrect rationale about how to compute backface culling  (we should bring this up to them), and so our implementation is not exactly what the W3C spec suggests.  I think this is true of firefox and safari too; it should be just the spec that needs to be corrected.

The spec did have another recent adjustment that chromium has to adapt to - instead of using the screen space transform, we should be using the draw transform.  This way, if the layer is in a preserves-3d setting, it will compute visibility with the transform that projects it to the target surface.  Otherwise, if the layer is not in a 3d mode, it should use the layer&apos;s own matrix (which for backface visibility purposes, is equivalent to the draw transform).

New patch coming soon =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604359</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-17 14:42:25 -0700</bug_when>
    <thetext>I will keep the transforms as screenSpaceTransforms for now.  Pushing that portion of the fix to https://bugs.webkit.org/show_bug.cgi?id=84195.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604399</commentid>
    <comment_count>6</comment_count>
      <attachid>137618</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-17 15:17:46 -0700</bug_when>
    <thetext>Created attachment 137618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604583</commentid>
    <comment_count>7</comment_count>
      <attachid>137618</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-04-17 21:40:08 -0700</bug_when>
    <thetext>Comment on attachment 137618
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:45
&gt; +bool CCLayerTreeHostCommon::backFaceIsVisible(const TransformationMatrix&amp; transform)

Wouldn&apos;t it be more consistent with the rest of the static helper methods in this file to keep this as a standalone function instead of a method of LTHC ?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:60
&gt; +    if (transform.isInvertible()) {

Have you looked into avoiding doing an full inverse and rather just computing m33() directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604836</commentid>
    <comment_count>8</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-18 09:50:40 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 137618 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137618&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:45
&gt; &gt; +bool CCLayerTreeHostCommon::backFaceIsVisible(const TransformationMatrix&amp; transform)
&gt; 
&gt; Wouldn&apos;t it be more consistent with the rest of the static helper methods in this file to keep this as a standalone function instead of a method of LTHC ?

Actually, I was thinking we should make all other helper functions members of CCLayerTreeHostCommon, too.  (not LTHC)

The reason is for testability.  If we make it a local hidden static, the unit test I wrote would explode and not be worth writing.  As it is, however, its simple and isolated (and accessible) so its very easy to get that additional blanket of test coverage.

Is that OK with you and Enne?


&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:60
&gt; &gt; +    if (transform.isInvertible()) {
&gt; 
&gt; Have you looked into avoiding doing an full inverse and rather just computing m33() directly?

No I didn&apos;t...  I&apos;ll look into it and submit a new patch if it works out =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604993</commentid>
    <comment_count>9</comment_count>
      <attachid>137740</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-18 12:39:02 -0700</bug_when>
    <thetext>Created attachment 137740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604995</commentid>
    <comment_count>10</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-18 12:42:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 137618 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137618&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:45
&gt; &gt; &gt; +bool CCLayerTreeHostCommon::backFaceIsVisible(const TransformationMatrix&amp; transform)
&gt; &gt; 
&gt; &gt; Wouldn&apos;t it be more consistent with the rest of the static helper methods in this file to keep this as a standalone function instead of a method of LTHC ?
&gt; 
&gt; Actually, I was thinking we should make all other helper functions members of CCLayerTreeHostCommon, too.  (not LTHC)
&gt; 
&gt; The reason is for testability.  If we make it a local hidden static, the unit test I wrote would explode and not be worth writing.  As it is, however, its simple and isolated (and accessible) so its very easy to get that additional blanket of test coverage.
&gt; 
&gt; Is that OK with you and Enne?
&gt; 

The new patch makes this a non-issue anyway.  I had to put isBackFaceVisible() in TransformationMatrix to access the hidden static determinant functionality there, or else there was going to be a lot of redundant, error-prone code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606865</commentid>
    <comment_count>11</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-20 13:49:38 -0700</bug_when>
    <thetext>Still waiting for review - thanks in advance =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606876</commentid>
    <comment_count>12</comment_count>
      <attachid>137740</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-20 14:02:40 -0700</bug_when>
    <thetext>Comment on attachment 137740
Patch

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

Yay for

&gt; Source/WebCore/ChangeLog:3
&gt; +        [chromium] re-implement backFaceVisibility to avoid dealing with perspective w&lt;0 problem

Probably need to change this. It&apos;s not [chromium] specific anymore either right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606877</commentid>
    <comment_count>13</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-20 14:03:46 -0700</bug_when>
    <thetext>&gt; Yay for

doing this in TransformationMatrix :) Hah.. it left the start of a thought in my browser cookies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607881</commentid>
    <comment_count>14</comment_count>
      <attachid>138393</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-23 11:38:46 -0700</bug_when>
    <thetext>Created attachment 138393
Patch

Still waiting for official review - this latest patch just re-names the bug and updates the ChangeLog as per Dana&apos;s feedback.  Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609847</commentid>
    <comment_count>15</comment_count>
      <attachid>138393</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-25 09:51:54 -0700</bug_when>
    <thetext>Comment on attachment 138393
Patch

This feels like deja vu: https://bugs.webkit.org/show_bug.cgi?id=66114

I don&apos;t think you can just transform the normal when there&apos;s a perspective transform involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609872</commentid>
    <comment_count>16</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-25 10:19:13 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 138393 [details])
&gt; This feels like deja vu: https://bugs.webkit.org/show_bug.cgi?id=66114
&gt; 
&gt; I don&apos;t think you can just transform the normal when there&apos;s a perspective transform involved.

Thanks for looking at this =)

I looked at 66114, and there is a difference between our mistake on that bug and this patch.  The difference is that in that bug we tried to use the transform.m33() which is incorrect.  In this patch we are using transform.inverse().m33() which I believe is correct.

While making this patch, I did an empirical test that showed (1) transform.m33() method is clearly not the same as our old cross-product method, but (2) when I did the same test for transform.inverse.m33(), the results seemed _exactly_ the same as our old cross-product method for any 3d CSS website I had tried.

I believe Vangelis also had gone through reasoning of why its correct during perspective transform, if he has anything to add?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609874</commentid>
    <comment_count>17</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-25 10:20:50 -0700</bug_when>
    <thetext>
Just to be clear, I do think its OK to transform a normal when there&apos;s a perspective involved.  Implicitly, we were doing the same thing with the cross product method, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609881</commentid>
    <comment_count>18</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-04-25 10:30:04 -0700</bug_when>
    <thetext>&gt; 
&gt; I believe Vangelis also had gone through reasoning of why its correct during perspective transform, if he has anything to add?

Yes, I do agree that Shawn&apos;s new implementation (which transforms the normal by the inverse-transpose of the draw matrix) is the correct way to determine backface visibility and gets around the clipping issue that the previous implementation had.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610762</commentid>
    <comment_count>19</comment_count>
      <attachid>138393</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-26 11:33:23 -0700</bug_when>
    <thetext>Comment on attachment 138393
Patch

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

Ah, I see.  The inverse does make all the difference.  Thanks for the explanation.

&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:364
&gt; +    bool isBackFaceVisible() const;
&gt; +

This definitely needs a comment.  The back face of what?  With respect to what?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610774</commentid>
    <comment_count>20</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-26 11:43:20 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 138393 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138393&amp;action=review
&gt; 
&gt; Ah, I see.  The inverse does make all the difference.  Thanks for the explanation.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:364
&gt; &gt; +    bool isBackFaceVisible() const;
&gt; &gt; +
&gt; 
&gt; This definitely needs a comment.  The back face of what?  With respect to what?

Awesome - thanks!   I&apos;ll add the comment and land it through the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610885</commentid>
    <comment_count>21</comment_count>
      <attachid>139055</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-26 13:20:10 -0700</bug_when>
    <thetext>Created attachment 139055
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611093</commentid>
    <comment_count>22</comment_count>
      <attachid>139055</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 16:59:43 -0700</bug_when>
    <thetext>Comment on attachment 139055
Patch for landing

Clearing flags on attachment: 139055

Committed r115386: &lt;http://trac.webkit.org/changeset/115386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611094</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 16:59:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137401</attachid>
            <date>2012-04-16 14:21:08 -0700</date>
            <delta_ts>2012-04-17 15:17:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84059-20120416142107.patch</filename>
            <type>text/plain</type>
            <size>10816</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY5YWM0Zjg4ZmMzMTU3
NGNjNDhlMGI0YTg3Njc1ZmE4NzA5ZjMwOS4uZDk1ZmNhYWRlNGFjZmIyNDNjYTc2MzhkNzQ0ZTVm
OGY4M2FhYmNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTE2ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
YmFja0ZhY2VWaXNpYmlsaXR5IGNoZWNrIHNob3VsZCB1c2UgQ0NNYXRoVXRpbCB0cmFuc2Zvcm1z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA1OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXQgdGVz
dCBhZGRlZCB0byBDQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCisKKyAgICAgICAgVGhpcyBmaXhl
cyBhbm90aGVyIGxvY2F0aW9uIHdoZXJlIHBlcnNwZWN0aXZlIHRyYW5zZm9ybXMgY2FuIGNhdXNl
CisgICAgICAgIHcgPCAwLCBhbmQgY29uc2VxdWVudGx5IGludmFsaWQgdHJhbnNmb3JtZWQgdmFs
dWVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6YmFja0ZhY2VJc1Zpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlVmlzaWJs
ZUxheWVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpsYXllclNob3VsZEJlU2tpcHBlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmg6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3RDb21tb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTWF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ01hdGhVdGlsOjpjb21wdXRlVHJhbnNmb3JtZWRaQXhp
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ01hdGhVdGlsKToKKwogMjAxMi0wNC0x
NiAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAcGFsbS5jb20+CiAKICAgICAgICAgbWF0
Y2hNZWRpYSgpIE1lZGlhUXVlcnlMaXN0IG5vdCB1cGRhdGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA1MDkyZDhkNzU2OTFjZDJjYmUzNzAxOTlmOWE3NjQwNjljNDVjZTQwLi45ZGY5
YmRlYjdkNjlhZWFjNmRiZDk4NTE0MzVkYmM1YTg4MjlhM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTE2ICBTaGF3biBTaW5naCAgPHNoYXdu
c2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gYmFja0ZhY2VWaXNpYmls
aXR5IGNoZWNrIHNob3VsZCB1c2UgQ0NNYXRoVXRpbCB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA1OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVCk6CisgICAgICAgIChX
ZWJLaXRUZXN0cyk6CisKIDIwMTItMDQtMTYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgQmxvYlJlZ2lzdHJ5UHJveHk6OmNy
ZWF0ZVJlc291cmNlSGFuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmNwcAppbmRleCA2MDAyMGI1ZjU1NGVlNTJiYTI1ZjJkMmQ1MDNiZWFkNjk0YjNhYTk2Li40N2E1
ZmI0NmM5MjhlYzJiYjJjMzYxMjE2YmRjNGYwNjFkMmNkYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTQyLDE3ICs0MiwyMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KLXN0YXRpYyBpbmxp
bmUgYm9vbCBiYWNrRmFjZUlzVmlzaWJsZShMYXllclR5cGUqIGxheWVyKQorYm9vbCBDQ0xheWVy
VHJlZUhvc3RDb21tb246OmJhY2tGYWNlSXNWaXNpYmxlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0cmFuc2Zvcm0pCiB7CiAgICAgLy8gVGhpcyBpcyBjaGVja2VkIGJ5IGNvbXB1dGluZyB0
aGUgdHJhbnNmb3JtZWQgbm9ybWFsIG9mIHRoZSBsYXllciBpbiBzY3JlZW4gc3BhY2UuCi0gICAg
RmxvYXRSZWN0IGxheWVyUmVjdChGbG9hdFBvaW50KDAsIDApLCBGbG9hdFNpemUobGF5ZXItPmJv
dW5kcygpKSk7Ci0gICAgRmxvYXRRdWFkIG1hcHBlZExheWVyID0gbGF5ZXItPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFF1YWQobGF5ZXJSZWN0KSk7Ci0gICAgRmxvYXRTaXpl
IGhvcml6b250YWxEaXIgPSBtYXBwZWRMYXllci5wMigpIC0gbWFwcGVkTGF5ZXIucDEoKTsKLSAg
ICBGbG9hdFNpemUgdmVydGljYWxEaXIgPSBtYXBwZWRMYXllci5wNCgpIC0gbWFwcGVkTGF5ZXIu
cDEoKTsKLSAgICBGbG9hdFBvaW50M0QgeEF4aXMoaG9yaXpvbnRhbERpci53aWR0aCgpLCBob3Jp
em9udGFsRGlyLmhlaWdodCgpLCAwKTsKLSAgICBGbG9hdFBvaW50M0QgeUF4aXModmVydGljYWxE
aXIud2lkdGgoKSwgdmVydGljYWxEaXIuaGVpZ2h0KCksIDApOwotICAgIEZsb2F0UG9pbnQzRCB6
QXhpcyA9IHhBeGlzLmNyb3NzKHlBeGlzKTsKKyAgICAvLyBJbiBsb2NhbCBzcGFjZSwgdGhlIGxh
eWVyJ3Mgbm9ybWFsIGlzIGl0cyB6IGF4aXMuCisKKyAgICBib29sIHVuYWJsZVRvQ29tcHV0ZSA9
IGZhbHNlOworICAgIEZsb2F0UG9pbnQzRCB6QXhpcyA9IENDTWF0aFV0aWw6OmNvbXB1dGVUcmFu
c2Zvcm1lZFpBeGlzKHRyYW5zZm9ybSwgdW5hYmxlVG9Db21wdXRlKTsKKworICAgIC8vIElmIHRo
ZSB0cmFuc2Zvcm0gd2FzIHVuYWJsZSB0byBiZSBjb21wdXRlZCwgdGhhdCBpcyBiZWNhdXNlIHRo
ZSB0ZXN0IHF1YWQgd2FzIGZ1bGx5CisgICAgLy8gY2xpcHBlZC4gSW4gdGhhdCBjYXNlLCByZXR1
cm5pbmcgZmFsc2UgaXMgZGVzaXJlZCBiZWNhdXNlIHRoYXQgbWVhbnMgdGhlIGZ1bGx5CisgICAg
Ly8gY2xpcHBlZCBxdWFkJ3MgYmFja0ZhY2UgaXMgbm90IHZpc2libGUuCisgICAgaWYgKHVuYWJs
ZVRvQ29tcHV0ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHpBeGlzLnoo
KSA8IDA7CiB9CiAKQEAgLTg2LDcgKzg5LDcgQEAgc3RhdGljIEludFJlY3QgY2FsY3VsYXRlVmlz
aWJsZUxheWVyUmVjdChMYXllclR5cGUqIGxheWVyKQogCiAgICAgLy8gQW5pbWF0ZWQgbGF5ZXJz
IGNhbiBleGlzdCBpbiB0aGUgcmVuZGVyIHN1cmZhY2UgdHJlZSB0aGF0IGFyZSBub3QgdmlzaWJs
ZSBjdXJyZW50bHkKICAgICAvLyBhbmQgaGF2ZSB0aGVpciBiYWNrIGZhY2Ugc2hvd2luZy4gSW4g
dGhpcyBjYXNlLCB0aGVpciB2aXNpYmxlIHJlY3Qgc2hvdWxkIGJlIGVtcHR5LgotICAgIGlmICgh
bGF5ZXItPmRvdWJsZVNpZGVkKCkgJiYgYmFja0ZhY2VJc1Zpc2libGUobGF5ZXIpKQorICAgIGlm
ICghbGF5ZXItPmRvdWJsZVNpZGVkKCkgJiYgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpiYWNrRmFj
ZUlzVmlzaWJsZShsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSkpCiAgICAgICAgIHJldHVy
biBJbnRSZWN0KCk7CiAKICAgICBJbnRSZWN0IHRhcmdldFN1cmZhY2VSZWN0ID0gbGF5ZXItPnRh
cmdldFJlbmRlclN1cmZhY2UoKS0+Y29udGVudFJlY3QoKTsKQEAgLTE3NCw3ICsxNzcsNyBAQCBz
dGF0aWMgYm9vbCBsYXllclNob3VsZEJlU2tpcHBlZChMYXllclR5cGUqIGxheWVyKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFRoZSBsYXllciBzaG91bGQgbm90IGJlIGRyYXduIGlm
ICgxKSBpdCBpcyBub3QgZG91YmxlLXNpZGVkIGFuZCAoMikgdGhlIGJhY2sgb2YgdGhlIGxheWVy
IGlzIGtub3duIHRvIGJlIGZhY2luZyB0aGUgc2NyZWVuLgotICAgIGlmICghbGF5ZXItPmRvdWJs
ZVNpZGVkKCkgJiYgdHJhbnNmb3JtVG9TY3JlZW5Jc0tub3duKGxheWVyKSAmJiBiYWNrRmFjZUlz
VmlzaWJsZShsYXllcikpCisgICAgaWYgKCFsYXllci0+ZG91YmxlU2lkZWQoKSAmJiB0cmFuc2Zv
cm1Ub1NjcmVlbklzS25vd24obGF5ZXIpICYmIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6YmFja0Zh
Y2VJc1Zpc2libGUobGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmgKaW5kZXggMzc2MmY2NGIxOWIzMTM0OTk4ZTQwYjQ0NzYzOGEyNDZmMTI0OGJi
Yi4uNDhhYTlmMjUwNDlhY2UwZGNiNTU5ZjM5NTNlZmE3YmE0MjM4NDcwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgTGF5
ZXJDaHJvbWl1bTsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdENvbW1vbiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIEludFJlY3QgY2FsY3VsYXRlVmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYgdGFyZ2V0
U3VyZmFjZVJlY3QsIGNvbnN0IEludFJlY3QmIGxheWVyQm91bmRSZWN0LCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOworICAgIHN0YXRpYyBib29sIGJhY2tGYWNlSXNWaXNpYmxlKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAKICAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3
VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkoTGF5ZXJDaHJvbWl1bSosIExheWVyQ2hyb21pdW0qIHJv
b3RMYXllciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhcmVudE1hdHJpeCwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIGZ1bGxIaWVyYXJjaHlNYXRyaXgsIFZlY3RvcjxSZWZQdHI8
TGF5ZXJDaHJvbWl1bT4gPiYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgVmVjdG9yPFJlZlB0cjxM
YXllckNocm9taXVtPiA+JiBsYXllckxpc3QsIGludCBtYXhUZXh0dXJlU2l6ZSk7CiAgICAgc3Rh
dGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KENDTGF5ZXJJbXBs
KiwgQ0NMYXllckltcGwqIHJvb3RMYXllciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBh
cmVudE1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGZ1bGxIaWVyYXJjaHlNYXRy
aXgsIFZlY3RvcjxDQ0xheWVySW1wbCo+JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBWZWN0b3I8
Q0NMYXllckltcGwqPiYgbGF5ZXJMaXN0LCBDQ0xheWVyU29ydGVyKiwgaW50IG1heFRleHR1cmVT
aXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTWF0aFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5jcHAKaW5kZXggZWU4MDNkYTY5MTcxY2Y3NmNlNzIxYTVh
MTQ5OTIzYjAzMjllNDUyYi4uZDRmNzY2ZDc5NGYzZGJiMDA1NjRhNjk2NjUyZDg0ZDM3M2E0YWI3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NNYXRoVXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJj
Yy9DQ01hdGhVdGlsLmgiCiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRmxv
YXRQb2ludDNELmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCkBAIC0zMTEsNCArMzEyLDI5IEBA
IEZsb2F0UXVhZCBDQ01hdGhVdGlsOjpwcm9qZWN0UXVhZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGCiAgICAgcmV0dXJuIHByb2plY3RlZFF1YWQ7CiB9CiAK
KworRmxvYXRQb2ludDNEIENDTWF0aFV0aWw6OmNvbXB1dGVUcmFuc2Zvcm1lZFpBeGlzKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGJvb2wmIHVuYWJsZVRvQ29tcHV0ZSkK
K3sKKyAgICAvLyBJbiB0aGVvcnkgd2Ugc2hvdWxkIHRlc3QgYW4gaW5maW5pdGVseSBsYXJnZSBw
bGFuZSwgc28gdGhhdCBjbGlwcGluZyB3aWxsIG5ldmVyIGJlIGEgcHJvYmxlbS4KKyAgICAvLyBJ
biBwcmFjdGljZSwgdG8gcHJldmVudCBvdmVyZmxvdyBhbmQgcHJlY2lzaW9uIGVycm9ycywgYSBs
YXJnZSBmaW5pdGUgcGxhbmUgdGhhdCBpcyBub3QtdG9vLWxhcmdlIGlzIG1vcmUgYXBwcm9wcmlh
dGUgdG8gdGVzdC4KKyAgICBjb25zdCBmbG9hdCBsYXJnZU51bWJlciA9IDUwMDAwOworCisgICAg
RmxvYXRRdWFkIGxheWVyU3BhY2VRdWFkKEZsb2F0UmVjdChGbG9hdFBvaW50KC1sYXJnZU51bWJl
ciwgLWxhcmdlTnVtYmVyKSwgRmxvYXRTaXplKGxhcmdlTnVtYmVyICogMiwgbGFyZ2VOdW1iZXIg
KiAyKSkpOworICAgIEZsb2F0UG9pbnQgdGFyZ2V0U3BhY2VDbGlwcGVkUXVhZFs4XTsKKyAgICBp
bnQgbnVtVmVydGljZXNJbkNsaXBwZWRRdWFkOworICAgIENDTWF0aFV0aWw6Om1hcENsaXBwZWRR
dWFkKHRyYW5zZm9ybSwgbGF5ZXJTcGFjZVF1YWQsIHRhcmdldFNwYWNlQ2xpcHBlZFF1YWQsIG51
bVZlcnRpY2VzSW5DbGlwcGVkUXVhZCk7CisKKyAgICAvLyBXaXRob3V0IGF0IGxlYXN0IDMgdmlz
aWJsZSB2ZXJ0aWNlcywgdGhlcmUgaXMgbm8gdW5jbGlwcGVkIHBvcnRpb24gb2YgbGF5ZXJTcGFj
ZVF1YWQuCisgICAgdW5hYmxlVG9Db21wdXRlID0gKG51bVZlcnRpY2VzSW5DbGlwcGVkUXVhZCA8
IDMpOworICAgIGlmICh1bmFibGVUb0NvbXB1dGUpCisgICAgICAgIHJldHVybiBGbG9hdFBvaW50
M0QoKTsKKworICAgIC8vIFRoZSBub3JtYWwgaXMgY29tcHV0ZWQgYXMgdGhlIGNyb3NzIHByb2R1
Y3Qgb2YgdHdvIHZlY3RvcnMgdGhhdCBhcmUgY28tcGxhbmFyIHRvIHRoZSB0cmFuc2Zvcm1lZCBs
YXllci4KKyAgICBGbG9hdFNpemUgZGlyZWN0aW9uMSA9IHRhcmdldFNwYWNlQ2xpcHBlZFF1YWRb
MV0gLSB0YXJnZXRTcGFjZUNsaXBwZWRRdWFkWzBdOworICAgIEZsb2F0U2l6ZSBkaXJlY3Rpb24y
ID0gdGFyZ2V0U3BhY2VDbGlwcGVkUXVhZFsyXSAtIHRhcmdldFNwYWNlQ2xpcHBlZFF1YWRbMV07
CisgICAgRmxvYXRQb2ludDNEIGF4aXMxKGRpcmVjdGlvbjEud2lkdGgoKSwgZGlyZWN0aW9uMS5o
ZWlnaHQoKSwgMCk7CisgICAgRmxvYXRQb2ludDNEIGF4aXMyKGRpcmVjdGlvbjIud2lkdGgoKSwg
ZGlyZWN0aW9uMi5oZWlnaHQoKSwgMCk7CisgICAgcmV0dXJuIGF4aXMxLmNyb3NzKGF4aXMyKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5oCmluZGV4IDM5ODYw
NGQ5YTc0NWYwMzc4MDVkMjVhYTA0MGNjNTljMWYyNzA5NmUuLmJiOWFmYTUyMDRjYzRjMmMyNmI1
Yzg3MzRhMGIwZTI4NWI1MjA0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTWF0aFV0aWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ01hdGhVdGlsLmgKQEAgLTI5LDYgKzI5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgRmxvYXRQb2lu
dDsKK2NsYXNzIEZsb2F0UG9pbnQzRDsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEZsb2F0UXVh
ZDsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwpAQCAtNjEsNiArNjIsOSBAQCBwdWJsaWM6
CiAgICAgLy8gY29ycmVjdGx5IGRldGVjdCB0aGUgY2xpcHBlZCBjb25kaXRpb24gdmlhIHRoZSBi
b29sZWFuIGNsaXBwZWQuCiAgICAgc3RhdGljIEZsb2F0UXVhZCBtYXBRdWFkKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRRdWFkJiwgYm9vbCYgY2xpcHBlZCk7CiAgICAg
c3RhdGljIEZsb2F0UXVhZCBwcm9qZWN0UXVhZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEZsb2F0UXVhZCYsIGJvb2wmIGNsaXBwZWQpOworCisgICAgLy8gQ29tcHV0ZXMgdGhl
IHotYXhpcyBhZnRlciBoYXZpbmcgYmVlbiB0cmFuc2Zvcm1lZCBieSB0aGUgZ2l2ZW4gbWF0cml4
LgorICAgIHN0YXRpYyBGbG9hdFBvaW50M0QgY29tcHV0ZVRyYW5zZm9ybWVkWkF4aXMoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBib29sJiB1bmFibGVUb0NvbXB1dGUpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5kZXggNTFhMDMyNjE4ZDUz
ODU3NTBkNTUwZDdlYWU2ZjliMDZmNjdiNTFjYS4uY2U3OGJkYzFjZDg2Zjc4NWZiOWQ3ODNlNmNm
NzJiNTMwOThiYjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBAIC0xMzI1LDYgKzEzMjUsMjUg
QEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlCYWNrRmFjZUN1bGxpbmcp
CiAgICAgRVhQRUNUX1RSVUUoY2hpbGRPZkFuaW1hdGluZ1N1cmZhY2UtPnZpc2libGVMYXllclJl
Y3QoKS5pc0VtcHR5KCkpOwogfQogCitURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeUJhY2tmYWNlVmlzaWJpbGl0eUZvckNsaXBwZWRQZXJzcGVjdGl2ZVRyYW5zZm9ybSkKK3sK
KyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllclRvU2NyZWVuVHJhbnNmb3JtOworCisgICAg
Ly8gVGhlIGxheWVyIGlzIHBvc2l0aW9uZWQgc28gdGhhdCB0aGUgcmlnaHQgaGFsZiBvZiB0aGUg
bGF5ZXIgc2hvdWxkIGJlIGluIGZyb250IG9mCisgICAgLy8gdGhlIGNhbWVyYSwgd2hpbGUgdGhl
IG90aGVyIGhhbGYgaXMgYmVoaW5kIHRoZSBzdXJmYWNlJ3MgcHJvamVjdGlvbiBwbGFuZS4KKyAg
ICAvLyBIb3dldmVyLCBpdHMgYmFjayBzaWRlIHNob3VsZCBzdGlsbCBiZSBmYWNpbmcgdGhlIGNh
bWVyYS4KKyAgICBsYXllclRvU2NyZWVuVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOworICAgIGxh
eWVyVG9TY3JlZW5UcmFuc2Zvcm0uYXBwbHlQZXJzcGVjdGl2ZSgxKTsKKyAgICBsYXllclRvU2Ny
ZWVuVHJhbnNmb3JtLnRyYW5zbGF0ZTNkKDAsIDAsIDEpOworICAgIGxheWVyVG9TY3JlZW5UcmFu
c2Zvcm0ucm90YXRlM2QoMCwgNDUsIDApOworICAgIEVYUEVDVF9UUlVFKENDTGF5ZXJUcmVlSG9z
dENvbW1vbjo6YmFja0ZhY2VJc1Zpc2libGUobGF5ZXJUb1NjcmVlblRyYW5zZm9ybSkpOworCisg
ICAgLy8gQWRkaXRpb25hbGx5IHJvdGF0aW5nIHRoZSBsYXllciBieSAxODAgZGVncmVlcyBzaG91
bGQgcHJvZHVjZSB0aGUgZXhhY3Qgc2FtZSBjbGlwcGVkIGxheWVyLCBidXQKKyAgICAvLyBpdHMg
ZnJvbnQgc2lkZSB3b3VsZCBiZSBmYWNpbmcgdGhlIGNhbWVyYS4KKyAgICBsYXllclRvU2NyZWVu
VHJhbnNmb3JtLnJvdGF0ZTNkKDAsIDE4MCwgMCk7CisgICAgRVhQRUNUX0ZBTFNFKENDTGF5ZXJU
cmVlSG9zdENvbW1vbjo6YmFja0ZhY2VJc1Zpc2libGUobGF5ZXJUb1NjcmVlblRyYW5zZm9ybSkp
OworfQorCiAvLyBGSVhNRToKIC8vIGNvbnRpbnVlIHdvcmtpbmcgb24gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQyCiAvLyAgLSBhZGQgYSB0ZXN0IHRvIHZlcmlm
eSBjbGlwcGluZyB0aGF0IGNoYW5nZXMgdGhlICJjZW50ZXIgcG9pbnQiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137618</attachid>
            <date>2012-04-17 15:17:46 -0700</date>
            <delta_ts>2012-04-18 12:38:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84059-20120417151745.patch</filename>
            <type>text/plain</type>
            <size>9733</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY5YWM0Zjg4ZmMzMTU3
NGNjNDhlMGI0YTg3Njc1ZmE4NzA5ZjMwOS4uN2E5NzEyZTM4YWI0MDRkOGFhOTRkMzBkNTdmYTQ1
OWUwODNiMTkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA0LTE3ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
cmUtaW1wbGVtZW50IGJhY2tGYWNlVmlzaWJpbGl0eSB0byBhdm9pZCBkZWFsaW5nIHdpdGggcGVy
c3BlY3RpdmUgdzwwIHByb2JsZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5pdCB0ZXN0IGFkZGVkIHRvIENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qu
Y3BwLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgaW1wbGVtZW50YXRpb24gb2Yg
YmFja0ZhY2VJc1Zpc2libGUgc28gdGhhdAorICAgICAgICBpdCBkb2Vzbid0IG5lZWQgdG8gZGVh
bCB3aXRoIGdlb21ldHJ5IHRoYXQgdHJhbnNmb3JtcyB0byB3PDAKKyAgICAgICAgYmVjYXVzZSBv
ZiBwZXJzcGVjdGl2ZSBwcm9qZWN0aW9uLiBJbnN0ZWFkLCBpdCBpcyBlcXVhbGx5IGNvcnJlY3QK
KyAgICAgICAgdG8gc2ltcGx5IHVzZSB0aGUgaW52ZXJzZS10cmFuc3Bvc2Ugb2YgdGhlIG1hdHJp
eCwgYW5kIHF1aWNrbHkKKyAgICAgICAgY2hlY2sgdGhlIHRoaXJkIHJvdywgdGhpcmQgY29sdW1u
IGVsZW1lbnQuCisKKyAgICAgICAgTWFraW5nIHRoaXMgY2hhbmdlIGZpeGVzIHNvbWUgaXNzdWVz
IHJlbGF0ZWQgdG8gZGlzYXBwZWFyaW5nCisgICAgICAgIGxheWVycyAod2hlcmUgdGhlIGNvbXBv
c2l0b3IgaW5jb3JyZWN0bHkgdGhyb3VnaCB0aGF0IHRoZSBiYWNrCisgICAgICAgIGZhY2Ugd2Fz
IHZpc2libGUsIGFuZCBza2lwcGVkIHRoZSBsYXllcikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpiYWNrRmFjZUlzVmlzaWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjYWxjdWxhdGVWaXNpYmxlTGF5ZXJSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OmxheWVyU2hvdWxkQmVTa2lwcGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaDoKKyAgICAgICAgKENDTGF5ZXJUcmVl
SG9zdENvbW1vbik6CisKIDIwMTItMDQtMTYgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5p
QHBhbG0uY29tPgogCiAgICAgICAgIG1hdGNoTWVkaWEoKSBNZWRpYVF1ZXJ5TGlzdCBub3QgdXBk
YXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTA5MmQ4ZDc1NjkxY2QyY2JlMzcw
MTk5ZjlhNzY0MDY5YzQ1Y2U0MC4uZjAwMmU4MTM0NjU5Yzk5OTdkZjdjYjk5MDY4YTQ5ZTM2MWQy
OTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0w
NC0xNyAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Y2hyb21pdW1dIHJlLWltcGxlbWVudCBiYWNrRmFjZVZpc2liaWxpdHkgdG8gYXZvaWQgZGVhbGlu
ZyB3aXRoIHBlcnNwZWN0aXZlIHc8MCBwcm9ibGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5j
cHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVCk6CisgICAgICAgIChXZWJLaXRUZXN0cyk6
CisKIDIwMTItMDQtMTYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBSZW1vdmUgQmxvYlJlZ2lzdHJ5UHJveHk6OmNyZWF0ZVJlc291cmNl
SGFuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAppbmRleCA2
MDAyMGI1ZjU1NGVlNTJiYTI1ZjJkMmQ1MDNiZWFkNjk0YjNhYTk2Li4wN2UyMTNjYjEwM2I3OTZl
NGMwYjEyYTI0MmI2ZjFiZTFlNzg1NDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdENvbW1vbi5jcHAKQEAgLTQyLDE4ICs0MiwyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBiYWNr
RmFjZUlzVmlzaWJsZShMYXllclR5cGUqIGxheWVyKQorYm9vbCBDQ0xheWVyVHJlZUhvc3RDb21t
b246OmJhY2tGYWNlSXNWaXNpYmxlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0pCiB7Ci0gICAgLy8gVGhpcyBpcyBjaGVja2VkIGJ5IGNvbXB1dGluZyB0aGUgdHJhbnNmb3Jt
ZWQgbm9ybWFsIG9mIHRoZSBsYXllciBpbiBzY3JlZW4gc3BhY2UuCi0gICAgRmxvYXRSZWN0IGxh
eWVyUmVjdChGbG9hdFBvaW50KDAsIDApLCBGbG9hdFNpemUobGF5ZXItPmJvdW5kcygpKSk7Ci0g
ICAgRmxvYXRRdWFkIG1hcHBlZExheWVyID0gbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCku
bWFwUXVhZChGbG9hdFF1YWQobGF5ZXJSZWN0KSk7Ci0gICAgRmxvYXRTaXplIGhvcml6b250YWxE
aXIgPSBtYXBwZWRMYXllci5wMigpIC0gbWFwcGVkTGF5ZXIucDEoKTsKLSAgICBGbG9hdFNpemUg
dmVydGljYWxEaXIgPSBtYXBwZWRMYXllci5wNCgpIC0gbWFwcGVkTGF5ZXIucDEoKTsKLSAgICBG
bG9hdFBvaW50M0QgeEF4aXMoaG9yaXpvbnRhbERpci53aWR0aCgpLCBob3Jpem9udGFsRGlyLmhl
aWdodCgpLCAwKTsKLSAgICBGbG9hdFBvaW50M0QgeUF4aXModmVydGljYWxEaXIud2lkdGgoKSwg
dmVydGljYWxEaXIuaGVpZ2h0KCksIDApOwotICAgIEZsb2F0UG9pbnQzRCB6QXhpcyA9IHhBeGlz
LmNyb3NzKHlBeGlzKTsKLSAgICByZXR1cm4gekF4aXMueigpIDwgMDsKKyAgICAvLyBCYWNrZmFj
ZSB2aXNpYmlsaXR5IGlzIGNoZWNrZWQgYnkgY29tcHV0aW5nIHRoZSB0cmFuc2Zvcm1lZCBub3Jt
YWwgb2YgdGhlIGxheWVyIGluCisgICAgLy8gdGhlIHByb2plY3RlZCBzcGFjZSwgYW5kIGxvb2tp
bmcgYXQgd2hldGhlciBpdCBwb2ludHMgdG93YXJkcyB0aGUgc2NyZWVuIG9yIGF3YXkKKyAgICAv
LyBmcm9tIHRoZSBzY3JlZW4uCisgICAgLy8KKyAgICAvLyBOb3RlOgorICAgIC8vIC0gVGhlIHVu
LXRyYW5zZm9ybWVkIG5vcm1hbCB2ZWN0b3IgaXMgKDAsIDAsIDEsIDApLCBpLmUuIGEgdW5pdCB2
ZWN0b3IgYWxvbmcgdGhlIHotYXhpcy4KKyAgICAvLyAtIEluIHRoZSBtYXRoIG9mIHRyYW5zZm9y
bWF0aW9uIG1hdHJpY2VzLCBub3JtYWxzIGNhbm5vdCBiZSB0cmFuc2Zvcm1lZCBieSB0aGUKKyAg
ICAvLyAgIG9yaWdpbmFsIHRyYW5zZm9ybS4gVGhleSBtdXN0IGJlIHRyYW5zZm9ybWVkIGJ5IHRo
ZSBpbnZlcnNlLXRyYW5zcG9zZS4KKyAgICAvLyAtIGludmVyc2VUcmFuc3Bvc2UubTMzKCkgd291
bGQgYmUgdGhlIHNhbWUgYXMgaW52ZXJzZS5tMzMoKS4gU28gd2UgZG9uJ3QgbmVlZCB0bworICAg
IC8vICAgdHJhbnNwb3NlIHRoZSBtYXRyaXggZXhwbGljaXRseS4KKyAgICAvLyAtIElmIHRoZSBt
YXRyaXggaXMgbm90IGludmVydGlibGUsIHdlIGp1c3QgYXNzdW1lIGl0IGlzIG5vdCB2aXNpYmxl
LgorICAgIC8vCisKKyAgICBpZiAodHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKSB7CisgICAgICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGludmVyc2UgPSB0cmFuc2Zvcm0uaW52ZXJzZSgpOworICAg
ICAgICByZXR1cm4gaW52ZXJzZS5tMzMoKSA8IDA7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNl
OwogfQogCiBJbnRSZWN0IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJl
Y3QoY29uc3QgSW50UmVjdCYgdGFyZ2V0U3VyZmFjZVJlY3QsIGNvbnN0IEludFJlY3QmIGxheWVy
Qm91bmRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQpAQCAtODYs
NyArOTUsNyBAQCBzdGF0aWMgSW50UmVjdCBjYWxjdWxhdGVWaXNpYmxlTGF5ZXJSZWN0KExheWVy
VHlwZSogbGF5ZXIpCiAKICAgICAvLyBBbmltYXRlZCBsYXllcnMgY2FuIGV4aXN0IGluIHRoZSBy
ZW5kZXIgc3VyZmFjZSB0cmVlIHRoYXQgYXJlIG5vdCB2aXNpYmxlIGN1cnJlbnRseQogICAgIC8v
IGFuZCBoYXZlIHRoZWlyIGJhY2sgZmFjZSBzaG93aW5nLiBJbiB0aGlzIGNhc2UsIHRoZWlyIHZp
c2libGUgcmVjdCBzaG91bGQgYmUgZW1wdHkuCi0gICAgaWYgKCFsYXllci0+ZG91YmxlU2lkZWQo
KSAmJiBiYWNrRmFjZUlzVmlzaWJsZShsYXllcikpCisgICAgaWYgKCFsYXllci0+ZG91YmxlU2lk
ZWQoKSAmJiBDQ0xheWVyVHJlZUhvc3RDb21tb246OmJhY2tGYWNlSXNWaXNpYmxlKGxheWVyLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKSkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAogICAg
IEludFJlY3QgdGFyZ2V0U3VyZmFjZVJlY3QgPSBsYXllci0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgp
LT5jb250ZW50UmVjdCgpOwpAQCAtMTc0LDcgKzE4Myw3IEBAIHN0YXRpYyBib29sIGxheWVyU2hv
dWxkQmVTa2lwcGVkKExheWVyVHlwZSogbGF5ZXIpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gVGhlIGxheWVyIHNob3VsZCBub3QgYmUgZHJhd24gaWYgKDEpIGl0IGlzIG5vdCBkb3Vi
bGUtc2lkZWQgYW5kICgyKSB0aGUgYmFjayBvZiB0aGUgbGF5ZXIgaXMga25vd24gdG8gYmUgZmFj
aW5nIHRoZSBzY3JlZW4uCi0gICAgaWYgKCFsYXllci0+ZG91YmxlU2lkZWQoKSAmJiB0cmFuc2Zv
cm1Ub1NjcmVlbklzS25vd24obGF5ZXIpICYmIGJhY2tGYWNlSXNWaXNpYmxlKGxheWVyKSkKKyAg
ICBpZiAoIWxheWVyLT5kb3VibGVTaWRlZCgpICYmIHRyYW5zZm9ybVRvU2NyZWVuSXNLbm93bihs
YXllcikgJiYgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpiYWNrRmFjZUlzVmlzaWJsZShsYXllci0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaAppbmRleCAz
NzYyZjY0YjE5YjMxMzQ5OThlNDBiNDQ3NjM4YTI0NmYxMjQ4YmJiLi40OGFhOWYyNTA0OWFjZTBk
Y2I1NTlmMzk1M2VmYTdiYTQyMzg0NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3RDb21tb24uaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBMYXllckNocm9taXVtOwogY2xhc3Mg
Q0NMYXllclRyZWVIb3N0Q29tbW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSW50UmVjdCBjYWxj
dWxhdGVWaXNpYmxlUmVjdChjb25zdCBJbnRSZWN0JiB0YXJnZXRTdXJmYWNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgbGF5ZXJCb3VuZFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Cisg
ICAgc3RhdGljIGJvb2wgYmFja0ZhY2VJc1Zpc2libGUoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmKTsKIAogICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJp
bGl0eShMYXllckNocm9taXVtKiwgTGF5ZXJDaHJvbWl1bSogcm9vdExheWVyLCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgcGFyZW50TWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgZnVsbEhpZXJhcmNoeU1hdHJpeCwgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+JiBy
ZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIGxh
eWVyTGlzdCwgaW50IG1heFRleHR1cmVTaXplKTsKICAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkoQ0NMYXllckltcGwqLCBDQ0xheWVySW1wbCogcm9v
dExheWVyLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFyZW50TWF0cml4LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgZnVsbEhpZXJhcmNoeU1hdHJpeCwgVmVjdG9yPENDTGF5ZXJJ
bXBsKj4mIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIFZlY3RvcjxDQ0xheWVySW1wbCo+JiBsYXll
ckxpc3QsIENDTGF5ZXJTb3J0ZXIqLCBpbnQgbWF4VGV4dHVyZVNpemUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVz
dC5jcHAKaW5kZXggNTFhMDMyNjE4ZDUzODU3NTBkNTUwZDdlYWU2ZjliMDZmNjdiNTFjYS4uMDA2
YTI4MTUyMzQ2MjRhMTI1OWE0OTg0OGU5MTNmYjg2YzlmZjU2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qu
Y3BwCkBAIC0xMzI1LDYgKzEzMjUsNDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LCB2ZXJpZnlCYWNrRmFjZUN1bGxpbmcpCiAgICAgRVhQRUNUX1RSVUUoY2hpbGRPZkFuaW1hdGlu
Z1N1cmZhY2UtPnZpc2libGVMYXllclJlY3QoKS5pc0VtcHR5KCkpOwogfQogCitURVNUKENDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUJhY2tmYWNlVmlzaWJpbGl0eUZvclBlcnNwZWN0
aXZlKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyU3BhY2VUb1Byb2plY3Rpb25Q
bGFuZTsKKworICAgIC8vIFRoaXMgdGVzdHMgaWYgYmFja0ZhY2VJc1Zpc2libGUgd29ya3MgcHJv
cGVybHkgdW5kZXIgcGVyc3BlY3RpdmUgdHJhbnNmb3Jtcy4KKyAgICAvLyBTcGVjaWZpY2FsbHks
IGxheWVycyB0aGF0IG1heSBoYXZlIHRoZWlyIGJhY2sgZmFjZSB2aXNpYmxlIGluIG9ydGhvZ3Jh
cGhpYworICAgIC8vIHByb2plY3Rpb24sIG1heSBub3QgYWN0dWFsbHkgaGF2ZSBiYWNrIGZhY2Ug
dmlzaWJsZSB1bmRlciBwZXJzcGVjdGl2ZSBwcm9qZWN0aW9uLgorCisgICAgLy8gQ2FzZSAxOiBM
YXllciBpcyByb3RhdGVkIGJ5IHNsaWdodGx5IG1vcmUgdGhhbiA5MCBkZWdyZWVzLCBhdCB0aGUg
Y2VudGVyIG9mIHRoZQorICAgIC8vICAgICAgICAgcHJlc3BlY3RpdmUgcHJvamVjdGlvbi4gSW4g
dGhpcyBjYXNlLCB0aGUgbGF5ZXIncyBiYWNrLXNpZGUgaXMgdmlzaWJsZSB0bworICAgIC8vICAg
ICAgICAgdGhlIGNhbWVyYS4KKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUubWFrZUlk
ZW50aXR5KCk7CisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLmFwcGx5UGVyc3BlY3Rp
dmUoMSk7CisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLnRyYW5zbGF0ZTNkKDAsIDAs
IDApOworICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5yb3RhdGUzZCgwLCAxMDAsIDAp
OworICAgIEVYUEVDVF9UUlVFKENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6YmFja0ZhY2VJc1Zpc2li
bGUobGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lKSk7CisKKyAgICAvLyBDYXNlIDI6IExheWVy
IGlzIHJvdGF0ZWQgYnkgc2xpZ2h0bHkgbW9yZSB0aGFuIDkwIGRlZ3JlZXMsIGJ1dCBzaGlmdGVk
IG9mZiB0byB0aGUKKyAgICAvLyAgICAgICAgIHNpZGUgb2YgdGhlIGNhbWVyYS4gQmVjYXVzZSBv
ZiB0aGUgd2lkZSBmaWVsZC1vZi12aWV3LCB0aGUgbGF5ZXIncyBmcm9udAorICAgIC8vICAgICAg
ICAgc2lkZSBpcyBzdGlsbCB2aXNpYmxlLgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAgIHw8LS0gZnJvbnQgc2lkZSBvZiBsYXllciBpcyB2aXNpYmxlIHRvIHBlcnNwZWN0aXZl
IGNhbWVyYQorICAgIC8vICAgICAgICAgICAgICAgICAgICBcICB8ICAgICAgICAgICAgLworICAg
IC8vICAgICAgICAgICAgICAgICAgICAgXCB8ICAgICAgICAgICAvCisgICAgLy8gICAgICAgICAg
ICAgICAgICAgICAgXHwgICAgICAgICAgLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICB8
ICAgICAgICAgLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICB8XCAgICAgICAvPC0tIGNh
bWVyYSBmaWVsZCBvZiB2aWV3CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIHwgXCAgICAg
LworICAgIC8vIGJhY2sgc2lkZSBvZiBsYXllciAtLT58ICBcICAgLworICAgIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXC4vIDwtLSBjYW1lcmEgb3JpZ2luCisgICAgLy8KKyAgICBsYXll
clNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUubWFrZUlkZW50aXR5KCk7CisgICAgbGF5ZXJTcGFjZVRv
UHJvamVjdGlvblBsYW5lLmFwcGx5UGVyc3BlY3RpdmUoMSk7CisgICAgbGF5ZXJTcGFjZVRvUHJv
amVjdGlvblBsYW5lLnRyYW5zbGF0ZTNkKC0xMCwgMCwgMCk7CisgICAgbGF5ZXJTcGFjZVRvUHJv
amVjdGlvblBsYW5lLnJvdGF0ZTNkKDAsIDEwMCwgMCk7CisgICAgRVhQRUNUX0ZBTFNFKENDTGF5
ZXJUcmVlSG9zdENvbW1vbjo6YmFja0ZhY2VJc1Zpc2libGUobGF5ZXJTcGFjZVRvUHJvamVjdGlv
blBsYW5lKSk7CisKKyAgICAvLyBDYXNlIDM6IEFkZGl0aW9uYWxseSByb3RhdGluZyB0aGUgbGF5
ZXIgYnkgMTgwIGRlZ3JlZXMgc2hvdWxkIG9mIGNvdXJzZSBzaG93IHRoZQorICAgIC8vICAgICAg
ICAgb3Bwb3NpdGUgcmVzdWx0IG9mIGNhc2UgMi4KKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9u
UGxhbmUucm90YXRlM2QoMCwgMTgwLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShDQ0xheWVyVHJlZUhv
c3RDb21tb246OmJhY2tGYWNlSXNWaXNpYmxlKGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZSkp
OworfQorCiAvLyBGSVhNRToKIC8vIGNvbnRpbnVlIHdvcmtpbmcgb24gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQyCiAvLyAgLSBhZGQgYSB0ZXN0IHRvIHZlcmlm
eSBjbGlwcGluZyB0aGF0IGNoYW5nZXMgdGhlICJjZW50ZXIgcG9pbnQiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137740</attachid>
            <date>2012-04-18 12:39:02 -0700</date>
            <delta_ts>2012-04-23 11:38:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84059-20120418123900.patch</filename>
            <type>text/plain</type>
            <size>12553</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAwN2E1ZWJmMTNhODU1
YTQ2NGY0OGM0YmEzMDFhMmE3NWE3ZTRjYy4uOTlkNzI3ZjY0NTg5NDk4MWYxZGQ5Y2JlZWQ2YWM1
YmQ3Y2VmYzFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA0LTE4ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
cmUtaW1wbGVtZW50IGJhY2tGYWNlVmlzaWJpbGl0eSB0byBhdm9pZCBkZWFsaW5nIHdpdGggcGVy
c3BlY3RpdmUgdzwwIHByb2JsZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5pdCB0ZXN0cyBhZGRlZCB0byBDQ01hdGhVdGlsVGVzdC5jcHAuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBiYWNrRmFjZUlz
VmlzaWJsZSBzbyB0aGF0CisgICAgICAgIGl0IGRvZXNuJ3QgbmVlZCB0byBkZWFsIHdpdGggdGhl
IHc8MCBwcm9ibGVtIGZyb20gb2YgcGVyc3BlY3RpdmUKKyAgICAgICAgcHJvamVjdGlvbnMuIElu
c3RlYWQsIGl0IGlzIGVxdWFsbHkgY29ycmVjdCB0byBzaW1wbHkgdXNlIHRoZQorICAgICAgICBp
bnZlcnNlLXRyYW5zcG9zZSBvZiB0aGUgbWF0cml4LCBhbmQgcXVpY2tseSBjaGVjayB0aGUgdGhp
cmQgcm93LAorICAgICAgICB0aGlyZCBjb2x1bW4gZWxlbWVudC4KKworICAgICAgICBNYWtpbmcg
dGhpcyBjaGFuZ2UgZml4ZXMgc29tZSBpc3N1ZXMgcmVsYXRlZCB0byBkaXNhcHBlYXJpbmcKKyAg
ICAgICAgbGF5ZXJzICh3aGVyZSB0aGUgY29tcG9zaXRvciBpbmNvcnJlY3RseSB0aG91Z2h0IHRo
YXQgdGhlIGJhY2sKKyAgICAgICAgZmFjZSB3YXMgdmlzaWJsZSwgYW5kIHNraXBwZWQgdGhlIGxh
eWVyKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVWaXNpYmxlTGF5
ZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmxheWVyU2hvdWxkQmVTa2lwcGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Ojppc0JhY2tGYWNlVmlz
aWJsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6CisgICAgICAgIChUcmFuc2Zvcm1hdGlv
bk1hdHJpeCk6CisKIDIwMTItMDQtMTggIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1MgRmlsdGVyc10gRHJvcC1zaGFkb3cgYW5kIGJsdXIgY2Fu
IGF2b2lkIHVzaW5nIGZ1bGwgc291cmNlIGltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDQ2OTE5ZTRkOTNlNzRiNzhhYzA0MzdmMDg2NzgwNzE0NmZiODEzNDMuLjVmMzkzNmNhYzY5
MTQzZWVlZDMxYmE3ZTZkMGMwY2E0M2MwMzc0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMTggIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSByZS1pbXBsZW1lbnQgYmFja0ZhY2VW
aXNpYmlsaXR5IHRvIGF2b2lkIGRlYWxpbmcgd2l0aCBwZXJzcGVjdGl2ZSB3PDAgcHJvYmxlbQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5n
eXBpOgorICAgICAgICAqIHRlc3RzL0NDTWF0aFV0aWxUZXN0LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEyLTA0LTE4ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
XSBSRUdSRVNTSU9OOiBQb3B1cCBzaHJpbmtzIGJlY2F1c2Ugb2YgYXV0b2NvbXBsZXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAppbmRleCA2MDAyMGI1ZjU1NGVl
NTJiYTI1ZjJkMmQ1MDNiZWFkNjk0YjNhYTk2Li41MTFlODM3ZGM4ZGFiYzNjNWM5MTE2YmYzM2U1
MmYwNGFlNmFiNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5j
cHAKQEAgLTQyLDIwICs0Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgTGF5ZXJUeXBlPgotc3RhdGljIGlubGluZSBib29sIGJhY2tGYWNlSXNWaXNpYmxl
KExheWVyVHlwZSogbGF5ZXIpCi17Ci0gICAgLy8gVGhpcyBpcyBjaGVja2VkIGJ5IGNvbXB1dGlu
ZyB0aGUgdHJhbnNmb3JtZWQgbm9ybWFsIG9mIHRoZSBsYXllciBpbiBzY3JlZW4gc3BhY2UuCi0g
ICAgRmxvYXRSZWN0IGxheWVyUmVjdChGbG9hdFBvaW50KDAsIDApLCBGbG9hdFNpemUobGF5ZXIt
PmJvdW5kcygpKSk7Ci0gICAgRmxvYXRRdWFkIG1hcHBlZExheWVyID0gbGF5ZXItPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFF1YWQobGF5ZXJSZWN0KSk7Ci0gICAgRmxvYXRT
aXplIGhvcml6b250YWxEaXIgPSBtYXBwZWRMYXllci5wMigpIC0gbWFwcGVkTGF5ZXIucDEoKTsK
LSAgICBGbG9hdFNpemUgdmVydGljYWxEaXIgPSBtYXBwZWRMYXllci5wNCgpIC0gbWFwcGVkTGF5
ZXIucDEoKTsKLSAgICBGbG9hdFBvaW50M0QgeEF4aXMoaG9yaXpvbnRhbERpci53aWR0aCgpLCBo
b3Jpem9udGFsRGlyLmhlaWdodCgpLCAwKTsKLSAgICBGbG9hdFBvaW50M0QgeUF4aXModmVydGlj
YWxEaXIud2lkdGgoKSwgdmVydGljYWxEaXIuaGVpZ2h0KCksIDApOwotICAgIEZsb2F0UG9pbnQz
RCB6QXhpcyA9IHhBeGlzLmNyb3NzKHlBeGlzKTsKLSAgICByZXR1cm4gekF4aXMueigpIDwgMDsK
LX0KLQogSW50UmVjdCBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0
KGNvbnN0IEludFJlY3QmIHRhcmdldFN1cmZhY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBsYXllckJv
dW5kUmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKIHsKICAgICAv
LyBJcyB0aGlzIGxheWVyIGZ1bGx5IGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRhcmdldCBzdXJmYWNl
PwpAQCAtODYsNyArNzIsNyBAQCBzdGF0aWMgSW50UmVjdCBjYWxjdWxhdGVWaXNpYmxlTGF5ZXJS
ZWN0KExheWVyVHlwZSogbGF5ZXIpCiAKICAgICAvLyBBbmltYXRlZCBsYXllcnMgY2FuIGV4aXN0
IGluIHRoZSByZW5kZXIgc3VyZmFjZSB0cmVlIHRoYXQgYXJlIG5vdCB2aXNpYmxlIGN1cnJlbnRs
eQogICAgIC8vIGFuZCBoYXZlIHRoZWlyIGJhY2sgZmFjZSBzaG93aW5nLiBJbiB0aGlzIGNhc2Us
IHRoZWlyIHZpc2libGUgcmVjdCBzaG91bGQgYmUgZW1wdHkuCi0gICAgaWYgKCFsYXllci0+ZG91
YmxlU2lkZWQoKSAmJiBiYWNrRmFjZUlzVmlzaWJsZShsYXllcikpCisgICAgaWYgKCFsYXllci0+
ZG91YmxlU2lkZWQoKSAmJiBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5pc0JhY2tGYWNl
VmlzaWJsZSgpKQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAgICAgSW50UmVjdCB0YXJn
ZXRTdXJmYWNlUmVjdCA9IGxheWVyLT50YXJnZXRSZW5kZXJTdXJmYWNlKCktPmNvbnRlbnRSZWN0
KCk7CkBAIC0xNzQsNyArMTYwLDcgQEAgc3RhdGljIGJvb2wgbGF5ZXJTaG91bGRCZVNraXBwZWQo
TGF5ZXJUeXBlKiBsYXllcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBUaGUgbGF5
ZXIgc2hvdWxkIG5vdCBiZSBkcmF3biBpZiAoMSkgaXQgaXMgbm90IGRvdWJsZS1zaWRlZCBhbmQg
KDIpIHRoZSBiYWNrIG9mIHRoZSBsYXllciBpcyBrbm93biB0byBiZSBmYWNpbmcgdGhlIHNjcmVl
bi4KLSAgICBpZiAoIWxheWVyLT5kb3VibGVTaWRlZCgpICYmIHRyYW5zZm9ybVRvU2NyZWVuSXNL
bm93bihsYXllcikgJiYgYmFja0ZhY2VJc1Zpc2libGUobGF5ZXIpKQorICAgIGlmICghbGF5ZXIt
PmRvdWJsZVNpZGVkKCkgJiYgdHJhbnNmb3JtVG9TY3JlZW5Jc0tub3duKGxheWVyKSAmJiBsYXll
ci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5pc0JhY2tGYWNlVmlzaWJsZSgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1h
dGlvbk1hdHJpeC5jcHAKaW5kZXggYTYzNzdlZTU4ZjE4YWYxYjAxMmIwMjZmYWNkY2EyNGUyNTU0
NzFmMC4uMjRkOTYwZmUzMGE2ZDczYzA2ODIzNjI0YTJmZTkyNDQ5YzIzYTJhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1h
dGlvbk1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKQEAgLTEyMjQsNCArMTIyNCwzMiBAQCB2
b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojp0b0NvbHVtbk1ham9yRmxvYXRBcnJheShGbG9hdE1h
dHJpeDQmIHJlc3VsdCkgY29uc3QKICAgICByZXN1bHRbMTVdID0gbTQ0KCk7CiB9CiAKK2Jvb2wg
VHJhbnNmb3JtYXRpb25NYXRyaXg6OmlzQmFja0ZhY2VWaXNpYmxlKCkgY29uc3QKK3sKKyAgICAv
LyBCYWNrLWZhY2UgdmlzaWJpbGl0eSBpcyBkZXRlcm1pbmVkIGJ5IHRyYW5zZm9ybWluZyB0aGUg
bm9ybWFsIHZlY3RvciAoMCwgMCwgMSkgYW5kCisgICAgLy8gY2hlY2tpbmcgdGhlIHNpZ24gb2Yg
dGhlIHJlc3VsdGluZyB6IGNvbXBvbmVudC4gSG93ZXZlciwgbm9ybWFscyBjYW5ub3QgYmUKKyAg
ICAvLyB0cmFuc2Zvcm1lZCBieSB0aGUgb3JpZ2luYWwgbWF0cml4LCB0aGV5IHJlcXVpcmUgYmVp
bmcgdHJhbnNmb3JtZWQgYnkgdGhlCisgICAgLy8gaW52ZXJzZS10cmFuc3Bvc2UuCisgICAgLy8K
KyAgICAvLyBTaW5jZSB3ZSBrbm93IHdlIHdpbGwgYmUgdXNpbmcgKDAsIDAsIDEpLCBhbmQgd2Ug
b25seSBjYXJlIGFib3V0IHRoZSB6LWNvbXBvbmVudCBvZgorICAgIC8vIHRoZSB0cmFuc2Zvcm1l
ZCBub3JtYWwsIHRoZW4gd2Ugb25seSBuZWVkIHRoZSBtMzMoKSBlbGVtZW50IG9mIHRoZQorICAg
IC8vIGludmVyc2UtdHJhbnNwb3NlLiBUaGVyZWZvcmUgd2UgZG8gbm90IG5lZWQgdGhlIHRyYW5z
cG9zZS4KKyAgICAvLworICAgIC8vIEFkZGl0aW9uYWxseSwgaWYgd2Ugb25seSBuZWVkIHRoZSBt
MzMoKSBlbGVtZW50LCB3ZSBkbyBub3QgbmVlZCB0byBjb21wdXRlIGEgZnVsbAorICAgIC8vIGlu
dmVyc2UuIEluc3RlYWQsIGtub3dpbmcgdGhlIGludmVyc2Ugb2YgYSBtYXRyaXggaXMgYWRqb2lu
dChtYXRyaXgpIC8gZGV0ZXJtaW5hbnQsCisgICAgLy8gd2UgY2FuIHNpbXBseSBjb21wdXRlIHRo
ZSBtMzMoKSBvZiB0aGUgYWRqb2ludCAoYWRqdWdhdGUpIG1hdHJpeCwgd2l0aG91dCBjb21wdXRp
bmcKKyAgICAvLyB0aGUgZnVsbCBhZGpvaW50LgorCisgICAgZG91YmxlIGRldGVybWluYW50ID0g
V2ViQ29yZTo6ZGV0ZXJtaW5hbnQ0eDQobV9tYXRyaXgpOworCisgICAgLy8gSWYgdGhlIG1hdHJp
eCBpcyBub3QgaW52ZXJ0aWJsZSwgdGhlbiB3ZSBhc3N1bWUgaXRzIGJhY2tmYWNlIGlzIG5vdCB2
aXNpYmxlLgorICAgIGlmIChmYWJzKGRldGVybWluYW50KSA8IFNNQUxMX05VTUJFUikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgZG91YmxlIGNvZmFjdG9yMzMgPSBkZXRlcm1pbmFudDN4
MyhtMTEoKSwgbTEyKCksIG0xNCgpLCBtMjEoKSwgbTIyKCksIG0yNCgpLCBtNDEoKSwgbTQyKCks
IG00NCgpKTsKKyAgICBkb3VibGUgekNvbXBvbmVudE9mVHJhbnNmb3JtZWROb3JtYWwgPSBjb2Zh
Y3RvcjMzIC8gZGV0ZXJtaW5hbnQ7CisKKyAgICByZXR1cm4gekNvbXBvbmVudE9mVHJhbnNmb3Jt
ZWROb3JtYWwgPCAwOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgK
aW5kZXggNWI1ZGFkNTIwYTRjNmVlMTliYjlkOGVhZTZjNzY0ZDgzOTFmMWViNS4uMGU0MTZmNjdi
OTYwNWUxZjYzZjk4Nzc3MTVmYjE1YTI5MDZmODEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3Jt
YXRpb25NYXRyaXguaApAQCAtMzYwLDYgKzM2MCw4IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIGZs
b2F0IEZsb2F0TWF0cml4NFsxNl07CiAgICAgdm9pZCB0b0NvbHVtbk1ham9yRmxvYXRBcnJheShG
bG9hdE1hdHJpeDQmIHJlc3VsdCkgY29uc3Q7CiAKKyAgICBib29sIGlzQmFja0ZhY2VWaXNpYmxl
KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgLy8gbXVsdGlwbHkgcGFzc2VkIDJEIHBvaW50IGJ5
IG1hdHJpeCAoYXNzdW1lIHo9MCkKICAgICB2b2lkIG11bHRWZWNNYXRyaXgoZG91YmxlIHgsIGRv
dWJsZSB5LCBkb3VibGUmIGRzdFgsIGRvdWJsZSYgZHN0WSkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQppbmRleCA5YWJjMWY4ZTRhNGRiN2ZlNjAwNDNhZDE4ZTcwMGQ1ZDcxN2Zm
MmI5Li4wNTg0Y2I3Mjc5YTExZDdhMjhlNzFmYjA3YmIyN2QwOGM1MTdjOTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTc4LDYgKzc4LDcgQEAKICAgICAgICAgICAgICd0ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZVRlc3RD
b21tb24uaCcsCisgICAgICAgICAgICAndGVzdHMvQ0NNYXRoVXRpbFRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdENvbW1vbi5oJywKICAgICAgICAgICAgICd0ZXN0
cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTWF0aFV0aWxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NNYXRoVXRpbFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NDEyMjJkZDY1NGZiMWYwYWY1NmY3
NDJjZjQ1OGQyMzY4M2YzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTWF0aFV0aWxUZXN0LmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiY2MvQ0NNYXRoVXRpbC5oIgor
CisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKworI2luY2x1ZGUgPGdtb2NrL2dt
b2NrLmg+CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSB7CisKK1RFU1QoQ0NNYXRoVXRpbFRlc3QsIHZlcmlmeUJhY2tmYWNl
VmlzaWJpbGl0eUJhc2ljQ2FzZXMpCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNm
b3JtOworCisgICAgdHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOworICAgIEVYUEVDVF9GQUxTRSh0
cmFuc2Zvcm0uaXNCYWNrRmFjZVZpc2libGUoKSk7CisKKyAgICB0cmFuc2Zvcm0ubWFrZUlkZW50
aXR5KCk7CisgICAgdHJhbnNmb3JtLnJvdGF0ZTNkKDAsIDgwLCAwKTsKKyAgICBFWFBFQ1RfRkFM
U0UodHJhbnNmb3JtLmlzQmFja0ZhY2VWaXNpYmxlKCkpOworCisgICAgdHJhbnNmb3JtLm1ha2VJ
ZGVudGl0eSgpOworICAgIHRyYW5zZm9ybS5yb3RhdGUzZCgwLCAxMDAsIDApOworICAgIEVYUEVD
VF9UUlVFKHRyYW5zZm9ybS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKKworICAgIC8vIEVkZ2UgY2Fz
ZSwgOTAgZGVncmVlIHJvdGF0aW9uIHNob3VsZCByZXR1cm4gZmFsc2UuCisgICAgdHJhbnNmb3Jt
Lm1ha2VJZGVudGl0eSgpOworICAgIHRyYW5zZm9ybS5yb3RhdGUzZCgwLCA5MCwgMCk7CisgICAg
RVhQRUNUX0ZBTFNFKHRyYW5zZm9ybS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKKyAgICAKK30KKwor
VEVTVChDQ01hdGhVdGlsVGVzdCwgdmVyaWZ5QmFja2ZhY2VWaXNpYmlsaXR5Rm9yUGVyc3BlY3Rp
dmUpCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBs
YW5lOworCisgICAgLy8gVGhpcyB0ZXN0cyBpZiBpc0JhY2tGYWNlVmlzaWJsZSB3b3JrcyBwcm9w
ZXJseSB1bmRlciBwZXJzcGVjdGl2ZSB0cmFuc2Zvcm1zLgorICAgIC8vIFNwZWNpZmljYWxseSwg
bGF5ZXJzIHRoYXQgbWF5IGhhdmUgdGhlaXIgYmFjayBmYWNlIHZpc2libGUgaW4gb3J0aG9ncmFw
aGljCisgICAgLy8gcHJvamVjdGlvbiwgbWF5IG5vdCBhY3R1YWxseSBoYXZlIGJhY2sgZmFjZSB2
aXNpYmxlIHVuZGVyIHBlcnNwZWN0aXZlIHByb2plY3Rpb24uCisKKyAgICAvLyBDYXNlIDE6IExh
eWVyIGlzIHJvdGF0ZWQgYnkgc2xpZ2h0bHkgbW9yZSB0aGFuIDkwIGRlZ3JlZXMsIGF0IHRoZSBj
ZW50ZXIgb2YgdGhlCisgICAgLy8gICAgICAgICBwcmVzcGVjdGl2ZSBwcm9qZWN0aW9uLiBJbiB0
aGlzIGNhc2UsIHRoZSBsYXllcidzIGJhY2stc2lkZSBpcyB2aXNpYmxlIHRvCisgICAgLy8gICAg
ICAgICB0aGUgY2FtZXJhLgorICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5tYWtlSWRl
bnRpdHkoKTsKKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUuYXBwbHlQZXJzcGVjdGl2
ZSgxKTsKKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUudHJhbnNsYXRlM2QoMCwgMCwg
MCk7CisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLnJvdGF0ZTNkKDAsIDEwMCwgMCk7
CisgICAgRVhQRUNUX1RSVUUobGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLmlzQmFja0ZhY2VW
aXNpYmxlKCkpOworCisgICAgLy8gQ2FzZSAyOiBMYXllciBpcyByb3RhdGVkIGJ5IHNsaWdodGx5
IG1vcmUgdGhhbiA5MCBkZWdyZWVzLCBidXQgc2hpZnRlZCBvZmYgdG8gdGhlCisgICAgLy8gICAg
ICAgICBzaWRlIG9mIHRoZSBjYW1lcmEuIEJlY2F1c2Ugb2YgdGhlIHdpZGUgZmllbGQtb2Ytdmll
dywgdGhlIGxheWVyJ3MgZnJvbnQKKyAgICAvLyAgICAgICAgIHNpZGUgaXMgc3RpbGwgdmlzaWJs
ZS4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICB8PC0tIGZyb250IHNpZGUg
b2YgbGF5ZXIgaXMgdmlzaWJsZSB0byBwZXJzcGVjdGl2ZSBjYW1lcmEKKyAgICAvLyAgICAgICAg
ICAgICAgICAgICAgXCAgfCAgICAgICAgICAgIC8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAg
IFwgfCAgICAgICAgICAgLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgIFx8ICAgICAgICAg
IC8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIC8KKyAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgfFwgICAgICAgLzwtLSBjYW1lcmEgZmllbGQgb2YgdmlldworICAg
IC8vICAgICAgICAgICAgICAgICAgICAgICB8IFwgICAgIC8KKyAgICAvLyBiYWNrIHNpZGUgb2Yg
bGF5ZXIgLS0+fCAgXCAgIC8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwuLyA8
LS0gY2FtZXJhIG9yaWdpbgorICAgIC8vCisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5l
Lm1ha2VJZGVudGl0eSgpOworICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5hcHBseVBl
cnNwZWN0aXZlKDEpOworICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS50cmFuc2xhdGUz
ZCgtMTAsIDAsIDApOworICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5yb3RhdGUzZCgw
LCAxMDAsIDApOworICAgIEVYUEVDVF9GQUxTRShsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUu
aXNCYWNrRmFjZVZpc2libGUoKSk7CisKKyAgICAvLyBDYXNlIDM6IEFkZGl0aW9uYWxseSByb3Rh
dGluZyB0aGUgbGF5ZXIgYnkgMTgwIGRlZ3JlZXMgc2hvdWxkIG9mIGNvdXJzZSBzaG93IHRoZQor
ICAgIC8vICAgICAgICAgb3Bwb3NpdGUgcmVzdWx0IG9mIGNhc2UgMi4KKyAgICBsYXllclNwYWNl
VG9Qcm9qZWN0aW9uUGxhbmUucm90YXRlM2QoMCwgMTgwLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShs
YXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUuaXNCYWNrRmFjZVZpc2libGUoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138393</attachid>
            <date>2012-04-23 11:38:46 -0700</date>
            <delta_ts>2012-04-26 13:20:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84059-20120423113845.patch</filename>
            <type>text/plain</type>
            <size>12615</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk1ZWU3ZTJkZWZjZTJk
YzdkZDA2ZmRmZjJiYTg0MWVkNzEwMzBhNi4uMmFiZDE2YjdhMjhkYzhhZDU3N2M4YjRkNmVmMDJk
ZjljOTljZGNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTE4ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlLWltcGxlbWVu
dCBiYWNrRmFjZVZpc2liaWxpdHkgdG8gYXZvaWQgZGVhbGluZyB3aXRoIHBlcnNwZWN0aXZlIHcg
PCAwIHByb2JsZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5pdCB0ZXN0cyBhZGRlZCB0byBDQ01hdGhVdGlsVGVzdC5jcHAuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBiYWNrRmFjZUlzVmlzaWJsZSBz
byB0aGF0CisgICAgICAgIGl0IGRvZXNuJ3QgbmVlZCB0byBkZWFsIHdpdGggdGhlIHcgPCAwIHBy
b2JsZW0gZnJvbSBvZiBwZXJzcGVjdGl2ZQorICAgICAgICBwcm9qZWN0aW9ucy4gSW5zdGVhZCwg
aXQgaXMgZXF1YWxseSBjb3JyZWN0IHRvIHNpbXBseSB1c2UgdGhlCisgICAgICAgIGludmVyc2Ut
dHJhbnNwb3NlIG9mIHRoZSBtYXRyaXgsIGFuZCBxdWlja2x5IGNoZWNrIHRoZSB0aGlyZCByb3cs
CisgICAgICAgIHRoaXJkIGNvbHVtbiBlbGVtZW50LiBBZGRpdGlvbmFsbHksIGl0IHdhcyBhcHBy
b3ByaWF0ZSB0byBtb3ZlCisgICAgICAgIHRoaXMgZnVuY3Rpb24gaW50byBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBpdHNlbGYuCisKKyAgICAgICAgTWFraW5nIHRoaXMgY2hhbmdlIGZpeGVzIHNvbWUg
aXNzdWVzIHJlbGF0ZWQgdG8gZGlzYXBwZWFyaW5nCisgICAgICAgIGxheWVycyBpbiBDaHJvbWl1
bSAod2hlcmUgdGhlIGNvbXBvc2l0b3IgaW5jb3JyZWN0bHkgdGhvdWdodCB0aGF0CisgICAgICAg
IHRoZSBiYWNrIGZhY2Ugd2FzIHZpc2libGUsIGFuZCBza2lwcGVkIHRoZSBsYXllcikuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlVmlzaWJsZUxheWVyUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpsYXllclNob3VsZEJlU2tpcHBlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNCYWNrRmFjZVZpc2libGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oOgorICAgICAgICAoVHJhbnNmb3JtYXRpb25NYXRyaXgpOgor
CiAyMDEyLTA0LTIzICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbVjhdIFBhc3MgSXNvbGF0ZSB0byB0b1Y4KCkgKFBhcnQxKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBjZjI0NWQ4ZmRhYjRlYTI4NGJjMjU0NDc4YTFmOTYxNDkxZDJhYjZkLi40
MzMwYzNiMTNjNDhkNWU4MjRlZjkxYjQ5YThmMGFkM2VmOWJkMjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTE4ICBTaGF3biBTaW5naCAgPHNo
YXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gcmUtaW1wbGVtZW50
IGJhY2tGYWNlVmlzaWJpbGl0eSB0byBhdm9pZCBkZWFsaW5nIHdpdGggcGVyc3BlY3RpdmUgdzww
IHByb2JsZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiB0ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMi0w
NC0yMyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW1dIFByb3Blcmx5IGlnbm9yZSB1bnN1cHBvcnRlZCBhbmltYXRpb24gZGlyZWN0aW9ucy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDYwMDIwYjVm
NTU0ZWU1MmJhMjVmMmQyZDUwM2JlYWQ2OTRiM2FhOTYuLjUxMWU4MzdkYzhkYWJjM2M1YzkxMTZi
ZjMzZTUyZjA0YWU2YWI1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmNwcApAQCAtNDIsMjAgKzQyLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBMYXllclR5cGU+Ci1zdGF0aWMgaW5saW5lIGJvb2wgYmFja0ZhY2VJc1Zp
c2libGUoTGF5ZXJUeXBlKiBsYXllcikKLXsKLSAgICAvLyBUaGlzIGlzIGNoZWNrZWQgYnkgY29t
cHV0aW5nIHRoZSB0cmFuc2Zvcm1lZCBub3JtYWwgb2YgdGhlIGxheWVyIGluIHNjcmVlbiBzcGFj
ZS4KLSAgICBGbG9hdFJlY3QgbGF5ZXJSZWN0KEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0U2l6ZShs
YXllci0+Ym91bmRzKCkpKTsKLSAgICBGbG9hdFF1YWQgbWFwcGVkTGF5ZXIgPSBsYXllci0+c2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oKS5tYXBRdWFkKEZsb2F0UXVhZChsYXllclJlY3QpKTsKLSAgICBG
bG9hdFNpemUgaG9yaXpvbnRhbERpciA9IG1hcHBlZExheWVyLnAyKCkgLSBtYXBwZWRMYXllci5w
MSgpOwotICAgIEZsb2F0U2l6ZSB2ZXJ0aWNhbERpciA9IG1hcHBlZExheWVyLnA0KCkgLSBtYXBw
ZWRMYXllci5wMSgpOwotICAgIEZsb2F0UG9pbnQzRCB4QXhpcyhob3Jpem9udGFsRGlyLndpZHRo
KCksIGhvcml6b250YWxEaXIuaGVpZ2h0KCksIDApOwotICAgIEZsb2F0UG9pbnQzRCB5QXhpcyh2
ZXJ0aWNhbERpci53aWR0aCgpLCB2ZXJ0aWNhbERpci5oZWlnaHQoKSwgMCk7Ci0gICAgRmxvYXRQ
b2ludDNEIHpBeGlzID0geEF4aXMuY3Jvc3MoeUF4aXMpOwotICAgIHJldHVybiB6QXhpcy56KCkg
PCAwOwotfQotCiBJbnRSZWN0IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJs
ZVJlY3QoY29uc3QgSW50UmVjdCYgdGFyZ2V0U3VyZmFjZVJlY3QsIGNvbnN0IEludFJlY3QmIGxh
eWVyQm91bmRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQogewog
ICAgIC8vIElzIHRoaXMgbGF5ZXIgZnVsbHkgY29udGFpbmVkIHdpdGhpbiB0aGUgdGFyZ2V0IHN1
cmZhY2U/CkBAIC04Niw3ICs3Miw3IEBAIHN0YXRpYyBJbnRSZWN0IGNhbGN1bGF0ZVZpc2libGVM
YXllclJlY3QoTGF5ZXJUeXBlKiBsYXllcikKIAogICAgIC8vIEFuaW1hdGVkIGxheWVycyBjYW4g
ZXhpc3QgaW4gdGhlIHJlbmRlciBzdXJmYWNlIHRyZWUgdGhhdCBhcmUgbm90IHZpc2libGUgY3Vy
cmVudGx5CiAgICAgLy8gYW5kIGhhdmUgdGhlaXIgYmFjayBmYWNlIHNob3dpbmcuIEluIHRoaXMg
Y2FzZSwgdGhlaXIgdmlzaWJsZSByZWN0IHNob3VsZCBiZSBlbXB0eS4KLSAgICBpZiAoIWxheWVy
LT5kb3VibGVTaWRlZCgpICYmIGJhY2tGYWNlSXNWaXNpYmxlKGxheWVyKSkKKyAgICBpZiAoIWxh
eWVyLT5kb3VibGVTaWRlZCgpICYmIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLmlzQmFj
a0ZhY2VWaXNpYmxlKCkpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKICAgICBJbnRSZWN0
IHRhcmdldFN1cmZhY2VSZWN0ID0gbGF5ZXItPnRhcmdldFJlbmRlclN1cmZhY2UoKS0+Y29udGVu
dFJlY3QoKTsKQEAgLTE3NCw3ICsxNjAsNyBAQCBzdGF0aWMgYm9vbCBsYXllclNob3VsZEJlU2tp
cHBlZChMYXllclR5cGUqIGxheWVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFRo
ZSBsYXllciBzaG91bGQgbm90IGJlIGRyYXduIGlmICgxKSBpdCBpcyBub3QgZG91YmxlLXNpZGVk
IGFuZCAoMikgdGhlIGJhY2sgb2YgdGhlIGxheWVyIGlzIGtub3duIHRvIGJlIGZhY2luZyB0aGUg
c2NyZWVuLgotICAgIGlmICghbGF5ZXItPmRvdWJsZVNpZGVkKCkgJiYgdHJhbnNmb3JtVG9TY3Jl
ZW5Jc0tub3duKGxheWVyKSAmJiBiYWNrRmFjZUlzVmlzaWJsZShsYXllcikpCisgICAgaWYgKCFs
YXllci0+ZG91YmxlU2lkZWQoKSAmJiB0cmFuc2Zvcm1Ub1NjcmVlbklzS25vd24obGF5ZXIpICYm
IGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLmlzQmFja0ZhY2VWaXNpYmxlKCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJp
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
Zm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCBhNjM3N2VlNThmMThhZjFiMDEyYjAyNmZhY2RjYTI0
ZTI1NTQ3MWYwLi4yNGQ5NjBmZTMwYTZkNzNjMDY4MjM2MjRhMmZlOTI0NDljMjNhMmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
Zm9ybWF0aW9uTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcApAQCAtMTIyNCw0ICsxMjI0LDMy
IEBAIHZvaWQgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnRvQ29sdW1uTWFqb3JGbG9hdEFycmF5KEZs
b2F0TWF0cml4NCYgcmVzdWx0KSBjb25zdAogICAgIHJlc3VsdFsxNV0gPSBtNDQoKTsKIH0KIAor
Ym9vbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNCYWNrRmFjZVZpc2libGUoKSBjb25zdAorewor
ICAgIC8vIEJhY2stZmFjZSB2aXNpYmlsaXR5IGlzIGRldGVybWluZWQgYnkgdHJhbnNmb3JtaW5n
IHRoZSBub3JtYWwgdmVjdG9yICgwLCAwLCAxKSBhbmQKKyAgICAvLyBjaGVja2luZyB0aGUgc2ln
biBvZiB0aGUgcmVzdWx0aW5nIHogY29tcG9uZW50LiBIb3dldmVyLCBub3JtYWxzIGNhbm5vdCBi
ZQorICAgIC8vIHRyYW5zZm9ybWVkIGJ5IHRoZSBvcmlnaW5hbCBtYXRyaXgsIHRoZXkgcmVxdWly
ZSBiZWluZyB0cmFuc2Zvcm1lZCBieSB0aGUKKyAgICAvLyBpbnZlcnNlLXRyYW5zcG9zZS4KKyAg
ICAvLworICAgIC8vIFNpbmNlIHdlIGtub3cgd2Ugd2lsbCBiZSB1c2luZyAoMCwgMCwgMSksIGFu
ZCB3ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIHotY29tcG9uZW50IG9mCisgICAgLy8gdGhlIHRyYW5z
Zm9ybWVkIG5vcm1hbCwgdGhlbiB3ZSBvbmx5IG5lZWQgdGhlIG0zMygpIGVsZW1lbnQgb2YgdGhl
CisgICAgLy8gaW52ZXJzZS10cmFuc3Bvc2UuIFRoZXJlZm9yZSB3ZSBkbyBub3QgbmVlZCB0aGUg
dHJhbnNwb3NlLgorICAgIC8vCisgICAgLy8gQWRkaXRpb25hbGx5LCBpZiB3ZSBvbmx5IG5lZWQg
dGhlIG0zMygpIGVsZW1lbnQsIHdlIGRvIG5vdCBuZWVkIHRvIGNvbXB1dGUgYSBmdWxsCisgICAg
Ly8gaW52ZXJzZS4gSW5zdGVhZCwga25vd2luZyB0aGUgaW52ZXJzZSBvZiBhIG1hdHJpeCBpcyBh
ZGpvaW50KG1hdHJpeCkgLyBkZXRlcm1pbmFudCwKKyAgICAvLyB3ZSBjYW4gc2ltcGx5IGNvbXB1
dGUgdGhlIG0zMygpIG9mIHRoZSBhZGpvaW50IChhZGp1Z2F0ZSkgbWF0cml4LCB3aXRob3V0IGNv
bXB1dGluZworICAgIC8vIHRoZSBmdWxsIGFkam9pbnQuCisKKyAgICBkb3VibGUgZGV0ZXJtaW5h
bnQgPSBXZWJDb3JlOjpkZXRlcm1pbmFudDR4NChtX21hdHJpeCk7CisKKyAgICAvLyBJZiB0aGUg
bWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlLCB0aGVuIHdlIGFzc3VtZSBpdHMgYmFja2ZhY2UgaXMg
bm90IHZpc2libGUuCisgICAgaWYgKGZhYnMoZGV0ZXJtaW5hbnQpIDwgU01BTExfTlVNQkVSKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkb3VibGUgY29mYWN0b3IzMyA9IGRldGVybWlu
YW50M3gzKG0xMSgpLCBtMTIoKSwgbTE0KCksIG0yMSgpLCBtMjIoKSwgbTI0KCksIG00MSgpLCBt
NDIoKSwgbTQ0KCkpOworICAgIGRvdWJsZSB6Q29tcG9uZW50T2ZUcmFuc2Zvcm1lZE5vcm1hbCA9
IGNvZmFjdG9yMzMgLyBkZXRlcm1pbmFudDsKKworICAgIHJldHVybiB6Q29tcG9uZW50T2ZUcmFu
c2Zvcm1lZE5vcm1hbCA8IDA7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRy
aXguaAppbmRleCA1YjVkYWQ1MjBhNGM2ZWUxOWJiOWQ4ZWFlNmM3NjRkODM5MWYxZWI1Li4wZTQx
NmY2N2I5NjA1ZTFmNjNmOTg3NzcxNWZiMTVhMjkwNmY4MTI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1hdGlvbk1hdHJpeC5oCkBAIC0zNjAsNiArMzYwLDggQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgZmxvYXQgRmxvYXRNYXRyaXg0WzE2XTsKICAgICB2b2lkIHRvQ29sdW1uTWFqb3JGbG9hdEFy
cmF5KEZsb2F0TWF0cml4NCYgcmVzdWx0KSBjb25zdDsKIAorICAgIGJvb2wgaXNCYWNrRmFjZVZp
c2libGUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICAvLyBtdWx0aXBseSBwYXNzZWQgMkQgcG9p
bnQgYnkgbWF0cml4IChhc3N1bWUgej0wKQogICAgIHZvaWQgbXVsdFZlY01hdHJpeChkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSYgZHN0WCwgZG91YmxlJiBkc3RZKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXBpCmluZGV4IDk1NDhiMmEwZjY1ZGIxOTkzOTJhOGJmZTU1YTlmOTdk
MGU3MjY3ZjQuLjYxNjkwZjQyMGMzMDBiYTlhYTQwZjhmMjRiNWYyMWNkNzZkY2Q5ZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtNzgsNiArNzgsNyBAQAogICAgICAgICAgICAg
J3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMv
Q0NMYXllclRyZWVIb3N0VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDTGF5ZXJUcmVl
VGVzdENvbW1vbi5oJywKKyAgICAgICAgICAgICd0ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0Q29tbW9uLmgnLAogICAgICAgICAgICAg
J3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NNYXRoVXRpbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY0MTIyMmRkNjU0ZmIxZjBh
ZjU2Zjc0MmNmNDU4ZDIzNjgzZjM2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NNYXRoVXRpbFRlc3QuY3BwCkBAIC0wLDAgKzEsMTAzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJjYy9DQ01hdGhVdGls
LmgiCisKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgorCisjaW5jbHVkZSA8Z21v
Y2svZ21vY2suaD4KKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIHsKKworVEVTVChDQ01hdGhVdGlsVGVzdCwgdmVyaWZ5QmFj
a2ZhY2VWaXNpYmlsaXR5QmFzaWNDYXNlcykKK3sKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0
cmFuc2Zvcm07CisKKyAgICB0cmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CisgICAgRVhQRUNUX0ZB
TFNFKHRyYW5zZm9ybS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKKworICAgIHRyYW5zZm9ybS5tYWtl
SWRlbnRpdHkoKTsKKyAgICB0cmFuc2Zvcm0ucm90YXRlM2QoMCwgODAsIDApOworICAgIEVYUEVD
VF9GQUxTRSh0cmFuc2Zvcm0uaXNCYWNrRmFjZVZpc2libGUoKSk7CisKKyAgICB0cmFuc2Zvcm0u
bWFrZUlkZW50aXR5KCk7CisgICAgdHJhbnNmb3JtLnJvdGF0ZTNkKDAsIDEwMCwgMCk7CisgICAg
RVhQRUNUX1RSVUUodHJhbnNmb3JtLmlzQmFja0ZhY2VWaXNpYmxlKCkpOworCisgICAgLy8gRWRn
ZSBjYXNlLCA5MCBkZWdyZWUgcm90YXRpb24gc2hvdWxkIHJldHVybiBmYWxzZS4KKyAgICB0cmFu
c2Zvcm0ubWFrZUlkZW50aXR5KCk7CisgICAgdHJhbnNmb3JtLnJvdGF0ZTNkKDAsIDkwLCAwKTsK
KyAgICBFWFBFQ1RfRkFMU0UodHJhbnNmb3JtLmlzQmFja0ZhY2VWaXNpYmxlKCkpOworICAgIAor
fQorCitURVNUKENDTWF0aFV0aWxUZXN0LCB2ZXJpZnlCYWNrZmFjZVZpc2liaWxpdHlGb3JQZXJz
cGVjdGl2ZSkKK3sKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllclNwYWNlVG9Qcm9qZWN0
aW9uUGxhbmU7CisKKyAgICAvLyBUaGlzIHRlc3RzIGlmIGlzQmFja0ZhY2VWaXNpYmxlIHdvcmtz
IHByb3Blcmx5IHVuZGVyIHBlcnNwZWN0aXZlIHRyYW5zZm9ybXMuCisgICAgLy8gU3BlY2lmaWNh
bGx5LCBsYXllcnMgdGhhdCBtYXkgaGF2ZSB0aGVpciBiYWNrIGZhY2UgdmlzaWJsZSBpbiBvcnRo
b2dyYXBoaWMKKyAgICAvLyBwcm9qZWN0aW9uLCBtYXkgbm90IGFjdHVhbGx5IGhhdmUgYmFjayBm
YWNlIHZpc2libGUgdW5kZXIgcGVyc3BlY3RpdmUgcHJvamVjdGlvbi4KKworICAgIC8vIENhc2Ug
MTogTGF5ZXIgaXMgcm90YXRlZCBieSBzbGlnaHRseSBtb3JlIHRoYW4gOTAgZGVncmVlcywgYXQg
dGhlIGNlbnRlciBvZiB0aGUKKyAgICAvLyAgICAgICAgIHByZXNwZWN0aXZlIHByb2plY3Rpb24u
IEluIHRoaXMgY2FzZSwgdGhlIGxheWVyJ3MgYmFjay1zaWRlIGlzIHZpc2libGUgdG8KKyAgICAv
LyAgICAgICAgIHRoZSBjYW1lcmEuCisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLm1h
a2VJZGVudGl0eSgpOworICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5hcHBseVBlcnNw
ZWN0aXZlKDEpOworICAgIGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS50cmFuc2xhdGUzZCgw
LCAwLCAwKTsKKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUucm90YXRlM2QoMCwgMTAw
LCAwKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUuaXNCYWNr
RmFjZVZpc2libGUoKSk7CisKKyAgICAvLyBDYXNlIDI6IExheWVyIGlzIHJvdGF0ZWQgYnkgc2xp
Z2h0bHkgbW9yZSB0aGFuIDkwIGRlZ3JlZXMsIGJ1dCBzaGlmdGVkIG9mZiB0byB0aGUKKyAgICAv
LyAgICAgICAgIHNpZGUgb2YgdGhlIGNhbWVyYS4gQmVjYXVzZSBvZiB0aGUgd2lkZSBmaWVsZC1v
Zi12aWV3LCB0aGUgbGF5ZXIncyBmcm9udAorICAgIC8vICAgICAgICAgc2lkZSBpcyBzdGlsbCB2
aXNpYmxlLgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIHw8LS0gZnJvbnQg
c2lkZSBvZiBsYXllciBpcyB2aXNpYmxlIHRvIHBlcnNwZWN0aXZlIGNhbWVyYQorICAgIC8vICAg
ICAgICAgICAgICAgICAgICBcICB8ICAgICAgICAgICAgLworICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgXCB8ICAgICAgICAgICAvCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgXHwgICAg
ICAgICAgLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgLworICAgIC8v
ICAgICAgICAgICAgICAgICAgICAgICB8XCAgICAgICAvPC0tIGNhbWVyYSBmaWVsZCBvZiB2aWV3
CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIHwgXCAgICAgLworICAgIC8vIGJhY2sgc2lk
ZSBvZiBsYXllciAtLT58ICBcICAgLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
XC4vIDwtLSBjYW1lcmEgb3JpZ2luCisgICAgLy8KKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9u
UGxhbmUubWFrZUlkZW50aXR5KCk7CisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLmFw
cGx5UGVyc3BlY3RpdmUoMSk7CisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLnRyYW5z
bGF0ZTNkKC0xMCwgMCwgMCk7CisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLnJvdGF0
ZTNkKDAsIDEwMCwgMCk7CisgICAgRVhQRUNUX0ZBTFNFKGxheWVyU3BhY2VUb1Byb2plY3Rpb25Q
bGFuZS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKKworICAgIC8vIENhc2UgMzogQWRkaXRpb25hbGx5
IHJvdGF0aW5nIHRoZSBsYXllciBieSAxODAgZGVncmVlcyBzaG91bGQgb2YgY291cnNlIHNob3cg
dGhlCisgICAgLy8gICAgICAgICBvcHBvc2l0ZSByZXN1bHQgb2YgY2FzZSAyLgorICAgIGxheWVy
U3BhY2VUb1Byb2plY3Rpb25QbGFuZS5yb3RhdGUzZCgwLCAxODAsIDApOworICAgIEVYUEVDVF9U
UlVFKGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139055</attachid>
            <date>2012-04-26 13:20:10 -0700</date>
            <delta_ts>2012-04-26 16:59:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84059-20120426132009.patch</filename>
            <type>text/plain</type>
            <size>12988</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNiN2U4ODFhYjViZDVk
M2ZmOWUzN2U0ZTQyZWZlOThhYWM3NTZjNy4uYzFiNWNjYWJiYmMzOWQ0MmY1MDVmZWQwMjc1YWZm
ZmRjNGMzOTY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTE4ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlLWltcGxlbWVu
dCBiYWNrRmFjZVZpc2liaWxpdHkgdG8gYXZvaWQgZGVhbGluZyB3aXRoIHBlcnNwZWN0aXZlIHcg
PCAwIHByb2JsZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRyaWVubmUgV2Fsa2VyLgorCisgICAg
ICAgIFVuaXQgdGVzdHMgYWRkZWQgdG8gQ0NNYXRoVXRpbFRlc3QuY3BwLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY2hhbmdlcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgYmFja0ZhY2VJc1Zpc2libGUg
c28gdGhhdAorICAgICAgICBpdCBkb2Vzbid0IG5lZWQgdG8gZGVhbCB3aXRoIHRoZSB3IDwgMCBw
cm9ibGVtIGZyb20gb2YgcGVyc3BlY3RpdmUKKyAgICAgICAgcHJvamVjdGlvbnMuIEluc3RlYWQs
IGl0IGlzIGVxdWFsbHkgY29ycmVjdCB0byBzaW1wbHkgdXNlIHRoZQorICAgICAgICBpbnZlcnNl
LXRyYW5zcG9zZSBvZiB0aGUgbWF0cml4LCBhbmQgcXVpY2tseSBjaGVjayB0aGUgdGhpcmQgcm93
LAorICAgICAgICB0aGlyZCBjb2x1bW4gZWxlbWVudC4gQWRkaXRpb25hbGx5LCBpdCB3YXMgYXBw
cm9wcmlhdGUgdG8gbW92ZQorICAgICAgICB0aGlzIGZ1bmN0aW9uIGludG8gVHJhbnNmb3JtYXRp
b25NYXRyaXggaXRzZWxmLgorCisgICAgICAgIE1ha2luZyB0aGlzIGNoYW5nZSBmaXhlcyBzb21l
IGlzc3VlcyByZWxhdGVkIHRvIGRpc2FwcGVhcmluZworICAgICAgICBsYXllcnMgaW4gQ2hyb21p
dW0gKHdoZXJlIHRoZSBjb21wb3NpdG9yIGluY29ycmVjdGx5IHRob3VnaHQgdGhhdAorICAgICAg
ICB0aGUgYmFjayBmYWNlIHdhcyB2aXNpYmxlLCBhbmQgc2tpcHBlZCB0aGUgbGF5ZXIpLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZVZpc2libGVMYXllclJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6bGF5ZXJTaG91bGRCZVNraXBwZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OmlzQmFja0ZhY2VWaXNpYmxlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNmb3JtYXRpb25NYXRyaXguaDoKKyAgICAgICAgKFRyYW5zZm9ybWF0aW9uTWF0cml4KToK
KwogMjAxMi0wNC0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IFN0eWxlU2hlZXRJbnRlcm5hbCBjb3B5aW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGNhNzg0ZTM3YTZjZGU5YTIyNzU2YWRmNGExNzExMjJhZDljMTIwMDAuLmM3
YTFhMzRhMGRhYjY0OTEyOTkyY2I2YTJhZTlkZjhlMTRhOTI0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMTggIFNoYXduIFNpbmdoICA8c2hh
d25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSByZS1pbXBsZW1lbnQg
YmFja0ZhY2VWaXNpYmlsaXR5IHRvIGF2b2lkIGRlYWxpbmcgd2l0aCBwZXJzcGVjdGl2ZSB3PDAg
cHJvYmxlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODQwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBBZHJpZW5uZSBXYWxrZXIuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiB0ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMi0w
NC0yNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJv
bWl1bV0gSW5kZXhlZERCOiBVc2UgV2ViSURCS2V5UGF0aCB0eXBlIGZvciBrZXkgcGF0aHMgaW4g
V2ViS2l0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKaW5k
ZXggNjAwMjBiNWY1NTRlZTUyYmEyNWYyZDJkNTAzYmVhZDY5NGIzYWE5Ni4uNTExZTgzN2RjOGRh
YmMzYzVjOTExNmJmMzNlNTJmMDRhZTZhYjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uY3BwCkBAIC00MiwyMCArNDIsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBi
YWNrRmFjZUlzVmlzaWJsZShMYXllclR5cGUqIGxheWVyKQotewotICAgIC8vIFRoaXMgaXMgY2hl
Y2tlZCBieSBjb21wdXRpbmcgdGhlIHRyYW5zZm9ybWVkIG5vcm1hbCBvZiB0aGUgbGF5ZXIgaW4g
c2NyZWVuIHNwYWNlLgotICAgIEZsb2F0UmVjdCBsYXllclJlY3QoRmxvYXRQb2ludCgwLCAwKSwg
RmxvYXRTaXplKGxheWVyLT5ib3VuZHMoKSkpOwotICAgIEZsb2F0UXVhZCBtYXBwZWRMYXllciA9
IGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm1hcFF1YWQoRmxvYXRRdWFkKGxheWVyUmVj
dCkpOwotICAgIEZsb2F0U2l6ZSBob3Jpem9udGFsRGlyID0gbWFwcGVkTGF5ZXIucDIoKSAtIG1h
cHBlZExheWVyLnAxKCk7Ci0gICAgRmxvYXRTaXplIHZlcnRpY2FsRGlyID0gbWFwcGVkTGF5ZXIu
cDQoKSAtIG1hcHBlZExheWVyLnAxKCk7Ci0gICAgRmxvYXRQb2ludDNEIHhBeGlzKGhvcml6b250
YWxEaXIud2lkdGgoKSwgaG9yaXpvbnRhbERpci5oZWlnaHQoKSwgMCk7Ci0gICAgRmxvYXRQb2lu
dDNEIHlBeGlzKHZlcnRpY2FsRGlyLndpZHRoKCksIHZlcnRpY2FsRGlyLmhlaWdodCgpLCAwKTsK
LSAgICBGbG9hdFBvaW50M0QgekF4aXMgPSB4QXhpcy5jcm9zcyh5QXhpcyk7Ci0gICAgcmV0dXJu
IHpBeGlzLnooKSA8IDA7Ci19Ci0KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxj
dWxhdGVWaXNpYmxlUmVjdChjb25zdCBJbnRSZWN0JiB0YXJnZXRTdXJmYWNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgbGF5ZXJCb3VuZFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm0pCiB7CiAgICAgLy8gSXMgdGhpcyBsYXllciBmdWxseSBjb250YWluZWQgd2l0aGluIHRo
ZSB0YXJnZXQgc3VyZmFjZT8KQEAgLTg2LDcgKzcyLDcgQEAgc3RhdGljIEludFJlY3QgY2FsY3Vs
YXRlVmlzaWJsZUxheWVyUmVjdChMYXllclR5cGUqIGxheWVyKQogCiAgICAgLy8gQW5pbWF0ZWQg
bGF5ZXJzIGNhbiBleGlzdCBpbiB0aGUgcmVuZGVyIHN1cmZhY2UgdHJlZSB0aGF0IGFyZSBub3Qg
dmlzaWJsZSBjdXJyZW50bHkKICAgICAvLyBhbmQgaGF2ZSB0aGVpciBiYWNrIGZhY2Ugc2hvd2lu
Zy4gSW4gdGhpcyBjYXNlLCB0aGVpciB2aXNpYmxlIHJlY3Qgc2hvdWxkIGJlIGVtcHR5LgotICAg
IGlmICghbGF5ZXItPmRvdWJsZVNpZGVkKCkgJiYgYmFja0ZhY2VJc1Zpc2libGUobGF5ZXIpKQor
ICAgIGlmICghbGF5ZXItPmRvdWJsZVNpZGVkKCkgJiYgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkuaXNCYWNrRmFjZVZpc2libGUoKSkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAog
ICAgIEludFJlY3QgdGFyZ2V0U3VyZmFjZVJlY3QgPSBsYXllci0+dGFyZ2V0UmVuZGVyU3VyZmFj
ZSgpLT5jb250ZW50UmVjdCgpOwpAQCAtMTc0LDcgKzE2MCw3IEBAIHN0YXRpYyBib29sIGxheWVy
U2hvdWxkQmVTa2lwcGVkKExheWVyVHlwZSogbGF5ZXIpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgLy8gVGhlIGxheWVyIHNob3VsZCBub3QgYmUgZHJhd24gaWYgKDEpIGl0IGlzIG5vdCBk
b3VibGUtc2lkZWQgYW5kICgyKSB0aGUgYmFjayBvZiB0aGUgbGF5ZXIgaXMga25vd24gdG8gYmUg
ZmFjaW5nIHRoZSBzY3JlZW4uCi0gICAgaWYgKCFsYXllci0+ZG91YmxlU2lkZWQoKSAmJiB0cmFu
c2Zvcm1Ub1NjcmVlbklzS25vd24obGF5ZXIpICYmIGJhY2tGYWNlSXNWaXNpYmxlKGxheWVyKSkK
KyAgICBpZiAoIWxheWVyLT5kb3VibGVTaWRlZCgpICYmIHRyYW5zZm9ybVRvU2NyZWVuSXNLbm93
bihsYXllcikgJiYgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkuaXNCYWNrRmFjZVZpc2li
bGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9y
bWF0aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCmluZGV4IGE2Mzc3ZWU1OGYxOGFmMWIwMTJi
MDI2ZmFjZGNhMjRlMjU1NDcxZjAuLjI0ZDk2MGZlMzBhNmQ3M2MwNjgyMzYyNGEyZmU5MjQ0OWMy
M2EyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCkBAIC0xMjI0
LDQgKzEyMjQsMzIgQEAgdm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6dG9Db2x1bW5NYWpvckZs
b2F0QXJyYXkoRmxvYXRNYXRyaXg0JiByZXN1bHQpIGNvbnN0CiAgICAgcmVzdWx0WzE1XSA9IG00
NCgpOwogfQogCitib29sIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojppc0JhY2tGYWNlVmlzaWJsZSgp
IGNvbnN0Cit7CisgICAgLy8gQmFjay1mYWNlIHZpc2liaWxpdHkgaXMgZGV0ZXJtaW5lZCBieSB0
cmFuc2Zvcm1pbmcgdGhlIG5vcm1hbCB2ZWN0b3IgKDAsIDAsIDEpIGFuZAorICAgIC8vIGNoZWNr
aW5nIHRoZSBzaWduIG9mIHRoZSByZXN1bHRpbmcgeiBjb21wb25lbnQuIEhvd2V2ZXIsIG5vcm1h
bHMgY2Fubm90IGJlCisgICAgLy8gdHJhbnNmb3JtZWQgYnkgdGhlIG9yaWdpbmFsIG1hdHJpeCwg
dGhleSByZXF1aXJlIGJlaW5nIHRyYW5zZm9ybWVkIGJ5IHRoZQorICAgIC8vIGludmVyc2UtdHJh
bnNwb3NlLgorICAgIC8vCisgICAgLy8gU2luY2Ugd2Uga25vdyB3ZSB3aWxsIGJlIHVzaW5nICgw
LCAwLCAxKSwgYW5kIHdlIG9ubHkgY2FyZSBhYm91dCB0aGUgei1jb21wb25lbnQgb2YKKyAgICAv
LyB0aGUgdHJhbnNmb3JtZWQgbm9ybWFsLCB0aGVuIHdlIG9ubHkgbmVlZCB0aGUgbTMzKCkgZWxl
bWVudCBvZiB0aGUKKyAgICAvLyBpbnZlcnNlLXRyYW5zcG9zZS4gVGhlcmVmb3JlIHdlIGRvIG5v
dCBuZWVkIHRoZSB0cmFuc3Bvc2UuCisgICAgLy8KKyAgICAvLyBBZGRpdGlvbmFsbHksIGlmIHdl
IG9ubHkgbmVlZCB0aGUgbTMzKCkgZWxlbWVudCwgd2UgZG8gbm90IG5lZWQgdG8gY29tcHV0ZSBh
IGZ1bGwKKyAgICAvLyBpbnZlcnNlLiBJbnN0ZWFkLCBrbm93aW5nIHRoZSBpbnZlcnNlIG9mIGEg
bWF0cml4IGlzIGFkam9pbnQobWF0cml4KSAvIGRldGVybWluYW50LAorICAgIC8vIHdlIGNhbiBz
aW1wbHkgY29tcHV0ZSB0aGUgbTMzKCkgb2YgdGhlIGFkam9pbnQgKGFkanVnYXRlKSBtYXRyaXgs
IHdpdGhvdXQgY29tcHV0aW5nCisgICAgLy8gdGhlIGZ1bGwgYWRqb2ludC4KKworICAgIGRvdWJs
ZSBkZXRlcm1pbmFudCA9IFdlYkNvcmU6OmRldGVybWluYW50NHg0KG1fbWF0cml4KTsKKworICAg
IC8vIElmIHRoZSBtYXRyaXggaXMgbm90IGludmVydGlibGUsIHRoZW4gd2UgYXNzdW1lIGl0cyBi
YWNrZmFjZSBpcyBub3QgdmlzaWJsZS4KKyAgICBpZiAoZmFicyhkZXRlcm1pbmFudCkgPCBTTUFM
TF9OVU1CRVIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvdWJsZSBjb2ZhY3RvcjMz
ID0gZGV0ZXJtaW5hbnQzeDMobTExKCksIG0xMigpLCBtMTQoKSwgbTIxKCksIG0yMigpLCBtMjQo
KSwgbTQxKCksIG00MigpLCBtNDQoKSk7CisgICAgZG91YmxlIHpDb21wb25lbnRPZlRyYW5zZm9y
bWVkTm9ybWFsID0gY29mYWN0b3IzMyAvIGRldGVybWluYW50OworCisgICAgcmV0dXJuIHpDb21w
b25lbnRPZlRyYW5zZm9ybWVkTm9ybWFsIDwgMDsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zv
cm1hdGlvbk1hdHJpeC5oCmluZGV4IDViNWRhZDUyMGE0YzZlZTE5YmI5ZDhlYWU2Yzc2NGQ4Mzkx
ZjFlYjUuLjU5MThlZmNiNzFkZTY0ZDg2ZTBhNmFmMjU4OTIxN2ZiMDM0ZDkxY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3Jt
YXRpb25NYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKQEAgLTM2MCw2ICszNjAsMTIgQEAgcHVibGlj
OgogICAgIHR5cGVkZWYgZmxvYXQgRmxvYXRNYXRyaXg0WzE2XTsKICAgICB2b2lkIHRvQ29sdW1u
TWFqb3JGbG9hdEFycmF5KEZsb2F0TWF0cml4NCYgcmVzdWx0KSBjb25zdDsKIAorICAgIC8vIEEg
bG9jYWwtc3BhY2UgbGF5ZXIgaXMgaW1wbGljaXRseSBkZWZpbmVkIGF0IHRoZSB6ID0gMCBwbGFu
ZSwgd2l0aCBpdHMgZnJvbnQgc2lkZQorICAgIC8vIGZhY2luZyB0aGUgcG9zaXRpdmUgei1heGlz
IChpLmUuIGEgY2FtZXJhIGxvb2tpbmcgYWxvbmcgdGhlIG5lZ2F0aXZlIHotYXhpcyBzZWVzCisg
ICAgLy8gdGhlIGZyb250IHNpZGUgb2YgdGhlIGxheWVyKS4gVGhpcyBmdW5jdGlvbiBjaGVja3Mg
aWYgdGhlIHRyYW5zZm9ybWVkIGxheWVyJ3MgYmFjaworICAgIC8vIGZhY2Ugd291bGQgYmUgdmlz
aWJsZSB0byBhIGNhbWVyYSBsb29raW5nIGFsb25nIHRoZSBuZWdhdGl2ZSB6LWF4aXMgaW4gdGhl
IHRhcmdldCBzcGFjZS4KKyAgICBib29sIGlzQmFja0ZhY2VWaXNpYmxlKCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgLy8gbXVsdGlwbHkgcGFzc2VkIDJEIHBvaW50IGJ5IG1hdHJpeCAoYXNzdW1l
IHo9MCkKICAgICB2b2lkIG11bHRWZWNNYXRyaXgoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUm
IGRzdFgsIGRvdWJsZSYgZHN0WSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpp
bmRleCA5MWYzYjBlOWJlNzFmZmJkNDU0NTgxNjA1OWI3MTM4NjI1MmQwMjBhLi4wZTgyMjhhNmU4
OTBkNWYzNzQwNDdmYzNhODE3MWI4OWQxMzg5YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cGkKQEAgLTc4LDYgKzc4LDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaCcsCisgICAg
ICAgICAgICAndGVzdHMvQ0NNYXRoVXRpbFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9D
Q09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NPY2NsdXNp
b25UcmFja2VyVGVzdENvbW1vbi5oJywKICAgICAgICAgICAgICd0ZXN0cy9DQ1F1YWRDdWxsZXJU
ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTWF0
aFV0aWxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NNYXRoVXRpbFRl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRiMGE0ZTUzZjViMTAxMWIwNjA5MTU3Y2IxMzJhODQ5MDk5YWUy
MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTWF0
aFV0aWxUZXN0LmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiY2MvQ0NNYXRoVXRpbC5oIgorCisjaW5jbHVkZSAiVHJh
bnNmb3JtYXRpb25NYXRyaXguaCIKKworI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CisjaW5jbHVk
ZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSB7CisKK1RFU1QoQ0NNYXRoVXRpbFRlc3QsIHZlcmlmeUJhY2tmYWNlVmlzaWJpbGl0eUJhc2lj
Q2FzZXMpCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworCisgICAgdHJh
bnNmb3JtLm1ha2VJZGVudGl0eSgpOworICAgIEVYUEVDVF9GQUxTRSh0cmFuc2Zvcm0uaXNCYWNr
RmFjZVZpc2libGUoKSk7CisKKyAgICB0cmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CisgICAgdHJh
bnNmb3JtLnJvdGF0ZTNkKDAsIDgwLCAwKTsKKyAgICBFWFBFQ1RfRkFMU0UodHJhbnNmb3JtLmlz
QmFja0ZhY2VWaXNpYmxlKCkpOworCisgICAgdHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOworICAg
IHRyYW5zZm9ybS5yb3RhdGUzZCgwLCAxMDAsIDApOworICAgIEVYUEVDVF9UUlVFKHRyYW5zZm9y
bS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKKworICAgIC8vIEVkZ2UgY2FzZSwgOTAgZGVncmVlIHJv
dGF0aW9uIHNob3VsZCByZXR1cm4gZmFsc2UuCisgICAgdHJhbnNmb3JtLm1ha2VJZGVudGl0eSgp
OworICAgIHRyYW5zZm9ybS5yb3RhdGUzZCgwLCA5MCwgMCk7CisgICAgRVhQRUNUX0ZBTFNFKHRy
YW5zZm9ybS5pc0JhY2tGYWNlVmlzaWJsZSgpKTsKK30KKworVEVTVChDQ01hdGhVdGlsVGVzdCwg
dmVyaWZ5QmFja2ZhY2VWaXNpYmlsaXR5Rm9yUGVyc3BlY3RpdmUpCit7CisgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lOworCisgICAgLy8gVGhpcyB0
ZXN0cyBpZiBpc0JhY2tGYWNlVmlzaWJsZSB3b3JrcyBwcm9wZXJseSB1bmRlciBwZXJzcGVjdGl2
ZSB0cmFuc2Zvcm1zLgorICAgIC8vIFNwZWNpZmljYWxseSwgbGF5ZXJzIHRoYXQgbWF5IGhhdmUg
dGhlaXIgYmFjayBmYWNlIHZpc2libGUgaW4gb3J0aG9ncmFwaGljCisgICAgLy8gcHJvamVjdGlv
biwgbWF5IG5vdCBhY3R1YWxseSBoYXZlIGJhY2sgZmFjZSB2aXNpYmxlIHVuZGVyIHBlcnNwZWN0
aXZlIHByb2plY3Rpb24uCisKKyAgICAvLyBDYXNlIDE6IExheWVyIGlzIHJvdGF0ZWQgYnkgc2xp
Z2h0bHkgbW9yZSB0aGFuIDkwIGRlZ3JlZXMsIGF0IHRoZSBjZW50ZXIgb2YgdGhlCisgICAgLy8g
ICAgICAgICBwcmVzcGVjdGl2ZSBwcm9qZWN0aW9uLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXllcidz
IGJhY2stc2lkZSBpcyB2aXNpYmxlIHRvCisgICAgLy8gICAgICAgICB0aGUgY2FtZXJhLgorICAg
IGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5tYWtlSWRlbnRpdHkoKTsKKyAgICBsYXllclNw
YWNlVG9Qcm9qZWN0aW9uUGxhbmUuYXBwbHlQZXJzcGVjdGl2ZSgxKTsKKyAgICBsYXllclNwYWNl
VG9Qcm9qZWN0aW9uUGxhbmUudHJhbnNsYXRlM2QoMCwgMCwgMCk7CisgICAgbGF5ZXJTcGFjZVRv
UHJvamVjdGlvblBsYW5lLnJvdGF0ZTNkKDAsIDEwMCwgMCk7CisgICAgRVhQRUNUX1RSVUUobGF5
ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLmlzQmFja0ZhY2VWaXNpYmxlKCkpOworCisgICAgLy8g
Q2FzZSAyOiBMYXllciBpcyByb3RhdGVkIGJ5IHNsaWdodGx5IG1vcmUgdGhhbiA5MCBkZWdyZWVz
LCBidXQgc2hpZnRlZCBvZmYgdG8gdGhlCisgICAgLy8gICAgICAgICBzaWRlIG9mIHRoZSBjYW1l
cmEuIEJlY2F1c2Ugb2YgdGhlIHdpZGUgZmllbGQtb2YtdmlldywgdGhlIGxheWVyJ3MgZnJvbnQK
KyAgICAvLyAgICAgICAgIHNpZGUgaXMgc3RpbGwgdmlzaWJsZS4KKyAgICAvLworICAgIC8vICAg
ICAgICAgICAgICAgICAgICAgICB8PC0tIGZyb250IHNpZGUgb2YgbGF5ZXIgaXMgdmlzaWJsZSB0
byBwZXJzcGVjdGl2ZSBjYW1lcmEKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgXCAgfCAgICAg
ICAgICAgIC8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgIFwgfCAgICAgICAgICAgLworICAg
IC8vICAgICAgICAgICAgICAgICAgICAgIFx8ICAgICAgICAgIC8KKyAgICAvLyAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAgICAgIC8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgfFwg
ICAgICAgLzwtLSBjYW1lcmEgZmllbGQgb2YgdmlldworICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgICB8IFwgICAgIC8KKyAgICAvLyBiYWNrIHNpZGUgb2YgbGF5ZXIgLS0+fCAgXCAgIC8KKyAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwuLyA8LS0gY2FtZXJhIG9yaWdpbgorICAg
IC8vCisgICAgbGF5ZXJTcGFjZVRvUHJvamVjdGlvblBsYW5lLm1ha2VJZGVudGl0eSgpOworICAg
IGxheWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5hcHBseVBlcnNwZWN0aXZlKDEpOworICAgIGxh
eWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS50cmFuc2xhdGUzZCgtMTAsIDAsIDApOworICAgIGxh
eWVyU3BhY2VUb1Byb2plY3Rpb25QbGFuZS5yb3RhdGUzZCgwLCAxMDAsIDApOworICAgIEVYUEVD
VF9GQUxTRShsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUuaXNCYWNrRmFjZVZpc2libGUoKSk7
CisKKyAgICAvLyBDYXNlIDM6IEFkZGl0aW9uYWxseSByb3RhdGluZyB0aGUgbGF5ZXIgYnkgMTgw
IGRlZ3JlZXMgc2hvdWxkIG9mIGNvdXJzZSBzaG93IHRoZQorICAgIC8vICAgICAgICAgb3Bwb3Np
dGUgcmVzdWx0IG9mIGNhc2UgMi4KKyAgICBsYXllclNwYWNlVG9Qcm9qZWN0aW9uUGxhbmUucm90
YXRlM2QoMCwgMTgwLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllclNwYWNlVG9Qcm9qZWN0aW9u
UGxhbmUuaXNCYWNrRmFjZVZpc2libGUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>