<?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>45922</bug_id>
          
          <creation_ts>2010-09-16 15:12:41 -0700</creation_ts>
          <short_desc>Remove scroll and clip layers for WKCACFLayerRenderer</short_desc>
          <delta_ts>2010-09-20 06:46:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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>
          <dependson>45931</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>aroben</cc>
    
    <cc>cmarrin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280384</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-16 15:12:41 -0700</bug_when>
    <thetext>The scroll and clip layers in WKCACFLayerRenderer are redundant now that RenderLayerCompositor has the same things (added for iframes, but also usable for Windows).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280501</commentid>
    <comment_count>1</comment_count>
      <attachid>67874</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-16 18:30:39 -0700</bug_when>
    <thetext>Created attachment 67874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280502</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 18:33:41 -0700</bug_when>
    <thetext>Attachment 67874 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/win/WebView.cpp:2096:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280609</commentid>
    <comment_count>3</comment_count>
      <attachid>67874</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-17 04:53:44 -0700</bug_when>
    <thetext>Comment on attachment 67874
Patch

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

&gt; WebCore/page/Frame.cpp:883
&gt; +    GraphicsLayer* rootLayer = compositor-&gt;layerTreeAsTextRootLayer();

The name of this call is very confusing. I know you&apos;re trying to say that this is the root layer you would use when calling layerTreeAsText, but that seems awfully specific. Why not just combine the calls, naming it something like &apos;rootLayerTreeAsText()&apos; and have it return a string?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280624</commentid>
    <comment_count>4</comment_count>
      <attachid>67874</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-17 06:04:52 -0700</bug_when>
    <thetext>Comment on attachment 67874
Patch

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

&gt; WebCore/rendering/RenderLayerCompositor.cpp:1298
&gt;      // FIXME: eventually we should do this on other platforms too.
&gt;      if (!m_renderView-&gt;frameView()-&gt;platformWidget())
&gt;          return true;
&gt; -#endif
&gt; +#endif // PLATFORM(MAC)
&gt; +
&gt;      return false;
&gt; +#endif // PLATFORM(WIN)

Is Win vs. Mac the right distinction here? Why isn&apos;t the !m_renderView-&gt;frameView()-&gt;platformWidget() check sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280657</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-17 08:49:18 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Is Win vs. Mac the right distinction here? Why isn&apos;t the !m_renderView-&gt;frameView()-&gt;platformWidget() check sufficient?

On Windows we want to always return true.
On Mac we want to return true for iframes in WebKit1, and in WebKit2.
I think other platforms would be like windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280662</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-17 08:52:25 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Is Win vs. Mac the right distinction here? Why isn&apos;t the !m_renderView-&gt;frameView()-&gt;platformWidget() check sufficient?
&gt; 
&gt; On Windows we want to always return true.
&gt; On Mac we want to return true for iframes in WebKit1, and in WebKit2.
&gt; I think other platforms would be like windows.

Right. What I mean is that we want to do those things due to other choices that have been made on each platform (e.g., Mac returns false for iframes in WebKit1 because it uses NSScrollViews for them (I think)), not because of something intrinsic to each platform. So it seems inappropriate to be using PLATFORM macros. We should instead be detecting whatever the choices were that we&apos;ve made that require us to return a specific value.

I.e., is there a way we can write this so that if we somehow were to change WebKit1 on Mac not to use NSScrollViews for iframes, the code would do the right thing automatically? And vice-versa for Windows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280766</commentid>
    <comment_count>7</comment_count>
      <attachid>67927</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-17 11:45:45 -0700</bug_when>
    <thetext>Created attachment 67927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280768</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-17 11:47:03 -0700</bug_when>
    <thetext>Attachment 67927 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/win/WebView.cpp:2096:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280770</commentid>
    <comment_count>9</comment_count>
      <attachid>67927</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-17 11:56:08 -0700</bug_when>
    <thetext>Comment on attachment 67927
Patch

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

r=me with style fix

&gt; WebKit/win/WebView.cpp:2096
&gt; +            if (lParam != 0)

Style bot complained about this. Should be if (lParam)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280772</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-17 12:01:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67735</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280774</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-17 12:02:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67735</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281517</commentid>
    <comment_count>12</comment_count>
      <attachid>67927</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-20 06:46:08 -0700</bug_when>
    <thetext>Comment on attachment 67927
Patch

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

&gt; WebCore/rendering/RenderLayerCompositor.cpp:1299
&gt; +    // We need to handle our own scrolling if we&apos;re:
&gt; +    return !m_renderView-&gt;frameView()-&gt;platformWidget() // viewless (i.e. non-Mac, or Mac in WebKit2)
&gt; +        || attachment == RootLayerAttachedViaEnclosingIframe; // a composited iframe on Mac

Yay!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67874</attachid>
            <date>2010-09-16 18:30:39 -0700</date>
            <delta_ts>2010-09-17 11:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45922-20100916183038.patch</filename>
            <type>text/plain</type>
            <size>16177</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2ZlZjlmNzk3YmJiYTNiOTI1MTEyYzI0YTRiODAzMmVhZDc2OWRlYi4uYTRiMTBkZjM2YWY1MjE4
YjYzMWFiOWM4MTNiMzBhNzhkZGYyYWU4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxMC0wOS0xNiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc2Nyb2xsIGFuZCBjbGlwIGxheWVy
cyBmb3IgV0tDQUNGTGF5ZXJSZW5kZXJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU5MjIKKworICAgICAgICBXS0NBQ0ZMYXllclJlbmRlcmVyIG5v
IGxvbmdlciBuZWVkcyBpdHMgb3duIGxheWVycyBmb3IgbWFuYWdpbmcgc2Nyb2xsaW5nCisgICAg
ICAgIGFuZCBjbGlwcGluZywgYmVjYXVzZSBSZW5kZXJMYXllckNvbXBvc2l0b3IgcHJvdmlkZXMg
dGhpcyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6c2V0Um9vdENoaWxkTGF5ZXIpOiBS
ZW1vdmUgY2FsbCB0byBzZXRTY3JvbGxGcmFtZSgpLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6d25kUHJvYyk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwOiBSZW1vdmUg
cmVmZXJlbmNlcyB0byBzY3JvbGwgYW5kIGNsaXAgbGF5ZXJzCisgICAgICAgIChXZWJDb3JlOjpX
S0NBQ0ZMYXllclJlbmRlcmVyOjpXS0NBQ0ZMYXllclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OnNldFJvb3RDaGlsZExheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OmRlc3Ryb3lSZW5kZXJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRlcmVyOjpyZXNpemUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmg6CisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNTY3JvbGxMYXllcik6IE9uIFdpbmRvd3MsCisgICAgICAg
IGFsd2F5cyBzYXkgeWVzLgorCisyMDEwLTA5LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgogCiAg
ICAgICAgIEluIGxheWVyVHJlZUFzVGV4dCBvdXRwdXQsIGF2b2lkIHByaW50aW5nIHByb3BlcnRp
ZXMgd2hpY2ggaGF2ZSB0aGVpciBkZWZhdWx0IHZhbHVlcwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQppbmRleCBmYWIwMTE0YzFmNjIwNzQ4YjU4ODgzN2ZiMDIwYzFhYzkyMWMx
Zjc5Li5kMDQyNmIyYTM0ZjNmYThjNzU1OGEzMTU5ZmM3ZmI1YTQyNzUwNWMwCi0tLSBhL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtODgwLDcg
Kzg4MCw3IEBAIFN0cmluZyBGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKICAgICBpZiAo
Y29tcG9zaXRvci0+Y29tcG9zaXRpbmdMYXllclVwZGF0ZVBlbmRpbmcoKSkKICAgICAgICAgY29t
cG9zaXRvci0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKIAotICAgIEdyYXBoaWNzTGF5ZXIq
IHJvb3RMYXllciA9IGNvbXBvc2l0b3ItPnJvb3RQbGF0Zm9ybUxheWVyKCk7CisgICAgR3JhcGhp
Y3NMYXllciogcm9vdExheWVyID0gY29tcG9zaXRvci0+bGF5ZXJUcmVlQXNUZXh0Um9vdExheWVy
KCk7CiAgICAgaWYgKCFyb290TGF5ZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckNBQ0Yu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckNBQ0YuY3Bw
CmluZGV4IGUyYTNlMWRmMWIyMTQ1MzMyMzNkYjkyYWQzY2Q3Zjg5MDNmOTAwZTguLmRhZDVkYTFk
ZGI0NmI0OTRiODM4MzY4YmMyNzU2YTk1ZmYyNjJmODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJDQUNGLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xheWVyQ0FDRi5jcHAKQEAgLTQ0NywxNCArNDQ3
LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0FDRjo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29s
IHVzZVRpbGVkTGF5ZXIpCiAgICAgICAgIG1fbGF5ZXIgPSBXZWJMYXllcjo6Y3JlYXRlKFdLQ0FD
RkxheWVyOjpMYXllciwgdGhpcyk7CiAgICAgCiAgICAgbV91c2luZ1RpbGVkTGF5ZXIgPSB1c2VU
aWxlZExheWVyOwotCi0gICAgLy8gRklYTUU6IG5lZWQgdGhpcz8KLS8vICAgIGlmICh1c2VUaWxl
ZExheWVyKSB7Ci0vLyAgICAgICAgaWYgKEdyYXBoaWNzTGF5ZXI6OmNvbXBvc2l0aW5nQ29vcmRp
bmF0ZXNPcmllbnRhdGlvbigpID09IEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0
ZXNCb3R0b21VcCkKLS8vICAgICAgICAgICAgbV9sYXllci0+c2V0Q29udGVudHNHcmF2aXR5KFdL
Q0FDRkxheWVyOjpCb3R0b21MZWZ0KTsKLS8vICAgICAgICBlbHNlCi0vLyAgICAgICAgICAgIG1f
bGF5ZXItPnNldENvbnRlbnRzR3Jhdml0eShXS0NBQ0ZMYXllcjo6VG9wTGVmdCk7Ci0vLyAgICB9
CiAgICAgCiAgICAgbV9sYXllci0+YWRvcHRTdWJsYXllcnMob2xkTGF5ZXIuZ2V0KCkpOwogICAg
IGlmIChvbGRMYXllci0+c3VwZXJsYXllcigpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVu
V2luZG93LmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGU2NjRmMmE4
NTAyZWFhOTk2M2ZlNDU4Njg1NDY1ZWEwMGY2NGUxYjAuLjRhN2U0NWUzMDJmNmU0NDJiOWM2ZGFh
MDkxNzBkMTg2YWE1MmU4MmMKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAKQEAg
LTEwNyw3ICsxMDcsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6
OnNldFJvb3RDaGlsZExheWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5ZQogICAgIFdLQ0FDRkxheWVy
KiByb290TGF5ZXIgPSBtX3Jvb3RDaGlsZC0+cm9vdExheWVyKCk7CiAgICAgQ0dSZWN0IHJvb3RC
b3VuZHMgPSBtX3Jvb3RDaGlsZC0+cm9vdExheWVyKCktPmJvdW5kcygpOwogICAgIG1fcm9vdENo
aWxkLT5zZXRGcmFtZShyb290Qm91bmRzKTsKLSAgICBtX2xheWVyUmVuZGVyZXItPnNldFNjcm9s
bEZyYW1lKEludFBvaW50KHJvb3RCb3VuZHMub3JpZ2luKSwgSW50U2l6ZShyb290Qm91bmRzLnNp
emUpKTsKICAgICBtX3Jvb3RDaGlsZC0+c2V0QmFja2dyb3VuZENvbG9yKENHQ29sb3JHZXRDb25z
dGFudENvbG9yKGtDR0NvbG9yQmxhY2spKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgUmV0YWluUHRy
PENHQ29sb3JSZWY+IHJlZENvbG9yKEFkb3B0Q0YsIENHQ29sb3JDcmVhdGVHZW5lcmljUkdCKDEs
IDAsIDAsIDEpKTsKQEAgLTE2NSw3ICsxNjQsNiBAQCBMUkVTVUxUIE1lZGlhUGxheWVyUHJpdmF0
ZUZ1bGxzY3JlZW5XaW5kb3c6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQQog
ICAgICAgICAgICAgQ0dSZWN0IHJvb3RCb3VuZHMgPSBtX3Jvb3RDaGlsZC0+cm9vdExheWVyKCkt
PmJvdW5kcygpOwogICAgICAgICAgICAgbV9yb290Q2hpbGQtPnNldEZyYW1lKHJvb3RCb3VuZHMp
OwogICAgICAgICAgICAgbV9yb290Q2hpbGQtPnNldE5lZWRzTGF5b3V0KCk7Ci0gICAgICAgICAg
ICBtX2xheWVyUmVuZGVyZXItPnNldFNjcm9sbEZyYW1lKEludFBvaW50KHJvb3RCb3VuZHMub3Jp
Z2luKSwgSW50U2l6ZShyb290Qm91bmRzLnNpemUpKTsKICNlbmRpZgogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tD
QUNGTGF5ZXJSZW5kZXJlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
Q0ZMYXllclJlbmRlcmVyLmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4
IDM4ZDUyNGU0NjA5ZmRkMjNjYTE4YTc1NWU4YmRhNzUyNTRjYTA1ZjkuLjRmMzliMTM4ZGQyNTdi
ZGExNjEwMTIxODA1MWUzNjM3NzQ3OTUyZWQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJlci5jcHAKQEAgLTIyNiwxNSArMjI2LDExIEBAIFdL
Q0FDRkxheWVyUmVuZGVyZXI6OldLQ0FDRkxheWVyUmVuZGVyZXIoV0tDQUNGTGF5ZXJSZW5kZXJl
ckNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9taWdodEJl
QWJsZVRvQ3JlYXRlRGV2aWNlTGF0ZXIodHJ1ZSkKICAgICAsIG1fcm9vdExheWVyKFdLQ0FDRlJv
b3RMYXllcjo6Y3JlYXRlKHRoaXMpKQotICAgICwgbV9zY3JvbGxMYXllcihXS0NBQ0ZMYXllcjo6
Y3JlYXRlKFdLQ0FDRkxheWVyOjpMYXllcikpCi0gICAgLCBtX2NsaXBMYXllcihXS0NBQ0ZMYXll
cjo6Y3JlYXRlKFdLQ0FDRkxheWVyOjpMYXllcikpCiAgICAgLCBtX2NvbnRleHQoQWRvcHRDRiwg
Q0FDRkNvbnRleHRDcmVhdGUoMCkpCiAgICAgLCBtX3JlbmRlckNvbnRleHQoc3RhdGljX2Nhc3Q8
Q0FSZW5kZXJDb250ZXh0Kj4oQ0FDRkNvbnRleHRHZXRSZW5kZXJDb250ZXh0KG1fY29udGV4dC5n
ZXQoKSkpKQogICAgICwgbV9yZW5kZXJlcigwKQogICAgICwgbV9ob3N0V2luZG93KDApCiAgICAg
LCBtX3JlbmRlclRpbWVyKHRoaXMsICZXS0NBQ0ZMYXllclJlbmRlcmVyOjpyZW5kZXJUaW1lckZp
cmVkKQotICAgICwgbV9zY3JvbGxQb3NpdGlvbigwLCAwKQotICAgICwgbV9zY3JvbGxTaXplKDEs
IDEpCiAgICAgLCBtX2JhY2tpbmdTdG9yZURpcnR5KGZhbHNlKQogICAgICwgbV9tdXN0UmVzZXRM
b3N0RGV2aWNlQmVmb3JlUmVuZGVyaW5nKGZhbHNlKQogewpAQCAtMjUwLDE1ICsyNDYsOCBAQCBX
S0NBQ0ZMYXllclJlbmRlcmVyOjpXS0NBQ0ZMYXllclJlbmRlcmVyKFdLQ0FDRkxheWVyUmVuZGVy
ZXJDbGllbnQqIGNsaWVudCkKICAgICAvLyBTY3JvbGxpbmcgd2lsbCBhZmZlY3Qgb25seSB0aGUg
cG9zaXRpb24gb2YgdGhlIHNjcm9sbCBsYXllciB3aXRob3V0IGFmZmVjdGluZyB0aGUgYm91bmRz
LgogCiAgICAgbV9yb290TGF5ZXItPnNldE5hbWUoIldLQ0FDRkxheWVyUmVuZGVyZXIgcm9vdExh
eWVyIik7Ci0gICAgbV9jbGlwTGF5ZXItPnNldE5hbWUoIldLQ0FDRkxheWVyUmVuZGVyZXIgY2xp
cExheWVyIik7Ci0gICAgbV9zY3JvbGxMYXllci0+c2V0TmFtZSgiV0tDQUNGTGF5ZXJSZW5kZXJl
ciBzY3JvbGxMYXllciIpOwotCi0gICAgbV9yb290TGF5ZXItPmFkZFN1YmxheWVyKG1fY2xpcExh
eWVyKTsKLSAgICBtX2NsaXBMYXllci0+YWRkU3VibGF5ZXIobV9zY3JvbGxMYXllcik7Ci0gICAg
bV9jbGlwTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7CiAgICAgbV9yb290TGF5ZXItPnNl
dEFuY2hvclBvaW50KENHUG9pbnRNYWtlKDAsIDApKTsKLSAgICBtX3Njcm9sbExheWVyLT5zZXRB
bmNob3JQb2ludChDR1BvaW50TWFrZSgwLCAxKSk7Ci0gICAgbV9jbGlwTGF5ZXItPnNldEFuY2hv
clBvaW50KENHUG9pbnRNYWtlKDAsIDEpKTsKKyAgICBtX3Jvb3RMYXllci0+c2V0R2VvbWV0cnlG
bGlwcGVkKHRydWUpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIENHQ29sb3JSZWYgZGVidWdDb2xv
ciA9IGNyZWF0ZUNHQ29sb3IoQ29sb3IoMjU1LCAwLCAwLCAyMDQpKTsKQEAgLTI4NSwyNiArMjc0
LDYgQEAgV0tDQUNGTGF5ZXIqIFdLQ0FDRkxheWVyUmVuZGVyZXI6OnJvb3RMYXllcigpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOwogfQogCi12b2lkIFdLQ0FDRkxheWVyUmVu
ZGVyZXI6OnNldFNjcm9sbEZyYW1lKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKLXsKLSAgICBtX3Njcm9sbFNpemUgPSBzaXplOwotICAgIG1fc2Nyb2xsUG9z
aXRpb24gPSBwb3NpdGlvbjsKLQotICAgIHVwZGF0ZVNjcm9sbEZyYW1lKCk7Ci19Ci0KLXZvaWQg
V0tDQUNGTGF5ZXJSZW5kZXJlcjo6dXBkYXRlU2Nyb2xsRnJhbWUoKQotewotICAgIENHUmVjdCBm
cmFtZUJvdW5kcyA9IGJvdW5kcygpOwotICAgIG1fY2xpcExheWVyLT5zZXRCb3VuZHMoQ0dSZWN0
TWFrZSgwLCAwLCBtX3Njcm9sbFNpemUud2lkdGgoKSwgbV9zY3JvbGxTaXplLmhlaWdodCgpKSk7
Ci0gICAgbV9jbGlwTGF5ZXItPnNldFBvc2l0aW9uKENHUG9pbnRNYWtlKDAsIGZyYW1lQm91bmRz
LnNpemUuaGVpZ2h0KSk7Ci0gICAgaWYgKG1fcm9vdENoaWxkTGF5ZXIpIHsKLSAgICAgICAgQ0dS
ZWN0IHJvb3RCb3VuZHMgPSBtX3Jvb3RDaGlsZExheWVyLT5ib3VuZHMoKTsKLSAgICAgICAgbV9z
Y3JvbGxMYXllci0+c2V0Qm91bmRzKHJvb3RCb3VuZHMpOwotICAgIH0KLSAgICBtX3Njcm9sbExh
eWVyLT5zZXRQb3NpdGlvbihDR1BvaW50TWFrZSgtbV9zY3JvbGxQb3NpdGlvbi54KCksIG1fc2Ny
b2xsUG9zaXRpb24ueSgpICsgbV9zY3JvbGxTaXplLmhlaWdodCgpKSk7Ci19Ci0KIHZvaWQgV0tD
QUNGTGF5ZXJSZW5kZXJlcjo6c2V0Um9vdENvbnRlbnRzKENHSW1hZ2VSZWYgaW1hZ2UpCiB7CiAg
ICAgQVNTRVJUKG1fcm9vdExheWVyKTsKQEAgLTMyMSwxNyArMjkwLDEwIEBAIHZvaWQgV0tDQUNG
TGF5ZXJSZW5kZXJlcjo6c2V0Um9vdENvbnRlbnRzQW5kRGlzcGxheShDR0ltYWdlUmVmIGltYWdl
KQogCiB2b2lkIFdLQ0FDRkxheWVyUmVuZGVyZXI6OnNldFJvb3RDaGlsZExheWVyKFdLQ0FDRkxh
eWVyKiBsYXllcikKIHsKLSAgICBpZiAoIW1fc2Nyb2xsTGF5ZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fc2Nyb2xsTGF5ZXItPnJlbW92ZUFsbFN1YmxheWVycygpOworICAgIG1fcm9vdExh
eWVyLT5yZW1vdmVBbGxTdWJsYXllcnMoKTsKICAgICBtX3Jvb3RDaGlsZExheWVyID0gbGF5ZXI7
Ci0gICAgaWYgKGxheWVyKSB7Ci0gICAgICAgIGxheWVyLT5zZXRHZW9tZXRyeUZsaXBwZWQodHJ1
ZSk7Ci0gICAgICAgIG1fc2Nyb2xsTGF5ZXItPmFkZFN1YmxheWVyKGxheWVyKTsKLSAgICAgICAg
Ly8gQWRqdXN0IHRoZSBzY3JvbGwgZnJhbWUgYWNjb3JkaW5nbHkKLSAgICAgICAgdXBkYXRlU2Ny
b2xsRnJhbWUoKTsKLSAgICB9CisgICAgaWYgKG1fcm9vdENoaWxkTGF5ZXIpCisgICAgICAgIG1f
cm9vdExheWVyLT5hZGRTdWJsYXllcihtX3Jvb3RDaGlsZExheWVyKTsKIH0KICAgIAogdm9pZCBX
S0NBQ0ZMYXllclJlbmRlcmVyOjpsYXllclRyZWVEaWRDaGFuZ2UoKQpAQCAtNDM2LDggKzM5OCw2
IEBAIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6ZGVzdHJveVJlbmRlcmVyKCkKIAogICAgIHNf
ZDNkID0gMDsKICAgICBtX3Jvb3RMYXllciA9IDA7Ci0gICAgbV9jbGlwTGF5ZXIgPSAwOwotICAg
IG1fc2Nyb2xsTGF5ZXIgPSAwOwogICAgIG1fcm9vdENoaWxkTGF5ZXIgPSAwOwogCiAgICAgbV9t
aWdodEJlQWJsZVRvQ3JlYXRlRGV2aWNlTGF0ZXIgPSB0cnVlOwpAQCAtNDU1LDcgKzQxNSw2IEBA
IHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6cmVzaXplKCkKICAgICBpZiAobV9yb290TGF5ZXIp
IHsKICAgICAgICAgbV9yb290TGF5ZXItPnNldEJvdW5kcyhib3VuZHMoKSk7CiAgICAgICAgIFdL
Q0FDRkNvbnRleHRGbHVzaGVyOjpzaGFyZWQoKS5mbHVzaEFsbENvbnRleHRzKCk7Ci0gICAgICAg
IHVwZGF0ZVNjcm9sbEZyYW1lKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgKb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQppbmRleCAyNjQ3YzVmMzI0MTRlNWFjYWZhZmI1NjA1NmNlNzY1ODI0YzZm
ZmI5Li4xZDczYjk5MzNhMWQyNjVmZGY3ZjA0NzMwMjg0MDg4OGIwZTdmMzgyCi0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgKQEAgLTY2LDcg
KzY2LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdB
dmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGbHVzaENvbnRleHQoQ0FDRkNvbnRleHRS
ZWYpOwogCi0gICAgdm9pZCBzZXRTY3JvbGxGcmFtZShjb25zdCBJbnRQb2ludCYsIGNvbnN0IElu
dFNpemUmKTsKICAgICB2b2lkIHNldFJvb3RDb250ZW50cyhDR0ltYWdlUmVmKTsKICAgICB2b2lk
IHNldFJvb3RDb250ZW50c0FuZERpc3BsYXkoQ0dJbWFnZVJlZik7CiAgICAgdm9pZCBzZXRSb290
Q2hpbGRMYXllcihXS0NBQ0ZMYXllciogbGF5ZXIpOwpAQCAtNzgsNyArNzcsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkZXN0cm95UmVuZGVyZXIoKTsKICAgICB2b2lkIHJlc2l6ZSgpOwogICAgIHZv
aWQgcmVuZGVyU29vbigpOwotICAgIHZvaWQgdXBkYXRlU2Nyb2xsRnJhbWUoKTsKIAogcHJvdGVj
dGVkOgogICAgIFdLQ0FDRkxheWVyKiByb290TGF5ZXIoKSBjb25zdDsKQEAgLTEwNSwxNiArMTAz
LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21pZ2h0QmVBYmxlVG9DcmVhdGVEZXZpY2VMYXRl
cjsKICAgICBDT01QdHI8SURpcmVjdDNERGV2aWNlOT4gbV9kM2REZXZpY2U7CiAgICAgUmVmUHRy
PFdLQ0FDRlJvb3RMYXllcj4gbV9yb290TGF5ZXI7Ci0gICAgUmVmUHRyPFdLQ0FDRkxheWVyPiBt
X3Njcm9sbExheWVyOwogICAgIFJlZlB0cjxXS0NBQ0ZMYXllcj4gbV9yb290Q2hpbGRMYXllcjsK
LSAgICBSZWZQdHI8V0tDQUNGTGF5ZXI+IG1fY2xpcExheWVyOwogICAgIFJldGFpblB0cjxDQUNG
Q29udGV4dFJlZj4gbV9jb250ZXh0OwogICAgIENBUmVuZGVyQ29udGV4dCogbV9yZW5kZXJDb250
ZXh0OwogICAgIENBUmVuZGVyT0dMQ29udGV4dCogbV9yZW5kZXJlcjsKICAgICBIV05EIG1faG9z
dFdpbmRvdzsKICAgICBUaW1lcjxXS0NBQ0ZMYXllclJlbmRlcmVyPiBtX3JlbmRlclRpbWVyOwot
ICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBtX3Njcm9sbFNpemU7
CiAgICAgYm9vbCBtX2JhY2tpbmdTdG9yZURpcnR5OwogICAgIGJvb2wgbV9tdXN0UmVzZXRMb3N0
RGV2aWNlQmVmb3JlUmVuZGVyaW5nOwogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggNGJlYmIwODIwOTZjZGVjYTEyOTNhMTYwYjJjMjViMmZjNmNkMmE3Ny4uOTVmODc0
MTlhYjVlMjFiYzc2NjI5NDI2MGYxZDNlZjFjMGIyN2EyNQotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEyODEsNiArMTI4MSw5IEBAIGJvb2wgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpuZWVkc0NvbnRlbnRzQ29tcG9zaXRpbmdMYXllcihjb25zdCBSZW5kZXJM
YXllciogbGF5CiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc1Njcm9sbExh
eWVyKFJvb3RMYXllckF0dGFjaG1lbnQgYXR0YWNobWVudCkgY29uc3QKIHsKKyNpZiBQTEFURk9S
TShXSU4pCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQogICAgIGlmIChhdHRhY2htZW50ID09IFJv
b3RMYXllckF0dGFjaGVkVmlhRW5jbG9zaW5nSWZyYW1lKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IApAQCAtMTI4OSw4ICsxMjkyLDEwIEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1
aXJlc1Njcm9sbExheWVyKFJvb3RMYXllckF0dGFjaG1lbnQgYXR0YWNobWVudCkKICAgICAvLyBG
SVhNRTogZXZlbnR1YWxseSB3ZSBzaG91bGQgZG8gdGhpcyBvbiBvdGhlciBwbGF0Zm9ybXMgdG9v
LgogICAgIGlmICghbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+cGxhdGZvcm1XaWRnZXQoKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisK
ICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQogfQogCiB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZW5zdXJlUm9vdFBsYXRmb3JtTGF5ZXIoKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmluZGV4IGVlYWMyMDM2MzE4Y2IyNmE1ZWI1NjlkYWU0MDM3MzRmOGY0OTRiNjcuLmYw
NTRkODA5YzRhN2EwNDYwNDNlMDcyNTlkNjU3NGVjNDE1ZTljYzcKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAgICBS
ZW5kZXJMYXllciogcm9vdFJlbmRlckxheWVyKCkgY29uc3Q7CiAgICAgR3JhcGhpY3NMYXllciog
cm9vdFBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBHcmFwaGljc0xheWVyKiBsYXllclRyZWVB
c1RleHRSb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RQbGF0Zm9ybUxheWVyLmdldCgp
OyB9CiAKICAgICBlbnVtIFJvb3RMYXllckF0dGFjaG1lbnQgewogICAgICAgICBSb290TGF5ZXJV
bmF0dGFjaGVkLApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCA0MWI2ZmE5Mzk2ZmExY2UwNTFhZGU2ZjllZjUzYmM1ZmMxZjY2Mjdi
Li41ZTJkNzc0MzVlNjQ4ZmM2N2U3NzY5NTc5MWU2MzkwNTZmNTE1YWRjIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDEwLTA5LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBzY3JvbGwgYW5kIGNsaXAgbGF5ZXJzIGZvciBXS0NBQ0ZMYXllclJlbmRlcmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTkyMgorCisgICAgICAg
IFdLQ0FDRkxheWVyUmVuZGVyZXIgbm8gbG9uZ2VyIG5lZWRzIGl0cyBvd24gbGF5ZXJzIGZvciBt
YW5hZ2luZyBzY3JvbGxpbmcKKyAgICAgICAgYW5kIGNsaXBwaW5nLCBiZWNhdXNlIFJlbmRlckxh
eWVyQ29tcG9zaXRvciBwcm92aWRlcyB0aGlzIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNpemVDaGFuZ2VkKTogTW92ZWQgY29kZSB0
aGF0IGhhbmRsZXMgdGhlIFdNX1NJWkUgbWVzc2FnZQorICAgICAgICBpbnRvIHRoaXMgbWV0aG9k
LiBVc2UgaXQgdG8gcmVzaXplIHRoZSBsYXllciByZW5kZXJlci4KKyAgICAgICAgKFdlYlZpZXc6
OldlYlZpZXdXbmRQcm9jKTogQ2FsbCBzaXplQ2hhbmdlZCgpLgorICAgICAgICAoV2ViVmlldzo6
dXBkYXRlUm9vdExheWVyQ29udGVudHMpOiBObyBuZWVkIHRvIGNhbGwgc2V0U2Nyb2xsRnJhbWUo
KSBhbnkgbW9yZS4KKyAgICAgICAgKFdlYlZpZXc6OmxheWVyUmVuZGVyZXJCZWNhbWVWaXNpYmxl
KTogTW92ZSB0aGlzIGZyb20gdGhlIGhlYWRlciAobm8gbmVlZCB0byBiZSBpbmxpbmUpLgorICAg
ICAgICAqIFdlYlZpZXcuaDoKKwogMjAxMC0wOS0xNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTMwNDBmZWUyYjU3NjU3ODczOWUzMDhiODYz
ZWFkZWU0ODY1NjNkZS4uMTdjNjg2ZWZjZDdmNGMzMGNlN2UwODk1YzUwOWYyMmE2ZDM2YjIyNAot
LS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
QEAgLTg1NCw2ICs4NTQsMTkgQEAgdm9pZCBXZWJWaWV3OjpzY3JvbGxCYWNraW5nU3RvcmUoRnJh
bWVWaWV3KiBmcmFtZVZpZXcsIGludCBkeCwgaW50IGR5LCBjb25zdCBJbnQKICAgICA6OlJlbGVh
c2VEQyhtX3ZpZXdXaW5kb3csIHdpbmRvd0RDKTsKIH0KIAordm9pZCBXZWJWaWV3OjpzaXplQ2hh
bmdlZChjb25zdCBJbnRTaXplJiBuZXdTaXplKQoreworICAgIGRlbGV0ZUJhY2tpbmdTdG9yZSgp
OworCisgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRvcExldmVsRnJhbWUoKSkpCisg
ICAgICAgIGNvcmVGcmFtZS0+dmlldygpLT5yZXNpemUobmV3U2l6ZSk7CisKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKKyAgICAgICAg
bV9sYXllclJlbmRlcmVyLT5yZXNpemUoKTsKKyNlbmRpZgorfQorCiAvLyBUaGlzIGVtdWxhdGVz
IHRoZSBNYWMgc21hcnRzIGZvciBwYWludGluZyByZWN0cyBpbnRlbGxpZ2VudGx5LiAgVGhpcyBp
cyB2ZXJ5CiAvLyBpbXBvcnRhbnQgZm9yIHVzLCBzaW5jZSB3ZSBkb3VibGUgYnVmZmVyIGJhc2Vk
IG9mZiBkaXJ0eSByZWN0cy4KIHN0YXRpYyB2b2lkIGdldFVwZGF0ZVJlY3RzKEhSR04gcmVnaW9u
LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMpCkBAIC0y
MDgwLDE1ICsyMDkzLDggQEAgTFJFU1VMVCBDQUxMQkFDSyBXZWJWaWV3OjpXZWJWaWV3V25kUHJv
YyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBjaGVjayBXTV9VTklDSEFSIHRvIHN1
cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzICh0aGF0IGRvbid0IGZpdCBpbiAxNiBiaXRz
KS4KICAgICAgICAgY2FzZSBXTV9TSVpFOgotICAgICAgICAgICAgaWYgKGxQYXJhbSAhPSAwKSB7
Ci0gICAgICAgICAgICAgICAgd2ViVmlldy0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAgICAgIGlmICh3ZWJWaWV3LT5p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAgICAgICAgICAgd2ViVmlldy0+
cmVzaXplTGF5ZXJSZW5kZXJlcigpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKG1haW5GcmFtZUltcGwpKQotICAgICAgICAgICAgICAgICAgICBj
b3JlRnJhbWUtPnZpZXcoKS0+cmVzaXplKExPV09SRChsUGFyYW0pLCBISVdPUkQobFBhcmFtKSk7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobFBhcmFtICE9IDApCisgICAgICAgICAg
ICAgICAgd2ViVmlldy0+c2l6ZUNoYW5nZWQoSW50U2l6ZShMT1dPUkQobFBhcmFtKSwgSElXT1JE
KGxQYXJhbSkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdNX1NIT1dXSU5E
T1c6CiAgICAgICAgICAgICBsUmVzdWx0ID0gRGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3
UGFyYW0sIGxQYXJhbSk7CkBAIC02Mjc5LDE0ICs2Mjg1LDExIEBAIHZvaWQgV2ViVmlldzo6dXBk
YXRlUm9vdExheWVyQ29udGVudHMoKQogICAgICAgICBtX25leHREaXNwbGF5SXNTeW5jaHJvbm91
cyA9IGZhbHNlOwogICAgIH0gZWxzZQogICAgICAgICBtX2xheWVyUmVuZGVyZXItPnNldFJvb3RD
b250ZW50cyhiYWNraW5nU3RvcmVJbWFnZS5nZXQoKSk7Cit9CiAKLSAgICAvLyBTZXQgdGhlIGZy
YW1lIGFuZCBzY3JvbGwgcG9zaXRpb24KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX21h
aW5GcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBGcmFt
ZVZpZXcqIGZyYW1lVmlldyA9IGNvcmVGcmFtZS0+dmlldygpOwotCi0gICAgbV9sYXllclJlbmRl
cmVyLT5zZXRTY3JvbGxGcmFtZShJbnRQb2ludChmcmFtZVZpZXctPnNjcm9sbFgoKSwgZnJhbWVW
aWV3LT5zY3JvbGxZKCkpLCBJbnRTaXplKGZyYW1lVmlldy0+bGF5b3V0V2lkdGgoKSwgZnJhbWVW
aWV3LT5sYXlvdXRIZWlnaHQoKSkpOwordm9pZCBXZWJWaWV3OjpsYXllclJlbmRlcmVyQmVjYW1l
VmlzaWJsZSgpCit7CisgICAgbV9sYXllclJlbmRlcmVyLT5jcmVhdGVSZW5kZXJlcigpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5oIGIvV2ViS2l0L3dpbi9X
ZWJWaWV3LmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBhNDA2YzJlYzBi
NzllMGJhMTdhNzAxZWQxNmI5YTBhZDA4YzM1NTg3Li42MWViOTQ2Mzk2OGRlOTdkMWYzOWIzNzhk
OTVjNjlmOWE5NWRmMTkwCi0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1dlYktpdC93
aW4vV2ViVmlldy5oCkBAIC05MjEsNiArOTIxLDggQEAgcHJpdmF0ZToKICAgICBIUkVTVUxUIHJl
c2V0Wm9vbShib29sIGlzVGV4dE9ubHkpOwogICAgIGJvb2wgYWN0aXZlKCk7CiAKKyAgICB2b2lk
IHNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKwogICAgIGVudW0gV2luZG93
c1RvUGFpbnQgeyBQYWludFdlYlZpZXdPbmx5LCBQYWludFdlYlZpZXdBbmRDaGlsZHJlbiB9Owog
ICAgIHZvaWQgcGFpbnRJbnRvQmFja2luZ1N0b3JlKFdlYkNvcmU6OkZyYW1lVmlldyosIEhEQyBi
aXRtYXBEQywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0LCBXaW5kb3dzVG9QYWlu
dCk7CiAgICAgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoV2ViQ29yZTo6RnJhbWVWaWV3KiwgSERD
ID0gMCwgYm9vbCBiYWNraW5nU3RvcmVDb21wbGV0ZWx5RGlydHkgPSBmYWxzZSwgV2luZG93c1Rv
UGFpbnQgPSBQYWludFdlYlZpZXdPbmx5KTsKQEAgLTEwNDIsOCArMTA0NCw3IEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKGJvb2wpOwogICAgIHZvaWQgdXBkYXRlUm9vdExheWVyQ29udGVudHMoKTsKLSAgICB2
b2lkIHJlc2l6ZUxheWVyUmVuZGVyZXIoKSB7IG1fbGF5ZXJSZW5kZXJlci0+cmVzaXplKCk7IH0K
LSAgICB2b2lkIGxheWVyUmVuZGVyZXJCZWNhbWVWaXNpYmxlKCkgeyBtX2xheWVyUmVuZGVyZXIt
PmNyZWF0ZVJlbmRlcmVyKCk7IH0KKyAgICB2b2lkIGxheWVyUmVuZGVyZXJCZWNhbWVWaXNpYmxl
KCk7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6V0tDQUNGTGF5ZXJSZW5kZXJlcj4gbV9sYXllclJl
bmRlcmVyOwogICAgIGJvb2wgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67927</attachid>
            <date>2010-09-17 11:45:45 -0700</date>
            <delta_ts>2010-09-20 06:46:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45922-20100917114544.patch</filename>
            <type>text/plain</type>
            <size>17327</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2ZlZjlmNzk3YmJiYTNiOTI1MTEyYzI0YTRiODAzMmVhZDc2OWRlYi4uNDcyNTllNTE2NDQ2MjI3
OTdhNTE2NzZkMmExMzFkMTVmYmE3Yzc1ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOS0xNyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc2Nyb2xsIGFuZCBjbGlwIGxheWVy
cyBmb3IgV0tDQUNGTGF5ZXJSZW5kZXJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU5MjIKKworICAgICAgICBXS0NBQ0ZMYXllclJlbmRlcmVyIG5v
IGxvbmdlciBuZWVkcyBpdHMgb3duIGxheWVycyBmb3IgbWFuYWdpbmcgc2Nyb2xsaW5nCisgICAg
ICAgIGFuZCBjbGlwcGluZywgYmVjYXVzZSBSZW5kZXJMYXllckNvbXBvc2l0b3IgcHJvdmlkZXMg
dGhpcyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6c2V0Um9vdENoaWxkTGF5ZXIpOiBS
ZW1vdmUgY2FsbCB0byBzZXRTY3JvbGxGcmFtZSgpLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6d25kUHJvYyk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuY3BwOiBSZW1vdmUg
cmVmZXJlbmNlcyB0byBzY3JvbGwgYW5kIGNsaXAgbGF5ZXJzCisgICAgICAgIChXZWJDb3JlOjpX
S0NBQ0ZMYXllclJlbmRlcmVyOjpXS0NBQ0ZMYXllclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OnNldFJvb3RDaGlsZExheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI6OmRlc3Ryb3lSZW5kZXJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXS0NBQ0ZMYXllclJlbmRlcmVyOjpyZXNpemUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmg6CisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6bGF5ZXJUcmVlQXNUZXh0KTogRHVtcCB0aGUgbGF5ZXJzIGZyb20gdGhl
IHJvb3QgcGxhdGZvcm0gbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnJlcXVpcmVzU2Nyb2xsTGF5ZXIpOiBPbiBXaW5kb3dzLAorICAgICAgICBhbHdheXMg
c2F5IHllcy4KKwogMjAxMC0wOS0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZmFiMDExNGMxZjYyMDc0OGI1ODg4MzdmYjAy
MGMxYWM5MjFjMWY3OS4uZTE0ZjI2YzAyZGViMWZjMzljM2UyYWNhYmU4YmZlZmMyMzk5MjkzMQot
LS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
QEAgLTg3NiwxNSArODc2LDcgQEAgU3RyaW5nIEZyYW1lOjpsYXllclRyZWVBc1RleHQoKSBjb25z
dAogICAgIGlmICghY29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
IAotICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogY29tcG9zaXRvciA9IGNvbnRlbnRSZW5kZXJl
cigpLT5jb21wb3NpdG9yKCk7Ci0gICAgaWYgKGNvbXBvc2l0b3ItPmNvbXBvc2l0aW5nTGF5ZXJV
cGRhdGVQZW5kaW5nKCkpCi0gICAgICAgIGNvbXBvc2l0b3ItPnVwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzKCk7Ci0KLSAgICBHcmFwaGljc0xheWVyKiByb290TGF5ZXIgPSBjb21wb3NpdG9yLT5yb290
UGxhdGZvcm1MYXllcigpOwotICAgIGlmICghcm9vdExheWVyKQotICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0KLSAgICByZXR1cm4gcm9vdExheWVyLT5sYXllclRyZWVBc1RleHQoKTsKKyAgICBy
ZXR1cm4gY29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS0+bGF5ZXJUcmVlQXNUZXh0KCk7
CiAjZWxzZQogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckNBQ0YuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckNBQ0YuY3BwCmluZGV4IGUyYTNlMWRm
MWIyMTQ1MzMyMzNkYjkyYWQzY2Q3Zjg5MDNmOTAwZTguLmRhZDVkYTFkZGI0NmI0OTRiODM4MzY4
YmMyNzU2YTk1ZmYyNjJmODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0dyYXBoaWNzTGF5ZXJDQUNGLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0xheWVyQ0FDRi5jcHAKQEAgLTQ0NywxNCArNDQ3LDYgQEAgdm9pZCBHcmFw
aGljc0xheWVyQ0FDRjo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIp
CiAgICAgICAgIG1fbGF5ZXIgPSBXZWJMYXllcjo6Y3JlYXRlKFdLQ0FDRkxheWVyOjpMYXllciwg
dGhpcyk7CiAgICAgCiAgICAgbV91c2luZ1RpbGVkTGF5ZXIgPSB1c2VUaWxlZExheWVyOwotCi0g
ICAgLy8gRklYTUU6IG5lZWQgdGhpcz8KLS8vICAgIGlmICh1c2VUaWxlZExheWVyKSB7Ci0vLyAg
ICAgICAgaWYgKEdyYXBoaWNzTGF5ZXI6OmNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlv
bigpID09IEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNCb3R0b21VcCkKLS8v
ICAgICAgICAgICAgbV9sYXllci0+c2V0Q29udGVudHNHcmF2aXR5KFdLQ0FDRkxheWVyOjpCb3R0
b21MZWZ0KTsKLS8vICAgICAgICBlbHNlCi0vLyAgICAgICAgICAgIG1fbGF5ZXItPnNldENvbnRl
bnRzR3Jhdml0eShXS0NBQ0ZMYXllcjo6VG9wTGVmdCk7Ci0vLyAgICB9CiAgICAgCiAgICAgbV9s
YXllci0+YWRvcHRTdWJsYXllcnMob2xkTGF5ZXIuZ2V0KCkpOwogICAgIGlmIChvbGRMYXllci0+
c3VwZXJsYXllcigpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcApvbGQg
bW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGU2NjRmMmE4NTAyZWFhOTk2M2ZlNDU4
Njg1NDY1ZWEwMGY2NGUxYjAuLjRhN2U0NWUzMDJmNmU0NDJiOWM2ZGFhMDkxNzBkMTg2YWE1MmU4
MmMKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
RnVsbHNjcmVlbldpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAKQEAgLTEwNyw3ICsxMDcsNiBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6OnNldFJvb3RDaGlsZExh
eWVyKFBhc3NSZWZQdHI8V0tDQUNGTGF5ZQogICAgIFdLQ0FDRkxheWVyKiByb290TGF5ZXIgPSBt
X3Jvb3RDaGlsZC0+cm9vdExheWVyKCk7CiAgICAgQ0dSZWN0IHJvb3RCb3VuZHMgPSBtX3Jvb3RD
aGlsZC0+cm9vdExheWVyKCktPmJvdW5kcygpOwogICAgIG1fcm9vdENoaWxkLT5zZXRGcmFtZShy
b290Qm91bmRzKTsKLSAgICBtX2xheWVyUmVuZGVyZXItPnNldFNjcm9sbEZyYW1lKEludFBvaW50
KHJvb3RCb3VuZHMub3JpZ2luKSwgSW50U2l6ZShyb290Qm91bmRzLnNpemUpKTsKICAgICBtX3Jv
b3RDaGlsZC0+c2V0QmFja2dyb3VuZENvbG9yKENHQ29sb3JHZXRDb25zdGFudENvbG9yKGtDR0Nv
bG9yQmxhY2spKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IHJl
ZENvbG9yKEFkb3B0Q0YsIENHQ29sb3JDcmVhdGVHZW5lcmljUkdCKDEsIDAsIDAsIDEpKTsKQEAg
LTE2NSw3ICsxNjQsNiBAQCBMUkVTVUxUIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5k
b3c6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQQogICAgICAgICAgICAgQ0dS
ZWN0IHJvb3RCb3VuZHMgPSBtX3Jvb3RDaGlsZC0+cm9vdExheWVyKCktPmJvdW5kcygpOwogICAg
ICAgICAgICAgbV9yb290Q2hpbGQtPnNldEZyYW1lKHJvb3RCb3VuZHMpOwogICAgICAgICAgICAg
bV9yb290Q2hpbGQtPnNldE5lZWRzTGF5b3V0KCk7Ci0gICAgICAgICAgICBtX2xheWVyUmVuZGVy
ZXItPnNldFNjcm9sbEZyYW1lKEludFBvaW50KHJvb3RCb3VuZHMub3JpZ2luKSwgSW50U2l6ZShy
b290Qm91bmRzLnNpemUpKTsKICNlbmRpZgogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5ZXJSZW5kZXJl
ci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVy
LmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDM4ZDUyNGU0NjA5ZmRk
MjNjYTE4YTc1NWU4YmRhNzUyNTRjYTA1ZjkuLjRmMzliMTM4ZGQyNTdiZGExNjEwMTIxODA1MWUz
NjM3NzQ3OTUyZWQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNGTGF5
ZXJSZW5kZXJlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUNG
TGF5ZXJSZW5kZXJlci5jcHAKQEAgLTIyNiwxNSArMjI2LDExIEBAIFdLQ0FDRkxheWVyUmVuZGVy
ZXI6OldLQ0FDRkxheWVyUmVuZGVyZXIoV0tDQUNGTGF5ZXJSZW5kZXJlckNsaWVudCogY2xpZW50
KQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9taWdodEJlQWJsZVRvQ3JlYXRlRGV2
aWNlTGF0ZXIodHJ1ZSkKICAgICAsIG1fcm9vdExheWVyKFdLQ0FDRlJvb3RMYXllcjo6Y3JlYXRl
KHRoaXMpKQotICAgICwgbV9zY3JvbGxMYXllcihXS0NBQ0ZMYXllcjo6Y3JlYXRlKFdLQ0FDRkxh
eWVyOjpMYXllcikpCi0gICAgLCBtX2NsaXBMYXllcihXS0NBQ0ZMYXllcjo6Y3JlYXRlKFdLQ0FD
RkxheWVyOjpMYXllcikpCiAgICAgLCBtX2NvbnRleHQoQWRvcHRDRiwgQ0FDRkNvbnRleHRDcmVh
dGUoMCkpCiAgICAgLCBtX3JlbmRlckNvbnRleHQoc3RhdGljX2Nhc3Q8Q0FSZW5kZXJDb250ZXh0
Kj4oQ0FDRkNvbnRleHRHZXRSZW5kZXJDb250ZXh0KG1fY29udGV4dC5nZXQoKSkpKQogICAgICwg
bV9yZW5kZXJlcigwKQogICAgICwgbV9ob3N0V2luZG93KDApCiAgICAgLCBtX3JlbmRlclRpbWVy
KHRoaXMsICZXS0NBQ0ZMYXllclJlbmRlcmVyOjpyZW5kZXJUaW1lckZpcmVkKQotICAgICwgbV9z
Y3JvbGxQb3NpdGlvbigwLCAwKQotICAgICwgbV9zY3JvbGxTaXplKDEsIDEpCiAgICAgLCBtX2Jh
Y2tpbmdTdG9yZURpcnR5KGZhbHNlKQogICAgICwgbV9tdXN0UmVzZXRMb3N0RGV2aWNlQmVmb3Jl
UmVuZGVyaW5nKGZhbHNlKQogewpAQCAtMjUwLDE1ICsyNDYsOCBAQCBXS0NBQ0ZMYXllclJlbmRl
cmVyOjpXS0NBQ0ZMYXllclJlbmRlcmVyKFdLQ0FDRkxheWVyUmVuZGVyZXJDbGllbnQqIGNsaWVu
dCkKICAgICAvLyBTY3JvbGxpbmcgd2lsbCBhZmZlY3Qgb25seSB0aGUgcG9zaXRpb24gb2YgdGhl
IHNjcm9sbCBsYXllciB3aXRob3V0IGFmZmVjdGluZyB0aGUgYm91bmRzLgogCiAgICAgbV9yb290
TGF5ZXItPnNldE5hbWUoIldLQ0FDRkxheWVyUmVuZGVyZXIgcm9vdExheWVyIik7Ci0gICAgbV9j
bGlwTGF5ZXItPnNldE5hbWUoIldLQ0FDRkxheWVyUmVuZGVyZXIgY2xpcExheWVyIik7Ci0gICAg
bV9zY3JvbGxMYXllci0+c2V0TmFtZSgiV0tDQUNGTGF5ZXJSZW5kZXJlciBzY3JvbGxMYXllciIp
OwotCi0gICAgbV9yb290TGF5ZXItPmFkZFN1YmxheWVyKG1fY2xpcExheWVyKTsKLSAgICBtX2Ns
aXBMYXllci0+YWRkU3VibGF5ZXIobV9zY3JvbGxMYXllcik7Ci0gICAgbV9jbGlwTGF5ZXItPnNl
dE1hc2tzVG9Cb3VuZHModHJ1ZSk7CiAgICAgbV9yb290TGF5ZXItPnNldEFuY2hvclBvaW50KENH
UG9pbnRNYWtlKDAsIDApKTsKLSAgICBtX3Njcm9sbExheWVyLT5zZXRBbmNob3JQb2ludChDR1Bv
aW50TWFrZSgwLCAxKSk7Ci0gICAgbV9jbGlwTGF5ZXItPnNldEFuY2hvclBvaW50KENHUG9pbnRN
YWtlKDAsIDEpKTsKKyAgICBtX3Jvb3RMYXllci0+c2V0R2VvbWV0cnlGbGlwcGVkKHRydWUpOwog
CiAjaWZuZGVmIE5ERUJVRwogICAgIENHQ29sb3JSZWYgZGVidWdDb2xvciA9IGNyZWF0ZUNHQ29s
b3IoQ29sb3IoMjU1LCAwLCAwLCAyMDQpKTsKQEAgLTI4NSwyNiArMjc0LDYgQEAgV0tDQUNGTGF5
ZXIqIFdLQ0FDRkxheWVyUmVuZGVyZXI6OnJvb3RMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cm9vdExheWVyLmdldCgpOwogfQogCi12b2lkIFdLQ0FDRkxheWVyUmVuZGVyZXI6OnNldFNjcm9s
bEZyYW1lKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsK
LSAgICBtX3Njcm9sbFNpemUgPSBzaXplOwotICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlv
bjsKLQotICAgIHVwZGF0ZVNjcm9sbEZyYW1lKCk7Ci19Ci0KLXZvaWQgV0tDQUNGTGF5ZXJSZW5k
ZXJlcjo6dXBkYXRlU2Nyb2xsRnJhbWUoKQotewotICAgIENHUmVjdCBmcmFtZUJvdW5kcyA9IGJv
dW5kcygpOwotICAgIG1fY2xpcExheWVyLT5zZXRCb3VuZHMoQ0dSZWN0TWFrZSgwLCAwLCBtX3Nj
cm9sbFNpemUud2lkdGgoKSwgbV9zY3JvbGxTaXplLmhlaWdodCgpKSk7Ci0gICAgbV9jbGlwTGF5
ZXItPnNldFBvc2l0aW9uKENHUG9pbnRNYWtlKDAsIGZyYW1lQm91bmRzLnNpemUuaGVpZ2h0KSk7
Ci0gICAgaWYgKG1fcm9vdENoaWxkTGF5ZXIpIHsKLSAgICAgICAgQ0dSZWN0IHJvb3RCb3VuZHMg
PSBtX3Jvb3RDaGlsZExheWVyLT5ib3VuZHMoKTsKLSAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0
Qm91bmRzKHJvb3RCb3VuZHMpOwotICAgIH0KLSAgICBtX3Njcm9sbExheWVyLT5zZXRQb3NpdGlv
bihDR1BvaW50TWFrZSgtbV9zY3JvbGxQb3NpdGlvbi54KCksIG1fc2Nyb2xsUG9zaXRpb24ueSgp
ICsgbV9zY3JvbGxTaXplLmhlaWdodCgpKSk7Ci19Ci0KIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJl
cjo6c2V0Um9vdENvbnRlbnRzKENHSW1hZ2VSZWYgaW1hZ2UpCiB7CiAgICAgQVNTRVJUKG1fcm9v
dExheWVyKTsKQEAgLTMyMSwxNyArMjkwLDEwIEBAIHZvaWQgV0tDQUNGTGF5ZXJSZW5kZXJlcjo6
c2V0Um9vdENvbnRlbnRzQW5kRGlzcGxheShDR0ltYWdlUmVmIGltYWdlKQogCiB2b2lkIFdLQ0FD
RkxheWVyUmVuZGVyZXI6OnNldFJvb3RDaGlsZExheWVyKFdLQ0FDRkxheWVyKiBsYXllcikKIHsK
LSAgICBpZiAoIW1fc2Nyb2xsTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2Nyb2xs
TGF5ZXItPnJlbW92ZUFsbFN1YmxheWVycygpOworICAgIG1fcm9vdExheWVyLT5yZW1vdmVBbGxT
dWJsYXllcnMoKTsKICAgICBtX3Jvb3RDaGlsZExheWVyID0gbGF5ZXI7Ci0gICAgaWYgKGxheWVy
KSB7Ci0gICAgICAgIGxheWVyLT5zZXRHZW9tZXRyeUZsaXBwZWQodHJ1ZSk7Ci0gICAgICAgIG1f
c2Nyb2xsTGF5ZXItPmFkZFN1YmxheWVyKGxheWVyKTsKLSAgICAgICAgLy8gQWRqdXN0IHRoZSBz
Y3JvbGwgZnJhbWUgYWNjb3JkaW5nbHkKLSAgICAgICAgdXBkYXRlU2Nyb2xsRnJhbWUoKTsKLSAg
ICB9CisgICAgaWYgKG1fcm9vdENoaWxkTGF5ZXIpCisgICAgICAgIG1fcm9vdExheWVyLT5hZGRT
dWJsYXllcihtX3Jvb3RDaGlsZExheWVyKTsKIH0KICAgIAogdm9pZCBXS0NBQ0ZMYXllclJlbmRl
cmVyOjpsYXllclRyZWVEaWRDaGFuZ2UoKQpAQCAtNDM2LDggKzM5OCw2IEBAIHZvaWQgV0tDQUNG
TGF5ZXJSZW5kZXJlcjo6ZGVzdHJveVJlbmRlcmVyKCkKIAogICAgIHNfZDNkID0gMDsKICAgICBt
X3Jvb3RMYXllciA9IDA7Ci0gICAgbV9jbGlwTGF5ZXIgPSAwOwotICAgIG1fc2Nyb2xsTGF5ZXIg
PSAwOwogICAgIG1fcm9vdENoaWxkTGF5ZXIgPSAwOwogCiAgICAgbV9taWdodEJlQWJsZVRvQ3Jl
YXRlRGV2aWNlTGF0ZXIgPSB0cnVlOwpAQCAtNDU1LDcgKzQxNSw2IEBAIHZvaWQgV0tDQUNGTGF5
ZXJSZW5kZXJlcjo6cmVzaXplKCkKICAgICBpZiAobV9yb290TGF5ZXIpIHsKICAgICAgICAgbV9y
b290TGF5ZXItPnNldEJvdW5kcyhib3VuZHMoKSk7CiAgICAgICAgIFdLQ0FDRkNvbnRleHRGbHVz
aGVyOjpzaGFyZWQoKS5mbHVzaEFsbENvbnRleHRzKCk7Ci0gICAgICAgIHVwZGF0ZVNjcm9sbEZy
YW1lKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpp
bmRleCAyNjQ3YzVmMzI0MTRlNWFjYWZhZmI1NjA1NmNlNzY1ODI0YzZmZmI5Li4xZDczYjk5MzNh
MWQyNjVmZGY3ZjA0NzMwMjg0MDg4OGIwZTdmMzgyCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1dLQ0FDRkxheWVyUmVuZGVyZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9XS0NBQ0ZMYXllclJlbmRlcmVyLmgKQEAgLTY2LDcgKzY2LDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRGbHVzaENvbnRleHQoQ0FDRkNvbnRleHRSZWYpOwogCi0gICAgdm9p
ZCBzZXRTY3JvbGxGcmFtZShjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFNpemUmKTsKICAgICB2
b2lkIHNldFJvb3RDb250ZW50cyhDR0ltYWdlUmVmKTsKICAgICB2b2lkIHNldFJvb3RDb250ZW50
c0FuZERpc3BsYXkoQ0dJbWFnZVJlZik7CiAgICAgdm9pZCBzZXRSb290Q2hpbGRMYXllcihXS0NB
Q0ZMYXllciogbGF5ZXIpOwpAQCAtNzgsNyArNzcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXN0
cm95UmVuZGVyZXIoKTsKICAgICB2b2lkIHJlc2l6ZSgpOwogICAgIHZvaWQgcmVuZGVyU29vbigp
OwotICAgIHZvaWQgdXBkYXRlU2Nyb2xsRnJhbWUoKTsKIAogcHJvdGVjdGVkOgogICAgIFdLQ0FD
RkxheWVyKiByb290TGF5ZXIoKSBjb25zdDsKQEAgLTEwNSwxNiArMTAzLDEyIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX21pZ2h0QmVBYmxlVG9DcmVhdGVEZXZpY2VMYXRlcjsKICAgICBDT01QdHI8
SURpcmVjdDNERGV2aWNlOT4gbV9kM2REZXZpY2U7CiAgICAgUmVmUHRyPFdLQ0FDRlJvb3RMYXll
cj4gbV9yb290TGF5ZXI7Ci0gICAgUmVmUHRyPFdLQ0FDRkxheWVyPiBtX3Njcm9sbExheWVyOwog
ICAgIFJlZlB0cjxXS0NBQ0ZMYXllcj4gbV9yb290Q2hpbGRMYXllcjsKLSAgICBSZWZQdHI8V0tD
QUNGTGF5ZXI+IG1fY2xpcExheWVyOwogICAgIFJldGFpblB0cjxDQUNGQ29udGV4dFJlZj4gbV9j
b250ZXh0OwogICAgIENBUmVuZGVyQ29udGV4dCogbV9yZW5kZXJDb250ZXh0OwogICAgIENBUmVu
ZGVyT0dMQ29udGV4dCogbV9yZW5kZXJlcjsKICAgICBIV05EIG1faG9zdFdpbmRvdzsKICAgICBU
aW1lcjxXS0NBQ0ZMYXllclJlbmRlcmVyPiBtX3JlbmRlclRpbWVyOwotICAgIEludFBvaW50IG1f
c2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBtX3Njcm9sbFNpemU7CiAgICAgYm9vbCBtX2Jh
Y2tpbmdTdG9yZURpcnR5OwogICAgIGJvb2wgbV9tdXN0UmVzZXRMb3N0RGV2aWNlQmVmb3JlUmVu
ZGVyaW5nOwogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggNGJlYmIw
ODIwOTZjZGVjYTEyOTNhMTYwYjJjMjViMmZjNmNkMmE3Ny4uMTQ2OGI2Y2ExYWUxMjI0OGRmZjNk
ZWQwZWFhMGI1ZGE1MTI0NDFjZQotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTgyMSw2ICs4MjEsMTkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZy
YW1lVmlld0RpZFNjcm9sbChjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiAgICAgICAg
IG1fc2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoLXNjcm9sbFBvc2l0aW9uLngo
KSwgLXNjcm9sbFBvc2l0aW9uLnkoKSkpOwogfQogCitTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpsYXllclRyZWVBc1RleHQoKQoreworICAgIGlmIChjb21wb3NpdGluZ0xheWVyVXBkYXRl
UGVuZGluZygpKQorICAgICAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVycygpOworCisgICAgaWYg
KCFtX3Jvb3RQbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICAv
LyBXZSBza2lwIGR1bXBpbmcgdGhlIHNjcm9sbCBhbmQgY2xpcCBsYXllcnMgdG8ga2VlcCBsYXll
clRyZWVBc1RleHQgb3V0cHV0CisgICAgLy8gc2ltaWxhciBiZXR3ZWVuIHBsYXRmb3Jtcy4KKyAg
ICByZXR1cm4gbV9yb290UGxhdGZvcm1MYXllci0+bGF5ZXJUcmVlQXNUZXh0KCk7Cit9CisKIFJl
bmRlckxheWVyQ29tcG9zaXRvciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppZnJhbWVDb250ZW50
c0NvbXBvc2l0b3IoUmVuZGVySUZyYW1lKiByZW5kZXJlcikKIHsKICAgICBIVE1MSUZyYW1lRWxl
bWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4ocmVuZGVyZXIt
Pm5vZGUoKSk7CkBAIC0xMjgxLDE2ICsxMjk0LDkgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6Om5lZWRzQ29udGVudHNDb21wb3NpdGluZ0xheWVyKGNvbnN0IFJlbmRlckxheWVyKiBsYXkK
IAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzU2Nyb2xsTGF5ZXIoUm9vdExh
eWVyQXR0YWNobWVudCBhdHRhY2htZW50KSBjb25zdAogewotICAgIGlmIChhdHRhY2htZW50ID09
IFJvb3RMYXllckF0dGFjaGVkVmlhRW5jbG9zaW5nSWZyYW1lKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICAvLyBJZiB3ZSdyZSB2aWV3bGVzcyAoaS5lLiBX
ZWJLaXQyKSwgd2UgbmVlZCB0byBzY3JvbGwgb3Vyc2VsdmVzLgotICAgIC8vIEZJWE1FOiBldmVu
dHVhbGx5IHdlIHNob3VsZCBkbyB0aGlzIG9uIG90aGVyIHBsYXRmb3JtcyB0b28uCi0gICAgaWYg
KCFtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5wbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBXZSBuZWVkIHRv
IGhhbmRsZSBvdXIgb3duIHNjcm9sbGluZyBpZiB3ZSdyZToKKyAgICByZXR1cm4gIW1fcmVuZGVy
Vmlldy0+ZnJhbWVWaWV3KCktPnBsYXRmb3JtV2lkZ2V0KCkgLy8gdmlld2xlc3MgKGkuZS4gbm9u
LU1hYywgb3IgTWFjIGluIFdlYktpdDIpCisgICAgICAgIHx8IGF0dGFjaG1lbnQgPT0gUm9vdExh
eWVyQXR0YWNoZWRWaWFFbmNsb3NpbmdJZnJhbWU7IC8vIGEgY29tcG9zaXRlZCBpZnJhbWUgb24g
TWFjCiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVSb290UGxhdGZvcm1M
YXllcigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZWVhYzIwMzYzMThjYjI2YTVlYjU2OWRhZTQw
MzczNGY4ZjQ5NGI2Ny4uOTEwZTg4MzI2MzdiOWY5Mzc4ZTAzZGFlMDZjNDEwMTdhM2EyZDVhYQot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMTY2LDYgKzE2Niw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGZyYW1lVmlld0RpZENoYW5nZVNpemUoY29uc3QgSW50UG9pbnQm
IGNvbnRlbnRzT2Zmc2V0ID0gSW50UG9pbnQoKSk7CiAgICAgdm9pZCBmcmFtZVZpZXdEaWRTY3Jv
bGwoY29uc3QgSW50UG9pbnQmID0gSW50UG9pbnQoKSk7CiAKKyAgICBTdHJpbmcgbGF5ZXJUcmVl
QXNUZXh0KCk7CisKIHByaXZhdGU6CiAgICAgLy8gV2hldGhlciB0aGUgZ2l2ZW4gUkwgbmVlZHMg
YSBjb21wb3NpdGluZyBsYXllci4KICAgICBib29sIG5lZWRzVG9CZUNvbXBvc2l0ZWQoY29uc3Qg
UmVuZGVyTGF5ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDFiNmZhOTM5NmZhMWNlMDUxYWRlNmY5ZWY1M2Jj
NWZjMWY2NjI3Yi4uYWJiNWE0YTE0ZDQwYjc0ZmJlZGEwMmYzNTg4OTM3Mzg5ODU5NTM4YSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOS0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgc2Nyb2xsIGFuZCBjbGlwIGxheWVycyBmb3IgV0tDQUNGTGF5ZXJSZW5kZXJl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5MjIK
KworICAgICAgICBXS0NBQ0ZMYXllclJlbmRlcmVyIG5vIGxvbmdlciBuZWVkcyBpdHMgb3duIGxh
eWVycyBmb3IgbWFuYWdpbmcgc2Nyb2xsaW5nCisgICAgICAgIGFuZCBjbGlwcGluZywgYmVjYXVz
ZSBSZW5kZXJMYXllckNvbXBvc2l0b3IgcHJvdmlkZXMgdGhpcyBmdW5jdGlvbmFsaXR5LgorCisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpzaXplQ2hhbmdlZCk6IE1v
dmVkIGNvZGUgdGhhdCBoYW5kbGVzIHRoZSBXTV9TSVpFIG1lc3NhZ2UKKyAgICAgICAgaW50byB0
aGlzIG1ldGhvZC4gVXNlIGl0IHRvIHJlc2l6ZSB0aGUgbGF5ZXIgcmVuZGVyZXIuCisgICAgICAg
IChXZWJWaWV3OjpXZWJWaWV3V25kUHJvYyk6IENhbGwgc2l6ZUNoYW5nZWQoKS4KKyAgICAgICAg
KFdlYlZpZXc6OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKTogTm8gbmVlZCB0byBjYWxsIHNldFNj
cm9sbEZyYW1lKCkgYW55IG1vcmUuCisgICAgICAgIChXZWJWaWV3OjpsYXllclJlbmRlcmVyQmVj
YW1lVmlzaWJsZSk6IE1vdmUgdGhpcyBmcm9tIHRoZSBoZWFkZXIgKG5vIG5lZWQgdG8gYmUgaW5s
aW5lKS4KKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTAtMDktMTYgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDEzMDQwZmVlMmI1NzY1Nzg3
MzllMzA4Yjg2M2VhZGVlNDg2NTYzZGUuLjE3YzY4NmVmY2Q3ZjRjMzBjZTdlMDg5NWM1MDlmMjJh
NmQzNmIyMjQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCkBAIC04NTQsNiArODU0LDE5IEBAIHZvaWQgV2ViVmlldzo6c2Nyb2xsQmFja2lu
Z1N0b3JlKEZyYW1lVmlldyogZnJhbWVWaWV3LCBpbnQgZHgsIGludCBkeSwgY29uc3QgSW50CiAg
ICAgOjpSZWxlYXNlREMobV92aWV3V2luZG93LCB3aW5kb3dEQyk7CiB9CiAKK3ZvaWQgV2ViVmll
dzo6c2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKK3sKKyAgICBkZWxldGVCYWNr
aW5nU3RvcmUoKTsKKworICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZSh0b3BMZXZlbEZy
YW1lKCkpKQorICAgICAgICBjb3JlRnJhbWUtPnZpZXcoKS0+cmVzaXplKG5ld1NpemUpOworCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX2xheWVyUmVuZGVyZXIp
CisgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+cmVzaXplKCk7CisjZW5kaWYKK30KKwogLy8gVGhp
cyBlbXVsYXRlcyB0aGUgTWFjIHNtYXJ0cyBmb3IgcGFpbnRpbmcgcmVjdHMgaW50ZWxsaWdlbnRs
eS4gIFRoaXMgaXMgdmVyeQogLy8gaW1wb3J0YW50IGZvciB1cywgc2luY2Ugd2UgZG91YmxlIGJ1
ZmZlciBiYXNlZCBvZmYgZGlydHkgcmVjdHMuCiBzdGF0aWMgdm9pZCBnZXRVcGRhdGVSZWN0cyhI
UkdOIHJlZ2lvbiwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBWZWN0b3I8SW50UmVjdD4mIHJl
Y3RzKQpAQCAtMjA4MCwxNSArMjA5Myw4IEBAIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlldzo6V2Vi
Vmlld1duZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY2hlY2sgV01fVU5J
Q0hBUiB0byBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyAodGhhdCBkb24ndCBmaXQg
aW4gMTYgYml0cykuCiAgICAgICAgIGNhc2UgV01fU0laRToKLSAgICAgICAgICAgIGlmIChsUGFy
YW0gIT0gMCkgewotICAgICAgICAgICAgICAgIHdlYlZpZXctPmRlbGV0ZUJhY2tpbmdTdG9yZSgp
OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgICAgICBpZiAo
d2ViVmlldy0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAg
IHdlYlZpZXctPnJlc2l6ZUxheWVyUmVuZGVyZXIoKTsKLSNlbmRpZgotICAgICAgICAgICAgICAg
IGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShtYWluRnJhbWVJbXBsKSkKLSAgICAgICAgICAg
ICAgICAgICAgY29yZUZyYW1lLT52aWV3KCktPnJlc2l6ZShMT1dPUkQobFBhcmFtKSwgSElXT1JE
KGxQYXJhbSkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxQYXJhbSAhPSAwKQor
ICAgICAgICAgICAgICAgIHdlYlZpZXctPnNpemVDaGFuZ2VkKEludFNpemUoTE9XT1JEKGxQYXJh
bSksIEhJV09SRChsUGFyYW0pKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBX
TV9TSE9XV0lORE9XOgogICAgICAgICAgICAgbFJlc3VsdCA9IERlZldpbmRvd1Byb2MoaFduZCwg
bWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwpAQCAtNjI3OSwxNCArNjI4NSwxMSBAQCB2b2lkIFdl
YlZpZXc6OnVwZGF0ZVJvb3RMYXllckNvbnRlbnRzKCkKICAgICAgICAgbV9uZXh0RGlzcGxheUlz
U3luY2hyb25vdXMgPSBmYWxzZTsKICAgICB9IGVsc2UKICAgICAgICAgbV9sYXllclJlbmRlcmVy
LT5zZXRSb290Q29udGVudHMoYmFja2luZ1N0b3JlSW1hZ2UuZ2V0KCkpOworfQogCi0gICAgLy8g
U2V0IHRoZSBmcmFtZSBhbmQgc2Nyb2xsIHBvc2l0aW9uCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUobV9tYWluRnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47
Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKLQotICAgIG1f
bGF5ZXJSZW5kZXJlci0+c2V0U2Nyb2xsRnJhbWUoSW50UG9pbnQoZnJhbWVWaWV3LT5zY3JvbGxY
KCksIGZyYW1lVmlldy0+c2Nyb2xsWSgpKSwgSW50U2l6ZShmcmFtZVZpZXctPmxheW91dFdpZHRo
KCksIGZyYW1lVmlldy0+bGF5b3V0SGVpZ2h0KCkpKTsKK3ZvaWQgV2ViVmlldzo6bGF5ZXJSZW5k
ZXJlckJlY2FtZVZpc2libGUoKQoreworICAgIG1fbGF5ZXJSZW5kZXJlci0+Y3JlYXRlUmVuZGVy
ZXIoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuaCBiL1dl
YktpdC93aW4vV2ViVmlldy5oCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXgg
YTQwNmMyZWMwYjc5ZTBiYTE3YTcwMWVkMTZiOWEwYWQwOGMzNTU4Ny4uNjFlYjk0NjM5NjhkZTk3
ZDFmMzliMzc4ZDk1YzY5ZjlhOTVkZjE5MAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysg
Yi9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtOTIxLDYgKzkyMSw4IEBAIHByaXZhdGU6CiAgICAg
SFJFU1VMVCByZXNldFpvb20oYm9vbCBpc1RleHRPbmx5KTsKICAgICBib29sIGFjdGl2ZSgpOwog
CisgICAgdm9pZCBzaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisKICAgICBl
bnVtIFdpbmRvd3NUb1BhaW50IHsgUGFpbnRXZWJWaWV3T25seSwgUGFpbnRXZWJWaWV3QW5kQ2hp
bGRyZW4gfTsKICAgICB2b2lkIHBhaW50SW50b0JhY2tpbmdTdG9yZShXZWJDb3JlOjpGcmFtZVZp
ZXcqLCBIREMgYml0bWFwREMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCwgV2lu
ZG93c1RvUGFpbnQpOwogICAgIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKFdlYkNvcmU6OkZyYW1l
VmlldyosIEhEQyA9IDAsIGJvb2wgYmFja2luZ1N0b3JlQ29tcGxldGVseURpcnR5ID0gZmFsc2Us
IFdpbmRvd3NUb1BhaW50ID0gUGFpbnRXZWJWaWV3T25seSk7CkBAIC0xMDQyLDggKzEwNDQsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7
IHJldHVybiBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsgfQogICAgIHZvaWQgc2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZyhib29sKTsKICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckNvbnRlbnRz
KCk7Ci0gICAgdm9pZCByZXNpemVMYXllclJlbmRlcmVyKCkgeyBtX2xheWVyUmVuZGVyZXItPnJl
c2l6ZSgpOyB9Ci0gICAgdm9pZCBsYXllclJlbmRlcmVyQmVjYW1lVmlzaWJsZSgpIHsgbV9sYXll
clJlbmRlcmVyLT5jcmVhdGVSZW5kZXJlcigpOyB9CisgICAgdm9pZCBsYXllclJlbmRlcmVyQmVj
YW1lVmlzaWJsZSgpOwogCiAgICAgT3duUHRyPFdlYkNvcmU6OldLQ0FDRkxheWVyUmVuZGVyZXI+
IG1fbGF5ZXJSZW5kZXJlcjsKICAgICBib29sIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwo=
</data>
<flag name="review"
          id="57358"
          type_id="1"
          status="+"
          setter="cmarrin"
    />
          </attachment>
      

    </bug>

</bugzilla>