<?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>64338</bug_id>
          
          <creation_ts>2011-07-11 19:09:29 -0700</creation_ts>
          <short_desc>Bad filtering of edges on tiled layers</short_desc>
          <delta_ts>2011-07-13 08:48:17 -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="David Reveman">reveman</reporter>
          <assigned_to name="David Reveman">reveman</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>435411</commentid>
    <comment_count>0</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-11 19:09:29 -0700</bug_when>
    <thetext>The transparent outer borders used for anti-aliasing of tiled layers cause filtering at the layer edges to sometimes produce incorrect results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435445</commentid>
    <comment_count>1</comment_count>
      <attachid>100428</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-11 19:37:44 -0700</bug_when>
    <thetext>Created attachment 100428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435697</commentid>
    <comment_count>2</comment_count>
      <attachid>100499</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 09:31:31 -0700</bug_when>
    <thetext>Created attachment 100499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435864</commentid>
    <comment_count>3</comment_count>
      <attachid>100499</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-07-12 12:36:54 -0700</bug_when>
    <thetext>Comment on attachment 100499
Patch

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

This basically looks fine aside from a naming convention issue.

&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp:1129
&gt; +bool TransformationMatrix::IsIntegerTranslation() const

This should be named isIntegerTranslation per WebKit style.

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

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435873</commentid>
    <comment_count>4</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-12 12:48:00 -0700</bug_when>
    <thetext>My apologies, but I need some convincing that this does the right thing in all cases.  If we&apos;re seeing floating point error, wouldn&apos;t nearest neighbor filtering round *down* in some cases, changing the integral width of these layers?

I know that we&apos;re already living with some floating point inconsistencies (some of which are my fault), but I feel like a layer of integral width on integer boundaries should not be off by one pixel.  I would feel more comfortable if we had a test like compositing/checkerboard.html for content layers.

On the same note, I&apos;d like if this patch also adjusted test_expectations.txt.  I&apos;d like to see what tests are expected to still be broken after this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435876</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-12 12:52:28 -0700</bug_when>
    <thetext>Also, what happens if you have a layer that&apos;s rotated by 90 degress about the Z axis or something of that nature?  It would suck to incorrectly filter that case too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435940</commentid>
    <comment_count>6</comment_count>
      <attachid>100560</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 14:12:41 -0700</bug_when>
    <thetext>Created attachment 100560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435944</commentid>
    <comment_count>7</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 14:14:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 100499 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100499&amp;action=review
&gt; 
&gt; This basically looks fine aside from a naming convention issue.

Sorry, I should have noticed that. Fixed in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435953</commentid>
    <comment_count>8</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 14:30:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; My apologies, but I need some convincing that this does the right thing in all cases.  If we&apos;re seeing floating point error, wouldn&apos;t nearest neighbor filtering round *down* in some cases, changing the integral width of these layers?
&gt; 
&gt; I know that we&apos;re already living with some floating point inconsistencies (some of which are my fault), but I feel like a layer of integral width on integer boundaries should not be off by one pixel.  I would feel more comfortable if we had a test like compositing/checkerboard.html for content layers.

We&apos;re not off by one pixel. The problem is due to the transparent border that now exists around layers. A small part of the border color is sometimes included in the pixels at the edge of the layer when linear filtering is used (instead of RGBA:0xff,0xff,0xff,0xff we end up with RGBA:0xfe,0xfe,0xfe,0xfe). The result here seem to be GL implementation dependent and it happens with or without the vertex offset code used to make sure all necessary fragments are processed.

&gt; 
&gt; On the same note, I&apos;d like if this patch also adjusted test_expectations.txt.  I&apos;d like to see what tests are expected to still be broken after this patch.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435973</commentid>
    <comment_count>9</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-12 14:41:26 -0700</bug_when>
    <thetext>&gt; (In reply to comment #8)
&gt; We&apos;re not off by one pixel. The problem is due to the transparent border that now exists around layers. A small part of the border color is sometimes included in the pixels at the edge of the layer when linear filtering is used (instead of RGBA:0xff,0xff,0xff,0xff we end up with RGBA:0xfe,0xfe,0xfe,0xfe). The result here seem to be GL implementation dependent and it happens with or without the vertex offset code used to make sure all necessary fragments are processed.

Ah, ok.  We&apos;re always smearing over the edge of a layer and never the other way.  Thanks for the extra info.

&gt; &gt; On the same note, I&apos;d like if this patch also adjusted test_expectations.txt.  I&apos;d like to see what tests are expected to still be broken after this patch.
&gt; 
&gt; Done.

Thanks.  That looks like a much more reasonable set of tests that need to be rebaselined.

The following content layer checkerboard (courtesy of jamesr) also looks like it renders properly when using nearest neighbor filtering, so I feel much more confident in this change.

http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cdiv%20id%3D%22checker%22%20style%3D%22-webkit-transform%3AtranslateZ(0)%3Bwidth%3A4000px%3B%20height%3A4000px%3B%20background-repeat%3A%20repeat%3B%20background-size%3A%202px%22%3E%3C%2Fdiv%3E%0A%3Cscript%3E%0Avar%20c%20%3D%20document.createElement(&apos;canvas&apos;)%3B%0Ac.width%3D2%3B%0Ac.height%3D2%3B%0Avar%20ctx%20%3D%20c.getContext(%222d%22)%3B%0Actx.fillStyle%20%3D%20%22black%22%3B%0Actx.fillRect(0%2C%200%2C%201%2C%201)%3B%0Actx.fillRect(1%2C%201%2C%201%2C%201)%3B%0Adocument.getElementById(%22checker%22).style.backgroundImage%20%3D%20%22url(%22%2Bc.toDataURL()%2B%22)%22%3B%0A%3C%2Fscript%3E</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435989</commentid>
    <comment_count>10</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 14:55:44 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Also, what happens if you have a layer that&apos;s rotated by 90 degress about the Z axis or something of that nature?  It would suck to incorrectly filter that case too.

The patch could pretty easily be changed to handle this.

But what does incorrect filtering really mean here? GL implementations will always produce slightly different results for linear filtering. I&apos;m not sure that putting a lot of effort into detecting special cases where we can get pixel exact 
matching between different renderers is necessarily the best way to go. It makes sense to get pixel exact results independent of renderer for un-transformed elements. But it might make more sense to determine whether we should be producing pixel exact results to depend on if a CSS 3D property is set or not instead of analyzing the transformation matrix we end up with in the layer compositor. E.g. setting translateZ to 0 makes the element 3D transformed and as a result output is also not guaranteed to be pixel exact anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436015</commentid>
    <comment_count>11</comment_count>
      <attachid>100560</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-12 15:21:22 -0700</bug_when>
    <thetext>Comment on attachment 100560
Patch

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

&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp:1138
&gt; +    // Z translate
&gt; +    if (m_matrix[3][2])
&gt; +        return false;
&gt; +
&gt; +    // pixel exact X/Y translate

In WebKit, comments begin with an uppercase letter and end with a period.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436017</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-12 15:22:37 -0700</bug_when>
    <thetext>Do you want the latest patch considered for review?  If so please flip the review? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436026</commentid>
    <comment_count>13</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 15:35:55 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; In WebKit, comments begin with an uppercase letter and end with a period.

Sorry, I&apos;ll eventually get all these details right. I promise :)

Are there any guidelines for how to prioritize webkit style vs being consistent with existing code in a file? Would correcting the style of unrelated code in a file as part of change be good or bad? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436034</commentid>
    <comment_count>14</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 15:48:57 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Do you want the latest patch considered for review?  If so please flip the review? flag.

I figured we should agree on if this is the way to solve the problem before I had someone waste their time reviewing the patch again..

I think this patch is a good enough solution for now but long term we should consider what I mentioned in comment #10. It would be good to have a well defined basis for when we need to produce pixel exact results and not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436114</commentid>
    <comment_count>15</comment_count>
      <attachid>100560</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-12 17:36:02 -0700</bug_when>
    <thetext>Comment on attachment 100560
Patch

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

I think approach is OK for now.  Please fix up the comments/line wrapping and post a new patch as soon as you can, currently we have lots of tests marked as = IMAGE and I&apos;m really concerned that they might regression other, less acceptable ways.

&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp:1140
&gt; +    if (static_cast&lt;int&gt;(m_matrix[3][0]) != m_matrix[3][0]
&gt; +        || static_cast&lt;int&gt;(m_matrix[3][1]) != m_matrix[3][1])

nit: don&apos;t line wrap this, or if you do line wrap it make the !=s line up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436205</commentid>
    <comment_count>16</comment_count>
      <attachid>100616</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-12 20:36:31 -0700</bug_when>
    <thetext>Created attachment 100616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436230</commentid>
    <comment_count>17</comment_count>
      <attachid>100616</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-12 21:34:01 -0700</bug_when>
    <thetext>Comment on attachment 100616
Patch

R=me thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436255</commentid>
    <comment_count>18</comment_count>
      <attachid>100616</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 22:35:28 -0700</bug_when>
    <thetext>Comment on attachment 100616
Patch

Clearing flags on attachment: 100616

Committed r90887: &lt;http://trac.webkit.org/changeset/90887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436256</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 22:35:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436407</commentid>
    <comment_count>20</comment_count>
      <attachid>100616</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-07-13 06:50:28 -0700</bug_when>
    <thetext>Comment on attachment 100616
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:503
&gt; +    GC3Dint filter = (m_tilingData.borderTexels() &amp;&amp; !matrix.isIntegerTranslation()) ? GraphicsContext3D::LINEAR : GraphicsContext3D::NEAREST;

Post-landing drive-by:  if it&apos;s an integer translate, wouldn&apos;t it be better to simply skip the inflate step and extra geometry altogether?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436420</commentid>
    <comment_count>21</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-13 07:12:58 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 100616 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100616&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:503
&gt; &gt; +    GC3Dint filter = (m_tilingData.borderTexels() &amp;&amp; !matrix.isIntegerTranslation()) ? GraphicsContext3D::LINEAR : GraphicsContext3D::NEAREST;
&gt; 
&gt; Post-landing drive-by:  if it&apos;s an integer translate, wouldn&apos;t it be better to simply skip the inflate step and extra geometry altogether?

It&apos;s not the inflate step that is causing the output difference. It&apos;s the existence of transparent border texels, which we can&apos;t do without unless we know that the layer will never be transformed. E.g. the root layer doesn&apos;t have this problem as it&apos;s created without these border texels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436450</commentid>
    <comment_count>22</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-07-13 08:17:57 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (From update of attachment 100616 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100616&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:503
&gt; &gt; &gt; +    GC3Dint filter = (m_tilingData.borderTexels() &amp;&amp; !matrix.isIntegerTranslation()) ? GraphicsContext3D::LINEAR : GraphicsContext3D::NEAREST;
&gt; &gt; 
&gt; &gt; Post-landing drive-by:  if it&apos;s an integer translate, wouldn&apos;t it be better to simply skip the inflate step and extra geometry altogether?
&gt; 
&gt; It&apos;s not the inflate step that is causing the output difference. It&apos;s the existence of transparent border texels, which we can&apos;t do without unless we know that the layer will never be transformed. E.g. the root layer doesn&apos;t have this problem as it&apos;s created without these border texels.

I was thinking that you could avoid drawing the border texels, perhaps by adjusting the texture coordinates inward by a pixel to accommodate the non-inflated geometry.  Although with tiling, perhaps this special case might be more work than it&apos;s worth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436463</commentid>
    <comment_count>23</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-13 08:48:17 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; (From update of attachment 100616 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100616&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:503
&gt; &gt; &gt; &gt; +    GC3Dint filter = (m_tilingData.borderTexels() &amp;&amp; !matrix.isIntegerTranslation()) ? GraphicsContext3D::LINEAR : GraphicsContext3D::NEAREST;
&gt; &gt; &gt; 
&gt; &gt; &gt; Post-landing drive-by:  if it&apos;s an integer translate, wouldn&apos;t it be better to simply skip the inflate step and extra geometry altogether?
&gt; &gt; 
&gt; &gt; It&apos;s not the inflate step that is causing the output difference. It&apos;s the existence of transparent border texels, which we can&apos;t do without unless we know that the layer will never be transformed. E.g. the root layer doesn&apos;t have this problem as it&apos;s created without these border texels.
&gt; 
&gt; I was thinking that you could avoid drawing the border texels, perhaps by adjusting the texture coordinates inward by a pixel to accommodate the non-inflated geometry.  Although with tiling, perhaps this special case might be more work than it&apos;s worth.

Sorry for the confusion. What you&apos;re describing here is what I tried to explain in my previous comment that it isn&apos;t working. The existence of the border texels make a difference whether they are included in the texture coordinates or not. When creating the layer AA changes, this was the approach I first thought would be the best solution and my tests showing that it wasn&apos;t reliable is how I came to the conclusion that the nearest neighbor filter approach is better.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100428</attachid>
            <date>2011-07-11 19:37:44 -0700</date>
            <delta_ts>2011-07-12 09:31:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64338-20110711223743.patch</filename>
            <type>text/plain</type>
            <size>4287</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4MDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODVhY2NiMzA1MWVmMWIx
YTVhODA1NTVlYjFmZmYwMmEwM2VlNWQwLi5kNWEwOGYyNmJlZDJjNzg0NzYxNjhkZTkxZmNiMmRj
MGQ4YzY0NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMTEgIERhdmlk
IFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVz
ZSBuZWFyZXN0IGZpbHRlciBtZXRob2Qgd2l0aCBwaXhlbCBhbGlnbmVkIHRyYW5zZm9ybXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDMzOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoZWNrIGZvciBw
aXhlbCBhbGlnbmVkIHRyYW5zZm9ybWF0aW9ucyBhbmQgdXNlIG5lYXJlc3QgdGV4dHVyZSBmaWx0
ZXIKKyAgICAgICAgd2hlbiBwb3NzaWJsZSB0byBhdm9pZCBmaWx0ZXIgcHJlY2lzaW9ucyBwcm9i
bGVtcyBhdCB0aGUgbGF5ZXIgZWRnZXMuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvaWZy
YW1lcy9uZXN0ZWQtaWZyYW1lLXNjcm9sbGluZy5odG1sIChleGlzdGluZykKKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUaWxlcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6SXNQaXhlbEV4YWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4
Lmg6CisKIDIwMTEtMDctMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgcG9zaXRpb25Gb3JQb2ludCBpcyBicm9rZW4gd2hlbiBhIGJsb2NrIGlzIHBvc2l0aW9u
ZWQgcmVsYXRpdmVseSBpbnNpZGUgdGhlIHBhcmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1
bS5jcHAKaW5kZXggNjc2N2Q3Y2RiZTJhYTQyYjJkYjc2NzA0Mjk5MjhlZDBkZGUxMmIzMC4uNjBi
ODQwNjcxYTI5ZDQzZjU5ODlkZTM4NjQ2ZGIxNTllNTdkZmFmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRp
bGVyQ2hyb21pdW0uY3BwCkBAIC01MDAsNiArNTAwLDggQEAgdm9pZCBMYXllclRpbGVyQ2hyb21p
dW06OmRyYXdUaWxlcyhjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgVHJhbnNmb3Jt
YXQKICAgICB0b3BFZGdlLm1vdmUoMCwgMCwgekRpc3RhbmNlKTsKICAgICBib3R0b21FZGdlLm1v
dmUoMCwgMCwgekRpc3RhbmNlKTsKIAorICAgIEdDM0RpbnQgZmlsdGVyID0gKG1fdGlsaW5nRGF0
YS5ib3JkZXJUZXhlbHMoKSAmJiAhbWF0cml4LklzUGl4ZWxFeGFjdCgpKSA/IEdyYXBoaWNzQ29u
dGV4dDNEOjpMSU5FQVIgOiBHcmFwaGljc0NvbnRleHQzRDo6TkVBUkVTVDsKKwogICAgIEVkZ2Ug
cHJldkVkZ2VZID0gdG9wRWRnZTsKIAogICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207
CkBAIC01MzEsNiArNTMzLDggQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUaWxlcyhj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgVHJhbnNmb3JtYXQKICAgICAgICAgICAg
IEFTU0VSVCh0aWxlLT50ZXh0dXJlKCktPmlzUmVzZXJ2ZWQoKSk7CiAKICAgICAgICAgICAgIHRp
bGUtPnRleHR1cmUoKS0+YmluZFRleHR1cmUoKTsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBj
b250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBmaWx0ZXIpKTsKKyAgICAgICAgICAg
IEdMQyhjb250ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBmaWx0ZXIp
KTsKIAogICAgICAgICAgICAgLy8gRG9uJ3QgdXNlIHRpbGVDb250ZW50UmVjdCBoZXJlLCBhcyB0
aGF0IGNvbnRhaW5zIHRoZSBmdWxsCiAgICAgICAgICAgICAvLyByZWN0IHdpdGggYm9yZGVyIHRl
eGVscyB3aGljaCBzaG91bGRuJ3QgYmUgZHJhd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwCmluZGV4IGM3MjgzYTUwNzAxMzhkYTQxOTI2YmU1OWI5NmJkYzliZDI0NjU2
OTUuLjI0ODcyZGNlZjk5MzIwZDVlYWQzODgyZmY3NjdmODg3ZTc1NmM5YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCkBAIC0xMTI2LDQgKzExMjYsMTkgQEAgdm9p
ZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjb21wb3NlKGNvbnN0IERlY29tcG9zZWRUeXBlJiBk
ZWNvbXApCiAgICAgc2NhbGUzZCgoZmxvYXQpIGRlY29tcC5zY2FsZVgsIChmbG9hdCkgZGVjb21w
LnNjYWxlWSwgKGZsb2F0KSBkZWNvbXAuc2NhbGVaKTsKIH0KIAorYm9vbCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6SXNQaXhlbEV4YWN0KCkgY29uc3QKK3sKKyAgICBpZiAoIWlzSWRlbnRpdHlPclRy
YW5zbGF0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX21hdHJpeFsz
XVsyXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHJvdW5kZihtX21hdHJpeFsz
XVswXSkgIT0gbV9tYXRyaXhbM11bMF0KKyAgICAgICAgfHwgcm91bmRmKG1fbWF0cml4WzNdWzFd
KSAhPSBtX21hdHJpeFszXVsxXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAppbmRleCBm
ZjY2OGJiY2QxYmE0OWFjYWQ2ZDg5NGQ1OTI2ZjA5MTg3YWRkYmI0Li4yODE1MTQzMzdlYzczMWZl
NTY4Y2Q3YzBiNjk1MTkzOTFhMGRjMTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oCkBAIC0zMzksNiArMzM5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgICYmIG1fbWF0
cml4WzNdWzNdID09IDE7CiAgICAgfQogCisgICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyB0cnVl
IGlmIG1hdHJpeCBpcyBjb21wb3NlZCBvbmx5IG9mIDkwIGRlZ3JlZQorICAgIC8vIHJvdGF0aW9u
cywgZmxpcHMsIGFuZCBpbnRlZ2VyIHRyYW5zbGF0aW9ucyBzdWNoIHRoYXQgaXQgcHJvZHVjZXMK
KyAgICAvLyBhIDE6MSBtYXBwaW5nIGJldHdlZW4gc291cmNlIGFuZCBkZXN0aW5hdGlvbiBwaXhl
bHMuCisgICAgYm9vbCBJc1BpeGVsRXhhY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICAvLyBt
dWx0aXBseSBwYXNzZWQgMkQgcG9pbnQgYnkgbWF0cml4IChhc3N1bWUgej0wKQogICAgIHZvaWQg
bXVsdFZlY01hdHJpeChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSYgZHN0WCwgZG91YmxlJiBk
c3RZKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100499</attachid>
            <date>2011-07-12 09:31:31 -0700</date>
            <delta_ts>2011-07-12 14:12:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64338-20110712123130.patch</filename>
            <type>text/plain</type>
            <size>4148</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4MjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjN2Q3ZTc0NTcwMDFhMTlm
MjdiNWUyZWQwN2NkZWQ5ZjI0NjAwYTA2Li42ZGE3MTI0YWRhYmE1OGRhZjQ5ZTQ0MjA3OWJlN2Zh
MWY1MjBiYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMTIgIERhdmlk
IFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVz
ZSBuZWFyZXN0IGZpbHRlciBtZXRob2Qgd2l0aCBwaXhlbCBhbGlnbmVkIHRyYW5zZm9ybXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDMzOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoZWNrIGZvciBp
bnRlZ2VyIHRyYW5zbGF0aW9uIGFuZCB1c2UgbmVhcmVzdCB0ZXh0dXJlIGZpbHRlciB3aGVuCisg
ICAgICAgIHBvc3NpYmxlIHRvIGF2b2lkIGZpbHRlciBwcmVjaXNpb25zIHByb2JsZW1zIGF0IHRo
ZSBsYXllciBlZGdlcy4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9pZnJhbWVzL25lc3Rl
ZC1pZnJhbWUtc2Nyb2xsaW5nLmh0bWwgKGV4aXN0aW5nKQorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6ZHJhd1RpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpJc0ludGVnZXJUcmFuc2xhdGlvbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
OgorCiAyMDExLTA3LTEyICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbmNlbGxpbmcgYW4gZW1wdHkgZWRpdCBmYWls
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyVGlsZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCmluZGV4IDY3NjdkN2NkYmUyYWE0MmIy
ZGI3NjcwNDI5OTI4ZWQwZGRlMTJiMzAuLmQyMmQ2MTc0MGNhOGI0ZTY0OWQwMTU3NmMzZWRiOWJi
YmM5YmU3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcApAQCAtNTAwLDYgKzUw
MCw4IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3VGlsZXMoY29uc3QgSW50UmVjdCYg
Y29udGVudFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0CiAgICAgdG9wRWRnZS5tb3ZlKDAsIDAsIHpE
aXN0YW5jZSk7CiAgICAgYm90dG9tRWRnZS5tb3ZlKDAsIDAsIHpEaXN0YW5jZSk7CiAKKyAgICBH
QzNEaW50IGZpbHRlciA9IChtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkgJiYgIW1hdHJpeC5J
c0ludGVnZXJUcmFuc2xhdGlvbigpKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIgOiBHcmFw
aGljc0NvbnRleHQzRDo6TkVBUkVTVDsKKwogICAgIEVkZ2UgcHJldkVkZ2VZID0gdG9wRWRnZTsK
IAogICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207CkBAIC01MzEsNiArNTMzLDggQEAg
dm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUaWxlcyhjb25zdCBJbnRSZWN0JiBjb250ZW50
UmVjdCwgY29uc3QgVHJhbnNmb3JtYXQKICAgICAgICAgICAgIEFTU0VSVCh0aWxlLT50ZXh0dXJl
KCktPmlzUmVzZXJ2ZWQoKSk7CiAKICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+YmluZFRl
eHR1cmUoKTsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0ZXJp
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9NSU5fRklMVEVSLCBmaWx0ZXIpKTsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0
LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBmaWx0ZXIpKTsKIAogICAgICAgICAgICAgLy8g
RG9uJ3QgdXNlIHRpbGVDb250ZW50UmVjdCBoZXJlLCBhcyB0aGF0IGNvbnRhaW5zIHRoZSBmdWxs
CiAgICAgICAgICAgICAvLyByZWN0IHdpdGggYm9yZGVyIHRleGVscyB3aGljaCBzaG91bGRuJ3Qg
YmUgZHJhd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCmluZGV4IGM3
MjgzYTUwNzAxMzhkYTQxOTI2YmU1OWI5NmJkYzliZDI0NjU2OTUuLjY1NDI1MDQ5ZjJjYmY2ZThi
ZDAzYWI3MDMwZDhlMDVjM2ZkOTZiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25N
YXRyaXguY3BwCkBAIC0xMTI2LDQgKzExMjYsMjEgQEAgdm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6cmVjb21wb3NlKGNvbnN0IERlY29tcG9zZWRUeXBlJiBkZWNvbXApCiAgICAgc2NhbGUzZCgo
ZmxvYXQpIGRlY29tcC5zY2FsZVgsIChmbG9hdCkgZGVjb21wLnNjYWxlWSwgKGZsb2F0KSBkZWNv
bXAuc2NhbGVaKTsKIH0KIAorYm9vbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6SXNJbnRlZ2VyVHJh
bnNsYXRpb24oKSBjb25zdAoreworICAgIGlmICghaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gWiB0cmFuc2xhdGUKKyAgICBpZiAobV9t
YXRyaXhbM11bMl0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIHBpeGVsIGV4YWN0
IFgvWSB0cmFuc2xhdGUKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihtX21hdHJpeFszXVswXSkg
IT0gbV9tYXRyaXhbM11bMF0KKyAgICAgICAgfHwgc3RhdGljX2Nhc3Q8aW50PihtX21hdHJpeFsz
XVsxXSkgIT0gbV9tYXRyaXhbM11bMV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKaW5k
ZXggZmY2NjhiYmNkMWJhNDlhY2FkNmQ4OTRkNTkyNmYwOTE4N2FkZGJiNC4uMmIwNTZkMzVmMzhk
MjAyYWUxNzZhZmZlYzRjY2M1OTYyMDFkZTI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRp
b25NYXRyaXguaApAQCAtMzM5LDYgKzMzOSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICYmIG1f
bWF0cml4WzNdWzNdID09IDE7CiAgICAgfQogCisgICAgYm9vbCBJc0ludGVnZXJUcmFuc2xhdGlv
bigpIGNvbnN0OworCiBwcml2YXRlOgogICAgIC8vIG11bHRpcGx5IHBhc3NlZCAyRCBwb2ludCBi
eSBtYXRyaXggKGFzc3VtZSB6PTApCiAgICAgdm9pZCBtdWx0VmVjTWF0cml4KGRvdWJsZSB4LCBk
b3VibGUgeSwgZG91YmxlJiBkc3RYLCBkb3VibGUmIGRzdFkpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100560</attachid>
            <date>2011-07-12 14:12:41 -0700</date>
            <delta_ts>2011-07-12 20:36:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64338-20110712171239.patch</filename>
            <type>text/plain</type>
            <size>12359</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YjhmMGQyNDE1MjU3ZGNlYzJhODc0
MWQxZjIyMzJmNjA3NWZhMGRiLi40OGU4ZDhmNDEwYzNhNWRjNjY2NTE3ZTgwNzI1MzQ5OThhM2Ri
OTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDctMTIgIERhdmlkIFJldmVtYW4gIDxy
ZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVzZSBuZWFyZXN0IGZp
bHRlciBtZXRob2Qgd2l0aCBwaXhlbCBhbGlnbmVkIHRyYW5zZm9ybXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDMzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBleHBlY3RlZCByZXN1bHRz
LgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
CiAyMDExLTA3LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBpbnRyb2R1Y2UgVXNlck1ldHJpY3MgZm9yIGNvbGxlY3Rpbmcg
c3RhdHMgaW4gQ2hyb21pdW0gcG9ydC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBlMmQ1OGY5MTZmOThkZmMyY2I1YWM5
NjI4YTJhYWU5NGNkYTAyN2M4Li5lMzJjYWFiNjZlYzU1M2FiNjZhNTliYjMzYTcwOTMxNzk2OTYx
ZjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CkBAIC0yODkzLDEyICsyODkzLDExIEBAIEJVR0NSNzUxMDkgV0lOIExJTlVY
IDogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLnhodG1sID0gVEVYVAogQlVHQ1I3NTAx
OSBXSU4gTElOVVggTUFDIDpmYXN0L3RleHQvaHlwaGVuYXRlLWxpbWl0LWJlZm9yZS1hZnRlci5o
dG1sID0gSU1BR0UrVEVYVAogCiAvLyBDaHJvbWl1bSBHUFUgZHJhd3Mgc2Nyb2xsYmFycyBzbGln
aHRseSBkaWZmZXJlbnRseSBpbiBkZWJ1ZyB2cy4gcmVsZWFzZS4KLS8vIENvbW1lbnRlZCBiZWNh
dXNlIG9mIEJVR1dLNjEzODgKLS8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3Np
dGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCi0vL0JVR1dLNTg1ODcg
REVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvaG9yaXpvbnRhbC1zY3JvbGwt
Y29tcG9zaXRlZC5odG1sID0gSU1BR0UKLS8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBj
b21wb3NpdGluZy9nZW9tZXRyeS90YWxsLXBhZ2UtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKLS8v
QlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1m
aXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCi0vL0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVY
IDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0gSU1BR0UKK0JVR1dLNTg1ODcgREVCVUcgR1BVIExJ
TlVYIDogY29tcG9zaXRpbmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgPSBJTUFHRQor
QlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS9ob3Jpem9u
dGFsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s1ODU4NyBERUJVRyBHUFUg
TElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS90YWxsLXBhZ2UtY29tcG9zaXRlZC5odG1sID0g
SU1BR0UKK0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
dmlkZW8tZml4ZWQtc2Nyb2xsaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s1ODU4NyBERUJVRyBHUFUg
TElOVVggOiBtZWRpYS92aWRlby16b29tLmh0bWwgPSBJTUFHRQogCiAvLyBXZWJLaXQgcm9sbCA4
MDU2NDo4MDYzMTogcmVuZGVyaW5nIG9uIExlb3BhcmQgaXMgc2hpZnRlZCB0byB0aGUgdG9wIHJp
Z2h0CiAvLyBzdGFydGVkIGF0IHNvbWUgcG9pbnQgYXQgb3IgYWZ0ZXIgV0sgcjgwNTgyIChEYXZl
IEh5YXR0J3MgdmVydGljYWwgdGV4dCBjaGFuZ2UgLSBhIHZlcnkgbGlrZWx5IGNhbmRpZGF0ZSkK
QEAgLTMyMjIsOCArMzIyMSw3IEBAIEJVR0NSNzkxMTAgV0lOIExJTlVYIDogZmFzdC9vdmVyZmxv
dy9pbmZpbml0ZVJlY3Vyc2lvbkd1YXJkLmh0bWwgPSBJTUFHRStURVhUCiBCVUdDUjc5MTExIEdQ
VSA6IGNvbXBvc2l0aW5nL2ZyYW1lc2V0cy9jb21wb3NpdGVkLWZyYW1lLWFsaWdubWVudC5odG1s
ID0gSU1BR0UKIAogQlVHV0s1ODMwOCBHUFUgV0lOIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcv
ei1vcmRlci9uZWdhdGl2ZS16LWluZGV4Lmh0bWwgPSBQQVNTIENSQVNICi0vLyBDb21tZW50ZWQg
YmVjYXVzZSBvZiBCVUdXSzYxMzg4Ci0vL0JVR1dLNTgzMjggR1BVIFdJTiBNQUMgTElOVVggREVC
VUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRSBQQVNT
IENSQVNICitCVUdXSzU4MzI4IEdQVSBXSU4gTUFDIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UgUEFTUyBDUkFTSAogCiBCVUdDUjc5
MTczIEdQVSBMSU5VWCBERUJVRyA6IGZhc3QvY2FudmFzL2FjY2Vzcy16ZXJvLXNpemVkLWNhbnZh
cy5odG1sID0gUEFTUyBDUkFTSAogCkBAIC0zMzgxLDExICszMzc5LDkgQEAgQlVHV0s2MDA5OSBE
RUJVRyA6IGZhc3QvZG9tL0F0dHIvYWNjZXNzLWFmdGVyLWVsZW1lbnQtZGVzdHJ1Y3Rpb24uaHRt
bCA9IENSQVNIIFAKIEJVR1dLNjAwOTYgREVCVUcgOiBmYXN0L2Nzcy9sYXN0LWNoaWxkLXBzZXVk
by1jbGFzcy5odG1sID0gVEVYVCBQQVNTCiBCVUdXSzYwMDk3IERFQlVHIDogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3QuaHRtbCA9IFRFWFQgUEFTUwog
Ci0vLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4Ci0vL0JVR1dLNjAxMDIgTElOVVgg
REVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtaW4tY29tcG9zaXRlZC5odG1s
ID0gSU1BR0UKK0JVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtaW4tY29tcG9zaXRlZC5odG1sID0gSU1BR0UKIEJVR1dLNjAxMDIgTElOVVggR1BV
IDogY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFuY2VzdG9yLmh0bWwgPSBJTUFHRQotLy8gQ29t
bWVudGVkIGJlY2F1c2Ugb2YgQlVHV0s2MTM4OAotLy9CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQ
VSA6IGNvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbCA9IElNQUdF
CitCVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1j
b21wb3NpdGVkLW1hc2suaHRtbCA9IElNQUdFCiAKIC8vIExvb2tzIGxpa2Ugc29tZSB1bmluaXRp
YWxpemVkIG1lbW9yeSBhdCB0aGUgYm90dG9tLgogQlVHV0s2MDEwMyA6IGZhc3QvcmVwbGFjZWQv
Ym9yZGVyLXJhZGl1cy1jbGlwLmh0bWwgPSBJTUFHRSBUSU1FT1VUIElNQUdFK1RFWFQKQEAgLTM4
NDcsOCArMzg0Myw3IEBAIEJVR0NSODgzMTEgTUFDIERFQlVHIDogZmFzdC9jc3MvbGFzdC1vZi10
eXBlLXBzZXVkby1jbGFzcy5odG1sID0gVEVYVAogQlVHV0s2MzkwMiBNQUMgV0lOIDogc3ZnL2Fu
aW1hdGlvbnMvc3ZndHJhbnNmb3JtLWFuaW1hdGlvbi0xLmh0bWwgPSBURVhUCiAKIC8vIFN0YXJ0
ZWQgZmFpbGluZyBhdCBXZWJLaXQgcjkwMjU5LTkwMjYxLgotLy8gQ29tbWVudGVkIGJlY2F1c2Ug
b2YgQlVHV0s2MTM4OAotLy9CVUdDUjg4NDAwIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3Zl
cnRpY2FsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHQ1I4ODQwMCBHUFUgOiBj
b21wb3NpdGluZy9nZW9tZXRyeS92ZXJ0aWNhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1B
R0UKIAogLy8gU3RhcnRlZCBhcm91bmQgV2ViS2l0IHI5MDIzMzpyOTAyNDIKIEJVR1dLNjQwMDAg
U05PV0xFT1BBUkQgREVCVUcgOiBmYXN0L2V2ZW50cy9jbGljay1mb2N1cy1hbmNob3IuaHRtbCA9
IFBBU1MgVEVYVApAQCAtMzg4Miw1MSArMzg3NywxOSBAQCBCVUdDUjg4NTk0IFdJTjcgOiBodHRw
L3Rlc3RzL2FwcGNhY2hlL21hbmlmZXN0LXJlZGlyZWN0LTIuaHRtbCA9IFRJTUVPVVQgUEFTUwog
QlVHQ1I4ODU5NCBXSU43IDogaHR0cC90ZXN0cy9hcHBjYWNoZS9mYWxsYmFjay5odG1sID0gVElN
RU9VVAogCiBCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNoaW5nL2ltYWdl
LWNvbG9yLW1hdGNoaW5nLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBXSU4gTElOVVggR1BVIDog
Y29tcG9zaXRpbmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgPSBJTUFHRQotQlVHV0s2
MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwg
PSBJTUFHRQogQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
aG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKIEJVR1dLNjEzODggR1BV
IDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxheWVyLWNoaWxkcmVuLWRlZXAu
aHRtbCA9IElNQUdFCiBCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xheWVy
LWR1ZS10by1sYXllci1jaGlsZHJlbi5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggV0lOIExJTlVY
IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3RhbGwtcGFnZS1jb21wb3NpdGVkLmh0bWwgPSBJ
TUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1z
Y3JvbGxpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21l
dHJ5L3ZlcnRpY2FsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBH
UFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1vcGFjaXR5LW92ZXJsYXkuaHRtbCA9IElN
QUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2lmcmFtZXMvbmVzdGVkLWlmcmFtZS1z
Y3JvbGxpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL21hc2tz
L2RpcmVjdC1pbWFnZS1tYXNrLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0bWwgPSBJTUFHRQogQlVHV0s2MTM4
OCBHUFUgOiBjb21wb3NpdGluZy9vdmVyZmxvdy9maXhlZC1wb3NpdGlvbi1hbmNlc3Rvci1jbGlw
Lmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9k
ZWVwbHktbmVzdGVkLXJlZmxlY3Rpb25zLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi1vbi1vdmVyZmxvdy5odG1s
ID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVk
LXJlZmxlY3Rpb24tdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVkMi5odG1s
ID0gSU1BR0UKIEJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVk
LXJlZmxlY3Rpb24tdHJhbnNpdGlvbi5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogY29t
cG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1pbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFH
RQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW9u
LWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3JkZXJpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQ
VSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcuaHRtbCA9
IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rp
b24tcG9zaXRpb25pbmcyLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9yZWZsZWN0aW9ucy9zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0aW9ucy5odG1sID0gSU1BR0UK
IEJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvdHJhbnNmb3JtLWluc2lk
ZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9y
dGwvcnRsLWlmcmFtZS1hYnNvbHV0ZS1vdmVyZmxvdy5odG1sID0gSU1BR0UKLUJVR1dLNjEzODgg
R1BVIDogY29tcG9zaXRpbmcvcnRsL3J0bC1pZnJhbWUtZml4ZWQtb3ZlcmZsb3cuaHRtbCA9IElN
QUdFCiBCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3NoYWRvd3Mvc2hhZG93LWRyYXdpbmcu
aHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3RleHQtb24tbGFyZ2Ut
bGF5ZXIuaHRtbCA9IElNQUdFCiBCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3RyYW5zaXRp
b25zL3NjYWxlLXRyYW5zaXRpb24tbm8tc3RhcnQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQ
VSA6IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlZmxlY3Rpb24uaHRtbCA9IElNQUdFCi1CVUdX
SzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5ZXItcm90
YXRlZC5odG1sID0gSU1BR0UKIEJVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS10cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKLUJV
R1dLNjEzODggV0lOIExJTlVYIEdQVSA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCi1C
VUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5ZXIt
cm90YXRlZC5odG1sID0gSU1BR0UKIEJVR1dLNjEzODggR1BVIDogbWVkaWEvdmlkZW8tdHJhbnNm
b3JtZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVvLWxheWVyLWNy
YXNoLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBXSU4gR1BVIDogY29tcG9zaXRpbmcvaWZyYW1l
cy9jb21wb3NpdGVkLWlmcmFtZS1hbGlnbm1lbnQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IFdJ
TiBNQUMgR1BVIDogY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFuY2VzdG9yLmh0bWwgPSBJTUFH
RQotQlVHV0s2MTM4OCBXSU4gR1BVIDogbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5nLmh0
bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBXSU4gTUFDIEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL2xheW91dC13aWR0aC1jaGFuZ2UuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQ
VSA6IG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbCA9IElNQUdFCiBCVUdXSzYxMzg4IFdJ
TiBNQUMgR1BVIDogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3Rh
dGVkLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBNQUMgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mv
bXVsdGlwbGUtbWFza3MuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IE1BQyBHUFUgOiBwbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9wZXJwZW5kaWN1bGFyLWxheWVyLXNvcnRpbmcuaHRtbCA9
IElNQUdFCiAKIC8vIEdldHRpbmcgZm9ybSB2YWx1ZSBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Lgog
QlVHV0sxMzA2MSA6IHBsdWdpbnMvZm9ybS12YWx1ZS5odG1sID0gVEVYVApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDZjOWU0ZGEzN2EzZDYxMmU5OGRkMDAzMWYyNzk3YTgyZmY0ZDQ3NGEuLjc3MTI3Njk0ZDQ0NDJj
MTM1NDQxYzg4OTkxZWEyNTg2MDE0M2QzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMS0wNy0xMiAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtDaHJvbWl1bV0gVXNlIG5lYXJlc3QgZmlsdGVyIG1ldGhvZCB3aXRoIHBpeGVsIGFsaWdu
ZWQgdHJhbnNmb3Jtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0MzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2hlY2sgZm9yIGludGVnZXIgdHJhbnNsYXRpb24gYW5kIHVzZSBuZWFyZXN0IHRleHR1
cmUgZmlsdGVyIHdoZW4KKyAgICAgICAgcG9zc2libGUgdG8gYXZvaWQgZmlsdGVyIHByZWNpc2lv
bnMgcHJvYmxlbXMgYXQgdGhlIGxheWVyIGVkZ2VzLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0
aW5nL2lmcmFtZXMvbmVzdGVkLWlmcmFtZS1zY3JvbGxpbmcuaHRtbCAoZXhpc3RpbmcpCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjpkcmF3VGlsZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXgu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OmlzSW50ZWdlclRy
YW5zbGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
Zm9ybWF0aW9uTWF0cml4Lmg6CisKIDIwMTEtMDctMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5
MDgzMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCmluZGV4IGNhYjRjYmU1OWJkNDM3
OWM4NDY2ZWNmNGU3MDVkMWVhNGRiMDQ1MjkuLmJmZjk1ZGY5YzA2ODY4NjQyNmEyYjZmMWRkMGNi
NjU1ZDhiNzk0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcApAQCAtNTAyLDYg
KzUwMiw4IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3VGlsZXMoY29uc3QgSW50UmVj
dCYgY29udGVudFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0CiAgICAgdG9wRWRnZS5tb3ZlKDAsIDAs
IHpEaXN0YW5jZSk7CiAgICAgYm90dG9tRWRnZS5tb3ZlKDAsIDAsIHpEaXN0YW5jZSk7CiAKKyAg
ICBHQzNEaW50IGZpbHRlciA9IChtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkgJiYgIW1hdHJp
eC5pc0ludGVnZXJUcmFuc2xhdGlvbigpKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIgOiBH
cmFwaGljc0NvbnRleHQzRDo6TkVBUkVTVDsKKwogICAgIEVkZ2UgcHJldkVkZ2VZID0gdG9wRWRn
ZTsKIAogICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207CkBAIC01MzMsNiArNTM1LDgg
QEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUaWxlcyhjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCwgY29uc3QgVHJhbnNmb3JtYXQKICAgICAgICAgICAgIEFTU0VSVCh0aWxlLT50ZXh0
dXJlKCktPmlzUmVzZXJ2ZWQoKSk7CiAKICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+Ymlu
ZFRleHR1cmUoKTsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0
ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9NSU5fRklMVEVSLCBmaWx0ZXIpKTsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250
ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBmaWx0ZXIpKTsKIAogICAgICAgICAgICAg
Ly8gRG9uJ3QgdXNlIHRpbGVDb250ZW50UmVjdCBoZXJlLCBhcyB0aGF0IGNvbnRhaW5zIHRoZSBm
dWxsCiAgICAgICAgICAgICAvLyByZWN0IHdpdGggYm9yZGVyIHRleGVscyB3aGljaCBzaG91bGRu
J3QgYmUgZHJhd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCmluZGV4
IGM3MjgzYTUwNzAxMzhkYTQxOTI2YmU1OWI5NmJkYzliZDI0NjU2OTUuLmExM2Y5ZWQzMWU3YWVl
ODA0OWU3NDYxMjg5MWU2ZTg2MzJlMzA0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwCkBAIC0xMTI2LDQgKzExMjYsMjEgQEAgdm9pZCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6cmVjb21wb3NlKGNvbnN0IERlY29tcG9zZWRUeXBlJiBkZWNvbXApCiAgICAgc2NhbGUz
ZCgoZmxvYXQpIGRlY29tcC5zY2FsZVgsIChmbG9hdCkgZGVjb21wLnNjYWxlWSwgKGZsb2F0KSBk
ZWNvbXAuc2NhbGVaKTsKIH0KIAorYm9vbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJbnRlZ2Vy
VHJhbnNsYXRpb24oKSBjb25zdAoreworICAgIGlmICghaXNJZGVudGl0eU9yVHJhbnNsYXRpb24o
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gWiB0cmFuc2xhdGUKKyAgICBpZiAo
bV9tYXRyaXhbM11bMl0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIHBpeGVsIGV4
YWN0IFgvWSB0cmFuc2xhdGUKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihtX21hdHJpeFszXVsw
XSkgIT0gbV9tYXRyaXhbM11bMF0KKyAgICAgICAgfHwgc3RhdGljX2Nhc3Q8aW50PihtX21hdHJp
eFszXVsxXSkgIT0gbV9tYXRyaXhbM11bMV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgK
aW5kZXggZmY2NjhiYmNkMWJhNDlhY2FkNmQ4OTRkNTkyNmYwOTE4N2FkZGJiNC4uZWM4YWQxYTY4
ZDVkZjBmY2EwZWNiOWMyMDIyY2E4Y2Y4OTk3MzdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3Jt
YXRpb25NYXRyaXguaApAQCAtMzM5LDYgKzMzOSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICYm
IG1fbWF0cml4WzNdWzNdID09IDE7CiAgICAgfQogCisgICAgYm9vbCBpc0ludGVnZXJUcmFuc2xh
dGlvbigpIGNvbnN0OworCiBwcml2YXRlOgogICAgIC8vIG11bHRpcGx5IHBhc3NlZCAyRCBwb2lu
dCBieSBtYXRyaXggKGFzc3VtZSB6PTApCiAgICAgdm9pZCBtdWx0VmVjTWF0cml4KGRvdWJsZSB4
LCBkb3VibGUgeSwgZG91YmxlJiBkc3RYLCBkb3VibGUmIGRzdFkpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100616</attachid>
            <date>2011-07-12 20:36:31 -0700</date>
            <delta_ts>2011-07-13 06:50:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64338-20110712233630.patch</filename>
            <type>text/plain</type>
            <size>12371</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4ODIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZDdhMWRkM2VhNmI0MGRmMjM0OTVl
YzliNTI4MTk2ZDVkMWQ3YTIyLi4yOWE3NWEyNWQwNDhlYzg4YzhkMWI4ZmQ3OWRkYTYwYmUxNDU0
ZTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDctMTIgIERhdmlkIFJldmVtYW4gIDxy
ZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVzZSBuZWFyZXN0IGZp
bHRlciBtZXRob2Qgd2l0aCBwaXhlbCBhbGlnbmVkIHRyYW5zZm9ybXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDMzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBleHBlY3RlZCByZXN1bHRz
LgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
CiAyMDExLTA3LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
REZHIEpJVCBkb2VzIG5vdCBpbXBsZW1lbnQgb3BfY29uc3RydWN0LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDBkMGI2
MzdlMjVlOGEyMjUzYTliN2YzNDg1ZTliMDVjOGRmNGRlMDMuLmFiMWQ3MDcxOWY2NzM1ZjRiYWE2
MzM1OGUxYjY2MzZkYTE2ZjE3YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI4OTUsMTIgKzI4OTUsMTEgQEAgQlVH
Q1I3NTEwOSBXSU4gTElOVVggOiBzdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMueGh0bWwg
PSBURVhUCiBCVUdDUjc1MDE5IFdJTiBMSU5VWCBNQUMgOmZhc3QvdGV4dC9oeXBoZW5hdGUtbGlt
aXQtYmVmb3JlLWFmdGVyLmh0bWwgPSBJTUFHRStURVhUCiAKIC8vIENocm9taXVtIEdQVSBkcmF3
cyBzY3JvbGxiYXJzIHNsaWdodGx5IGRpZmZlcmVudGx5IGluIGRlYnVnIHZzLiByZWxlYXNlLgot
Ly8gQ29tbWVudGVkIGJlY2F1c2Ugb2YgQlVHV0s2MTM4OAotLy9CVUdXSzU4NTg3IERFQlVHIEdQ
VSBMSU5VWCA6IGNvbXBvc2l0aW5nL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5odG1sID0gSU1B
R0UKLS8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS9o
b3Jpem9udGFsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQotLy9CVUdXSzU4NTg3IERF
QlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3RhbGwtcGFnZS1jb21wb3NpdGVk
Lmh0bWwgPSBJTUFHRQotLy9CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5n
L2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKLS8vQlVHV0s1ODU4
NyBERUJVRyBHUFUgTElOVVggOiBtZWRpYS92aWRlby16b29tLmh0bWwgPSBJTUFHRQorQlVHV0s1
ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRp
bmcuaHRtbCA9IElNQUdFCitCVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdX
SzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3RhbGwtcGFnZS1j
b21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21w
b3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCitCVUdX
SzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCiAK
IC8vIFdlYktpdCByb2xsIDgwNTY0OjgwNjMxOiByZW5kZXJpbmcgb24gTGVvcGFyZCBpcyBzaGlm
dGVkIHRvIHRoZSB0b3AgcmlnaHQKIC8vIHN0YXJ0ZWQgYXQgc29tZSBwb2ludCBhdCBvciBhZnRl
ciBXSyByODA1ODIgKERhdmUgSHlhdHQncyB2ZXJ0aWNhbCB0ZXh0IGNoYW5nZSAtIGEgdmVyeSBs
aWtlbHkgY2FuZGlkYXRlKQpAQCAtMzIyNCw4ICszMjIzLDcgQEAgQlVHQ1I3OTExMCBXSU4gTElO
VVggOiBmYXN0L292ZXJmbG93L2luZmluaXRlUmVjdXJzaW9uR3VhcmQuaHRtbCA9IElNQUdFK1RF
WFQKIEJVR0NSNzkxMTEgR1BVIDogY29tcG9zaXRpbmcvZnJhbWVzZXRzL2NvbXBvc2l0ZWQtZnJh
bWUtYWxpZ25tZW50Lmh0bWwgPSBJTUFHRQogCiBCVUdXSzU4MzA4IEdQVSBXSU4gTElOVVggREVC
VUcgOiBjb21wb3NpdGluZy96LW9yZGVyL25lZ2F0aXZlLXotaW5kZXguaHRtbCA9IFBBU1MgQ1JB
U0gKLS8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKLS8vQlVHV0s1ODMyOCBHUFUg
V0lOIE1BQyBMSU5VWCBERUJVRyA6IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlZmxlY3Rpb24u
aHRtbCA9IElNQUdFIFBBU1MgQ1JBU0gKK0JVR1dLNTgzMjggR1BVIFdJTiBNQUMgTElOVVggREVC
VUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRSBQQVNT
IENSQVNICiAKIEJVR0NSNzkxNzMgR1BVIExJTlVYIERFQlVHIDogZmFzdC9jYW52YXMvYWNjZXNz
LXplcm8tc2l6ZWQtY2FudmFzLmh0bWwgPSBQQVNTIENSQVNICiAKQEAgLTMzODMsMTEgKzMzODEs
OSBAQCBCVUdXSzYwMDk5IERFQlVHIDogZmFzdC9kb20vQXR0ci9hY2Nlc3MtYWZ0ZXItZWxlbWVu
dC1kZXN0cnVjdGlvbi5odG1sID0gQ1JBU0ggUAogQlVHV0s2MDA5NiBERUJVRyA6IGZhc3QvY3Nz
L2xhc3QtY2hpbGQtcHNldWRvLWNsYXNzLmh0bWwgPSBURVhUIFBBU1MKIEJVR1dLNjAwOTcgREVC
VUcgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5o
dG1sID0gVEVYVCBQQVNTCiAKLS8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKLS8v
QlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1p
bi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBj
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQogQlVH
V0s2MDEwMiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5jZXN0b3IuaHRt
bCA9IElNQUdFCi0vLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4Ci0vL0JVR1dLNjAx
MDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQt
bWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRp
bmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKIAogLy8gTG9va3Mg
bGlrZSBzb21lIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGF0IHRoZSBib3R0b20uCiBCVUdXSzYwMTAz
IDogZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAuaHRtbCA9IElNQUdFIFRJTUVPVVQg
SU1BR0UrVEVYVApAQCAtMzg0OSw4ICszODQ1LDcgQEAgQlVHQ1I4ODMxMSBNQUMgREVCVUcgOiBm
YXN0L2Nzcy9sYXN0LW9mLXR5cGUtcHNldWRvLWNsYXNzLmh0bWwgPSBURVhUCiBCVUdXSzYzOTAy
IE1BQyBXSU4gOiBzdmcvYW5pbWF0aW9ucy9zdmd0cmFuc2Zvcm0tYW5pbWF0aW9uLTEuaHRtbCA9
IFRFWFQKIAogLy8gU3RhcnRlZCBmYWlsaW5nIGF0IFdlYktpdCByOTAyNTktOTAyNjEuCi0vLyBD
b21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4Ci0vL0JVR0NSODg0MDAgR1BVIDogY29tcG9z
aXRpbmcvZ2VvbWV0cnkvdmVydGljYWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitC
VUdDUjg4NDAwIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZlcnRpY2FsLXNjcm9sbC1jb21w
b3NpdGVkLmh0bWwgPSBJTUFHRQogCiAvLyBTdGFydGVkIGFyb3VuZCBXZWJLaXQgcjkwMjMzOnI5
MDI0MgogQlVHV0s2NDAwMCBTTk9XTEVPUEFSRCBERUJVRyA6IGZhc3QvZXZlbnRzL2NsaWNrLWZv
Y3VzLWFuY2hvci5odG1sID0gUEFTUyBURVhUCkBAIC0zODg0LDUxICszODc5LDE5IEBAIEJVR0NS
ODg1OTQgV0lONyA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbWFuaWZlc3QtcmVkaXJlY3QtMi5odG1s
ID0gVElNRU9VVCBQQVNTCiBCVUdDUjg4NTk0IFdJTjcgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL2Zh
bGxiYWNrLmh0bWwgPSBUSU1FT1VUCiAKIEJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvY29s
b3ItbWF0Y2hpbmcvaW1hZ2UtY29sb3ItbWF0Y2hpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4
IFdJTiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRt
bCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWlu
LWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCiBCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9nZW9tZXRyeS9ob3Jpem9udGFsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFH
RQogQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9sYXllci1kdWUtdG8tbGF5
ZXItY2hpbGRyZW4tZGVlcC5odG1sID0gSU1BR0UKIEJVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxheWVyLWNoaWxkcmVuLmh0bWwgPSBJTUFHRQotQlVH
V0s2MTM4OCBXSU4gTElOVVggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFsbC1wYWdlLWNv
bXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21l
dHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvdmVydGljYWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElN
QUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLW9wYWNpdHkt
b3ZlcmxheS5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvaWZyYW1l
cy9uZXN0ZWQtaWZyYW1lLXNjcm9sbGluZy5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvbWFza3MvZGlyZWN0LWltYWdlLW1hc2suaHRtbCA9IElNQUdFCi1CVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbCA9
IElNQUdFCiBCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL292ZXJmbG93L2ZpeGVkLXBvc2l0
aW9uLWFuY2VzdG9yLWNsaXAuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0
aW5nL3JlZmxlY3Rpb25zL2RlZXBseS1uZXN0ZWQtcmVmbGVjdGlvbnMuaHRtbCA9IElNQUdFCi1C
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9u
LW9uLW92ZXJmbG93Lmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKLUJV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24t
dHJhbnNmb3JtZWQyLmh0bWwgPSBJTUFHRQogQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10cmFuc2l0aW9uLmh0bWwgPSBJTUFHRQotQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLWluLWNvbXBv
c2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rp
b25zL3JlZmxlY3Rpb24tb24tY29tcG9zaXRlZC5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BV
IDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vcmRlcmluZy5odG1sID0gSU1B
R0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1w
b3NpdGlvbmluZy5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvcmVmbGVjdGlvbi1wb3NpdGlvbmluZzIuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4
IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3NpbXBsZS1jb21wb3NpdGVkLXJlZmxlY3Rp
b25zLmh0bWwgPSBJTUFHRQogQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9u
cy90cmFuc2Zvcm0taW5zaWRlLXJlZmxlY3Rpb24uaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IEdQ
VSA6IGNvbXBvc2l0aW5nL3J0bC9ydGwtaWZyYW1lLWFic29sdXRlLW92ZXJmbG93Lmh0bWwgPSBJ
TUFHRQotQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9ydGwvcnRsLWlmcmFtZS1maXhlZC1v
dmVyZmxvdy5odG1sID0gSU1BR0UKIEJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvc2hhZG93
cy9zaGFkb3ctZHJhd2luZy5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvdGV4dC1vbi1sYXJnZS1sYXllci5odG1sID0gSU1BR0UKIEJVR1dLNjEzODggR1BVIDogY29t
cG9zaXRpbmcvdHJhbnNpdGlvbnMvc2NhbGUtdHJhbnNpdGlvbi1uby1zdGFydC5odG1sID0gSU1B
R0UKLUJVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5o
dG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvaHVnZS1sYXllci1yb3RhdGVkLmh0bWwgPSBJTUFHRQogQlVHV0s2MTM4OCBHUFUgOiBwbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9iYWNrZmFjZS12aXNpYmlsaXR5LXRyYW5zZm9ybWVk
Lmh0bWwgPSBJTUFHRQotQlVHV0s2MTM4OCBXSU4gTElOVVggR1BVIDogbWVkaWEvdmlkZW8tem9v
bS5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogbWVkaWEvdmlkZW8tem9vbS1jb250cm9s
cy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvaHVnZS1sYXllci1yb3RhdGVkLmh0bWwgPSBJTUFHRQogQlVHV0s2MTM4OCBHUFUgOiBt
ZWRpYS92aWRlby10cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKLUJVR1dLNjEzODggR1BVIDogbWVk
aWEvdmlkZW8tbGF5ZXItY3Jhc2guaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IFdJTiBHUFUgOiBj
b21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLWFsaWdubWVudC5odG1sID0gSU1B
R0UKLUJVR1dLNjEzODggV0lOIE1BQyBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5j
ZXN0b3IuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IFdJTiBHUFUgOiBtZWRpYS92aWRlby1jb250
cm9scy1yZW5kZXJpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IFdJTiBNQUMgR1BVIDogcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvbGF5b3V0LXdpZHRoLWNoYW5nZS5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy5odG1sID0gSU1B
R0UKIEJVR1dLNjEzODggV0lOIE1BQyBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy90aW55LWxheWVyLXJvdGF0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYxMzg4IE1BQyBHUFUgOiBj
b21wb3NpdGluZy9tYXNrcy9tdWx0aXBsZS1tYXNrcy5odG1sID0gSU1BR0UKLUJVR1dLNjEzODgg
TUFDIEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3BlcnBlbmRpY3VsYXItbGF5
ZXItc29ydGluZy5odG1sID0gSU1BR0UKIAogLy8gR2V0dGluZyBmb3JtIHZhbHVlIGlzIG5vdCBp
bXBsZW1lbnRlZCB5ZXQuCiBCVUdXSzEzMDYxIDogcGx1Z2lucy9mb3JtLXZhbHVlLmh0bWwgPSBU
RVhUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNzFhNGU1NzA5MDBmNDZmN2QxNDdjZDc2YmU5NGYxYTQ2ZDFjZjI2
YS4uNzEwNDM4Y2RlNjY5Y2Q3MTg5ZTY5YjhlZDAyMzdkMWUzZjdiYmIwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDExLTA3LTEyICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBVc2UgbmVhcmVzdCBmaWx0ZXIgbWV0aG9k
IHdpdGggcGl4ZWwgYWxpZ25lZCB0cmFuc2Zvcm1zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQzMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayBmb3IgaW50ZWdlciB0cmFuc2xhdGlvbiBhbmQg
dXNlIG5lYXJlc3QgdGV4dHVyZSBmaWx0ZXIgd2hlbgorICAgICAgICBwb3NzaWJsZSB0byBhdm9p
ZCBmaWx0ZXIgcHJlY2lzaW9ucyBwcm9ibGVtcyBhdCB0aGUgbGF5ZXIgZWRnZXMuCisKKyAgICAg
ICAgVGVzdDogY29tcG9zaXRpbmcvaWZyYW1lcy9uZXN0ZWQtaWZyYW1lLXNjcm9sbGluZy5odG1s
IChleGlzdGluZykKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGlsZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06
OmRyYXdUaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6aXNJbnRlZ2VyVHJhbnNsYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaDoKKwogMjAxMS0wNy0xMiAgSnVsaWVu
IENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIFJlbmRl
ck9iamVjdDo6Y29udGFpbmluZ0Jsb2NrIHZpcnR1YWwgZm9yIGJldHRlciBzcGVlZCBhbmQgY2xh
cml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAKaW5kZXggNjc2N2Q3Y2RiZTJhYTQy
YjJkYjc2NzA0Mjk5MjhlZDBkZGUxMmIzMC4uZDE0NzliNWIwMTI5MTU2MmQwNGU5M2UzNTQxMjI1
OTc2OGM1MDZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCkBAIC01MDAsNiAr
NTAwLDggQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUaWxlcyhjb25zdCBJbnRSZWN0
JiBjb250ZW50UmVjdCwgY29uc3QgVHJhbnNmb3JtYXQKICAgICB0b3BFZGdlLm1vdmUoMCwgMCwg
ekRpc3RhbmNlKTsKICAgICBib3R0b21FZGdlLm1vdmUoMCwgMCwgekRpc3RhbmNlKTsKIAorICAg
IEdDM0RpbnQgZmlsdGVyID0gKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSAmJiAhbWF0cml4
LmlzSW50ZWdlclRyYW5zbGF0aW9uKCkpID8gR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUiA6IEdy
YXBoaWNzQ29udGV4dDNEOjpORUFSRVNUOworCiAgICAgRWRnZSBwcmV2RWRnZVkgPSB0b3BFZGdl
OwogCiAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKQEAgLTUzMSw2ICs1MzMsOCBA
QCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6ZHJhd1RpbGVzKGNvbnN0IEludFJlY3QmIGNvbnRl
bnRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdAogICAgICAgICAgICAgQVNTRVJUKHRpbGUtPnRleHR1
cmUoKS0+aXNSZXNlcnZlZCgpKTsKIAogICAgICAgICAgICAgdGlsZS0+dGV4dHVyZSgpLT5iaW5k
VGV4dHVyZSgpOworICAgICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRl
cmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX01JTl9GSUxURVIsIGZpbHRlcikpOworICAgICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRl
eHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX01BR19GSUxURVIsIGZpbHRlcikpOwogCiAgICAgICAgICAgICAv
LyBEb24ndCB1c2UgdGlsZUNvbnRlbnRSZWN0IGhlcmUsIGFzIHRoYXQgY29udGFpbnMgdGhlIGZ1
bGwKICAgICAgICAgICAgIC8vIHJlY3Qgd2l0aCBib3JkZXIgdGV4ZWxzIHdoaWNoIHNob3VsZG4n
dCBiZSBkcmF3bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKaW5kZXgg
YzcyODNhNTA3MDEzOGRhNDE5MjZiZTU5Yjk2YmRjOWJkMjQ2NTY5NS4uMmViNjg3MGNkYTA2YWVj
OWZmMmE5Y2MyNmQ3YTJiMGQxMzVlMDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlv
bk1hdHJpeC5jcHAKQEAgLTExMjYsNCArMTEyNiwyMCBAQCB2b2lkIFRyYW5zZm9ybWF0aW9uTWF0
cml4OjpyZWNvbXBvc2UoY29uc3QgRGVjb21wb3NlZFR5cGUmIGRlY29tcCkKICAgICBzY2FsZTNk
KChmbG9hdCkgZGVjb21wLnNjYWxlWCwgKGZsb2F0KSBkZWNvbXAuc2NhbGVZLCAoZmxvYXQpIGRl
Y29tcC5zY2FsZVopOwogfQogCitib29sIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojppc0ludGVnZXJU
cmFuc2xhdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFpc0lkZW50aXR5T3JUcmFuc2xhdGlvbigp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBDaGVjayBmb3IgdHJhbnNsYXRlIFou
CisgICAgaWYgKG1fbWF0cml4WzNdWzJdKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyBDaGVjayBmb3Igbm9uLWludGVnZXIgdHJhbnNsYXRlIFgvWS4KKyAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50PihtX21hdHJpeFszXVswXSkgIT0gbV9tYXRyaXhbM11bMF0gfHwgc3RhdGljX2Nhc3Q8
aW50PihtX21hdHJpeFszXVsxXSkgIT0gbV9tYXRyaXhbM11bMV0pCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0
aW9uTWF0cml4LmgKaW5kZXggZmY2NjhiYmNkMWJhNDlhY2FkNmQ4OTRkNTkyNmYwOTE4N2FkZGJi
NC4uZWM4YWQxYTY4ZDVkZjBmY2EwZWNiOWMyMDIyY2E4Y2Y4OTk3MzdiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaApAQCAtMzM5LDYgKzMzOSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICYmIG1fbWF0cml4WzNdWzNdID09IDE7CiAgICAgfQogCisgICAgYm9vbCBpc0lu
dGVnZXJUcmFuc2xhdGlvbigpIGNvbnN0OworCiBwcml2YXRlOgogICAgIC8vIG11bHRpcGx5IHBh
c3NlZCAyRCBwb2ludCBieSBtYXRyaXggKGFzc3VtZSB6PTApCiAgICAgdm9pZCBtdWx0VmVjTWF0
cml4KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlJiBkc3RYLCBkb3VibGUmIGRzdFkpIGNvbnN0
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>