<?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>131265</bug_id>
          
          <creation_ts>2014-04-05 01:39:29 -0700</creation_ts>
          <short_desc>[EFL] Fix problems with the pixel dump.</short_desc>
          <delta_ts>2014-04-30 04:39:56 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>79766</blocked>
    
    <blocked>131266</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hyowon Kim">hw1008.kim</reporter>
          <assigned_to name="Hyowon Kim">hw1008.kim</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997862</commentid>
    <comment_count>0</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-05 01:39:29 -0700</bug_when>
    <thetext>There are problems with dumping pixel results since r166637.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997871</commentid>
    <comment_count>1</comment_count>
      <attachid>228668</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-05 05:14:08 -0700</bug_when>
    <thetext>Created attachment 228668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997988</commentid>
    <comment_count>2</comment_count>
      <attachid>228668</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-06 03:38:49 -0700</bug_when>
    <thetext>Comment on attachment 228668
Patch

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

&gt; Source/WebKit/efl/ewk/ewk_view.h:147
&gt; +typedef struct _cairo_surface cairo_surface_t;

In r164168, ryuan removed to open cairo data structures from ewk public APIs. Ryuan, how do you think about this patch ?

&gt; Source/WebKit/efl/ewk/ewk_view.h:2504
&gt; + * Gets a surface for the image data of the given ewkView.

Add a new line. And ewkView -&gt; the view.

&gt; Source/WebKit/efl/ewk/ewk_view.h:2507
&gt; + * @return a cairo_surface_t pointer to the newly created surface.

Remove . at the end of line.

&gt; Source/WebKit/efl/ewk/ewk_view.h:2509
&gt; +EAPI cairo_surface_t* ewk_view_image_data_get(const Evas_Object* o);

Wrong * place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998084</commentid>
    <comment_count>3</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-06 22:31:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 228668 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228668&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.h:147
&gt; &gt; +typedef struct _cairo_surface cairo_surface_t;
&gt; 
&gt; In r164168, ryuan removed to open cairo data structures from ewk public APIs. Ryuan, how do you think about this patch ?
&gt; 

After discussion with Ryuan, I&apos;ve decided to remove a new API ewk_view_image_data_get() and then reimplement the ewk_view_screenshot_contents_get(). 
Thanks for your comment and Ryuan&apos;s valuable advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998136</commentid>
    <comment_count>4</comment_count>
      <attachid>228732</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-07 06:49:06 -0700</bug_when>
    <thetext>Created attachment 228732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998335</commentid>
    <comment_count>5</comment_count>
      <attachid>228732</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-07 17:46:57 -0700</bug_when>
    <thetext>Comment on attachment 228732
Patch

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

&gt; Source/WebKit/efl/WebCoreSupport/AcceleratedCompositingContextEfl.cpp:149
&gt; +void AcceleratedCompositingContext::paintToCurrentGLContext(bool paintingMirrored)

paintingMirrored parameter is just passed to compositeLayers from AcceleratedCompositingContext::extractImageData(). So, I think that patintToCurrentGLContext() doesn&apos;t need to have the paintingMirrored param. It looks a private boolean member variable is proper for this case.

For instance, 

AcceleratedCompositingContext::extractImageData() {
    m_paintingMirrored = true;
}

void AcceleratedCompositingContext::compositeLayers() {
    m_textureMapper-&gt;beginPainting(m_paintingMirrored ? TextureMapper::PaintingMirrored : 0);
}

&gt; Source/WebKit/efl/WebCoreSupport/AcceleratedCompositingContextEfl.cpp:155
&gt; +    evas_gl_api_get(m_evasGL.get())-&gt;glClearColor(1, 0.5, 1, 1);

Any reason to set green value to 0.5 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998362</commentid>
    <comment_count>6</comment_count>
      <attachid>228732</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-04-07 18:48:02 -0700</bug_when>
    <thetext>Comment on attachment 228732
Patch

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

&gt; Source/WebKit/efl/WebCoreSupport/AcceleratedCompositingContextEfl.cpp:197
&gt; +        paintToCurrentGLContext(true);

As discussed, it will make the bug.

We will not draw flipped contents on the m_compositingObject.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:4577
&gt; -    ewk_paint_context_scale(context, scale, scale);
&gt; -    ewk_paint_context_translate(context, -1 * area-&gt;x, -1 * area-&gt;y);
&gt; -
&gt; -    ewk_view_paint(priv, context, area);
&gt; -
&gt; -    ewk_paint_context_restore(context);
&gt; -    ewk_paint_context_free(context);
&gt; +    priv-&gt;acceleratedCompositingContext-&gt;extractImageData(screenshotImage, WebCore::IntRect(*area));

As discussed, this API lost scale functionality with your path.
But, I agree with you that the name of this API, `screenshot` is quite ambiguous.
So, Let&apos;s just remove scale parameter and change the doxygen for developers not to make ambiguity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998415</commentid>
    <comment_count>7</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-07 21:21:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 228732 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228732&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/AcceleratedCompositingContextEfl.cpp:149
&gt; &gt; +void AcceleratedCompositingContext::paintToCurrentGLContext(bool paintingMirrored)
&gt; 
&gt; paintingMirrored parameter is just passed to compositeLayers from AcceleratedCompositingContext::extractImageData(). So, I think that patintToCurrentGLContext() doesn&apos;t need to have the paintingMirrored param. It looks a private boolean member variable is proper for this case.
&gt; 
&gt; For instance, 
&gt; 
&gt; AcceleratedCompositingContext::extractImageData() {
&gt;     m_paintingMirrored = true;
&gt; }
&gt; 
&gt; void AcceleratedCompositingContext::compositeLayers() {
&gt;     m_textureMapper-&gt;beginPainting(m_paintingMirrored ? TextureMapper::PaintingMirrored : 0);
&gt; }

Okay, I&apos;ll think about it.

&gt; &gt; Source/WebKit/efl/WebCoreSupport/AcceleratedCompositingContextEfl.cpp:155
&gt; &gt; +    evas_gl_api_get(m_evasGL.get())-&gt;glClearColor(1, 0.5, 1, 1);
&gt; 
&gt; Any reason to set green value to 0.5 ?

Sorry. My mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998423</commentid>
    <comment_count>8</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-07 21:55:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 228732 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228732&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/AcceleratedCompositingContextEfl.cpp:197
&gt; &gt; +        paintToCurrentGLContext(true);
&gt; 
&gt; As discussed, it will make the bug.
&gt; 
&gt; We will not draw flipped contents on the m_compositingObject.

I&apos;ll fix it.

&gt; &gt; Source/WebKit/efl/ewk/ewk_view.cpp:4577
&gt; &gt; -    ewk_paint_context_scale(context, scale, scale);
&gt; &gt; -    ewk_paint_context_translate(context, -1 * area-&gt;x, -1 * area-&gt;y);
&gt; &gt; -
&gt; &gt; -    ewk_view_paint(priv, context, area);
&gt; &gt; -
&gt; &gt; -    ewk_paint_context_restore(context);
&gt; &gt; -    ewk_paint_context_free(context);
&gt; &gt; +    priv-&gt;acceleratedCompositingContext-&gt;extractImageData(screenshotImage, WebCore::IntRect(*area));
&gt; 
&gt; As discussed, this API lost scale functionality with your path.
&gt; But, I agree with you that the name of this API, `screenshot` is quite ambiguous.
&gt; So, Let&apos;s just remove scale parameter and change the doxygen for developers not to make ambiguity.

Okay. I appreciate your explanation about our discussion.

An image taken by a screenshot API should have visible content displayed on the webview.
But the previous implementation of ewk_view_screenshot_contents_get() was intended to repaint the certain area of webpage and return the resultant image as Evas_object.

In conclusion, I&apos;ll modify that this API works as expected.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999540</commentid>
    <comment_count>9</comment_count>
      <attachid>229051</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-10 08:49:50 -0700</bug_when>
    <thetext>Created attachment 229051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999812</commentid>
    <comment_count>10</comment_count>
      <attachid>229051</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-11 00:05:56 -0700</bug_when>
    <thetext>Comment on attachment 229051
Patch

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

It looks there is no critical issue on EFL side. However, this patch modify cario graphics back-end. I think folks of cairo graphics need to take a look this patch.

&gt; Source/WebCore/ChangeLog:11
&gt; +        This patch adds a new API for pixel dump AcceleratedCompositingContext::extractImageData()

This description is a little unclear for me. Although I&apos;m not sure whether I understand this description, I modify this description a little.

&quot;This patch adds new member functions to AcceleratedCompositingContext for supporting pixel dump. One of new functions is &quot;AcceleratedCompositingContext::extractImageData()&quot;, which replaces deprecated function calls. Besides the extractImageData() is invoked by ewk_view_screenshot_contents_get() in order to take the visible content displayed on the EFL webview.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999815</commentid>
    <comment_count>11</comment_count>
      <attachid>229051</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-04-11 00:13:10 -0700</bug_when>
    <thetext>Comment on attachment 229051
Patch

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

&gt; Source/WebKit/efl/ChangeLog:8
&gt; +        Painting and compositing paths of WebKit2-EFL were totally modified from r166768.

WebKit/Efl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999823</commentid>
    <comment_count>12</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-11 01:03:18 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 229051 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229051&amp;action=review
&gt; 
&gt; It looks there is no critical issue on EFL side. However, this patch modify cario graphics back-end. I think folks of cairo graphics need to take a look this patch.

This patch doesn&apos;t modify cairo backend side, just adds a util function, flipVertically(cairo_surface_t*).

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        This patch adds a new API for pixel dump AcceleratedCompositingContext::extractImageData()
&gt; 
&gt; This description is a little unclear for me. Although I&apos;m not sure whether I understand this description, I modify this description a little.
&gt; 
&gt; &quot;This patch adds new member functions to AcceleratedCompositingContext for supporting pixel dump. One of new functions is &quot;AcceleratedCompositingContext::extractImageData()&quot;, which replaces deprecated function calls. Besides the extractImageData() is invoked by ewk_view_screenshot_contents_get() in order to take the visible content displayed on the EFL webview.&quot;

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999828</commentid>
    <comment_count>13</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-11 01:13:56 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 229051 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229051&amp;action=review
&gt; &gt; 
&gt; &gt; It looks there is no critical issue on EFL side. However, this patch modify cario graphics back-end. I think folks of cairo graphics need to take a look this patch.
&gt; 
&gt; This patch doesn&apos;t modify cairo backend side, just adds a util function, flipVertically(cairo_surface_t*).

Yes, I pointed it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000148</commentid>
    <comment_count>14</comment_count>
      <attachid>229192</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-11 18:45:18 -0700</bug_when>
    <thetext>Created attachment 229192
modify change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000362</commentid>
    <comment_count>15</comment_count>
      <attachid>229254</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-13 18:50:48 -0700</bug_when>
    <thetext>Created attachment 229254
rebase patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000790</commentid>
    <comment_count>16</comment_count>
      <attachid>229254</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-14 23:47:42 -0700</bug_when>
    <thetext>Comment on attachment 229254
rebase patch

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

&gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:262
&gt; +void flipVertically(cairo_surface_t* surface)

I think Martin can review this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000791</commentid>
    <comment_count>17</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-14 23:48:58 -0700</bug_when>
    <thetext>CC&apos;ing Martin, could you take a look changes in CairoUtilities.cpp ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000836</commentid>
    <comment_count>18</comment_count>
      <attachid>229254</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-15 05:46:15 -0700</bug_when>
    <thetext>Comment on attachment 229254
rebase patch

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

Looks okay with a few small changes.

&gt;&gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:262
&gt;&gt; +void flipVertically(cairo_surface_t* surface)
&gt; 
&gt; I think Martin can review this function.

Probably should be called flipImageSurfaceVertically.

&gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:265
&gt; +    ASSERT(!size.isEmpty());

You probably want to ASSERT the that this is also an image surface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001065</commentid>
    <comment_count>19</comment_count>
      <attachid>229423</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-15 18:56:11 -0700</bug_when>
    <thetext>Created attachment 229423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001067</commentid>
    <comment_count>20</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-15 18:58:47 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 229254 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229254&amp;action=review
&gt; 
&gt; Looks okay with a few small changes.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:262
&gt; &gt;&gt; +void flipVertically(cairo_surface_t* surface)
&gt; &gt; 
&gt; &gt; I think Martin can review this function.
&gt; 
&gt; Probably should be called flipImageSurfaceVertically.
&gt; 
Okay, done.

&gt; &gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:265
&gt; &gt; +    ASSERT(!size.isEmpty());
&gt; 
&gt; You probably want to ASSERT the that this is also an image surface.
I&apos;ve added it.

Thank you Martin. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001074</commentid>
    <comment_count>21</comment_count>
      <attachid>229423</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-15 20:15:06 -0700</bug_when>
    <thetext>Comment on attachment 229423
Patch

LGTM with Martin&apos;review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001078</commentid>
    <comment_count>22</comment_count>
      <attachid>229423</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 20:45:55 -0700</bug_when>
    <thetext>Comment on attachment 229423
Patch

Clearing flags on attachment: 229423

Committed r167342: &lt;http://trac.webkit.org/changeset/167342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001079</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 20:46:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228668</attachid>
            <date>2014-04-05 05:14:08 -0700</date>
            <delta_ts>2014-04-07 06:48:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131265-20140405211346.patch</filename>
            <type>text/plain</type>
            <size>11531</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMjkzZTQ3M2Ex
NDc4ODA0Y2I3NWVjNjFiMjRiYWNiNzU3MzY4MDNlMi4uMzlmYzVhZDNkY2QzMGQ2MDliOTEyYTdl
NzdiNzBjMTIxZWQ1MTcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0
LTA0LTA1ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBb
RUZMXSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBw
YXRocyBvZiBXZWJLaXQyLUVGTCB3ZXJlIHRvdGFsbHkgbW9kaWZpZWQgZnJvbSByMTY2NzY4LiAK
KyAgICAgICAgSG93ZXZlciBwaXhlbCBkdW1wIGNvZGVzIHN0aWxsIGNhbGwgZGVwcmVjYXRlZCBm
dW5jdGlvbnMgbGlrZSBld2tfdmlld19wYWludCgpLAorICAgICAgICB3aGljaCBjYXVzZXMgdGhh
dCBub3RoaW5nIGlzIGRyYXduLgorICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHBpeGVsIGR1bXAg
cHJvYmxlbXMgYnkgYWRkaW5nIG5ldyBmdW5jdGlvbnMgdG8gZ2V0IGltYWdlIGRhdGEuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQpOiAKKyAgICAgICAgQ3JlYXRlIFRleHR1cmVNYXBw
ZXIgd2l0aCBhIHByb3BlciBiYWNrZW5kLgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIFJl
dmlzZSBhIG51bGwgY2hlY2sgZm9yIG1fcm9vdExheWVyLgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9HcmFwaGljc0NvbnRleHQpOgorICAg
ICAgICBSZW1vdmUgYSBjcmVhdGlvbiBjaGVjayBmb3IgVGV4dHVyZU1hcHBlckdMLgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9DdXJyZW50
R0xDb250ZXh0KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6Y29tcG9zaXRlTGF5ZXJzKToKKyAgICAgICAgQWRkIGEgcGFp
bnRpbmdNaXJyb3JlZCBmbGFnIGNoZWNrLgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQ6OmltYWdlRGF0YSk6CisgICAgICAgIENyZWF0ZSBjYWlyb19zdXJm
YWNlX3QgYW5kIGZpbGwgaXQgdXAgd2l0aCB0aGUgY3VycmVudCBpbWFnZSBkYXRhLgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmg6Cisg
ICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2ltYWdlX2RhdGFf
Z2V0KTogQ2FsbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW1hZ2VEYXRhKCkuCisg
ICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTQtMDQtMDMgIEh5b3dvbiBLaW0gIDxodzEw
MDgua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFNob3VsZCBmbHVzaCBhbmQgcmVu
ZGVyIGxheWVycyBhZnRlciB0aGUgcm9vdCBsYXllciBpcyBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCmluZGV4IGZhZGI1N2M3NTYwYmVmZDY5MGU4ZjIz
YTkxM2EzZTczMjdjMWIzYjYuLmY3ZGZkZjVlZGEzMTA1NjJhZGI0ODZjN2UxYWE5ZWMwYzQyOWI1
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKQEAgLTUzLDgg
KzUzLDEzIEBAIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dChFdmFzX09iamVjdCogZXdrVmllCiAgICAgICAgICAgICBtX2V2YXNHTENv
bnRleHQgPSBFdmFzR0xDb250ZXh0OjpjcmVhdGUobV9ldmFzR0wuZ2V0KCkpOwogICAgIH0KIAot
ICAgIGlmICghbV9ldmFzR0xDb250ZXh0KQorICAgIGlmIChtX2V2YXNHTENvbnRleHQpIHsKKyAg
ICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBw
ZXI6Ok9wZW5HTE1vZGUpOworICAgICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPiht
X3RleHR1cmVNYXBwZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmco
dHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1h
cHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6OlNvZnR3YXJlTW9kZSk7CiAgICAgICAgIG1faXNB
Y2NlbGVyYXRlZCA9IGZhbHNlOworICAgIH0KIH0KIAogQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6On5BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCgpCkBAIC0xMjIsMTggKzEyNywx
MyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaEFuZFJlbmRlckxh
eWVycygpCiAKIGJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGlu
Z0xheWVyQ2hhbmdlcygpCiB7Ci0gICAgaWYgKCFtX3Jvb3RMYXllcikKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKKyAgICBpZiAobV9yb290TGF5ZXIpCisgICAgICAgIG1fcm9vdExheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgcmV0dXJuIEVXS1By
aXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPm1haW5GcmFtZSgpLnZpZXcoKS0+Zmx1c2hDb21wb3Np
dGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiB9CiAKIHZvaWQgQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OnBhaW50VG9HcmFwaGljc0NvbnRleHQoKQogewotICAgIGlmICghbV90
ZXh0dXJlTWFwcGVyKQotICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpj
cmVhdGUoVGV4dHVyZU1hcHBlcjo6U29mdHdhcmVNb2RlKTsKLQogICAgIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IHN1cmZhY2UgPSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2UobV9jb21wb3NpdGluZ09i
amVjdCk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMjMgKzE0
NSwxOCBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvR3JhcGhp
Y3NDb250ZXh0KCkKICAgICBjb21wb3NpdGVMYXllcnMoKTsKIH0KIAotdm9pZCBBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoKQordm9pZCBBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoYm9vbCBw
YWludGluZ01pcnJvcmVkKQogewotICAgIGlmICghbV90ZXh0dXJlTWFwcGVyKSB7Ci0gICAgICAg
IG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpP
cGVuR0xNb2RlKTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4obV90ZXh0
dXJlTWFwcGVyLmdldCgpKS0+c2V0RW5hYmxlRWRnZURpc3RhbmNlQW50aWFsaWFzaW5nKHRydWUp
OwotICAgIH0KLQogICAgIGlmICghZXZhc19nbF9tYWtlX2N1cnJlbnQobV9ldmFzR0wuZ2V0KCks
IG1fZXZhc0dMU3VyZmFjZS0+c3VyZmFjZSgpLCBtX2V2YXNHTENvbnRleHQtPmNvbnRleHQoKSkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGV2YXNfZ2xfYXBpX2dldChtX2V2YXNHTC5nZXQoKSkt
PmdsVmlld3BvcnQoMCwgMCwgbV92aWV3U2l6ZS53aWR0aCgpLCBtX3ZpZXdTaXplLmhlaWdodCgp
KTsKICAgICBldmFzX2dsX2FwaV9nZXQobV9ldmFzR0wuZ2V0KCkpLT5nbENsZWFyKEdMX0NPTE9S
X0JVRkZFUl9CSVQpOwogCi0gICAgY29tcG9zaXRlTGF5ZXJzKCk7CisgICAgY29tcG9zaXRlTGF5
ZXJzKHBhaW50aW5nTWlycm9yZWQpOwogfQogCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0Ojpjb21wb3NpdGVMYXllcnMoKQordm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6Y29tcG9zaXRlTGF5ZXJzKGJvb2wgcGFpbnRpbmdNaXJyb3JlZCkKIHsKICAgICBUZXh0
dXJlTWFwcGVyTGF5ZXIqIGN1cnJlbnRSb290TGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJMYXllciht
X3Jvb3RMYXllcik7CiAgICAgaWYgKCFjdXJyZW50Um9vdExheWVyKQpAQCAtMTcwLDcgKzE2NSw3
IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmNvbXBvc2l0ZUxheWVycygp
CiAgICAgY3VycmVudFJvb3RMYXllci0+c2V0VGV4dHVyZU1hcHBlcihtX3RleHR1cmVNYXBwZXIu
Z2V0KCkpOwogICAgIGN1cnJlbnRSb290TGF5ZXItPmFwcGx5QW5pbWF0aW9uc1JlY3Vyc2l2ZWx5
KCk7CiAKLSAgICBtX3RleHR1cmVNYXBwZXItPmJlZ2luUGFpbnRpbmcoKTsKKyAgICBtX3RleHR1
cmVNYXBwZXItPmJlZ2luUGFpbnRpbmcocGFpbnRpbmdNaXJyb3JlZCA/IFRleHR1cmVNYXBwZXI6
OlBhaW50aW5nTWlycm9yZWQgOiAwKTsKICAgICBtX3RleHR1cmVNYXBwZXItPmJlZ2luQ2xpcChU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXpl
KSk7CiAgICAgY3VycmVudFJvb3RMYXllci0+cGFpbnQoKTsKICAgICBtX2Zwc0NvdW50ZXIudXBk
YXRlRlBTQW5kRGlzcGxheShtX3RleHR1cmVNYXBwZXIuZ2V0KCkpOwpAQCAtMTg5LDYgKzE4NCwy
NyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzZXRSb290R3JhcGhpY3NM
YXllcihHcmFwaGljc0xheWVyKiByb290TGF5ZQogICAgICAgICBtX3N5bmNUaW1lci5zdGFydE9u
ZVNob3QoMCk7CiB9CiAKK1Bhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dDo6aW1hZ2VEYXRhKCkKK3sKKyAgICBib29sIGZsdXNoZWQgPSBmbHVz
aFBlbmRpbmdMYXllckNoYW5nZXMoKTsKKworICAgIGlmIChtX2lzQWNjZWxlcmF0ZWQpIHsKKyAg
ICAgICAgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJ1ZSk7CisKKyAgICAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJP
X0ZPUk1BVF9BUkdCMzIsIG1fdmlld1NpemUud2lkdGgoKSwgbV92aWV3U2l6ZS5oZWlnaHQoKSk7
CisgICAgICAgIHVpbnQ4X3QqIGRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfZGF0YShzdXJmYWNlLmdldCgpKSk7CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0M0QgPSBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1
cmVNYXBwZXIuZ2V0KCkpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgICAgICBjb250ZXh0M0Qt
PnJlYWRQaXhlbHMoMCwgMCwgbV92aWV3U2l6ZS53aWR0aCgpLCBtX3ZpZXdTaXplLmhlaWdodCgp
LCBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZ
VEUsIGRhdGEpOworCisgICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKKyAgICB9CisK
KyAgICBpZiAoZmx1c2hlZCkKKyAgICAgICAgcGFpbnRUb0dyYXBoaWNzQ29udGV4dCgpOworCisg
ICAgcmV0dXJuIGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShtX2NvbXBvc2l0aW5nT2JqZWN0KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggNjk2YzNkZDVk
OGZiYTE4N2FmODg5ZWJmZGI2YmUxMGE0NDZmNzNjNy4uMjY5M2I0YTdiOTc4ZDRlN2ZhZjBjM2Rk
NGUyMzUzOTkyZmU2N2E4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5o
CkBAIC00NiwxMCArNDYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcmVzaXplKGNvbnN0IEludFNp
emUmKTsKICAgICB2b2lkIGZsdXNoQW5kUmVuZGVyTGF5ZXJzKCk7CiAKKyAgICBQYXNzUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2VEYXRhKCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBwYWlu
dFRvR3JhcGhpY3NDb250ZXh0KCk7Ci0gICAgdm9pZCBwYWludFRvQ3VycmVudEdMQ29udGV4dCgp
OwotICAgIHZvaWQgY29tcG9zaXRlTGF5ZXJzKCk7CisgICAgdm9pZCBwYWludFRvQ3VycmVudEdM
Q29udGV4dChib29sIHBhaW50aW5nTWlycm9yZWQgPSBmYWxzZSk7CisgICAgdm9pZCBjb21wb3Np
dGVMYXllcnMoYm9vbCBwYWludGluZ01pcnJvcmVkID0gZmFsc2UpOwogCiAgICAgYm9vbCBmbHVz
aFBlbmRpbmdMYXllckNoYW5nZXMoKTsKICAgICB2b2lkIHN5bmNMYXllcnMoVGltZXI8QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ+Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApp
bmRleCA2Mjc5NDBkM2NjNDg3YzQwMWUwMzhlM2UyOWViOGEyMTgwNTQyNjkwLi45NjE2MWU0ZGRj
ODQ2Mjc3MzJiM2Y0OWViM2EzYjFjMDJhOTBiMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKQEAgLTQ1ODcsNiArNDU4NywxNCBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfc2NyZWVu
c2hvdF9jb250ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0CiAgICAg
cmV0dXJuIHNjcmVlbnNob3RJbWFnZTsKIH0KIAorY2Fpcm9fc3VyZmFjZV90KiBld2tfdmlld19p
bWFnZV9kYXRhX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgbnVsbHB0cik7CisgICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgbnVsbHB0cik7CisKKyAg
ICByZXR1cm4gcHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQtPmltYWdlRGF0YSgp
LmxlYWtSZWYoKTsKK30KKwogRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfdGlsZWRfYmFja2lu
Z19zdG9yZV9lbmFibGVkX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWJs
ZSkKIHsKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmgKaW5kZXggNDliMThmMmFmOTBkNTg1NDI5OTljNzExYzcwMzc5MTg3ODhhMTRhYy4uOGZiMWQy
OTIyNzU3NzhkOGYwNDg3NjZmYjdlMjcxMTk5MWRiNzdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmgKQEAgLTE0NCw2ICsxNDQsOCBAQCBlbnVtIF9Fd2tfRm9jdXNfRGlyZWN0aW9uIHsKIH07
CiB0eXBlZGVmIGVudW0gX0V3a19Gb2N1c19EaXJlY3Rpb24gRXdrX0ZvY3VzX0RpcmVjdGlvbjsK
IAordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OworCiAvLy8g
RXdrIHZpZXcncyBjbGFzcywgdG8gYmUgb3ZlcnJpZGRlbiBieSBzdWItY2xhc3Nlcy4KIHN0cnVj
dCBfRXdrX1ZpZXdfU21hcnRfQ2xhc3MgewogICAgIEV2YXNfU21hcnRfQ2xhc3Mgc2M7IC8qKjwg
QWxsIGJ1dCAnZGF0YScgaXMgZnJlZSB0byBiZSBjaGFuZ2VkLiAqLwpAQCAtMjQ5OCw2ICsyNTAw
LDE0IEBAIEVBUEkgRXdrX0NvbnRleHRfTWVudSAqZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChj
b25zdCBFdmFzX09iamVjdCAqbyk7CiAgKi8KIEVBUEkgRXZhc19PYmplY3QgKmV3a192aWV3X3Nj
cmVlbnNob3RfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFaW5hX1Jl
Y3RhbmdsZSAqYXJlYSwgZmxvYXQgc2NhbGUpOwogCisvKioKKyAqIEdldHMgYSBzdXJmYWNlIGZv
ciB0aGUgaW1hZ2UgZGF0YSBvZiB0aGUgZ2l2ZW4gZXdrVmlldy4KKyAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0CisgKgorICogQHJldHVybiBhIGNhaXJvX3N1cmZhY2VfdCBwb2ludGVyIHRvIHRoZSBu
ZXdseSBjcmVhdGVkIHN1cmZhY2UuCisgKi8KK0VBUEkgY2Fpcm9fc3VyZmFjZV90KiBld2tfdmll
d19pbWFnZV9kYXRhX2dldChjb25zdCBFdmFzX09iamVjdCogbyk7CisKICNpZmRlZiBfX2NwbHVz
cGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMzFhNTRjYTA3N2QzOTJlN2ZmZjBhMGYwZTYwNmZlN2JhMTY1NjUwNy4uOGEy
OTdkZTM3NmJkMjExZTdlMmUzZDU0N2JjMzJhZWQ4MDFmNzdkMiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTA0
LTA1ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZM
XSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRo
cyBvZiBXZWJLaXQyLUVGTCB3ZXJlIHRvdGFsbHkgbW9kaWZpZWQgZnJvbSByMTY2NzY4LiAKKyAg
ICAgICAgSG93ZXZlciBwaXhlbCBkdW1wIGNvZGVzIHN0aWxsIGNhbGwgZGVwcmVjYXRlZCBmdW5j
dGlvbnMgbGlrZSBld2tfdmlld19wYWludCgpLAorICAgICAgICB3aGljaCBjYXVzZXMgdGhhdCBu
b3RoaW5nIGlzIGRyYXduLgorICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHBpeGVsIGR1bXAgcHJv
YmxlbXMgYnkgYWRkaW5nIG5ldyBmdW5jdGlvbnMgdG8gZ2V0IGltYWdlIGRhdGEuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVmbC5jcHA6CisgICAgICAg
IChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorICAgICAgICBSZXBsYWNlIGV3a192
aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KCkgd2l0aCBld2tfdmlld19pbWFnZV9kYXRhX2dl
dCgpLgorCiAyMDE0LTA0LTA0ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIGtpbGwtb2xkLXByb2Nlc3NlcyBzaG91bGQga2ls
bCBkYnVzLWRhZW1vbiBwcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9QaXhlbER1bXBTdXBwb3J0RWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9Q
aXhlbER1bXBTdXBwb3J0RWZsLmNwcAppbmRleCAxYWFiNTUyNjgzNWFlNzRhY2ZjMmViYzZjMmFh
YzBlZmRhOTNlNjIwLi45ODkzOTI4MmQxMTZkYWU0NDhjOTE4NTY2ZTMwMjliZWFjNzA4M2Y1IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVmbC5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1BpeGVsRHVtcFN1cHBvcnRFZmwuY3Bw
CkBAIC01MSwxNyArNTEsOSBAQCBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1h
cENvbnRleHRGcm9tV2ViVmlldyhib29sLCBib29sLCBib29sLCBib29sCiAgICAgZXZhc19vYmpl
Y3RfZ2VvbWV0cnlfZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgpLCAmeCwgJnksICZ3aWR0aCwgJmhl
aWdodCk7CiAgICAgY29uc3QgRWluYV9SZWN0YW5nbGUgcmVjdCA9IHsgeCwgeSwgd2lkdGgsIGhl
aWdodCB9OwogCi0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVm
KGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHJlY3Qudywg
cmVjdC5oKSk7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVm
KGV3a192aWV3X2ltYWdlX2RhdGFfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCkpKTsKICAgICBSZWZQ
dHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShzdXJmYWNlLmdldCgp
KSk7CiAKLSAgICBSZWZQdHI8RXZhc19PYmplY3Q+IHNjcmVlbnNob3QgPSBld2tfdmlld19zY3Jl
ZW5zaG90X2NvbnRlbnRzX2dldChicm93c2VyLT5tYWluVmlldygpLCAmcmVjdCwgMSk7Ci0gICAg
aWYgKCFzY3JlZW5zaG90KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHVpbnQ4X3QqIHBpeGVs
cyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihldmFzX29iamVjdF9pbWFnZV9kYXRhX2dldChzY3Jl
ZW5zaG90LmdldCgpLCBmYWxzZSkpOwotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHNvdXJj
ZVN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShw
aXhlbHMsIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHJlY3QudywgcmVjdC5oLCByZWN0LncgKiA0KSk7
Ci0gICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNvbnRleHQuZ2V0KCksIHNvdXJjZVN1cmZh
Y2UuZ2V0KCksIDAsIDApOwotCiAgICAgaWYgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNU
cmFja2luZ1JlcGFpbnRzKG1haW5GcmFtZSkpIHsKICAgICAgICAgY2Fpcm9fcHVzaF9ncm91cChj
b250ZXh0LmdldCgpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228732</attachid>
            <date>2014-04-07 06:49:06 -0700</date>
            <delta_ts>2014-04-10 08:49:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131265-20140407224845.patch</filename>
            <type>text/plain</type>
            <size>9530</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggM2ExYzY0YjIw
Y2Y4ZDBlNDdkZWYxODNjMTZjM2Q3Mzk5MzA1ZGQwYS4uNjIzNjg2OGQ2OWI3MTkwOTk4MWFkY2M0
OTM1OWRhZDgyODQ4YjI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0
LTA0LTA3ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBb
RUZMXSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBw
YXRocyBvZiBXZWJLaXQyLUVGTCB3ZXJlIHRvdGFsbHkgbW9kaWZpZWQgZnJvbSByMTY2NzY4Lgor
ICAgICAgICBIb3dldmVyIHBpeGVsIGR1bXAgY29kZXMgc3RpbGwgY2FsbCBkZXByZWNhdGVkIGZ1
bmN0aW9ucyBsaWtlIGV3a192aWV3X3BhaW50KCksCisgICAgICAgIHdoaWNoIGNhdXNlcyB0aGF0
IG5vdGhpbmcgaXMgZHJhd24uCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBBUEkgQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmV4dHJhY3RJbWFnZURhdGEoKSB0aGF0CisgICAg
ICAgIHJlcGxhY2VzIGRlcHJlY2F0ZWQgZnVuY3Rpb24gY2FsbHMuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQpOgorICAgICAgICBDcmVhdGUgVGV4dHVyZU1hcHBlciB3aXRoIGEgcHJv
cGVyIGJhY2tlbmQuCisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgUmV2aXNlIGEgbnVsbCBj
aGVjayBmb3IgbV9yb290TGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6cGFpbnRUb0dyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIFJlbW92ZSBh
IGNyZWF0aW9uIGNoZWNrIGZvciBUZXh0dXJlTWFwcGVyR0wuCisgICAgICAgIChXZWJDb3JlOjpB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0Ojpjb21wb3NpdGVMYXllcnMpOgorICAgICAgICBBZGQgYSBwYWludGluZ01pcnJvcmVk
IGZsYWcgY2hlY2suCisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6ZXh0cmFjdEltYWdlRGF0YSk6CisgICAgICAgIEV4dHJhY3QgaW1hZ2UgZGF0YSBmcm9t
IHRoZSB2aWV3IGFuZCBjb3B5IGl0IHRvIGdpdmVuIEV2YXNfT2JqZWN0LgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmg6CisgICAgICAg
ICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X3NjcmVlbnNob3RfY29udGVu
dHNfZ2V0KToKKwogMjAxNC0wNC0wNSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF1bV0sxXSBBcHBseSBvdmVycmlkZSBhbmQgZmluYWwga2V5d29y
ZCBmb3IgQ2hyb21lQ2xpZW50RWZsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVm
bC5jcHAKaW5kZXggZmFkYjU3Yzc1NjBiZWZkNjkwZThmMjNhOTEzYTNlNzMyN2MxYjNiNi4uODQ5
NTFhZjJlZGQxMzAwYTdmZjI5NDc4N2IzMzBiMmViMjM1Y2NkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2lmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKIAogI2luY2x1ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
RWZsLmgiCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDYWlyb1V0aWxp
dGllc0VmbC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgiCiAjaW5j
bHVkZSAiTWFpbkZyYW1lLmgiCkBAIC01Myw4ICs1NCwxMyBAQCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoRXZhc19PYmplY3QqIGV3
a1ZpZQogICAgICAgICAgICAgbV9ldmFzR0xDb250ZXh0ID0gRXZhc0dMQ29udGV4dDo6Y3JlYXRl
KG1fZXZhc0dMLmdldCgpKTsKICAgICB9CiAKLSAgICBpZiAoIW1fZXZhc0dMQ29udGV4dCkKKyAg
ICBpZiAobV9ldmFzR0xDb250ZXh0KSB7CisgICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1
cmVNYXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4obV90ZXh0dXJlTWFwcGVyLmdldCgpKS0+c2V0RW5h
YmxlRWRnZURpc3RhbmNlQW50aWFsaWFzaW5nKHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICAg
IG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpT
b2Z0d2FyZU1vZGUpOwogICAgICAgICBtX2lzQWNjZWxlcmF0ZWQgPSBmYWxzZTsKKyAgICB9CiB9
CiAKIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojp+QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQoKQpAQCAtMTIyLDE4ICsxMjgsMTMgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6Zmx1c2hBbmRSZW5kZXJMYXllcnMoKQogCiBib29sIEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogewotICAgIGlmICgh
bV9yb290TGF5ZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fcm9vdExheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgaWYgKG1fcm9vdExh
eWVyKQorICAgICAgICBtX3Jvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seSgpOwogICAgIHJldHVybiBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3ZpZXcpLT5tYWlu
RnJhbWUoKS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygp
OwogfQogCiB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvR3JhcGhp
Y3NDb250ZXh0KCkKIHsKLSAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikKLSAgICAgICAgbV90ZXh0
dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6OlNvZnR3YXJl
TW9kZSk7Ci0KICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gY3JlYXRlU3Vy
ZmFjZUZvckltYWdlKG1fY29tcG9zaXRpbmdPYmplY3QpOwogICAgIGlmICghc3VyZmFjZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTQ1LDIzICsxNDYsMTkgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6cGFpbnRUb0dyYXBoaWNzQ29udGV4dCgpCiAgICAgY29tcG9zaXRlTGF5
ZXJzKCk7CiB9CiAKLXZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9D
dXJyZW50R0xDb250ZXh0KCkKK3ZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBh
aW50VG9DdXJyZW50R0xDb250ZXh0KGJvb2wgcGFpbnRpbmdNaXJyb3JlZCkKIHsKLSAgICBpZiAo
IW1fdGV4dHVyZU1hcHBlcikgewotICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFw
cGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSk7Ci0gICAgICAgIHN0YXRpY19j
YXN0PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVyZU1hcHBlci5nZXQoKSktPnNldEVuYWJsZUVk
Z2VEaXN0YW5jZUFudGlhbGlhc2luZyh0cnVlKTsKLSAgICB9Ci0KICAgICBpZiAoIWV2YXNfZ2xf
bWFrZV9jdXJyZW50KG1fZXZhc0dMLmdldCgpLCBtX2V2YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwg
bV9ldmFzR0xDb250ZXh0LT5jb250ZXh0KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBldmFz
X2dsX2FwaV9nZXQobV9ldmFzR0wuZ2V0KCkpLT5nbFZpZXdwb3J0KDAsIDAsIG1fdmlld1NpemUu
d2lkdGgoKSwgbV92aWV3U2l6ZS5oZWlnaHQoKSk7CisgICAgZXZhc19nbF9hcGlfZ2V0KG1fZXZh
c0dMLmdldCgpKS0+Z2xDbGVhckNvbG9yKDEsIDAuNSwgMSwgMSk7CiAgICAgZXZhc19nbF9hcGlf
Z2V0KG1fZXZhc0dMLmdldCgpKS0+Z2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsKIAotICAg
IGNvbXBvc2l0ZUxheWVycygpOworICAgIGNvbXBvc2l0ZUxheWVycyhwYWludGluZ01pcnJvcmVk
KTsKIH0KIAotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Y29tcG9zaXRlTGF5
ZXJzKCkKK3ZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmNvbXBvc2l0ZUxheWVy
cyhib29sIHBhaW50aW5nTWlycm9yZWQpCiB7CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBjdXJy
ZW50Um9vdExheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIobV9yb290TGF5ZXIpOwogICAgIGlm
ICghY3VycmVudFJvb3RMYXllcikKQEAgLTE3MCw3ICsxNjcsNyBAQCB2b2lkIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Ojpjb21wb3NpdGVMYXllcnMoKQogICAgIGN1cnJlbnRSb290TGF5
ZXItPnNldFRleHR1cmVNYXBwZXIobV90ZXh0dXJlTWFwcGVyLmdldCgpKTsKICAgICBjdXJyZW50
Um9vdExheWVyLT5hcHBseUFuaW1hdGlvbnNSZWN1cnNpdmVseSgpOwogCi0gICAgbV90ZXh0dXJl
TWFwcGVyLT5iZWdpblBhaW50aW5nKCk7CisgICAgbV90ZXh0dXJlTWFwcGVyLT5iZWdpblBhaW50
aW5nKHBhaW50aW5nTWlycm9yZWQgPyBUZXh0dXJlTWFwcGVyOjpQYWludGluZ01pcnJvcmVkIDog
MCk7CiAgICAgbV90ZXh0dXJlTWFwcGVyLT5iZWdpbkNsaXAoVHJhbnNmb3JtYXRpb25NYXRyaXgo
KSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3U2l6ZSkpOwogICAgIGN1cnJlbnRSb290
TGF5ZXItPnBhaW50KCk7CiAgICAgbV9mcHNDb3VudGVyLnVwZGF0ZUZQU0FuZERpc3BsYXkobV90
ZXh0dXJlTWFwcGVyLmdldCgpKTsKQEAgLTE4OSw2ICsxODYsNDYgQEAgdm9pZCBBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6c2V0Um9vdEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllciog
cm9vdExheWUKICAgICAgICAgbV9zeW5jVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lk
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpleHRyYWN0SW1hZ2VEYXRhKEV2YXNfT2Jq
ZWN0KiBidWZmZXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgQVNTRVJUKGJ1ZmZlcik7
CisgICAgQVNTRVJUKCFyZWN0LmlzRW1wdHkoKSk7CisKKyAgICBib29sIGZsdXNoZWQgPSBmbHVz
aFBlbmRpbmdMYXllckNoYW5nZXMoKTsKKworICAgIGlmIChtX2lzQWNjZWxlcmF0ZWQpIHsKKyAg
ICAgICAgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJ1ZSk7CisKKyAgICAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gc291cmNlU3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZh
Y2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIG1fdmlld1NpemUud2lkdGgoKSwgbV92aWV3
U2l6ZS5oZWlnaHQoKSkpOworICAgICAgICB1aW50OF90KiBzb3VyY2UgPSBzdGF0aWNfY2FzdDx1
aW50OF90Kj4oY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzb3VyY2VTdXJmYWNlLmdldCgp
KSk7CisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzRCA9IHN0YXRpY19jYXN0
PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVyZU1hcHBlci5nZXQoKSktPmdyYXBoaWNzQ29udGV4
dDNEKCk7CisgICAgICAgIGNvbnRleHQzRC0+cmVhZFBpeGVscyhyZWN0LngoKSwgcmVjdC55KCks
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEsIEdy
YXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBzb3VyY2UpOworCisgICAgICAgIGV2YXNf
b2JqZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoYnVmZmVyLCBzb3VyY2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKGZsdXNoZWQpCisgICAgICAgIHBhaW50VG9HcmFwaGljc0Nv
bnRleHQoKTsKKworICAgIHVpbnQ4X3QqIGltYWdlRGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihldmFzX29iamVjdF9pbWFnZV9kYXRhX2dldChtX2NvbXBvc2l0aW5nT2JqZWN0LCBmYWxzZSkp
OworCisgICAgaWYgKG1fdmlld1NpemUgPT0gcmVjdC5zaXplKCkpCisgICAgICAgIGV2YXNfb2Jq
ZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoYnVmZmVyLCBpbWFnZURhdGEpOworICAgIGVsc2Ugewor
ICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzb3VyY2UgPSBhZG9wdFJlZihjYWlyb19p
bWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShpbWFnZURhdGEsIENBSVJPX0ZPUk1BVF9BUkdC
MzIsIG1fdmlld1NpemUud2lkdGgoKSwgbV92aWV3U2l6ZS5oZWlnaHQoKSwgbV92aWV3U2l6ZS53
aWR0aCgpICogNCkpOworCisgICAgICAgIHVpbnQ4X3QqIGJ1ZmZlclB0ciA9IHN0YXRpY19jYXN0
PHVpbnQ4X3QqPihldmFzX29iamVjdF9pbWFnZV9kYXRhX2dldChidWZmZXIsIHRydWUpKTsKKyAg
ICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZGVzdGluYXRpb24gPSBhZG9wdFJlZihjYWly
b19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXJQdHIsIENBSVJPX0ZPUk1BVF9B
UkdCMzIsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgcmVjdC53aWR0aCgpICogNCkpOwor
CisgICAgICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoc291cmNlLmdldCgpLCBk
ZXN0aW5hdGlvbi5nZXQoKSwgSW50U2l6ZSgpLCByZWN0LCBJbnRTaXplKCksIENBSVJPX09QRVJB
VE9SX1NPVVJDRSk7CisgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfc2V0KGJ1ZmZlciwg
YnVmZmVyUHRyKTsKKyAgICB9CisKKyAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3NldChtX2Nv
bXBvc2l0aW5nT2JqZWN0LCBpbWFnZURhdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVm
bC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRFZmwuaAppbmRleCA2OTZjM2RkNWQ4ZmJhMTg3YWY4ODllYmZkYjZiZTEwYTQ0
NmY3M2M3Li44Y2RhM2M5YTE0YjMyMmFmMjZmMjc3YTBkYjE0NDcwMDhmNmM1NjkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKQEAgLTQ2LDEwICs0NiwxMiBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXNpemUoY29uc3QgSW50U2l6ZSYpOwogICAgIHZvaWQgZmx1c2hBbmRS
ZW5kZXJMYXllcnMoKTsKIAorICAgIHZvaWQgZXh0cmFjdEltYWdlRGF0YShFdmFzX09iamVjdCos
IGNvbnN0IEludFJlY3QmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHBhaW50VG9HcmFwaGljc0Nv
bnRleHQoKTsKLSAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCk7Ci0gICAgdm9pZCBj
b21wb3NpdGVMYXllcnMoKTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGJvb2wg
cGFpbnRpbmdNaXJyb3JlZCA9IGZhbHNlKTsKKyAgICB2b2lkIGNvbXBvc2l0ZUxheWVycyhib29s
IHBhaW50aW5nTWlycm9yZWQgPSBmYWxzZSk7CiAKICAgICBib29sIGZsdXNoUGVuZGluZ0xheWVy
Q2hhbmdlcygpOwogICAgIHZvaWQgc3luY0xheWVycyhUaW1lcjxBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dD4qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDYyNzk0MGQz
Y2M0ODdjNDAxZTAzOGUzZTI5ZWI4YTIxODA1NDI2OTAuLmU3OWUzN2FiMWY2ZDBlN2FkNTA5NmM1
ZjQzNjA3YTRmOGQyZmIwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDU3
NCwxNSArNDU3NCw3IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRz
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QKICAgICBldmFzX29iamVjdF9p
bWFnZV9jb2xvcnNwYWNlX3NldChzY3JlZW5zaG90SW1hZ2UsIEVWQVNfQ09MT1JTUEFDRV9BUkdC
ODg4OCk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChzY3JlZW5zaG90
SW1hZ2UsIHRydWUpOwogCi0gICAgRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQgPSBld2tfcGFp
bnRfY29udGV4dF9mcm9tX2ltYWdlX25ldyhzY3JlZW5zaG90SW1hZ2UpOwotICAgIGV3a19wYWlu
dF9jb250ZXh0X3NhdmUoY29udGV4dCk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfc2NhbGUoY29u
dGV4dCwgc2NhbGUsIHNjYWxlKTsKLSAgICBld2tfcGFpbnRfY29udGV4dF90cmFuc2xhdGUoY29u
dGV4dCwgLTEgKiBhcmVhLT54LCAtMSAqIGFyZWEtPnkpOwotCi0gICAgZXdrX3ZpZXdfcGFpbnQo
cHJpdiwgY29udGV4dCwgYXJlYSk7Ci0KLSAgICBld2tfcGFpbnRfY29udGV4dF9yZXN0b3JlKGNv
bnRleHQpOwotICAgIGV3a19wYWludF9jb250ZXh0X2ZyZWUoY29udGV4dCk7CisgICAgcHJpdi0+
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQtPmV4dHJhY3RJbWFnZURhdGEoc2NyZWVuc2hv
dEltYWdlLCBXZWJDb3JlOjpJbnRSZWN0KCphcmVhKSk7CiAKICAgICByZXR1cm4gc2NyZWVuc2hv
dEltYWdlOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229051</attachid>
            <date>2014-04-10 08:49:50 -0700</date>
            <delta_ts>2014-04-11 18:45:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131265-20140411004928.patch</filename>
            <type>text/plain</type>
            <size>22378</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEwMDczYjEwMzVkYzli
Y2UxMjliMmUxZWU4YTZmM2I5NGIwMGQ5Ni4uOThlMDRlNjM2ODJjMTA0ZjViNjhmZmU2NGRmNzk3
MTEwNGFjMTE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA0LTEwICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcHJv
YmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBvZiBXZWJL
aXQyLUVGTCB3ZXJlIHRvdGFsbHkgbW9kaWZpZWQgZnJvbSByMTY2NzY4LgorICAgICAgICBIb3dl
dmVyIHBpeGVsIGR1bXAgY29kZXMgc3RpbGwgY2FsbCBkZXByZWNhdGVkIGZ1bmN0aW9ucyBsaWtl
IGV3a192aWV3X3BhaW50KCksCisgICAgICAgIHdoaWNoIGNhdXNlcyB0aGF0IG5vdGhpbmcgaXMg
ZHJhd24uCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBBUEkgZm9yIHBpeGVsIGR1bXAg
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmV4dHJhY3RJbWFnZURhdGEoKQorICAgICAg
ICB0aGF0IHJlcGxhY2VzIGRlcHJlY2F0ZWQgZnVuY3Rpb24gY2FsbHMgYW5kIG1ha2VzIGV3a192
aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KCkKKyAgICAgICAgdG8gdGFrZSB0aGUgdmlzaWJs
ZSBjb250ZW50IGRpc3BsYXllZCBvbiB0aGUgd2Vidmlldy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZs
aXBWZXJ0aWNhbGx5KTogRmxpcCBwaXhlbCBkYXRhIG9mIGdpdmVuIGNhaXJvX3N1cmZhY2VfdCB2
ZXJ0aWNhbGx5IHVwL2Rvd24uCisgICAgICAgIFdoZXJlYXMgQ2Fpcm8gdXNlcyB0aGUgdG9wLWxl
ZnQgY29ybmVyIGFzIGJlaW5nIDAsMCBvZiB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0sCisgICAgICAg
IE9wZW5HTCB1c2VzIHRoZSBib3R0b20tbGVmdCBjb3JuZXIgYmVpbmcgMCwwLgorICAgICAgICBT
byB3ZSBuZWVkIHRvIHZlcnRpY2FsbHkgZmxpcCByZXN1bHRhbnQgaW1hZ2VzIHRha2VuIGJ5IGds
UmVhZFBpeGVscygpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRp
bGl0aWVzLmg6CisKIDIwMTQtMDQtMDggIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBuaWwgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3Igb2JqZWN0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDUwNDk1ZmZhNmQ5MzY1MDVhMDVhYmI2NDhmODhhNWU3OThkN2Rj
M2MuLjM5MGI4ODg2MWQ5ZDJiZjgxOWZmYjk0NzM2ODgyMjU1NzFmOTk2ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxNC0wNC0xMCAgSHlvd29uIEtpbSAgPGh3MTAwOC5r
aW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRml4IHByb2JsZW1zIHdpdGggdGhlIHBp
eGVsIGR1bXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzEyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYWludGluZyBhbmQgY29tcG9zaXRpbmcgcGF0aHMgb2YgV2ViS2l0Mi1FRkwgd2VyZSB0b3Rh
bGx5IG1vZGlmaWVkIGZyb20gcjE2Njc2OC4KKyAgICAgICAgSG93ZXZlciBwaXhlbCBkdW1wIGNv
ZGVzIHN0aWxsIGNhbGwgZGVwcmVjYXRlZCBmdW5jdGlvbnMgbGlrZSBld2tfdmlld19wYWludCgp
LAorICAgICAgICB3aGljaCBjYXVzZXMgdGhhdCBub3RoaW5nIGlzIGRyYXduLgorICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgYSBuZXcgQVBJIGZvciBwaXhlbCBkdW1wIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpleHRyYWN0SW1hZ2VEYXRhKCkKKyAgICAgICAgdGhhdCByZXBsYWNlcyBk
ZXByZWNhdGVkIGZ1bmN0aW9uIGNhbGxzIGFuZCBtYWtlcyBld2tfdmlld19zY3JlZW5zaG90X2Nv
bnRlbnRzX2dldCgpCisgICAgICAgIHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNwbGF5
ZWQgb24gdGhlIHdlYnZpZXcuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQpOgorICAg
ICAgICBDcmVhdGUgVGV4dHVyZU1hcHBlciB3aXRoIGEgcHJvcGVyIGJhY2tlbmQuCisgICAgICAg
IChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Zmx1c2hQZW5kaW5nTGF5
ZXJDaGFuZ2VzKToKKyAgICAgICAgUmV2aXNlIGEgbnVsbCBjaGVjayBmb3IgbV9yb290TGF5ZXIu
CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRU
b0dyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIFJlbW92ZSBhIGNyZWF0aW9uIGNoZWNrIGZvciBU
ZXh0dXJlTWFwcGVyR0wuCisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpleHRyYWN0SW1hZ2VE
YXRhKTogQWRkZWQuCisgICAgICAgIEV4dHJhY3QgaW1hZ2UgZGF0YSBmcm9tIHRoZSB2aWV3IGFu
ZCBjb3B5IGl0IHRvIGdpdmVuIEV2YXNfT2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmdldEltYWdlRGF0YSk6IEFkZGVkLgorICAgICAgICBH
ZXQgaW1hZ2UgZGF0YSBmcm9tIHRoZSB2aWV3IGFuZCByZXR1cm4gaXQgYXMgY2Fpcm9fc3VyZmFj
ZV90IG9uIHNvZnR3YXJlIG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6Z2V0SW1hZ2VEYXRhR0wpOiBBZGRlZC4KKyAgICAgICAgR2V0IGltYWdl
IGRhdGEgZnJvbSB0aGUgdmlldyBhbmQgcmV0dXJuIGl0IGFzIGNhaXJvX3N1cmZhY2VfdCBvbiBH
TCBtb2RlLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VQYWlu
dCk6IFJlcGFpbnQgdGhlIGVudGlyZSB3ZWJ2aWV3IGJlZm9yZSBwaXhlbCBkdW1wLgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorICAgICAgICAq
IGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19tYXJrX2Zvcl9zeW5jKTogUmVt
b3ZlIGFuIHVubmVjZXNzYXJ5IGxpbmUuCisgICAgICAgIChld2tfdmlld19mb3JjZV9wYWludCk6
IENhbGwgZmx1c2hBbmRSZW5kZXJMYXllcnMoKS4KKyAgICAgICAgKGV3a192aWV3X3NjcmVlbnNo
b3RfY29udGVudHNfZ2V0KTogUmVtb3ZlICdzY2FsZScgcGFyYW1ldGVyIGFuZCByZXBsYWNlIGV3
a192aWV3X3BhaW50KCkKKyAgICAgICAgd2l0aCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6ZXh0cmFjdEltYWdlRGF0YSgpLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorICAgICAg
ICAqIGV3ay9ld2tfdmlld19wcml2YXRlLmg6CisgICAgICAgICogdGVzdHMvdGVzdF9ld2tfdmll
dy5jcHA6CisgICAgICAgIChURVNUX0YpOgorCiAyMDE0LTA0LTA4ICBSeXVhbiBDaG9pICA8cnl1
YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBidWlsZCBmaXgg
YXR0ZW1wdCBzaW5jZSByMTY2OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggMGQ3NDcxMTA3YmY4
NmNlNWVjMDZmNTA0MjJlYWRmODI2MDcyZjZhMy4uOTY1NjU2ZTdmMzExYjU0OGViNmRhNDhjMjEw
ODBiYWMyMTQ2Njc0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcApAQCAtMjU5LDQgKzI1OSwyNSBAQCBJ
bnRTaXplIGNhaXJvU3VyZmFjZVNpemUoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogICAgIH0K
IH0KIAordm9pZCBmbGlwVmVydGljYWxseShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UpCit7Cisg
ICAgSW50U2l6ZSBzaXplID0gY2Fpcm9TdXJmYWNlU2l6ZShzdXJmYWNlKTsKKyAgICBBU1NFUlQo
IXNpemUuaXNFbXB0eSgpKTsKKworICAgIGludCBzdHJpZGUgPSBjYWlyb19pbWFnZV9zdXJmYWNl
X2dldF9zdHJpZGUoc3VyZmFjZSk7CisgICAgaW50IGhhbGZIZWlnaHQgPSBzaXplLmhlaWdodCgp
IC8gMjsKKworICAgIHVpbnQ4X3QqIHNvdXJjZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjYWly
b19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKHN1cmZhY2UpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
dWludDhfdFtdPiB0bXAgPSBzdGQ6Om1ha2VfdW5pcXVlPHVpbnQ4X3RbXT4oc3RyaWRlKTsKKwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGFsZkhlaWdodDsgKytpKSB7CisgICAgICAgIHVpbnQ4
X3QqIHRvcCA9IHNvdXJjZSArIChpICogc3RyaWRlKTsKKyAgICAgICAgdWludDhfdCogYm90dG9t
ID0gc291cmNlICsgKChzaXplLmhlaWdodCgpLWktMSkgKiBzdHJpZGUpOworCisgICAgICAgIG1l
bWNweSh0bXAuZ2V0KCksIHRvcCwgc3RyaWRlKTsKKyAgICAgICAgbWVtY3B5KHRvcCwgYm90dG9t
LCBzdHJpZGUpOworICAgICAgICBtZW1jcHkoYm90dG9tLCB0bXAuZ2V0KCksIHN0cmlkZSk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaAppbmRleCA4YmRi
ZjljMTAxOGU1MGEwNThmNTcwNDRkZWMxNThiYmUzNDdhMTJhLi45MzYwMzc1NDU4MjZmZmZiM2Ux
Nzg0MWM5OThjNTQxYjU5MDE4NjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKQEAgLTU2LDYgKzU2LDcgQEAg
dm9pZCBjb3B5UmVjdEZyb21DYWlyb1N1cmZhY2VUb0NvbnRleHQoY2Fpcm9fc3VyZmFjZV90KiBm
cm9tLCBjYWlyb190KiB0bywgY29uc3QKIHZvaWQgY29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5v
dGhlcihjYWlyb19zdXJmYWNlX3QqIGZyb20sIGNhaXJvX3N1cmZhY2VfdCogdG8sIGNvbnN0IElu
dFNpemUmIG9mZnNldCwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgp
LCBjYWlyb19vcGVyYXRvcl90ID0gQ0FJUk9fT1BFUkFUT1JfT1ZFUik7CiAKIEludFNpemUgY2Fp
cm9TdXJmYWNlU2l6ZShjYWlyb19zdXJmYWNlX3QqKTsKK3ZvaWQgZmxpcFZlcnRpY2FsbHkoY2Fp
cm9fc3VyZmFjZV90Kik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCmluZGV4IGZhZGI1N2M3NTYwYmVmZDY5MGU4ZjIz
YTkxM2EzZTczMjdjMWIzYjYuLmYyZWFhMGU3ZWYxNGI4ZDlkOGVmMzg3Yjc1YzA1YjY3NmEwN2E3
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKQEAgLTIyLDYg
KzIyLDcgQEAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNpbmNsdWRlICJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIgorI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgi
CiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXNFZmwuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgpAQCAtNTMsOCArNTQsMTMg
QEAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0KEV2YXNfT2JqZWN0KiBld2tWaWUKICAgICAgICAgICAgIG1fZXZhc0dMQ29udGV4dCA9
IEV2YXNHTENvbnRleHQ6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSk7CiAgICAgfQogCi0gICAgaWYg
KCFtX2V2YXNHTENvbnRleHQpCisgICAgaWYgKG1fZXZhc0dMQ29udGV4dCkgeworICAgICAgICBt
X3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3Bl
bkdMTW9kZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVy
ZU1hcHBlci5nZXQoKSktPnNldEVuYWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlhc2luZyh0cnVlKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpj
cmVhdGUoVGV4dHVyZU1hcHBlcjo6U29mdHdhcmVNb2RlKTsKICAgICAgICAgbV9pc0FjY2VsZXJh
dGVkID0gZmFsc2U7CisgICAgfQogfQogCiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
fkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KCkKQEAgLTEyMiwxOCArMTI4LDEzIEBAIHZv
aWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoQW5kUmVuZGVyTGF5ZXJzKCkK
IAogYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Zmx1c2hQZW5kaW5nTGF5ZXJD
aGFuZ2VzKCkKIHsKLSAgICBpZiAoIW1fcm9vdExheWVyKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBtX3Jvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eSgpOworICAgIGlmIChtX3Jvb3RMYXllcikKKyAgICAgICAgbV9yb290TGF5ZXItPmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICByZXR1cm4gRVdLUHJpdmF0ZTo6
Y29yZVBhZ2UobV92aWV3KS0+bWFpbkZyYW1lKCkudmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0KIAogdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6cGFpbnRUb0dyYXBoaWNzQ29udGV4dCgpCiB7Ci0gICAgaWYgKCFtX3RleHR1cmVN
YXBwZXIpCi0gICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShU
ZXh0dXJlTWFwcGVyOjpTb2Z0d2FyZU1vZGUpOwotCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2Vf
dD4gc3VyZmFjZSA9IGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShtX2NvbXBvc2l0aW5nT2JqZWN0KTsK
ICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE0NywxMSArMTQ4LDYgQEAg
dm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRUb0dyYXBoaWNzQ29udGV4
dCgpCiAKIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9DdXJyZW50
R0xDb250ZXh0KCkKIHsKLSAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikgewotICAgICAgICBtX3Rl
eHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdM
TW9kZSk7Ci0gICAgICAgIHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVyZU1h
cHBlci5nZXQoKSktPnNldEVuYWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlhc2luZyh0cnVlKTsKLSAg
ICB9Ci0KICAgICBpZiAoIWV2YXNfZ2xfbWFrZV9jdXJyZW50KG1fZXZhc0dMLmdldCgpLCBtX2V2
YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgbV9ldmFzR0xDb250ZXh0LT5jb250ZXh0KCkpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTE4OSw2ICsxODUsNTIgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6c2V0Um9vdEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllciogcm9vdExh
eWUKICAgICAgICAgbV9zeW5jVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpleHRyYWN0SW1hZ2VEYXRhKEV2YXNfT2JqZWN0KiBi
dWZmZXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgQVNTRVJUKGJ1ZmZlcik7CisKKyAg
ICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWlnaHQ7CisgICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9n
ZXQoYnVmZmVyLCAmd2lkdGgsICZoZWlnaHQpOworCisgICAgQVNTRVJUKHJlY3Qud2lkdGgoKSA9
PSB3aWR0aCk7CisgICAgQVNTRVJUKHJlY3QuaGVpZ2h0KCkgPT0gaGVpZ2h0KTsKKworICAgIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGltYWdlRGF0YTsKKyAgICBpZiAobV9pc0FjY2VsZXJhdGVk
KSB7CisgICAgICAgIGltYWdlRGF0YSA9IGdldEltYWdlRGF0YUdMKHJlY3QpOworICAgICAgICBm
bGlwVmVydGljYWxseShpbWFnZURhdGEuZ2V0KCkpOworICAgIH0gZWxzZQorICAgICAgICBpbWFn
ZURhdGEgPSBnZXRJbWFnZURhdGEocmVjdCk7CisKKyAgICBldmFzX29iamVjdF9pbWFnZV9kYXRh
X2NvcHlfc2V0KGJ1ZmZlciwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNhaXJvX2ltYWdlX3N1cmZhY2Vf
Z2V0X2RhdGEoaW1hZ2VEYXRhLmdldCgpKSkpOworfQorCitQYXNzUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmdldEltYWdlRGF0YShjb25zdCBJ
bnRSZWN0JiByZWN0KQoreworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHNvdXJjZSA9IGNy
ZWF0ZVN1cmZhY2VGb3JJbWFnZShtX2NvbXBvc2l0aW5nT2JqZWN0KTsKKyAgICBldmFzX29iamVj
dF9pbWFnZV9kYXRhX3NldChtX2NvbXBvc2l0aW5nT2JqZWN0LCBzdGF0aWNfY2FzdDx2b2lkKj4o
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzb3VyY2UuZ2V0KCkpKSk7CisKKyAgICBpZiAo
bV92aWV3U2l6ZSA9PSByZWN0LnNpemUoKSkKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5yZWxlYXNl
KCk7CisKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBkZXN0aW5hdGlvbiA9IGFkb3B0UmVm
KGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSkpOworICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3Ro
ZXIoc291cmNlLmdldCgpLCBkZXN0aW5hdGlvbi5nZXQoKSwgLUludFNpemUocmVjdC54KCksIHJl
Y3QueSgpKSwgSW50UmVjdChJbnRQb2ludCgpLCByZWN0LnNpemUoKSksIEludFNpemUoKSwgQ0FJ
Uk9fT1BFUkFUT1JfU09VUkNFKTsKKyAgICByZXR1cm4gZGVzdGluYXRpb24ucmVsZWFzZSgpOwor
fQorCitQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OmdldEltYWdlRGF0YUdMKGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgaWYgKCFl
dmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJm
YWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzb3VyY2UgPSBhZG9wdFJlZihjYWly
b19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCByZWN0LndpZHRoKCks
IHJlY3QuaGVpZ2h0KCkpKTsKKyAgICB1aW50OF90KiBzb3VyY2VQdHIgPSBzdGF0aWNfY2FzdDx1
aW50OF90Kj4oY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzb3VyY2UuZ2V0KCkpKTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M0QgPSBzdGF0aWNfY2FzdDxUZXh0dXJlTWFw
cGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAg
IGNvbnRleHQzRC0+cmVhZFBpeGVscyhyZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwg
cmVjdC5oZWlnaHQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEsIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9CWVRFLCBzb3VyY2VQdHIpOworICAgIHJldHVybiBzb3VyY2UucmVsZWFzZSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAppbmRleCBlOTA5
MGZjNzhmNTIzZDdjMTE2NzE1NjBkZDAyMDNmOTYxMmRiMzAwLi5hODk5NmEyOWM1ZTBiNTQ3ZDc2
MjQyNzY1MTc2ZDNmMWEyOWZiNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
RWZsLmgKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzaXplKGNvbnN0IElu
dFNpemUmKTsKICAgICB2b2lkIGZsdXNoQW5kUmVuZGVyTGF5ZXJzKCk7CiAKKyAgICB2b2lkIGV4
dHJhY3RJbWFnZURhdGEoRXZhc19PYmplY3QqLCBjb25zdCBJbnRSZWN0Jik7CisKIHByaXZhdGU6
CiAgICAgdm9pZCBwYWludFRvR3JhcGhpY3NDb250ZXh0KCk7CiAgICAgdm9pZCBwYWludFRvQ3Vy
cmVudEdMQ29udGV4dCgpOwpAQCAtNTMsNiArNTUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgZmx1
c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCk7CiAgICAgdm9pZCBzeW5jTGF5ZXJzKFRpbWVyPEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0PiopOwogCisgICAgUGFzc1JlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IGdldEltYWdlRGF0YShjb25zdCBJbnRSZWN0Jik7CisgICAgUGFzc1JlZlB0cjxjYWly
b19zdXJmYWNlX3Q+IGdldEltYWdlRGF0YUdMKGNvbnN0IEludFJlY3QmKTsKKwogICAgIEV2YXNf
T2JqZWN0KiBtX3ZpZXc7CiAgICAgRXZhc19PYmplY3QqIG1fY29tcG9zaXRpbmdPYmplY3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGRkYzc0YzAzZDhmMWJiNjQ0YjA0ZTNiMGNj
ZmI2NmJlYWQ5ODExMGMuLjIxZWQ0NDIyY2I0YmNjYWQwZmM1OGNiZmQxZDI0YzZhMzY2N2FkMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtMzQ5LDYgKzM0OSwxMSBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1l
KQogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdrRnJhbWUpOwogfQogCit2b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VQYWludChFdmFzX09iamVjdCogZXdrVmlldykKK3sK
KyAgICBld2tfdmlld19mb3JjZV9wYWludChld2tWaWV3KTsKK30KKwogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFRyYWNrc1JlcGFpbnRzKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
Ym9vbCBlbmFibGVkKQogewogICAgIERSVF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdr
RnJhbWUsIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggM2ZlNWUxMzEyYjA2NzMw
YTJiODBmMDcxYzI0YzUxMWIyOTY3MGZiYS4uNDliYjdjNmQ2ZGJlMDk2OTU5MzYwMDU1Y2I5ZjU2
ZmFhNGRlMDAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHNldFdlYkF1ZGlvRW5hYmxlZChFdmFzX09iamVjdCogZXdr
VmlldywgYm9vbCk7CiAKICAgICBzdGF0aWMgdm9pZCBmb3JjZUxheW91dChFdmFzX09iamVjdCog
ZXdrRnJhbWUpOworICAgIHN0YXRpYyB2b2lkIGZvcmNlUGFpbnQoRXZhc19PYmplY3QqIGV3a0Zy
YW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRUcmFja3NSZXBhaW50cyhFdmFzX09iamVjdCogZXdr
RnJhbWUsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgcmVzZXRUcmFja2VkUmVwYWlu
dHMoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKICAgICBzdGF0aWMgYm9vbCBpc1RyYWNraW5nUmVw
YWludHMoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCmluZGV4IDIwODQxNDFlNjY3NmQwYjRhYTVmNWRmODBlMzE1OGIxNmFkNGI1ODQuLjc5
M2IzOWZmMTIwZmU4MGQ2YWUxODczNDEyMDNmOTk2NWQ2YzUyNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcApAQCAtNDQxMiwxMyArNDQxMiwyMCBAQCB2b2lkIGV3a192aWV3X3Jvb3Rf
Z3JhcGhpY3NfbGF5ZXJfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJDb3JlOjpHcmFwaGlj
c0xheQogdm9pZCBld2tfdmlld19tYXJrX2Zvcl9zeW5jKEV2YXNfT2JqZWN0KiBld2tWaWV3KQog
ewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKLSAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKIAogICAgIC8v
IE1hcmsgdGhlIGltYWdlIGFzICJkaXJ0eSIgbWVhbmluZyBpdCBuZWVkcyBhbiB1cGRhdGUgbmV4
dCB0aW1lIGV2YXMgcmVuZGVycy4KICAgICAvLyBJdCB3aWxsIGNhbGwgdGhlIHBpeGVsIGdldCBj
YWxsYmFjayB0aGVuLgogICAgIGV2YXNfb2JqZWN0X2ltYWdlX3BpeGVsc19kaXJ0eV9zZXQoc21h
cnREYXRhLT5pbWFnZSwgdHJ1ZSk7CiB9CiAKK3ZvaWQgZXdrX3ZpZXdfZm9yY2VfcGFpbnQoRXZh
c19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYpOworCisgICAgcHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQtPmZs
dXNoQW5kUmVuZGVyTGF5ZXJzKCk7Cit9CisKIHZvaWQgZXdrX3ZpZXdfY3Vyc29yX3NldChFdmFz
X09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCiB7CiAgICAg
RVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpAQCAtNDU0Mywx
OCArNDU1MCwxMyBAQCBFd2tfQ29udGV4dF9NZW51KiBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogI2VuZGlmCiB9CiAKLUV2YXNfT2JqZWN0KiBl
d2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEsIGZsb2F0IHNjYWxlKQorRXZhc19PYmplY3Qq
IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSkKIHsKICAgICBpZiAoIWFyZWEgfHwgIWFy
ZWEtPncgfHwgIWFyZWEtPmgpIHsKICAgICAgICAgRVJSKCJlbXB0eSBhcmVhIGlzIG5vdCBhbGxv
d2VkIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChzY2FsZSA8IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCkpIHsKLSAgICAgICAgRVJSKCJzY2FsZSBm
YWN0b3Igc2hvdWxkIGJlIGJpZ2dlciB0aGFuIHplcm8iKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEs
IDApOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDAp
OwogCkBAIC00NTYyLDIzICs0NTY0LDEyIEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19zY3JlZW5z
aG90X2NvbnRlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FudmFzLCAwKTsKIAogICAgIEV2YXNfT2Jq
ZWN0KiBzY3JlZW5zaG90SW1hZ2UgPSBldmFzX29iamVjdF9pbWFnZV9hZGQoY2FudmFzKTsKLSAg
ICBpbnQgc3VyZmFjZVdpZHRoID0gYXJlYS0+dyAqIHNjYWxlOwotICAgIGludCBzdXJmYWNlSGVp
Z2h0ID0gYXJlYS0+aCAqIHNjYWxlOwotICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfc2V0KHNj
cmVlbnNob3RJbWFnZSwgc3VyZmFjZVdpZHRoLCBzdXJmYWNlSGVpZ2h0KTsKLSAgICBldmFzX29i
amVjdF9pbWFnZV9maWxsX3NldChzY3JlZW5zaG90SW1hZ2UsIDAsIDAsIHN1cmZhY2VXaWR0aCwg
c3VyZmFjZUhlaWdodCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKHNjcmVlbnNob3RJbWFnZSwg
c3VyZmFjZVdpZHRoLCBzdXJmYWNlSGVpZ2h0KTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9zaXpl
X3NldChzY3JlZW5zaG90SW1hZ2UsIGFyZWEtPncsIGFyZWEtPmgpOworICAgIGV2YXNfb2JqZWN0
X2ltYWdlX2ZpbGxfc2V0KHNjcmVlbnNob3RJbWFnZSwgMCwgMCwgYXJlYS0+dywgYXJlYS0+aCk7
CisgICAgZXZhc19vYmplY3RfcmVzaXplKHNjcmVlbnNob3RJbWFnZSwgYXJlYS0+dywgYXJlYS0+
aCk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfY29sb3JzcGFjZV9zZXQoc2NyZWVuc2hvdEltYWdl
LCBFVkFTX0NPTE9SU1BBQ0VfQVJHQjg4ODgpOwotICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Ntb290
aF9zY2FsZV9zZXQoc2NyZWVuc2hvdEltYWdlLCB0cnVlKTsKIAotICAgIEV3a19QYWludF9Db250
ZXh0KiBjb250ZXh0ID0gZXdrX3BhaW50X2NvbnRleHRfZnJvbV9pbWFnZV9uZXcoc2NyZWVuc2hv
dEltYWdlKTsKLSAgICBld2tfcGFpbnRfY29udGV4dF9zYXZlKGNvbnRleHQpOwotICAgIGV3a19w
YWludF9jb250ZXh0X3NjYWxlKGNvbnRleHQsIHNjYWxlLCBzY2FsZSk7Ci0gICAgZXdrX3BhaW50
X2NvbnRleHRfdHJhbnNsYXRlKGNvbnRleHQsIC0xICogYXJlYS0+eCwgLTEgKiBhcmVhLT55KTsK
LQotICAgIGV3a192aWV3X3BhaW50KHByaXYsIGNvbnRleHQsIGFyZWEpOwotCi0gICAgZXdrX3Bh
aW50X2NvbnRleHRfcmVzdG9yZShjb250ZXh0KTsKLSAgICBld2tfcGFpbnRfY29udGV4dF9mcmVl
KGNvbnRleHQpOworICAgIHByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LT5leHRy
YWN0SW1hZ2VEYXRhKHNjcmVlbnNob3RJbWFnZSwgV2ViQ29yZTo6SW50UmVjdCgqYXJlYSkpOwog
CiAgICAgcmV0dXJuIHNjcmVlbnNob3RJbWFnZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgK
aW5kZXggNDliMThmMmFmOTBkNTg1NDI5OTljNzExYzcwMzc5MTg3ODhhMTRhYy4uZTBlNDEwYjI0
YmM1MzBkOTQyMDczNTEyNDU1ZjE4ZDAzMmJmNDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmgKQEAgLTI0ODYsMTcgKzI0ODYsMTYgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGlu
Z190aWxlZF9iYWNraW5nX3N0b3JlX2VuYWJsZWRfZ2V0KEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkg
RXdrX0NvbnRleHRfTWVudSAqZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiAKIC8qKgotICogR2V0cyB0aGUgaW1hZ2Ugb2JqZWN0IG9mIHRoZSBzcGVjaWZp
ZWQgYXJlYSBvZiB0aGUgcGFnZQorICogR2V0cyB0aGUgaW1hZ2Ugb2JqZWN0IG9mIHRoZSBzcGVj
aWZpZWQgYXJlYSBvZiB0aGUgdmlldy4KICAqCiAgKiBUaGUgcmV0dXJuZWQgaW1hZ2Ugb2JqZWN0
IEBiIHNob3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmpl
Y3QgdG8gYmUgY2FwdHVyZWQKLSAqIEBwYXJhbSBhcmVhIFRoZSBhcmVhIG9mIHRoZSBwYWdlIHdp
bGwgYmUgY2FwdHVyZWQuCi0gKiBAcGFyYW0gc2NhbGUgc2NhbGUgZmFjdG9yIG9mIGNhcHR1cmVk
IG9iamVjdC4KKyAqIEBwYXJhbSBhcmVhIFRoZSBhcmVhIG9mIHRoZSB2aWV3IHdpbGwgYmUgY2Fw
dHVyZWQuCiAgKgogICogQHJldHVybiBuZXdseSBhbGxvY2F0ZWQgaW1hZ2Ugb2JqZWN0IG9uIHN1
Y2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUuCiAgKi8KLUVBUEkgRXZhc19PYmplY3QgKmV3a192
aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBjb25zdCBF
aW5hX1JlY3RhbmdsZSAqYXJlYSwgZmxvYXQgc2NhbGUpOworRUFQSSBFdmFzX09iamVjdCAqZXdr
X3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8sIGNvbnN0
IEVpbmFfUmVjdGFuZ2xlICphcmVhKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCA0ODdlMjkyMjlhMzRhZDIwZjhk
N2JiMmFkNDk3ZDMwZWE0M2JkYTk1Li4zNWY0YjAyYjhmN2I4YWY1NDU4YmIxNDRhMTQ3NDhlZmFm
NDY1MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKQEAgLTE1
Miw2ICsxNTIsOCBAQCB2b2lkIGV3a192aWV3X21peGVkX2NvbnRlbnRfcnVuX3NldChFdmFzX09i
amVjdCogZXdrVmlldywgYm9vbCBoYXNSdW4pOwogdm9pZCBld2tfdmlld19yb290X2dyYXBoaWNz
X2xheWVyX3NldChFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
cm9vdExheWVyKTsKIHZvaWQgZXdrX3ZpZXdfbWFya19mb3Jfc3luYyhFdmFzX09iamVjdCogZXdr
Vmlldyk7CiAKK3ZvaWQgZXdrX3ZpZXdfZm9yY2VfcGFpbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcp
OworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogdm9pZCBld2tfdmlld19mdWxsc2NyZWVu
X2VudGVyKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfZnVsbHNj
cmVlbl9leGl0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
dGVzdHMvdGVzdF9ld2tfdmlldy5jcHAKaW5kZXggODM1NDU1MzkzOWMzZTYxYmE1OGE5NWUwMGJk
Nzc2NzU1YWYxZjExZC4uNWRmN2IyNzg3YTRkNGZkZTA1ZGFkZDcxZGQ4NDQxMTA1ZGY5MjJmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfdmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfdmlldy5jcHAKQEAgLTEzMiwyNiAr
MTMyLDIyIEBAIFRFU1RfRihFV0tUZXN0QmFzZSwgZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50
c19nZXQpCiAKICAgICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWlnaHQ7CiAKLSAgICBmbG9hdCBzY2Fs
ZSA9IDI7CiAgICAgRWluYV9SZWN0YW5nbGUgYXJlYTsKICAgICBhcmVhLnggPSAxMDsKICAgICBh
cmVhLnkgPSAxMDsKICAgICBhcmVhLncgPSAyMDsKICAgICBhcmVhLmggPSAzMDsKLSAgICBFdmFz
X09iamVjdCogc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KHdl
YlZpZXcoKSwgJmFyZWEsIHNjYWxlKTsKKyAgICBFdmFzX09iamVjdCogc2NyZWVuc2hvdCA9IGV3
a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KHdlYlZpZXcoKSwgJmFyZWEpOwogICAgIGV2
YXNfb2JqZWN0X2dlb21ldHJ5X2dldChzY3JlZW5zaG90LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQp
OwotICAgIEFTU0VSVF9FUShhcmVhLncgKiBzY2FsZSwgd2lkdGgpOwotICAgIEFTU0VSVF9FUShh
cmVhLmggKiBzY2FsZSwgaGVpZ2h0KTsKKyAgICBBU1NFUlRfRVEoYXJlYS53LCB3aWR0aCk7Cisg
ICAgQVNTRVJUX0VRKGFyZWEuaCwgaGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9kZWwoc2NyZWVu
c2hvdCk7CiAKLSAgICBzY3JlZW5zaG90ID0gZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19n
ZXQod2ViVmlldygpLCAmYXJlYSwgMCk7Ci0gICAgQVNTRVJUX0ZBTFNFKHNjcmVlbnNob3QpOwot
Ci0gICAgc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KHdlYlZp
ZXcoKSwgMCwgMSk7CisgICAgc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVu
dHNfZ2V0KHdlYlZpZXcoKSwgMCk7CiAgICAgQVNTRVJUX0ZBTFNFKHNjcmVlbnNob3QpOwogCiAg
ICAgYXJlYS53ID0gMDsKICAgICBhcmVhLmggPSAwOwotICAgIHNjcmVlbnNob3QgPSBld2tfdmll
d19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksICZhcmVhLCBzY2FsZSk7CisgICAg
c2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KHdlYlZpZXcoKSwg
JmFyZWEpOwogICAgIEFTU0VSVF9GQUxTRShzY3JlZW5zaG90KTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5YTkxNGNmYzdjZWQ0ZTk4YmI2
NjNlMzNkMDM3MGIyZDA4MjFhMDU1Li5jNDA1YTBhYTg5NTRjYzIxY2MwZTExMDQ1OGFlNDVhYmQx
YzFkMGEwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDQtMTAgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEZpeCBwcm9ibGVtcyB3aXRoIHRoZSBwaXhlbCBk
dW1wLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMx
MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFp
bnRpbmcgYW5kIGNvbXBvc2l0aW5nIHBhdGhzIG9mIFdlYktpdDItRUZMIHdlcmUgdG90YWxseSBt
b2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAgIEhvd2V2ZXIgcGl4ZWwgZHVtcCBjb2RlcyBz
dGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGxpa2UgZXdrX3ZpZXdfcGFpbnQoKSwKKyAg
ICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGluZyBpcyBkcmF3bi4KKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIGEgbmV3IEFQSSBmb3IgcGl4ZWwgZHVtcCBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YSgpCisgICAgICAgIHRoYXQgcmVwbGFjZXMgZGVwcmVj
YXRlZCBmdW5jdGlvbiBjYWxscyBhbmQgbWFrZXMgZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50
c19nZXQoKQorICAgICAgICB0byB0YWtlIHRoZSB2aXNpYmxlIGNvbnRlbnQgZGlzcGxheWVkIG9u
IHRoZSB3ZWJ2aWV3LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1BpeGVsRHVtcFN1
cHBvcnRFZmwuY3BwOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KTog
QWRkIHRvIGNhbGwgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZVBhaW50KCkuCisKIDIw
MTQtMDQtMDkgIEdlcmdvIEJhbG9naCAgPGdiYWxvZ2gudS1zemVnZWRAcGFydG5lci5zYW1zdW5n
LmNvbT4KIAogICAgICAgICBTdHlsZWNoZWNrZXI6IEZhbHNlIHBvc2l0aXZlIG9uIGlubGluZSBh
c20gY29kZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9QaXhlbER1bXBT
dXBwb3J0RWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9QaXhlbER1bXBTdXBwb3J0
RWZsLmNwcAppbmRleCAxYWFiNTUyNjgzNWFlNzRhY2ZjMmViYzZjMmFhYzBlZmRhOTNlNjIwLi45
MWJmNzNiOWE3NDFjM2EyODY3Y2YwMzdmNGM4ZDlmZGRiZGZlNjg2IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVmbC5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL1BpeGVsRHVtcFN1cHBvcnRFZmwuY3BwCkBAIC00Nyw2ICs0Nyw4
IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJW
aWV3KGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wKICAgICBFd2tfVmlld19Qcml2YXRlX0RhdGEqIHBy
aXZhdGVEYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKj4oc21hcnREYXRh
LT5fcHJpdik7CiAgICAgY29uc3QgRXZhc19PYmplY3QqIG1haW5GcmFtZSA9IGJyb3dzZXItPm1h
aW5GcmFtZSgpOwogCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZVBhaW50KGJy
b3dzZXItPm1haW5WaWV3KCkpOworCiAgICAgaW50IHgsIHksIHdpZHRoLCBoZWlnaHQ7CiAgICAg
ZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgpLCAmeCwgJnksICZ3
aWR0aCwgJmhlaWdodCk7CiAgICAgY29uc3QgRWluYV9SZWN0YW5nbGUgcmVjdCA9IHsgeCwgeSwg
d2lkdGgsIGhlaWdodCB9OwpAQCAtNTQsNyArNTYsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcENvbnRl
eHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sLCBib29sLCBib29sLCBib29s
CiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2lt
YWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHJlY3QudywgcmVjdC5oKSk7
CiAgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3Vy
ZmFjZS5nZXQoKSkpOwogCi0gICAgUmVmUHRyPEV2YXNfT2JqZWN0PiBzY3JlZW5zaG90ID0gZXdr
X3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgJnJlY3Qs
IDEpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVl
bnNob3RfY29udGVudHNfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCksICZyZWN0KTsKICAgICBpZiAo
IXNjcmVlbnNob3QpCiAgICAgICAgIHJldHVybiAwOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229192</attachid>
            <date>2014-04-11 18:45:18 -0700</date>
            <delta_ts>2014-04-13 18:50:38 -0700</delta_ts>
            <desc>modify change logs</desc>
            <filename>bug-131265-20140412104456.patch</filename>
            <type>text/plain</type>
            <size>22789</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEwMDczYjEwMzVkYzli
Y2UxMjliMmUxZWU4YTZmM2I5NGIwMGQ5Ni4uZDI3ZWNmOTA5NzgzNDA2ZWIyYmI4ZmRlY2Q4ZTNj
Yzg5NjNlNmRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA0LTExICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcHJv
YmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBvZiBXZWJL
aXQtRUZMIHdlcmUgdG90YWxseSBtb2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAgIEhvd2V2
ZXIgcGl4ZWwgZHVtcCBjb2RlcyBzdGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGxpa2Ug
ZXdrX3ZpZXdfcGFpbnQoKSwKKyAgICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGluZyBpcyBk
cmF3bi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IG1lbWJlciBmdW5jdGlvbnMgdG8g
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8gc3VwcG9ydCBwaXhlbCBkdW1wLgorICAg
ICAgICBPbmUgb2YgbmV3IGZ1bmN0aW9ucyBpcyBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6ZXh0cmFjdEltYWdlRGF0YSgpLAorICAgICAgICB3aGljaCByZXBsYWNlcyBkZXByZWNhdGVk
IGZ1bmN0aW9uIGNhbGxzLiBCZXNpZGVzIHRoZSBleHRyYWN0SW1hZ2VEYXRhKCkgaXMgaW52b2tl
ZCBieQorICAgICAgICBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCgpIGluIG9yZGVy
IHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNwbGF5ZWQgb24gdGhlIEVGTCB3ZWJ2aWV3
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmxpcFZlcnRpY2FsbHkpOiBGbGlwIHBpeGVsIGRhdGEgb2Yg
Z2l2ZW4gY2Fpcm9fc3VyZmFjZV90IHZlcnRpY2FsbHkgdXAvZG93bi4KKyAgICAgICAgV2hlcmVh
cyBDYWlybyB1c2VzIHRoZSB0b3AtbGVmdCBjb3JuZXIgYXMgYmVpbmcgMCwwIG9mIHRoZSBjb29y
ZGluYXRlIHN5c3RlbSwKKyAgICAgICAgT3BlbkdMIHVzZXMgdGhlIGJvdHRvbS1sZWZ0IGNvcm5l
ciBiZWluZyAwLDAuCisgICAgICAgIFNvIHdlIG5lZWQgdG8gdmVydGljYWxseSBmbGlwIHJlc3Vs
dGFudCBpbWFnZXMgdGFrZW4gYnkgZ2xSZWFkUGl4ZWxzKCkuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKKwogMjAxNC0wNC0wOCAgQ29ucmFkIFNo
dWx0eiAgPGNvbnJhZF9zaHVsdHpAYXBwbGUuY29tPgogCiAgICAgICAgIG5pbCBzaG91bGQgb25s
eSBiZSB1c2VkIGZvciBvYmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNTA0OTVmZmE2ZDkzNjUw
NWEwNWFiYjY0OGY4OGE1ZTc5OGQ3ZGMzYy4uMTM2YWE2YmM5Y2VhNzg4NGZiODMwNzQwYWExM2Q3
Y2VmNjkzMGZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTA0LTEx
ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBG
aXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBv
ZiBXZWJLaXQtRUZMIHdlcmUgdG90YWxseSBtb2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAg
IEhvd2V2ZXIgcGl4ZWwgZHVtcCBjb2RlcyBzdGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25z
IGxpa2UgZXdrX3ZpZXdfcGFpbnQoKSwKKyAgICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGlu
ZyBpcyBkcmF3bi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IG1lbWJlciBmdW5jdGlv
bnMgdG8gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8gc3VwcG9ydCBwaXhlbCBkdW1w
LgorICAgICAgICBPbmUgb2YgbmV3IGZ1bmN0aW9ucyBpcyBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YSgpLAorICAgICAgICB3aGljaCByZXBsYWNlcyBkZXBy
ZWNhdGVkIGZ1bmN0aW9uIGNhbGxzLiBCZXNpZGVzIHRoZSBleHRyYWN0SW1hZ2VEYXRhKCkgaXMg
aW52b2tlZCBieQorICAgICAgICBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCgpIGlu
IG9yZGVyIHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNwbGF5ZWQgb24gdGhlIEVGTCB3
ZWJ2aWV3LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKKyAgICAgICAgQ3JlYXRl
IFRleHR1cmVNYXBwZXIgd2l0aCBhIHByb3BlciBiYWNrZW5kLgorICAgICAgICAoV2ViQ29yZTo6
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6
CisgICAgICAgIFJldmlzZSBhIG51bGwgY2hlY2sgZm9yIG1fcm9vdExheWVyLgorICAgICAgICAo
V2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9HcmFwaGljc0Nv
bnRleHQpOgorICAgICAgICBSZW1vdmUgYSBjcmVhdGlvbiBjaGVjayBmb3IgVGV4dHVyZU1hcHBl
ckdMLgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBh
aW50VG9DdXJyZW50R0xDb250ZXh0KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YSk6IEFkZGVk
LgorICAgICAgICBFeHRyYWN0IGltYWdlIGRhdGEgZnJvbSB0aGUgdmlldyBhbmQgY29weSBpdCB0
byBnaXZlbiBFdmFzX09iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpnZXRJbWFnZURhdGEpOiBBZGRlZC4KKyAgICAgICAgR2V0IGltYWdlIGRh
dGEgZnJvbSB0aGUgdmlldyBhbmQgcmV0dXJuIGl0IGFzIGNhaXJvX3N1cmZhY2VfdCBvbiBzb2Z0
d2FyZSBtb2RlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OmdldEltYWdlRGF0YUdMKTogQWRkZWQuCisgICAgICAgIEdldCBpbWFnZSBkYXRhIGZyb20g
dGhlIHZpZXcgYW5kIHJldHVybiBpdCBhcyBjYWlyb19zdXJmYWNlX3Qgb24gR0wgbW9kZS4KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZvcmNlUGFpbnQpOiBSZXBhaW50
IHRoZSBlbnRpcmUgd2VidmlldyBiZWZvcmUgcGl4ZWwgZHVtcC4KKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBld2svZXdrX3Zp
ZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfbWFya19mb3Jfc3luYyk6IFJlbW92ZSBhbiB1bm5l
Y2Vzc2FyeSBsaW5lLgorICAgICAgICAoZXdrX3ZpZXdfZm9yY2VfcGFpbnQpOiBDYWxsIGZsdXNo
QW5kUmVuZGVyTGF5ZXJzKCkuCisgICAgICAgIChld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRz
X2dldCk6IFJlbW92ZSAnc2NhbGUnIHBhcmFtZXRlciBhbmQgcmVwbGFjZSBld2tfdmlld19wYWlu
dCgpCisgICAgICAgIHdpdGggQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmV4dHJhY3RJ
bWFnZURhdGEoKS4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKyAgICAgICAgKiBld2svZXdr
X3ZpZXdfcHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoVEVTVF9GKToKKwogMjAxNC0wNC0wOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBFRkwgYnVpbGQgZml4IGF0dGVtcHQgc2lu
Y2UgcjE2Njk1NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCmluZGV4IDBkNzQ3MTEwN2JmODZjZTVlYzA2ZjUw
NDIyZWFkZjgyNjA3MmY2YTMuLjk2NTY1NmU3ZjMxMWI1NDhlYjZkYTQ4YzIxMDgwYmFjMjE0NjY3
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9DYWlyb1V0aWxpdGllcy5jcHAKQEAgLTI1OSw0ICsyNTksMjUgQEAgSW50U2l6ZSBjYWly
b1N1cmZhY2VTaXplKGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSkKICAgICB9CiB9CiAKK3ZvaWQg
ZmxpcFZlcnRpY2FsbHkoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQoreworICAgIEludFNpemUg
c2l6ZSA9IGNhaXJvU3VyZmFjZVNpemUoc3VyZmFjZSk7CisgICAgQVNTRVJUKCFzaXplLmlzRW1w
dHkoKSk7CisKKyAgICBpbnQgc3RyaWRlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRl
KHN1cmZhY2UpOworICAgIGludCBoYWxmSGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKSAvIDI7CisKKyAg
ICB1aW50OF90KiBzb3VyY2UgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9nZXRfZGF0YShzdXJmYWNlKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4g
dG1wID0gc3RkOjptYWtlX3VuaXF1ZTx1aW50OF90W10+KHN0cmlkZSk7CisKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGhhbGZIZWlnaHQ7ICsraSkgeworICAgICAgICB1aW50OF90KiB0b3AgPSBz
b3VyY2UgKyAoaSAqIHN0cmlkZSk7CisgICAgICAgIHVpbnQ4X3QqIGJvdHRvbSA9IHNvdXJjZSAr
ICgoc2l6ZS5oZWlnaHQoKS1pLTEpICogc3RyaWRlKTsKKworICAgICAgICBtZW1jcHkodG1wLmdl
dCgpLCB0b3AsIHN0cmlkZSk7CisgICAgICAgIG1lbWNweSh0b3AsIGJvdHRvbSwgc3RyaWRlKTsK
KyAgICAgICAgbWVtY3B5KGJvdHRvbSwgdG1wLmdldCgpLCBzdHJpZGUpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKaW5kZXggOGJkYmY5YzEwMThlNTBh
MDU4ZjU3MDQ0ZGVjMTU4YmJlMzQ3YTEyYS4uOTM2MDM3NTQ1ODI2ZmZmYjNlMTc4NDFjOTk4YzU0
MWI1OTAxODYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oCkBAIC01Niw2ICs1Niw3IEBAIHZvaWQgY29weVJl
Y3RGcm9tQ2Fpcm9TdXJmYWNlVG9Db250ZXh0KGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9f
dCogdG8sIGNvbnN0CiB2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9f
c3VyZmFjZV90KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLCBjb25zdCBJbnRTaXplJiBvZmZz
ZXQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoKSwgY2Fpcm9fb3Bl
cmF0b3JfdCA9IENBSVJPX09QRVJBVE9SX09WRVIpOwogCiBJbnRTaXplIGNhaXJvU3VyZmFjZVNp
emUoY2Fpcm9fc3VyZmFjZV90Kik7Cit2b2lkIGZsaXBWZXJ0aWNhbGx5KGNhaXJvX3N1cmZhY2Vf
dCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0RWZsLmNwcAppbmRleCBmYWRiNTdjNzU2MGJlZmQ2OTBlOGYyM2E5MTNhM2U3MzI3
YzFiM2I2Li5mMmVhYTBlN2VmMTRiOGQ5ZDhlZjM4N2I3NWMwNWI2NzZhMDdhNzY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAjaW5jbHVkZSAiQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRFZmwuaCIKKyNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUg
IkNhaXJvVXRpbGl0aWVzRWZsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKQEAgLTUzLDggKzU0LDEzIEBAIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dChFdmFz
X09iamVjdCogZXdrVmllCiAgICAgICAgICAgICBtX2V2YXNHTENvbnRleHQgPSBFdmFzR0xDb250
ZXh0OjpjcmVhdGUobV9ldmFzR0wuZ2V0KCkpOwogICAgIH0KIAotICAgIGlmICghbV9ldmFzR0xD
b250ZXh0KQorICAgIGlmIChtX2V2YXNHTENvbnRleHQpIHsKKyAgICAgICAgbV90ZXh0dXJlTWFw
cGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwor
ICAgICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0
KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1
cmVNYXBwZXI6OlNvZnR3YXJlTW9kZSk7CiAgICAgICAgIG1faXNBY2NlbGVyYXRlZCA9IGZhbHNl
OworICAgIH0KIH0KIAogQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6On5BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dCgpCkBAIC0xMjIsMTggKzEyOCwxMyBAQCB2b2lkIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaEFuZFJlbmRlckxheWVycygpCiAKIGJvb2wgQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7
Ci0gICAgaWYgKCFtX3Jvb3RMYXllcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9y
b290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICBp
ZiAobV9yb290TGF5ZXIpCisgICAgICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgcmV0dXJuIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1f
dmlldyktPm1haW5GcmFtZSgpLnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5n
U3ViZnJhbWVzKCk7CiB9CiAKIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBh
aW50VG9HcmFwaGljc0NvbnRleHQoKQogewotICAgIGlmICghbV90ZXh0dXJlTWFwcGVyKQotICAg
ICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBl
cjo6U29mdHdhcmVNb2RlKTsKLQogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2Ug
PSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2UobV9jb21wb3NpdGluZ09iamVjdCk7CiAgICAgaWYgKCFz
dXJmYWNlKQogICAgICAgICByZXR1cm47CkBAIC0xNDcsMTEgKzE0OCw2IEBAIHZvaWQgQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9HcmFwaGljc0NvbnRleHQoKQogCiB2b2lk
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgp
CiB7Ci0gICAgaWYgKCFtX3RleHR1cmVNYXBwZXIpIHsKLSAgICAgICAgbV90ZXh0dXJlTWFwcGVy
ID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwotICAg
ICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkp
LT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7Ci0gICAgfQotCiAgICAg
aWYgKCFldmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNl
LT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xODksNiArMTg1LDUyIEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnNldFJvb3RHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllCiAgICAgICAg
IG1fc3luY1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YShFdmFzX09iamVjdCogYnVmZmVyLCBjb25z
dCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VSVChidWZmZXIpOworCisgICAgRXZhc19Db29y
ZCB3aWR0aCwgaGVpZ2h0OworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KGJ1ZmZlciwg
JndpZHRoLCAmaGVpZ2h0KTsKKworICAgIEFTU0VSVChyZWN0LndpZHRoKCkgPT0gd2lkdGgpOwor
ICAgIEFTU0VSVChyZWN0LmhlaWdodCgpID09IGhlaWdodCk7CisKKyAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBpbWFnZURhdGE7CisgICAgaWYgKG1faXNBY2NlbGVyYXRlZCkgeworICAgICAg
ICBpbWFnZURhdGEgPSBnZXRJbWFnZURhdGFHTChyZWN0KTsKKyAgICAgICAgZmxpcFZlcnRpY2Fs
bHkoaW1hZ2VEYXRhLmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW1hZ2VEYXRhID0gZ2V0
SW1hZ2VEYXRhKHJlY3QpOworCisgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9jb3B5X3NldChi
dWZmZXIsIHN0YXRpY19jYXN0PHZvaWQqPihjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKGlt
YWdlRGF0YS5nZXQoKSkpKTsKK30KKworUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpnZXRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYgcmVj
dCkKK3sKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzb3VyY2UgPSBjcmVhdGVTdXJmYWNl
Rm9ySW1hZ2UobV9jb21wb3NpdGluZ09iamVjdCk7CisgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0
YV9zZXQobV9jb21wb3NpdGluZ09iamVjdCwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNhaXJvX2ltYWdl
X3N1cmZhY2VfZ2V0X2RhdGEoc291cmNlLmdldCgpKSkpOworCisgICAgaWYgKG1fdmlld1NpemUg
PT0gcmVjdC5zaXplKCkpCisgICAgICAgIHJldHVybiBzb3VyY2UucmVsZWFzZSgpOworCisgICAg
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZGVzdGluYXRpb24gPSBhZG9wdFJlZihjYWlyb19pbWFn
ZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCByZWN0LndpZHRoKCksIHJlY3Qu
aGVpZ2h0KCkpKTsKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKHNvdXJjZS5n
ZXQoKSwgZGVzdGluYXRpb24uZ2V0KCksIC1JbnRTaXplKHJlY3QueCgpLCByZWN0LnkoKSksIElu
dFJlY3QoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpLCBJbnRTaXplKCksIENBSVJPX09QRVJBVE9S
X1NPVVJDRSk7CisgICAgcmV0dXJuIGRlc3RpbmF0aW9uLnJlbGVhc2UoKTsKK30KKworUGFzc1Jl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpnZXRJ
bWFnZURhdGFHTChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICghZXZhc19nbF9tYWtl
X2N1cnJlbnQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+c3VyZmFjZSgpLCBtX2V2
YXNHTENvbnRleHQtPmNvbnRleHQoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc291cmNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdo
dCgpKSk7CisgICAgdWludDhfdCogc291cmNlUHRyID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNh
aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoc291cmNlLmdldCgpKSk7CisKKyAgICBHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dDNEID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlckdMKj4obV90
ZXh0dXJlTWFwcGVyLmdldCgpKS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBjb250ZXh0M0Qt
PnJlYWRQaXhlbHMocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0
KCksIEdyYXBoaWNzQ29udGV4dDNEOjpCR1JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSwgc291cmNlUHRyKTsKKyAgICByZXR1cm4gc291cmNlLnJlbGVhc2UoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggZTkwOTBmYzc4ZjUyM2Q3
YzExNjcxNTYwZGQwMjAzZjk2MTJkYjMwMC4uYTg5OTZhMjljNWUwYjU0N2Q3NjI0Mjc2NTE3NmQz
ZjFhMjlmYjQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCkBAIC00
NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7CiAg
ICAgdm9pZCBmbHVzaEFuZFJlbmRlckxheWVycygpOwogCisgICAgdm9pZCBleHRyYWN0SW1hZ2VE
YXRhKEV2YXNfT2JqZWN0KiwgY29uc3QgSW50UmVjdCYpOworCiBwcml2YXRlOgogICAgIHZvaWQg
cGFpbnRUb0dyYXBoaWNzQ29udGV4dCgpOwogICAgIHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRl
eHQoKTsKQEAgLTUzLDYgKzU1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGZsdXNoUGVuZGluZ0xh
eWVyQ2hhbmdlcygpOwogICAgIHZvaWQgc3luY0xheWVycyhUaW1lcjxBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dD4qKTsKIAorICAgIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBnZXRJ
bWFnZURhdGEoY29uc3QgSW50UmVjdCYpOworICAgIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBnZXRJbWFnZURhdGFHTChjb25zdCBJbnRSZWN0Jik7CisKICAgICBFdmFzX09iamVjdCogbV92
aWV3OwogICAgIEV2YXNfT2JqZWN0KiBtX2NvbXBvc2l0aW5nT2JqZWN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcAppbmRleCBkZGM3NGMwM2Q4ZjFiYjY0NGIwNGUzYjBjY2ZiNjZiZWFkOTgx
MTBjLi4yMWVkNDQyMmNiNGJjY2FkMGZjNThjYmZkMWQyNGM2YTM2NjdhZDM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHAKQEAgLTM0OSw2ICszNDksMTEgQEAgdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAgICBld2tf
ZnJhbWVfZm9yY2VfbGF5b3V0KGV3a0ZyYW1lKTsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OmZvcmNlUGFpbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgZXdrX3Zp
ZXdfZm9yY2VfcGFpbnQoZXdrVmlldyk7Cit9CisKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzZXRUcmFja3NSZXBhaW50cyhFdmFzX09iamVjdCogZXdrRnJhbWUsIGJvb2wgZW5hYmxl
ZCkKIHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDNmZTVlMTMxMmIwNjczMGEyYjgwZjA3MWMy
NGM1MTFiMjk2NzBmYmEuLjQ5YmI3YzZkNmRiZTA5Njk1OTM2MDA1NWNiOWY1NmZhYTRkZTAwMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBzZXRXZWJBdWRpb0VuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wp
OwogCiAgICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsK
KyAgICBzdGF0aWMgdm9pZCBmb3JjZVBhaW50KEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAg
c3RhdGljIHZvaWQgc2V0VHJhY2tzUmVwYWludHMoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBib29s
IGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHJlc2V0VHJhY2tlZFJlcGFpbnRzKEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRl
eCAyMDg0MTQxZTY2NzZkMGI0YWE1ZjVkZjgwZTMxNThiMTZhZDRiNTg0Li43OTNiMzlmZjEyMGZl
ODBkNmFlMTg3MzQxMjAzZjk5NjVkNmM1MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKQEAgLTQ0MTIsMTMgKzQ0MTIsMjAgQEAgdm9pZCBld2tfdmlld19yb290X2dyYXBoaWNzX2xh
eWVyX3NldChFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6R3JhcGhpY3NMYXkKIHZvaWQg
ZXdrX3ZpZXdfbWFya19mb3Jfc3luYyhFdmFzX09iamVjdCogZXdrVmlldykKIHsKICAgICBFV0tf
VklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7Ci0gICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CiAKICAgICAvLyBNYXJrIHRoZSBp
bWFnZSBhcyAiZGlydHkiIG1lYW5pbmcgaXQgbmVlZHMgYW4gdXBkYXRlIG5leHQgdGltZSBldmFz
IHJlbmRlcnMuCiAgICAgLy8gSXQgd2lsbCBjYWxsIHRoZSBwaXhlbCBnZXQgY2FsbGJhY2sgdGhl
bi4KICAgICBldmFzX29iamVjdF9pbWFnZV9waXhlbHNfZGlydHlfc2V0KHNtYXJ0RGF0YS0+aW1h
Z2UsIHRydWUpOwogfQogCit2b2lkIGV3a192aWV3X2ZvcmNlX3BhaW50KEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsK
KworICAgIHByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LT5mbHVzaEFuZFJlbmRl
ckxheWVycygpOworfQorCiB2b2lkIGV3a192aWV3X2N1cnNvcl9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQogewogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKQEAgLTQ1NDMsMTggKzQ1NTAsMTMg
QEAgRXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi1FdmFzX09iamVjdCogZXdrX3ZpZXdfc2Ny
ZWVuc2hvdF9jb250ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEVp
bmFfUmVjdGFuZ2xlKiBhcmVhLCBmbG9hdCBzY2FsZSkKK0V2YXNfT2JqZWN0KiBld2tfdmlld19z
Y3JlZW5zaG90X2NvbnRlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3Qg
RWluYV9SZWN0YW5nbGUqIGFyZWEpCiB7CiAgICAgaWYgKCFhcmVhIHx8ICFhcmVhLT53IHx8ICFh
cmVhLT5oKSB7CiAgICAgICAgIEVSUigiZW1wdHkgYXJlYSBpcyBub3QgYWxsb3dlZCIpOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoc2NhbGUgPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSB7Ci0gICAgICAgIEVSUigic2NhbGUgZmFjdG9yIHNob3Vs
ZCBiZSBiaWdnZXIgdGhhbiB6ZXJvIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQogICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKIApAQCAtNDU2
MiwyMyArNDU2NCwxMiBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50
c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGNhbnZhcywgMCk7CiAKICAgICBFdmFzX09iamVjdCogc2NyZWVu
c2hvdEltYWdlID0gZXZhc19vYmplY3RfaW1hZ2VfYWRkKGNhbnZhcyk7Ci0gICAgaW50IHN1cmZh
Y2VXaWR0aCA9IGFyZWEtPncgKiBzY2FsZTsKLSAgICBpbnQgc3VyZmFjZUhlaWdodCA9IGFyZWEt
PmggKiBzY2FsZTsKLSAgICBldmFzX29iamVjdF9pbWFnZV9zaXplX3NldChzY3JlZW5zaG90SW1h
Z2UsIHN1cmZhY2VXaWR0aCwgc3VyZmFjZUhlaWdodCk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vf
ZmlsbF9zZXQoc2NyZWVuc2hvdEltYWdlLCAwLCAwLCBzdXJmYWNlV2lkdGgsIHN1cmZhY2VIZWln
aHQpOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShzY3JlZW5zaG90SW1hZ2UsIHN1cmZhY2VXaWR0
aCwgc3VyZmFjZUhlaWdodCk7CisgICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9zZXQoc2NyZWVu
c2hvdEltYWdlLCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9maWxs
X3NldChzY3JlZW5zaG90SW1hZ2UsIDAsIDAsIGFyZWEtPncsIGFyZWEtPmgpOworICAgIGV2YXNf
b2JqZWN0X3Jlc2l6ZShzY3JlZW5zaG90SW1hZ2UsIGFyZWEtPncsIGFyZWEtPmgpOwogICAgIGV2
YXNfb2JqZWN0X2ltYWdlX2NvbG9yc3BhY2Vfc2V0KHNjcmVlbnNob3RJbWFnZSwgRVZBU19DT0xP
UlNQQUNFX0FSR0I4ODg4KTsKLSAgICBldmFzX29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0
KHNjcmVlbnNob3RJbWFnZSwgdHJ1ZSk7CiAKLSAgICBFd2tfUGFpbnRfQ29udGV4dCogY29udGV4
dCA9IGV3a19wYWludF9jb250ZXh0X2Zyb21faW1hZ2VfbmV3KHNjcmVlbnNob3RJbWFnZSk7Ci0g
ICAgZXdrX3BhaW50X2NvbnRleHRfc2F2ZShjb250ZXh0KTsKLSAgICBld2tfcGFpbnRfY29udGV4
dF9zY2FsZShjb250ZXh0LCBzY2FsZSwgc2NhbGUpOwotICAgIGV3a19wYWludF9jb250ZXh0X3Ry
YW5zbGF0ZShjb250ZXh0LCAtMSAqIGFyZWEtPngsIC0xICogYXJlYS0+eSk7Ci0KLSAgICBld2tf
dmlld19wYWludChwcml2LCBjb250ZXh0LCBhcmVhKTsKLQotICAgIGV3a19wYWludF9jb250ZXh0
X3Jlc3RvcmUoY29udGV4dCk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfZnJlZShjb250ZXh0KTsK
KyAgICBwcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC0+ZXh0cmFjdEltYWdlRGF0
YShzY3JlZW5zaG90SW1hZ2UsIFdlYkNvcmU6OkludFJlY3QoKmFyZWEpKTsKIAogICAgIHJldHVy
biBzY3JlZW5zaG90SW1hZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDQ5YjE4
ZjJhZjkwZDU4NTQyOTk5YzcxMWM3MDM3OTE4Nzg4YTE0YWMuLmUwZTQxMGIyNGJjNTMwZDk0MjA3
MzUxMjQ1NWYxOGQwMzJiZjQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0yNDg2
LDE3ICsyNDg2LDE2IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfdGlsZWRfYmFj
a2luZ19zdG9yZV9lbmFibGVkX2dldChFdmFzX09iamVjdCAqbyk7CiBFQVBJIEV3a19Db250ZXh0
X01lbnUgKmV3a192aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwog
CiAvKioKLSAqIEdldHMgdGhlIGltYWdlIG9iamVjdCBvZiB0aGUgc3BlY2lmaWVkIGFyZWEgb2Yg
dGhlIHBhZ2UKKyAqIEdldHMgdGhlIGltYWdlIG9iamVjdCBvZiB0aGUgc3BlY2lmaWVkIGFyZWEg
b2YgdGhlIHZpZXcuCiAgKgogICogVGhlIHJldHVybmVkIGltYWdlIG9iamVjdCBAYiBzaG91bGQg
YmUgZnJlZWQgYWZ0ZXIgdXNlLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIGJlIGNh
cHR1cmVkCi0gKiBAcGFyYW0gYXJlYSBUaGUgYXJlYSBvZiB0aGUgcGFnZSB3aWxsIGJlIGNhcHR1
cmVkLgotICogQHBhcmFtIHNjYWxlIHNjYWxlIGZhY3RvciBvZiBjYXB0dXJlZCBvYmplY3QuCisg
KiBAcGFyYW0gYXJlYSBUaGUgYXJlYSBvZiB0aGUgdmlldyB3aWxsIGJlIGNhcHR1cmVkLgogICoK
ICAqIEByZXR1cm4gbmV3bHkgYWxsb2NhdGVkIGltYWdlIG9iamVjdCBvbiBzdWNlc3Mgb3IgQGMg
TlVMTCBvbiBmYWlsdXJlLgogICovCi1FQVBJIEV2YXNfT2JqZWN0ICpld2tfdmlld19zY3JlZW5z
aG90X2NvbnRlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCAqbywgY29uc3QgRWluYV9SZWN0YW5n
bGUgKmFyZWEsIGZsb2F0IHNjYWxlKTsKK0VBUEkgRXZhc19PYmplY3QgKmV3a192aWV3X3NjcmVl
bnNob3RfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFaW5hX1JlY3Rh
bmdsZSAqYXJlYSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggNDg3ZTI5MjI5YTM0YWQyMGY4ZDdiYjJhZDQ5N2Qz
MGVhNDNiZGE5NS4uMzVmNGIwMmI4ZjdiOGFmNTQ1OGJiMTQ0YTE0NzQ4ZWZhZjQ2NTMyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC0xNTIsNiArMTUyLDgg
QEAgdm9pZCBld2tfdmlld19taXhlZF9jb250ZW50X3J1bl9zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGJvb2wgaGFzUnVuKTsKIHZvaWQgZXdrX3ZpZXdfcm9vdF9ncmFwaGljc19sYXllcl9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcik7
CiB2b2lkIGV3a192aWV3X21hcmtfZm9yX3N5bmMoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogCit2
b2lkIGV3a192aWV3X2ZvcmNlX3BhaW50KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKKwogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgZXdrX3ZpZXdfZnVsbHNjcmVlbl9lbnRlcihjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2Z1bGxzY3JlZW5fZXhpdChj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3Rf
ZXdrX3ZpZXcuY3BwCmluZGV4IDgzNTQ1NTM5MzljM2U2MWJhNThhOTVlMDBiZDc3Njc1NWFmMWYx
MWQuLjVkZjdiMjc4N2E0ZDRmZGUwNWRhZGQ3MWRkODQ0MTEwNWRmOTIyZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCkBAIC0xMzIsMjYgKzEzMiwyMiBAQCBU
RVNUX0YoRVdLVGVzdEJhc2UsIGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KQogCiAg
ICAgRXZhc19Db29yZCB3aWR0aCwgaGVpZ2h0OwogCi0gICAgZmxvYXQgc2NhbGUgPSAyOwogICAg
IEVpbmFfUmVjdGFuZ2xlIGFyZWE7CiAgICAgYXJlYS54ID0gMTA7CiAgICAgYXJlYS55ID0gMTA7
CiAgICAgYXJlYS53ID0gMjA7CiAgICAgYXJlYS5oID0gMzA7Ci0gICAgRXZhc19PYmplY3QqIHNj
cmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksICZh
cmVhLCBzY2FsZSk7CisgICAgRXZhc19PYmplY3QqIHNjcmVlbnNob3QgPSBld2tfdmlld19zY3Jl
ZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksICZhcmVhKTsKICAgICBldmFzX29iamVjdF9n
ZW9tZXRyeV9nZXQoc2NyZWVuc2hvdCwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICBBU1NF
UlRfRVEoYXJlYS53ICogc2NhbGUsIHdpZHRoKTsKLSAgICBBU1NFUlRfRVEoYXJlYS5oICogc2Nh
bGUsIGhlaWdodCk7CisgICAgQVNTRVJUX0VRKGFyZWEudywgd2lkdGgpOworICAgIEFTU0VSVF9F
UShhcmVhLmgsIGhlaWdodCk7CiAgICAgZXZhc19vYmplY3RfZGVsKHNjcmVlbnNob3QpOwogCi0g
ICAgc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KHdlYlZpZXco
KSwgJmFyZWEsIDApOwotICAgIEFTU0VSVF9GQUxTRShzY3JlZW5zaG90KTsKLQotICAgIHNjcmVl
bnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksIDAsIDEp
OworICAgIHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJW
aWV3KCksIDApOwogICAgIEFTU0VSVF9GQUxTRShzY3JlZW5zaG90KTsKIAogICAgIGFyZWEudyA9
IDA7CiAgICAgYXJlYS5oID0gMDsKLSAgICBzY3JlZW5zaG90ID0gZXdrX3ZpZXdfc2NyZWVuc2hv
dF9jb250ZW50c19nZXQod2ViVmlldygpLCAmYXJlYSwgc2NhbGUpOworICAgIHNjcmVlbnNob3Qg
PSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksICZhcmVhKTsKICAg
ICBBU1NFUlRfRkFMU0Uoc2NyZWVuc2hvdCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWE5MTRjZmM3Y2VkNGU5OGJiNjYzZTMzZDAzNzBi
MmQwODIxYTA1NS4uMmYyOGM5OWRhNTFkOTE5NTUyODk3MmIzMTJjYzAxZTQ5NDA0OTRhZCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDE0LTA0LTExICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBj
b21wb3NpdGluZyBwYXRocyBvZiBXZWJLaXQtRUZMIHdlcmUgdG90YWxseSBtb2RpZmllZCBmcm9t
IHIxNjY3NjguCisgICAgICAgIEhvd2V2ZXIgcGl4ZWwgZHVtcCBjb2RlcyBzdGlsbCBjYWxsIGRl
cHJlY2F0ZWQgZnVuY3Rpb25zIGxpa2UgZXdrX3ZpZXdfcGFpbnQoKSwKKyAgICAgICAgd2hpY2gg
Y2F1c2VzIHRoYXQgbm90aGluZyBpcyBkcmF3bi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMg
bmV3IG1lbWJlciBmdW5jdGlvbnMgdG8gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8g
c3VwcG9ydCBwaXhlbCBkdW1wLgorICAgICAgICBPbmUgb2YgbmV3IGZ1bmN0aW9ucyBpcyBBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YSgpLAorICAgICAgICB3
aGljaCByZXBsYWNlcyBkZXByZWNhdGVkIGZ1bmN0aW9uIGNhbGxzLiBCZXNpZGVzIHRoZSBleHRy
YWN0SW1hZ2VEYXRhKCkgaXMgaW52b2tlZCBieQorICAgICAgICBld2tfdmlld19zY3JlZW5zaG90
X2NvbnRlbnRzX2dldCgpIGluIG9yZGVyIHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNw
bGF5ZWQgb24gdGhlIEVGTCB3ZWJ2aWV3LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L1BpeGVsRHVtcFN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZy
b21XZWJWaWV3KTogQWRkIHRvIGNhbGwgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZVBh
aW50KCkuCisKIDIwMTQtMDQtMDkgIEdlcmdvIEJhbG9naCAgPGdiYWxvZ2gudS1zemVnZWRAcGFy
dG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBTdHlsZWNoZWNrZXI6IEZhbHNlIHBvc2l0aXZl
IG9uIGlubGluZSBhc20gY29kZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9QaXhlbER1bXBTdXBwb3J0RWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9QaXhl
bER1bXBTdXBwb3J0RWZsLmNwcAppbmRleCAxYWFiNTUyNjgzNWFlNzRhY2ZjMmViYzZjMmFhYzBl
ZmRhOTNlNjIwLi45MWJmNzNiOWE3NDFjM2EyODY3Y2YwMzdmNGM4ZDlmZGRiZGZlNjg2IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVmbC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1BpeGVsRHVtcFN1cHBvcnRFZmwuY3BwCkBA
IC00Nyw2ICs0Nyw4IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29u
dGV4dEZyb21XZWJWaWV3KGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wKICAgICBFd2tfVmlld19Qcml2
YXRlX0RhdGEqIHByaXZhdGVEYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
Kj4oc21hcnREYXRhLT5fcHJpdik7CiAgICAgY29uc3QgRXZhc19PYmplY3QqIG1haW5GcmFtZSA9
IGJyb3dzZXItPm1haW5GcmFtZSgpOwogCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpm
b3JjZVBhaW50KGJyb3dzZXItPm1haW5WaWV3KCkpOworCiAgICAgaW50IHgsIHksIHdpZHRoLCBo
ZWlnaHQ7CiAgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgp
LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7CiAgICAgY29uc3QgRWluYV9SZWN0YW5nbGUgcmVj
dCA9IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9OwpAQCAtNTQsNyArNTYsNyBAQCBQYXNzUmVmUHRy
PEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sLCBib29s
LCBib29sLCBib29sCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0
UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHJlY3Qu
dywgcmVjdC5oKSk7CiAgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJlZihjYWly
b19jcmVhdGUoc3VyZmFjZS5nZXQoKSkpOwogCi0gICAgUmVmUHRyPEV2YXNfT2JqZWN0PiBzY3Jl
ZW5zaG90ID0gZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQoYnJvd3Nlci0+bWFpblZp
ZXcoKSwgJnJlY3QsIDEpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gc2NyZWVuc2hvdCA9IGV3
a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCksICZyZWN0
KTsKICAgICBpZiAoIXNjcmVlbnNob3QpCiAgICAgICAgIHJldHVybiAwOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229254</attachid>
            <date>2014-04-13 18:50:48 -0700</date>
            <delta_ts>2014-04-15 18:56:01 -0700</delta_ts>
            <desc>rebase patch</desc>
            <filename>bug-131265-20140414105027.patch</filename>
            <type>text/plain</type>
            <size>22880</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc4MjY3Nzc1NDBjZDk4
MGY3NTNlYzE2NjNlNGI0ZjBkYWNiNjU2Yi4uNmIwN2RiOWE5MmZkN2I4MjIwYjQxMzQ3MGQwZTBi
ODdlNjhhNzY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA0LTEzICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcHJv
YmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBvZiBXZWJL
aXQtRUZMIHdlcmUgdG90YWxseSBtb2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAgIEhvd2V2
ZXIgcGl4ZWwgZHVtcCBjb2RlcyBzdGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGxpa2Ug
ZXdrX3ZpZXdfcGFpbnQoKSwKKyAgICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGluZyBpcyBk
cmF3bi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IG1lbWJlciBmdW5jdGlvbnMgdG8g
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8gc3VwcG9ydCBwaXhlbCBkdW1wLgorICAg
ICAgICBPbmUgb2YgbmV3IGZ1bmN0aW9ucyBpcyBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6ZXh0cmFjdEltYWdlRGF0YSgpLAorICAgICAgICB3aGljaCByZXBsYWNlcyBkZXByZWNhdGVk
IGZ1bmN0aW9uIGNhbGxzLiBCZXNpZGVzIHRoZSBleHRyYWN0SW1hZ2VEYXRhKCkgaXMgaW52b2tl
ZCBieQorICAgICAgICBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCgpIGluIG9yZGVy
IHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNwbGF5ZWQgb24gdGhlIEVGTCB3ZWJ2aWV3
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmxpcFZlcnRpY2FsbHkpOiBGbGlwIHBpeGVsIGRhdGEgb2Yg
Z2l2ZW4gY2Fpcm9fc3VyZmFjZV90IHZlcnRpY2FsbHkgdXAvZG93bi4KKyAgICAgICAgV2hlcmVh
cyBDYWlybyB1c2VzIHRoZSB0b3AtbGVmdCBjb3JuZXIgYXMgYmVpbmcgMCwwIG9mIHRoZSBjb29y
ZGluYXRlIHN5c3RlbSwKKyAgICAgICAgT3BlbkdMIHVzZXMgdGhlIGJvdHRvbS1sZWZ0IGNvcm5l
ciBiZWluZyAwLDAuCisgICAgICAgIFNvIHdlIG5lZWQgdG8gdmVydGljYWxseSBmbGlwIHJlc3Vs
dGFudCBpbWFnZXMgdGFrZW4gYnkgZ2xSZWFkUGl4ZWxzKCkuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKKwogMjAxNC0wNC0xMCAgUHJhdGlrIFNv
bGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBlYXJseSByZXR1cm4g
b3V0IG9mIGRpc3BhdGNoX2FzeW5jKCkgYmxvY2sgc28gd2UgY2FuIHJldHVybiBmcm9tIHdpbGxT
ZW5kUmVxdWVzdCBxdWlja2x5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMWE3ZDNiOWVmZjEzOGUwNWM0
OTMwZjY4MzU0ZWFmMzE1OGI2NDQyZC4uZjZiOWEzNWVjMzMxNGRiNzMwNmQyNzA1NWYwZDNlYTJh
NjI5ZWVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTA0LTEzICBI
eW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXgg
cHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBvZiBX
ZWJLaXQtRUZMIHdlcmUgdG90YWxseSBtb2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAgIEhv
d2V2ZXIgcGl4ZWwgZHVtcCBjb2RlcyBzdGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGxp
a2UgZXdrX3ZpZXdfcGFpbnQoKSwKKyAgICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGluZyBp
cyBkcmF3bi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IG1lbWJlciBmdW5jdGlvbnMg
dG8gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8gc3VwcG9ydCBwaXhlbCBkdW1wLgor
ICAgICAgICBPbmUgb2YgbmV3IGZ1bmN0aW9ucyBpcyBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6ZXh0cmFjdEltYWdlRGF0YSgpLAorICAgICAgICB3aGljaCByZXBsYWNlcyBkZXByZWNh
dGVkIGZ1bmN0aW9uIGNhbGxzLiBCZXNpZGVzIHRoZSBleHRyYWN0SW1hZ2VEYXRhKCkgaXMgaW52
b2tlZCBieQorICAgICAgICBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCgpIGluIG9y
ZGVyIHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNwbGF5ZWQgb24gdGhlIEVGTCB3ZWJ2
aWV3LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKKyAgICAgICAgQ3JlYXRlIFRl
eHR1cmVNYXBwZXIgd2l0aCBhIHByb3BlciBiYWNrZW5kLgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6Cisg
ICAgICAgIFJldmlzZSBhIG51bGwgY2hlY2sgZm9yIG1fcm9vdExheWVyLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9HcmFwaGljc0NvbnRl
eHQpOgorICAgICAgICBSZW1vdmUgYSBjcmVhdGlvbiBjaGVjayBmb3IgVGV4dHVyZU1hcHBlckdM
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50
VG9DdXJyZW50R0xDb250ZXh0KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YSk6IEFkZGVkLgor
ICAgICAgICBFeHRyYWN0IGltYWdlIGRhdGEgZnJvbSB0aGUgdmlldyBhbmQgY29weSBpdCB0byBn
aXZlbiBFdmFzX09iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0OjpnZXRJbWFnZURhdGEpOiBBZGRlZC4KKyAgICAgICAgR2V0IGltYWdlIGRhdGEg
ZnJvbSB0aGUgdmlldyBhbmQgcmV0dXJuIGl0IGFzIGNhaXJvX3N1cmZhY2VfdCBvbiBzb2Z0d2Fy
ZSBtb2RlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6
OmdldEltYWdlRGF0YUdMKTogQWRkZWQuCisgICAgICAgIEdldCBpbWFnZSBkYXRhIGZyb20gdGhl
IHZpZXcgYW5kIHJldHVybiBpdCBhcyBjYWlyb19zdXJmYWNlX3Qgb24gR0wgbW9kZS4KKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZvcmNlUGFpbnQpOiBSZXBhaW50IHRo
ZSBlbnRpcmUgd2VidmlldyBiZWZvcmUgcGl4ZWwgZHVtcC4KKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcu
Y3BwOgorICAgICAgICAoZXdrX3ZpZXdfbWFya19mb3Jfc3luYyk6IFJlbW92ZSBhbiB1bm5lY2Vz
c2FyeSBsaW5lLgorICAgICAgICAoZXdrX3ZpZXdfZm9yY2VfcGFpbnQpOiBDYWxsIGZsdXNoQW5k
UmVuZGVyTGF5ZXJzKCkuCisgICAgICAgIChld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dl
dCk6IFJlbW92ZSAnc2NhbGUnIHBhcmFtZXRlciBhbmQgcmVwbGFjZSBld2tfdmlld19wYWludCgp
CisgICAgICAgIHdpdGggQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmV4dHJhY3RJbWFn
ZURhdGEoKS4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKyAgICAgICAgKiBld2svZXdrX3Zp
ZXdfcHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoVEVTVF9GKToKKwogMjAxNC0wNC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRA
Y3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtTT1VQXSBMaWJzb3VwIGludGVybmFsIGNyZWRlbnRp
YWwgc2V0dGluZyBzaG91bGQgYmUgY29udHJvbGxlZCBieSBsb2FkZXIgZGVjaXNpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRp
bGl0aWVzLmNwcAppbmRleCAwZDc0NzExMDdiZjg2Y2U1ZWMwNmY1MDQyMmVhZGY4MjYwNzJmNmEz
Li45NjU2NTZlN2YzMTFiNTQ4ZWI2ZGE0OGMyMTA4MGJhYzIxNDY2NzQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRp
ZXMuY3BwCkBAIC0yNTksNCArMjU5LDI1IEBAIEludFNpemUgY2Fpcm9TdXJmYWNlU2l6ZShjYWly
b19zdXJmYWNlX3QqIHN1cmZhY2UpCiAgICAgfQogfQogCit2b2lkIGZsaXBWZXJ0aWNhbGx5KGNh
aXJvX3N1cmZhY2VfdCogc3VyZmFjZSkKK3sKKyAgICBJbnRTaXplIHNpemUgPSBjYWlyb1N1cmZh
Y2VTaXplKHN1cmZhY2UpOworICAgIEFTU0VSVCghc2l6ZS5pc0VtcHR5KCkpOworCisgICAgaW50
IHN0cmlkZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlKTsKKyAgICBp
bnQgaGFsZkhlaWdodCA9IHNpemUuaGVpZ2h0KCkgLyAyOworCisgICAgdWludDhfdCogc291cmNl
ID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoc3Vy
ZmFjZSkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IHRtcCA9IHN0ZDo6bWFrZV91
bmlxdWU8dWludDhfdFtdPihzdHJpZGUpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBoYWxm
SGVpZ2h0OyArK2kpIHsKKyAgICAgICAgdWludDhfdCogdG9wID0gc291cmNlICsgKGkgKiBzdHJp
ZGUpOworICAgICAgICB1aW50OF90KiBib3R0b20gPSBzb3VyY2UgKyAoKHNpemUuaGVpZ2h0KCkt
aS0xKSAqIHN0cmlkZSk7CisKKyAgICAgICAgbWVtY3B5KHRtcC5nZXQoKSwgdG9wLCBzdHJpZGUp
OworICAgICAgICBtZW1jcHkodG9wLCBib3R0b20sIHN0cmlkZSk7CisgICAgICAgIG1lbWNweShi
b3R0b20sIHRtcC5nZXQoKSwgc3RyaWRlKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9DYWlyb1V0aWxpdGllcy5oCmluZGV4IDhiZGJmOWMxMDE4ZTUwYTA1OGY1NzA0NGRlYzE1OGJi
ZTM0N2ExMmEuLjkzNjAzNzU0NTgyNmZmZmIzZTE3ODQxYzk5OGM1NDFiNTkwMTg2MTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuaApAQCAtNTYsNiArNTYsNyBAQCB2b2lkIGNvcHlSZWN0RnJvbUNhaXJvU3VyZmFj
ZVRvQ29udGV4dChjYWlyb19zdXJmYWNlX3QqIGZyb20sIGNhaXJvX3QqIHRvLCBjb25zdAogdm9p
ZCBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCogZnJvbSwg
Y2Fpcm9fc3VyZmFjZV90KiB0bywgY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKCksIGNhaXJvX29wZXJhdG9yX3QgPSBDQUlST19P
UEVSQVRPUl9PVkVSKTsKIAogSW50U2l6ZSBjYWlyb1N1cmZhY2VTaXplKGNhaXJvX3N1cmZhY2Vf
dCopOwordm9pZCBmbGlwVmVydGljYWxseShjYWlyb19zdXJmYWNlX3QqKTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAK
aW5kZXggZmFkYjU3Yzc1NjBiZWZkNjkwZThmMjNhOTEzYTNlNzMyN2MxYjNiNi4uZjJlYWEwZTdl
ZjE0YjhkOWQ4ZWYzODdiNzVjMDViNjc2YTA3YTc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0RWZsLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKIAogI2luY2x1ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgi
CisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDYWlyb1V0aWxpdGllc0Vm
bC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAi
TWFpbkZyYW1lLmgiCkBAIC01Myw4ICs1NCwxMyBAQCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoRXZhc19PYmplY3QqIGV3a1ZpZQog
ICAgICAgICAgICAgbV9ldmFzR0xDb250ZXh0ID0gRXZhc0dMQ29udGV4dDo6Y3JlYXRlKG1fZXZh
c0dMLmdldCgpKTsKICAgICB9CiAKLSAgICBpZiAoIW1fZXZhc0dMQ29udGV4dCkKKyAgICBpZiAo
bV9ldmFzR0xDb250ZXh0KSB7CisgICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBw
ZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKKyAgICAgICAgc3RhdGljX2Nh
c3Q8VGV4dHVyZU1hcHBlckdMKj4obV90ZXh0dXJlTWFwcGVyLmdldCgpKS0+c2V0RW5hYmxlRWRn
ZURpc3RhbmNlQW50aWFsaWFzaW5nKHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fdGV4
dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpTb2Z0d2Fy
ZU1vZGUpOwogICAgICAgICBtX2lzQWNjZWxlcmF0ZWQgPSBmYWxzZTsKKyAgICB9CiB9CiAKIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojp+QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQoKQpAQCAtMTIyLDE4ICsxMjgsMTMgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6Zmx1c2hBbmRSZW5kZXJMYXllcnMoKQogCiBib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogewotICAgIGlmICghbV9yb290
TGF5ZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fcm9vdExheWVyLT5mbHVzaENv
bXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgaWYgKG1fcm9vdExheWVyKQor
ICAgICAgICBtX3Jvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eSgpOwogICAgIHJldHVybiBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3ZpZXcpLT5tYWluRnJhbWUo
KS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogfQog
CiB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvR3JhcGhpY3NDb250
ZXh0KCkKIHsKLSAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikKLSAgICAgICAgbV90ZXh0dXJlTWFw
cGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6OlNvZnR3YXJlTW9kZSk7
Ci0KICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gY3JlYXRlU3VyZmFjZUZv
ckltYWdlKG1fY29tcG9zaXRpbmdPYmplY3QpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMTQ3LDExICsxNDgsNiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpwYWludFRvR3JhcGhpY3NDb250ZXh0KCkKIAogdm9pZCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoKQogewotICAgIGlmICghbV90
ZXh0dXJlTWFwcGVyKSB7Ci0gICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6
OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VGV4dHVyZU1hcHBlckdMKj4obV90ZXh0dXJlTWFwcGVyLmdldCgpKS0+c2V0RW5hYmxlRWRnZURp
c3RhbmNlQW50aWFsaWFzaW5nKHRydWUpOwotICAgIH0KLQogICAgIGlmICghZXZhc19nbF9tYWtl
X2N1cnJlbnQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+c3VyZmFjZSgpLCBtX2V2
YXNHTENvbnRleHQtPmNvbnRleHQoKSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTg5LDYgKzE4
NSw1MiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzZXRSb290R3JhcGhp
Y3NMYXllcihHcmFwaGljc0xheWVyKiByb290TGF5ZQogICAgICAgICBtX3N5bmNUaW1lci5zdGFy
dE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmV4
dHJhY3RJbWFnZURhdGEoRXZhc19PYmplY3QqIGJ1ZmZlciwgY29uc3QgSW50UmVjdCYgcmVjdCkK
K3sKKyAgICBBU1NFUlQoYnVmZmVyKTsKKworICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsK
KyAgICBldmFzX29iamVjdF9pbWFnZV9zaXplX2dldChidWZmZXIsICZ3aWR0aCwgJmhlaWdodCk7
CisKKyAgICBBU1NFUlQocmVjdC53aWR0aCgpID09IHdpZHRoKTsKKyAgICBBU1NFUlQocmVjdC5o
ZWlnaHQoKSA9PSBoZWlnaHQpOworCisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2VE
YXRhOworICAgIGlmIChtX2lzQWNjZWxlcmF0ZWQpIHsKKyAgICAgICAgaW1hZ2VEYXRhID0gZ2V0
SW1hZ2VEYXRhR0wocmVjdCk7CisgICAgICAgIGZsaXBWZXJ0aWNhbGx5KGltYWdlRGF0YS5nZXQo
KSk7CisgICAgfSBlbHNlCisgICAgICAgIGltYWdlRGF0YSA9IGdldEltYWdlRGF0YShyZWN0KTsK
KworICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoYnVmZmVyLCBzdGF0aWNfY2Fz
dDx2b2lkKj4oY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShpbWFnZURhdGEuZ2V0KCkpKSk7
Cit9CisKK1Bhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6Z2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gc291cmNlID0gY3JlYXRlU3VyZmFjZUZvckltYWdlKG1fY29tcG9z
aXRpbmdPYmplY3QpOworICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfc2V0KG1fY29tcG9zaXRp
bmdPYmplY3QsIHN0YXRpY19jYXN0PHZvaWQqPihjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRh
KHNvdXJjZS5nZXQoKSkpKTsKKworICAgIGlmIChtX3ZpZXdTaXplID09IHJlY3Quc2l6ZSgpKQor
ICAgICAgICByZXR1cm4gc291cmNlLnJlbGVhc2UoKTsKKworICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IGRlc3RpbmF0aW9uID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUo
Q0FJUk9fRk9STUFUX0FSR0IzMiwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7CisgICAg
Y29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5vdGhlcihzb3VyY2UuZ2V0KCksIGRlc3RpbmF0aW9u
LmdldCgpLCAtSW50U2l6ZShyZWN0LngoKSwgcmVjdC55KCkpLCBJbnRSZWN0KEludFBvaW50KCks
IHJlY3Quc2l6ZSgpKSwgSW50U2l6ZSgpLCBDQUlST19PUEVSQVRPUl9TT1VSQ0UpOworICAgIHJl
dHVybiBkZXN0aW5hdGlvbi5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Z2V0SW1hZ2VEYXRhR0woY29uc3Qg
SW50UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAoIWV2YXNfZ2xfbWFrZV9jdXJyZW50KG1fZXZhc0dM
LmdldCgpLCBtX2V2YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgbV9ldmFzR0xDb250ZXh0LT5jb250
ZXh0KCkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IHNvdXJjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJP
X0ZPUk1BVF9BUkdCMzIsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkpOworICAgIHVpbnQ4
X3QqIHNvdXJjZVB0ciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjYWlyb19pbWFnZV9zdXJmYWNl
X2dldF9kYXRhKHNvdXJjZS5nZXQoKSkpOworCisgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQzRCA9IHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVyZU1hcHBlci5nZXQo
KSktPmdyYXBoaWNzQ29udGV4dDNEKCk7CisgICAgY29udGV4dDNELT5yZWFkUGl4ZWxzKHJlY3Qu
eCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6QkdSQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIHNvdXJjZVB0cik7
CisgICAgcmV0dXJuIHNvdXJjZS5yZWxlYXNlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dEVmbC5oCmluZGV4IGU5MDkwZmM3OGY1MjNkN2MxMTY3MTU2MGRkMDIwM2Y5
NjEyZGIzMDAuLmE4OTk2YTI5YzVlMGI1NDdkNzYyNDI3NjUxNzZkM2YxYTI5ZmI0NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXNpemUoY29uc3QgSW50U2l6ZSYpOwogICAgIHZvaWQgZmx1c2hBbmRS
ZW5kZXJMYXllcnMoKTsKIAorICAgIHZvaWQgZXh0cmFjdEltYWdlRGF0YShFdmFzX09iamVjdCos
IGNvbnN0IEludFJlY3QmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHBhaW50VG9HcmFwaGljc0Nv
bnRleHQoKTsKICAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCk7CkBAIC01Myw2ICs1
NSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsKICAg
ICB2b2lkIHN5bmNMYXllcnMoVGltZXI8QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ+Kik7
CiAKKyAgICBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZ2V0SW1hZ2VEYXRhKGNvbnN0IElu
dFJlY3QmKTsKKyAgICBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZ2V0SW1hZ2VEYXRhR0wo
Y29uc3QgSW50UmVjdCYpOworCiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKICAgICBFdmFzX09i
amVjdCogbV9jb21wb3NpdGluZ09iamVjdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5k
ZXggZGRjNzRjMDNkOGYxYmI2NDRiMDRlM2IwY2NmYjY2YmVhZDk4MTEwYy4uMjFlZDQ0MjJjYjRi
Y2NhZDBmYzU4Y2JmZDFkMjRjNmEzNjY3YWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3Bw
CkBAIC0zNDksNiArMzQ5LDExIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3Jj
ZUxheW91dChFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xheW91
dChld2tGcmFtZSk7CiB9CiAKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZVBh
aW50KEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIGV3a192aWV3X2ZvcmNlX3BhaW50KGV3
a1ZpZXcpOworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VHJhY2tzUmVw
YWludHMoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBib29sIGVuYWJsZWQpCiB7CiAgICAgRFJUX1NV
UFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaAppbmRleCAzZmU1ZTEzMTJiMDY3MzBhMmI4MGYwNzFjMjRjNTExYjI5NjcwZmJhLi40
OWJiN2M2ZDZkYmUwOTY5NTkzNjAwNTVjYjlmNTZmYWE0ZGUwMDJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0V2Vi
QXVkaW9FbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKTsKIAogICAgIHN0YXRpYyB2
b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CisgICAgc3RhdGljIHZvaWQg
Zm9yY2VQYWludChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldFRy
YWNrc1JlcGFpbnRzKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgYm9vbCBlbmFibGVkKTsKICAgICBz
dGF0aWMgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50cyhFdmFzX09iamVjdCogZXdrRnJhbWUpOwog
ICAgIHN0YXRpYyBib29sIGlzVHJhY2tpbmdSZXBhaW50cyhjb25zdCBFdmFzX09iamVjdCogZXdr
RnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggMjA4NDE0MWU2Njc2ZDBi
NGFhNWY1ZGY4MGUzMTU4YjE2YWQ0YjU4NC4uNzkzYjM5ZmYxMjBmZTgwZDZhZTE4NzM0MTIwM2Y5
OTY1ZDZjNTI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC00NDEyLDEzICs0
NDEyLDIwIEBAIHZvaWQgZXdrX3ZpZXdfcm9vdF9ncmFwaGljc19sYXllcl9zZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIFdlYkNvcmU6OkdyYXBoaWNzTGF5CiB2b2lkIGV3a192aWV3X21hcmtfZm9y
X3N5bmMoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBzbWFydERhdGEpOwotICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVS
TihzbWFydERhdGEsIHByaXYpOwogCiAgICAgLy8gTWFyayB0aGUgaW1hZ2UgYXMgImRpcnR5IiBt
ZWFuaW5nIGl0IG5lZWRzIGFuIHVwZGF0ZSBuZXh0IHRpbWUgZXZhcyByZW5kZXJzLgogICAgIC8v
IEl0IHdpbGwgY2FsbCB0aGUgcGl4ZWwgZ2V0IGNhbGxiYWNrIHRoZW4uCiAgICAgZXZhc19vYmpl
Y3RfaW1hZ2VfcGl4ZWxzX2RpcnR5X3NldChzbWFydERhdGEtPmltYWdlLCB0cnVlKTsKIH0KIAor
dm9pZCBld2tfdmlld19mb3JjZV9wYWludChFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBwcml2LT5hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC0+Zmx1c2hBbmRSZW5kZXJMYXllcnMoKTsKK30KKwog
dm9pZCBld2tfdmlld19jdXJzb3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJD
b3JlOjpDdXJzb3ImIGN1cnNvcikKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00NTQzLDE4ICs0NTUwLDEzIEBAIEV3a19Db250ZXh0X01l
bnUqIGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
CiAjZW5kaWYKIH0KIAotRXZhc19PYmplY3QqIGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJl
YSwgZmxvYXQgc2NhbGUpCitFdmFzX09iamVjdCogZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50
c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBh
cmVhKQogewogICAgIGlmICghYXJlYSB8fCAhYXJlYS0+dyB8fCAhYXJlYS0+aCkgewogICAgICAg
ICBFUlIoImVtcHR5IGFyZWEgaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogCi0gICAgaWYgKHNjYWxlIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2ls
b24oKSkgewotICAgICAgICBFUlIoInNjYWxlIGZhY3RvciBzaG91bGQgYmUgYmlnZ2VyIHRoYW4g
emVybyIpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CiAKQEAgLTQ1NjIsMjMgKzQ1NjQsMTIgQEAg
RXZhc19PYmplY3QqIGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChjYW52YXMsIDApOwogCiAgICAgRXZhc19PYmplY3QqIHNjcmVlbnNob3RJbWFnZSA9IGV2YXNf
b2JqZWN0X2ltYWdlX2FkZChjYW52YXMpOwotICAgIGludCBzdXJmYWNlV2lkdGggPSBhcmVhLT53
ICogc2NhbGU7Ci0gICAgaW50IHN1cmZhY2VIZWlnaHQgPSBhcmVhLT5oICogc2NhbGU7Ci0gICAg
ZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9zZXQoc2NyZWVuc2hvdEltYWdlLCBzdXJmYWNlV2lkdGgs
IHN1cmZhY2VIZWlnaHQpOwotICAgIGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxfc2V0KHNjcmVlbnNo
b3RJbWFnZSwgMCwgMCwgc3VyZmFjZVdpZHRoLCBzdXJmYWNlSGVpZ2h0KTsKLSAgICBldmFzX29i
amVjdF9yZXNpemUoc2NyZWVuc2hvdEltYWdlLCBzdXJmYWNlV2lkdGgsIHN1cmZhY2VIZWlnaHQp
OworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfc2V0KHNjcmVlbnNob3RJbWFnZSwgYXJlYS0+
dywgYXJlYS0+aCk7CisgICAgZXZhc19vYmplY3RfaW1hZ2VfZmlsbF9zZXQoc2NyZWVuc2hvdElt
YWdlLCAwLCAwLCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoc2Ny
ZWVuc2hvdEltYWdlLCBhcmVhLT53LCBhcmVhLT5oKTsKICAgICBldmFzX29iamVjdF9pbWFnZV9j
b2xvcnNwYWNlX3NldChzY3JlZW5zaG90SW1hZ2UsIEVWQVNfQ09MT1JTUEFDRV9BUkdCODg4OCk7
Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChzY3JlZW5zaG90SW1hZ2Us
IHRydWUpOwogCi0gICAgRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQgPSBld2tfcGFpbnRfY29u
dGV4dF9mcm9tX2ltYWdlX25ldyhzY3JlZW5zaG90SW1hZ2UpOwotICAgIGV3a19wYWludF9jb250
ZXh0X3NhdmUoY29udGV4dCk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfc2NhbGUoY29udGV4dCwg
c2NhbGUsIHNjYWxlKTsKLSAgICBld2tfcGFpbnRfY29udGV4dF90cmFuc2xhdGUoY29udGV4dCwg
LTEgKiBhcmVhLT54LCAtMSAqIGFyZWEtPnkpOwotCi0gICAgZXdrX3ZpZXdfcGFpbnQocHJpdiwg
Y29udGV4dCwgYXJlYSk7Ci0KLSAgICBld2tfcGFpbnRfY29udGV4dF9yZXN0b3JlKGNvbnRleHQp
OwotICAgIGV3a19wYWludF9jb250ZXh0X2ZyZWUoY29udGV4dCk7CisgICAgcHJpdi0+YWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQtPmV4dHJhY3RJbWFnZURhdGEoc2NyZWVuc2hvdEltYWdl
LCBXZWJDb3JlOjpJbnRSZWN0KCphcmVhKSk7CiAKICAgICByZXR1cm4gc2NyZWVuc2hvdEltYWdl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCA0OWIxOGYyYWY5MGQ1ODU0Mjk5OWM3
MTFjNzAzNzkxODc4OGExNGFjLi5lMGU0MTBiMjRiYzUzMGQ5NDIwNzM1MTI0NTVmMThkMDMyYmY0
NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMjQ4NiwxNyArMjQ4NiwxNiBAQCBF
QVBJIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3RpbGVkX2JhY2tpbmdfc3RvcmVfZW5hYmxl
ZF9nZXQoRXZhc19PYmplY3QgKm8pOwogRUFQSSBFd2tfQ29udGV4dF9NZW51ICpld2tfdmlld19j
b250ZXh0X21lbnVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCi0gKiBHZXRzIHRo
ZSBpbWFnZSBvYmplY3Qgb2YgdGhlIHNwZWNpZmllZCBhcmVhIG9mIHRoZSBwYWdlCisgKiBHZXRz
IHRoZSBpbWFnZSBvYmplY3Qgb2YgdGhlIHNwZWNpZmllZCBhcmVhIG9mIHRoZSB2aWV3LgogICoK
ICAqIFRoZSByZXR1cm5lZCBpbWFnZSBvYmplY3QgQGIgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVz
ZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBiZSBjYXB0dXJlZAotICogQHBhcmFt
IGFyZWEgVGhlIGFyZWEgb2YgdGhlIHBhZ2Ugd2lsbCBiZSBjYXB0dXJlZC4KLSAqIEBwYXJhbSBz
Y2FsZSBzY2FsZSBmYWN0b3Igb2YgY2FwdHVyZWQgb2JqZWN0LgorICogQHBhcmFtIGFyZWEgVGhl
IGFyZWEgb2YgdGhlIHZpZXcgd2lsbCBiZSBjYXB0dXJlZC4KICAqCiAgKiBAcmV0dXJuIG5ld2x5
IGFsbG9jYXRlZCBpbWFnZSBvYmplY3Qgb24gc3VjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZS4K
ICAqLwotRUFQSSBFdmFzX09iamVjdCAqZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQo
Y29uc3QgRXZhc19PYmplY3QgKm8sIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICphcmVhLCBmbG9hdCBz
Y2FsZSk7CitFQVBJIEV2YXNfT2JqZWN0ICpld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbywgY29uc3QgRWluYV9SZWN0YW5nbGUgKmFyZWEpOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0
ZS5oCmluZGV4IDQ4N2UyOTIyOWEzNGFkMjBmOGQ3YmIyYWQ0OTdkMzBlYTQzYmRhOTUuLjM1ZjRi
MDJiOGY3YjhhZjU0NThiYjE0NGExNDc0OGVmYWY0NjUzMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMTUyLDYgKzE1Miw4IEBAIHZvaWQgZXdrX3ZpZXdf
bWl4ZWRfY29udGVudF9ydW5fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGhhc1J1bik7
CiB2b2lkIGV3a192aWV3X3Jvb3RfZ3JhcGhpY3NfbGF5ZXJfc2V0KEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290TGF5ZXIpOwogdm9pZCBld2tfdmlld19t
YXJrX2Zvcl9zeW5jKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIAordm9pZCBld2tfdmlld19mb3Jj
ZV9wYWludChFdmFzX09iamVjdCogZXdrVmlldyk7CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiB2b2lkIGV3a192aWV3X2Z1bGxzY3JlZW5fZW50ZXIoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpOwogdm9pZCBld2tfdmlld19mdWxsc2NyZWVuX2V4aXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcAppbmRl
eCA4MzU0NTUzOTM5YzNlNjFiYTU4YTk1ZTAwYmQ3NzY3NTVhZjFmMTFkLi41ZGY3YjI3ODdhNGQ0
ZmRlMDVkYWRkNzFkZDg0NDExMDVkZjkyMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90
ZXN0X2V3a192aWV3LmNwcApAQCAtMTMyLDI2ICsxMzIsMjIgQEAgVEVTVF9GKEVXS1Rlc3RCYXNl
LCBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCkKIAogICAgIEV2YXNfQ29vcmQgd2lk
dGgsIGhlaWdodDsKIAotICAgIGZsb2F0IHNjYWxlID0gMjsKICAgICBFaW5hX1JlY3RhbmdsZSBh
cmVhOwogICAgIGFyZWEueCA9IDEwOwogICAgIGFyZWEueSA9IDEwOwogICAgIGFyZWEudyA9IDIw
OwogICAgIGFyZWEuaCA9IDMwOwotICAgIEV2YXNfT2JqZWN0KiBzY3JlZW5zaG90ID0gZXdrX3Zp
ZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQod2ViVmlldygpLCAmYXJlYSwgc2NhbGUpOworICAg
IEV2YXNfT2JqZWN0KiBzY3JlZW5zaG90ID0gZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19n
ZXQod2ViVmlldygpLCAmYXJlYSk7CiAgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KHNjcmVl
bnNob3QsIDAsIDAsICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgQVNTRVJUX0VRKGFyZWEudyAqIHNj
YWxlLCB3aWR0aCk7Ci0gICAgQVNTRVJUX0VRKGFyZWEuaCAqIHNjYWxlLCBoZWlnaHQpOworICAg
IEFTU0VSVF9FUShhcmVhLncsIHdpZHRoKTsKKyAgICBBU1NFUlRfRVEoYXJlYS5oLCBoZWlnaHQp
OwogICAgIGV2YXNfb2JqZWN0X2RlbChzY3JlZW5zaG90KTsKIAotICAgIHNjcmVlbnNob3QgPSBl
d2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksICZhcmVhLCAwKTsKLSAg
ICBBU1NFUlRfRkFMU0Uoc2NyZWVuc2hvdCk7Ci0KLSAgICBzY3JlZW5zaG90ID0gZXdrX3ZpZXdf
c2NyZWVuc2hvdF9jb250ZW50c19nZXQod2ViVmlldygpLCAwLCAxKTsKKyAgICBzY3JlZW5zaG90
ID0gZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQod2ViVmlldygpLCAwKTsKICAgICBB
U1NFUlRfRkFMU0Uoc2NyZWVuc2hvdCk7CiAKICAgICBhcmVhLncgPSAwOwogICAgIGFyZWEuaCA9
IDA7Ci0gICAgc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KHdl
YlZpZXcoKSwgJmFyZWEsIHNjYWxlKTsKKyAgICBzY3JlZW5zaG90ID0gZXdrX3ZpZXdfc2NyZWVu
c2hvdF9jb250ZW50c19nZXQod2ViVmlldygpLCAmYXJlYSk7CiAgICAgQVNTRVJUX0ZBTFNFKHNj
cmVlbnNob3QpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDA1M2M4NmUzYzZlNzQ3YjU0MjBkZjc4NmFkMTI1ODIyMTk1NjRjNTUuLjFlNGQ2
MDM5ZDU1ZTg1MzRhM2IzNzE4MTBkZjFiNjJlNjY5NGNmZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNC0wNC0x
MyAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0g
Rml4IHByb2JsZW1zIHdpdGggdGhlIHBpeGVsIGR1bXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYWludGluZyBhbmQgY29tcG9zaXRpbmcgcGF0aHMg
b2YgV2ViS2l0LUVGTCB3ZXJlIHRvdGFsbHkgbW9kaWZpZWQgZnJvbSByMTY2NzY4LgorICAgICAg
ICBIb3dldmVyIHBpeGVsIGR1bXAgY29kZXMgc3RpbGwgY2FsbCBkZXByZWNhdGVkIGZ1bmN0aW9u
cyBsaWtlIGV3a192aWV3X3BhaW50KCksCisgICAgICAgIHdoaWNoIGNhdXNlcyB0aGF0IG5vdGhp
bmcgaXMgZHJhd24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG5ldyBtZW1iZXIgZnVuY3Rp
b25zIHRvIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0IHRvIHN1cHBvcnQgcGl4ZWwgZHVt
cC4KKyAgICAgICAgT25lIG9mIG5ldyBmdW5jdGlvbnMgaXMgQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ6OmV4dHJhY3RJbWFnZURhdGEoKSwKKyAgICAgICAgd2hpY2ggcmVwbGFjZXMgZGVw
cmVjYXRlZCBmdW5jdGlvbiBjYWxscy4gQmVzaWRlcyB0aGUgZXh0cmFjdEltYWdlRGF0YSgpIGlz
IGludm9rZWQgYnkKKyAgICAgICAgZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQoKSBp
biBvcmRlciB0byB0YWtlIHRoZSB2aXNpYmxlIGNvbnRlbnQgZGlzcGxheWVkIG9uIHRoZSBFRkwg
d2Vidmlldy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9QaXhlbER1bXBTdXBwb3J0
RWZsLmNwcDoKKyAgICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyk6IEFkZCB0
byBjYWxsIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VQYWludCgpLgorCiAyMDE0LTA0
LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzbG93
LXN0cmVzcyB0ZXN0cyBydW4gZmFzdGVyIGJ5IHJ1bm5pbmcgZmV3ZXIgVk0gdmFyaWFudHMuCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVmbC5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVmbC5jcHAKaW5k
ZXggMWFhYjU1MjY4MzVhZTc0YWNmYzJlYmM2YzJhYWMwZWZkYTkzZTYyMC4uOTFiZjczYjlhNzQx
YzNhMjg2N2NmMDM3ZjRjOGQ5ZmRkYmRmZTY4NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL1BpeGVsRHVtcFN1cHBvcnRFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9QaXhlbER1bXBTdXBwb3J0RWZsLmNwcApAQCAtNDcsNiArNDcsOCBAQCBQYXNzUmVm
UHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sLCBi
b29sLCBib29sLCBib29sCiAgICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2YXRlRGF0YSA9
IHN0YXRpY19jYXN0PEV3a19WaWV3X1ByaXZhdGVfRGF0YSo+KHNtYXJ0RGF0YS0+X3ByaXYpOwog
ICAgIGNvbnN0IEV2YXNfT2JqZWN0KiBtYWluRnJhbWUgPSBicm93c2VyLT5tYWluRnJhbWUoKTsK
IAorICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VQYWludChicm93c2VyLT5tYWlu
VmlldygpKTsKKwogICAgIGludCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogICAgIGV2YXNfb2JqZWN0
X2dlb21ldHJ5X2dldChicm93c2VyLT5tYWluRnJhbWUoKSwgJngsICZ5LCAmd2lkdGgsICZoZWln
aHQpOwogICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlIHJlY3QgPSB7IHgsIHksIHdpZHRoLCBoZWln
aHQgfTsKQEAgLTU0LDcgKzU2LDcgQEAgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVC
aXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbAogICAgIFJlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNl
X2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCByZWN0LncsIHJlY3QuaCkpOwogICAgIFJlZlB0
cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZhY2UuZ2V0KCkp
KTsKIAotICAgIFJlZlB0cjxFdmFzX09iamVjdD4gc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVl
bnNob3RfY29udGVudHNfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCksICZyZWN0LCAxKTsKKyAgICBS
ZWZQdHI8RXZhc19PYmplY3Q+IHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRl
bnRzX2dldChicm93c2VyLT5tYWluVmlldygpLCAmcmVjdCk7CiAgICAgaWYgKCFzY3JlZW5zaG90
KQogICAgICAgICByZXR1cm4gMDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229423</attachid>
            <date>2014-04-15 18:56:11 -0700</date>
            <delta_ts>2014-04-15 20:45:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131265-20140416105551.patch</filename>
            <type>text/plain</type>
            <size>23003</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3Mjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA1MTJhN2I3NTFkYzkw
OThkM2UzODI0ZmZmMzU3ZGYwYzdkYzkyOC4uYjVjZmE5Mjc3ZWRhMTU1YjJiOTViMzBmMmY2YmVi
NmJiYjc1NmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA0LTE1ICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcHJv
YmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBvZiBXZWJL
aXQtRUZMIHdlcmUgdG90YWxseSBtb2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAgIEhvd2V2
ZXIgcGl4ZWwgZHVtcCBjb2RlcyBzdGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGxpa2Ug
ZXdrX3ZpZXdfcGFpbnQoKSwKKyAgICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGluZyBpcyBk
cmF3bi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IG1lbWJlciBmdW5jdGlvbnMgdG8g
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8gc3VwcG9ydCBwaXhlbCBkdW1wLgorICAg
ICAgICBPbmUgb2YgbmV3IGZ1bmN0aW9ucyBpcyBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6ZXh0cmFjdEltYWdlRGF0YSgpLAorICAgICAgICB3aGljaCByZXBsYWNlcyBkZXByZWNhdGVk
IGZ1bmN0aW9uIGNhbGxzLiBCZXNpZGVzIHRoZSBleHRyYWN0SW1hZ2VEYXRhKCkgaXMgaW52b2tl
ZCBieQorICAgICAgICBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCgpIGluIG9yZGVy
IHRvIHRha2UgdGhlIHZpc2libGUgY29udGVudCBkaXNwbGF5ZWQgb24gdGhlIEVGTCB3ZWJ2aWV3
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmxpcEltYWdlU3VyZmFjZVZlcnRpY2FsbHkpOiBGbGlwIHBp
eGVsIGRhdGEgb2YgZ2l2ZW4gY2Fpcm9fc3VyZmFjZV90IHZlcnRpY2FsbHkgdXAvZG93bi4KKyAg
ICAgICAgV2hlcmVhcyBDYWlybyB1c2VzIHRoZSB0b3AtbGVmdCBjb3JuZXIgYXMgYmVpbmcgMCww
IG9mIHRoZSBjb29yZGluYXRlIHN5c3RlbSwKKyAgICAgICAgT3BlbkdMIHVzZXMgdGhlIGJvdHRv
bS1sZWZ0IGNvcm5lciBiZWluZyAwLDAuCisgICAgICAgIFNvIHdlIG5lZWQgdG8gdmVydGljYWxs
eSBmbGlwIHJlc3VsdGFudCBpbWFnZXMgdGFrZW4gYnkgZ2xSZWFkUGl4ZWxzKCkuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKKwogMjAxNC0wNC0x
NCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
IFdLMl0gUGFnZXMgb2Z0ZW4gYmxhbmsgb24gZmlyc3QgbG9hZCBpZiBwYWdlIGxvYWRlZCBieSB0
eXBpbmcgdGhlIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDFhN2QzYjllZmYxMzhlMDVjNDkzMGY2
ODM1NGVhZjMxNThiNjQ0MmQuLjRmMDhkMThkN2M0OGJlNDJkODljZDA3OTU1M2E4NjFiMjA5NjAy
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxNC0wNC0xNSAgSHlvd29u
IEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRml4IHByb2Js
ZW1zIHdpdGggdGhlIHBpeGVsIGR1bXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzEyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQYWludGluZyBhbmQgY29tcG9zaXRpbmcgcGF0aHMgb2YgV2ViS2l0
LUVGTCB3ZXJlIHRvdGFsbHkgbW9kaWZpZWQgZnJvbSByMTY2NzY4LgorICAgICAgICBIb3dldmVy
IHBpeGVsIGR1bXAgY29kZXMgc3RpbGwgY2FsbCBkZXByZWNhdGVkIGZ1bmN0aW9ucyBsaWtlIGV3
a192aWV3X3BhaW50KCksCisgICAgICAgIHdoaWNoIGNhdXNlcyB0aGF0IG5vdGhpbmcgaXMgZHJh
d24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG5ldyBtZW1iZXIgZnVuY3Rpb25zIHRvIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0IHRvIHN1cHBvcnQgcGl4ZWwgZHVtcC4KKyAgICAg
ICAgT25lIG9mIG5ldyBmdW5jdGlvbnMgaXMgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6
OmV4dHJhY3RJbWFnZURhdGEoKSwKKyAgICAgICAgd2hpY2ggcmVwbGFjZXMgZGVwcmVjYXRlZCBm
dW5jdGlvbiBjYWxscy4gQmVzaWRlcyB0aGUgZXh0cmFjdEltYWdlRGF0YSgpIGlzIGludm9rZWQg
YnkKKyAgICAgICAgZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQoKSBpbiBvcmRlciB0
byB0YWtlIHRoZSB2aXNpYmxlIGNvbnRlbnQgZGlzcGxheWVkIG9uIHRoZSBFRkwgd2Vidmlldy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6CisgICAgICAgIENyZWF0ZSBUZXh0dXJl
TWFwcGVyIHdpdGggYSBwcm9wZXIgYmFja2VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAg
ICBSZXZpc2UgYSBudWxsIGNoZWNrIGZvciBtX3Jvb3RMYXllci4KKyAgICAgICAgKFdlYkNvcmU6
OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvR3JhcGhpY3NDb250ZXh0KToK
KyAgICAgICAgUmVtb3ZlIGEgY3JlYXRpb24gY2hlY2sgZm9yIFRleHR1cmVNYXBwZXJHTC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvQ3Vy
cmVudEdMQ29udGV4dCk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmV4dHJhY3RJbWFnZURhdGEpOgorICAgICAgICBFeHRy
YWN0IGltYWdlIGRhdGEgZnJvbSB0aGUgdmlldyBhbmQgY29weSBpdCB0byBnaXZlbiBFdmFzX09i
amVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpn
ZXRJbWFnZURhdGEpOgorICAgICAgICBHZXQgaW1hZ2UgZGF0YSBmcm9tIHRoZSB2aWV3IGFuZCBy
ZXR1cm4gaXQgYXMgY2Fpcm9fc3VyZmFjZV90IG9uIHNvZnR3YXJlIG1vZGUuCisgICAgICAgIChX
ZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Z2V0SW1hZ2VEYXRhR0wpOgor
ICAgICAgICBHZXQgaW1hZ2UgZGF0YSBmcm9tIHRoZSB2aWV3IGFuZCByZXR1cm4gaXQgYXMgY2Fp
cm9fc3VyZmFjZV90IG9uIEdMIG1vZGUuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpmb3JjZVBhaW50KTogUmVwYWludCB0aGUgZW50aXJlIHdlYnZpZXcgYmVmb3JlIHBp
eGVsIGR1bXAuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsLmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X21h
cmtfZm9yX3N5bmMpOiBSZW1vdmUgYW4gdW5uZWNlc3NhcnkgbGluZS4KKyAgICAgICAgKGV3a192
aWV3X2ZvcmNlX3BhaW50KTogQ2FsbCBmbHVzaEFuZFJlbmRlckxheWVycygpLgorICAgICAgICAo
ZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQpOiBSZW1vdmUgJ3NjYWxlJyBwYXJhbWV0
ZXIgYW5kIHJlcGxhY2UgZXdrX3ZpZXdfcGFpbnQoKQorICAgICAgICB3aXRoIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpleHRyYWN0SW1hZ2VEYXRhKCkuCisgICAgICAgICogZXdrL2V3
a192aWV3Lmg6CisgICAgICAgICogZXdrL2V3a192aWV3X3ByaXZhdGUuaDoKKyAgICAgICAgKiB0
ZXN0cy90ZXN0X2V3a192aWV3LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTQtMDQtMTIg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBb
U09VUF0gTGlic291cCBpbnRlcm5hbCBjcmVkZW50aWFsIHNldHRpbmcgc2hvdWxkIGJlIGNvbnRy
b2xsZWQgYnkgbG9hZGVyIGRlY2lzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggMGQ3NDcxMTA3
YmY4NmNlNWVjMDZmNTA0MjJlYWRmODI2MDcyZjZhMy4uNTRjNjBlMzU0NDlmNjQ0YmQ1NzZkNGJm
ODBhMmYzNmY0NDE3MWM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcApAQCAtMjU5LDQgKzI1OSwyNyBA
QCBJbnRTaXplIGNhaXJvU3VyZmFjZVNpemUoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogICAg
IH0KIH0KIAordm9pZCBmbGlwSW1hZ2VTdXJmYWNlVmVydGljYWxseShjYWlyb19zdXJmYWNlX3Qq
IHN1cmZhY2UpCit7CisgICAgQVNTRVJUKGNhaXJvX3N1cmZhY2VfZ2V0X3R5cGUoc3VyZmFjZSkg
PT0gQ0FJUk9fU1VSRkFDRV9UWVBFX0lNQUdFKTsKKworICAgIEludFNpemUgc2l6ZSA9IGNhaXJv
U3VyZmFjZVNpemUoc3VyZmFjZSk7CisgICAgQVNTRVJUKCFzaXplLmlzRW1wdHkoKSk7CisKKyAg
ICBpbnQgc3RyaWRlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHN1cmZhY2UpOwor
ICAgIGludCBoYWxmSGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKSAvIDI7CisKKyAgICB1aW50OF90KiBz
b3VyY2UgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0
YShzdXJmYWNlKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gdG1wID0gc3RkOjpt
YWtlX3VuaXF1ZTx1aW50OF90W10+KHN0cmlkZSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8
IGhhbGZIZWlnaHQ7ICsraSkgeworICAgICAgICB1aW50OF90KiB0b3AgPSBzb3VyY2UgKyAoaSAq
IHN0cmlkZSk7CisgICAgICAgIHVpbnQ4X3QqIGJvdHRvbSA9IHNvdXJjZSArICgoc2l6ZS5oZWln
aHQoKS1pLTEpICogc3RyaWRlKTsKKworICAgICAgICBtZW1jcHkodG1wLmdldCgpLCB0b3AsIHN0
cmlkZSk7CisgICAgICAgIG1lbWNweSh0b3AsIGJvdHRvbSwgc3RyaWRlKTsKKyAgICAgICAgbWVt
Y3B5KGJvdHRvbSwgdG1wLmdldCgpLCBzdHJpZGUpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKaW5kZXggOGJkYmY5YzEwMThlNTBhMDU4ZjU3MDQ0ZGVj
MTU4YmJlMzQ3YTEyYS4uMjk1YjI0YjgyZDk3MjY1ZTZmYjNhNGVlNjNlNGMyM2Q1OTFiYzgwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5oCkBAIC01Niw2ICs1Niw3IEBAIHZvaWQgY29weVJlY3RGcm9tQ2Fpcm9T
dXJmYWNlVG9Db250ZXh0KGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9fdCogdG8sIGNvbnN0
CiB2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90KiBm
cm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLCBjb25zdCBJbnRTaXplJiBvZmZzZXQsIGNvbnN0IElu
dFJlY3QmLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoKSwgY2Fpcm9fb3BlcmF0b3JfdCA9IENB
SVJPX09QRVJBVE9SX09WRVIpOwogCiBJbnRTaXplIGNhaXJvU3VyZmFjZVNpemUoY2Fpcm9fc3Vy
ZmFjZV90Kik7Cit2b2lkIGZsaXBJbWFnZVN1cmZhY2VWZXJ0aWNhbGx5KGNhaXJvX3N1cmZhY2Vf
dCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0RWZsLmNwcAppbmRleCBmYWRiNTdjNzU2MGJlZmQ2OTBlOGYyM2E5MTNhM2U3MzI3
YzFiM2I2Li44YTM2Y2UwZTBmYmFiMjE1ODJkZGFmNzVhMmNkNmVkZDIzODBlMDEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAjaW5jbHVkZSAiQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRFZmwuaCIKKyNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUg
IkNhaXJvVXRpbGl0aWVzRWZsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKQEAgLTUzLDggKzU0LDEzIEBAIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dChFdmFz
X09iamVjdCogZXdrVmllCiAgICAgICAgICAgICBtX2V2YXNHTENvbnRleHQgPSBFdmFzR0xDb250
ZXh0OjpjcmVhdGUobV9ldmFzR0wuZ2V0KCkpOwogICAgIH0KIAotICAgIGlmICghbV9ldmFzR0xD
b250ZXh0KQorICAgIGlmIChtX2V2YXNHTENvbnRleHQpIHsKKyAgICAgICAgbV90ZXh0dXJlTWFw
cGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwor
ICAgICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0
KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1
cmVNYXBwZXI6OlNvZnR3YXJlTW9kZSk7CiAgICAgICAgIG1faXNBY2NlbGVyYXRlZCA9IGZhbHNl
OworICAgIH0KIH0KIAogQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6On5BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dCgpCkBAIC0xMjIsMTggKzEyOCwxMyBAQCB2b2lkIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaEFuZFJlbmRlckxheWVycygpCiAKIGJvb2wgQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7
Ci0gICAgaWYgKCFtX3Jvb3RMYXllcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9y
b290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICBp
ZiAobV9yb290TGF5ZXIpCisgICAgICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgcmV0dXJuIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1f
dmlldyktPm1haW5GcmFtZSgpLnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5n
U3ViZnJhbWVzKCk7CiB9CiAKIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBh
aW50VG9HcmFwaGljc0NvbnRleHQoKQogewotICAgIGlmICghbV90ZXh0dXJlTWFwcGVyKQotICAg
ICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBl
cjo6U29mdHdhcmVNb2RlKTsKLQogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2Ug
PSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2UobV9jb21wb3NpdGluZ09iamVjdCk7CiAgICAgaWYgKCFz
dXJmYWNlKQogICAgICAgICByZXR1cm47CkBAIC0xNDcsMTEgKzE0OCw2IEBAIHZvaWQgQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50VG9HcmFwaGljc0NvbnRleHQoKQogCiB2b2lk
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgp
CiB7Ci0gICAgaWYgKCFtX3RleHR1cmVNYXBwZXIpIHsKLSAgICAgICAgbV90ZXh0dXJlTWFwcGVy
ID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwotICAg
ICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkp
LT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7Ci0gICAgfQotCiAgICAg
aWYgKCFldmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNl
LT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xODksNiArMTg1LDUyIEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnNldFJvb3RHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllCiAgICAgICAg
IG1fc3luY1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YShFdmFzX09iamVjdCogYnVmZmVyLCBjb25z
dCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VSVChidWZmZXIpOworCisgICAgRXZhc19Db29y
ZCB3aWR0aCwgaGVpZ2h0OworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KGJ1ZmZlciwg
JndpZHRoLCAmaGVpZ2h0KTsKKworICAgIEFTU0VSVChyZWN0LndpZHRoKCkgPT0gd2lkdGgpOwor
ICAgIEFTU0VSVChyZWN0LmhlaWdodCgpID09IGhlaWdodCk7CisKKyAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBpbWFnZURhdGE7CisgICAgaWYgKG1faXNBY2NlbGVyYXRlZCkgeworICAgICAg
ICBpbWFnZURhdGEgPSBnZXRJbWFnZURhdGFHTChyZWN0KTsKKyAgICAgICAgZmxpcEltYWdlU3Vy
ZmFjZVZlcnRpY2FsbHkoaW1hZ2VEYXRhLmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW1h
Z2VEYXRhID0gZ2V0SW1hZ2VEYXRhKHJlY3QpOworCisgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0
YV9jb3B5X3NldChidWZmZXIsIHN0YXRpY19jYXN0PHZvaWQqPihjYWlyb19pbWFnZV9zdXJmYWNl
X2dldF9kYXRhKGltYWdlRGF0YS5nZXQoKSkpKTsKK30KKworUGFzc1JlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpnZXRJbWFnZURhdGEoY29uc3Qg
SW50UmVjdCYgcmVjdCkKK3sKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzb3VyY2UgPSBj
cmVhdGVTdXJmYWNlRm9ySW1hZ2UobV9jb21wb3NpdGluZ09iamVjdCk7CisgICAgZXZhc19vYmpl
Y3RfaW1hZ2VfZGF0YV9zZXQobV9jb21wb3NpdGluZ09iamVjdCwgc3RhdGljX2Nhc3Q8dm9pZCo+
KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoc291cmNlLmdldCgpKSkpOworCisgICAgaWYg
KG1fdmlld1NpemUgPT0gcmVjdC5zaXplKCkpCisgICAgICAgIHJldHVybiBzb3VyY2UucmVsZWFz
ZSgpOworCisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZGVzdGluYXRpb24gPSBhZG9wdFJl
ZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCByZWN0Lndp
ZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90
aGVyKHNvdXJjZS5nZXQoKSwgZGVzdGluYXRpb24uZ2V0KCksIC1JbnRTaXplKHJlY3QueCgpLCBy
ZWN0LnkoKSksIEludFJlY3QoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpLCBJbnRTaXplKCksIENB
SVJPX09QRVJBVE9SX1NPVVJDRSk7CisgICAgcmV0dXJuIGRlc3RpbmF0aW9uLnJlbGVhc2UoKTsK
K30KKworUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpnZXRJbWFnZURhdGFHTChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICgh
ZXZhc19nbF9tYWtlX2N1cnJlbnQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+c3Vy
ZmFjZSgpLCBtX2V2YXNHTENvbnRleHQtPmNvbnRleHQoKSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc291cmNlID0gYWRvcHRSZWYoY2Fp
cm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKSk7CisgICAgdWludDhfdCogc291cmNlUHRyID0gc3RhdGljX2Nhc3Q8
dWludDhfdCo+KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoc291cmNlLmdldCgpKSk7CisK
KyAgICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1h
cHBlckdMKj4obV90ZXh0dXJlTWFwcGVyLmdldCgpKS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAg
ICBjb250ZXh0M0QtPnJlYWRQaXhlbHMocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCks
IHJlY3QuaGVpZ2h0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpCR1JBLCBHcmFwaGljc0NvbnRleHQz
RDo6VU5TSUdORURfQllURSwgc291cmNlUHRyKTsKKyAgICByZXR1cm4gc291cmNlLnJlbGVhc2Uo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVf
TUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggZTkw
OTBmYzc4ZjUyM2Q3YzExNjcxNTYwZGQwMjAzZjk2MTJkYjMwMC4uYTg5OTZhMjljNWUwYjU0N2Q3
NjI0Mjc2NTE3NmQzZjFhMjlmYjQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dEVmbC5oCkBAIC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2l6ZShjb25zdCBJ
bnRTaXplJik7CiAgICAgdm9pZCBmbHVzaEFuZFJlbmRlckxheWVycygpOwogCisgICAgdm9pZCBl
eHRyYWN0SW1hZ2VEYXRhKEV2YXNfT2JqZWN0KiwgY29uc3QgSW50UmVjdCYpOworCiBwcml2YXRl
OgogICAgIHZvaWQgcGFpbnRUb0dyYXBoaWNzQ29udGV4dCgpOwogICAgIHZvaWQgcGFpbnRUb0N1
cnJlbnRHTENvbnRleHQoKTsKQEAgLTUzLDYgKzU1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGZs
dXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpOwogICAgIHZvaWQgc3luY0xheWVycyhUaW1lcjxBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dD4qKTsKIAorICAgIFBhc3NSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiBnZXRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYpOworICAgIFBhc3NSZWZQdHI8Y2Fp
cm9fc3VyZmFjZV90PiBnZXRJbWFnZURhdGFHTChjb25zdCBJbnRSZWN0Jik7CisKICAgICBFdmFz
X09iamVjdCogbV92aWV3OwogICAgIEV2YXNfT2JqZWN0KiBtX2NvbXBvc2l0aW5nT2JqZWN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCBkZGM3NGMwM2Q4ZjFiYjY0NGIwNGUzYjBj
Y2ZiNjZiZWFkOTgxMTBjLi4yMWVkNDQyMmNiNGJjY2FkMGZjNThjYmZkMWQyNGM2YTM2NjdhZDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTM0OSw2ICszNDksMTEgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSkKICAgICBld2tfZnJhbWVfZm9yY2VfbGF5b3V0KGV3a0ZyYW1lKTsKIH0KIAordm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZvcmNlUGFpbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7
CisgICAgZXdrX3ZpZXdfZm9yY2VfcGFpbnQoZXdrVmlldyk7Cit9CisKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpzZXRUcmFja3NSZXBhaW50cyhFdmFzX09iamVjdCogZXdrRnJhbWUs
IGJvb2wgZW5hYmxlZCkKIHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3
a0ZyYW1lLCBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDNmZTVlMTMxMmIwNjcz
MGEyYjgwZjA3MWMyNGM1MTFiMjk2NzBmYmEuLjQ5YmI3YzZkNmRiZTA5Njk1OTM2MDA1NWNiOWY1
NmZhYTRkZTAwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC04Myw2ICs4Myw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJBdWRpb0VuYWJsZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGJvb2wpOwogCiAgICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmplY3Qq
IGV3a0ZyYW1lKTsKKyAgICBzdGF0aWMgdm9pZCBmb3JjZVBhaW50KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0VHJhY2tzUmVwYWludHMoRXZhc19PYmplY3QqIGV3
a0ZyYW1lLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHJlc2V0VHJhY2tlZFJlcGFp
bnRzKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUcmFja2luZ1Jl
cGFpbnRzKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcAppbmRleCAyMDg0MTQxZTY2NzZkMGI0YWE1ZjVkZjgwZTMxNThiMTZhZDRiNTg0Li43
OTNiMzlmZjEyMGZlODBkNmFlMTg3MzQxMjAzZjk5NjVkNmM1MjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAKQEAgLTQ0MTIsMTMgKzQ0MTIsMjAgQEAgdm9pZCBld2tfdmlld19yb290
X2dyYXBoaWNzX2xheWVyX3NldChFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6R3JhcGhp
Y3NMYXkKIHZvaWQgZXdrX3ZpZXdfbWFya19mb3Jfc3luYyhFdmFzX09iamVjdCogZXdrVmlldykK
IHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7Ci0g
ICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CiAKICAgICAv
LyBNYXJrIHRoZSBpbWFnZSBhcyAiZGlydHkiIG1lYW5pbmcgaXQgbmVlZHMgYW4gdXBkYXRlIG5l
eHQgdGltZSBldmFzIHJlbmRlcnMuCiAgICAgLy8gSXQgd2lsbCBjYWxsIHRoZSBwaXhlbCBnZXQg
Y2FsbGJhY2sgdGhlbi4KICAgICBldmFzX29iamVjdF9pbWFnZV9waXhlbHNfZGlydHlfc2V0KHNt
YXJ0RGF0YS0+aW1hZ2UsIHRydWUpOwogfQogCit2b2lkIGV3a192aWV3X2ZvcmNlX3BhaW50KEV2
YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
Vmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnRE
YXRhLCBwcml2KTsKKworICAgIHByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LT5m
bHVzaEFuZFJlbmRlckxheWVycygpOworfQorCiB2b2lkIGV3a192aWV3X2N1cnNvcl9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQogewogICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKQEAgLTQ1NDMs
MTggKzQ1NTAsMTMgQEAgRXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dl
dChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi1FdmFzX09iamVjdCog
ZXdrX3ZpZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhLCBmbG9hdCBzY2FsZSkKK0V2YXNfT2JqZWN0
KiBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEpCiB7CiAgICAgaWYgKCFhcmVhIHx8ICFh
cmVhLT53IHx8ICFhcmVhLT5oKSB7CiAgICAgICAgIEVSUigiZW1wdHkgYXJlYSBpcyBub3QgYWxs
b3dlZCIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoc2NhbGUgPCBzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSB7Ci0gICAgICAgIEVSUigic2NhbGUg
ZmFjdG9yIHNob3VsZCBiZSBiaWdnZXIgdGhhbiB6ZXJvIik7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAw
KTsKIApAQCAtNDU2MiwyMyArNDU2NCwxMiBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfc2NyZWVu
c2hvdF9jb250ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNhbnZhcywgMCk7CiAKICAgICBFdmFzX09i
amVjdCogc2NyZWVuc2hvdEltYWdlID0gZXZhc19vYmplY3RfaW1hZ2VfYWRkKGNhbnZhcyk7Ci0g
ICAgaW50IHN1cmZhY2VXaWR0aCA9IGFyZWEtPncgKiBzY2FsZTsKLSAgICBpbnQgc3VyZmFjZUhl
aWdodCA9IGFyZWEtPmggKiBzY2FsZTsKLSAgICBldmFzX29iamVjdF9pbWFnZV9zaXplX3NldChz
Y3JlZW5zaG90SW1hZ2UsIHN1cmZhY2VXaWR0aCwgc3VyZmFjZUhlaWdodCk7Ci0gICAgZXZhc19v
YmplY3RfaW1hZ2VfZmlsbF9zZXQoc2NyZWVuc2hvdEltYWdlLCAwLCAwLCBzdXJmYWNlV2lkdGgs
IHN1cmZhY2VIZWlnaHQpOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShzY3JlZW5zaG90SW1hZ2Us
IHN1cmZhY2VXaWR0aCwgc3VyZmFjZUhlaWdodCk7CisgICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6
ZV9zZXQoc2NyZWVuc2hvdEltYWdlLCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICBldmFzX29iamVj
dF9pbWFnZV9maWxsX3NldChzY3JlZW5zaG90SW1hZ2UsIDAsIDAsIGFyZWEtPncsIGFyZWEtPmgp
OworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShzY3JlZW5zaG90SW1hZ2UsIGFyZWEtPncsIGFyZWEt
PmgpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2NvbG9yc3BhY2Vfc2V0KHNjcmVlbnNob3RJbWFn
ZSwgRVZBU19DT0xPUlNQQUNFX0FSR0I4ODg4KTsKLSAgICBldmFzX29iamVjdF9pbWFnZV9zbW9v
dGhfc2NhbGVfc2V0KHNjcmVlbnNob3RJbWFnZSwgdHJ1ZSk7CiAKLSAgICBFd2tfUGFpbnRfQ29u
dGV4dCogY29udGV4dCA9IGV3a19wYWludF9jb250ZXh0X2Zyb21faW1hZ2VfbmV3KHNjcmVlbnNo
b3RJbWFnZSk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfc2F2ZShjb250ZXh0KTsKLSAgICBld2tf
cGFpbnRfY29udGV4dF9zY2FsZShjb250ZXh0LCBzY2FsZSwgc2NhbGUpOwotICAgIGV3a19wYWlu
dF9jb250ZXh0X3RyYW5zbGF0ZShjb250ZXh0LCAtMSAqIGFyZWEtPngsIC0xICogYXJlYS0+eSk7
Ci0KLSAgICBld2tfdmlld19wYWludChwcml2LCBjb250ZXh0LCBhcmVhKTsKLQotICAgIGV3a19w
YWludF9jb250ZXh0X3Jlc3RvcmUoY29udGV4dCk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfZnJl
ZShjb250ZXh0KTsKKyAgICBwcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC0+ZXh0
cmFjdEltYWdlRGF0YShzY3JlZW5zaG90SW1hZ2UsIFdlYkNvcmU6OkludFJlY3QoKmFyZWEpKTsK
IAogICAgIHJldHVybiBzY3JlZW5zaG90SW1hZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CmluZGV4IDQ5YjE4ZjJhZjkwZDU4NTQyOTk5YzcxMWM3MDM3OTE4Nzg4YTE0YWMuLmUwZTQxMGIy
NGJjNTMwZDk0MjA3MzUxMjQ1NWYxOGQwMzJiZjQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5oCkBAIC0yNDg2LDE3ICsyNDg2LDE2IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3NldHRp
bmdfdGlsZWRfYmFja2luZ19zdG9yZV9lbmFibGVkX2dldChFdmFzX09iamVjdCAqbyk7CiBFQVBJ
IEV3a19Db250ZXh0X01lbnUgKmV3a192aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19P
YmplY3QgKm8pOwogCiAvKioKLSAqIEdldHMgdGhlIGltYWdlIG9iamVjdCBvZiB0aGUgc3BlY2lm
aWVkIGFyZWEgb2YgdGhlIHBhZ2UKKyAqIEdldHMgdGhlIGltYWdlIG9iamVjdCBvZiB0aGUgc3Bl
Y2lmaWVkIGFyZWEgb2YgdGhlIHZpZXcuCiAgKgogICogVGhlIHJldHVybmVkIGltYWdlIG9iamVj
dCBAYiBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0IHRvIGJlIGNhcHR1cmVkCi0gKiBAcGFyYW0gYXJlYSBUaGUgYXJlYSBvZiB0aGUgcGFnZSB3
aWxsIGJlIGNhcHR1cmVkLgotICogQHBhcmFtIHNjYWxlIHNjYWxlIGZhY3RvciBvZiBjYXB0dXJl
ZCBvYmplY3QuCisgKiBAcGFyYW0gYXJlYSBUaGUgYXJlYSBvZiB0aGUgdmlldyB3aWxsIGJlIGNh
cHR1cmVkLgogICoKICAqIEByZXR1cm4gbmV3bHkgYWxsb2NhdGVkIGltYWdlIG9iamVjdCBvbiBz
dWNlc3Mgb3IgQGMgTlVMTCBvbiBmYWlsdXJlLgogICovCi1FQVBJIEV2YXNfT2JqZWN0ICpld2tf
dmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCAqbywgY29uc3Qg
RWluYV9SZWN0YW5nbGUgKmFyZWEsIGZsb2F0IHNjYWxlKTsKK0VBUEkgRXZhc19PYmplY3QgKmV3
a192aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBjb25z
dCBFaW5hX1JlY3RhbmdsZSAqYXJlYSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggNDg3ZTI5MjI5YTM0YWQyMGY4
ZDdiYjJhZDQ5N2QzMGVhNDNiZGE5NS4uMzVmNGIwMmI4ZjdiOGFmNTQ1OGJiMTQ0YTE0NzQ4ZWZh
ZjQ2NTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC0x
NTIsNiArMTUyLDggQEAgdm9pZCBld2tfdmlld19taXhlZF9jb250ZW50X3J1bl9zZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgaGFzUnVuKTsKIHZvaWQgZXdrX3ZpZXdfcm9vdF9ncmFwaGlj
c19sYXllcl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
IHJvb3RMYXllcik7CiB2b2lkIGV3a192aWV3X21hcmtfZm9yX3N5bmMoRXZhc19PYmplY3QqIGV3
a1ZpZXcpOwogCit2b2lkIGV3a192aWV3X2ZvcmNlX3BhaW50KEV2YXNfT2JqZWN0KiBld2tWaWV3
KTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgZXdrX3ZpZXdfZnVsbHNjcmVl
bl9lbnRlcihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2Z1bGxz
Y3JlZW5fZXhpdChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCmluZGV4IDgzNTQ1NTM5MzljM2U2MWJhNThhOTVlMDBi
ZDc3Njc1NWFmMWYxMWQuLjVkZjdiMjc4N2E0ZDRmZGUwNWRhZGQ3MWRkODQ0MTEwNWRmOTIyZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCkBAIC0xMzIsMjYg
KzEzMiwyMiBAQCBURVNUX0YoRVdLVGVzdEJhc2UsIGV3a192aWV3X3NjcmVlbnNob3RfY29udGVu
dHNfZ2V0KQogCiAgICAgRXZhc19Db29yZCB3aWR0aCwgaGVpZ2h0OwogCi0gICAgZmxvYXQgc2Nh
bGUgPSAyOwogICAgIEVpbmFfUmVjdGFuZ2xlIGFyZWE7CiAgICAgYXJlYS54ID0gMTA7CiAgICAg
YXJlYS55ID0gMTA7CiAgICAgYXJlYS53ID0gMjA7CiAgICAgYXJlYS5oID0gMzA7Ci0gICAgRXZh
c19PYmplY3QqIHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3
ZWJWaWV3KCksICZhcmVhLCBzY2FsZSk7CisgICAgRXZhc19PYmplY3QqIHNjcmVlbnNob3QgPSBl
d2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCksICZhcmVhKTsKICAgICBl
dmFzX29iamVjdF9nZW9tZXRyeV9nZXQoc2NyZWVuc2hvdCwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0
KTsKLSAgICBBU1NFUlRfRVEoYXJlYS53ICogc2NhbGUsIHdpZHRoKTsKLSAgICBBU1NFUlRfRVEo
YXJlYS5oICogc2NhbGUsIGhlaWdodCk7CisgICAgQVNTRVJUX0VRKGFyZWEudywgd2lkdGgpOwor
ICAgIEFTU0VSVF9FUShhcmVhLmgsIGhlaWdodCk7CiAgICAgZXZhc19vYmplY3RfZGVsKHNjcmVl
bnNob3QpOwogCi0gICAgc2NyZWVuc2hvdCA9IGV3a192aWV3X3NjcmVlbnNob3RfY29udGVudHNf
Z2V0KHdlYlZpZXcoKSwgJmFyZWEsIDApOwotICAgIEFTU0VSVF9GQUxTRShzY3JlZW5zaG90KTsK
LQotICAgIHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJW
aWV3KCksIDAsIDEpOworICAgIHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRl
bnRzX2dldCh3ZWJWaWV3KCksIDApOwogICAgIEFTU0VSVF9GQUxTRShzY3JlZW5zaG90KTsKIAog
ICAgIGFyZWEudyA9IDA7CiAgICAgYXJlYS5oID0gMDsKLSAgICBzY3JlZW5zaG90ID0gZXdrX3Zp
ZXdfc2NyZWVuc2hvdF9jb250ZW50c19nZXQod2ViVmlldygpLCAmYXJlYSwgc2NhbGUpOworICAg
IHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCh3ZWJWaWV3KCks
ICZhcmVhKTsKICAgICBBU1NFUlRfRkFMU0Uoc2NyZWVuc2hvdCk7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWI4ODZkNGQ2NThiMTlkN2Ex
MjExODliMjU0MTQ5NjU4ZjliZmM2NS4uZGFiOTNjNzhlY2MwZDI2MzJlMzRmNjMwODY3NzZjMTk5
MmFmOWZjNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA0LTE1ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwg
ZHVtcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MTI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBh
aW50aW5nIGFuZCBjb21wb3NpdGluZyBwYXRocyBvZiBXZWJLaXQtRUZMIHdlcmUgdG90YWxseSBt
b2RpZmllZCBmcm9tIHIxNjY3NjguCisgICAgICAgIEhvd2V2ZXIgcGl4ZWwgZHVtcCBjb2RlcyBz
dGlsbCBjYWxsIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGxpa2UgZXdrX3ZpZXdfcGFpbnQoKSwKKyAg
ICAgICAgd2hpY2ggY2F1c2VzIHRoYXQgbm90aGluZyBpcyBkcmF3bi4KKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgbmV3IG1lbWJlciBmdW5jdGlvbnMgdG8gQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQgdG8gc3VwcG9ydCBwaXhlbCBkdW1wLgorICAgICAgICBPbmUgb2YgbmV3IGZ1bmN0
aW9ucyBpcyBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6ZXh0cmFjdEltYWdlRGF0YSgp
LAorICAgICAgICB3aGljaCByZXBsYWNlcyBkZXByZWNhdGVkIGZ1bmN0aW9uIGNhbGxzLiBCZXNp
ZGVzIHRoZSBleHRyYWN0SW1hZ2VEYXRhKCkgaXMgaW52b2tlZCBieQorICAgICAgICBld2tfdmll
d19zY3JlZW5zaG90X2NvbnRlbnRzX2dldCgpIGluIG9yZGVyIHRvIHRha2UgdGhlIHZpc2libGUg
Y29udGVudCBkaXNwbGF5ZWQgb24gdGhlIEVGTCB3ZWJ2aWV3LgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZWZsL1BpeGVsRHVtcFN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoY3JlYXRlQml0
bWFwQ29udGV4dEZyb21XZWJWaWV3KTogQWRkIHRvIGNhbGwgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpmb3JjZVBhaW50KCkuCisKIDIwMTQtMDQtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHdlYmtpdHB5IHJlZ3Jlc3Npb24gdGVzdCBy
ZXN1bHQgdGhhdCBzdGFydGVkIHRvIGZhaWwgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9y
MTY3MjQzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3Vw
cG9ydEVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvUGl4ZWxEdW1wU3VwcG9ydEVm
bC5jcHAKaW5kZXggMWFhYjU1MjY4MzVhZTc0YWNmYzJlYmM2YzJhYWMwZWZkYTkzZTYyMC4uOTFi
ZjczYjlhNzQxYzNhMjg2N2NmMDM3ZjRjOGQ5ZmRkYmRmZTY4NiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL1BpeGVsRHVtcFN1cHBvcnRFZmwuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9QaXhlbER1bXBTdXBwb3J0RWZsLmNwcApAQCAtNDcsNiArNDcsOCBA
QCBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmll
dyhib29sLCBib29sLCBib29sLCBib29sCiAgICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2
YXRlRGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1ByaXZhdGVfRGF0YSo+KHNtYXJ0RGF0YS0+
X3ByaXYpOwogICAgIGNvbnN0IEV2YXNfT2JqZWN0KiBtYWluRnJhbWUgPSBicm93c2VyLT5tYWlu
RnJhbWUoKTsKIAorICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VQYWludChicm93
c2VyLT5tYWluVmlldygpKTsKKwogICAgIGludCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogICAgIGV2
YXNfb2JqZWN0X2dlb21ldHJ5X2dldChicm93c2VyLT5tYWluRnJhbWUoKSwgJngsICZ5LCAmd2lk
dGgsICZoZWlnaHQpOwogICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlIHJlY3QgPSB7IHgsIHksIHdp
ZHRoLCBoZWlnaHQgfTsKQEAgLTU0LDcgKzU2LDcgQEAgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0
PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbAog
ICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFn
ZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCByZWN0LncsIHJlY3QuaCkpOwog
ICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZh
Y2UuZ2V0KCkpKTsKIAotICAgIFJlZlB0cjxFdmFzX09iamVjdD4gc2NyZWVuc2hvdCA9IGV3a192
aWV3X3NjcmVlbnNob3RfY29udGVudHNfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCksICZyZWN0LCAx
KTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IHNjcmVlbnNob3QgPSBld2tfdmlld19zY3JlZW5z
aG90X2NvbnRlbnRzX2dldChicm93c2VyLT5tYWluVmlldygpLCAmcmVjdCk7CiAgICAgaWYgKCFz
Y3JlZW5zaG90KQogICAgICAgICByZXR1cm4gMDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>