<?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>72208</bug_id>
          
          <creation_ts>2011-11-12 00:45:00 -0800</creation_ts>
          <short_desc>[chromium] Fix scaleDelta zoom-out visibility rect bug</short_desc>
          <delta_ts>2011-11-17 13:22:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>0</everconfirmed>
          <reporter name="Alexandre Elias">aelias</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501393</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-12 00:45:00 -0800</bug_when>
    <thetext>[chromium] Fix scaleDelta zoom-out visibility rect bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501395</commentid>
    <comment_count>1</comment_count>
      <attachid>114825</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-12 00:47:36 -0800</bug_when>
    <thetext>Created attachment 114825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501397</commentid>
    <comment_count>2</comment_count>
      <attachid>114826</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-12 01:01:59 -0800</bug_when>
    <thetext>Created attachment 114826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501813</commentid>
    <comment_count>3</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-11-14 05:13:58 -0800</bug_when>
    <thetext>setDeltaScale() just seems to support a scale change, but zoomAnimatorTransform needs to support translation as well. Perhaps I&apos;m missing something, but I don&apos;t see how that will work after this patch lands.

Also, we&apos;re currently trying to test double-tap for zoom, so it&apos;s a problem if this is being disabled in the upstream repo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502097</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 11:05:12 -0800</bug_when>
    <thetext>OK, I didn&apos;t know it required translation.  From the point of view of what I&apos;m doing, it makes the code less opaque not to have a generalized transform.

By the way, zoomAnimatorTransform should already be similarly glitchy upstream due to the scrolling layer being moved down several layers (so it cannot).  It does need a similar fix to what I did for pageScaleDelta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502191</commentid>
    <comment_count>5</comment_count>
      <attachid>115006</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 12:31:34 -0800</bug_when>
    <thetext>Created attachment 115006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502194</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 12:35:18 -0800</bug_when>
    <thetext>OK, I added a similar fix for zoomAnimatorTransform.  I kept them on different codepaths to make it easier to work separately, but zoomAnimatorTransform is now applied the same way.

(Minor: I also removed the option to have a gray background when zoomAnimatorTransform is active.  Now that the clip-rect is no longer buggy, we should never see the glClear color anyway, since it will draw tiles -- checkerboard if necessary -- all over the screen.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502250</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-14 13:34:00 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; setDeltaScale() just seems to support a scale change, but zoomAnimatorTransform needs to support translation as well.

Can you expand a bit on why?  That seems wrong, translations should be an orthogonal concept to zoom - you typically want to change the scroll offsets when zooming but that&apos;s handled by separate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502338</commentid>
    <comment_count>8</comment_count>
      <attachid>115006</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-14 14:51:43 -0800</bug_when>
    <thetext>Comment on attachment 115006
Patch

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

&gt; Source/WebCore/ChangeLog:30
&gt; +&gt;2011-11-14  Pavel Feldman  &lt;pfeldman@google.com&gt;

something went awry here, there&apos;s a leading &gt; on this line

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:125
&gt; +    TransformationMatrix zoomAnimatorTransform() const { return TransformationMatrix(); }

hmmm, so main thread layers never have a non-identify zoomAnimatorTransform? How does the test hookup work then - that used to manipulate the zoomAnimatorTransform on CCLayerTreeHost directly.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h:123
&gt; +    void setZoomAnimatorTransform(const TransformationMatrix&amp;);
&gt; +    const TransformationMatrix&amp; zoomAnimatorTransform() const { return m_zoomAnimatorTransform; }

can you update CCLayerImplTest for this property?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h:164
&gt; +    float scaleDelta() const { return m_scaleDelta; }
&gt; +    void setScaleDelta(float);

same here - please update CCLayerImplTest

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:199
&gt; +    // LT = Tr[origin] * M[zoomAnimator] * S[scaleDelta] * Tr[origin2anchor]

the old comments grew the expression in the comment as the subsequent components were added, but this one seems to have the first three components in the comments before any modifications have taken place. I think this first comment should just be &quot;LT = Tr[origin] * M[zoomAnimator]&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502345</commentid>
    <comment_count>9</comment_count>
      <attachid>115006</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 14:59:56 -0800</bug_when>
    <thetext>Comment on attachment 115006
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:30
&gt;&gt; +&gt;2011-11-14  Pavel Feldman  &lt;pfeldman@google.com&gt;
&gt; 
&gt; something went awry here, there&apos;s a leading &gt; on this line

Fixed

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:125
&gt;&gt; +    TransformationMatrix zoomAnimatorTransform() const { return TransformationMatrix(); }
&gt; 
&gt; hmmm, so main thread layers never have a non-identify zoomAnimatorTransform? How does the test hookup work then - that used to manipulate the zoomAnimatorTransform on CCLayerTreeHost directly.

It still manipulates CCLayerTreeHost directly, and then CCLayerTreeHostImpl pushes it to the CCLayerImpl.  This call is just to make the template happy.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h:123
&gt;&gt; +    const TransformationMatrix&amp; zoomAnimatorTransform() const { return m_zoomAnimatorTransform; }
&gt; 
&gt; can you update CCLayerImplTest for this property?

Done

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h:164
&gt;&gt; +    void setScaleDelta(float);
&gt; 
&gt; same here - please update CCLayerImplTest

Done

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:199
&gt;&gt; +    // LT = Tr[origin] * M[zoomAnimator] * S[scaleDelta] * Tr[origin2anchor]
&gt; 
&gt; the old comments grew the expression in the comment as the subsequent components were added, but this one seems to have the first three components in the comments before any modifications have taken place. I think this first comment should just be &quot;LT = Tr[origin] * M[zoomAnimator]&quot;

Fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502346</commentid>
    <comment_count>10</comment_count>
      <attachid>115037</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 15:00:56 -0800</bug_when>
    <thetext>Created attachment 115037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502466</commentid>
    <comment_count>11</comment_count>
      <attachid>115060</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 16:49:37 -0800</bug_when>
    <thetext>Created attachment 115060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502470</commentid>
    <comment_count>12</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-14 16:52:01 -0800</bug_when>
    <thetext>The zoom animator layout tests were causing problems, as they&apos;re covering a non-impl-thread side codepath that is never really used in practice, and the scroll layer isn&apos;t available from non-impl side.  After talking it over with James, I removed the tests -- sorry about that.  For testing impl-side changes, we&apos;ll have to focus more on unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502576</commentid>
    <comment_count>13</comment_count>
      <attachid>115060</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-14 18:38:19 -0800</bug_when>
    <thetext>Comment on attachment 115060
Patch

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502597</commentid>
    <comment_count>14</comment_count>
      <attachid>115060</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-14 20:08:36 -0800</bug_when>
    <thetext>Comment on attachment 115060
Patch

Clearing flags on attachment: 115060

Committed r100235: &lt;http://trac.webkit.org/changeset/100235&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502598</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-14 20:08:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505115</commentid>
    <comment_count>16</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-11-17 12:43:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; OK, I added a similar fix for zoomAnimatorTransform.  I kept them on different codepaths to make it easier to work separately, but zoomAnimatorTransform is now applied the same way.
&gt; 
&gt; (Minor: I also removed the option to have a gray background when zoomAnimatorTransform is active.  Now that the clip-rect is no longer buggy, we should never see the glClear color anyway, since it will draw tiles -- checkerboard if necessary -- all over the screen.)

Correct me if I&apos;m wrong, but doesn&apos;t this only work if the set of tiles currently being zoomed is enough to fill the screen? For example, if we zoom out (shrink the page), there may be regions that don&apos;t have tiles, and those won&apos;t get checkerboards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505116</commentid>
    <comment_count>17</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-11-17 12:45:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; setDeltaScale() just seems to support a scale change, but zoomAnimatorTransform needs to support translation as well.
&gt; 
&gt; Can you expand a bit on why?  That seems wrong, translations should be an orthogonal concept to zoom - you typically want to change the scroll offsets when zooming but that&apos;s handled by separate code.

The zoom animator only redraws existing textures, so pageScale doesn&apos;t change during the animation. If I remember correctly, given the mis-match between page scale and the zoom animation, scrolling does not work correctly *during* the animation.

When the final page scale is set, we use an animation-less scroll to align the content around the zoom point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505117</commentid>
    <comment_count>18</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-17 12:47:18 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #6)
&gt; &gt; OK, I added a similar fix for zoomAnimatorTransform.  I kept them on different codepaths to make it easier to work separately, but zoomAnimatorTransform is now applied the same way.
&gt; &gt; 
&gt; &gt; (Minor: I also removed the option to have a gray background when zoomAnimatorTransform is active.  Now that the clip-rect is no longer buggy, we should never see the glClear color anyway, since it will draw tiles -- checkerboard if necessary -- all over the screen.)
&gt; 
&gt; Correct me if I&apos;m wrong, but doesn&apos;t this only work if the set of tiles currently being zoomed is enough to fill the screen? For example, if we zoom out (shrink the page), there may be regions that don&apos;t have tiles, and those won&apos;t get checkerboards?

The entire viewport has tiles, so unless you allow the user to zoom out such that more than the viewport is visible (which you won&apos;t) this isn&apos;t an issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505118</commentid>
    <comment_count>19</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-17 12:47:46 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; setDeltaScale() just seems to support a scale change, but zoomAnimatorTransform needs to support translation as well.
&gt; &gt; 
&gt; &gt; Can you expand a bit on why?  That seems wrong, translations should be an orthogonal concept to zoom - you typically want to change the scroll offsets when zooming but that&apos;s handled by separate code.
&gt; 
&gt; The zoom animator only redraws existing textures, so pageScale doesn&apos;t change during the animation. If I remember correctly, given the mis-match between page scale and the zoom animation, scrolling does not work correctly *during* the animation.

Right, that&apos;s why you need to adjust the scroll offsets when adjusting the scale during the animation.&apos;

&gt; 
&gt; When the final page scale is set, we use an animation-less scroll to align the content around the zoom point.

Correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505119</commentid>
    <comment_count>20</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-17 12:48:53 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Correct me if I&apos;m wrong, but doesn&apos;t this only work if the set of tiles currently being zoomed is enough to fill the screen? For example, if we zoom out (shrink the page), there may be regions that don&apos;t have tiles, and those won&apos;t get checkerboards?

We aren&apos;t implementing checkerboards by first applying them to tiles, then painting them -- that would be wasteful of RAM as well as having the problem you mention.  Checkerboarding is done by fallback &quot;virtual&quot; tiles that are drawn by a shader whenever no tile is available.  So as long as request to draw a tile is issued for every visible area on the screen, we will fill the screen with either valid content or checkerboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505143</commentid>
    <comment_count>21</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-11-17 13:22:14 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #16)
&gt; &gt; Correct me if I&apos;m wrong, but doesn&apos;t this only work if the set of tiles currently being zoomed is enough to fill the screen? For example, if we zoom out (shrink the page), there may be regions that don&apos;t have tiles, and those won&apos;t get checkerboards?
&gt; 
&gt; We aren&apos;t implementing checkerboards by first applying them to tiles, then painting them -- that would be wasteful of RAM as well as having the problem you mention.  Checkerboarding is done by fallback &quot;virtual&quot; tiles that are drawn by a shader whenever no tile is available.  So as long as request to draw a tile is issued for every visible area on the screen, we will fill the screen with either valid content or checkerboard.

Ahh, OK. I knew it was virtual tiles, but I wasn&apos;t sure they would propagate everywhere during the zoom animation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114825</attachid>
            <date>2011-11-12 00:47:36 -0800</date>
            <delta_ts>2011-11-12 01:01:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72208-20111112004734.patch</filename>
            <type>text/plain</type>
            <size>10127</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk5NTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNzM4YjJkY2YyYTMyM2Ex
OGJjY2E2NGU5MzljYTZhOWYwZDRlNDkwLi5iMzY1MTk0ZDE5MTBmNjBjOTRlMjkxYWEzZGE4MzQ5
ZWFmZDg1NjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTEtMTIgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gRml4
IHNjYWxlRGVsdGEgem9vbS1vdXQgdmlzaWJpbGl0eSByZWN0IGJ1ZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyMDgKKworICAgICAgICBTaW5jZSB0
aGUgc2Nyb2xsIGlzIG5vIGxvbmdlciBhcHBsaWVkIGF0IHRoZSB0b3AgbGF5ZXIgb2YgdGhlIGxh
eWVyCisgICAgICAgIHRyZWUsIHRoZSBzY2FsZURlbHRhIHRyYW5zZm9ybWF0aW9uIG5lZWRzIHRv
IGJlIG1vdmVkIGRvd24gdG8gdGhlCisgICAgICAgIHNhbWUgbGV2ZWwuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChubyB0ZXN0
cyB5ZXQgZm9yIHRoaXMgZmVhdHVyZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxNTI5KQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2NhbGVEZWx0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJh
d0xheWVyc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6
Q0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldFNjYWxlRGVs
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2NhbGVEZWx0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0
eUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdElt
cGw6OnNldFNjYWxlRGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKToKKwogMjAxMS0xMS0xMSAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY2hy
b21pdW1dIGxpc3QgZGVkaWNhdGVkIHdvcmtlcnMgaW4gY2FzZSBpbnNwZWN0b3Igb3BlbmVkIHBv
c3Qtd29ya2VyIGNyZWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDMzNDZkZDg1OGJlY2Jm
MGNmNWU2ZDVkNzVlOGQ1OTVjNTY2MTFlMTIuLmFhMGRkODYzMWI0YjczNjI1ZDQ5NjkxODE0Nzg1
YTMxMmMyNmVhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTEzNyw2ICsxMzcsOCBAQCBwdWJs
aWM6CiAgICAgSW50U2l6ZSBzY3JvbGxEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsg
fQogICAgIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSwgZmxvYXQgcGFnZVNjYWxlKTsKIAorICAgIGZsb2F0IHNjYWxlRGVsdGEoKSBjb25zdCB7IHJl
dHVybiAxOyB9CisKICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29uc3QgeyByZXR1cm4gbV9kb3Vi
bGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9vbCBkb3VibGVTaWRlZCkgeyBt
X2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29tbWl0KCk7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggNjU2YTI4NmU4ZjdjMzExNWVlNmI5
YmYwMDM2YmFhN2RhOTcyN2RjYy4uZjA1YTBiNjE3YzRkZjlkMWY4MGVmOWVmMGJiYjkyNmY1ZTVk
M2JiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0zNjEsMTQg
KzM2MSwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFs
KCkKICAgICBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlID0gcm9vdERyYXdMYXllci0+cmVuZGVyU3Vy
ZmFjZSgpOwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7CiAK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYWduaWZ5TWF0cml4KG1fcGFnZU1hZ25pZnlNYXRy
aXgpOwotICAgIC8vIFRPRE8oYWVsaWFzKTogVGhlc2UgdHdvIHRyYW5zZm9ybWF0aW9ucyBhcmUg
cmVkdW5kYW50OyB1bmlmeSB6b29tQW5pbWF0b3IKLSAgICAvLyBhbmQgaW1wbC10aHJlYWQgc2lk
ZSBtYXRyaXguCi0gICAgbWFnbmlmeU1hdHJpeC5tdWx0aXBseShtX3pvb21BbmltYXRvclRyYW5z
Zm9ybSk7Ci0KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKICAgICB7
CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJ
bnRlcm5hbDo6Y2FsY0RyYXdFdGMiLCB0aGlzLCAwKTsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0
Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXll
ciwgcm9vdERyYXdMYXllciwgbWFnbmlmeU1hdHJpeCwgbWFnbmlmeU1hdHJpeCwgcmVuZGVyU3Vy
ZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xh
eWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgICAgIENDTGF5
ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJv
b3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJp
eCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJM
aXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CiAg
ICAgfQogCiAgICAgLy8gVGhlIEdMIHZpZXdwb3J0IGNvdmVycyB0aGUgZW50aXJlIHZpc2libGUg
YXJlYSwgaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uaAppbmRleCAwMjhlNjY0ZDNjYjllNWY1YjA2ZTZiZWY5ZmM3N2IwZmVjNTEyZGFjLi5m
OWE4MzFjODFmMmNjNmNjODRiZDc1YmI4MmY0ODEyNDIzNDlhOTg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uaApAQCAtOTgsOCArOTgsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHZpZXdwb3J0Q2hhbmdlZCgpOwogCi0gICAgdm9pZCBzZXRQYWdlTWFnbmlmeVRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFnZU1hZ25pZnlNYXRyaXgpIHsgbV9wYWdlTWFn
bmlmeU1hdHJpeCA9IHBhZ2VNYWduaWZ5TWF0cml4OyB9Ci0KICAgICB2b2lkIGRyYXdMYXllcnMo
KTsKIAogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8gZmluaXNoCkBAIC0xMDgsOCArMTA2
LDYgQEAgcHVibGljOgogICAgIC8vIHB1dHMgYmFja2J1ZmZlciBvbnNjcmVlbgogICAgIHZvaWQg
c3dhcEJ1ZmZlcnMoKTsKIAotICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSB7IG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtID0gdDsg
fQotCiAgICAgc3RhdGljIHZvaWQgZGVidWdHTENhbGwoR3JhcGhpY3NDb250ZXh0M0QqLCBjb25z
dCBjaGFyKiBjb21tYW5kLCBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSk7CiAKICAgICBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvamVjdGlvbk1hdHJpeDsgfQpAQCAtMTk3LDExICsxOTMsOSBAQCBwcml2YXRlOgogCiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wcm9qZWN0aW9uTWF0cml4OwogICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IG1fd2luZG93TWF0cml4OwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1f
cGFnZU1hZ25pZnlNYXRyaXg7CiAKICAgICBDQ1JlbmRlclN1cmZhY2UqIG1fY3VycmVudFJlbmRl
clN1cmZhY2U7CiAgICAgdW5zaWduZWQgbV9vZmZzY3JlZW5GcmFtZWJ1ZmZlcklkOwotICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtOwogCiAgICAgLy8gU3Rv
cmUgdmFsdWVzIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGluc3RhbmNlcyBvZiBlYWNoIGxheWVy
IHR5cGUKICAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZSBvZiB0aGUgY29tcG9z
aXRvci4gU2luY2UgdGhlcmUgY2FuIGJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggMWI2
ZTE1MjJkMzYxMTQ1ZmU4YTE0NzE0M2FmNmYxOWQyZWZhOTcxMC4uMDhkYmE1ZDNhMzdhODc1ZTg1
NjdhYjRjZGUzN2YzMzNkMWYwYjA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtNTIs
NiArNTIsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwoaW50IGlkKQogICAgICwgbV91c2Vz
TGF5ZXJDbGlwcGluZyhmYWxzZSkKICAgICAsIG1faXNOb25Db21wb3NpdGVkQ29udGVudChmYWxz
ZSkKICAgICAsIG1fZHJhd3NDb250ZW50KGZhbHNlKQorICAgICwgbV9zY2FsZURlbHRhKDEpCiAg
ICAgLCBtX3RhcmdldFJlbmRlclN1cmZhY2UoMCkKICAgICAsIG1fZHJhd0RlcHRoKDApCiAgICAg
LCBtX2RyYXdPcGFjaXR5KDApCkBAIC0zOTUsNiArMzk2LDE0IEBAIHZvaWQgQ0NMYXllckltcGw6
OnNldFNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgIH0KIH0KIAor
dm9pZCBDQ0xheWVySW1wbDo6c2V0U2NhbGVEZWx0YShmbG9hdCBzY2FsZURlbHRhKQoreworICAg
IGlmIChtX3NjYWxlRGVsdGEgIT0gc2NhbGVEZWx0YSkgeworICAgICAgICBtX3NjYWxlRGVsdGEg
PSBzY2FsZURlbHRhOworICAgICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWRGb3JTdWJ0cmVl
KCk7CisgICAgfQorfQorCiB2b2lkIENDTGF5ZXJJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgbV9zY3Jv
bGxEZWx0YSAtPSBzY3JvbGxEZWx0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4IDVjMjVmZjE2
YmRhNGU3MTY5OTU1Yzk4OGI0MDFjY2NhNmQ1OWQwNjcuLmVkMzEzZDc3ZjcwOTU3YTg0ZGY1YjQz
MDQxNWI4NDNlZDZmOWY1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtMTU3LDYgKzE1Nyw5
IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsRGVsdGE7IH0KICAgICB2b2lkIHNldFNjcm9sbERlbHRhKGNvbnN0IEludFNp
emUmKTsKIAorICAgIGZsb2F0IHNjYWxlRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlRGVs
dGE7IH0KKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgdm9pZCBzY3JvbGxC
eShjb25zdCBJbnRTaXplJiBzY3JvbGwpOwogCiAgICAgYm9vbCBzY3JvbGxhYmxlKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CkBAIC0yNDQsNiArMjQ3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIEludFNpemUgbV9zY3JvbGxEZWx0YTsKICAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9zaXRp
b247CisgICAgZmxvYXQgbV9zY2FsZURlbHRhOwogCiAgICAgLy8gUHJvcGVydGllcyBvd25lZCBl
eGNsdXNpdmVseSBieSB0aGlzIENDTGF5ZXJJbXBsLgogICAgIC8vIERlYnVnZ2luZy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IGI5YTJhZDM3NzZhZWU4
MDEyZDliYzQ4YTAyOGU5NzUxNWI1M2ExNzcuLmNmZDJiZjYyNjYwMGM0M2ExNmUxYjM5ZWRlOTBi
Y2Q5ZDNiOGUxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNw
cApAQCAtMTk2LDExICsxOTYsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICBmbG9h
dCBjZW50ZXJPZmZzZXRZID0gKDAuNSAtIGFuY2hvclBvaW50LnkoKSkgKiBib3VuZHMuaGVpZ2h0
KCk7CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllckxvY2FsVHJhbnNmb3JtOwotICAg
IC8vIExUID0gVHJbb3JpZ2luXSAqIFRyW29yaWdpbjJhbmNob3JdCisgICAgLy8gTFQgPSBUcltv
cmlnaW5dICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3JdCisgICAgbGF5ZXJMb2Nh
bFRyYW5zZm9ybS5zY2FsZShsYXllci0+c2NhbGVEZWx0YSgpKTsKKyAgICAvLyBMVCA9IFRyW29y
aWdpbl0gKiBTW3NjYWxlRGVsdGFdICogVHJbb3JpZ2luMmFuY2hvcl0KICAgICBsYXllckxvY2Fs
VHJhbnNmb3JtLnRyYW5zbGF0ZTNkKHBvc2l0aW9uLngoKSwgcG9zaXRpb24ueSgpLCBsYXllci0+
YW5jaG9yUG9pbnRaKCkpOwotICAgIC8vIExUID0gVHJbb3JpZ2luXSAqIFRyW29yaWdpbjJhbmNo
b3JdICogTVtsYXllcl0KKyAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBTW3NjYWxlRGVsdGFdICog
VHJbb3JpZ2luMmFuY2hvcl0gKiBNW2xheWVyXQogICAgIGxheWVyTG9jYWxUcmFuc2Zvcm0ubXVs
dGlwbHkobGF5ZXItPnRyYW5zZm9ybSgpKTsKLSAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBUcltv
cmlnaW4yYW5jaG9yXSAqIE1bbGF5ZXJdICogVHJbYW5jaG9yMmNlbnRlcl0KKyAgICAvLyBMVCA9
IFRyW29yaWdpbl0gKiBTW3NjYWxlRGVsdGFdICogVHJbb3JpZ2luMmFuY2hvcl0gKiBNW2xheWVy
XSAqIFRyW2FuY2hvcjJjZW50ZXJdCiAgICAgbGF5ZXJMb2NhbFRyYW5zZm9ybS50cmFuc2xhdGUz
ZChjZW50ZXJPZmZzZXRYLCBjZW50ZXJPZmZzZXRZLCAtbGF5ZXItPmFuY2hvclBvaW50WigpKTsK
IAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbWJpbmVkVHJhbnNmb3JtID0gcGFyZW50TWF0
cml4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCA2ZDMyZWNj
ZDczNzhjZmRjMmNmM2M2ZDVjMDdmNzZhMjFlY2Q2ZjJiLi5lZDVhYWUwMWVhY2Y3YzYyMmJiOWY0
ZTc1NDNmNWNkZWUxZTlkNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmNwcApAQCAtMjMyLDkgKzIzMiw3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0U2Nh
bGVEZWx0YShmbG9hdCBkZWx0YSkKIAogICAgIHVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCk7CiAK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkZWx0YU1hdHJpeDsKLSAgICBkZWx0YU1hdHJpeC5z
Y2FsZShtX3NjYWxlRGVsdGEpOwotICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0UGFnZU1hZ25pZnlU
cmFuc2Zvcm0oZGVsdGFNYXRyaXgpOworICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY2FsZURl
bHRhKG1fc2NhbGVEZWx0YSk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0UGFn
ZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4UGFnZVNjYWxl
KQpAQCAtMjY4LDcgKzI2Niw5IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6dXBkYXRlTWF4
U2Nyb2xsUG9zaXRpb24oKQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFpvb21Bbmlt
YXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgem9vbSkKIHsKLSAgICBt
X2xheWVyUmVuZGVyZXItPnNldFpvb21BbmltYXRvclRyYW5zZm9ybSh6b29tKTsKKyAgICAvLyAg
VE9ETyhhZWxpYXMpOiBab29tIGFuaW1hdG9yIHRyYW5zZm9ybSBpcyBicm9rZW4gYnkgc2Nyb2xs
IGJlaW5nIG5vCisgICAgLy8gIGxvbmdlciBhcHBsaWVkIG9uIHRvcCBsYXllci4gTmVlZCB0byBt
ZXJnZSB3aXRoIHNjYWxlRGVsdGEuCisvLyAgbV9sYXllclJlbmRlcmVyLT5zZXRab29tQW5pbWF0
b3JUcmFuc2Zvcm0oem9vbSk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xs
Um9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114826</attachid>
            <date>2011-11-12 01:01:59 -0800</date>
            <delta_ts>2011-11-14 12:31:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72208-20111112010157.patch</filename>
            <type>text/plain</type>
            <size>10098</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJjMTMzYWNhYWMxNmRl
YjVmMjA0YjFhMGM1N2NjZGE3ZTVhZmEzYi4uMTA4ZjNlZTQ4OWIzMWE1ZjdkMzQwOWY0NjI2YTA1
ZTk5YjhjNGNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTExLTEyICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZp
eCBzY2FsZURlbHRhIHpvb20tb3V0IHZpc2liaWxpdHkgcmVjdCBidWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjA4CisKKyAgICAgICAgU2luY2Ug
dGhlIHNjcm9sbCBpcyBubyBsb25nZXIgYXBwbGllZCBhdCB0aGUgdG9wIGxheWVyIG9mIHRoZSBs
YXllcgorICAgICAgICB0cmVlLCB0aGUgc2NhbGVEZWx0YSB0cmFuc2Zvcm1hdGlvbiBuZWVkcyB0
byBiZSBtb3ZlZCBkb3duIHRvIHRoZQorICAgICAgICBzYW1lIGxldmVsLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8gdGVz
dHMgeWV0IGZvciB0aGlzIGZlYXR1cmU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MTUyOSkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNjYWxlRGVs
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRy
YXdMYXllcnNJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6
OkNDTGF5ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRTY2FsZURl
bHRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNjYWxlRGVsdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHlJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpzZXRTY2FsZURlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdElt
cGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybSk6CisKIDIwMTEtMTEtMTEgIEplZmYgVGltYW51
cyAgPHR3aXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUGF0Y2ggdGhhdCBp
bXBsZW1lbnRpbmcgdGhlIGNoYW5nZXMgcmVxdWlyZWQgdG8gYWxsb3cgV2ViR0wKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hy
b21pdW0uaAppbmRleCAzMzQ2ZGQ4NThiZWNiZjBjZjVlNmQ1ZDc1ZThkNTk1YzU2NjExZTEyLi5h
YTBkZDg2MzFiNGI3MzYyNWQ0OTY5MTgxNDc4NWEzMTJjMjZlYTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCkBAIC0xMzcsNiArMTM3LDggQEAgcHVibGljOgogICAgIEludFNpemUgc2Nyb2xsRGVsdGEo
KSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KICAgICB2b2lkIGFwcGx5U2Nyb2xsQW5kU2Nh
bGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSk7CiAKKyAgICBm
bG9hdCBzY2FsZURlbHRhKCkgY29uc3QgeyByZXR1cm4gMTsgfQorCiAgICAgYm9vbCBkb3VibGVT
aWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG91YmxlU2lkZWQ7IH0KICAgICB2b2lkIHNldERvdWJs
ZVNpZGVkKGJvb2wgZG91YmxlU2lkZWQpIHsgbV9kb3VibGVTaWRlZCA9IGRvdWJsZVNpZGVkOyBz
ZXROZWVkc0NvbW1pdCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3Bw
CmluZGV4IDY1NmEyODZlOGY3YzMxMTVlZTZiOWJmMDAzNmJhYTdkYTk3MjdkY2MuLmYwNWEwYjYx
N2M0ZGY5ZDFmODBlZjllZjBiYmI5MjZmNWU1ZDNiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmNwcApAQCAtMzYxLDE0ICszNjEsMTAgQEAgdm9pZCBMYXllclJlbmRlcmVy
Q2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbCgpCiAgICAgbV9kZWZhdWx0UmVuZGVyU3VyZmFj
ZSA9IHJvb3REcmF3TGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICBtX2RlZmF1bHRSZW5kZXJT
dXJmYWNlLT5jbGVhckxheWVyTGlzdCgpOwogCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWFn
bmlmeU1hdHJpeChtX3BhZ2VNYWduaWZ5TWF0cml4KTsKLSAgICAvLyBUT0RPKGFlbGlhcyk6IFRo
ZXNlIHR3byB0cmFuc2Zvcm1hdGlvbnMgYXJlIHJlZHVuZGFudDsgdW5pZnkgem9vbUFuaW1hdG9y
Ci0gICAgLy8gYW5kIGltcGwtdGhyZWFkIHNpZGUgbWF0cml4LgotICAgIG1hZ25pZnlNYXRyaXgu
bXVsdGlwbHkobV96b29tQW5pbWF0b3JUcmFuc2Zvcm0pOwotCisgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggaWRlbnRpdHlNYXRyaXg7CiAgICAgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWw6OmNhbGNEcmF3RXRjIiwgdGhpcywg
MCk7Ci0gICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIG1hZ25pZnlNYXRy
aXgsIG1hZ25pZnlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1fZGVmYXVsdFJlbmRl
clN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBhYmlsaXRpZXMubWF4
VGV4dHVyZVNpemUpOworICAgICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZURy
YXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShyb290RHJhd0xheWVyLCByb290RHJhd0xheWVyLCBp
ZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1f
ZGVmYXVsdFJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBh
YmlsaXRpZXMubWF4VGV4dHVyZVNpemUpOwogICAgIH0KIAogICAgIC8vIFRoZSBHTCB2aWV3cG9y
dCBjb3ZlcnMgdGhlIGVudGlyZSB2aXNpYmxlIGFyZWEsIGluY2x1ZGluZyB0aGUgc2Nyb2xsYmFy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggMDI4ZTY2NGQzY2I5ZTVm
NWIwNmU2YmVmOWZjNzdiMGZlYzUxMmRhYy4uZjlhODMxYzgxZjJjYzZjYzg0YmQ3NWJiODJmNDgx
MjQyMzQ5YTk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTk4LDgg
Kzk4LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCB2aWV3cG9ydENoYW5nZWQoKTsKIAotICAgIHZv
aWQgc2V0UGFnZU1hZ25pZnlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBh
Z2VNYWduaWZ5TWF0cml4KSB7IG1fcGFnZU1hZ25pZnlNYXRyaXggPSBwYWdlTWFnbmlmeU1hdHJp
eDsgfQotCiAgICAgdm9pZCBkcmF3TGF5ZXJzKCk7CiAKICAgICAvLyB3YWl0cyBmb3IgcmVuZGVy
aW5nIHRvIGZpbmlzaApAQCAtMTA4LDggKzEwNiw2IEBAIHB1YmxpYzoKICAgICAvLyBwdXRzIGJh
Y2tidWZmZXIgb25zY3JlZW4KICAgICB2b2lkIHN3YXBCdWZmZXJzKCk7CiAKLSAgICB2b2lkIHNl
dFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgeyBt
X3pvb21BbmltYXRvclRyYW5zZm9ybSA9IHQ7IH0KLQogICAgIHN0YXRpYyB2b2lkIGRlYnVnR0xD
YWxsKEdyYXBoaWNzQ29udGV4dDNEKiwgY29uc3QgY2hhciogY29tbWFuZCwgY29uc3QgY2hhciog
ZmlsZSwgaW50IGxpbmUpOwogCiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHByb2pl
Y3Rpb25NYXRyaXgoKSBjb25zdCB7IHJldHVybiBtX3Byb2plY3Rpb25NYXRyaXg7IH0KQEAgLTE5
NywxMSArMTkzLDkgQEAgcHJpdmF0ZToKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcHJv
amVjdGlvbk1hdHJpeDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3dpbmRvd01hdHJpeDsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3BhZ2VNYWduaWZ5TWF0cml4OwogCiAgICAgQ0NS
ZW5kZXJTdXJmYWNlKiBtX2N1cnJlbnRSZW5kZXJTdXJmYWNlOwogICAgIHVuc2lnbmVkIG1fb2Zm
c2NyZWVuRnJhbWVidWZmZXJJZDsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3pvb21Bbmlt
YXRvclRyYW5zZm9ybTsKIAogICAgIC8vIFN0b3JlIHZhbHVlcyB0aGF0IGFyZSBzaGFyZWQgYmV0
d2VlbiBpbnN0YW5jZXMgb2YgZWFjaCBsYXllciB0eXBlCiAgICAgLy8gYXNzb2NpYXRlZCB3aXRo
IHRoaXMgaW5zdGFuY2Ugb2YgdGhlIGNvbXBvc2l0b3IuIFNpbmNlIHRoZXJlIGNhbiBiZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuY3BwCmluZGV4IDFiNmUxNTIyZDM2MTE0NWZlOGExNDcxNDNhZjZmMTlk
MmVmYTk3MTAuLjA4ZGJhNWQzYTM3YTg3NWU4NTY3YWI0Y2RlMzdmMzMzZDFmMGIwOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgQ0NMYXllckltcGw6OkNDTGF5
ZXJJbXBsKGludCBpZCkKICAgICAsIG1fdXNlc0xheWVyQ2xpcHBpbmcoZmFsc2UpCiAgICAgLCBt
X2lzTm9uQ29tcG9zaXRlZENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX2RyYXdzQ29udGVudChmYWxz
ZSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDAp
CiAgICAgLCBtX2RyYXdEZXB0aCgwKQogICAgICwgbV9kcmF3T3BhY2l0eSgwKQpAQCAtMzk1LDYg
KzM5NiwxNCBAQCB2b2lkIENDTGF5ZXJJbXBsOjpzZXRTY3JvbGxEZWx0YShjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSkKICAgICB9CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6OnNldFNjYWxlRGVs
dGEoZmxvYXQgc2NhbGVEZWx0YSkKK3sKKyAgICBpZiAobV9zY2FsZURlbHRhICE9IHNjYWxlRGVs
dGEpIHsKKyAgICAgICAgbV9zY2FsZURlbHRhID0gc2NhbGVEZWx0YTsKKyAgICAgICAgbm90ZUxh
eWVyUHJvcGVydHlDaGFuZ2VkRm9yU3VidHJlZSgpOworICAgIH0KK30KKwogdm9pZCBDQ0xheWVy
SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgcGFnZVNjYWxlKQogewogICAgIG1fc2Nyb2xsRGVsdGEgLT0gc2Nyb2xsRGVsdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaAppbmRleCA1YzI1ZmYxNmJkYTRlNzE2OTk1NWM5ODhiNDAxY2NjYTZkNTlk
MDY3Li5lZDMxM2Q3N2Y3MDk1N2E4NGRmNWI0MzA0MTViODQzZWQ2ZjlmNTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6
ZSYgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbERlbHRhOyB9CiAgICAgdm9p
ZCBzZXRTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJik7CiAKKyAgICBmbG9hdCBzY2FsZURlbHRh
KCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZURlbHRhOyB9CisgICAgdm9pZCBzZXRTY2FsZURlbHRh
KGZsb2F0KTsKKwogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgc2Nyb2xsKTsKIAog
ICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZTsgfQpAQCAt
MjQ0LDYgKzI0Nyw3IEBAIHByaXZhdGU6CiAKICAgICBJbnRTaXplIG1fc2Nyb2xsRGVsdGE7CiAg
ICAgSW50U2l6ZSBtX21heFNjcm9sbFBvc2l0aW9uOworICAgIGZsb2F0IG1fc2NhbGVEZWx0YTsK
IAogICAgIC8vIFByb3BlcnRpZXMgb3duZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBDQ0xheWVySW1w
bC4KICAgICAvLyBEZWJ1Z2dpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmNwcAppbmRleCBiOWEyYWQzNzc2YWVlODAxMmQ5YmM0OGEwMjhlOTc1MTViNTNhMTc3Li5j
ZmQyYmY2MjY2MDBjNDNhMTZlMWIzOWVkZTkwYmNkOWQzYjhlMTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RD
b21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTE5NiwxMSArMTk2LDEzIEBAIHN0YXRp
YyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVy
VHlwZSogbGF5ZXIsIExheWVyCiAgICAgZmxvYXQgY2VudGVyT2Zmc2V0WSA9ICgwLjUgLSBhbmNo
b3JQb2ludC55KCkpICogYm91bmRzLmhlaWdodCgpOwogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRy
aXggbGF5ZXJMb2NhbFRyYW5zZm9ybTsKLSAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBUcltvcmln
aW4yYW5jaG9yXQorICAgIC8vIExUID0gVHJbb3JpZ2luXSAqIFNbc2NhbGVEZWx0YV0gKiBUcltv
cmlnaW4yYW5jaG9yXQorICAgIGxheWVyTG9jYWxUcmFuc2Zvcm0uc2NhbGUobGF5ZXItPnNjYWxl
RGVsdGEoKSk7CisgICAgLy8gTFQgPSBUcltvcmlnaW5dICogU1tzY2FsZURlbHRhXSAqIFRyW29y
aWdpbjJhbmNob3JdCiAgICAgbGF5ZXJMb2NhbFRyYW5zZm9ybS50cmFuc2xhdGUzZChwb3NpdGlv
bi54KCksIHBvc2l0aW9uLnkoKSwgbGF5ZXItPmFuY2hvclBvaW50WigpKTsKLSAgICAvLyBMVCA9
IFRyW29yaWdpbl0gKiBUcltvcmlnaW4yYW5jaG9yXSAqIE1bbGF5ZXJdCisgICAgLy8gTFQgPSBU
cltvcmlnaW5dICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3JdICogTVtsYXllcl0K
ICAgICBsYXllckxvY2FsVHJhbnNmb3JtLm11bHRpcGx5KGxheWVyLT50cmFuc2Zvcm0oKSk7Ci0g
ICAgLy8gTFQgPSBUcltvcmlnaW5dICogVHJbb3JpZ2luMmFuY2hvcl0gKiBNW2xheWVyXSAqIFRy
W2FuY2hvcjJjZW50ZXJdCisgICAgLy8gTFQgPSBUcltvcmlnaW5dICogU1tzY2FsZURlbHRhXSAq
IFRyW29yaWdpbjJhbmNob3JdICogTVtsYXllcl0gKiBUclthbmNob3IyY2VudGVyXQogICAgIGxh
eWVyTG9jYWxUcmFuc2Zvcm0udHJhbnNsYXRlM2QoY2VudGVyT2Zmc2V0WCwgY2VudGVyT2Zmc2V0
WSwgLWxheWVyLT5hbmNob3JQb2ludFooKSk7CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBj
b21iaW5lZFRyYW5zZm9ybSA9IHBhcmVudE1hdHJpeDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5jcHAKaW5kZXggNmQzMmVjY2Q3Mzc4Y2ZkYzJjZjNjNmQ1YzA3Zjc2YTIxZWNk
NmYyYi4uZWQ1YWFlMDFlYWNmN2M2MjJiYjlmNGU3NTQzZjVjZGVlMWU5ZDQ3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAgLTIzMiw5ICsyMzIsNyBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFNjYWxlRGVsdGEoZmxvYXQgZGVsdGEpCiAKICAgICB1
cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwogCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZGVs
dGFNYXRyaXg7Ci0gICAgZGVsdGFNYXRyaXguc2NhbGUobV9zY2FsZURlbHRhKTsKLSAgICBtX2xh
eWVyUmVuZGVyZXItPnNldFBhZ2VNYWduaWZ5VHJhbnNmb3JtKGRlbHRhTWF0cml4KTsKKyAgICBt
X3Njcm9sbExheWVySW1wbC0+c2V0U2NhbGVEZWx0YShtX3NjYWxlRGVsdGEpOwogfQogCiB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5Q
YWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKQEAgLTI2OCw3ICsyNjYsOSBAQCB2b2lkIEND
TGF5ZXJUcmVlSG9zdEltcGw6OnVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCkKIAogdm9pZCBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjpzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHpvb20pCiB7Ci0gICAgbV9sYXllclJlbmRlcmVyLT5zZXRab29tQW5pbWF0
b3JUcmFuc2Zvcm0oem9vbSk7CisgICAgLy8gIFRPRE8oYWVsaWFzKTogWm9vbSBhbmltYXRvciB0
cmFuc2Zvcm0gaXMgYnJva2VuIGJ5IHNjcm9sbCBiZWluZyBubworICAgIC8vICBsb25nZXIgYXBw
bGllZCBvbiB0b3AgbGF5ZXIuIE5lZWQgdG8gbWVyZ2Ugd2l0aCBzY2FsZURlbHRhLgorLy8gIG1f
bGF5ZXJSZW5kZXJlci0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKHpvb20pOwogfQogCiB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnNjcm9sbFJvb3RMYXllcihjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115006</attachid>
            <date>2011-11-14 12:31:34 -0800</date>
            <delta_ts>2011-11-14 15:00:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72208-20111114123133.patch</filename>
            <type>text/plain</type>
            <size>12704</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzYzQ2MzQ1NjlmZmIx
MWEyZjdlZDA1NmViZTNiYmI1YWVlODhiMC4uMTMyY2MyMGM3MjU5NzZiM2FlMzZhMjgwZDhhZmYz
MjZkNTMxZTNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw0ICsxLDMzIEBACi0yMDExLTExLTE0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKzIwMTEtMTEtMTIgIEFsZXhhbmRyZSBF
bGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gRml4IHNjYWxl
RGVsdGEgem9vbS1vdXQgdmlzaWJpbGl0eSByZWN0IGJ1ZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyMDgKKworICAgICAgICBTaW5jZSB0aGUgc2Ny
b2xsIGlzIG5vIGxvbmdlciBhcHBsaWVkIGF0IHRoZSB0b3AgbGF5ZXIgb2YgdGhlIGxheWVyCisg
ICAgICAgIHRyZWUsIHRoZSBzY2FsZURlbHRhIHRyYW5zZm9ybWF0aW9uIG5lZWRzIHRvIGJlIG1v
dmVkIGRvd24gdG8gdGhlCisgICAgICAgIHNhbWUgbGV2ZWwuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChubyB0ZXN0cyB5ZXQg
Zm9yIHRoaXMgZmVhdHVyZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcxNTI5KQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2NhbGVEZWx0YSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVy
c0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6Q0NMYXll
ckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldFNjYWxlRGVsdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2NhbGVEZWx0YSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVy
bmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNl
dFNjYWxlRGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2V0
Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKToKKworPjIwMTEtMTEtMTQgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUncyBw
cm90b2NvbCBwYXlsb2FkIGRvZXMgbm90IGhhdmUgdXJsIGFuZCBsaW5lIHByb3BlcnRpZXMuCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI1NgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5oCmluZGV4IDc0N2RjOTg2OWNmMTBiNjJmMzBlOWJmMDlhZjIyNzk4NjY0ZDM0
MjQuLmFhYjlkMzg4NTg2MDdjODQ1OWYxY2RiNzM0OWIwOWRkNGIyMzI1YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdWJsYXll
clRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKSB7IG1fc3Vi
bGF5ZXJUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07IHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc3VibGF5ZXJUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVy
biBtX3N1YmxheWVyVHJhbnNmb3JtOyB9CiAKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB6b29t
QW5pbWF0b3JUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
OyB9CisKICAgICB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyBzZXROZWVkc0NvbW1pdCgpOyB9
CiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhbnNmb3JtOyB9CiAKQEAgLTEzNiw2ICsxMzgsOCBAQCBwdWJsaWM6CiAKICAgICBJ
bnRTaXplIHNjcm9sbERlbHRhKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZSgpOyB9CiAKKyAgICBm
bG9hdCBzY2FsZURlbHRhKCkgY29uc3QgeyByZXR1cm4gMTsgfQorCiAgICAgYm9vbCBkb3VibGVT
aWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG91YmxlU2lkZWQ7IH0KICAgICB2b2lkIHNldERvdWJs
ZVNpZGVkKGJvb2wgZG91YmxlU2lkZWQpIHsgbV9kb3VibGVTaWRlZCA9IGRvdWJsZVNpZGVkOyBz
ZXROZWVkc0NvbW1pdCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3Bw
CmluZGV4IGMxNTBlMzdiYWYwYjIwYWNjMzI2YjBlMWJkZTgyYjcwMjZjYTE2MDAuLjY0YzhhYzA3
N2JmZjA1YzUzYjAwNzkxN2NlYjI0ZWM2ZTlhZWEzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmNwcApAQCAtMzY0LDE0ICszNjQsMTAgQEAgdm9pZCBMYXllclJlbmRlcmVy
Q2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbCgpCiAgICAgbV9kZWZhdWx0UmVuZGVyU3VyZmFj
ZSA9IHJvb3REcmF3TGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICBtX2RlZmF1bHRSZW5kZXJT
dXJmYWNlLT5jbGVhckxheWVyTGlzdCgpOwogCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWFn
bmlmeU1hdHJpeChtX3BhZ2VNYWduaWZ5TWF0cml4KTsKLSAgICAvLyBUT0RPKGFlbGlhcyk6IFRo
ZXNlIHR3byB0cmFuc2Zvcm1hdGlvbnMgYXJlIHJlZHVuZGFudDsgdW5pZnkgem9vbUFuaW1hdG9y
Ci0gICAgLy8gYW5kIGltcGwtdGhyZWFkIHNpZGUgbWF0cml4LgotICAgIG1hZ25pZnlNYXRyaXgu
bXVsdGlwbHkobV96b29tQW5pbWF0b3JUcmFuc2Zvcm0pOwotCisgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggaWRlbnRpdHlNYXRyaXg7CiAgICAgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWw6OmNhbGNEcmF3RXRjIiwgdGhpcywg
MCk7Ci0gICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIG1hZ25pZnlNYXRy
aXgsIG1hZ25pZnlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1fZGVmYXVsdFJlbmRl
clN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBhYmlsaXRpZXMubWF4
VGV4dHVyZVNpemUpOworICAgICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZURy
YXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShyb290RHJhd0xheWVyLCByb290RHJhd0xheWVyLCBp
ZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1f
ZGVmYXVsdFJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBh
YmlsaXRpZXMubWF4VGV4dHVyZVNpemUpOwogICAgIH0KIAogICAgIC8vIFRoZSBHTCB2aWV3cG9y
dCBjb3ZlcnMgdGhlIGVudGlyZSB2aXNpYmxlIGFyZWEsIGluY2x1ZGluZyB0aGUgc2Nyb2xsYmFy
cy4KQEAgLTM4NywxMyArMzgzLDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdM
YXllcnNJbnRlcm5hbCgpCiAKICAgICB1c2VSZW5kZXJTdXJmYWNlKG1fZGVmYXVsdFJlbmRlclN1
cmZhY2UpOwogCi0gICAgaWYgKG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLmlzSWRlbnRpdHkoKSkK
LSAgICAgICAgLy8gQ2xlYXIgdG8gYmx1ZSB0byBtYWtlIGl0IGVhc2llciB0byBzcG90IHVucmVu
ZGVyZWQgcmVnaW9ucy4KLSAgICAgICAgbV9jb250ZXh0LT5jbGVhckNvbG9yKDAsIDAsIDEsIDEp
OwotICAgIGVsc2UKLSAgICAgICAgLy8gQ2xlYXIgdG8gZ3JleSwgYXMgem9vbSBhbmltYXRpb24g
bWF5IGxlYXZlIHVucmVuZGVyZWQgcmVnaW9ucy4KLSAgICAgICAgLy8gRklYTUUod2ptYWNsZWFu
KTogUmVuZGVyIHNvbWUgaW50ZXJlc3RpbmcgdGV4dHVyZSBpbiB1bnJlbmRlcmVkIHJlZ2lvbnMu
Ci0gICAgICAgIG1fY29udGV4dC0+Y2xlYXJDb2xvcigwLjI1LCAwLjI1LCAwLjI1LCAxKTsKKyAg
ICAvLyBDbGVhciB0byBibHVlIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHNwb3QgdW5yZW5kZXJlZCBy
ZWdpb25zLgorICAgIG1fY29udGV4dC0+Y2xlYXJDb2xvcigwLCAwLCAxLCAxKTsKICAgICBtX2Nv
bnRleHQtPmNvbG9yTWFzayh0cnVlLCB0cnVlLCB0cnVlLCB0cnVlKTsKICAgICBtX2NvbnRleHQt
PmNsZWFyKEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCAwMjhlNjY0ZDNjYjllNWY1YjA2ZTZiZWY5ZmM3
N2IwZmVjNTEyZGFjLi5mOWE4MzFjODFmMmNjNmNjODRiZDc1YmI4MmY0ODEyNDIzNDlhOTg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtOTgsOCArOTgsNiBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZCgpOwogCi0gICAgdm9pZCBzZXRQYWdlTWFn
bmlmeVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFnZU1hZ25pZnlNYXRy
aXgpIHsgbV9wYWdlTWFnbmlmeU1hdHJpeCA9IHBhZ2VNYWduaWZ5TWF0cml4OyB9Ci0KICAgICB2
b2lkIGRyYXdMYXllcnMoKTsKIAogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8gZmluaXNo
CkBAIC0xMDgsOCArMTA2LDYgQEAgcHVibGljOgogICAgIC8vIHB1dHMgYmFja2J1ZmZlciBvbnNj
cmVlbgogICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKTsKIAotICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9y
VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSB7IG1fem9vbUFuaW1hdG9y
VHJhbnNmb3JtID0gdDsgfQotCiAgICAgc3RhdGljIHZvaWQgZGVidWdHTENhbGwoR3JhcGhpY3ND
b250ZXh0M0QqLCBjb25zdCBjaGFyKiBjb21tYW5kLCBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGlu
ZSk7CiAKICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJvamVjdGlvbk1hdHJpeDsgfQpAQCAtMTk3LDExICsxOTMsOSBA
QCBwcml2YXRlOgogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wcm9qZWN0aW9uTWF0cml4
OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fd2luZG93TWF0cml4OwotICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IG1fcGFnZU1hZ25pZnlNYXRyaXg7CiAKICAgICBDQ1JlbmRlclN1cmZhY2Uq
IG1fY3VycmVudFJlbmRlclN1cmZhY2U7CiAgICAgdW5zaWduZWQgbV9vZmZzY3JlZW5GcmFtZWJ1
ZmZlcklkOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fem9vbUFuaW1hdG9yVHJhbnNmb3Jt
OwogCiAgICAgLy8gU3RvcmUgdmFsdWVzIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGluc3RhbmNl
cyBvZiBlYWNoIGxheWVyIHR5cGUKICAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5j
ZSBvZiB0aGUgY29tcG9zaXRvci4gU2luY2UgdGhlcmUgY2FuIGJlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAKaW5kZXggYmQyYWEwYWZjNDNkNzhlMDFhNjNjOWM0OGQyYWVjYTJhMTIyNzkxMS4uOTA0
OGZkYzgyZDEwNWIzYzYyNjBkZWFiMWQ5MTBkMTA4MWVhYTQ2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmNwcApAQCAtNTIsNiArNTIsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwoaW50IGlk
KQogICAgICwgbV91c2VzTGF5ZXJDbGlwcGluZyhmYWxzZSkKICAgICAsIG1faXNOb25Db21wb3Np
dGVkQ29udGVudChmYWxzZSkKICAgICAsIG1fZHJhd3NDb250ZW50KGZhbHNlKQorICAgICwgbV9z
Y2FsZURlbHRhKDEpCiAgICAgLCBtX3RhcmdldFJlbmRlclN1cmZhY2UoMCkKICAgICAsIG1fZHJh
d0RlcHRoKDApCiAgICAgLCBtX2RyYXdPcGFjaXR5KDApCkBAIC0zMzgsNiArMzM5LDE1IEBAIHZv
aWQgQ0NMYXllckltcGw6OnNldFByZXNlcnZlczNEKGJvb2wgcHJlc2VydmVzM0QpCiAgICAgfQog
fQogCit2b2lkIENDTGF5ZXJJbXBsOjpzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHpvb21BbmltYXRvclRyYW5zZm9ybSkKK3sKKyAgICBpZiAobV96
b29tQW5pbWF0b3JUcmFuc2Zvcm0gIT0gem9vbUFuaW1hdG9yVHJhbnNmb3JtKSB7CisgICAgICAg
IG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtID0gem9vbUFuaW1hdG9yVHJhbnNmb3JtOworICAgICAg
ICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWRGb3JTdWJ0cmVlKCk7CisgICAgfQorfQorCisKIHZv
aWQgQ0NMYXllckltcGw6OnNldFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBzdWJsYXllclRyYW5zZm9ybSkKIHsKICAgICBpZiAobV9zdWJsYXllclRyYW5zZm9y
bSAhPSBzdWJsYXllclRyYW5zZm9ybSkgewpAQCAtMzk1LDYgKzQwNSwxNCBAQCB2b2lkIENDTGF5
ZXJJbXBsOjpzZXRTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB9
CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6OnNldFNjYWxlRGVsdGEoZmxvYXQgc2NhbGVEZWx0YSkK
K3sKKyAgICBpZiAobV9zY2FsZURlbHRhICE9IHNjYWxlRGVsdGEpIHsKKyAgICAgICAgbV9zY2Fs
ZURlbHRhID0gc2NhbGVEZWx0YTsKKyAgICAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkRm9y
U3VidHJlZSgpOworICAgIH0KK30KKwogdm9pZCBDQ0xheWVySW1wbDo6c2V0RG91YmxlU2lkZWQo
Ym9vbCBkb3VibGVTaWRlZCkKIHsKICAgICBpZiAobV9kb3VibGVTaWRlZCAhPSBkb3VibGVTaWRl
ZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYjcyY2FlMTBkOTE3MWNlNjdkYmRiNzRjYjE0
YjVlNTE1MzUwYWM2NS4uNDg2ZjNhMWRiOTZhZDRiZjY2MTQ1OTAyYjYyYjc3MjBlM2FkZDFkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNm
b3JtOyB9CiAKKyAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOworICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB6b29tQW5p
bWF0b3JUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3pvb21BbmltYXRvclRyYW5zZm9ybTsg
fQorCiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1l
OyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAK
QEAgLTE1Nyw2ICsxNjAsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbERlbHRhOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxE
ZWx0YShjb25zdCBJbnRTaXplJik7CiAKKyAgICBmbG9hdCBzY2FsZURlbHRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9zY2FsZURlbHRhOyB9CisgICAgdm9pZCBzZXRTY2FsZURlbHRhKGZsb2F0KTsKKwog
ICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgc2Nyb2xsKTsKIAogICAgIGJvb2wgc2Ny
b2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZTsgfQpAQCAtMjMzLDYgKzIzOSw3
IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9vcGFjaXR5OwogICAgIEZsb2F0UG9pbnQgbV9wb3Np
dGlvbjsKICAgICBib29sIG1fcHJlc2VydmVzM0Q7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
bV96b29tQW5pbWF0b3JUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zdWJs
YXllclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3RyYW5zZm9ybTsKICAg
ICBib29sIG1fdXNlc0xheWVyQ2xpcHBpbmc7CkBAIC0yNDIsNiArMjQ5LDcgQEAgcHJpdmF0ZToK
IAogICAgIEludFNpemUgbV9zY3JvbGxEZWx0YTsKICAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9z
aXRpb247CisgICAgZmxvYXQgbV9zY2FsZURlbHRhOwogCiAgICAgLy8gUHJvcGVydGllcyBvd25l
ZCBleGNsdXNpdmVseSBieSB0aGlzIENDTGF5ZXJJbXBsLgogICAgIC8vIERlYnVnZ2luZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDk1ODg1YjQyM2Ew
YTg0MTYwMDU4MDNkM2Y4MDA0NzhmZjk2NDBiY2YuLjUxYWM3ZDU1ODU0ODhmZTExY2JlMmNiMjcx
MWJmMzgyMzc5MDNiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmNwcApAQCAtMTk2LDExICsxOTYsMTUgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5z
Zm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICBm
bG9hdCBjZW50ZXJPZmZzZXRZID0gKDAuNSAtIGFuY2hvclBvaW50LnkoKSkgKiBib3VuZHMuaGVp
Z2h0KCk7CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllckxvY2FsVHJhbnNmb3JtOwot
ICAgIC8vIExUID0gVHJbb3JpZ2luXSAqIFRyW29yaWdpbjJhbmNob3JdCisgICAgLy8gTFQgPSBU
cltvcmlnaW5dICogTVt6b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJh
bmNob3JdCisgICAgbGF5ZXJMb2NhbFRyYW5zZm9ybS5tdWx0aXBseShsYXllci0+em9vbUFuaW1h
dG9yVHJhbnNmb3JtKCkpOworICAgIC8vIExUID0gVHJbb3JpZ2luXSAqIE1bem9vbUFuaW1hdG9y
XSAqIFNbc2NhbGVEZWx0YV0gKiBUcltvcmlnaW4yYW5jaG9yXQorICAgIGxheWVyTG9jYWxUcmFu
c2Zvcm0uc2NhbGUobGF5ZXItPnNjYWxlRGVsdGEoKSk7CisgICAgLy8gTFQgPSBUcltvcmlnaW5d
ICogTVt6b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3JdCiAg
ICAgbGF5ZXJMb2NhbFRyYW5zZm9ybS50cmFuc2xhdGUzZChwb3NpdGlvbi54KCksIHBvc2l0aW9u
LnkoKSwgbGF5ZXItPmFuY2hvclBvaW50WigpKTsKLSAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBU
cltvcmlnaW4yYW5jaG9yXSAqIE1bbGF5ZXJdCisgICAgLy8gTFQgPSBUcltvcmlnaW5dICogTVt6
b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3JdICogTVtsYXll
cl0KICAgICBsYXllckxvY2FsVHJhbnNmb3JtLm11bHRpcGx5KGxheWVyLT50cmFuc2Zvcm0oKSk7
Ci0gICAgLy8gTFQgPSBUcltvcmlnaW5dICogVHJbb3JpZ2luMmFuY2hvcl0gKiBNW2xheWVyXSAq
IFRyW2FuY2hvcjJjZW50ZXJdCisgICAgLy8gTFQgPSBUcltvcmlnaW5dICogTVt6b29tQW5pbWF0
b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3JdICogTVtsYXllcl0gKiBUclth
bmNob3IyY2VudGVyXQogICAgIGxheWVyTG9jYWxUcmFuc2Zvcm0udHJhbnNsYXRlM2QoY2VudGVy
T2Zmc2V0WCwgY2VudGVyT2Zmc2V0WSwgLWxheWVyLT5hbmNob3JQb2ludFooKSk7CiAKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBjb21iaW5lZFRyYW5zZm9ybSA9IHBhcmVudE1hdHJpeDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKaW5kZXggOGFjYjU0YmJjNDU2Y2Vh
MGMwYzQxNmJlZWMyNGUwMmZiOTcwNjRlNy4uODE1YTEzM2QyOTdjYjk0NDlmMmUzNzIxNDU3YzEx
ZTA2MWRjNjBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAg
LTIzMiw5ICsyMzIsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFNjYWxlRGVsdGEo
ZmxvYXQgZGVsdGEpCiAKICAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwogCi0gICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggZGVsdGFNYXRyaXg7Ci0gICAgZGVsdGFNYXRyaXguc2NhbGUobV9z
Y2FsZURlbHRhKTsKLSAgICBtX2xheWVyUmVuZGVyZXItPnNldFBhZ2VNYWduaWZ5VHJhbnNmb3Jt
KGRlbHRhTWF0cml4KTsKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2NhbGVEZWx0YShtX3Nj
YWxlRGVsdGEpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZUZh
Y3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKQEAgLTI2
OCw3ICsyNjYsMTAgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3JvbGxQ
b3NpdGlvbigpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Wm9vbUFuaW1hdG9yVHJh
bnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB6b29tKQogewotICAgIG1fbGF5ZXJS
ZW5kZXJlci0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKHpvb20pOworICAgIGlmICghbV9zY3Jv
bGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5z
ZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oem9vbSk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0
SW1wbDo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115037</attachid>
            <date>2011-11-14 15:00:56 -0800</date>
            <delta_ts>2011-11-14 16:49:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72208-20111114150055.patch</filename>
            <type>text/plain</type>
            <size>14998</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzYzQ2MzQ1NjlmZmIx
MWEyZjdlZDA1NmViZTNiYmI1YWVlODhiMC4uYjBkYjRhYzA1NmU3NGY2MmU2YjJhMjdiNmU2NjI3
ZmNiZDJjNmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTExLTEyICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZp
eCBzY2FsZURlbHRhIHpvb20tb3V0IHZpc2liaWxpdHkgcmVjdCBidWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjA4CisKKyAgICAgICAgU2luY2Ug
dGhlIHNjcm9sbCBpcyBubyBsb25nZXIgYXBwbGllZCBhdCB0aGUgdG9wIGxheWVyIG9mIHRoZSBs
YXllcgorICAgICAgICB0cmVlLCB0aGUgc2NhbGVEZWx0YSB0cmFuc2Zvcm1hdGlvbiBuZWVkcyB0
byBiZSBtb3ZlZCBkb3duIHRvIHRoZQorICAgICAgICBzYW1lIGxldmVsLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8gdGVz
dHMgeWV0IGZvciB0aGlzIGZlYXR1cmU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MTUyOSkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNjYWxlRGVs
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRy
YXdMYXllcnNJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6
OkNDTGF5ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRTY2FsZURl
bHRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNjYWxlRGVsdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHlJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpzZXRTY2FsZURlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdElt
cGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybSk6CisKIDIwMTEtMTEtMTQgIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvbnNv
bGUncyBwcm90b2NvbCBwYXlsb2FkIGRvZXMgbm90IGhhdmUgdXJsIGFuZCBsaW5lIHByb3BlcnRp
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggNzQ3ZGM5ODY5Y2YxMGI2MmYzMGU5YmYwOWFmMjI3
OTg2NjRkMzQyNC4uYWFiOWQzODg1ODYwN2M4NDU5ZjFjZGI3MzQ5YjA5ZGQ0YjIzMjVjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJD
aHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uaApAQCAtMTIyLDYgKzEyMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0p
IHsgbV9zdWJsYXllclRyYW5zZm9ybSA9IHRyYW5zZm9ybTsgc2V0TmVlZHNDb21taXQoKTsgfQog
ICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3VibGF5ZXJUcmFuc2Zvcm07IH0KIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHpvb21BbmltYXRvclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIFRyYW5zZm9ybWF0aW9u
TWF0cml4KCk7IH0KKwogICAgIHZvaWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IHNldE5lZWRzQ29t
bWl0KCk7IH0KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29u
c3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KIApAQCAtMTM2LDYgKzEzOCw4IEBAIHB1YmxpYzoK
IAogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0K
IAorICAgIGZsb2F0IHNjYWxlRGVsdGEoKSBjb25zdCB7IHJldHVybiAxOyB9CisKICAgICBib29s
IGRvdWJsZVNpZGVkKCkgY29uc3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQg
c2V0RG91YmxlU2lkZWQoYm9vbCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91Ymxl
U2lkZWQ7IHNldE5lZWRzQ29tbWl0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHAKaW5kZXggYzE1MGUzN2JhZjBiMjBhY2MzMjZiMGUxYmRlODJiNzAyNmNhMTYwMC4u
NjRjOGFjMDc3YmZmMDVjNTNiMDA3OTE3Y2ViMjRlYzZlOWFlYTNiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0zNjQsMTQgKzM2NCwxMCBAQCB2b2lkIExheWVy
UmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKCkKICAgICBtX2RlZmF1bHRSZW5k
ZXJTdXJmYWNlID0gcm9vdERyYXdMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgIG1fZGVmYXVs
dFJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7CiAKLSAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBtYWduaWZ5TWF0cml4KG1fcGFnZU1hZ25pZnlNYXRyaXgpOwotICAgIC8vIFRPRE8oYWVs
aWFzKTogVGhlc2UgdHdvIHRyYW5zZm9ybWF0aW9ucyBhcmUgcmVkdW5kYW50OyB1bmlmeSB6b29t
QW5pbWF0b3IKLSAgICAvLyBhbmQgaW1wbC10aHJlYWQgc2lkZSBtYXRyaXguCi0gICAgbWFnbmlm
eU1hdHJpeC5tdWx0aXBseShtX3pvb21BbmltYXRvclRyYW5zZm9ybSk7Ci0KKyAgICBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKICAgICB7CiAgICAgICAgIFRSQUNFX0VWRU5U
KCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbDo6Y2FsY0RyYXdFdGMi
LCB0aGlzLCAwKTsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3
VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbWFn
bmlmeU1hdHJpeCwgbWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZh
dWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxp
dGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2Fs
Y3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3
TGF5ZXIsIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVy
LCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdM
IHZpZXdwb3J0IGNvdmVycyB0aGUgZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBz
Y3JvbGxiYXJzLgpAQCAtMzg3LDEzICszODMsOCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6ZHJhd0xheWVyc0ludGVybmFsKCkKIAogICAgIHVzZVJlbmRlclN1cmZhY2UobV9kZWZhdWx0
UmVuZGVyU3VyZmFjZSk7CiAKLSAgICBpZiAobV96b29tQW5pbWF0b3JUcmFuc2Zvcm0uaXNJZGVu
dGl0eSgpKQotICAgICAgICAvLyBDbGVhciB0byBibHVlIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHNw
b3QgdW5yZW5kZXJlZCByZWdpb25zLgotICAgICAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoMCwg
MCwgMSwgMSk7Ci0gICAgZWxzZQotICAgICAgICAvLyBDbGVhciB0byBncmV5LCBhcyB6b29tIGFu
aW1hdGlvbiBtYXkgbGVhdmUgdW5yZW5kZXJlZCByZWdpb25zLgotICAgICAgICAvLyBGSVhNRSh3
am1hY2xlYW4pOiBSZW5kZXIgc29tZSBpbnRlcmVzdGluZyB0ZXh0dXJlIGluIHVucmVuZGVyZWQg
cmVnaW9ucy4KLSAgICAgICAgbV9jb250ZXh0LT5jbGVhckNvbG9yKDAuMjUsIDAuMjUsIDAuMjUs
IDEpOworICAgIC8vIENsZWFyIHRvIGJsdWUgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCB1bnJl
bmRlcmVkIHJlZ2lvbnMuCisgICAgbV9jb250ZXh0LT5jbGVhckNvbG9yKDAsIDAsIDEsIDEpOwog
ICAgIG1fY29udGV4dC0+Y29sb3JNYXNrKHRydWUsIHRydWUsIHRydWUsIHRydWUpOwogICAgIG1f
Y29udGV4dC0+Y2xlYXIoR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IDAyOGU2NjRkM2NiOWU1ZjViMDZl
NmJlZjlmYzc3YjBmZWM1MTJkYWMuLmY5YTgzMWM4MWYyY2M2Y2M4NGJkNzViYjgyZjQ4MTI0MjM0
OWE5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCkBAIC05OCw4ICs5OCw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmlld3BvcnRDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNl
dFBhZ2VNYWduaWZ5VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwYWdlTWFn
bmlmeU1hdHJpeCkgeyBtX3BhZ2VNYWduaWZ5TWF0cml4ID0gcGFnZU1hZ25pZnlNYXRyaXg7IH0K
LQogICAgIHZvaWQgZHJhd0xheWVycygpOwogCiAgICAgLy8gd2FpdHMgZm9yIHJlbmRlcmluZyB0
byBmaW5pc2gKQEAgLTEwOCw4ICsxMDYsNiBAQCBwdWJsaWM6CiAgICAgLy8gcHV0cyBiYWNrYnVm
ZmVyIG9uc2NyZWVuCiAgICAgdm9pZCBzd2FwQnVmZmVycygpOwogCi0gICAgdm9pZCBzZXRab29t
QW5pbWF0b3JUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIHsgbV96b29t
QW5pbWF0b3JUcmFuc2Zvcm0gPSB0OyB9Ci0KICAgICBzdGF0aWMgdm9pZCBkZWJ1Z0dMQ2FsbChH
cmFwaGljc0NvbnRleHQzRCosIGNvbnN0IGNoYXIqIGNvbW1hbmQsIGNvbnN0IGNoYXIqIGZpbGUs
IGludCBsaW5lKTsKIAogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwcm9qZWN0aW9u
TWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV9wcm9qZWN0aW9uTWF0cml4OyB9CkBAIC0xOTcsMTEg
KzE5Myw5IEBAIHByaXZhdGU6CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3Byb2plY3Rp
b25NYXRyaXg7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV93aW5kb3dNYXRyaXg7Ci0gICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggbV9wYWdlTWFnbmlmeU1hdHJpeDsKIAogICAgIENDUmVuZGVy
U3VyZmFjZSogbV9jdXJyZW50UmVuZGVyU3VyZmFjZTsKICAgICB1bnNpZ25lZCBtX29mZnNjcmVl
bkZyYW1lYnVmZmVySWQ7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV96b29tQW5pbWF0b3JU
cmFuc2Zvcm07CiAKICAgICAvLyBTdG9yZSB2YWx1ZXMgdGhhdCBhcmUgc2hhcmVkIGJldHdlZW4g
aW5zdGFuY2VzIG9mIGVhY2ggbGF5ZXIgdHlwZQogICAgIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IGluc3RhbmNlIG9mIHRoZSBjb21wb3NpdG9yLiBTaW5jZSB0aGVyZSBjYW4gYmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcAppbmRleCBiZDJhYTBhZmM0M2Q3OGUwMWE2M2M5YzQ4ZDJhZWNhMmExMjI3
OTExLi45MDQ4ZmRjODJkMTA1YjNjNjI2MGRlYWIxZDkxMGQxMDgxZWFhNDY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuY3BwCkBAIC01Miw2ICs1Miw3IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVySW1w
bChpbnQgaWQpCiAgICAgLCBtX3VzZXNMYXllckNsaXBwaW5nKGZhbHNlKQogICAgICwgbV9pc05v
bkNvbXBvc2l0ZWRDb250ZW50KGZhbHNlKQogICAgICwgbV9kcmF3c0NvbnRlbnQoZmFsc2UpCisg
ICAgLCBtX3NjYWxlRGVsdGEoMSkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgwKQogICAg
ICwgbV9kcmF3RGVwdGgoMCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKQEAgLTMzOCw2ICszMzks
MTUgQEAgdm9pZCBDQ0xheWVySW1wbDo6c2V0UHJlc2VydmVzM0QoYm9vbCBwcmVzZXJ2ZXMzRCkK
ICAgICB9CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgem9vbUFuaW1hdG9yVHJhbnNmb3JtKQoreworICAg
IGlmIChtX3pvb21BbmltYXRvclRyYW5zZm9ybSAhPSB6b29tQW5pbWF0b3JUcmFuc2Zvcm0pIHsK
KyAgICAgICAgbV96b29tQW5pbWF0b3JUcmFuc2Zvcm0gPSB6b29tQW5pbWF0b3JUcmFuc2Zvcm07
CisgICAgICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZEZvclN1YnRyZWUoKTsKKyAgICB9Cit9
CisKKwogdm9pZCBDQ0xheWVySW1wbDo6c2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHN1YmxheWVyVHJhbnNmb3JtKQogewogICAgIGlmIChtX3N1YmxheWVy
VHJhbnNmb3JtICE9IHN1YmxheWVyVHJhbnNmb3JtKSB7CkBAIC0zOTUsNiArNDA1LDE0IEBAIHZv
aWQgQ0NMYXllckltcGw6OnNldFNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
KQogICAgIH0KIH0KIAordm9pZCBDQ0xheWVySW1wbDo6c2V0U2NhbGVEZWx0YShmbG9hdCBzY2Fs
ZURlbHRhKQoreworICAgIGlmIChtX3NjYWxlRGVsdGEgIT0gc2NhbGVEZWx0YSkgeworICAgICAg
ICBtX3NjYWxlRGVsdGEgPSBzY2FsZURlbHRhOworICAgICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNo
YW5nZWRGb3JTdWJ0cmVlKCk7CisgICAgfQorfQorCiB2b2lkIENDTGF5ZXJJbXBsOjpzZXREb3Vi
bGVTaWRlZChib29sIGRvdWJsZVNpZGVkKQogewogICAgIGlmIChtX2RvdWJsZVNpZGVkICE9IGRv
dWJsZVNpZGVkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAppbmRleCBiNzJjYWUxMGQ5MTcxY2U2N2Ri
ZGI3NGNiMTRiNWU1MTUzNTBhYzY1Li40ODZmM2ExZGI5NmFkNGJmNjYxNDU5MDJiNjJiNzcyMGUz
YWRkMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKQEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAg
ICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4g
bV90cmFuc2Zvcm07IH0KIAorICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CisgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHpvb21BbmltYXRvclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fem9vbUFuaW1hdG9yVHJh
bnNmb3JtOyB9CisKICAgICB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKSB7IG1fbmFt
ZSA9IG5hbWU7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KIApAQCAtMTU3LDYgKzE2MCw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsRGVsdGE7IH0KICAgICB2b2lkIHNl
dFNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmKTsKIAorICAgIGZsb2F0IHNjYWxlRGVsdGEoKSBj
b25zdCB7IHJldHVybiBtX3NjYWxlRGVsdGE7IH0KKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxv
YXQpOworCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRTaXplJiBzY3JvbGwpOwogCiAgICAg
Ym9vbCBzY3JvbGxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CkBAIC0yMzMs
NiArMjM5LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX29wYWNpdHk7CiAgICAgRmxvYXRQb2lu
dCBtX3Bvc2l0aW9uOwogICAgIGJvb2wgbV9wcmVzZXJ2ZXMzRDsKKyAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBtX3pvb21BbmltYXRvclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBtX3N1YmxheWVyVHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdHJhbnNm
b3JtOwogICAgIGJvb2wgbV91c2VzTGF5ZXJDbGlwcGluZzsKQEAgLTI0Miw2ICsyNDksNyBAQCBw
cml2YXRlOgogCiAgICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOwogICAgIEludFNpemUgbV9tYXhT
Y3JvbGxQb3NpdGlvbjsKKyAgICBmbG9hdCBtX3NjYWxlRGVsdGE7CiAKICAgICAvLyBQcm9wZXJ0
aWVzIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAgLy8gRGVidWdn
aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKaW5kZXggOTU4
ODViNDIzYTBhODQxNjAwNTgwM2QzZjgwMDQ3OGZmOTY0MGJjZi4uM2IyM2M5OTJhODAxYzU2MDk1
MjhiODA3ZWU4MmY5Y2YxZDJkNWZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3RDb21tb24uY3BwCkBAIC0xOTYsMTEgKzE5NiwxNSBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXll
cgogICAgIGZsb2F0IGNlbnRlck9mZnNldFkgPSAoMC41IC0gYW5jaG9yUG9pbnQueSgpKSAqIGJv
dW5kcy5oZWlnaHQoKTsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyTG9jYWxUcmFu
c2Zvcm07Ci0gICAgLy8gTFQgPSBUcltvcmlnaW5dICogVHJbb3JpZ2luMmFuY2hvcl0KKyAgICAv
LyBMVCA9IFRyW29yaWdpbl0gKiBNW3pvb21BbmltYXRvcl0KKyAgICBsYXllckxvY2FsVHJhbnNm
b3JtLm11bHRpcGx5KGxheWVyLT56b29tQW5pbWF0b3JUcmFuc2Zvcm0oKSk7CisgICAgLy8gTFQg
PSBUcltvcmlnaW5dICogTVt6b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXQorICAgIGxheWVy
TG9jYWxUcmFuc2Zvcm0uc2NhbGUobGF5ZXItPnNjYWxlRGVsdGEoKSk7CisgICAgLy8gTFQgPSBU
cltvcmlnaW5dICogTVt6b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJh
bmNob3JdCiAgICAgbGF5ZXJMb2NhbFRyYW5zZm9ybS50cmFuc2xhdGUzZChwb3NpdGlvbi54KCks
IHBvc2l0aW9uLnkoKSwgbGF5ZXItPmFuY2hvclBvaW50WigpKTsKLSAgICAvLyBMVCA9IFRyW29y
aWdpbl0gKiBUcltvcmlnaW4yYW5jaG9yXSAqIE1bbGF5ZXJdCisgICAgLy8gTFQgPSBUcltvcmln
aW5dICogTVt6b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3Jd
ICogTVtsYXllcl0KICAgICBsYXllckxvY2FsVHJhbnNmb3JtLm11bHRpcGx5KGxheWVyLT50cmFu
c2Zvcm0oKSk7Ci0gICAgLy8gTFQgPSBUcltvcmlnaW5dICogVHJbb3JpZ2luMmFuY2hvcl0gKiBN
W2xheWVyXSAqIFRyW2FuY2hvcjJjZW50ZXJdCisgICAgLy8gTFQgPSBUcltvcmlnaW5dICogTVt6
b29tQW5pbWF0b3JdICogU1tzY2FsZURlbHRhXSAqIFRyW29yaWdpbjJhbmNob3JdICogTVtsYXll
cl0gKiBUclthbmNob3IyY2VudGVyXQogICAgIGxheWVyTG9jYWxUcmFuc2Zvcm0udHJhbnNsYXRl
M2QoY2VudGVyT2Zmc2V0WCwgY2VudGVyT2Zmc2V0WSwgLWxheWVyLT5hbmNob3JQb2ludFooKSk7
CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjb21iaW5lZFRyYW5zZm9ybSA9IHBhcmVudE1h
dHJpeDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKaW5kZXggOGFjYjU0
YmJjNDU2Y2VhMGMwYzQxNmJlZWMyNGUwMmZiOTcwNjRlNy4uODE1YTEzM2QyOTdjYjk0NDlmMmUz
NzIxNDU3YzExZTA2MWRjNjBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5jcHAKQEAgLTIzMiw5ICsyMzIsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFNj
YWxlRGVsdGEoZmxvYXQgZGVsdGEpCiAKICAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwog
Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZGVsdGFNYXRyaXg7Ci0gICAgZGVsdGFNYXRyaXgu
c2NhbGUobV9zY2FsZURlbHRhKTsKLSAgICBtX2xheWVyUmVuZGVyZXItPnNldFBhZ2VNYWduaWZ5
VHJhbnNmb3JtKGRlbHRhTWF0cml4KTsKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2NhbGVE
ZWx0YShtX3NjYWxlRGVsdGEpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBh
Z2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2Fs
ZSkKQEAgLTI2OCw3ICsyNjYsMTAgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVN
YXhTY3JvbGxQb3NpdGlvbigpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Wm9vbUFu
aW1hdG9yVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB6b29tKQogewotICAg
IG1fbGF5ZXJSZW5kZXJlci0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKHpvb20pOworICAgIGlm
ICghbV9zY3JvbGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2Nyb2xsTGF5
ZXJJbXBsLT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oem9vbSk7CiB9CiAKIHZvaWQgQ0NMYXll
clRyZWVIb3N0SW1wbDo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVySW1wbFRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVySW1wbFRlc3QuY3Bw
CmluZGV4IDIxZWNhZDM2ZmE0MDQwYjYzY2NmYzY3OWJmOGE4MWQ4MzdlNGE5MGIuLmQ3MzMzODc2
YmI0NDZmOGJlNTQ4M2E1NzRiNTU2NTc2NDE1MWI3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHAKQEAgLTEwNiwxMCArMTA2LDEyIEBA
IFRFU1QoQ0NMYXllckltcGxUZXN0LCB2ZXJpZnlMYXllckNoYW5nZXNBcmVUcmFja2VkUHJvcGVy
bHkpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRQb3Np
dGlvbihhcmJpdHJhcnlGbG9hdFBvaW50KSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRS
RUVfQ0hBTkdFRChyb290LT5zZXRQcmVzZXJ2ZXMzRCh0cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRf
VkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRUcmFuc2Zvcm0oYXJiaXRyYXJ5VHJhbnNm
b3JtKSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRa
b29tQW5pbWF0b3JUcmFuc2Zvcm0oYXJiaXRyYXJ5VHJhbnNmb3JtKSk7CiAgICAgRVhFQ1VURV9B
TkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXREb3VibGVTaWRlZChmYWxzZSkpOyAv
LyBjb25zdHJ1Y3RvciBpbml0aWFsaXplcyBpdCB0byAidHJ1ZSIuCiAgICAgRVhFQ1VURV9BTkRf
VkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zY3JvbGxCeShhcmJpdHJhcnlJbnRTaXplKSk7
CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRTY3JvbGxE
ZWx0YShhcmJpdHJhcnlJbnRTaXplKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVf
Q0hBTkdFRChyb290LT5zZXRTY3JvbGxQb3NpdGlvbihhcmJpdHJhcnlJbnRQb2ludCkpOworICAg
IEVYRUNVVEVfQU5EX1ZFUklGWV9TVUJUUkVFX0NIQU5HRUQocm9vdC0+c2V0U2NhbGVEZWx0YShh
cmJpdHJhcnlOdW1iZXIpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZXNlIHByb3BlcnRpZXMgb25s
eSBhZmZlY3RzIHRoZSBsYXllciBpdHNlbGYuCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX09OTFlf
TEFZRVJfQ0hBTkdFRChyb290LT5zZXRDb250ZW50Qm91bmRzKGFyYml0cmFyeUludFNpemUpKTsK
QEAgLTE0MiwxMCArMTQ0LDEyIEBAIFRFU1QoQ0NMYXllckltcGxUZXN0LCB2ZXJpZnlMYXllckNo
YW5nZXNBcmVUcmFja2VkUHJvcGVybHkpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVf
RElEX05PVF9DSEFOR0Uocm9vdC0+c2V0UmVwbGljYUxheWVyKGR1bW15UmVwbGljYSkpOwogICAg
IEVYRUNVVEVfQU5EX1ZFUklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldFBvc2l0
aW9uKGFyYml0cmFyeUZsb2F0UG9pbnQpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU1VCVFJF
RV9ESURfTk9UX0NIQU5HRShyb290LT5zZXRQcmVzZXJ2ZXMzRCh0cnVlKSk7CisgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX1NVQlRSRUVfRElEX05PVF9DSEFOR0Uocm9vdC0+c2V0Wm9vbUFuaW1hdG9y
VHJhbnNmb3JtKGFyYml0cmFyeVRyYW5zZm9ybSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9T
VUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldFRyYW5zZm9ybShhcmJpdHJhcnlUcmFuc2Zv
cm0pKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU1VCVFJFRV9ESURfTk9UX0NIQU5HRShyb290
LT5zZXREb3VibGVTaWRlZChmYWxzZSkpOyAvLyBjb25zdHJ1Y3RvciBpbml0aWFsaXplcyBpdCB0
byAidHJ1ZSIuCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfRElEX05PVF9DSEFOR0Uo
cm9vdC0+c2V0U2Nyb2xsRGVsdGEoYXJiaXRyYXJ5SW50U2l6ZSkpOwogICAgIEVYRUNVVEVfQU5E
X1ZFUklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldFNjcm9sbFBvc2l0aW9uKGFy
Yml0cmFyeUludFBvaW50KSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfRElEX05P
VF9DSEFOR0Uocm9vdC0+c2V0U2NhbGVEZWx0YShhcmJpdHJhcnlOdW1iZXIpKTsKICAgICBFWEVD
VVRFX0FORF9WRVJJRllfU1VCVFJFRV9ESURfTk9UX0NIQU5HRShyb290LT5zZXRDb250ZW50Qm91
bmRzKGFyYml0cmFyeUludFNpemUpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU1VCVFJFRV9E
SURfTk9UX0NIQU5HRShyb290LT5zZXRPcGFxdWUodHJ1ZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZF
UklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldE9wYWNpdHkoYXJiaXRyYXJ5TnVt
YmVyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115060</attachid>
            <date>2011-11-14 16:49:37 -0800</date>
            <delta_ts>2011-11-14 20:08:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72208-20111114164936.patch</filename>
            <type>text/plain</type>
            <size>28616</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzYzQ2MzQ1NjlmZmIx
MWEyZjdlZDA1NmViZTNiYmI1YWVlODhiMC4uYjgwY2ZkNjc3YjY5MDRhMmZiZDUzNmEzZDIwNzJm
YjA1ZmU4NzZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTEyICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZp
eCBzY2FsZURlbHRhIHpvb20tb3V0IHZpc2liaWxpdHkgcmVjdCBidWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjA4CisKKyAgICAgICAgU2luY2Ug
dGhlIHNjcm9sbCBpcyBubyBsb25nZXIgYXBwbGllZCBhdCB0aGUgdG9wIGxheWVyIG9mIHRoZSBs
YXllcgorICAgICAgICB0cmVlLCB0aGUgc2NhbGVEZWx0YSB0cmFuc2Zvcm1hdGlvbiBuZWVkcyB0
byBiZSBtb3ZlZCBkb3duIHRvIHRoZQorICAgICAgICBzYW1lIGxldmVsLgorCisgICAgICAgIEFs
c28gZml4IHpvb21BbmltYXRvciB0byBiZSBhcHBsaWVkIHRoZSBzYW1lIHdheS4gIEkgcmVtb3Zl
ZCB6b29tCisgICAgICAgIGFuaW1hdG9yIGxheW91dCB0ZXN0cywgYXMgdGhleSBhcmVuJ3QgdGVz
dGluZyB0aGUgYWN0dWFsIGltcGwtc2lkZQorICAgICAgICBjb2RlcGF0aCwgYW5kIGFyZSBoYXJk
IHRvIGNvbnRpbnVlIHN1cHBvcnRpbmcgLS0gd2Ugc2hvdWxkIGNvdmVyIHpvb20KKyAgICAgICAg
ZmVhdHVyZXMgd2l0aCB1bml0IHRlc3RzIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChwbGFubmluZyB0
byBhZGQgbGF0ZXI6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTUy
OSkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNjYWxlRGVsdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRl
cm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OkNDTGF5ZXJJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRTY2FsZURlbHRhKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNjYWxlRGVsdGEpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2Fs
ZURlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFpvb21B
bmltYXRvclRyYW5zZm9ybSk6CisKIDIwMTEtMTEtMTQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUncyBwcm90b2Nv
bCBwYXlsb2FkIGRvZXMgbm90IGhhdmUgdXJsIGFuZCBsaW5lIHByb3BlcnRpZXMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmgKaW5kZXggNzQ3ZGM5ODY5Y2YxMGI2MmYzMGU5YmYwOWFmMjI3OTg2NjRkMzQyNC4u
YWFiOWQzODg1ODYwN2M4NDU5ZjFjZGI3MzQ5YjA5ZGQ0YjIzMjVjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaApAQCAtMTIyLDYgKzEyMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN1YmxheWVyVHJh
bnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV9zdWJsYXll
clRyYW5zZm9ybSA9IHRyYW5zZm9ybTsgc2V0TmVlZHNDb21taXQoKTsgfQogICAgIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3VibGF5ZXJUcmFuc2Zvcm07IH0KIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHpvb21Bbmlt
YXRvclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIFRyYW5zZm9ybWF0aW9uTWF0cml4KCk7IH0K
KwogICAgIHZvaWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IHNldE5lZWRzQ29tbWl0KCk7IH0KICAg
ICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4g
bV90cmFuc2Zvcm07IH0KIApAQCAtMTM2LDYgKzEzOCw4IEBAIHB1YmxpYzoKIAogICAgIEludFNp
emUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KIAorICAgIGZsb2F0
IHNjYWxlRGVsdGEoKSBjb25zdCB7IHJldHVybiAxOyB9CisKICAgICBib29sIGRvdWJsZVNpZGVk
KCkgY29uc3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lk
ZWQoYm9vbCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5l
ZWRzQ29tbWl0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5k
ZXggYzE1MGUzN2JhZjBiMjBhY2MzMjZiMGUxYmRlODJiNzAyNmNhMTYwMC4uNjRjOGFjMDc3YmZm
MDVjNTNiMDA3OTE3Y2ViMjRlYzZlOWFlYTNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwCkBAIC0zNjQsMTQgKzM2NCwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJv
bWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKCkKICAgICBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlID0g
cm9vdERyYXdMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZh
Y2UtPmNsZWFyTGF5ZXJMaXN0KCk7CiAKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYWduaWZ5
TWF0cml4KG1fcGFnZU1hZ25pZnlNYXRyaXgpOwotICAgIC8vIFRPRE8oYWVsaWFzKTogVGhlc2Ug
dHdvIHRyYW5zZm9ybWF0aW9ucyBhcmUgcmVkdW5kYW50OyB1bmlmeSB6b29tQW5pbWF0b3IKLSAg
ICAvLyBhbmQgaW1wbC10aHJlYWQgc2lkZSBtYXRyaXguCi0gICAgbWFnbmlmeU1hdHJpeC5tdWx0
aXBseShtX3pvb21BbmltYXRvclRyYW5zZm9ybSk7Ci0KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBpZGVudGl0eU1hdHJpeDsKICAgICB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRl
cmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbDo6Y2FsY0RyYXdFdGMiLCB0aGlzLCAwKTsK
LSAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0Fu
ZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbWFnbmlmeU1hdHJpeCwg
bWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVyU3Vy
ZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0
dXJlU2l6ZSk7CisgICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1Ry
YW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZh
dWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxp
dGllcy5tYXhUZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdMIHZpZXdwb3J0IGNv
dmVycyB0aGUgZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXJzLgpA
QCAtMzg3LDEzICszODMsOCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVy
c0ludGVybmFsKCkKIAogICAgIHVzZVJlbmRlclN1cmZhY2UobV9kZWZhdWx0UmVuZGVyU3VyZmFj
ZSk7CiAKLSAgICBpZiAobV96b29tQW5pbWF0b3JUcmFuc2Zvcm0uaXNJZGVudGl0eSgpKQotICAg
ICAgICAvLyBDbGVhciB0byBibHVlIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHNwb3QgdW5yZW5kZXJl
ZCByZWdpb25zLgotICAgICAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoMCwgMCwgMSwgMSk7Ci0g
ICAgZWxzZQotICAgICAgICAvLyBDbGVhciB0byBncmV5LCBhcyB6b29tIGFuaW1hdGlvbiBtYXkg
bGVhdmUgdW5yZW5kZXJlZCByZWdpb25zLgotICAgICAgICAvLyBGSVhNRSh3am1hY2xlYW4pOiBS
ZW5kZXIgc29tZSBpbnRlcmVzdGluZyB0ZXh0dXJlIGluIHVucmVuZGVyZWQgcmVnaW9ucy4KLSAg
ICAgICAgbV9jb250ZXh0LT5jbGVhckNvbG9yKDAuMjUsIDAuMjUsIDAuMjUsIDEpOworICAgIC8v
IENsZWFyIHRvIGJsdWUgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCB1bnJlbmRlcmVkIHJlZ2lv
bnMuCisgICAgbV9jb250ZXh0LT5jbGVhckNvbG9yKDAsIDAsIDEsIDEpOwogICAgIG1fY29udGV4
dC0+Y29sb3JNYXNrKHRydWUsIHRydWUsIHRydWUsIHRydWUpOwogICAgIG1fY29udGV4dC0+Y2xl
YXIoR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IDAyOGU2NjRkM2NiOWU1ZjViMDZlNmJlZjlmYzc3YjBm
ZWM1MTJkYWMuLmY5YTgzMWM4MWYyY2M2Y2M4NGJkNzViYjgyZjQ4MTI0MjM0OWE5ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVu
ZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCkBAIC05OCw4ICs5OCw2IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgdmlld3BvcnRDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNldFBhZ2VNYWduaWZ5
VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwYWdlTWFnbmlmeU1hdHJpeCkg
eyBtX3BhZ2VNYWduaWZ5TWF0cml4ID0gcGFnZU1hZ25pZnlNYXRyaXg7IH0KLQogICAgIHZvaWQg
ZHJhd0xheWVycygpOwogCiAgICAgLy8gd2FpdHMgZm9yIHJlbmRlcmluZyB0byBmaW5pc2gKQEAg
LTEwOCw4ICsxMDYsNiBAQCBwdWJsaWM6CiAgICAgLy8gcHV0cyBiYWNrYnVmZmVyIG9uc2NyZWVu
CiAgICAgdm9pZCBzd2FwQnVmZmVycygpOwogCi0gICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIHsgbV96b29tQW5pbWF0b3JUcmFu
c2Zvcm0gPSB0OyB9Ci0KICAgICBzdGF0aWMgdm9pZCBkZWJ1Z0dMQ2FsbChHcmFwaGljc0NvbnRl
eHQzRCosIGNvbnN0IGNoYXIqIGNvbW1hbmQsIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKTsK
IAogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwcm9qZWN0aW9uTWF0cml4KCkgY29u
c3QgeyByZXR1cm4gbV9wcm9qZWN0aW9uTWF0cml4OyB9CkBAIC0xOTcsMTEgKzE5Myw5IEBAIHBy
aXZhdGU6CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3Byb2plY3Rpb25NYXRyaXg7CiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV93aW5kb3dNYXRyaXg7Ci0gICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbV9wYWdlTWFnbmlmeU1hdHJpeDsKIAogICAgIENDUmVuZGVyU3VyZmFjZSogbV9j
dXJyZW50UmVuZGVyU3VyZmFjZTsKICAgICB1bnNpZ25lZCBtX29mZnNjcmVlbkZyYW1lYnVmZmVy
SWQ7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV96b29tQW5pbWF0b3JUcmFuc2Zvcm07CiAK
ICAgICAvLyBTdG9yZSB2YWx1ZXMgdGhhdCBhcmUgc2hhcmVkIGJldHdlZW4gaW5zdGFuY2VzIG9m
IGVhY2ggbGF5ZXIgdHlwZQogICAgIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlIG9m
IHRoZSBjb21wb3NpdG9yLiBTaW5jZSB0aGVyZSBjYW4gYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNw
cAppbmRleCBiZDJhYTBhZmM0M2Q3OGUwMWE2M2M5YzQ4ZDJhZWNhMmExMjI3OTExLi45MDQ4ZmRj
ODJkMTA1YjNjNjI2MGRlYWIxZDkxMGQxMDgxZWFhNDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
Y3BwCkBAIC01Miw2ICs1Miw3IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiAg
ICAgLCBtX3VzZXNMYXllckNsaXBwaW5nKGZhbHNlKQogICAgICwgbV9pc05vbkNvbXBvc2l0ZWRD
b250ZW50KGZhbHNlKQogICAgICwgbV9kcmF3c0NvbnRlbnQoZmFsc2UpCisgICAgLCBtX3NjYWxl
RGVsdGEoMSkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgwKQogICAgICwgbV9kcmF3RGVw
dGgoMCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKQEAgLTMzOCw2ICszMzksMTUgQEAgdm9pZCBD
Q0xheWVySW1wbDo6c2V0UHJlc2VydmVzM0QoYm9vbCBwcmVzZXJ2ZXMzRCkKICAgICB9CiB9CiAK
K3ZvaWQgQ0NMYXllckltcGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgem9vbUFuaW1hdG9yVHJhbnNmb3JtKQoreworICAgIGlmIChtX3pvb21B
bmltYXRvclRyYW5zZm9ybSAhPSB6b29tQW5pbWF0b3JUcmFuc2Zvcm0pIHsKKyAgICAgICAgbV96
b29tQW5pbWF0b3JUcmFuc2Zvcm0gPSB6b29tQW5pbWF0b3JUcmFuc2Zvcm07CisgICAgICAgIG5v
dGVMYXllclByb3BlcnR5Q2hhbmdlZEZvclN1YnRyZWUoKTsKKyAgICB9Cit9CisKKwogdm9pZCBD
Q0xheWVySW1wbDo6c2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHN1YmxheWVyVHJhbnNmb3JtKQogewogICAgIGlmIChtX3N1YmxheWVyVHJhbnNmb3JtICE9
IHN1YmxheWVyVHJhbnNmb3JtKSB7CkBAIC0zOTUsNiArNDA1LDE0IEBAIHZvaWQgQ0NMYXllcklt
cGw6OnNldFNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgIH0KIH0K
IAordm9pZCBDQ0xheWVySW1wbDo6c2V0U2NhbGVEZWx0YShmbG9hdCBzY2FsZURlbHRhKQorewor
ICAgIGlmIChtX3NjYWxlRGVsdGEgIT0gc2NhbGVEZWx0YSkgeworICAgICAgICBtX3NjYWxlRGVs
dGEgPSBzY2FsZURlbHRhOworICAgICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWRGb3JTdWJ0
cmVlKCk7CisgICAgfQorfQorCiB2b2lkIENDTGF5ZXJJbXBsOjpzZXREb3VibGVTaWRlZChib29s
IGRvdWJsZVNpZGVkKQogewogICAgIGlmIChtX2RvdWJsZVNpZGVkICE9IGRvdWJsZVNpZGVkKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuaAppbmRleCBiNzJjYWUxMGQ5MTcxY2U2N2RiZGI3NGNiMTRiNWU1
MTUzNTBhYzY1Li40ODZmM2ExZGI5NmFkNGJmNjYxNDU5MDJiNjJiNzcyMGUzYWRkMWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmgKQEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07
IH0KIAorICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4Jik7CisgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHpvb21BbmltYXRv
clRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtOyB9CisK
ICAgICB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKSB7IG1fbmFtZSA9IG5hbWU7IH0K
ICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIApAQCAt
MTU3LDYgKzE2MCw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsRGVsdGE7IH0KICAgICB2b2lkIHNldFNjcm9sbERlbHRh
KGNvbnN0IEludFNpemUmKTsKIAorICAgIGZsb2F0IHNjYWxlRGVsdGEoKSBjb25zdCB7IHJldHVy
biBtX3NjYWxlRGVsdGE7IH0KKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAg
dm9pZCBzY3JvbGxCeShjb25zdCBJbnRTaXplJiBzY3JvbGwpOwogCiAgICAgYm9vbCBzY3JvbGxh
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CkBAIC0yMzMsNiArMjM5LDcgQEAg
cHJpdmF0ZToKICAgICBmbG9hdCBtX29wYWNpdHk7CiAgICAgRmxvYXRQb2ludCBtX3Bvc2l0aW9u
OwogICAgIGJvb2wgbV9wcmVzZXJ2ZXMzRDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3pv
b21BbmltYXRvclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3N1YmxheWVy
VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdHJhbnNmb3JtOwogICAgIGJv
b2wgbV91c2VzTGF5ZXJDbGlwcGluZzsKQEAgLTI0Miw2ICsyNDksNyBAQCBwcml2YXRlOgogCiAg
ICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOwogICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlv
bjsKKyAgICBmbG9hdCBtX3NjYWxlRGVsdGE7CiAKICAgICAvLyBQcm9wZXJ0aWVzIG93bmVkIGV4
Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAgLy8gRGVidWdnaW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNGYyYzFmYjYyNjRlZTdjM2E5ZTYxNzUzN2Ew
Mjg5ODJmOGFiMzNmZS4uYmE0MzBlYzUxN2IwMjdhNzY2ZTYzZGFhZWUwNjhmODI5MWY0NDhmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0zMjcsOSArMzI3LDEwIEBAIHZv
aWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoTGF5ZXJDaHJvbWl1bSogcm9vdExheWVy
KQogICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogcm9vdFJlbmRlclN1cmZhY2UgPSByb290TGF5
ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICByb290UmVuZGVyU3VyZmFjZS0+Y2xlYXJMYXllckxp
c3QoKTsKIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGlkZW50aXR5TWF0cml4OwogICAgIHsK
ICAgICAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzOjpjYWxj
RHJhd0V0YyIsIHRoaXMsIDApOwotICAgICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1
bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShyb290TGF5ZXIsIHJvb3RMYXllciwgbV96
b29tQW5pbWF0b3JUcmFuc2Zvcm0sIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCBtX3VwZGF0ZUxp
c3QsIHJvb3RSZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKSwgbGF5ZXJSZW5kZXJlckNhcGFiaWxp
dGllcygpLm1heFRleHR1cmVTaXplKTsKKyAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdExheWVyLCByb290TGF5ZXIs
IGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgbV91cGRhdGVMaXN0LCByb290UmVuZGVy
U3VyZmFjZS0+bGF5ZXJMaXN0KCksIGxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5tYXhUZXh0
dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgcGFpbnRMYXllckNvbnRlbnRzKG1fdXBkYXRlTGlzdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAppbmRleCA5NTg4NWI0
MjNhMGE4NDE2MDA1ODAzZDNmODAwNDc4ZmY5NjQwYmNmLi4zYjIzYzk5MmE4MDFjNTYwOTUyOGI4
MDdlZTgyZjljZjFkMmQ1ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENv
bW1vbi5jcHAKQEAgLTE5NiwxMSArMTk2LDE1IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdU
cmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAg
ICAgZmxvYXQgY2VudGVyT2Zmc2V0WSA9ICgwLjUgLSBhbmNob3JQb2ludC55KCkpICogYm91bmRz
LmhlaWdodCgpOwogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJMb2NhbFRyYW5zZm9y
bTsKLSAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBUcltvcmlnaW4yYW5jaG9yXQorICAgIC8vIExU
ID0gVHJbb3JpZ2luXSAqIE1bem9vbUFuaW1hdG9yXQorICAgIGxheWVyTG9jYWxUcmFuc2Zvcm0u
bXVsdGlwbHkobGF5ZXItPnpvb21BbmltYXRvclRyYW5zZm9ybSgpKTsKKyAgICAvLyBMVCA9IFRy
W29yaWdpbl0gKiBNW3pvb21BbmltYXRvcl0gKiBTW3NjYWxlRGVsdGFdCisgICAgbGF5ZXJMb2Nh
bFRyYW5zZm9ybS5zY2FsZShsYXllci0+c2NhbGVEZWx0YSgpKTsKKyAgICAvLyBMVCA9IFRyW29y
aWdpbl0gKiBNW3pvb21BbmltYXRvcl0gKiBTW3NjYWxlRGVsdGFdICogVHJbb3JpZ2luMmFuY2hv
cl0KICAgICBsYXllckxvY2FsVHJhbnNmb3JtLnRyYW5zbGF0ZTNkKHBvc2l0aW9uLngoKSwgcG9z
aXRpb24ueSgpLCBsYXllci0+YW5jaG9yUG9pbnRaKCkpOwotICAgIC8vIExUID0gVHJbb3JpZ2lu
XSAqIFRyW29yaWdpbjJhbmNob3JdICogTVtsYXllcl0KKyAgICAvLyBMVCA9IFRyW29yaWdpbl0g
KiBNW3pvb21BbmltYXRvcl0gKiBTW3NjYWxlRGVsdGFdICogVHJbb3JpZ2luMmFuY2hvcl0gKiBN
W2xheWVyXQogICAgIGxheWVyTG9jYWxUcmFuc2Zvcm0ubXVsdGlwbHkobGF5ZXItPnRyYW5zZm9y
bSgpKTsKLSAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBUcltvcmlnaW4yYW5jaG9yXSAqIE1bbGF5
ZXJdICogVHJbYW5jaG9yMmNlbnRlcl0KKyAgICAvLyBMVCA9IFRyW29yaWdpbl0gKiBNW3pvb21B
bmltYXRvcl0gKiBTW3NjYWxlRGVsdGFdICogVHJbb3JpZ2luMmFuY2hvcl0gKiBNW2xheWVyXSAq
IFRyW2FuY2hvcjJjZW50ZXJdCiAgICAgbGF5ZXJMb2NhbFRyYW5zZm9ybS50cmFuc2xhdGUzZChj
ZW50ZXJPZmZzZXRYLCBjZW50ZXJPZmZzZXRZLCAtbGF5ZXItPmFuY2hvclBvaW50WigpKTsKIAog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbWJpbmVkVHJhbnNmb3JtID0gcGFyZW50TWF0cml4
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCA4YWNiNTRiYmM0
NTZjZWEwYzBjNDE2YmVlYzI0ZTAyZmI5NzA2NGU3Li4wM2UyYzcwMWMyMDgwNDcyZDYzZGFkMjVi
ZGMzZTExNGI2MmI3ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNw
cApAQCAtMjMyLDkgKzIzMiw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0U2NhbGVE
ZWx0YShmbG9hdCBkZWx0YSkKIAogICAgIHVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCk7CiAKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkZWx0YU1hdHJpeDsKLSAgICBkZWx0YU1hdHJpeC5zY2Fs
ZShtX3NjYWxlRGVsdGEpOwotICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0UGFnZU1hZ25pZnlUcmFu
c2Zvcm0oZGVsdGFNYXRyaXgpOworICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiBtX3Njcm9s
bExheWVySW1wbC0+c2Nyb2xsYWJsZSgpKQorICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0
U2NhbGVEZWx0YShtX3NjYWxlRGVsdGEpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6
OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBh
Z2VTY2FsZSkKQEAgLTI2OCw3ICsyNjcsMTAgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjp1
cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0
Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB6b29tKQog
ewotICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKHpvb20pOwor
ICAgIGlmICghbV9zY3JvbGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2Ny
b2xsTGF5ZXJJbXBsLT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oem9vbSk7CiB9CiAKIHZvaWQg
Q0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVySW1wbFRl
c3QuY3BwCmluZGV4IDIxZWNhZDM2ZmE0MDQwYjYzY2NmYzY3OWJmOGE4MWQ4MzdlNGE5MGIuLmQ3
MzMzODc2YmI0NDZmOGJlNTQ4M2E1NzRiNTU2NTc2NDE1MWI3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHAKQEAgLTEwNiwxMCArMTA2
LDEyIEBAIFRFU1QoQ0NMYXllckltcGxUZXN0LCB2ZXJpZnlMYXllckNoYW5nZXNBcmVUcmFja2Vk
UHJvcGVybHkpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5z
ZXRQb3NpdGlvbihhcmJpdHJhcnlGbG9hdFBvaW50KSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZ
X1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRQcmVzZXJ2ZXMzRCh0cnVlKSk7CiAgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRUcmFuc2Zvcm0oYXJiaXRyYXJ5
VHJhbnNmb3JtKSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290
LT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oYXJiaXRyYXJ5VHJhbnNmb3JtKSk7CiAgICAgRVhF
Q1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXREb3VibGVTaWRlZChmYWxz
ZSkpOyAvLyBjb25zdHJ1Y3RvciBpbml0aWFsaXplcyBpdCB0byAidHJ1ZSIuCiAgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zY3JvbGxCeShhcmJpdHJhcnlJbnRT
aXplKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfQ0hBTkdFRChyb290LT5zZXRT
Y3JvbGxEZWx0YShhcmJpdHJhcnlJbnRTaXplKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NV
QlRSRUVfQ0hBTkdFRChyb290LT5zZXRTY3JvbGxQb3NpdGlvbihhcmJpdHJhcnlJbnRQb2ludCkp
OworICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TVUJUUkVFX0NIQU5HRUQocm9vdC0+c2V0U2NhbGVE
ZWx0YShhcmJpdHJhcnlOdW1iZXIpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZXNlIHByb3BlcnRp
ZXMgb25seSBhZmZlY3RzIHRoZSBsYXllciBpdHNlbGYuCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZ
X09OTFlfTEFZRVJfQ0hBTkdFRChyb290LT5zZXRDb250ZW50Qm91bmRzKGFyYml0cmFyeUludFNp
emUpKTsKQEAgLTE0MiwxMCArMTQ0LDEyIEBAIFRFU1QoQ0NMYXllckltcGxUZXN0LCB2ZXJpZnlM
YXllckNoYW5nZXNBcmVUcmFja2VkUHJvcGVybHkpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NV
QlRSRUVfRElEX05PVF9DSEFOR0Uocm9vdC0+c2V0UmVwbGljYUxheWVyKGR1bW15UmVwbGljYSkp
OwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNl
dFBvc2l0aW9uKGFyYml0cmFyeUZsb2F0UG9pbnQpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllf
U1VCVFJFRV9ESURfTk9UX0NIQU5HRShyb290LT5zZXRQcmVzZXJ2ZXMzRCh0cnVlKSk7CisgICAg
RVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfRElEX05PVF9DSEFOR0Uocm9vdC0+c2V0Wm9vbUFu
aW1hdG9yVHJhbnNmb3JtKGFyYml0cmFyeVRyYW5zZm9ybSkpOwogICAgIEVYRUNVVEVfQU5EX1ZF
UklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldFRyYW5zZm9ybShhcmJpdHJhcnlU
cmFuc2Zvcm0pKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU1VCVFJFRV9ESURfTk9UX0NIQU5H
RShyb290LT5zZXREb3VibGVTaWRlZChmYWxzZSkpOyAvLyBjb25zdHJ1Y3RvciBpbml0aWFsaXpl
cyBpdCB0byAidHJ1ZSIuCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVfRElEX05PVF9D
SEFOR0Uocm9vdC0+c2V0U2Nyb2xsRGVsdGEoYXJiaXRyYXJ5SW50U2l6ZSkpOwogICAgIEVYRUNV
VEVfQU5EX1ZFUklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldFNjcm9sbFBvc2l0
aW9uKGFyYml0cmFyeUludFBvaW50KSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NVQlRSRUVf
RElEX05PVF9DSEFOR0Uocm9vdC0+c2V0U2NhbGVEZWx0YShhcmJpdHJhcnlOdW1iZXIpKTsKICAg
ICBFWEVDVVRFX0FORF9WRVJJRllfU1VCVFJFRV9ESURfTk9UX0NIQU5HRShyb290LT5zZXRDb250
ZW50Qm91bmRzKGFyYml0cmFyeUludFNpemUpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU1VC
VFJFRV9ESURfTk9UX0NIQU5HRShyb290LT5zZXRPcGFxdWUodHJ1ZSkpOwogICAgIEVYRUNVVEVf
QU5EX1ZFUklGWV9TVUJUUkVFX0RJRF9OT1RfQ0hBTkdFKHJvb3QtPnNldE9wYWNpdHkoYXJiaXRy
YXJ5TnVtYmVyKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1n
cHUtY2ctbWFjL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2Nh
bGUtdGVzdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1ncHUt
Y2ctbWFjL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUt
dGVzdC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3NDdlNjYz
ZGE1ZjY0YzRkZDMyNDViNDU1Yzk5ZGZmNzVlNzQzYWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmxpdGVyYWwgMzMxMQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFli
cFJ6bmtCOWdDQ000NyQ9U3VGeGVQYG8Kek1yTFdvaFJMYk1pN0NjcmlEc3o9Tnkka2A8XzR3KWhE
cFplTmR7XzVtaSVJMTtBIS05YVNXLUxeWS1STy1vcCs4CnolI1FtWD9xZHpEPiQtYSZab3kyaDhH
MDNJWD84JVA4e2RCZWtgSFdJSTJhZnYycjRpeklKaCtjMXRifW43I0xEVQp6MXhIWVRKbGsmRFEy
KlRTd3M2TjspNyEhZjNgVE1TMz05ZyY0aCMkcEpxKE9NSmApUUEhd0hVMiFPO01yZHQjVX4KemJM
THc/MjhJTEg2e0U+PEclSm80TCE7JkxYcV99I0FDSTwwMjZiKTdlfHNETU4qfDdVWjQ1eCo+RlZk
USZNQmJACkUwS1VrLXlaYF9JCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tZ3B1LWxpbnV4L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0
b3Itc2NhbGUtdGVzdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1ncHUtbGludXgvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9vbS1hbmltYXRvci1z
Y2FsZS10ZXN0LWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzEw
YmUzMTZkM2U4MTg4ZWIzNzRlMGI5YzBmNWQxZDRhMzZiMDRhNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCAyODYyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAq
Wik9aF5obEElQFdzJGxIYG9rPG19P29UbX5aKAp6QmVPSlAhe2spcyMxdnoqTTYqPGJxfnhSfGF8
MlRZIXo1JCNCbT1jMk9NV3BoYTJAYjthU1ctTF5ZK0Y/UE5xTnMKejdSVUtCd29Da3M8OGVDdEN7
cHhiamFoTnBHZSFvNz1SMGl+NyNgJVloJXE/JEJycX1AOEQkS3VLIzA0fFR6QiY0CnpvVlQzK0d3
eUErV258ZCpfI2hLUTJkNTUwITtBeD9qTHw/S2tQPmRwb2NXZlFmbm9jaihOcl48VkA4WE8oSVJz
KwppN21WaEQhSTJBWXU8a1lDVF4rdVkpZCQhQlg3Rl9OYjZNdzwmOyRTJWBXTCRaCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1LWxpbnV4L3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdDItZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1LWxpbnV4L3BsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdDItZXhwZWN0ZWQucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDQ2NmI4YjU1ZjQ4NzAzMTBkN2RlZGZlMDJh
YzMwN2YzYWU4MWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDMzMzMKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1Qh
dGhBCnp2c0NqbU9UKk4oRyRWYFRxfF84KzNqPFRqUjE7SCtSQVVQaF5SKEMtS2IjcERjJjI7MElF
R1pyZDMqT0B1MmVMRwp6TCpSeE5qYjx3ajNWQjtDbkV2OXNrP2FOO087YUNmeUB1USQtN1hWVDN2
NnpmSktsSntydFA2Jm1HdFRHX2xBYyoKem0wME9BRnc5N2xJbGdAUF42VTN2KkkmUT13cnBkPm50
dTxjRmZoRWtWWmloSVp7NHtXT0dSfVU4cTlraXwwcGlhCnpJKE1SZHpwWFN3Z1p+NDU+Km5YbXRZ
UW9mSl8oRXJNXzl4ZDRwezM+S2kmTnREMEhDdSZ6alpVeXthMSs3fWtCOwp6di0rSTBIJjk4O15G
MXIjPTZxWmIkazZiNSZyZ1ghP0ZhQDIhJHd2SDBidm0xe3lgPiY4TDFMJkdlSmZrKDN5UVUKej9j
OWRVU3ZpN0NWNTh4N1B7SWg/Szk3T25LPCRpV25hQDBjXzhPZWQraXE9TlgoSmF1PWpYcV95TEZ1
eThmRnx8CnpWKDghbWRVbGs3SDR0dlJ4K2M2c3txK0I3K3ZnbiRGWm9ycj4jR1JFMUZKQSNHJCUx
fUdicEh5R0RaVnxQKWdYZwp6Pm5xRTxsUF88LXljUF5CVmo0aDIzKkI/dStCe29FaEtBcTg3QmNo
cCo4c3U0QVctPn55WiFjRzh3PEpxPWtJU1IKenVgcU4qMCF5U0Z2JXRqeWheUmxzMXVVNFpmPWVW
MkBoNW1SJCZjcHkoSzJzJTxidWBGe3RPSGM+fTJAYlkxalkoCnp3dml9bHpsPl4hdkA7PUxofCF2
PitkdG5wTX1qVDcxLVYlWFlGfmE8RWVBRl5iKjcqR0piQyUkbSl8I25zK2B3MAp6YDc2OEFMNTxk
e15UZS1LPTdTbzItKyRaO2VPfGclME41T1RVJCR8Yjcke3x7MURpRFd3I0JWfi1ZKV9hJmNCX3YK
entqazl2JU4mV2V3YElGKWFeREx1Rz45Szd0ZntLMWRWQlk0KSF3XiM7QHdCckFOY2gtZ1B+I2wl
V350YClVNlJaCnpaSFlKRGY2d1FXWkE7dkliNUM7R1dmUCMqQClgakt5UDFhe2UlTSNQPjx7bHts
ZTBieEVEejdDbU5AP0wpX0Rlbwp6OGQrZW9UanV5YHlINSR9MHRecSV1WTA+UntKcWtpQUtHbVU0
RClYc2NLK1BaZE9BRVh7NmkpJXhuQWRFdSRVZmwKenE0aHZlSUt6U1BaeSZ7fkJxTHNORihtQiNi
NzhZbnhQSUp4enZjVGNNalVAXnhMP2lTQF9ZTE9wUDNvLWVtJDZjCnpMcUE4YllNVjh+aHBEeERU
SmBFciN3SChKe18pMztBR2E3OG89QFZjYFdvbGIlZ1J0PVlHMyFxVzhMUXNhcUF+QAp6R2N3ZUtV
SF45SmFNXkN6d3VreT4qJSUoJjwyX3ZQX1B5PUBVOTUjTj8penNsR2tpRXl3UmhqUGJ6PEV8fDk/
RkIKV0BUI0lXJVcrYDhoUVpVLSZ0O3VjTEs2VClJI3NPegoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS1tYWMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvem9vbS1hbmltYXRvci1zY2FsZS10ZXN0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWdwdS1tYWMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9v
bS1hbmltYXRvci1zY2FsZS10ZXN0LWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDc0N2U2NjNkYTVmNjRjNGRkMzI0NWI0NTVjOTlkZmY3NWU3NDNhYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAzMzExCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55
VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVBgbwp6TXJMV29oUkxiTWk3Q2Ny
aURzej1OeSRrYDxfNHcpaERwWmVOZHtfNW1pJUkxO0EhLTlhU1ctTF5ZLVJPLW9wKzgKeiUjUW1Y
P3FkekQ+JC1hJlpveTJoOEcwM0lYPzglUDh7ZEJla2BIV0lJMmFmdjJyNGl6SUpoK2MxdGJ9bjcj
TERVCnoxeEhZVEpsayZEUTIqVFN3czZOOyk3ISFmM2BUTVMzPTlnJjRoIyRwSnEoT01KYClRQSF3
SFUyIU87TXJkdCNVfgp6YkxMdz8yOElMSDZ7RT48RyVKbzRMITsmTFhxX30jQUNJPDAyNmIpN2V8
c0RNTip8N1VaNDV4Kj5GVmRRJk1CYkAKRTBLVWsteVpgX0kKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1ncHUtd2luL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1ncHUtd2luL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pv
b20tYW5pbWF0b3Itc2NhbGUtdGVzdC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGMxMGJlMzE2ZDNlODE4OGViMzc0ZTBiOWMwZjVkMWQ0YTM2YjA0YTQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjg2Mgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+
eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG1+WigKekJlT0pQIXtrKXMjMXZ6
Kk02KjxicX54UnxhfDJUWSF6NSQjQm09YzJPTVdwaGEyQGI7YVNXLUxeWStGP1BOcU5zCno3UlVL
QndvQ2tzPDhlQ3RDe3B4YmphaE5wR2Uhbzc9UjBpfjcjYCVZaCVxPyRCcnF9QDhEJEt1SyMwNHxU
ekImNAp6b1ZUMytHd3lBK1dufGQqXyNoS1EyZDU1MCE7QXg/akx8P0trUD5kcG9jV2ZRZm5vY2oo
TnJePFZAOFhPKElScysKaTdtVmhEIUkyQVl1PGtZQ1ReK3VZKWQkIUJYN0ZfTmI2TXc8JjskUyVg
V0wkWgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS13aW4v
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9vbS1hbmltYXRvci1zY2FsZS10ZXN0Mi1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1ncHUtd2luL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdDItZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGM5NmM2MGNkMzU1NGJiMThi
ZTVlMmEyODZkOGRmZTM5YTkyMzExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDMz
NzEKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhg
b2s8bX0/b1RuMC1FCnpHWlNORHF2UndEISEhJHZxfH5JT2wlekNNVkBwI0xiRTduKWwqQl9uUGQj
Ql47TXdjeDt1dW1mPWp+bWBKZigwRQp6aHJvU0RIPVdwKEM2T3cyP2RxRC1ReURvSUdBM19XZjNV
NmkzTnVVVVk4OSFQJUNGczBwS2JJUjclWn1UM1YkOXUKeno1WF5vTHhjT0tkb2ZuaXMoeFBqJWZM
fEsjS2deQHB0Z2E1ITdlR1BIP3k9VmFvUGJVaDdMfDBoS0FLfCk1NnU7CnpCakVCK0Q+X3R4PmVk
eTxnc158LTA0a1VQUkpyMyZib3wqM180e0YoV15+JiFHc0haYzxaVS1RZnN4P3xpeGA3TAp6Jlk5
MUBsbDIlSClYazUqb1hxYU9pSCkxI2ZmRD1iXzIyZVNmQX5QTG9yOTRmMzEmeXFISzMtTkJReTFu
NyMpUFYKejAlUXI7SW05cS0leUAzVEtBM355eiVffS1wTChhcVo8bDlhPXVnPUBiTlNWWHtCeWpe
d0BGKkxhNC1sNk09JnRSCnpvMj5QZEh4fmkyMz4jUz9MWmJ7fFhsIzdDeEJQKitXUE5ZLWAkTlhG
ez9CPjhteiR3TFJ1fiVGTGBNV01rdXxEagp6bjEtdEVgQFBLZUM7dlJKY159S2JQeyVNSmkzajhj
MV90fXtUY20hUVV6PVV8S008SjkzJTJHNGBtUWRWNUVqaVIKeiRPSXt5ZHwtdnQ4S3JWeWlEJWdA
ekBZRjwkQkNnfnckTnpORmpfMipSdFpCZDdrcUdoZVlXT1A5anNSMFhuMjBQCnpkbyU7WG47dHtH
YHhRUytlPXs8Q0BWRk9NU2I5YmduOVdEKXBhSExnWmhYM0QmQXsrTSo/MEJFLUZ4cXlgT1FCUQp6
UndqY0I9VkxiSy17LVMzZTdKSz07KGgpWGBSK1Q2NDA9VHlDakk0c0h5b2J7Q144JW57a0gkI3N7
YCpPN0k2WXcKem9GSSljNTcjYnpfeG4zSClQRnk4dH1DJUh7RnVAXyRJMzI0MUs1bE93SypTVD9P
dThIcjBJSzVeWWRBXjh6WTA9CnpxY2NsNmVXOX04UiZpMigrKiQjS2hQam4+I1llQWhlRVI1KChB
dnEldUl+OGVadWhnOTtSQ31UKip8dnNlKGxgeAp6SEx+VU1zV1V0YjYkUzZ2dWp6Rzh4KUEpMSFB
M1dAP1J7cHtVTENRfFJpQ0J3PTMwcUlgfiRXfWBMbG9tYi07P0sKentgPzxydWgmT19JPHM+QSpN
MTZUekpLSzc+Nl9kIzY9az5nLU1WfHZjeH5MV3N9VjdxbTtBa3ZGVENkVHtvP1EyCnpPUm4lVT1v
TVItS0FnNzlLSk1HKiU8biNMd3FNSmEpKSVZKVVuVG9rYFRYQC15e1Y1Yzh7ZTZzRDBiKUt1antY
cQp6ZSFFQS0tQFNUciFZYCUkdGs9cktOfUlSR0lfdkxQYGdycml4IVFjKzdwe0J2WUV9N097YDJk
JGBUMTxmbi08Q04KekF3fWV4YEtEPyR6QypBN2NScDYlUWB1M2xjamtHTVkzS0tTWHFNVFp1KHpk
QWVhcFlFeUxRe0lqcT8pPWA8bHg4Cnp7OTF4IURrSVFPYn42JlUmYlBUQXxLIzBkSiUkZWxfOT5P
ZFh0NlVXbClYTSsjTHhVN2JFYzZeZT81Y3VnZDEpQApUV0V+VE15Jm5jb1MzajNeUDY8cl9DcSRR
NgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy96b29tLWFuaW1hdG9yLXNjYWxlLXRlc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1L3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdC1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdi
ZGVkMDhiZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSArMCwwIEBACi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdC5odG1sIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9vbS1hbmltYXRvci1zY2FsZS10ZXN0
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkMzg4ZjMyMTc2MTk5MzdkZTcw
NTE0NDY1YzI1Mzg5NjY1N2M3NzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9v
bS1hbmltYXRvci1zY2FsZS10ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBA
Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRa
b29tUGFyYW1ldGVycyhkb2N1bWVudCwgMS4yNSwgMTAwLCAxMDApOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImFCb3giKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiZ3JlZW4iOwotICAgICAgICB9
Ci0KLSAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNl
KTsKLSAgICA8L3NjcmlwdD4KLSAgPC9oZWFkPgotPGJvZHk+Ci0gIDwhLS0gICAgSWYgc3VjY2Vz
c2Z1bCwgdGhlIGJveCBzaG91bGQgZW5sYXJnZSB0byBiZSAxMjV4MTI1IGF0ICgxMjUsMTI1KS4K
LSAgICAtLT4KLSAgPGRpdiBpZD0iYUJveCIgc3R5bGU9IndpZHRoOjEwMHB4OyBoZWlnaHQ6MTAw
cHg7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwMHB4OyB0b3A6MTAwcHg7IGJhY2tncm91bmQt
Y29sb3I6I0ZGMDAwMCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy96b29tLWFuaW1hdG9yLXNjYWxl
LXRlc3QyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4
YmRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUt
dGVzdDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy96b29tLWFuaW1h
dG9yLXNjYWxlLXRlc3QyLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy96b29tLWFuaW1hdG9yLXNjYWxlLXRlc3QyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQzMjFiMjYyMmI1NmQ1ZTU0MDY5ZWY5NzU3OTMzYmFkMTkzMGU5Y2UuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9vbS1hbmltYXRvci1zY2FsZS10ZXN0Mi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci0gIDxoZWFkPgotICAg
IDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGRvY3VtZW50LCB0cnVlKTsK
LSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9j
dW1lbnQsIHRydWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQodHJ1ZSk7Ci0gICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHRpbWVyOwotICAgICAg
ICB2YXIgY291bnQgPSAwOwotICAgICAgICB2YXIgbWF4Q291bnQgPSA2MDsKLSAgICAgICAgdmFy
IG5ld1NjYWxlID0gMS4yNTsKLQotICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAg
ICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgIGlmICghd2luZG93LmludGVybmFscyB8fCAo
d2luZG93LmludGVybmFscy5nZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQpID09IG5ld1NjYWxl
IHx8IGNvdW50ID4gbWF4Q291bnQpKSB7Ci0gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0
aW1lcik7Ci0KLSAgICAgICAgICAgICAgICBpZiAoY291bnQgPiBtYXhDb3VudCkgewotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYUJveCIpLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICJyZWQiOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYUJveCIpLmlubmVySFRNTCA9ICI8Y2VudGVyPkZBSUwhPC9jZW50ZXI+IjsKLSAg
ICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImFCb3giKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiZ3JlZW4iOwotICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldFpvb21BbmltYXRvclRyYW5zZm9ybShkb2N1bWVudCwgbmV3U2NhbGUsIDEwMC4w
LCAxMDAuMCk7Ci0gICAgICAgICAgICAgICAgLy8gQ2hlY2sgcGVyaW9kaWNhbGx5IGZvciBhbmlt
YXRpb24gY29tcGxldGlvbi4KLSAgICAgICAgICAgICAgICB0aW1lciA9IHNldEludGVydmFsKCJm
aW5pc2hUZXN0KCkiLCAyNTApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKLSAgICA8L3Nj
cmlwdD4KLSAgPC9oZWFkPgotPGJvZHkgaWQ9InRoZUJvZHkiPgotICA8IS0tICAgIElmIHN1Y2Nl
c3NmdWwsIHRoZSBib3ggc2hvdWxkIGVubGFyZ2UgdG8gYmUgMTI1eDEyNSBhdCAoMTI1LDEyNSku
Ci0gICAgLS0+Ci0gIDxkaXYgaWQ9ImFCb3giIHN0eWxlPSJ3aWR0aDoxMDBweDsgaGVpZ2h0OjEw
MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDoxMDBweDsgdG9wOjEwMHB4OyBiYWNrZ3JvdW5k
LWNvbG9yOiNGRjAwMDAiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDk3Zjdj
ZTU4MGZiNmFlMWMyMmM3ZjE4NjRmMjI4Y2JiZWNhMTZmOWMuLjQzNjAyZTg4NGQzMTQ2N2RjYjll
YTMxYzNlM2QyNGJkN2ExN2UyYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI3MTAsMTAgKzI3MTAsNiBAQCBCVUdX
SzU1OTY4IFdJTiBERUJVRyBHUFUgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1ub25wcmVtdWx0
aXBsaWVkLWJsZW5kLmh0bWwgPQogCiBCVUdXSzU4NTg3IDogbWVkaWEvdmlkZW8tY29udHJvbHMt
cmVuZGVyaW5nLmh0bWwgPSBJTUFHRQogCi0vLyBUYWtlIG5ldyBiYXNlbGluZXMgZnJvbSB0aGUg
Ym90cyB3aGVuIDY4MDM1IGxhbmRzLgotLy9CVUdXSzY5NjI0IFNMT1cgV0lOIEdQVSA6IHBsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdDIuaHRtbCA9
IElNQUdFK1RFWFQKLS8vQlVHV0s3MDA0NiBTTE9XIE1BQyA6IHBsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL3pvb20tYW5pbWF0b3Itc2NhbGUtdGVzdDIuaHRtbCA9IFBBU1MgTUlTU0lORwot
CiBCVUdXSzUzODY4IDogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQt
Y2xvc2UtY3Jhc2guaHRtbCA9IFBBU1MgVEVYVAogCiBCVUdXSzU0MDUxIE1BQyA6IHBsdWdpbnMv
aW52YWxpZGF0ZV9yZWN0Lmh0bWwgPSBURVhUCkBAIC0zODMwLDcgKzM4MjYsNiBAQCBCVUdFTk5F
IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZlcnRpY2FsLXNjcm9sbC1jb21wb3NpdGVkLmh0
bWwgPSBGQUlMCiBCVUdFTk5FIEdQVSA6IGNvbXBvc2l0aW5nL292ZXJmbG93L2ZpeGVkLXBvc2l0
aW9uLWFuY2VzdG9yLWNsaXAuaHRtbCA9IEZBSUwKIEJVR0VOTkUgR1BVIDogY29tcG9zaXRpbmcv
c2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbCA9IEZBSUwKIC8vIFVuY29tbWVudCB0
aGUgYWJvdmUgcmVzdWx0cyBmb3IgdGhpcyB3aGVuIHJlbW92aW5nLgotQlVHRU5ORSBHUFUgR1BV
LUNHIDogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvem9vbS1hbmltYXRvci1zY2FsZS10
ZXN0Mi5odG1sID0gRkFJTCBUSU1FT1VUCiAKIC8vIFRoaXMgdGVzdCBzb21ldGltZXMgZXhjZWVk
cyA2MC1zZWNvbmQgdGltZSBsaW1pdCAoZm9yIFNMT1cgdGVzdHMpIG9uCiAvLyB3aW4vbGludXgg
ZGVidWcuIFNpbmNlIHNldHRpbmcgYm90aCBTTE9XIGFuZCBUSU1FT1VUIGlzIG5vdCBhbGxvd2Vk
LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>