<?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>63982</bug_id>
          
          <creation_ts>2011-07-06 02:06:19 -0700</creation_ts>
          <short_desc>Web Inspector: [REGRESSION r89753-89754] highlight does not respect scroller location.</short_desc>
          <delta_ts>2011-07-11 17:08:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>432690</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-06 02:06:19 -0700</bug_when>
    <thetext>1. Open any page with the vertical scroller
2. Scroll a bit
2. Try highlighting the element

Highlighting is off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433254</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-06 21:51:52 -0700</bug_when>
    <thetext>Couldn&apos;t get to the tonight (updating + building took longer then expected!). The highlight rect seems to scroll twice as much as the content. So if you start scrolling down and a &lt;div&gt; moves up, the highlight rect for that &lt;div&gt; moves up even further. I&apos;ll attach my test case from before with some vertical scrolling. I&apos;ll also test real sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433256</commentid>
    <comment_count>2</comment_count>
      <attachid>99932</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-06 21:52:11 -0700</bug_when>
    <thetext>Created attachment 99932
[TEST] Test Page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433280</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-06 23:28:31 -0700</bug_when>
    <thetext>What exactly was original patch fixing? Does it make sense to roll it out before this regression is fixed? This one breaks on a very general case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433533</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-07 09:50:28 -0700</bug_when>
    <thetext>Sure, rolling out the original change would be reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433573</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-07 10:23:45 -0700</bug_when>
    <thetext>Switching back to &quot;localToAbsolute&quot; looks like it fixed the issue. I&apos;ll investigate more tonight, I&apos;m out most of the day. let me know if you rollout the previous change.


        // FloatQuad absContentQuad = containingView-&gt;convertFromRenderer(renderer, FloatRect(contentBox));
        // FloatQuad absPaddingQuad = containingView-&gt;convertFromRenderer(renderer, FloatRect(paddingBox));
        // FloatQuad absBorderQuad = containingView-&gt;convertFromRenderer(renderer, FloatRect(borderBox));
        // FloatQuad absMarginQuad = containingView-&gt;convertFromRenderer(renderer, FloatRect(marginBox));

        FloatQuad absContentQuad = renderBox-&gt;localToAbsoluteQuad(FloatRect(contentBox));
        FloatQuad absPaddingQuad = renderBox-&gt;localToAbsoluteQuad(FloatRect(paddingBox));
        FloatQuad absBorderQuad = renderBox-&gt;localToAbsoluteQuad(FloatRect(borderBox));
        FloatQuad absMarginQuad = renderBox-&gt;localToAbsoluteQuad(FloatRect(marginBox));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433849</commentid>
    <comment_count>6</comment_count>
      <attachid>100061</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-07 18:48:39 -0700</bug_when>
    <thetext>Created attachment 100061
[PATCH] First Attempt

This fixes all the issues I encountered with highlight rects being wrong when
I scrolled in the main frame. I tested scrolling in the main frame, subframes,
and transformed versions of nested frames etc.

I&apos;m a bit frustrated now that the FloatQuad version of FrameView::convertFromRenderer
is so different from the IntRect version. I wonder why these two differences (root view
and fixed content) aren&apos;t handled in the IntRect version and if maybe my understanding
of what this function really does is wrong and it should be renamed. I&apos;d like to look deeper
at this when I have some more time, but this appears to fix the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433888</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-07 22:09:02 -0700</bug_when>
    <thetext>Would be nice to do some archaeology to see if the non-quad versions got fixed without fixing the quad versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433891</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-07 22:10:59 -0700</bug_when>
    <thetext>I just added the FloatQuad versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433902</commentid>
    <comment_count>9</comment_count>
      <attachid>100061</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-07 22:26:31 -0700</bug_when>
    <thetext>Comment on attachment 100061
[PATCH] First Attempt

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

&gt; Source/WebCore/page/FrameView.cpp:2823
&gt; -    if (!wasFixed) {
&gt; +    if (parent() &amp;&amp; !wasFixed) {
&gt;          IntPoint scroll = scrollPosition();
&gt;          quad.move(-scroll.x(), -scroll.y());

I&apos;d like to understand why this method has the !wasFixed check, and now needs the parent() check, when the IntRect version does not. Is the IntRect version broken?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433965</commentid>
    <comment_count>10</comment_count>
      <attachid>100061</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-08 02:35:41 -0700</bug_when>
    <thetext>Comment on attachment 100061
[PATCH] First Attempt

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

&gt;&gt; Source/WebCore/page/FrameView.cpp:2823
&gt;&gt;          quad.move(-scroll.x(), -scroll.y());
&gt; 
&gt; I&apos;d like to understand why this method has the !wasFixed check, and now needs the parent() check, when the IntRect version does not. Is the IntRect version broken?

Can we land this fix now and follow up on the IntRect? It renders inspector unusable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434058</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-08 08:20:52 -0700</bug_when>
    <thetext>I&apos;d rather make the change suggested in comment 5 for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434118</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-08 10:04:17 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I&apos;d rather make the change suggested in comment 5 for now.

That actually didn&apos;t fix the problem when inspecting an element in subframes.
I could probably do something like:

    if (containingView-&gt;parent()) {
        // Not the root container? Use convertFromRenderer.
    } else {
        // Root container, use localToAbsoluteQuad.
    }

I can try that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434451</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-08 19:19:02 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; I&apos;d rather make the change suggested in comment 5 for now.
&gt; 
&gt; That actually didn&apos;t fix the problem when inspecting an element in subframes.
&gt; I could probably do something like:
&gt; 
&gt;     if (containingView-&gt;parent()) {
&gt;         // Not the root container? Use convertFromRenderer.
&gt;     } else {
&gt;         // Root container, use localToAbsoluteQuad.
&gt;     }
&gt; 
&gt; I can try that.

Nope, this didn&apos;t work for subframes, because eventually in the recursive
convertToRoot when reaching the root is reached and the scroll position
is doubly added there. My next step will be looking at the IntRect version
and seeing if that is wrong for these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434729</commentid>
    <comment_count>14</comment_count>
      <attachid>100259</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-11 02:53:09 -0700</bug_when>
    <thetext>Created attachment 100259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434764</commentid>
    <comment_count>15</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-11 04:55:20 -0700</bug_when>
    <thetext>Committed r90734: &lt;http://trac.webkit.org/changeset/90734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434954</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-11 10:06:35 -0700</bug_when>
    <thetext>Rather than rolling this all out, why not just do the patch in comment 5?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435314</commentid>
    <comment_count>17</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-11 17:00:50 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Rather than rolling this all out, why not just do the patch in comment 5?

In comment 13 I mentioned that was not sufficient, subframes were still broken.


&gt; My next step will be looking at the IntRect version and seeing if that is wrong
&gt; for these cases.

I haven&apos;t actually been able to trigger a breakpoint on these functions. Looking
at the code it looks like this should run in code related to Scrollbars, but testing
a bunch of custom and non-custom scrollbars I never his this. Blaming the code
to see when it was added I came across the following test:

    LayoutTests/platform/mac/fast/forms/listbox-scrollbar-hit-test.html

The test seems to succeed in DRT but the scrollbars don&apos;t work properly in Safari.
Scrollwheel events seem to work, but clicking on the scrollbar, using up/down etc
all don&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435320</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-11 17:08:20 -0700</bug_when>
    <thetext>(In reply to comment #17)

&gt; The test seems to succeed in DRT but the scrollbars don&apos;t work properly in Safari.
&gt; Scrollwheel events seem to work, but clicking on the scrollbar, using up/down etc
&gt; all don&apos;t work.

There may be WK1/WK2 differences here, and we don&apos;t run any eventSender tests in WK2 :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>99932</attachid>
            <date>2011-07-06 21:52:11 -0700</date>
            <delta_ts>2011-07-06 21:52:11 -0700</delta_ts>
            <desc>[TEST] Test Page</desc>
            <filename>modified-reduction.html</filename>
            <type>text/html</type>
            <size>797</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHN0eWxlPgppZnJhbWUgewogICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CiAgICBkaXNwbGF5
OiBibG9jazsKICAgIHdpZHRoOiA0MDBweDsKICAgIGhlaWdodDogMzAwcHg7CiAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgdG9wOiAwOwogICAgbWFyZ2luOiAwOwogICAg
cGFkZGluZzogMDsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBib3JkZXItd2lkdGg6
IDIwcHg7CiAgICBib3JkZXItbGVmdC13aWR0aDogNTBweDsKICAgIAp9Ci50cmFuc2Zvcm0yIHsg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMHB4LDIwMHB4LDApIHJvdGF0ZSg0NWRl
Zyk7IH0KCjwvc3R5bGU+Cjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48
YnI+Cjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CjxkaXYgc3R5
bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+CiAgICA8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWws
PHA+VGVzdDwvcD4iPjwvaWZyYW1lPgogICAgPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sO2Jh
c2U2NCxQSEErVDI1bFBDOXdQanhwWm5KaGJXVWdjM1I1YkdVOUp5MTNaV0pyYVhRdGRISmhibk5t
YjNKdE9pQnliM1JoZEdVb05EVmtaV2NwT3ljZ2MzSmpQU0prWVhSaE9uUmxlSFF2YUhSdGJDdzhj
Q0J6ZEhsc1pUMG5MWGRsWW10cGRDMTBjbUZ1YzJadmNtMDZJSEp2ZEdGMFpTZ3RNakJrWldjcE95
YytTVzV1WlhJOEwzQStJajQ9IiBjbGFzcz0idHJhbnNmb3JtMiI+PC9pZnJhbWU+CjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100061</attachid>
            <date>2011-07-07 18:48:39 -0700</date>
            <delta_ts>2011-07-11 02:53:01 -0700</delta_ts>
            <desc>[PATCH] First Attempt</desc>
            <filename>fix.patch</filename>
            <type>text/plain</type>
            <size>2430</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NTVlNjhhLi4yM2E5YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDctMDcgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUkVHUkVTU0lPTiByODk3NTMtODk3NTRdIGhpZ2hsaWdo
dCBkb2VzIG5vdCByZXNwZWN0IHNjcm9sbGVyIGxvY2F0aW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5ODIKKworICAgICAgICBUaGUgc2Nyb2xs
IG9mZnNldCBvZiB0aGUgcm9vdCBjb250YWluZXIgd2FzIGdldHRpbmcgYWRkZWQKKyAgICAgICAg
aW4gdHdpY2UsIGNhdXNpbmcgdGhlIGhpZ2hsaWdodCByZWN0IHRvIGJlIGluIHRoZSB3cm9uZyBw
bGFjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udmVy
dEZyb21SZW5kZXJlcik6CisgICAgICAgIERvIG5vdCBhZGQgaW4gdGhlIHNjcm9sbCBwb3NpdGlv
biBpZiB0aGlzIGlzIHRoZSByb290IGNvbnRhaW5lci4KKworICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNvbnZlcnRDaGlsZFRv
U2VsZik6CisgICAgICAgIEFsdGhvdWdoIHRoaXMgY2hhbmdlIGRpZCBub3Qgc2VlbSB0byBtYWtl
IGFueSBjaGFuZ2VzLCB0aGlzIGlzCisgICAgICAgIG1vcmUgY29ycmVjdC4gV2UgYXJlIHVzaW5n
IHRoZSBJbnRQb2ludCB2ZXJzaW9uIG9mIGNvbnZlcnRDaGlsZFRvU2VsZgorICAgICAgICB0byBj
b21wdXRlIGEgbmV3IEludFBvaW50IHNvIHRoYXQgd2UgY2FuIG1vdmUgdGhlIGRpZmYgb2YgdGhh
dC4KKyAgICAgICAgRmxvYXRRdWFkLm1vdmUgZG9lcyBub3Qgc2V0IHRoZSBsb2NhdGlvbiwgaXQg
aXMgYSB0cmFuc2xhdGlvbiwKKyAgICAgICAgc28gd2Ugc2hvdWxkIG1vdmUgYnkgdGhlIEludFBv
aW50IGRpZmZlcmVuY2VzLgorCiAyMDExLTA3LTA2ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCAwMjFmZGZlLi44NTkyMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0yODE4LDcgKzI4MTgsNyBAQCBGbG9hdFF1YWQgRnJhbWVWaWV3Ojpjb252
ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEZsbwog
ICAgIGJvb2wgd2FzRml4ZWQgPSBmYWxzZTsKICAgICBGbG9hdFF1YWQgcXVhZCA9IHJlbmRlcmVy
LT5sb2NhbFRvQWJzb2x1dGVRdWFkKHJlbmRlcmVyUXVhZCwgZmFsc2UsICZ3YXNGaXhlZCk7CiAK
LSAgICBpZiAoIXdhc0ZpeGVkKSB7CisgICAgaWYgKHBhcmVudCgpICYmICF3YXNGaXhlZCkgewog
ICAgICAgICBJbnRQb2ludCBzY3JvbGwgPSBzY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBxdWFk
Lm1vdmUoLXNjcm9sbC54KCksIC1zY3JvbGwueSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgKaW5kZXggODZhMmMzMi4uODM0NGE3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaApAQCAtMjYxLDkgKzI2MSwxMSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBJbnRQb2ludCBwb2ludCA9IHF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKS5sb2NhdGlv
bigpOwogICAgICAgICBJbnRQb2ludCBuZXdQb2ludCA9IGNvbnZlcnRDaGlsZFRvU2VsZihjaGls
ZCwgcG9pbnQpOworICAgICAgICBpbnQgZGlmZlggPSBuZXdQb2ludC54KCkgLSBwb2ludC54KCk7
CisgICAgICAgIGludCBkaWZmWSA9IG5ld1BvaW50LnkoKSAtIHBvaW50LnkoKTsKIAogICAgICAg
ICBGbG9hdFF1YWQgbmV3UXVhZCA9IHF1YWQ7Ci0gICAgICAgIG5ld1F1YWQubW92ZShuZXdQb2lu
dC54KCksIG5ld1BvaW50LnkoKSk7CisgICAgICAgIG5ld1F1YWQubW92ZShkaWZmWCwgZGlmZlkp
OwogICAgICAgICByZXR1cm4gbmV3UXVhZDsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100259</attachid>
            <date>2011-07-11 02:53:09 -0700</date>
            <delta_ts>2011-07-11 04:46:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63982-20110711135307.patch</filename>
            <type>text/plain</type>
            <size>36925</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NWRhZjdkZjgzODJjNzA2
ZTk0YjEyMjdiM2Q2OTFkMTM0ZjFiYzUwLi5jYjk1NWRjZjU5ZTEwNTdhYzhkZjFjMzA5ZGYwNzFk
YjA0ZWQzZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMDctMTEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtSRUdSRVNTSU9OIHI4OTc1My04OTc1NF0gaGlnaGxpZ2h0IGRvZXMgbm90IHJlc3BlY3Qgc2Ny
b2xsZXIgbG9jYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02Mzk4MgorCisgICAgICAgIFJvbGxpbmcgb3V0IDg5NzYwLCA4OTc1NiwgODk3NTQs
IDg5NzUzIGZvciBicmVha2luZyBpbnNwZWN0b3IgaGlnaGxpZ2h0LgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01Ob2RlSGlnaGxpZ2h0ZXI6OmRyYXdOb2RlSGlnaGxpZ2h0KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQWJzb2x1
dGVRdWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9y
ZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0
OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250
YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5oOgorCiAyMDExLTA3LTExICBNdXN0YWZpenVyIFJhaGFtYW4g
IDxtdXN0YWYuaGVyZUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9i
aW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDUxOWVlZGE3NzM0N2MyNTk5Y2M1OWQyNDIy
MWIzMmE4ZGRlNTI0YWYuLjU3ZTkyMDNjYTI4NGYwZjNlMjIxNWJmNDViNDM0N2ExMDk3NjBmNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMjc1LDEyICsxMjc1LDEwIEBAIF9fWk5LN1dlYkNv
cmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0
U2NvcGVDaGFpbk5vCiBfX1pOSzdXZWJDb3JlNldpZGdldDE0cGxhdGZvcm1XaWRnZXRFdgogX19a
Tks3V2ViQ29yZTZXaWRnZXQyM2NvbnZlcnRUb0NvbnRhaW5pbmdWaWV3RVJLTlNfN0ludFJlY3RF
CiBfX1pOSzdXZWJDb3JlNldpZGdldDIzY29udmVydFRvQ29udGFpbmluZ1ZpZXdFUktOU184SW50
UG9pbnRFCi1fX1pOSzdXZWJDb3JlNldpZGdldDIzY29udmVydFRvQ29udGFpbmluZ1ZpZXdFUktO
U185RmxvYXRRdWFkRQogX19aTks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRGcm9tQ29udGFpbmlu
Z1ZpZXdFUktOU183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0RnJvbUNv
bnRhaW5pbmdWaWV3RVJLTlNfOEludFBvaW50RQogX19aTks3V2ViQ29yZTZXaWRnZXQyNWNvbnZl
cnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0
MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfOEludFBvaW50RQotX19aTks3V2ViQ29y
ZTZXaWRnZXQyN2NvbnZlcnRUb1Jvb3RDb250YWluaW5nVmlld0VSS05TXzlGbG9hdFF1YWRFCiBf
X1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50MTBz
Y3JlZW5SZWN0RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCmluZGV4IGM5OWE0
YmEyYzQwNzhhMThiNzliN2MwYWZmMTNmOWJiODI1ZTI5YTcuLjdmYzQ2NDBhMDE0ZWE1YmY5NDk0
Mjg4Y2Y2NWM0ODcxY2NmNzU5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9E
T01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgaW5saW5lIEludFNpemUg
ZnJhbWVUb01haW5GcmFtZU9mZnNldChGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIG1haW5GcmFt
ZVBvaW50IC0gSW50UG9pbnQoKTsKIH0KIAotdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgSW50UmVjdCYgYm91bmRpbmdCb3gs
IGNvbnN0IEludFJlY3QmIGFuY2hvckJveCwgY29uc3QgRmxvYXRSZWN0JiBvdmVybGF5UmVjdCwg
U2V0dGluZ3MqIHNldHRpbmdzKQordm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgSW50UmVjdCYgYm91bmRpbmdCb3gsIGNvbnN0
IEludFJlY3QmIGFuY2hvckJveCwgY29uc3QgRmxvYXRSZWN0JiBvdmVybGF5UmVjdCwgV2ViQ29y
ZTo6U2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIHN0YXRpYyBjb25zdCBpbnQgcmVjdEluZmxh
dGVQeCA9IDQ7CiAgICAgc3RhdGljIGNvbnN0IGludCBmb250SGVpZ2h0UHggPSAxMjsKQEAgLTI2
NiwyMiArMjY2LDIxIEBAIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBOb2RlKiBub2RlLCBIaWdobGlnaHRNb2RlIG1vZGUpCiAgICAgICAgIExheW91dFJl
Y3QgbWFyZ2luQm94KGJvcmRlckJveC54KCkgLSByZW5kZXJCb3gtPm1hcmdpbkxlZnQoKSwgYm9y
ZGVyQm94LnkoKSAtIHJlbmRlckJveC0+bWFyZ2luVG9wKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvcmRlckJveC53aWR0aCgpICsgcmVuZGVyQm94LT5tYXJnaW5MZWZ0KCkgKyByZW5k
ZXJCb3gtPm1hcmdpblJpZ2h0KCksIGJvcmRlckJveC5oZWlnaHQoKSArIHJlbmRlckJveC0+bWFy
Z2luVG9wKCkgKyByZW5kZXJCb3gtPm1hcmdpbkJvdHRvbSgpKTsKIAotICAgICAgICBGcmFtZVZp
ZXcqIGNvbnRhaW5pbmdWaWV3ID0gY29udGFpbmluZ0ZyYW1lLT52aWV3KCk7Ci0gICAgICAgIEZs
b2F0UXVhZCBhYnNDb250ZW50UXVhZCA9IGNvbnRhaW5pbmdWaWV3LT5jb252ZXJ0RnJvbVJlbmRl
cmVyKHJlbmRlcmVyLCBGbG9hdFJlY3QoY29udGVudEJveCkpOwotICAgICAgICBGbG9hdFF1YWQg
YWJzUGFkZGluZ1F1YWQgPSBjb250YWluaW5nVmlldy0+Y29udmVydEZyb21SZW5kZXJlcihyZW5k
ZXJlciwgRmxvYXRSZWN0KHBhZGRpbmdCb3gpKTsKLSAgICAgICAgRmxvYXRRdWFkIGFic0JvcmRl
clF1YWQgPSBjb250YWluaW5nVmlldy0+Y29udmVydEZyb21SZW5kZXJlcihyZW5kZXJlciwgRmxv
YXRSZWN0KGJvcmRlckJveCkpOwotICAgICAgICBGbG9hdFF1YWQgYWJzTWFyZ2luUXVhZCA9IGNv
bnRhaW5pbmdWaWV3LT5jb252ZXJ0RnJvbVJlbmRlcmVyKHJlbmRlcmVyLCBGbG9hdFJlY3QobWFy
Z2luQm94KSk7CiAKLSAgICAgICAgYWJzQ29udGVudFF1YWQgPSBjb250YWluaW5nVmlldy0+Y29u
dmVydFRvUm9vdENvbnRhaW5pbmdWaWV3KGFic0NvbnRlbnRRdWFkKTsKLSAgICAgICAgYWJzUGFk
ZGluZ1F1YWQgPSBjb250YWluaW5nVmlldy0+Y29udmVydFRvUm9vdENvbnRhaW5pbmdWaWV3KGFi
c1BhZGRpbmdRdWFkKTsKLSAgICAgICAgYWJzQm9yZGVyUXVhZCA9IGNvbnRhaW5pbmdWaWV3LT5j
b252ZXJ0VG9Sb290Q29udGFpbmluZ1ZpZXcoYWJzQm9yZGVyUXVhZCk7Ci0gICAgICAgIGFic01h
cmdpblF1YWQgPSBjb250YWluaW5nVmlldy0+Y29udmVydFRvUm9vdENvbnRhaW5pbmdWaWV3KGFi
c01hcmdpblF1YWQpOworICAgICAgICBGbG9hdFF1YWQgYWJzQ29udGVudFF1YWQgPSByZW5kZXJC
b3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGNvbnRlbnRCb3gpKTsKKyAgICAgICAg
RmxvYXRRdWFkIGFic1BhZGRpbmdRdWFkID0gcmVuZGVyQm94LT5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UmVjdChwYWRkaW5nQm94KSk7CisgICAgICAgIEZsb2F0UXVhZCBhYnNCb3JkZXJRdWFk
ID0gcmVuZGVyQm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChib3JkZXJCb3gpKTsK
KyAgICAgICAgRmxvYXRRdWFkIGFic01hcmdpblF1YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmdpbkJveCkpOworCisgICAgICAgIGFic0NvbnRlbnRRdWFk
Lm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsKKyAgICAgICAgYWJzUGFkZGluZ1F1YWQubW92ZShtYWlu
RnJhbWVPZmZzZXQpOworICAgICAgICBhYnNCb3JkZXJRdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0
KTsKKyAgICAgICAgYWJzTWFyZ2luUXVhZC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7CiAKICAgICAg
ICAgdGl0bGVBbmNob3JCb3ggPSBhYnNNYXJnaW5RdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7
CiAKICAgICAgICAgZHJhd0hpZ2hsaWdodEZvckJveChjb250ZXh0LCBhYnNDb250ZW50UXVhZCwg
YWJzUGFkZGluZ1F1YWQsIGFic0JvcmRlclF1YWQsIGFic01hcmdpblF1YWQsIG1vZGUpOwogICAg
IH0gZWxzZSBpZiAocmVuZGVyZXItPmlzUmVuZGVySW5saW5lKCkgfHwgaXNTVkdSZW5kZXJlcikg
ewotICAgICAgICAvLyBGSVhNRTogRG9lcyBub3QgaGFuZGxlIHRyYW5zZm9ybWVkIGNvbnRlbnQg
Y29ycmVjdGx5LgogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHNob3cgbWFyZ2lucy9wYWRk
aW5nL2JvcmRlciBmb3IgaW5saW5lcy4KICAgICAgICAgVmVjdG9yPEZsb2F0UXVhZD4gbGluZUJv
eFF1YWRzOwogICAgICAgICByZW5kZXJlci0+YWJzb2x1dGVRdWFkcyhsaW5lQm94UXVhZHMpOwpA
QCAtMjk2LDcgKzI5NSw3IEBAIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBOb2RlKiBub2RlLCBIaWdobGlnaHRNb2RlIG1vZGUpCiAgICAgaWYgKCFub2Rl
LT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNldHRpbmdzKiBzZXR0
aW5ncyA9IGNvbnRhaW5pbmdGcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBXZWJDb3JlOjpTZXR0aW5n
cyogc2V0dGluZ3MgPSBjb250YWluaW5nRnJhbWUtPnNldHRpbmdzKCk7CiAgICAgaWYgKG1vZGUg
PT0gRE9NTm9kZUhpZ2hsaWdodGVyOjpIaWdobGlnaHRBbGwpCiAgICAgICAgIGRyYXdFbGVtZW50
VGl0bGUoY29udGV4dCwgbm9kZSwgYm91bmRpbmdCb3gsIHRpdGxlQW5jaG9yQm94LCBvdmVybGF5
UmVjdCwgc2V0dGluZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDAyMWZk
ZmUxYTU5ZjRhNWE3OTllZDQwYjliMThhYmJhNjJkYTc0ZDkuLmFmYTYxZDdlYjdlYTJmNjljZGMx
MWFlOGQ1MjM4NzgwMTcwZmZjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI4
MTMsNDUgKzI4MTMsNiBAQCBJbnRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmlu
Z1ZpZXcoY29uc3QgSW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAogICAgIHJldHVybiBwYXJl
bnRQb2ludDsKIH0KIAotRmxvYXRRdWFkIEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihj
b25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFF1YWQmIHJlbmRlcmVyUXVh
ZCkgY29uc3QKLXsKLSAgICBib29sIHdhc0ZpeGVkID0gZmFsc2U7Ci0gICAgRmxvYXRRdWFkIHF1
YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChyZW5kZXJlclF1YWQsIGZhbHNlLCAm
d2FzRml4ZWQpOwotCi0gICAgaWYgKCF3YXNGaXhlZCkgewotICAgICAgICBJbnRQb2ludCBzY3Jv
bGwgPSBzY3JvbGxQb3NpdGlvbigpOwotICAgICAgICBxdWFkLm1vdmUoLXNjcm9sbC54KCksIC1z
Y3JvbGwueSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcXVhZDsKLX0KLQotRmxvYXRRdWFkIEZy
YW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1
YWQpIGNvbnN0Ci17Ci0gICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcg
PSBwYXJlbnQoKSkgewotICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZpZXco
KSkgewotICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyk7Ci0KLSAgICAgICAgICAgIC8v
IEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBhcmVudCB2aWV3LgotICAgICAgICAgICAgUmVuZGVy
UGFydCogcmVuZGVyZXIgPSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKQotICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFF1YWQ7Ci0KLSAgICAg
ICAgICAgIC8vIEFkZCBib3JkZXJzIGFuZCBwYWRkaW5nLgotICAgICAgICAgICAgRmxvYXRRdWFk
IHF1YWQobG9jYWxRdWFkKTsKLSAgICAgICAgICAgIHF1YWQubW92ZShyZW5kZXJlci0+Ym9yZGVy
TGVmdCgpICsgcmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksCi0gICAgICAgICAgICAgICAgICAgICAg
cmVuZGVyZXItPmJvcmRlclRvcCgpICsgcmVuZGVyZXItPnBhZGRpbmdUb3AoKSk7Ci0KLSAgICAg
ICAgICAgIC8vIEFwcGx5IHRoZSBwYXJlbnQncyB0cmFuc2Zvcm1zIGFuZCBzY3JvbGwgb2Zmc2V0
LgotICAgICAgICAgICAgcmV0dXJuIHBhcmVudFZpZXctPmNvbnZlcnRGcm9tUmVuZGVyZXIocmVu
ZGVyZXIsIHF1YWQpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIFdpZGdldDo6Y29udmVy
dFRvQ29udGFpbmluZ1ZpZXcobG9jYWxRdWFkKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbG9jYWxR
dWFkOwotfQotCiAvLyBOb3JtYWwgZGVsYXkKIHZvaWQgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhy
b3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KGRvdWJsZSBwKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKaW5kZXggZTMxN2Y4ZmJmOWZmZTE3OWNhMDY0YWE2N2ViYjcyYWI4YmQzMzUwNy4uZTQ5
NTQyMDA5NTZlYWFmNDdmNThmZDU5OTZmNTAwZWM3OTY3ZTViMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC0yNjAsMTAgKzI2MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEludFBvaW50
IGNvbnZlcnRGcm9tUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQm
KSBjb25zdDsKICAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRUb1JlbmRlcmVyKGNvbnN0IFJl
bmRlck9iamVjdCosIGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAKLSAgICAvLyBDb252ZXJzaW9u
IHdpdGggRmxvYXRRdWFkcywgdG8ga2VlcCB0cmFuc2Zvcm1lZCBjb29yZGluYXRlcy4KLSAgICB2
aXJ0dWFsIEZsb2F0UXVhZCBjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCos
IGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OwotICAgIHZpcnR1YWwgRmxvYXRRdWFkIGNvbnZlcnRU
b0NvbnRhaW5pbmdWaWV3KGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OwotCiAgICAgYm9vbCBpc0Zy
YW1lVmlld1Njcm9sbENvcm5lcihSZW5kZXJTY3JvbGxiYXJQYXJ0KiBzY3JvbGxDb3JuZXIpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29ybmVyID09IHNjcm9sbENvcm5lcjsgfQogCiAgICAgdm9p
ZCBjYWxjdWxhdGVTY3JvbGxiYXJNb2Rlc0ZvckxheW91dChTY3JvbGxiYXJNb2RlJiBoTW9kZSwg
U2Nyb2xsYmFyTW9kZSYgdk1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmlu
ZGV4IDg2YTJjMzI3ZmU0YmFjZjVjYmNhYjQ2ZGI3M2JlMjE5NGVlYjAwZDkuLjYwZTMwZWYxMWM4
NTYxNjcyOGIyOGJhNjA0MDUzMGQzNTk3OGE0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpZm5kZWYgU2Nyb2xsVmlld19oCiAjZGVmaW5l
IFNjcm9sbFZpZXdfaAogCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgi
CkBAIC0yNTcsMTYgKzI1Niw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG5ld1BvaW50Owog
ICAgIH0KIAotICAgIEZsb2F0UXVhZCBjb252ZXJ0Q2hpbGRUb1NlbGYoY29uc3QgV2lkZ2V0KiBj
aGlsZCwgY29uc3QgRmxvYXRRdWFkJiBxdWFkKSBjb25zdAotICAgIHsKLSAgICAgICAgSW50UG9p
bnQgcG9pbnQgPSBxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkubG9jYXRpb24oKTsKLSAgICAg
ICAgSW50UG9pbnQgbmV3UG9pbnQgPSBjb252ZXJ0Q2hpbGRUb1NlbGYoY2hpbGQsIHBvaW50KTsK
LQotICAgICAgICBGbG9hdFF1YWQgbmV3UXVhZCA9IHF1YWQ7Ci0gICAgICAgIG5ld1F1YWQubW92
ZShuZXdQb2ludC54KCksIG5ld1BvaW50LnkoKSk7Ci0gICAgICAgIHJldHVybiBuZXdRdWFkOwot
ICAgIH0KLQogICAgIC8vIFdpZGdldCBvdmVycmlkZS4gSGFuZGxlcyBwYWludGluZyBvZiB0aGUg
Y29udGVudHMgb2YgdGhlIHZpZXcgYXMgd2VsbCBhcyB0aGUgc2Nyb2xsYmFycy4KICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZv
aWQgcGFpbnRTY3JvbGxiYXJzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCmluZGV4IDVhYzY0MmMwZDljZTY4MDk2NmFlOGUwY2I2
YTdlODdkNmRkMWQ5NTIuLjlhOTgwYzBjZmNlZDdlODE4NTM4MDk1NzIxNjY0ZGE2NDI1MDAyMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmNwcApAQCAtMTY4LDIzICsxNjgsNiBAQCBJbnRQ
b2ludCBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmIHBh
cmVudFBvaW50KSBjb25zdAogICAgIHJldHVybiBwYXJlbnRQb2ludDsKIH0KIAotRmxvYXRRdWFk
IFdpZGdldDo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1
YWQpIGNvbnN0Ci17Ci0gICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcg
PSBwYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIHBhcmVudFNjcm9sbFZpZXctPmNvbnZlcnRDaGls
ZFRvU2VsZih0aGlzLCBsb2NhbFF1YWQpOwotCi0gICAgcmV0dXJuIGxvY2FsUXVhZDsKLX0KLQot
RmxvYXRRdWFkIFdpZGdldDo6Y29udmVydFRvUm9vdENvbnRhaW5pbmdWaWV3KGNvbnN0IEZsb2F0
UXVhZCYgbG9jYWxRdWFkKSBjb25zdAotewotICAgIGlmICghcGFyZW50KCkpCi0gICAgICAgIHJl
dHVybiBsb2NhbFF1YWQ7Ci0KLSAgICBGbG9hdFF1YWQgY29udGFpbmluZ1F1YWQgPSBjb252ZXJ0
VG9Db250YWluaW5nVmlldyhsb2NhbFF1YWQpOwotICAgIHJldHVybiBwYXJlbnQoKS0+Y29udmVy
dFRvUm9vdENvbnRhaW5pbmdWaWV3KGNvbnRhaW5pbmdRdWFkKTsKLX0KLQogI2lmICFQTEFURk9S
TShFRkwpCiB2b2lkIFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9XaWRnZXQuaAppbmRleCAyNmFhYTFhZGJkM2EyNWE0NmQzMjIxYTRiODZkN2JlYTJjN2U1YTNm
Li4zYWY1MGU0MjIyMDMxMGE2NzE2ZWVkYjc4NzFiZTI3ZTcwM2ExMGE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9XaWRnZXQuaApAQCAtMjcsNyArMjcsNiBAQAogI2lmbmRlZiBXaWRnZXRfaAogI2RlZmlu
ZSBXaWRnZXRfaAogCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
QEAgLTI1NCwxMCArMjUzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVy
dFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIElu
dFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
IAotICAgIC8vIENvbnZlcnNpb24gd2l0aCBGbG9hdFF1YWRzLCB0byBrZWVwIHRyYW5zZm9ybWVk
IGNvb3JkaW5hdGVzLgotICAgIHZpcnR1YWwgRmxvYXRRdWFkIGNvbnZlcnRUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OwotICAgIHZpcnR1YWwgRmxvYXRRdWFkIGNvbnZl
cnRUb1Jvb3RDb250YWluaW5nVmlldyhjb25zdCBGbG9hdFF1YWQmKSBjb25zdDsKLQogICAgIC8v
IEEgbWVhbnMgdG8gYWNjZXNzIHRoZSBBWCBjYWNoZSB3aGVuIHRoaXMgb2JqZWN0IGNhbiBnZXQg
YSBwb2ludGVyIHRvIGl0LgogICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNo
ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKaW5kZXggYTVlOTA5OTYwMDkwZTA0MzBlZTFlOWNhMzdhMWNiNjIwNTJmZThkNC4u
YTgxMTY5NGRmNmExOGQ3MDZiZDc1ZTQ2MDE4ZDQxMmYxZTU4YjRhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTEyMDMsNyArMTIwMyw3IEBAIGludCBSZW5kZXJC
b3g6OnBlcnBlbmRpY3VsYXJDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAg
ICByZXR1cm4gY2ItPmNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0
TGVuZ3RoLnZhbHVlKCkpOwogfQogCi12b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9v
bCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJh
bnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAogewogICAgIGlm
IChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKQEAgLTEyMzMsOCAr
MTIzMyw2IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sCiAgICAgICAgIGZpeGVkICY9IGlzRml4
ZWRQb3M7CiAgICAgfSBlbHNlCiAgICAgICAgIGZpeGVkIHw9IGlzRml4ZWRQb3M7Ci0gICAgaWYg
KHdhc0ZpeGVkKQotICAgICAgICAqd2FzRml4ZWQgPSBmaXhlZDsKICAgICAKICAgICBMYXlvdXRT
aXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91
dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKICAgICAKQEAgLTEyNTQsNyAr
MTI1Miw3IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhl
ZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKKyAgICBvLT5tYXBM
b2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0
cmFuc2Zvcm1TdGF0ZSk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBm
Mjk1ODQ3NWYyZTYxNGNlYjY3YjExNThlYjRkZDNhNjhkNmQ3ZjMzLi5kODUzZTk1ZTI3NGIxZjc3
MzA2MjU4OTRlOTY3MWQ4NDBjNDVjMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCkBAIC00MjgsNyArNDI4LDcgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDb21wdXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBpc1JlcGxhY2Vk
KCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiwgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwg
Ym9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9y
bXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICB2b2lkIHBhaW50Um9vdEJveEZpbGxM
YXllcnMoY29uc3QgUGFpbnRJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCmluZGV4IDMzNjgxZTEwZDI2ZDQ1YmVmNGE2ZDg4NDMxYmYxZWViM2E1YWZhYTEu
LmQ1NDA5NmNlZTAyZGViNjM2ZDAwNGFjMzNmYzZjNWM0MWFjNTc1NjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC0xMTA5LDcgKzExMDksNyBAQCBMYXlv
dXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIGNv
bnRhaW5lciwgY29uc3QgTGF5bwogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgUmVuZGVy
SW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlcklubGlu
ZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTE1Miw3ICsxMTUyLDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6
Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWlu
ZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRl
LCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwogfQogCiB2b2lkIFJlbmRl
cklubGluZTo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFu
c2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5kZXggN2MwYjczOGZkOTA0Y2I1NGFiZWRlODQz
NTgzZWJkODI2OTYwNDY5Ni4uYjlhN2I4MTdjZWM2YzVlNTZmMDcyNjg4N2MwZDg5NjMwODIzODBh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTMwLDcgKzEz
MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGludCBvdXRsaW5l
V2lkdGgpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQp
OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOWVkYjM0
YTEwNzE2YTM2YTNiNjc2N2NhN2UyYjNiYzExNGE1YWFiNS4uODU4NzlmMmVmYTdiZjQ5NjZjMDY3
ZWY0YTI5NGFlNzE4MjBiNDI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKQEAgLTE4NDgsNyArMTg0OCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0Ojph
YnNvbHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQb2ludCYgY29udGFpbmVyUG9pbnQsIGJvb2wKICAg
ICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclBvaW50KCk7CiB9CiAKLXZvaWQgUmVu
ZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlck9i
amVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhp
cykKICAgICAgICAgcmV0dXJuOwpAQCAtMTg2OSw3ICsxODY5LDcgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGIKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUoLXRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZz
ZXQoKSk7CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZp
eGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOworICAgIG8tPm1h
cExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMs
IHRyYW5zZm9ybVN0YXRlKTsKIH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9M
b2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlKSBjb25zdApAQCAtMTkyMCwxMiArMTkyMCwxMiBAQCB2b2lkIFJlbmRl
ck9iamVjdDo6Z2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIGNv
bnRhaW5lck9iamVjdAogI2VuZGlmCiB9CiAKLUZsb2F0UXVhZCBSZW5kZXJPYmplY3Q6OmxvY2Fs
VG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYgbG9jYWxRdWFkLCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0CitGbG9hdFF1YWQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBG
bG9hdFF1YWQmIGxvY2FsUXVhZCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gVHJhY2sgdGhlIHBvaW50IGF0IHRoZSBj
ZW50ZXIgb2YgdGhlIHF1YWQncyBib3VuZGluZyBib3guIEFzIG1hcExvY2FsVG9Db250YWluZXIo
KSBjYWxscyBvZmZzZXRGcm9tQ29udGFpbmVyKCksCiAgICAgLy8gaXQgd2lsbCB1c2UgdGhhdCBw
b2ludCBhcyB0aGUgcmVmZXJlbmNlIHBvaW50IHRvIGRlY2lkZSB3aGljaCBjb2x1bW4ncyB0cmFu
c2Zvcm0gdG8gYXBwbHkgaW4gbXVsdGlwbGUtY29sdW1uIGJsb2Nrcy4KICAgICBUcmFuc2Zvcm1T
dGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rp
b24sIGxvY2FsUXVhZC5ib3VuZGluZ0JveCgpLmNlbnRlcigpLCAmbG9jYWxRdWFkKTsKLSAgICBt
YXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB0cnVlLCB0cmFuc2Zv
cm1TdGF0ZSwgd2FzRml4ZWQpOworICAgIG1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRh
aW5lciwgZml4ZWQsIHRydWUsIHRyYW5zZm9ybVN0YXRlKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5m
bGF0dGVuKCk7CiAgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJRdWFk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggYzc5NmY0MTZj
ZTdhMTU2MmI3MjY0NjM3NDJhMDI2N2IyY2RjNDk3Yi4uN2Y3ODJhYTczMTJlNDM5NzE2NGYwNTNl
MGI0OGE4Y2NjMjI3YWZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aApAQCAtNTc5LDEyICs1NzksMTIgQEAgcHVibGljOgogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVU
b0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlVHJh
bnNmb3JtcyA9IGZhbHNlKSBjb25zdDsKIAogICAgIC8vIENvbnZlcnQgYSBsb2NhbCBxdWFkIHRv
IGFic29sdXRlIGNvb3JkaW5hdGVzLCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuCi0g
ICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBi
b29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QKKyAgICBGbG9hdFF1
YWQgbG9jYWxUb0Fic29sdXRlUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGJvb2wgZml4ZWQg
PSBmYWxzZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVh
ZChxdWFkLCAwLCBmaXhlZCwgd2FzRml4ZWQpOworICAgICAgICByZXR1cm4gbG9jYWxUb0NvbnRh
aW5lclF1YWQocXVhZCwgMCwgZml4ZWQpOwogICAgIH0KICAgICAvLyBDb252ZXJ0IGEgbG9jYWwg
cXVhZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0cmFu
c2Zvcm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQo
Y29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9h
dFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Q7CiAK
ICAgICAvLyBSZXR1cm4gdGhlIG9mZnNldCBmcm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJlciAo
ZXhjbHVkaW5nIHRyYW5zZm9ybXMpLiBJbiBtdWx0aS1jb2x1bW4gbGF5b3V0LAogICAgIC8vIGRp
ZmZlcmVudCBvZmZzZXRzIGFwcGx5IGF0IGRpZmZlcmVudCBwb2ludHMsIHNvIHJldHVybiB0aGUg
b2Zmc2V0IHRoYXQgYXBwbGllcyB0byB0aGUgZ2l2ZW4gcG9pbnQuCkBAIC03NzEsNyArNzcxLDcg
QEAgcHVibGljOgogCiAgICAgLy8gTWFwIHBvaW50cyBhbmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50
cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0
byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UKICAgICAvLyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1
dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4KLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VU
cmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0g
MCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBm
aXhlZCwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1
dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1T
dGF0ZSYpIGNvbnN0OwogCiAgICAgYm9vbCBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVy
KGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA5NmEwM2JhZWI1MTg1OTJmYjBlZjc3MDhhZDA4YTJk
YjI0NDcyZDhmLi41ODQ0NDJhMWY0NWJmNjFmYzkwNjM4ZDljOWY3Mjc2NWJhMDg1OWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0xMzYsMTIgKzEzNiwxMSBA
QCB2b2lkIFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwog
fQogCi12b2lkIFJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3Zv
aWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgLy8gSWYgYSBjb250YWluZXIg
d2FzIHNwZWNpZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVyVmlldywKICAgICAvLyB0
aGVuIHdlIHNob3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KICAgICBBU1NFUlRfQVJHKHJlcGFp
bnRDb250YWluZXIsICFyZXBhaW50Q29udGFpbmVyIHx8IHJlcGFpbnRDb250YWluZXIgPT0gdGhp
cyk7Ci0gICAgQVNTRVJUX1VOVVNFRCh3YXNGaXhlZCwgIXdhc0ZpeGVkIHx8ICp3YXNGaXhlZCA9
PSBmaXhlZCk7CiAKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgdXNlVHJhbnNmb3JtcyAm
JiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDApKSB7CiAgICAgICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA0
MGYyZWRiNGZlZDAyYWY5ZWRkZTU1MWZjY2M4OTk5ZjE0NjhjMjg4Li4yOTUwNGVkMTAwN2VjOTYx
ODdjMTYwNTgzOGE1NmFhYmViMTFkYWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgSW50UmVjdCBkb2N1bWVudFJl
Y3QoKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRy
YW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQgPSAw
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZp
eGVkLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0
YXRlJikgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAppbmRleCA3YzQyOTZjZWMxZDM2
OGI2YTRhMmQzYWM1MzgyNDkzNDgwY2I5OGI3Li40YjUzY2YzNDc0NGE0MTM5MGU4YWYzOWVkZWY3
ZmYzZjdjYThiYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKQEAgLTE1OSwxMiArMTU5LDEyIEBAIGJvb2wg
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5k
ZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKICAgICAvLyBXaGVuIGNyYXds
aW5nIHVwIHRoZSBoaWVyYWNoeSBzdGFydGluZyBmcm9tIGZvcmVpZ25PYmplY3QgY2hpbGQgY29u
dGVudCwgdXNlVHJhbnNmb3JtcyBtYXkgbm90IGJlIHNldCB0byB0cnVlLgogICAgIGlmICghdXNl
VHJhbnNmb3JtcykKICAgICAgICAgdXNlVHJhbnNmb3JtcyA9IHRydWU7Ci0gICAgU1ZHUmVuZGVy
U3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCBmaXhl
ZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5k
ZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZp
eGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKaW5k
ZXggN2Y2ZWRjMDhmNDJlNDdhYzgwMWRlNzM0MzgwNWRlMTg1ZDBmZDA0Yy4uNWJmNjQ0OTNlMjlm
OGI0NjBkZDJlNWRjNmRmMDdlNmI5MjljNzNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKQEAgLTUzLDcgKzUzLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdGb3JlaWduT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jt
cywgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBib29sIGZpeGVkICwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsg
bV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCAzYTdkNzJh
ZmQ5NzdhZDA3NWU5MzU2MGRhZWM5MDM5NjM1OWNlMGIwLi5lZThmMTFhYjJkMTZmNjQwNTAwMjJm
NzRiMDI1ZjA2NWQyMzNiZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBAIC03Nyw5ICs3Nyw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5s
aW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHRoaXMs
IHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVy
U1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNW
R0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0
ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9j
YWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB1c2VUcmFuc2Zvcm1zLCBmaXhl
ZCwgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBM
b2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHVzZVRyYW5zZm9ybXMsIGZp
eGVkLCB0cmFuc2Zvcm1TdGF0ZSk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjphYnNvbHV0
ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IGFiMWM4NmZlNTAzN2JlN2IzMTExN2M3
MzhlN2ZhZWYzZmY5NWI4NjQuLjc1MTcxNjM1ZjY0NWVmMDhiNmRjNDM2OGVmYWI0NGIwNzk4YTgz
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEludFJlY3QgY2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkID0gZmFs
c2UpOwotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQs
IFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+
Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IDdhODE0N2Y3ZDgxNWI5M2Q4MDYxMWQ0ODUz
MzI1YTEwODA0Yjc3Y2QuLjk0OGIwODQ2NWFmNGY1YmE4ZWMzYmNjMjEzZGM3MjQ5NjU1NTUwNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwCkBAIC01Myw5ICs1Myw5IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvCiAg
ICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRD
b250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBM
b2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zv
cm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1h
cExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5z
Zm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKIH0KIAogLy8gQ29waWVkIGZyb20gUmVuZGVyQm94LCB0
aGlzIG1ldGhvZCBsaWtlbHkgcmVxdWlyZXMgZnVydGhlciByZWZhY3RvcmluZyB0byB3b3JrIGVh
c2lseSBmb3IgYm90aCBTVkcgYW5kIENTUyBCb3ggTW9kZWwgY29udGVudC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCAx
ZDVkZjkzOTVhZmIyYmM1ZGM1NmIzOGYxZDJhMDIzN2Q5OTk5OTJiLi41YTE3MTQ5NGVjMjJmZjdm
OTQyZGYyNzcxYmNhYmE1ZjU2OTdkNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4mLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBh
YnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Ym9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3Jt
cywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0
eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHAKaW5kZXggMzA1NTdhYzczZDdkNGQ5NzdhZWRmNjM5ZGQzNjRhNTE5NDBhMGUxOC4uZTYw
MWE1ODIzZjc3MDVhZTJjYzA1N2U2NzYyMTMxOTE5OWRhNTU5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC00MTUsMTQgKzQxNSwxNCBA
QCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcgogICAgIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5k
ZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIGZpeGVkICwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1T
dGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFmaXhlZCk7IC8vIFdl
IHNob3VsZCBoYXZlIG5vIGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4K
ICAgICBBU1NFUlQodXNlVHJhbnNmb3Jtcyk7IC8vIG1hcHBpbmcgYSBwb2ludCB0aHJvdWdoIFNW
RyB3L28gcmVzcGVjdGluZyB0cmFzbmZvcm1zIGlzIHVzZWxlc3MuCiAKICAgICAvLyBUcmFuc2Zv
cm0gdG8gb3VyIGJvcmRlciBib3ggYW5kIGxldCBSZW5kZXJCb3ggdHJhbnNmb3JtIHRoZSByZXN0
IG9mIHRoZSB3YXkuCiAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0obG9jYWxUb0Jv
cmRlckJveFRyYW5zZm9ybSgpKTsKLSAgICBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlLCB3
YXNGaXhlZCk7CisgICAgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250
YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CiB9CiAKIHZvaWQg
UmVuZGVyU1ZHUm9vdDo6dXBkYXRlQ2FjaGVkQm91bmRhcmllcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDVjMWI4OTUzNWM3ZDI1MzRjMTQ3
NTA1ZmNlMTFmNWYxN2IxMjY3MWIuLjAxMWY1NjRhZDNjZGE5NDY0MmYzOWFlOWVjMDE5MTc1ZDVm
MDE0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5o
CkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBm
aXhlZCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZp
eGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3Rh
dGUmKSBjb25zdDsKIAogICAgIHZvaWQgY2FsY1ZpZXdwb3J0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IGEwYjJiMjljOWE2Y2Uy
MjA1NzdkMzJhM2NmMTZjZTg3NmM3OTljNDAuLmIzMmNlNGQxMzhmNjMxZDk3YjJkY2NhMTE2ZjUw
MjNlMDdhMTJmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0LmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVS
ZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcgogICAg
IFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29u
dGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6Om1h
cExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9v
bCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0
aGlzLCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3Rh
dGUsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1T
dGF0ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCByZWN1cnNpdmVVcGRhdGVTY2FsZWRGb250
KFJlbmRlck9iamVjdCogc3RhcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVGV4dC5oCmluZGV4IGQ5OTc5ZjI5ZmQ3OTBmNWUwZjJmMmVlMzJhOGE2ODdhYzUyZDlh
NjIuLjQ2N2YyYmJlNmYyNDQwNTBmYjY2M2QwNmI5MmQ2YmRiNDM1NTc3NTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC02NSw3ICs2NSw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBJbnRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiwg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VU
cmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBmcmFtZVJl
Y3QoKTsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBv
cnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cAppbmRleCA0OTMzNjA4YjgyNjYwNWFhYTJiOTMzMWIzM2JhNjhkMDI1MmVmYWQwLi5kZDZhMjlk
YTE0MzE3YmM0YjgxMWM2Zjg1MzFkMWE2ZWZkNzBhYmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTcwLDEyICs3MCwxMiBA
QCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJPYmpl
Y3QqIG9iamVjdCwgUmVuZGVyQm94TW9kZQogICAgIG9iamVjdC0+cGFyZW50KCktPmNvbXB1dGVS
ZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQog
Ci12b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVy
T2JqZWN0KiBvYmplY3QsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBi
b29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSwgYm9vbCogd2FzRml4ZWQpCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckJveE1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkICwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpCiB7CiAgICAgQVNTRVJUKCFmaXhlZCk7IC8vIFdl
IHNob3VsZCBoYXZlIG5vIGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4K
ICAgICBBU1NFUlQodXNlVHJhbnNmb3Jtcyk7IC8vIE1hcHBpbmcgYSBwb2ludCB0aHJvdWdoIFNW
RyB3L28gcmVzcGVjdGluZyB0cmFuc2Zvcm1zIGlzIHVzZWxlc3MuCiAgICAgdHJhbnNmb3JtU3Rh
dGUuYXBwbHlUcmFuc2Zvcm0ob2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwotICAg
IG9iamVjdC0+cGFyZW50KCktPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwg
Zml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CisgICAgb2Jq
ZWN0LT5wYXJlbnQoKS0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhl
ZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwogfQogCiBib29sIFNWR1JlbmRlclN1
cHBvcnQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIFBh
aW50SW5mbyYgcGFpbnRJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaAppbmRleCBiODNlNmI4MjgwOTdiODViMzk1NDVlNjE5NGFjNjg0MDY1
ZWNiNGRiLi45ZTZhYTVjMjAzNTY4ZTgzNThiM2U0ZjAyOTVhNWY5ZWY1MGM1ZTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaApAQCAtNjMs
NyArNjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW1wb3J0YW50IGZ1bmN0aW9ucyB1c2VkIGJ5IG5l
YXJseSBhbGwgU1ZHIHJlbmRlcmVycyBjZW50cmFsaXppbmcgY29vcmRpbmF0ZSB0cmFuc2Zvcm1h
dGlvbnMgLyByZXBhaW50IHJlY3QgY2FsY3VsYXRpb25zCiAgICAgc3RhdGljIEludFJlY3QgY2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVSZWN0Rm9y
UmVwYWludChSZW5kZXJPYmplY3QqLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgSW50UmVjdCYsIGJvb2wgZml4ZWQpOwotICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3Rh
dGUmLCBib29sKiB3YXNGaXhlZCA9IDApOworICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUm
KTsKIAogICAgIC8vIFNoYXJlZCBiZXR3ZWVuIFNWRyByZW5kZXJlcnMgYW5kIHJlc291cmNlcy4K
ICAgICBzdGF0aWMgdm9pZCBhcHBseVN0cm9rZVN0eWxlVG9Db250ZXh0KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgUmVuZGVyT2JqZWN0Kik7Cg==
</data>
<flag name="review"
          id="94923"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>