<?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>91581</bug_id>
          
          <creation_ts>2012-07-17 22:24:46 -0700</creation_ts>
          <short_desc>[WK2][EFL] Add an ACCELERATED_COMPOSITING implementation for Efl WebKit2</short_desc>
          <delta_ts>2012-07-27 06:45:45 -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>Other</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>61838</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="YoungTaeck Song">youngtaeck.song</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jaepark</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yoon</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671970</commentid>
    <comment_count>0</comment_count>
      <attachid>152921</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-17 22:24:46 -0700</bug_when>
    <thetext>Created attachment 152921
patch

This patch is a subset of Efl&apos;s UI_SIDE_COMPOSITING implementation.
When enter accelerated compositing mode, create evas_gl, evas_gl_context, and evas_gl_surface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671977</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 22:28:58 -0700</bug_when>
    <thetext>Attachment 152921 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Tools/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671979</commentid>
    <comment_count>2</comment_count>
      <attachid>152925</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-17 22:33:28 -0700</bug_when>
    <thetext>Created attachment 152925
patch

miss bug number</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672006</commentid>
    <comment_count>3</comment_count>
      <attachid>152925</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-17 22:57:27 -0700</bug_when>
    <thetext>Comment on attachment 152925
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:76
&gt;      ~_Ewk_View_Private_Data()

You probably need Evas_GL clean up code in the destructor. I&apos;m assuming the view can be destroyed without ewk_view_exit_accelerated_compositing_mode() being called beforehand.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:383
&gt; +IntSize ewk_view_size_get(Evas_Object* ewkView)

argument should be const.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:403
&gt; +

How about an ASSERT(!priv-&gt;evasGlSurface); to make sure we don&apos;t leak memory?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:415
&gt; +void ewk_view_enter_accelerated_compositing_mode(Evas_Object* ewkView)

How about returning a bool so that the client know if it was successful?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:421
&gt; +    priv-&gt;evasGl = evas_gl_new(evas);

I think we need an EINA_SAFETY check to make sure priv-&gt;evasGl is NULL when this function is called. What if the client calls this function several times without calling the ewk_view_exit_accelerated_compositing_mode()? We should print a warning instead of leaking memory.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:441
&gt; +void ewk_view_exit_accelerated_compositing_mode(Evas_Object* ewkView)

How about returning a bool so that the client know if it was successful?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:446
&gt; +    if (!priv-&gt;evasGl)

Should it be an if check or an EINA_SAFETY? I guess this mean this means the client called ewk_view_exit_accelerated_compositing_mode() without calling ewk_view_enter_accelerated_compositing_mode() first, which would be wrong API usage. Also, if ewk_view_enter_accelerated_compositing_mode() starts returning a boolean, the client has not excuse.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:483
&gt; +        evas_gl_surface_destroy(priv-&gt;evasGl, priv-&gt;evasGlSurface);

I would feel better with a &quot;priv-&gt;evasGlSurface = 0;&quot; right after this line. I know it is not strictly needed but we might experience issues later if the ewk_view_create_gl_surface() starts checking the value of priv-&gt;evasGlSurface.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view_private.h:72
&gt; +WebCore::IntSize ewk_view_size_get(Evas_Object* ewkView);

Argument should be const.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view_private.h:75
&gt; +void ewk_view_enter_accelerated_compositing_mode(Evas_Object* ewkView);

the verb is usually at the end: &quot;ewk_view_accelerated_compositing_mode_enter()&quot;.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view_private.h:76
&gt; +void ewk_view_exit_accelerated_compositing_mode(Evas_Object* ewkView);

Ditto.

&gt; Tools/ChangeLog:8
&gt; +        This patch is a subset of Efl&apos;s UI_SIDE_COMPOSITING implementation.

This changelog should reflect the actual change to the MiniBrowser instead of being so generic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673073</commentid>
    <comment_count>4</comment_count>
      <attachid>153157</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-18 19:01:05 -0700</bug_when>
    <thetext>Created attachment 153157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673075</commentid>
    <comment_count>5</comment_count>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-18 19:08:18 -0700</bug_when>
    <thetext>(In reply to comment #3)

Thank you for kind review.

&gt; (From update of attachment 152925 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152925&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:76
&gt; &gt;      ~_Ewk_View_Private_Data()
&gt; 
&gt; You probably need Evas_GL clean up code in the destructor. I&apos;m assuming the view can be destroyed without ewk_view_exit_accelerated_compositing_mode() being called beforehand.

When the view is destroyed, ewk_view_exit_accelerated_compositing_mode is called like below.
~_Ewk_View_Private_Data() =&gt; ~PageClientImpl() =&gt; ~WebPageProxy() =&gt; ~DrawingAreaProxyImpl()
=&gt; WebPageProxy::exitAcceleratedCompositingMode =&gt; PageClientImpl::exitAcceleratedCompositingMode
=&gt; ewk_view_exit_accelerated_compositing_mode

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:383
&gt; &gt; +IntSize ewk_view_size_get(Evas_Object* ewkView)
&gt; 
&gt; argument should be const.
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:403
&gt; &gt; +
&gt; 
&gt; How about an ASSERT(!priv-&gt;evasGlSurface); to make sure we don&apos;t leak memory?
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:415
&gt; &gt; +void ewk_view_enter_accelerated_compositing_mode(Evas_Object* ewkView)
&gt; 
&gt; How about returning a bool so that the client know if it was successful?
&gt; 
fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:421
&gt; &gt; +    priv-&gt;evasGl = evas_gl_new(evas);
&gt; 
&gt; I think we need an EINA_SAFETY check to make sure priv-&gt;evasGl is NULL when this function is called. What if the client calls this function several times without calling the ewk_view_exit_accelerated_compositing_mode()? We should print a warning instead of leaking memory.
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:441
&gt; &gt; +void ewk_view_exit_accelerated_compositing_mode(Evas_Object* ewkView)
&gt; 
&gt; How about returning a bool so that the client know if it was successful?
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:446
&gt; &gt; +    if (!priv-&gt;evasGl)
&gt; 
&gt; Should it be an if check or an EINA_SAFETY? I guess this mean this means the client called ewk_view_exit_accelerated_compositing_mode() without calling ewk_view_enter_accelerated_compositing_mode() first, which would be wrong API usage. Also, if ewk_view_enter_accelerated_compositing_mode() starts returning a boolean, the client has not excuse.
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:483
&gt; &gt; +        evas_gl_surface_destroy(priv-&gt;evasGl, priv-&gt;evasGlSurface);
&gt; 
&gt; I would feel better with a &quot;priv-&gt;evasGlSurface = 0;&quot; right after this line. I know it is not strictly needed but we might experience issues later if the ewk_view_create_gl_surface() starts checking the value of priv-&gt;evasGlSurface.
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view_private.h:72
&gt; &gt; +WebCore::IntSize ewk_view_size_get(Evas_Object* ewkView);
&gt; 
&gt; Argument should be const.
&gt; 

fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view_private.h:75
&gt; &gt; +void ewk_view_enter_accelerated_compositing_mode(Evas_Object* ewkView);
&gt; 
&gt; the verb is usually at the end: &quot;ewk_view_accelerated_compositing_mode_enter()&quot;.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view_private.h:76
&gt; &gt; +void ewk_view_exit_accelerated_compositing_mode(Evas_Object* ewkView);
&gt; 
&gt; Ditto.
&gt; 

fixed.

&gt; &gt; Tools/ChangeLog:8
&gt; &gt; +        This patch is a subset of Efl&apos;s UI_SIDE_COMPOSITING implementation.
&gt; 
&gt; This changelog should reflect the actual change to the MiniBrowser instead of being so generic.

fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676347</commentid>
    <comment_count>6</comment_count>
      <attachid>153157</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-23 20:02:19 -0700</bug_when>
    <thetext>Comment on attachment 153157
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:393
&gt; +    EWK_VIEW_SD_GET(ewkView, smartData);

Use EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:394
&gt; +    EWK_VIEW_PRIV_GET(smartData, priv);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:404
&gt; +    ASSERT(!priv-&gt;evasGlSurface);

Though below condition check this again, should we use this ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:416
&gt; +bool ewk_view_accelerated_compositing_mode_enter(Evas_Object* ewkView)

If possible, it is good to use *const* keyword.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:418
&gt; +    EWK_VIEW_SD_GET(ewkView, smartData);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:419
&gt; +    EWK_VIEW_PRIV_GET(smartData, priv);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:442
&gt; +    }

Add an empty line.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:446
&gt; +bool ewk_view_accelerated_compositing_mode_exit(Evas_Object* ewkView)

If possible, it is good to use *const* keyword.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:448
&gt; +    EWK_VIEW_SD_GET(ewkView, smartData);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:449
&gt; +    EWK_VIEW_PRIV_GET(smartData, priv);

ditto.

&gt; Tools/MiniBrowser/efl/main.c:51
&gt; +    &quot;GPL&quot;,

AFAIK, WebKit is based on LGPL and Apple BSD. So, LGPL is more proper.

&gt; Tools/MiniBrowser/efl/main.c:224
&gt; +    ecore_app_args_set(argc, (const char**) argv);

s/(const char**)/(const char **)/g</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676390</commentid>
    <comment_count>7</comment_count>
      <attachid>153959</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-23 22:27:50 -0700</bug_when>
    <thetext>Created attachment 153959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676406</commentid>
    <comment_count>8</comment_count>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-23 22:47:42 -0700</bug_when>
    <thetext>(In reply to comment #6)

Thanks for kind review.

&gt; (From update of attachment 153157 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=153157&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:393
&gt; &gt; +    EWK_VIEW_SD_GET(ewkView, smartData);
&gt; 
&gt; Use EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);

fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:394
&gt; &gt; +    EWK_VIEW_PRIV_GET(smartData, priv);
&gt; 
&gt; ditto.

fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:404
&gt; &gt; +    ASSERT(!priv-&gt;evasGlSurface);
&gt; 
&gt; Though below condition check this again, should we use this ?
It&apos;s Christophe Dumez&apos;s suggestion. 
It&apos;s for memory leak when the client calls this function several times.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:416
&gt; &gt; +bool ewk_view_accelerated_compositing_mode_enter(Evas_Object* ewkView)
&gt; 
&gt; If possible, it is good to use *const* keyword.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:418
&gt; &gt; +    EWK_VIEW_SD_GET(ewkView, smartData);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:419
&gt; &gt; +    EWK_VIEW_PRIV_GET(smartData, priv);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:442
&gt; &gt; +    }
&gt; 
&gt; Add an empty line.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:446
&gt; &gt; +bool ewk_view_accelerated_compositing_mode_exit(Evas_Object* ewkView)
&gt; 
&gt; If possible, it is good to use *const* keyword.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:448
&gt; &gt; +    EWK_VIEW_SD_GET(ewkView, smartData);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:449
&gt; &gt; +    EWK_VIEW_PRIV_GET(smartData, priv);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:51
&gt; &gt; +    &quot;GPL&quot;,
&gt; 
&gt; AFAIK, WebKit is based on LGPL and Apple BSD. So, LGPL is more proper.
fixed.
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:224
&gt; &gt; +    ecore_app_args_set(argc, (const char**) argv);
&gt; 
&gt; s/(const char**)/(const char **)/g
fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676439</commentid>
    <comment_count>9</comment_count>
      <attachid>153970</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-23 23:52:01 -0700</bug_when>
    <thetext>Created attachment 153970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679224</commentid>
    <comment_count>10</comment_count>
      <attachid>154626</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-26 05:57:44 -0700</bug_when>
    <thetext>Created attachment 154626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680048</commentid>
    <comment_count>11</comment_count>
      <attachid>154626</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-26 20:08:45 -0700</bug_when>
    <thetext>Comment on attachment 154626
Patch

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

&gt; Source/WebKit2/Shared/efl/LayerTreeContextEfl.cpp:2
&gt; +    Copyright (C) 2012 Samsung Electronics

I was told BSD license is more useful. So, could you change LGPL with BSD ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:434
&gt; +    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);

Change 0 with false.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:435
&gt; +    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:459
&gt; +    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:460
&gt; +    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:490
&gt; +    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:491
&gt; +    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680185</commentid>
    <comment_count>12</comment_count>
      <attachid>154860</attachid>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-27 00:16:27 -0700</bug_when>
    <thetext>Created attachment 154860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680195</commentid>
    <comment_count>13</comment_count>
    <who name="YoungTaeck Song">youngtaeck.song</who>
    <bug_when>2012-07-27 00:27:27 -0700</bug_when>
    <thetext>(In reply to comment #11)
Thanks for kind review.

&gt; (From update of attachment 154626 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154626&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/efl/LayerTreeContextEfl.cpp:2
&gt; &gt; +    Copyright (C) 2012 Samsung Electronics
&gt; 
&gt; I was told BSD license is more useful. So, could you change LGPL with BSD ?
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:434
&gt; &gt; +    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
&gt; 
&gt; Change 0 with false.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:435
&gt; &gt; +    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:459
&gt; &gt; +    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:460
&gt; &gt; +    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:490
&gt; &gt; +    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
&gt; 
&gt; ditto.
fixed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:491
&gt; &gt; +    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
&gt; 
&gt; ditto.
fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680229</commentid>
    <comment_count>14</comment_count>
      <attachid>154860</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-27 00:58:59 -0700</bug_when>
    <thetext>Comment on attachment 154860
Patch

As a step to support UI_SIDE_COMPOSITING for EFL port, looks good to me now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680568</commentid>
    <comment_count>15</comment_count>
      <attachid>154860</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 06:45:38 -0700</bug_when>
    <thetext>Comment on attachment 154860
Patch

Clearing flags on attachment: 154860

Committed r123872: &lt;http://trac.webkit.org/changeset/123872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680569</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 06:45:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152921</attachid>
            <date>2012-07-17 22:24:46 -0700</date>
            <delta_ts>2012-07-17 22:33:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>evasgl.diff</filename>
            <type>text/plain</type>
            <size>13833</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkMmE5YzQ0Li4yOWNkNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTcgIFlvdW5nVGFlY2sgU29uZyAgPHlvdW5ndGFlY2suc29uZ0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBbV0syXVtFRkxdIEFkZCBhbiBBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RyBpbXBsZW1lbnRhdGlvbiBmb3IgRWZsIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lE
RV9DT01QT1NJVElORyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgV2hlbiBlbnRlciBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZyBtb2RlLCBjcmVhdGUgZXZhc19nbCwgZXZhc19nbF9jb250ZXh0LCBh
bmQgZXZhc19nbF9zdXJmYWNlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVyVHJlZUNvbnRl
eHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnZpZXdTaXplKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAg
IChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0Rh
dGE6Ol9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfc2l6ZV9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UpOgorICAgICAgICAoZXdrX3Zp
ZXdfZW50ZXJfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChld2tfdmll
d19leGl0X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21vZGUpOgorICAgICAgICAoX2V3a192aWV3
X3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdf
cHJpdmF0ZS5oOgorCiAyMDEyLTA3LTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5k
dW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gUmVwbGFjZSAwIGJ5IE5VTEwgaW4gcHVi
bGljIGhlYWRlcnMgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBm
MzI3ZTI2Li5iOWQ2MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTgsOSArMTgs
OSBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFNoYXJlZC9BUEkvYy9ndGsv
V0tHcmFwaGljc0NvbnRleHRHdGsuY3BwCiAKLSAgICBTaGFyZWQvY2Fpcm8vTGF5ZXJUcmVlQ29u
dGV4dENhaXJvLmNwcAogICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAK
IAorICAgIFNoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKICAgICBTaGFyZWQvZWZs
L05hdGl2ZVdlYktleWJvYXJkRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJX
aGVlbEV2ZW50RWZsLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViTW91c2VFdmVudEVmbC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDcxMGQ5ZGEu
LjM4ODUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAt
NTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3Qgd2ViTGF5ZXJJRDsKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICB1aW50NjRfdCB3aW5kb3dIYW5kbGU7CisjZWxpZiBQTEFURk9STShF
RkwpCisgICAgdWludDMyX3Qgd2ViTGF5ZXJJRDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U0MDAxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorCisj
aW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMYXllclRyZWVDb250ZXh0OjpMYXllclRyZWVDb250
ZXh0KCkKKyAgICA6IHdlYkxheWVySUQoMCkKK3sKK30KKworTGF5ZXJUcmVlQ29udGV4dDo6fkxh
eWVyVHJlZUNvbnRleHQoKQoreworfQorCit2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKHdlYkxheWVySUQpOworfQorCitib29sIExheWVyVHJlZUNvbnRleHQ6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJlZUNvbnRleHQmIGNvbnRl
eHQpCit7CisgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShjb250ZXh0LndlYkxheWVySUQpOwor
fQorCitib29sIExheWVyVHJlZUNvbnRleHQ6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVy
biAhd2ViTGF5ZXJJRDsKK30KKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmIGEsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGIpCit7CisgICAgcmV0dXJuIGEud2ViTGF5
ZXJJRCA9PSBiLndlYkxheWVySUQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmlu
ZGV4IGU2OWY4N2QuLjZhY2IxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTcyLDkgKzcyLDcgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2Nyb2xsVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3IKIAogV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1Np
emUoKQogewotICAgIGludCB3aWR0aCwgaGVpZ2h0OwotICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5
X2dldChtX3ZpZXdXaWRnZXQsIDAsIDAsICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgcmV0dXJuIElu
dFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgcmV0dXJuIGV3a192aWV3X3NpemVfZ2V0KG1fdmll
d1dpZGdldCk7CiB9CiAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1dpbmRvd0FjdGl2ZSgp
CkBAIC0yMjEsMTIgKzIxOSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRGaW5kSW5kaWNh
dG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wsIGJvb2wpCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIGV3a192aWV3X2VudGVyX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21v
ZGUobV92aWV3V2lkZ2V0KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV3a192
aWV3X2V4aXRfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZShtX3ZpZXdXaWRnZXQpOwogfQog
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShj
b25zdCBMYXllclRyZWVDb250ZXh0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcAppbmRleCA4YjcxMzJiLi44ZTBjNzEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zOCw2ICszOCwxMCBAQAog
I2luY2x1ZGUgImV3a193ZWJfcmVzb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSA8RXZhc19H
TC5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApAQCAtNTIsMTAgKzU2LDIxIEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhIHsKICAgICBjb25zdCBjaGFyKiB0aGVtZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxv
YWRpbmdSZXNvdXJjZXNNYXA7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisg
ICAgRXZhc19HTCogZXZhc0dsOworICAgIEV2YXNfR0xfQ29udGV4dCogZXZhc0dsQ29udGV4dDsK
KyAgICBFdmFzX0dMX1N1cmZhY2UqIGV2YXNHbFN1cmZhY2U7CisjZW5kaWYKKwogICAgIF9Fd2tf
Vmlld19Qcml2YXRlX0RhdGEoKQogICAgICAgICA6IHVyaSgwKQogICAgICAgICAsIHRpdGxlKDAp
CiAgICAgICAgICwgdGhlbWUoMCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisg
ICAgICAgICwgZXZhc0dsKDApCisgICAgICAgICwgZXZhc0dsQ29udGV4dCgwKQorICAgICAgICAs
IGV2YXNHbFN1cmZhY2UoMCkKKyNlbmRpZgogICAgIHsgfQogCiAgICAgfl9Fd2tfVmlld19Qcml2
YXRlX0RhdGEoKQpAQCAtMzY1LDYgKzM4MCw4NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21h
cnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkCiAg
ICAgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoc21hcnREYXRhKTsKIH0KIAorSW50U2l6ZSBld2tf
dmlld19zaXplX2dldChFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBpbnQgd2lkdGgsIGhl
aWdodDsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoZXdrVmlldywgMCwgMCwgJndpZHRo
LCAmaGVpZ2h0KTsKKyAgICByZXR1cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKK30KKworI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3N0YXRpYyBib29sIGV3a192aWV3X2NyZWF0
ZV9nbF9zdXJmYWNlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBJbnRTaXplJiB2aWV3U2l6
ZSkKK3sKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tf
VklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOworCisgICAgRXZhc19HTF9Db25maWcgZXZh
c0dsQ29uZmlnID0geworICAgICAgICBFVkFTX0dMX1JHQkFfODg4OCwKKyAgICAgICAgRVZBU19H
TF9ERVBUSF9CSVRfOCwKKyAgICAgICAgRVZBU19HTF9TVEVOQ0lMX05PTkUsCisgICAgICAgIEVW
QVNfR0xfT1BUSU9OU19OT05FLAorICAgICAgICBFVkFTX0dMX01VTFRJU0FNUExFX05PTkUKKyAg
ICB9OworCisgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IGV2YXNfZ2xfc3VyZmFjZV9jcmVhdGUo
cHJpdi0+ZXZhc0dsLCAmZXZhc0dsQ29uZmlnLCB2aWV3U2l6ZS53aWR0aCgpLCB2aWV3U2l6ZS5o
ZWlnaHQoKSk7CisgICAgaWYgKCFwcml2LT5ldmFzR2xTdXJmYWNlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBFdmFzX05hdGl2ZV9TdXJmYWNlIG5hdGl2ZVN1cmZhY2U7CisgICAgZXZh
c19nbF9uYXRpdmVfc3VyZmFjZV9nZXQocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xTdXJmYWNl
LCAmbmF0aXZlU3VyZmFjZSk7CisgICAgZXZhc19vYmplY3RfaW1hZ2VfbmF0aXZlX3N1cmZhY2Vf
c2V0KHNtYXJ0RGF0YS0+aW1hZ2UsICZuYXRpdmVTdXJmYWNlKTsKKworICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIGV3a192aWV3X2VudGVyX2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21vZGUo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHNt
YXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKworICAg
IEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChld2tWaWV3KTsKKyAgICBwcml2LT5l
dmFzR2wgPSBldmFzX2dsX25ldyhldmFzKTsKKyAgICBpZiAoIXByaXYtPmV2YXNHbCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcHJpdi0+ZXZhc0dsQ29udGV4dCA9IGV2YXNfZ2xfY29udGV4dF9j
cmVhdGUocHJpdi0+ZXZhc0dsLCAwKTsKKyAgICBpZiAoIXByaXYtPmV2YXNHbENvbnRleHQpIHsK
KyAgICAgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2YXNHbCk7CisgICAgICAgIHByaXYtPmV2YXNH
bCA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWV3a192aWV3X2NyZWF0
ZV9nbF9zdXJmYWNlKGV3a1ZpZXcsIGV3a192aWV3X3NpemVfZ2V0KGV3a1ZpZXcpKSkgeworICAg
ICAgICBldmFzX2dsX2NvbnRleHRfZGVzdHJveShwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbENv
bnRleHQpOworICAgICAgICBwcml2LT5ldmFzR2xDb250ZXh0ID0gMDsKKworICAgICAgICBldmFz
X2dsX2ZyZWUocHJpdi0+ZXZhc0dsKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsID0gMDsKKyAgICB9
Cit9CisKK3ZvaWQgZXdrX3ZpZXdfZXhpdF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlKEV2
YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBzbWFy
dERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBp
ZiAoIXByaXYtPmV2YXNHbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHByaXYtPmV2YXNH
bFN1cmZhY2UpIHsKKyAgICAgICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0ds
LCBwcml2LT5ldmFzR2xTdXJmYWNlKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IDA7
CisgICAgfQorCisgICAgaWYgKHByaXYtPmV2YXNHbENvbnRleHQpIHsKKyAgICAgICAgZXZhc19n
bF9jb250ZXh0X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xDb250ZXh0KTsKKyAg
ICAgICAgcHJpdi0+ZXZhc0dsQ29udGV4dCA9IDA7CisgICAgfQorCisgICAgZXZhc19nbF9mcmVl
KHByaXYtPmV2YXNHbCk7CisgICAgcHJpdi0+ZXZhc0dsID0gMDsKK30KKyNlbmRpZgorCiBzdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQog
ewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKQEAg
LTM3Niw4ICs0NzIsMTkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZShF
dmFzX09iamVjdCogZXdrVmlldykKICAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoZXdrVmll
dywgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwogCiAgICAgaWYgKHNtYXJ0RGF0YS0+Y2hhbmdl
ZC5zaXplKSB7CisgICAgICAgIEludFNpemUgbmV3Vmlld1NpemUod2lkdGgsIGhlaWdodCk7CisK
ICAgICAgICAgaWYgKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKSkKLSAg
ICAgICAgICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6
ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBJbnRTaXplKCkpOworICAgICAgICAgICAgcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKG5ld1ZpZXdTaXplLCBJ
bnRTaXplKCkpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICBp
ZiAoIXByaXYtPmV2YXNHbFN1cmZhY2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGV2
YXNfZ2xfc3VyZmFjZV9kZXN0cm95KHByaXYtPmV2YXNHbCwgcHJpdi0+ZXZhc0dsU3VyZmFjZSk7
CisgICAgICAgIGV3a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGV3a1ZpZXcsIG5ld1ZpZXdTaXpl
KTsKKyAgICAgICAgZXdrX3ZpZXdfZGlzcGxheShld2tWaWV3LCBJbnRSZWN0KEludFBvaW50KCks
IG5ld1ZpZXdTaXplKSk7CisjZW5kaWYKKwogICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdp
ZHRoOwogICAgICAgICBzbWFydERhdGEtPnZpZXcuaCA9IGhlaWdodDsKICAgICAgICAgc21hcnRE
YXRhLT5jaGFuZ2VkLnNpemUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCAzYzljZTk0Li42OTliYmQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJp
dmF0ZS5oCkBAIC02OSw1ICs2OSwxMSBAQCB2b2lkIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3Jl
Z2lzdGVyKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50X1NlcgogI2VuZGlm
CiAKIFdlYktpdDo6V2ViUGFnZVByb3h5KiBld2tfdmlld19wYWdlX2dldChjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldyk7CitXZWJDb3JlOjpJbnRTaXplIGV3a192aWV3X3NpemVfZ2V0KEV2YXNf
T2JqZWN0KiBld2tWaWV3KTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3Zv
aWQgZXdrX3ZpZXdfZW50ZXJfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZShFdmFzX09iamVj
dCogZXdrVmlldyk7Cit2b2lkIGV3a192aWV3X2V4aXRfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdf
bW9kZShFdmFzX09iamVjdCogZXdrVmlldyk7CisjZW5kaWYKIAogI2VuZGlmIC8vIGV3a192aWV3
X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDIyMzc3ZWQuLmNmMDM4NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNy0xNyAgWW91bmdUYWVj
ayBTb25nICA8eW91bmd0YWVjay5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtXSzJdW0VG
TF0gQWRkIGFuIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGltcGxlbWVudGF0aW9uIGZvciBFZmwg
V2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpcyBhIHN1YnNldCBvZiBFZmwncyBVSV9TSURFX0NPTVBPU0lUSU5HIGltcGxlbWVudGF0
aW9uLgorICAgICAgICBBZGQgYSBvcHRpb24gZm9yIHNlbGVjdGluZyBldmFzIGVuZ2luZS4KKwor
ICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChicm93c2VyQ3JlYXRl
KToKKyAgICAgICAgKG1haW4pOgorCiAyMDEyLTA3LTE3ICBEaXJrIFByYW5rZSAgPGRwcmFua2VA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIG5yd3Q6IG1vdmUgY29uZmlnLXNwZWNpZmljIGxvZ2dp
bmcgdG8gcHJpbnRpbmcucHkKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWlu
LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCmluZGV4IGE5NzlmNWUuLjE3YTc2Nzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZWZsL21haW4uYwpAQCAtNDMsNiArNDMsMzEgQEAgdHlwZWRlZiBzdHJ1Y3QgX01p
bmlCcm93c2VyIHsKICAgICBFdmFzX09iamVjdCAqYnJvd3NlcjsKIH0gTWluaUJyb3dzZXI7CiAK
K3N0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKKyAgICAiTWluaUJyb3dzZXIi
LAorICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLAorICAgICIwLjAuMSIsCisgICAgIihDKTIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcyIsCisgICAgIkdQTCIsCisgICAgIlRlc3QgV2ViIEJyb3dz
ZXIgdXNpbmcgdGhlIEVubGlnaHRlbm1lbnQgRm91bmRhdGlvbiBMaWJyYXJpZXMgb2YgV2ViS2l0
MiIsCisgICAgRUlOQV9UUlVFLCB7CisgICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9TVFIKKyAg
ICAgICAgICAgICgnZScsICJlbmdpbmUiLCAiZWNvcmUtZXZhcyBlbmdpbmUgdG8gdXNlLiIpLAor
ICAgICAgICBFQ09SRV9HRVRPUFRfQ0FMTEJBQ0tfTk9BUkdTCisgICAgICAgICAgICAoJ0UnLCAi
bGlzdC1lbmdpbmVzIiwgImxpc3QgZWNvcmUtZXZhcyBlbmdpbmVzLiIsCisgICAgICAgICAgICAg
ZWNvcmVfZ2V0b3B0X2NhbGxiYWNrX2Vjb3JlX2V2YXNfbGlzdF9lbmdpbmVzLCBOVUxMKSwKKyAg
ICAgICAgRUNPUkVfR0VUT1BUX1ZFUlNJT04KKyAgICAgICAgICAgICgnVicsICJ2ZXJzaW9uIiks
CisgICAgICAgIEVDT1JFX0dFVE9QVF9DT1BZUklHSFQKKyAgICAgICAgICAgICgnUicsICJjb3B5
cmlnaHQiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0xJQ0VOU0UKKyAgICAgICAgICAgICgnTCcs
ICJsaWNlbnNlIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9IRUxQCisgICAgICAgICAgICAoJ2gn
LCAiaGVscCIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfU0VOVElORUwKKyAgICB9Cit9OworCiBz
dGF0aWMgRWluYV9Cb29sIG1haW5fc2lnbmFsX2V4aXQodm9pZCAqZGF0YSwgaW50IGV2X3R5cGUs
IHZvaWQgKmV2KQogewogICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7CkBAIC0xMzksMTEgKzE2
NCwxMSBAQCBvbl9lcnJvcih2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2
b2lkICpldmVudF9pbmZvKQogICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmZmVyKTsKIH0KIAotc3Rh
dGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCkKK3N0YXRpYyBN
aW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKmVu
Z2luZSkKIHsKICAgICBNaW5pQnJvd3NlciAqYXBwID0gbWFsbG9jKHNpemVvZihNaW5pQnJvd3Nl
cikpOwogCi0gICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3KDAsIDAsIDAsIERFRkFVTFRfV0lE
VEgsIERFRkFVTFRfSEVJR0hULCAwKTsKKyAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19uZXcoZW5n
aW5lLCAwLCAwLCBERUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCwgMCk7CiAKICAgICBlY29y
ZV9ldmFzX3RpdGxlX3NldChhcHAtPmVlLCBBUFBfTkFNRSk7CiAgICAgZWNvcmVfZXZhc19jYWxs
YmFja19yZXNpemVfc2V0KGFwcC0+ZWUsIG9uX2Vjb3JlX2V2YXNfcmVzaXplKTsKQEAgLTE4NSwx
NyArMjEwLDMxIEBAIHN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFy
ICp1cmwpCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogICAgIGNvbnN0IGNo
YXIgKnVybDsKKyAgICBjaGFyICplbmdpbmUgPSBOVUxMOwogICAgIGludCBhcmdzID0gMTsKIAor
ICAgIEVjb3JlX0dldG9wdF9WYWx1ZSB2YWx1ZXNbXSA9IHsKKyAgICAgICAgRUNPUkVfR0VUT1BU
X1ZBTFVFX1NUUihlbmdpbmUpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfTk9ORQorICAg
IH07CisKICAgICBpZiAoIWVjb3JlX2V2YXNfaW5pdCgpKQogICAgICAgICByZXR1cm4gRVhJVF9G
QUlMVVJFOwogCisgICAgZWNvcmVfYXBwX2FyZ3Nfc2V0KGFyZ2MsIChjb25zdCBjaGFyKiopIGFy
Z3YpOworICAgIGFyZ3MgPSBlY29yZV9nZXRvcHRfcGFyc2UoJm9wdGlvbnMsIHZhbHVlcywgYXJn
YywgYXJndik7CisKKyAgICBpZiAoYXJncyA8IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIs
ICJFUlJPUjogY291bGQgbm90IHBhcnNlIG9wdGlvbnMuXG4iKTsKKyAgICAgICAgcmV0dXJuIEVY
SVRfRkFJTFVSRTsKKyAgICB9CisKICAgICBpZiAoYXJncyA8IGFyZ2MpCiAgICAgICAgIHVybCA9
IGFyZ3ZbYXJnc107CiAgICAgZWxzZQogICAgICAgICB1cmwgPSBERUZBVUxUX1VSTDsKIAotICAg
IE1pbmlCcm93c2VyICpicm93c2VyID0gYnJvd3NlckNyZWF0ZSh1cmwpOworICAgIE1pbmlCcm93
c2VyICpicm93c2VyID0gYnJvd3NlckNyZWF0ZSh1cmwsIGVuZ2luZSk7CiAKICAgICBFY29yZV9F
dmVudF9IYW5kbGVyICpoYW5kbGUgPSBlY29yZV9ldmVudF9oYW5kbGVyX2FkZChFQ09SRV9FVkVO
VF9TSUdOQUxfRVhJVCwgbWFpbl9zaWduYWxfZXhpdCwgMCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152925</attachid>
            <date>2012-07-17 22:33:28 -0700</date>
            <delta_ts>2012-07-18 19:00:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>evasgl.diff</filename>
            <type>text/plain</type>
            <size>13843</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkMmE5YzQ0Li4yOWNkNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTcgIFlvdW5nVGFlY2sgU29uZyAgPHlvdW5ndGFlY2suc29uZ0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBbV0syXVtFRkxdIEFkZCBhbiBBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RyBpbXBsZW1lbnRhdGlvbiBmb3IgRWZsIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBhIHN1YnNldCBvZiBFZmwncyBV
SV9TSURFX0NPTVBPU0lUSU5HIGltcGxlbWVudGF0aW9uLgorICAgICAgICBXaGVuIGVudGVyIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUsIGNyZWF0ZSBldmFzX2dsLCBldmFzX2dsX2NvbnRl
eHQsIGFuZCBldmFzX2dsX3N1cmZhY2UuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToK
KyAgICAgICAgKiBTaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAgICAoTGF5ZXJUcmVl
Q29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dmlld1NpemUpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAg
ICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZh
dGVfRGF0YTo6X0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChld2tfdmlld19zaXpl
X2dldCk6CisgICAgICAgIChld2tfdmlld19jcmVhdGVfZ2xfc3VyZmFjZSk6CisgICAgICAgIChl
d2tfdmlld19lbnRlcl9hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlKToKKyAgICAgICAgKGV3
a192aWV3X2V4aXRfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChfZXdr
X3ZpZXdfc21hcnRfY2FsY3VsYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld19wcml2YXRlLmg6CisKIDIwMTItMDctMTcgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3Rv
cGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBSZXBsYWNlIDAgYnkgTlVMTCBp
biBwdWJsaWMgaGVhZGVycyBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmlu
ZGV4IGYzMjdlMjYuLmI5ZDYwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xOCw5
ICsxOCw5IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgU2hhcmVkL0FQSS9j
L2d0ay9XS0dyYXBoaWNzQ29udGV4dEd0ay5jcHAKIAotICAgIFNoYXJlZC9jYWlyby9MYXllclRy
ZWVDb250ZXh0Q2Fpcm8uY3BwCiAgICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJv
LmNwcAogCisgICAgU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcAogICAgIFNoYXJl
ZC9lZmwvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudEVmbC5jcHAKICAgICBTaGFyZWQvZWZsL05hdGl2
ZVdlYldoZWVsRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJNb3VzZUV2ZW50
RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKaW5kZXggNzEw
ZDlkYS4uMzg4NTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJl
ZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5o
CkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB1aW50MzJfdCB3ZWJMYXllcklEOwogI2Vs
aWYgUExBVEZPUk0oR1RLKQogICAgIHVpbnQ2NF90IHdpbmRvd0hhbmRsZTsKKyNlbGlmIFBMQVRG
T1JNKEVGTCkKKyAgICB1aW50MzJfdCB3ZWJMYXllcklEOwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTQwMDExCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0Lmgi
CisKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29k
ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0xheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJl
ZUNvbnRleHQoKQorICAgIDogd2ViTGF5ZXJJRCgwKQoreworfQorCitMYXllclRyZWVDb250ZXh0
Ojp+TGF5ZXJUcmVlQ29udGV4dCgpCit7Cit9CisKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyLT5lbmNvZGUod2ViTGF5ZXJJRCk7Cit9CisKK2Jvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYg
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQud2ViTGF5ZXJJ
RCk7Cit9CisKK2Jvb2wgTGF5ZXJUcmVlQ29udGV4dDo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICF3ZWJMYXllcklEOworfQorCitib29sIG9wZXJhdG9yPT0oY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgYSwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgYikKK3sKKyAgICByZXR1cm4gYS53
ZWJMYXllcklEID09IGIud2ViTGF5ZXJJRDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5j
cHAKaW5kZXggZTY5Zjg3ZC4uNmFjYjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNzIsOSArNzIsNyBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzY3JvbGxWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IFdlYkNvcgogCiBXZWJDb3JlOjpJbnRTaXplIFBhZ2VDbGllbnRJbXBsOjp2
aWV3U2l6ZSgpCiB7Ci0gICAgaW50IHdpZHRoLCBoZWlnaHQ7Ci0gICAgZXZhc19vYmplY3RfZ2Vv
bWV0cnlfZ2V0KG1fdmlld1dpZGdldCwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICByZXR1
cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gZXdrX3ZpZXdfc2l6ZV9nZXQo
bV92aWV3V2lkZ2V0KTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0
aXZlKCkKQEAgLTIyMSwxMiArMjE5LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldEZpbmRJ
bmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCwgYm9vbCkKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgZXdrX3ZpZXdfZW50ZXJfYWNjZWxlcmF0ZWRfY29tcG9zaXRp
bmdfbW9kZShtX3ZpZXdXaWRnZXQpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
ZXdrX3ZpZXdfZXhpdF9hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlKG1fdmlld1dpZGdldCk7
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IDhiNzEzMmIuLjhlMGM3MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTM4LDYgKzM4LDEw
IEBACiAjaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpbmNsdWRlIDxF
dmFzX0dMLmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC01MiwxMCArNTYsMjEgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2
YXRlX0RhdGEgewogICAgIGNvbnN0IGNoYXIqIHRoZW1lOwogICAgIExvYWRpbmdSZXNvdXJjZXNN
YXAgbG9hZGluZ1Jlc291cmNlc01hcDsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICBFdmFzX0dMKiBldmFzR2w7CisgICAgRXZhc19HTF9Db250ZXh0KiBldmFzR2xDb250
ZXh0OworICAgIEV2YXNfR0xfU3VyZmFjZSogZXZhc0dsU3VyZmFjZTsKKyNlbmRpZgorCiAgICAg
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCiAgICAgICAgIDogdXJpKDApCiAgICAgICAgICwgdGl0
bGUoMCkKICAgICAgICAgLCB0aGVtZSgwKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICAgICAgLCBldmFzR2woMCkKKyAgICAgICAgLCBldmFzR2xDb250ZXh0KDApCisgICAg
ICAgICwgZXZhc0dsU3VyZmFjZSgwKQorI2VuZGlmCiAgICAgeyB9CiAKICAgICB+X0V3a19WaWV3
X1ByaXZhdGVfRGF0YSgpCkBAIC0zNjUsNiArMzgwLDg3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmll
d19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29v
cmQKICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChzbWFydERhdGEpOwogfQogCitJbnRTaXpl
IGV3a192aWV3X3NpemVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIGludCB3aWR0
aCwgaGVpZ2h0OworICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChld2tWaWV3LCAwLCAwLCAm
d2lkdGgsICZoZWlnaHQpOworICAgIHJldHVybiBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOworfQor
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorc3RhdGljIGJvb2wgZXdrX3ZpZXdf
Y3JlYXRlX2dsX3N1cmZhY2UoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFNpemUmIHZp
ZXdTaXplKQoreworICAgIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBzbWFydERhdGEpOworICAg
IEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBFdmFzX0dMX0NvbmZp
ZyBldmFzR2xDb25maWcgPSB7CisgICAgICAgIEVWQVNfR0xfUkdCQV84ODg4LAorICAgICAgICBF
VkFTX0dMX0RFUFRIX0JJVF84LAorICAgICAgICBFVkFTX0dMX1NURU5DSUxfTk9ORSwKKyAgICAg
ICAgRVZBU19HTF9PUFRJT05TX05PTkUsCisgICAgICAgIEVWQVNfR0xfTVVMVElTQU1QTEVfTk9O
RQorICAgIH07CisKKyAgICBwcml2LT5ldmFzR2xTdXJmYWNlID0gZXZhc19nbF9zdXJmYWNlX2Ny
ZWF0ZShwcml2LT5ldmFzR2wsICZldmFzR2xDb25maWcsIHZpZXdTaXplLndpZHRoKCksIHZpZXdT
aXplLmhlaWdodCgpKTsKKyAgICBpZiAoIXByaXYtPmV2YXNHbFN1cmZhY2UpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEV2YXNfTmF0aXZlX1N1cmZhY2UgbmF0aXZlU3VyZmFjZTsKKyAg
ICBldmFzX2dsX25hdGl2ZV9zdXJmYWNlX2dldChwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbFN1
cmZhY2UsICZuYXRpdmVTdXJmYWNlKTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9uYXRpdmVfc3Vy
ZmFjZV9zZXQoc21hcnREYXRhLT5pbWFnZSwgJm5hdGl2ZVN1cmZhY2UpOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgZXdrX3ZpZXdfZW50ZXJfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdf
bW9kZShFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmll
dywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOwor
CisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KGV3a1ZpZXcpOworICAgIHBy
aXYtPmV2YXNHbCA9IGV2YXNfZ2xfbmV3KGV2YXMpOworICAgIGlmICghcHJpdi0+ZXZhc0dsKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5ldmFzR2xDb250ZXh0ID0gZXZhc19nbF9jb250
ZXh0X2NyZWF0ZShwcml2LT5ldmFzR2wsIDApOworICAgIGlmICghcHJpdi0+ZXZhc0dsQ29udGV4
dCkgeworICAgICAgICBldmFzX2dsX2ZyZWUocHJpdi0+ZXZhc0dsKTsKKyAgICAgICAgcHJpdi0+
ZXZhc0dsID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghZXdrX3ZpZXdf
Y3JlYXRlX2dsX3N1cmZhY2UoZXdrVmlldywgZXdrX3ZpZXdfc2l6ZV9nZXQoZXdrVmlldykpKSB7
CisgICAgICAgIGV2YXNfZ2xfY29udGV4dF9kZXN0cm95KHByaXYtPmV2YXNHbCwgcHJpdi0+ZXZh
c0dsQ29udGV4dCk7CisgICAgICAgIHByaXYtPmV2YXNHbENvbnRleHQgPSAwOworCisgICAgICAg
IGV2YXNfZ2xfZnJlZShwcml2LT5ldmFzR2wpOworICAgICAgICBwcml2LT5ldmFzR2wgPSAwOwor
ICAgIH0KK30KKwordm9pZCBld2tfdmlld19leGl0X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21v
ZGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcs
IHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKwor
ICAgIGlmICghcHJpdi0+ZXZhc0dsKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocHJpdi0+
ZXZhc0dsU3VyZmFjZSkgeworICAgICAgICBldmFzX2dsX3N1cmZhY2VfZGVzdHJveShwcml2LT5l
dmFzR2wsIHByaXYtPmV2YXNHbFN1cmZhY2UpOworICAgICAgICBwcml2LT5ldmFzR2xTdXJmYWNl
ID0gMDsKKyAgICB9CisKKyAgICBpZiAocHJpdi0+ZXZhc0dsQ29udGV4dCkgeworICAgICAgICBl
dmFzX2dsX2NvbnRleHRfZGVzdHJveShwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbENvbnRleHQp
OworICAgICAgICBwcml2LT5ldmFzR2xDb250ZXh0ID0gMDsKKyAgICB9CisKKyAgICBldmFzX2ds
X2ZyZWUocHJpdi0+ZXZhc0dsKTsKKyAgICBwcml2LT5ldmFzR2wgPSAwOworfQorI2VuZGlmCisK
IHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEp
OwpAQCAtMzc2LDggKzQ3MiwxOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3Vs
YXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChl
d2tWaWV3LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7CiAKICAgICBpZiAoc21hcnREYXRhLT5j
aGFuZ2VkLnNpemUpIHsKKyAgICAgICAgSW50U2l6ZSBuZXdWaWV3U2l6ZSh3aWR0aCwgaGVpZ2h0
KTsKKwogICAgICAgICBpZiAocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5nQXJlYSgp
KQotICAgICAgICAgICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5z
ZXRTaXplKEludFNpemUod2lkdGgsIGhlaWdodCksIEludFNpemUoKSk7CisgICAgICAgICAgICBw
cml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUobmV3Vmlld1Np
emUsIEludFNpemUoKSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAg
ICAgIGlmICghcHJpdi0+ZXZhc0dsU3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xTdXJm
YWNlKTsKKyAgICAgICAgZXdrX3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UoZXdrVmlldywgbmV3Vmll
d1NpemUpOworICAgICAgICBld2tfdmlld19kaXNwbGF5KGV3a1ZpZXcsIEludFJlY3QoSW50UG9p
bnQoKSwgbmV3Vmlld1NpemUpKTsKKyNlbmRpZgorCiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy53
ID0gd2lkdGg7CiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy5oID0gaGVpZ2h0OwogICAgICAgICBz
bWFydERhdGEtPmNoYW5nZWQuc2l6ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4IDNjOWNlOTQuLjY5OWJi
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19wcml2YXRlLmgKQEAgLTY5LDUgKzY5LDExIEBAIHZvaWQgZXdrX3ZpZXdfaW50ZW50X3NlcnZp
Y2VfcmVnaXN0ZXIoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19JbnRlbnRfU2VyCiAj
ZW5kaWYKIAogV2ViS2l0OjpXZWJQYWdlUHJveHkqIGV3a192aWV3X3BhZ2VfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KTsKK1dlYkNvcmU6OkludFNpemUgZXdrX3ZpZXdfc2l6ZV9nZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQordm9pZCBld2tfdmlld19lbnRlcl9hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlKEV2YXNf
T2JqZWN0KiBld2tWaWV3KTsKK3ZvaWQgZXdrX3ZpZXdfZXhpdF9hY2NlbGVyYXRlZF9jb21wb3Np
dGluZ19tb2RlKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKKyNlbmRpZgogCiAjZW5kaWYgLy8gZXdr
X3ZpZXdfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMjIzNzdlZC4uY2YwMzg2YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA3LTE3ICBZb3Vu
Z1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dL
Ml1bRUZMXSBBZGQgYW4gQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgaW1wbGVtZW50YXRpb24gZm9y
IEVmbCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lERV9DT01QT1NJVElORyBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgQWRkIGEgb3B0aW9uIGZvciBzZWxlY3RpbmcgZXZhcyBl
bmdpbmUuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAgICAoYnJv
d3NlckNyZWF0ZSk6CisgICAgICAgIChtYWluKToKKwogMjAxMi0wNy0xNyAgRGlyayBQcmFua2Ug
IDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBucnd0OiBtb3ZlIGNvbmZpZy1zcGVj
aWZpYyBsb2dnaW5nIHRvIHByaW50aW5nLnB5CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCBhOTc5ZjVl
Li4xN2E3Njc4IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTQzLDYgKzQzLDMxIEBAIHR5cGVkZWYg
c3RydWN0IF9NaW5pQnJvd3NlciB7CiAgICAgRXZhc19PYmplY3QgKmJyb3dzZXI7CiB9IE1pbmlC
cm93c2VyOwogCitzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMgPSB7CisgICAgIk1p
bmlCcm93c2VyIiwKKyAgICAiJXByb2cgW29wdGlvbnNdIFt1cmxdIiwKKyAgICAiMC4wLjEiLAor
ICAgICIoQykyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MiLAorICAgICJHUEwiLAorICAgICJUZXN0
IFdlYiBCcm93c2VyIHVzaW5nIHRoZSBFbmxpZ2h0ZW5tZW50IEZvdW5kYXRpb24gTGlicmFyaWVz
IG9mIFdlYktpdDIiLAorICAgIEVJTkFfVFJVRSwgeworICAgICAgICBFQ09SRV9HRVRPUFRfU1RP
UkVfU1RSCisgICAgICAgICAgICAoJ2UnLCAiZW5naW5lIiwgImVjb3JlLWV2YXMgZW5naW5lIHRv
IHVzZS4iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05PQVJHUworICAgICAgICAg
ICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMgZW5naW5lcy4iLAorICAg
ICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFzX2xpc3RfZW5naW5lcywg
TlVMTCksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WRVJTSU9OCisgICAgICAgICAgICAoJ1YnLCAi
dmVyc2lvbiIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfQ09QWVJJR0hUCisgICAgICAgICAgICAo
J1InLCAiY29weXJpZ2h0IiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9MSUNFTlNFCisgICAgICAg
ICAgICAoJ0wnLCAibGljZW5zZSIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfSEVMUAorICAgICAg
ICAgICAgKCdoJywgImhlbHAiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NFTlRJTkVMCisgICAg
fQorfTsKKwogc3RhdGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGlu
dCBldl90eXBlLCB2b2lkICpldikKIHsKICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOwpAQCAt
MTM5LDExICsxNjQsMTEgQEAgb25fZXJyb3Iodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAq
d2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKICAgICBlaW5hX3N0cmJ1Zl9mcmVlKGJ1ZmZlcik7
CiB9CiAKLXN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwp
CitzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25z
dCBjaGFyICplbmdpbmUpCiB7CiAgICAgTWluaUJyb3dzZXIgKmFwcCA9IG1hbGxvYyhzaXplb2Yo
TWluaUJyb3dzZXIpKTsKIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldygwLCAwLCAwLCBE
RUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCwgMCk7CisgICAgYXBwLT5lZSA9IGVjb3JlX2V2
YXNfbmV3KGVuZ2luZSwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOwog
CiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQX05BTUUpOwogICAgIGVjb3Jl
X2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9lY29yZV9ldmFzX3Jlc2l6ZSk7
CkBAIC0xODUsMTcgKzIxMCwzMSBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUo
Y29uc3QgY2hhciAqdXJsKQogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAg
ICBjb25zdCBjaGFyICp1cmw7CisgICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAgICBpbnQgYXJn
cyA9IDE7CiAKKyAgICBFY29yZV9HZXRvcHRfVmFsdWUgdmFsdWVzW10gPSB7CisgICAgICAgIEVD
T1JFX0dFVE9QVF9WQUxVRV9TVFIoZW5naW5lKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVF
X05PTkUKKyAgICB9OworCiAgICAgaWYgKCFlY29yZV9ldmFzX2luaXQoKSkKICAgICAgICAgcmV0
dXJuIEVYSVRfRkFJTFVSRTsKIAorICAgIGVjb3JlX2FwcF9hcmdzX3NldChhcmdjLCAoY29uc3Qg
Y2hhcioqKSBhcmd2KTsKKyAgICBhcmdzID0gZWNvcmVfZ2V0b3B0X3BhcnNlKCZvcHRpb25zLCB2
YWx1ZXMsIGFyZ2MsIGFyZ3YpOworCisgICAgaWYgKGFyZ3MgPCAwKSB7CisgICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiRVJST1I6IGNvdWxkIG5vdCBwYXJzZSBvcHRpb25zLlxuIik7CisgICAgICAg
IHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCiAgICAgaWYgKGFyZ3MgPCBhcmdjKQogICAg
ICAgICB1cmwgPSBhcmd2W2FyZ3NdOwogICAgIGVsc2UKICAgICAgICAgdXJsID0gREVGQVVMVF9V
Ukw7CiAKLSAgICBNaW5pQnJvd3NlciAqYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUodXJsKTsKKyAg
ICBNaW5pQnJvd3NlciAqYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUodXJsLCBlbmdpbmUpOwogCiAg
ICAgRWNvcmVfRXZlbnRfSGFuZGxlciAqaGFuZGxlID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQo
RUNPUkVfRVZFTlRfU0lHTkFMX0VYSVQsIG1haW5fc2lnbmFsX2V4aXQsIDApOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153157</attachid>
            <date>2012-07-18 19:01:05 -0700</date>
            <delta_ts>2012-07-23 22:27:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91581-20120719110104.patch</filename>
            <type>text/plain</type>
            <size>14711</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTA2NGVjOTg2MDllYjkw
OTE0Yjc2ZDY4YjdmNDI5NjU0NmYwMWNlYS4uMzgwMzQ4OGUxYzlkNTU2ZjIzMWI3NDU0MTVhZjVi
M2M5OWM5NWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA3LTE4ICBZb3Vu
Z1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgW1dL
Ml1bRUZMXSBBZGQgYW4gQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgaW1wbGVtZW50YXRpb24gZm9y
IEVmbCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lERV9DT01QT1NJVElORyBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgV2hlbiBlbnRlciBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBtb2RlLCBjcmVhdGUgZXZhc19nbCwgZXZhc19nbF9jb250ZXh0LCBhbmQgZXZhc19nbF9zdXJm
YWNlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL0xh
eWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnZpZXdTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfc2l6ZV9nZXQpOgorICAgICAgICAoZXdr
X3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UpOgorICAgICAgICAoZXdrX3ZpZXdfZW50ZXJfYWNjZWxl
cmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChld2tfdmlld19leGl0X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX21vZGUpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorCisy
MDEyLTA3LTE4ICBZb3VuZ1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+
CisKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgYSBjb21tb24gY29kZSB1c2luZyBDb2xvciBpbnN0
ZWFkIG9mIFFDb2xvcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTE1ODAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmMzI3ZTI2YTVmMGZj
MTZkMzZiM2M3N2YyMWI5YTY5OGVjNDhlOGYzLi5iOWQ2MDYwYWFmYmVhM2ZlZTc0YmZmMGYyNWQ3
MGQwMDk0ZWI5MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTgsOSArMTgsOSBA
QCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFNoYXJlZC9BUEkvYy9ndGsvV0tH
cmFwaGljc0NvbnRleHRHdGsuY3BwCiAKLSAgICBTaGFyZWQvY2Fpcm8vTGF5ZXJUcmVlQ29udGV4
dENhaXJvLmNwcAogICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKIAor
ICAgIFNoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKICAgICBTaGFyZWQvZWZsL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJXaGVl
bEV2ZW50RWZsLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViTW91c2VFdmVudEVmbC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDcxMGQ5ZGE4MTQ0
MzA2YTRlNzAyMDRmZmUwNzk2NzNkYzk1MWJhZGMuLjM4ODUxNGRiMDk1MDlkZmUyMjVjZjdkNThk
OGRkODIzMmI1NTk0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRy
ZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQu
aApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3Qgd2ViTGF5ZXJJRDsKICNl
bGlmIFBMQVRGT1JNKEdUSykKICAgICB1aW50NjRfdCB3aW5kb3dIYW5kbGU7CisjZWxpZiBQTEFU
Rk9STShFRkwpCisgICAgdWludDMyX3Qgd2ViTGF5ZXJJRDsKICNlbmRpZgogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2U0MDAxMWY1ZjNmMGY0MmFjMjFmYTdkMDdiYWI4NTQzMjY4OGU1ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5j
cHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGF5ZXJUcmVl
Q29udGV4dC5oIgorCisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJn
dW1lbnRFbmNvZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMYXllclRyZWVDb250ZXh0
OjpMYXllclRyZWVDb250ZXh0KCkKKyAgICA6IHdlYkxheWVySUQoMCkKK3sKK30KKworTGF5ZXJU
cmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRleHQoKQoreworfQorCit2b2lkIExheWVyVHJlZUNv
bnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2Rlci0+ZW5jb2RlKHdlYkxheWVySUQpOworfQorCitib29sIExheWVyVHJlZUNv
bnRleHQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJl
ZUNvbnRleHQmIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShjb250ZXh0
LndlYkxheWVySUQpOworfQorCitib29sIExheWVyVHJlZUNvbnRleHQ6OmlzRW1wdHkoKSBjb25z
dAoreworICAgIHJldHVybiAhd2ViTGF5ZXJJRDsKK30KKworYm9vbCBvcGVyYXRvcj09KGNvbnN0
IExheWVyVHJlZUNvbnRleHQmIGEsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGIpCit7CisgICAg
cmV0dXJuIGEud2ViTGF5ZXJJRCA9PSBiLndlYkxheWVySUQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFn
ZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNs
aWVudEltcGwuY3BwCmluZGV4IGU2OWY4N2QyODAxMmRlMTUzMGM5MmM5Y2NiMjIxYmRjODIxYzRh
ZGYuLjczNDg2NzYxZDM1NTVhZDdkMWUzMjkyZDcyNWFlMjkxZmNkZjM0YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAg
LTcyLDkgKzcyLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2Nyb2xsVmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3IKIAogV2ViQ29yZTo6SW50U2l6
ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQogewotICAgIGludCB3aWR0aCwgaGVpZ2h0Owot
ICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChtX3ZpZXdXaWRnZXQsIDAsIDAsICZ3aWR0aCwg
JmhlaWdodCk7Ci0gICAgcmV0dXJuIEludFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgcmV0dXJu
IGV3a192aWV3X3NpemVfZ2V0KG1fdmlld1dpZGdldCk7CiB9CiAKIGJvb2wgUGFnZUNsaWVudElt
cGw6OmlzVmlld1dpbmRvd0FjdGl2ZSgpCkBAIC0yMjEsMTIgKzIxOSwxMiBAQCB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJv
b2wsIGJvb2wpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV3a192aWV3X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX21vZGVfZW50ZXIobV92aWV3V2lkZ2V0KTsKIH0KIAogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21vZGVf
ZXhpdChtX3ZpZXdXaWRnZXQpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA4YjcxMzJiNDg0
N2FhNjUxM2I1MmJhMmMwZTI5ZWRmNzZiYTJlMzVkLi4wMTNhNzYwYTkzZDBmNGJhYWFjNWE4NmI3
ZWNlZTVkMTNlMWU5M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuY3BwCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgImV3a193ZWJfcmVzb3Vy
Y2UuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSA8RXZhc19HTC5oPgorI2VuZGlmCisKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTIsMTAgKzU2
LDIxIEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBjb25zdCBjaGFyKiB0
aGVtZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxvYWRpbmdSZXNvdXJjZXNNYXA7CiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgRXZhc19HTCogZXZhc0dsOworICAg
IEV2YXNfR0xfQ29udGV4dCogZXZhc0dsQ29udGV4dDsKKyAgICBFdmFzX0dMX1N1cmZhY2UqIGV2
YXNHbFN1cmZhY2U7CisjZW5kaWYKKwogICAgIF9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQogICAg
ICAgICA6IHVyaSgwKQogICAgICAgICAsIHRpdGxlKDApCiAgICAgICAgICwgdGhlbWUoMCkKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgICwgZXZhc0dsKDApCisgICAg
ICAgICwgZXZhc0dsQ29udGV4dCgwKQorICAgICAgICAsIGV2YXNHbFN1cmZhY2UoMCkKKyNlbmRp
ZgogICAgIHsgfQogCiAgICAgfl9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQpAQCAtMzY1LDYgKzM4
MCw5MyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdr
VmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5n
ZWQoc21hcnREYXRhKTsKIH0KIAorSW50U2l6ZSBld2tfdmlld19zaXplX2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKK3sKKyAgICBpbnQgd2lkdGgsIGhlaWdodDsKKyAgICBldmFzX29i
amVjdF9nZW9tZXRyeV9nZXQoZXdrVmlldywgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBy
ZXR1cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKK3N0YXRpYyBib29sIGV3a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKK3sKKyAgICBFV0tfVklF
V19TRF9HRVQoZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVChzbWFy
dERhdGEsIHByaXYpOworCisgICAgRXZhc19HTF9Db25maWcgZXZhc0dsQ29uZmlnID0geworICAg
ICAgICBFVkFTX0dMX1JHQkFfODg4OCwKKyAgICAgICAgRVZBU19HTF9ERVBUSF9CSVRfOCwKKyAg
ICAgICAgRVZBU19HTF9TVEVOQ0lMX05PTkUsCisgICAgICAgIEVWQVNfR0xfT1BUSU9OU19OT05F
LAorICAgICAgICBFVkFTX0dMX01VTFRJU0FNUExFX05PTkUKKyAgICB9OworCisgICAgQVNTRVJU
KCFwcml2LT5ldmFzR2xTdXJmYWNlKTsKKyAgICBwcml2LT5ldmFzR2xTdXJmYWNlID0gZXZhc19n
bF9zdXJmYWNlX2NyZWF0ZShwcml2LT5ldmFzR2wsICZldmFzR2xDb25maWcsIHZpZXdTaXplLndp
ZHRoKCksIHZpZXdTaXplLmhlaWdodCgpKTsKKyAgICBpZiAoIXByaXYtPmV2YXNHbFN1cmZhY2Up
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEV2YXNfTmF0aXZlX1N1cmZhY2UgbmF0aXZl
U3VyZmFjZTsKKyAgICBldmFzX2dsX25hdGl2ZV9zdXJmYWNlX2dldChwcml2LT5ldmFzR2wsIHBy
aXYtPmV2YXNHbFN1cmZhY2UsICZuYXRpdmVTdXJmYWNlKTsKKyAgICBldmFzX29iamVjdF9pbWFn
ZV9uYXRpdmVfc3VyZmFjZV9zZXQoc21hcnREYXRhLT5pbWFnZSwgJm5hdGl2ZVN1cmZhY2UpOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9z
aXRpbmdfbW9kZV9lbnRlcihFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19T
RF9HRVQoZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERh
dGEsIHByaXYpOworCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKCFwcml2LT5l
dmFzR2wsIGZhbHNlKTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChl
d2tWaWV3KTsKKyAgICBwcml2LT5ldmFzR2wgPSBldmFzX2dsX25ldyhldmFzKTsKKyAgICBpZiAo
IXByaXYtPmV2YXNHbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcHJpdi0+ZXZhc0ds
Q29udGV4dCA9IGV2YXNfZ2xfY29udGV4dF9jcmVhdGUocHJpdi0+ZXZhc0dsLCAwKTsKKyAgICBp
ZiAoIXByaXYtPmV2YXNHbENvbnRleHQpIHsKKyAgICAgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2
YXNHbCk7CisgICAgICAgIHByaXYtPmV2YXNHbCA9IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBpZiAoIWV3a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGV3a1ZpZXcsIGV3
a192aWV3X3NpemVfZ2V0KGV3a1ZpZXcpKSkgeworICAgICAgICBldmFzX2dsX2NvbnRleHRfZGVz
dHJveShwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbENvbnRleHQpOworICAgICAgICBwcml2LT5l
dmFzR2xDb250ZXh0ID0gMDsKKworICAgICAgICBldmFzX2dsX2ZyZWUocHJpdi0+ZXZhc0dsKTsK
KyAgICAgICAgcHJpdi0+ZXZhc0dsID0gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3Np
dGluZ19tb2RlX2V4aXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0Rf
R0VUKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRh
LCBwcml2KTsKKworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChwcml2LT5ldmFz
R2wsIGZhbHNlKTsKKworICAgIGlmIChwcml2LT5ldmFzR2xTdXJmYWNlKSB7CisgICAgICAgIGV2
YXNfZ2xfc3VyZmFjZV9kZXN0cm95KHByaXYtPmV2YXNHbCwgcHJpdi0+ZXZhc0dsU3VyZmFjZSk7
CisgICAgICAgIHByaXYtPmV2YXNHbFN1cmZhY2UgPSAwOworICAgIH0KKworICAgIGlmIChwcml2
LT5ldmFzR2xDb250ZXh0KSB7CisgICAgICAgIGV2YXNfZ2xfY29udGV4dF9kZXN0cm95KHByaXYt
PmV2YXNHbCwgcHJpdi0+ZXZhc0dsQ29udGV4dCk7CisgICAgICAgIHByaXYtPmV2YXNHbENvbnRl
eHQgPSAwOworICAgIH0KKworICAgIGV2YXNfZ2xfZnJlZShwcml2LT5ldmFzR2wpOworICAgIHBy
aXYtPmV2YXNHbCA9IDA7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBzdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewog
ICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKQEAgLTM3
Niw4ICs0NzgsMjAgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZShFdmFz
X09iamVjdCogZXdrVmlldykKICAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoZXdrVmlldywg
JngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwogCiAgICAgaWYgKHNtYXJ0RGF0YS0+Y2hhbmdlZC5z
aXplKSB7CisgICAgICAgIEludFNpemUgbmV3Vmlld1NpemUod2lkdGgsIGhlaWdodCk7CisKICAg
ICAgICAgaWYgKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKSkKLSAgICAg
ICAgICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShJ
bnRTaXplKHdpZHRoLCBoZWlnaHQpLCBJbnRTaXplKCkpOworICAgICAgICAgICAgcHJpdi0+cGFn
ZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKG5ld1ZpZXdTaXplLCBJbnRT
aXplKCkpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICBpZiAo
IXByaXYtPmV2YXNHbFN1cmZhY2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGV2YXNf
Z2xfc3VyZmFjZV9kZXN0cm95KHByaXYtPmV2YXNHbCwgcHJpdi0+ZXZhc0dsU3VyZmFjZSk7Cisg
ICAgICAgIHByaXYtPmV2YXNHbFN1cmZhY2UgPSAwOworICAgICAgICBld2tfdmlld19jcmVhdGVf
Z2xfc3VyZmFjZShld2tWaWV3LCBuZXdWaWV3U2l6ZSk7CisgICAgICAgIGV3a192aWV3X2Rpc3Bs
YXkoZXdrVmlldywgSW50UmVjdChJbnRQb2ludCgpLCBuZXdWaWV3U2l6ZSkpOworI2VuZGlmCisK
ICAgICAgICAgc21hcnREYXRhLT52aWV3LncgPSB3aWR0aDsKICAgICAgICAgc21hcnREYXRhLT52
aWV3LmggPSBoZWlnaHQ7CiAgICAgICAgIHNtYXJ0RGF0YS0+Y2hhbmdlZC5zaXplID0gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19w
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2
YXRlLmgKaW5kZXggM2M5Y2U5NGE3MTRlYjcxZTdmYjkzMGY0MzUwMjhiNTBhOWE1ZGVjYi4uMzY5
ZTUzZjA3YjBmMWQ3YTk5ZTkwNGUwODRkMGQzNjBkOTY5YWJhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApAQCAtNjksNSAr
NjksMTEgQEAgdm9pZCBld2tfdmlld19pbnRlbnRfc2VydmljZV9yZWdpc3RlcihFdmFzX09iamVj
dCogZXdrVmlldywgY29uc3QgRXdrX0ludGVudF9TZXIKICNlbmRpZgogCiBXZWJLaXQ6OldlYlBh
Z2VQcm94eSogZXdrX3ZpZXdfcGFnZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpOwor
V2ViQ29yZTo6SW50U2l6ZSBld2tfdmlld19zaXplX2dldChjb25zdCBFdmFzX09iamVjdCogZXdr
Vmlldyk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitib29sIGV3a192aWV3
X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21vZGVfZW50ZXIoRXZhc19PYmplY3QqIGV3a1ZpZXcp
OworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcpOworI2VuZGlmCiAKICNlbmRpZiAvLyBld2tfdmlld19wcml2YXRlX2gK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZTcw
YjdjZGQ5NjUyNTRkYzlhZTU3MWRkNzljNDhhOWZmYWZhM2FjLi4xOGNjNTUwYjkxMmYzYjIyZWRj
NTQ5NjljMGU1YzNiNDI5OTg3ZGFmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDctMTggIFlvdW5nVGFlY2sg
U29uZyAgPHlvdW5ndGFlY2suc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbV0syXVtFRkxd
IEFkZCBhbiBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBpbXBsZW1lbnRhdGlvbiBmb3IgRWZsIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkx
NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgTWluaUJyb3dzZXIncyBvcHRpb24gZm9yIHNlbGVjdGluZyBldmFzIGVuZ2luZS4KKworICAg
ICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChicm93c2VyQ3JlYXRlKToK
KyAgICAgICAgKG1haW4pOgorCiAyMDEyLTA3LTE4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNh
bmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIEltcGxlbWVudCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50IGluIFdLVFIgZm9yIEdUSwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5kZXggYTk3
OWY1ZTU1NWYyZjJkY2Y4ZjBiMzg2MjA0MmJhZTZmYTI1OGE3Ni4uMTdhNzY3OGZmM2M4MjRlMDlh
ZmEzODc3Y2Y5YTEzNjRiY2Y2OWI0MyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZs
L21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC00Myw2ICs0Mywz
MSBAQCB0eXBlZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIEV2YXNfT2JqZWN0ICpicm93
c2VyOwogfSBNaW5pQnJvd3NlcjsKIAorc3RhdGljIGNvbnN0IEVjb3JlX0dldG9wdCBvcHRpb25z
ID0geworICAgICJNaW5pQnJvd3NlciIsCisgICAgIiVwcm9nIFtvcHRpb25zXSBbdXJsXSIsCisg
ICAgIjAuMC4xIiwKKyAgICAiKEMpMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzIiwKKyAgICAiR1BM
IiwKKyAgICAiVGVzdCBXZWIgQnJvd3NlciB1c2luZyB0aGUgRW5saWdodGVubWVudCBGb3VuZGF0
aW9uIExpYnJhcmllcyBvZiBXZWJLaXQyIiwKKyAgICBFSU5BX1RSVUUsIHsKKyAgICAgICAgRUNP
UkVfR0VUT1BUX1NUT1JFX1NUUgorICAgICAgICAgICAgKCdlJywgImVuZ2luZSIsICJlY29yZS1l
dmFzIGVuZ2luZSB0byB1c2UuIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9DQUxMQkFDS19OT0FS
R1MKKyAgICAgICAgICAgICgnRScsICJsaXN0LWVuZ2luZXMiLCAibGlzdCBlY29yZS1ldmFzIGVu
Z2luZXMuIiwKKyAgICAgICAgICAgICBlY29yZV9nZXRvcHRfY2FsbGJhY2tfZWNvcmVfZXZhc19s
aXN0X2VuZ2luZXMsIE5VTEwpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkVSU0lPTgorICAgICAg
ICAgICAgKCdWJywgInZlcnNpb24iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0NPUFlSSUdIVAor
ICAgICAgICAgICAgKCdSJywgImNvcHlyaWdodCIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfTElD
RU5TRQorICAgICAgICAgICAgKCdMJywgImxpY2Vuc2UiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BU
X0hFTFAKKyAgICAgICAgICAgICgnaCcsICJoZWxwIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9T
RU5USU5FTAorICAgIH0KK307CisKIHN0YXRpYyBFaW5hX0Jvb2wgbWFpbl9zaWduYWxfZXhpdCh2
b2lkICpkYXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYpCiB7CiAgICAgZWNvcmVfbWFpbl9sb29w
X3F1aXQoKTsKQEAgLTEzOSwxMSArMTY0LDExIEBAIG9uX2Vycm9yKHZvaWQgKnVzZXJfZGF0YSwg
RXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiAgICAgZWluYV9zdHJidWZf
ZnJlZShidWZmZXIpOwogfQogCi1zdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29u
c3QgY2hhciAqdXJsKQorc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNo
YXIgKnVybCwgY29uc3QgY2hhciAqZW5naW5lKQogewogICAgIE1pbmlCcm93c2VyICphcHAgPSBt
YWxsb2Moc2l6ZW9mKE1pbmlCcm93c2VyKSk7CiAKLSAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19u
ZXcoMCwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOworICAgIGFwcC0+
ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIERFRkFVTFRfV0lEVEgsIERFRkFVTFRf
SEVJR0hULCAwKTsKIAogICAgIGVjb3JlX2V2YXNfdGl0bGVfc2V0KGFwcC0+ZWUsIEFQUF9OQU1F
KTsKICAgICBlY29yZV9ldmFzX2NhbGxiYWNrX3Jlc2l6ZV9zZXQoYXBwLT5lZSwgb25fZWNvcmVf
ZXZhc19yZXNpemUpOwpAQCAtMTg1LDE3ICsyMTAsMzEgQEAgc3RhdGljIE1pbmlCcm93c2VyICpi
cm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCkKIGludCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiB7CiAgICAgY29uc3QgY2hhciAqdXJsOworICAgIGNoYXIgKmVuZ2luZSA9IE5VTEw7
CiAgICAgaW50IGFyZ3MgPSAxOwogCisgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0g
eworICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSksCisgICAgICAgIEVDT1JF
X0dFVE9QVF9WQUxVRV9OT05FCisgICAgfTsKKwogICAgIGlmICghZWNvcmVfZXZhc19pbml0KCkp
CiAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAKKyAgICBlY29yZV9hcHBfYXJnc19zZXQo
YXJnYywgKGNvbnN0IGNoYXIqKikgYXJndik7CisgICAgYXJncyA9IGVjb3JlX2dldG9wdF9wYXJz
ZSgmb3B0aW9ucywgdmFsdWVzLCBhcmdjLCBhcmd2KTsKKworICAgIGlmIChhcmdzIDwgMCkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBjb3VsZCBub3QgcGFyc2Ugb3B0aW9ucy5c
biIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKwogICAgIGlmIChhcmdz
IDwgYXJnYykKICAgICAgICAgdXJsID0gYXJndlthcmdzXTsKICAgICBlbHNlCiAgICAgICAgIHVy
bCA9IERFRkFVTFRfVVJMOwogCi0gICAgTWluaUJyb3dzZXIgKmJyb3dzZXIgPSBicm93c2VyQ3Jl
YXRlKHVybCk7CisgICAgTWluaUJyb3dzZXIgKmJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKHVybCwg
ZW5naW5lKTsKIAogICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50
X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0LCAw
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153959</attachid>
            <date>2012-07-23 22:27:50 -0700</date>
            <delta_ts>2012-07-23 23:51:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91581-20120724142741.patch</filename>
            <type>text/plain</type>
            <size>14762</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGUyNGNkNWNiM2M3NWU5
MzVjNTdmYWEyOTIyYTA0NmI1ZTAwM2FkZC4uMDI0ZDAxOTgwZTNmMjFiZjkyN2JjMTYwNmVlOTI0
Y2Y4MTg1MjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTIzICBZb3Vu
Z1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dL
Ml1bRUZMXSBBZGQgYW4gQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgaW1wbGVtZW50YXRpb24gZm9y
IEVmbCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lERV9DT01QT1NJVElORyBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgV2hlbiBlbnRlciBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBtb2RlLCBjcmVhdGUgZXZhc19nbCwgZXZhc19nbF9jb250ZXh0LCBhbmQgZXZhc19nbF9zdXJm
YWNlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL0xh
eWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnZpZXdTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfc2l6ZV9nZXQpOgorICAgICAgICAoZXdr
X3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UpOgorICAgICAgICAoZXdrX3ZpZXdfZW50ZXJfYWNjZWxl
cmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChld2tfdmlld19leGl0X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX21vZGUpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorCiAy
MDEyLTA3LTIzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIzMTg0LCByMTIzMTk1LCBhbmQgcjEy
MzE5Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNTk2ZDYwYmVjMmM0ZTVmNjQ3NThj
YjZmZmQ2NGE4MGMzZjhlZGE5Zi4uNjY1MGFkZjI4YWE4NmIzOWM5MzM4ZDc3YWYzMTM0M2ExYzU5
OWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTE5LDkgKzE5LDkgQEAgTElTVChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBTaGFyZWQvQVBJL2MvZ3RrL1dLR3JhcGhpY3ND
b250ZXh0R3RrLmNwcAogCi0gICAgU2hhcmVkL2NhaXJvL0xheWVyVHJlZUNvbnRleHRDYWlyby5j
cHAKICAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCiAKKyAgICBTaGFy
ZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50RWZsLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViV2hlZWxFdmVudEVm
bC5jcHAKICAgICBTaGFyZWQvZWZsL05hdGl2ZVdlYk1vdXNlRXZlbnRFZmwuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaAppbmRleCA3MTBkOWRhODE0NDMwNmE0ZTcw
MjA0ZmZlMDc5NjczZGM5NTFiYWRjLi4zODg1MTRkYjA5NTA5ZGZlMjI1Y2Y3ZDU4ZDhkZDgyMzJi
NTU5NDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKQEAgLTU4
LDYgKzU4LDggQEAgcHVibGljOgogICAgIHVpbnQzMl90IHdlYkxheWVySUQ7CiAjZWxpZiBQTEFU
Rk9STShHVEspCiAgICAgdWludDY0X3Qgd2luZG93SGFuZGxlOworI2VsaWYgUExBVEZPUk0oRUZM
KQorICAgIHVpbnQzMl90IHdlYkxheWVySUQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
NDAwMTFmNWYzZjBmNDJhYzIxZmE3ZDA3YmFiODU0MzI2ODhlNWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCkBAIC0w
LDAgKzEsNTcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQu
aCIKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5j
b2Rlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTGF5ZXJUcmVlQ29udGV4dDo6TGF5ZXJU
cmVlQ29udGV4dCgpCisgICAgOiB3ZWJMYXllcklEKDApCit7Cit9CisKK0xheWVyVHJlZUNvbnRl
eHQ6On5MYXllclRyZWVDb250ZXh0KCkKK3sKK30KKwordm9pZCBMYXllclRyZWVDb250ZXh0Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXItPmVuY29kZSh3ZWJMYXllcklEKTsKK30KKworYm9vbCBMYXllclRyZWVDb250ZXh0Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0
JiBjb250ZXh0KQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoY29udGV4dC53ZWJMYXll
cklEKTsKK30KKworYm9vbCBMYXllclRyZWVDb250ZXh0Ojppc0VtcHR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIXdlYkxheWVySUQ7Cit9CisKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBMYXllclRy
ZWVDb250ZXh0JiBhLCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBiKQoreworICAgIHJldHVybiBh
LndlYkxheWVySUQgPT0gYi53ZWJMYXllcklEOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAppbmRleCBlNjlmODdkMjgwMTJkZTE1MzBjOTJjOWNjYjIyMWJkYzgyMWM0YWRmLi43MzQ4
Njc2MWQzNTU1YWQ3ZDFlMzI5MmQ3MjVhZTI5MWZjZGYzNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCkBAIC03Miw5ICs3
Miw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yCiAKIFdlYkNvcmU6OkludFNpemUgUGFnZUNs
aWVudEltcGw6OnZpZXdTaXplKCkKIHsKLSAgICBpbnQgd2lkdGgsIGhlaWdodDsKLSAgICBldmFz
X29iamVjdF9nZW9tZXRyeV9nZXQobV92aWV3V2lkZ2V0LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQp
OwotICAgIHJldHVybiBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIHJldHVybiBld2tfdmll
d19zaXplX2dldChtX3ZpZXdXaWRnZXQpOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdXaW5kb3dBY3RpdmUoKQpAQCAtMjIxLDEyICsyMTksMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29s
KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgUGFnZUNsaWVudEltcGw6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19tb2RlX2VudGVyKG1fdmlld1dpZGdldCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQobV92
aWV3V2lkZ2V0KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggM2Y4MGFhMTFkNTgxMzE4NzVi
ZjNjYTUwZmMwMjBjOTdlZTk4NjcxMi4uYzM5ZjQ3MWFhMTIyYjY0ZTY0NTRiZDE4ZGViNDYyOTQ3
YzBlY2E5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcApAQCAtMzksNiArMzksMTAgQEAKICNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorI2luY2x1ZGUgPEV2YXNfR0wuaD4KKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU0LDExICs1OCwyMiBAQCBz
dHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgY29uc3QgY2hhciogY3VzdG9tRW5j
b2Rpbmc7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwogCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIEV2YXNfR0wqIGV2YXNHbDsKKyAg
ICBFdmFzX0dMX0NvbnRleHQqIGV2YXNHbENvbnRleHQ7CisgICAgRXZhc19HTF9TdXJmYWNlKiBl
dmFzR2xTdXJmYWNlOworI2VuZGlmCisKICAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKICAg
ICAgICAgOiB1cmkoMCkKICAgICAgICAgLCB0aXRsZSgwKQogICAgICAgICAsIHRoZW1lKDApCiAg
ICAgICAgICwgY3VzdG9tRW5jb2RpbmcoMCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgICAgICwgZXZhc0dsKDApCisgICAgICAgICwgZXZhc0dsQ29udGV4dCgwKQorICAg
ICAgICAsIGV2YXNHbFN1cmZhY2UoMCkKKyNlbmRpZgogICAgIHsgfQogCiAgICAgfl9Fd2tfVmll
d19Qcml2YXRlX0RhdGEoKQpAQCAtMzY5LDYgKzM4NCw5NCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nv
b3JkCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoc21hcnREYXRhKTsKIH0KIAorSW50U2l6
ZSBld2tfdmlld19zaXplX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBp
bnQgd2lkdGgsIGhlaWdodDsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoZXdrVmlldywg
MCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICByZXR1cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KTsKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3N0YXRpYyBib29sIGV3
a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBJbnRTaXplJiB2aWV3U2l6ZSkKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICBFdmFzX0dMX0NvbmZpZyBldmFzR2xDb25maWcgPSB7
CisgICAgICAgIEVWQVNfR0xfUkdCQV84ODg4LAorICAgICAgICBFVkFTX0dMX0RFUFRIX0JJVF84
LAorICAgICAgICBFVkFTX0dMX1NURU5DSUxfTk9ORSwKKyAgICAgICAgRVZBU19HTF9PUFRJT05T
X05PTkUsCisgICAgICAgIEVWQVNfR0xfTVVMVElTQU1QTEVfTk9ORQorICAgIH07CisKKyAgICBB
U1NFUlQoIXByaXYtPmV2YXNHbFN1cmZhY2UpOworICAgIHByaXYtPmV2YXNHbFN1cmZhY2UgPSBl
dmFzX2dsX3N1cmZhY2VfY3JlYXRlKHByaXYtPmV2YXNHbCwgJmV2YXNHbENvbmZpZywgdmlld1Np
emUud2lkdGgoKSwgdmlld1NpemUuaGVpZ2h0KCkpOworICAgIGlmICghcHJpdi0+ZXZhc0dsU3Vy
ZmFjZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRXZhc19OYXRpdmVfU3VyZmFjZSBu
YXRpdmVTdXJmYWNlOworICAgIGV2YXNfZ2xfbmF0aXZlX3N1cmZhY2VfZ2V0KHByaXYtPmV2YXNH
bCwgcHJpdi0+ZXZhc0dsU3VyZmFjZSwgJm5hdGl2ZVN1cmZhY2UpOworICAgIGV2YXNfb2JqZWN0
X2ltYWdlX25hdGl2ZV9zdXJmYWNlX3NldChzbWFydERhdGEtPmltYWdlLCAmbmF0aXZlU3VyZmFj
ZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9j
b21wb3NpdGluZ19tb2RlX2VudGVyKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKKyAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKKworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCghcHJpdi0+ZXZhc0dsLCBmYWxzZSk7CisKKyAg
ICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQoZXdrVmlldyk7CisgICAgcHJpdi0+
ZXZhc0dsID0gZXZhc19nbF9uZXcoZXZhcyk7CisgICAgaWYgKCFwcml2LT5ldmFzR2wpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHByaXYtPmV2YXNHbENvbnRleHQgPSBldmFzX2dsX2Nv
bnRleHRfY3JlYXRlKHByaXYtPmV2YXNHbCwgMCk7CisgICAgaWYgKCFwcml2LT5ldmFzR2xDb250
ZXh0KSB7CisgICAgICAgIGV2YXNfZ2xfZnJlZShwcml2LT5ldmFzR2wpOworICAgICAgICBwcml2
LT5ldmFzR2wgPSAwOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFl
d2tfdmlld19jcmVhdGVfZ2xfc3VyZmFjZShld2tWaWV3LCBld2tfdmlld19zaXplX2dldChld2tW
aWV3KSkpIHsKKyAgICAgICAgZXZhc19nbF9jb250ZXh0X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBw
cml2LT5ldmFzR2xDb250ZXh0KTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsQ29udGV4dCA9IDA7CisK
KyAgICAgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2YXNHbCk7CisgICAgICAgIHByaXYtPmV2YXNH
bCA9IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVS
Tihld2tWaWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVS
TihzbWFydERhdGEsIHByaXYsIDApOworCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHByaXYtPmV2YXNHbCwgZmFsc2UpOworCisgICAgaWYgKHByaXYtPmV2YXNHbFN1cmZhY2Up
IHsKKyAgICAgICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5l
dmFzR2xTdXJmYWNlKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IDA7CisgICAgfQor
CisgICAgaWYgKHByaXYtPmV2YXNHbENvbnRleHQpIHsKKyAgICAgICAgZXZhc19nbF9jb250ZXh0
X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xDb250ZXh0KTsKKyAgICAgICAgcHJp
di0+ZXZhc0dsQ29udGV4dCA9IDA7CisgICAgfQorCisgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2
YXNHbCk7CisgICAgcHJpdi0+ZXZhc0dsID0gMDsKKworICAgIHJldHVybiB0cnVlOworfQorI2Vu
ZGlmCisKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEpOwpAQCAtMzgwLDggKzQ4MywyMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRf
Y2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5
X2dldChld2tWaWV3LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7CiAKICAgICBpZiAoc21hcnRE
YXRhLT5jaGFuZ2VkLnNpemUpIHsKKyAgICAgICAgSW50U2l6ZSBuZXdWaWV3U2l6ZSh3aWR0aCwg
aGVpZ2h0KTsKKwogICAgICAgICBpZiAocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5n
QXJlYSgpKQotICAgICAgICAgICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5nQXJl
YSgpLT5zZXRTaXplKEludFNpemUod2lkdGgsIGhlaWdodCksIEludFNpemUoKSk7CisgICAgICAg
ICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUobmV3
Vmlld1NpemUsIEludFNpemUoKSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgICAgIGlmICghcHJpdi0+ZXZhc0dsU3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFz
R2xTdXJmYWNlKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IDA7CisgICAgICAgIGV3
a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGV3a1ZpZXcsIG5ld1ZpZXdTaXplKTsKKyAgICAgICAg
ZXdrX3ZpZXdfZGlzcGxheShld2tWaWV3LCBJbnRSZWN0KEludFBvaW50KCksIG5ld1ZpZXdTaXpl
KSk7CisjZW5kaWYKKwogICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdpZHRoOwogICAgICAg
ICBzbWFydERhdGEtPnZpZXcuaCA9IGhlaWdodDsKICAgICAgICAgc21hcnREYXRhLT5jaGFuZ2Vk
LnNpemUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3X3ByaXZhdGUuaAppbmRleCAzYzljZTk0YTcxNGViNzFlN2ZiOTMwZjQzNTAyOGI1
MGE5YTVkZWNiLi4yMDliNTgwZmRhN2MyYThhY2IyNTQ4OTRmOGUxMzhkZDQ1MWNkOTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0
ZS5oCkBAIC02OSw1ICs2OSwxMSBAQCB2b2lkIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lz
dGVyKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50X1NlcgogI2VuZGlmCiAK
IFdlYktpdDo6V2ViUGFnZVByb3h5KiBld2tfdmlld19wYWdlX2dldChjb25zdCBFdmFzX09iamVj
dCogZXdrVmlldyk7CitXZWJDb3JlOjpJbnRTaXplIGV3a192aWV3X3NpemVfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
K2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZV9lbnRlcihjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldyk7Citib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nX21vZGVfZXhpdChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CisjZW5kaWYKIAogI2Vu
ZGlmIC8vIGV3a192aWV3X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY4ZTAzZTdlNjdkMTYwZmNkMzMxMjg0YmI5MzI5Mzc3NDdj
YWM5ZmUuLjYxODg0ZjkyOWMyOTI0Y2YwYzFlYTgwOTJhNDZkYjBhNjU5MTRjNTkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wNy0yMyAgWW91bmdUYWVjayBTb25nICA8eW91bmd0YWVjay5zb25nQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtXSzJdW0VGTF0gQWRkIGFuIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
IGltcGxlbWVudGF0aW9uIGZvciBFZmwgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBNaW5pQnJvd3NlcidzIG9wdGlvbiBmb3Igc2Vs
ZWN0aW5nIGV2YXMgZW5naW5lLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL21haW4uYzoK
KyAgICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAobWFpbik6CisKIDIwMTItMDctMjMg
IERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEyMzM2MC4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCmluZGV4IGIxMDQyODllNzBh
MTliZWIyYjZhZTk5NzMyYmIwZTVhMDU0OWJlZGUuLjgyYmY1YzM3NTgwYjYzNzFlZTJlNmU2ZTg3
NDlkNjk1Y2MwNTNlNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpAQCAtNDMsNiArNDMsMzEgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFdmFzX09iamVjdCAqYnJvd3NlcjsKIH0g
TWluaUJyb3dzZXI7CiAKK3N0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKKyAg
ICAiTWluaUJyb3dzZXIiLAorICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLAorICAgICIwLjAu
MSIsCisgICAgIihDKTIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyIsCisgICAgIkxHUEwiLAorICAg
ICJUZXN0IFdlYiBCcm93c2VyIHVzaW5nIHRoZSBFbmxpZ2h0ZW5tZW50IEZvdW5kYXRpb24gTGli
cmFyaWVzIG9mIFdlYktpdDIiLAorICAgIEVJTkFfVFJVRSwgeworICAgICAgICBFQ09SRV9HRVRP
UFRfU1RPUkVfU1RSCisgICAgICAgICAgICAoJ2UnLCAiZW5naW5lIiwgImVjb3JlLWV2YXMgZW5n
aW5lIHRvIHVzZS4iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05PQVJHUworICAg
ICAgICAgICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMgZW5naW5lcy4i
LAorICAgICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFzX2xpc3RfZW5n
aW5lcywgTlVMTCksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WRVJTSU9OCisgICAgICAgICAgICAo
J1YnLCAidmVyc2lvbiIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfQ09QWVJJR0hUCisgICAgICAg
ICAgICAoJ1InLCAiY29weXJpZ2h0IiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9MSUNFTlNFCisg
ICAgICAgICAgICAoJ0wnLCAibGljZW5zZSIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfSEVMUAor
ICAgICAgICAgICAgKCdoJywgImhlbHAiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NFTlRJTkVM
CisgICAgfQorfTsKKwogc3RhdGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRh
dGEsIGludCBldl90eXBlLCB2b2lkICpldikKIHsKICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgp
OwpAQCAtMTU0LDExICsxNzksMTEgQEAgb25fZXJyb3Iodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09i
amVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKICAgICBlaW5hX3N0cmJ1Zl9mcmVlKGJ1
ZmZlcik7CiB9CiAKLXN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFy
ICp1cmwpCitzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJs
LCBjb25zdCBjaGFyICplbmdpbmUpCiB7CiAgICAgTWluaUJyb3dzZXIgKmFwcCA9IG1hbGxvYyhz
aXplb2YoTWluaUJyb3dzZXIpKTsKIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldygwLCAw
LCAwLCBERUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCwgMCk7CisgICAgYXBwLT5lZSA9IGVj
b3JlX2V2YXNfbmV3KGVuZ2luZSwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQs
IDApOwogCiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQX05BTUUpOwogICAg
IGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9lY29yZV9ldmFzX3Jl
c2l6ZSk7CkBAIC0yMDEsMTcgKzIyNiwzMSBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJD
cmVhdGUoY29uc3QgY2hhciAqdXJsKQogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK
IHsKICAgICBjb25zdCBjaGFyICp1cmw7CisgICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAgICBp
bnQgYXJncyA9IDE7CiAKKyAgICBFY29yZV9HZXRvcHRfVmFsdWUgdmFsdWVzW10gPSB7CisgICAg
ICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9TVFIoZW5naW5lKSwKKyAgICAgICAgRUNPUkVfR0VUT1BU
X1ZBTFVFX05PTkUKKyAgICB9OworCiAgICAgaWYgKCFlY29yZV9ldmFzX2luaXQoKSkKICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKIAorICAgIGVjb3JlX2FwcF9hcmdzX3NldChhcmdjLCAo
Y29uc3QgY2hhciAqKikgYXJndik7CisgICAgYXJncyA9IGVjb3JlX2dldG9wdF9wYXJzZSgmb3B0
aW9ucywgdmFsdWVzLCBhcmdjLCBhcmd2KTsKKworICAgIGlmIChhcmdzIDwgMCkgeworICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBjb3VsZCBub3QgcGFyc2Ugb3B0aW9ucy5cbiIpOwor
ICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKwogICAgIGlmIChhcmdzIDwgYXJn
YykKICAgICAgICAgdXJsID0gYXJndlthcmdzXTsKICAgICBlbHNlCiAgICAgICAgIHVybCA9IERF
RkFVTFRfVVJMOwogCi0gICAgTWluaUJyb3dzZXIgKmJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKHVy
bCk7CisgICAgTWluaUJyb3dzZXIgKmJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5l
KTsKIAogICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRs
ZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0LCAwKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153970</attachid>
            <date>2012-07-23 23:52:01 -0700</date>
            <delta_ts>2012-07-26 05:57:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91581-20120724155153.patch</filename>
            <type>text/plain</type>
            <size>14960</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGUyNGNkNWNiM2M3NWU5
MzVjNTdmYWEyOTIyYTA0NmI1ZTAwM2FkZC4uMDI0ZDAxOTgwZTNmMjFiZjkyN2JjMTYwNmVlOTI0
Y2Y4MTg1MjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTIzICBZb3Vu
Z1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dL
Ml1bRUZMXSBBZGQgYW4gQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgaW1wbGVtZW50YXRpb24gZm9y
IEVmbCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lERV9DT01QT1NJVElORyBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgV2hlbiBlbnRlciBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBtb2RlLCBjcmVhdGUgZXZhc19nbCwgZXZhc19nbF9jb250ZXh0LCBhbmQgZXZhc19nbF9zdXJm
YWNlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL0xh
eWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnZpZXdTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfc2l6ZV9nZXQpOgorICAgICAgICAoZXdr
X3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UpOgorICAgICAgICAoZXdrX3ZpZXdfZW50ZXJfYWNjZWxl
cmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChld2tfdmlld19leGl0X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX21vZGUpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorCiAy
MDEyLTA3LTIzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIzMTg0LCByMTIzMTk1LCBhbmQgcjEy
MzE5Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNTk2ZDYwYmVjMmM0ZTVmNjQ3NThj
YjZmZmQ2NGE4MGMzZjhlZGE5Zi4uNjY1MGFkZjI4YWE4NmIzOWM5MzM4ZDc3YWYzMTM0M2ExYzU5
OWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTE5LDkgKzE5LDkgQEAgTElTVChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBTaGFyZWQvQVBJL2MvZ3RrL1dLR3JhcGhpY3ND
b250ZXh0R3RrLmNwcAogCi0gICAgU2hhcmVkL2NhaXJvL0xheWVyVHJlZUNvbnRleHRDYWlyby5j
cHAKICAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCiAKKyAgICBTaGFy
ZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50RWZsLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViV2hlZWxFdmVudEVm
bC5jcHAKICAgICBTaGFyZWQvZWZsL05hdGl2ZVdlYk1vdXNlRXZlbnRFZmwuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaAppbmRleCA3MTBkOWRhODE0NDMwNmE0ZTcw
MjA0ZmZlMDc5NjczZGM5NTFiYWRjLi4zODg1MTRkYjA5NTA5ZGZlMjI1Y2Y3ZDU4ZDhkZDgyMzJi
NTU5NDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKQEAgLTU4
LDYgKzU4LDggQEAgcHVibGljOgogICAgIHVpbnQzMl90IHdlYkxheWVySUQ7CiAjZWxpZiBQTEFU
Rk9STShHVEspCiAgICAgdWludDY0X3Qgd2luZG93SGFuZGxlOworI2VsaWYgUExBVEZPUk0oRUZM
KQorICAgIHVpbnQzMl90IHdlYkxheWVySUQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
NDAwMTFmNWYzZjBmNDJhYzIxZmE3ZDA3YmFiODU0MzI2ODhlNWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCkBAIC0w
LDAgKzEsNTcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQu
aCIKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5j
b2Rlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTGF5ZXJUcmVlQ29udGV4dDo6TGF5ZXJU
cmVlQ29udGV4dCgpCisgICAgOiB3ZWJMYXllcklEKDApCit7Cit9CisKK0xheWVyVHJlZUNvbnRl
eHQ6On5MYXllclRyZWVDb250ZXh0KCkKK3sKK30KKwordm9pZCBMYXllclRyZWVDb250ZXh0Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXItPmVuY29kZSh3ZWJMYXllcklEKTsKK30KKworYm9vbCBMYXllclRyZWVDb250ZXh0Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0
JiBjb250ZXh0KQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoY29udGV4dC53ZWJMYXll
cklEKTsKK30KKworYm9vbCBMYXllclRyZWVDb250ZXh0Ojppc0VtcHR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIXdlYkxheWVySUQ7Cit9CisKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBMYXllclRy
ZWVDb250ZXh0JiBhLCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBiKQoreworICAgIHJldHVybiBh
LndlYkxheWVySUQgPT0gYi53ZWJMYXllcklEOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAppbmRleCBlNjlmODdkMjgwMTJkZTE1MzBjOTJjOWNjYjIyMWJkYzgyMWM0YWRmLi43MzQ4
Njc2MWQzNTU1YWQ3ZDFlMzI5MmQ3MjVhZTI5MWZjZGYzNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCkBAIC03Miw5ICs3
Miw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yCiAKIFdlYkNvcmU6OkludFNpemUgUGFnZUNs
aWVudEltcGw6OnZpZXdTaXplKCkKIHsKLSAgICBpbnQgd2lkdGgsIGhlaWdodDsKLSAgICBldmFz
X29iamVjdF9nZW9tZXRyeV9nZXQobV92aWV3V2lkZ2V0LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQp
OwotICAgIHJldHVybiBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIHJldHVybiBld2tfdmll
d19zaXplX2dldChtX3ZpZXdXaWRnZXQpOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdXaW5kb3dBY3RpdmUoKQpAQCAtMjIxLDEyICsyMTksMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29s
KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgUGFnZUNsaWVudEltcGw6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19tb2RlX2VudGVyKG1fdmlld1dpZGdldCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQobV92
aWV3V2lkZ2V0KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggM2Y4MGFhMTFkNTgxMzE4NzVi
ZjNjYTUwZmMwMjBjOTdlZTk4NjcxMi4uYzM5ZjQ3MWFhMTIyYjY0ZTY0NTRiZDE4ZGViNDYyOTQ3
YzBlY2E5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcApAQCAtMzksNiArMzksMTAgQEAKICNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorI2luY2x1ZGUgPEV2YXNfR0wuaD4KKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU0LDExICs1OCwyMiBAQCBz
dHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgY29uc3QgY2hhciogY3VzdG9tRW5j
b2Rpbmc7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwogCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIEV2YXNfR0wqIGV2YXNHbDsKKyAg
ICBFdmFzX0dMX0NvbnRleHQqIGV2YXNHbENvbnRleHQ7CisgICAgRXZhc19HTF9TdXJmYWNlKiBl
dmFzR2xTdXJmYWNlOworI2VuZGlmCisKICAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKICAg
ICAgICAgOiB1cmkoMCkKICAgICAgICAgLCB0aXRsZSgwKQogICAgICAgICAsIHRoZW1lKDApCiAg
ICAgICAgICwgY3VzdG9tRW5jb2RpbmcoMCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgICAgICwgZXZhc0dsKDApCisgICAgICAgICwgZXZhc0dsQ29udGV4dCgwKQorICAg
ICAgICAsIGV2YXNHbFN1cmZhY2UoMCkKKyNlbmRpZgogICAgIHsgfQogCiAgICAgfl9Fd2tfVmll
d19Qcml2YXRlX0RhdGEoKQpAQCAtMzY5LDYgKzM4NCw5NCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nv
b3JkCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoc21hcnREYXRhKTsKIH0KIAorSW50U2l6
ZSBld2tfdmlld19zaXplX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBp
bnQgd2lkdGgsIGhlaWdodDsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoZXdrVmlldywg
MCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICByZXR1cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KTsKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3N0YXRpYyBib29sIGV3
a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBJbnRTaXplJiB2aWV3U2l6ZSkKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICBFdmFzX0dMX0NvbmZpZyBldmFzR2xDb25maWcgPSB7
CisgICAgICAgIEVWQVNfR0xfUkdCQV84ODg4LAorICAgICAgICBFVkFTX0dMX0RFUFRIX0JJVF84
LAorICAgICAgICBFVkFTX0dMX1NURU5DSUxfTk9ORSwKKyAgICAgICAgRVZBU19HTF9PUFRJT05T
X05PTkUsCisgICAgICAgIEVWQVNfR0xfTVVMVElTQU1QTEVfTk9ORQorICAgIH07CisKKyAgICBB
U1NFUlQoIXByaXYtPmV2YXNHbFN1cmZhY2UpOworICAgIHByaXYtPmV2YXNHbFN1cmZhY2UgPSBl
dmFzX2dsX3N1cmZhY2VfY3JlYXRlKHByaXYtPmV2YXNHbCwgJmV2YXNHbENvbmZpZywgdmlld1Np
emUud2lkdGgoKSwgdmlld1NpemUuaGVpZ2h0KCkpOworICAgIGlmICghcHJpdi0+ZXZhc0dsU3Vy
ZmFjZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRXZhc19OYXRpdmVfU3VyZmFjZSBu
YXRpdmVTdXJmYWNlOworICAgIGV2YXNfZ2xfbmF0aXZlX3N1cmZhY2VfZ2V0KHByaXYtPmV2YXNH
bCwgcHJpdi0+ZXZhc0dsU3VyZmFjZSwgJm5hdGl2ZVN1cmZhY2UpOworICAgIGV2YXNfb2JqZWN0
X2ltYWdlX25hdGl2ZV9zdXJmYWNlX3NldChzbWFydERhdGEtPmltYWdlLCAmbmF0aXZlU3VyZmFj
ZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9j
b21wb3NpdGluZ19tb2RlX2VudGVyKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKKyAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKKworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCghcHJpdi0+ZXZhc0dsLCBmYWxzZSk7CisKKyAg
ICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQoZXdrVmlldyk7CisgICAgcHJpdi0+
ZXZhc0dsID0gZXZhc19nbF9uZXcoZXZhcyk7CisgICAgaWYgKCFwcml2LT5ldmFzR2wpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHByaXYtPmV2YXNHbENvbnRleHQgPSBldmFzX2dsX2Nv
bnRleHRfY3JlYXRlKHByaXYtPmV2YXNHbCwgMCk7CisgICAgaWYgKCFwcml2LT5ldmFzR2xDb250
ZXh0KSB7CisgICAgICAgIGV2YXNfZ2xfZnJlZShwcml2LT5ldmFzR2wpOworICAgICAgICBwcml2
LT5ldmFzR2wgPSAwOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFl
d2tfdmlld19jcmVhdGVfZ2xfc3VyZmFjZShld2tWaWV3LCBld2tfdmlld19zaXplX2dldChld2tW
aWV3KSkpIHsKKyAgICAgICAgZXZhc19nbF9jb250ZXh0X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBw
cml2LT5ldmFzR2xDb250ZXh0KTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsQ29udGV4dCA9IDA7CisK
KyAgICAgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2YXNHbCk7CisgICAgICAgIHByaXYtPmV2YXNH
bCA9IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVS
Tihld2tWaWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVS
TihzbWFydERhdGEsIHByaXYsIDApOworCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHByaXYtPmV2YXNHbCwgZmFsc2UpOworCisgICAgaWYgKHByaXYtPmV2YXNHbFN1cmZhY2Up
IHsKKyAgICAgICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5l
dmFzR2xTdXJmYWNlKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IDA7CisgICAgfQor
CisgICAgaWYgKHByaXYtPmV2YXNHbENvbnRleHQpIHsKKyAgICAgICAgZXZhc19nbF9jb250ZXh0
X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xDb250ZXh0KTsKKyAgICAgICAgcHJp
di0+ZXZhc0dsQ29udGV4dCA9IDA7CisgICAgfQorCisgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2
YXNHbCk7CisgICAgcHJpdi0+ZXZhc0dsID0gMDsKKworICAgIHJldHVybiB0cnVlOworfQorI2Vu
ZGlmCisKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEpOwpAQCAtMzgwLDggKzQ4MywyMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRf
Y2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5
X2dldChld2tWaWV3LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7CiAKICAgICBpZiAoc21hcnRE
YXRhLT5jaGFuZ2VkLnNpemUpIHsKKyAgICAgICAgSW50U2l6ZSBuZXdWaWV3U2l6ZSh3aWR0aCwg
aGVpZ2h0KTsKKwogICAgICAgICBpZiAocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5n
QXJlYSgpKQotICAgICAgICAgICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kcmF3aW5nQXJl
YSgpLT5zZXRTaXplKEludFNpemUod2lkdGgsIGhlaWdodCksIEludFNpemUoKSk7CisgICAgICAg
ICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUobmV3
Vmlld1NpemUsIEludFNpemUoKSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgICAgIGlmICghcHJpdi0+ZXZhc0dsU3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFz
R2xTdXJmYWNlKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IDA7CisgICAgICAgIGV3
a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGV3a1ZpZXcsIG5ld1ZpZXdTaXplKTsKKyAgICAgICAg
ZXdrX3ZpZXdfZGlzcGxheShld2tWaWV3LCBJbnRSZWN0KEludFBvaW50KCksIG5ld1ZpZXdTaXpl
KSk7CisjZW5kaWYKKwogICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdpZHRoOwogICAgICAg
ICBzbWFydERhdGEtPnZpZXcuaCA9IGhlaWdodDsKICAgICAgICAgc21hcnREYXRhLT5jaGFuZ2Vk
LnNpemUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3X3ByaXZhdGUuaAppbmRleCAzYzljZTk0YTcxNGViNzFlN2ZiOTMwZjQzNTAyOGI1
MGE5YTVkZWNiLi4yMDliNTgwZmRhN2MyYThhY2IyNTQ4OTRmOGUxMzhkZDQ1MWNkOTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0
ZS5oCkBAIC02OSw1ICs2OSwxMSBAQCB2b2lkIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lz
dGVyKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50X1NlcgogI2VuZGlmCiAK
IFdlYktpdDo6V2ViUGFnZVByb3h5KiBld2tfdmlld19wYWdlX2dldChjb25zdCBFdmFzX09iamVj
dCogZXdrVmlldyk7CitXZWJDb3JlOjpJbnRTaXplIGV3a192aWV3X3NpemVfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
K2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZV9lbnRlcihjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldyk7Citib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nX21vZGVfZXhpdChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CisjZW5kaWYKIAogI2Vu
ZGlmIC8vIGV3a192aWV3X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY4ZTAzZTdlNjdkMTYwZmNkMzMxMjg0YmI5MzI5Mzc3NDdj
YWM5ZmUuLjYxODg0ZjkyOWMyOTI0Y2YwYzFlYTgwOTJhNDZkYjBhNjU5MTRjNTkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wNy0yMyAgWW91bmdUYWVjayBTb25nICA8eW91bmd0YWVjay5zb25nQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtXSzJdW0VGTF0gQWRkIGFuIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
IGltcGxlbWVudGF0aW9uIGZvciBFZmwgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBNaW5pQnJvd3NlcidzIG9wdGlvbiBmb3Igc2Vs
ZWN0aW5nIGV2YXMgZW5naW5lLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL21haW4uYzoK
KyAgICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAobWFpbik6CisKIDIwMTItMDctMjMg
IERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEyMzM2MC4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCmluZGV4IGIxMDQyODllNzBh
MTliZWIyYjZhZTk5NzMyYmIwZTVhMDU0OWJlZGUuLjExZGY0ZDRhNGYzMDkzZTA0NzQwMjMxZWJm
YjRhMDU1ZGM3NTFmZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpAQCAtNDMsNiArNDMsMjkgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFdmFzX09iamVjdCAqYnJvd3NlcjsKIH0g
TWluaUJyb3dzZXI7CiAKK3N0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKKyAg
ICAiTWluaUJyb3dzZXIiLAorICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLAorICAgICIwLjAu
MSIsCisgICAgIihDKTIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljc1xuIiwKKyAgICAiIiwKKyAgICAi
VGVzdCBXZWIgQnJvd3NlciB1c2luZyB0aGUgRW5saWdodGVubWVudCBGb3VuZGF0aW9uIExpYnJh
cmllcyBvZiBXZWJLaXQyIiwKKyAgICBFSU5BX1RSVUUsIHsKKyAgICAgICAgRUNPUkVfR0VUT1BU
X1NUT1JFX1NUUgorICAgICAgICAgICAgKCdlJywgImVuZ2luZSIsICJlY29yZS1ldmFzIGVuZ2lu
ZSB0byB1c2UuIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9DQUxMQkFDS19OT0FSR1MKKyAgICAg
ICAgICAgICgnRScsICJsaXN0LWVuZ2luZXMiLCAibGlzdCBlY29yZS1ldmFzIGVuZ2luZXMuIiwK
KyAgICAgICAgICAgICBlY29yZV9nZXRvcHRfY2FsbGJhY2tfZWNvcmVfZXZhc19saXN0X2VuZ2lu
ZXMsIE5VTEwpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkVSU0lPTgorICAgICAgICAgICAgKCdW
JywgInZlcnNpb24iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0NPUFlSSUdIVAorICAgICAgICAg
ICAgKCdSJywgImNvcHlyaWdodCIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfSEVMUAorICAgICAg
ICAgICAgKCdoJywgImhlbHAiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NFTlRJTkVMCisgICAg
fQorfTsKKwogc3RhdGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGlu
dCBldl90eXBlLCB2b2lkICpldikKIHsKICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOwpAQCAt
MTU0LDExICsxNzcsMTEgQEAgb25fZXJyb3Iodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAq
d2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKICAgICBlaW5hX3N0cmJ1Zl9mcmVlKGJ1ZmZlcik7
CiB9CiAKLXN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwp
CitzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25z
dCBjaGFyICplbmdpbmUpCiB7CiAgICAgTWluaUJyb3dzZXIgKmFwcCA9IG1hbGxvYyhzaXplb2Yo
TWluaUJyb3dzZXIpKTsKIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldygwLCAwLCAwLCBE
RUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCwgMCk7CisgICAgYXBwLT5lZSA9IGVjb3JlX2V2
YXNfbmV3KGVuZ2luZSwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOwog
CiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQX05BTUUpOwogICAgIGVjb3Jl
X2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9lY29yZV9ldmFzX3Jlc2l6ZSk7
CkBAIC0yMDEsMTcgKzIyNCwzOSBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUo
Y29uc3QgY2hhciAqdXJsKQogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAg
ICBjb25zdCBjaGFyICp1cmw7CisgICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAgICBpbnQgYXJn
cyA9IDE7CisgICAgdW5zaWduZWQgY2hhciBxdWl0T3B0aW9uID0gMDsKKworICAgIEVjb3JlX0dl
dG9wdF9WYWx1ZSB2YWx1ZXNbXSA9IHsKKyAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX1NUUihl
bmdpbmUpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKKyAg
ICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCisgICAgICAgIEVDT1JF
X0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFM
VUVfQk9PTChxdWl0T3B0aW9uKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX05PTkUKKyAg
ICB9OwogCiAgICAgaWYgKCFlY29yZV9ldmFzX2luaXQoKSkKICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKIAorICAgIGVjb3JlX2FwcF9hcmdzX3NldChhcmdjLCAoY29uc3QgY2hhciAqKikg
YXJndik7CisgICAgYXJncyA9IGVjb3JlX2dldG9wdF9wYXJzZSgmb3B0aW9ucywgdmFsdWVzLCBh
cmdjLCBhcmd2KTsKKworICAgIGlmIChhcmdzIDwgMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIkVSUk9SOiBjb3VsZCBub3QgcGFyc2Ugb3B0aW9ucy5cbiIpOworICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIGlmIChxdWl0T3B0aW9uKQorICAgICAgICByZXR1
cm4gMDsKKwogICAgIGlmIChhcmdzIDwgYXJnYykKICAgICAgICAgdXJsID0gYXJndlthcmdzXTsK
ICAgICBlbHNlCiAgICAgICAgIHVybCA9IERFRkFVTFRfVVJMOwogCi0gICAgTWluaUJyb3dzZXIg
KmJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKHVybCk7CisgICAgTWluaUJyb3dzZXIgKmJyb3dzZXIg
PSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lKTsKIAogICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIg
KmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElU
LCBtYWluX3NpZ25hbF9leGl0LCAwKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154626</attachid>
            <date>2012-07-26 05:57:44 -0700</date>
            <delta_ts>2012-07-27 00:16:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91581-20120726215735.patch</filename>
            <type>text/plain</type>
            <size>15356</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTkzZjhmNGExYjIyODcw
MjY3NDMzYTM5NjkyNGM5Y2I4N2U2ZGViMS4uYTJlZGY5MGYxNDU1ODRkYmVlOTM0MjcwNGYwZjdh
MmE5YzdmZTI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTI2ICBZb3Vu
Z1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dL
Ml1bRUZMXSBBZGQgYW4gQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgaW1wbGVtZW50YXRpb24gZm9y
IEVmbCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lERV9DT01QT1NJVElORyBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgV2hlbiBlbnRlciBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBtb2RlLCBjcmVhdGUgZXZhc19nbCwgZXZhc19nbF9jb250ZXh0LCBhbmQgZXZhc19nbF9zdXJm
YWNlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL0xh
eWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnZpZXdTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfc2l6ZV9nZXQpOgorICAgICAgICAoZXdr
X3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UpOgorICAgICAgICAoZXdrX3ZpZXdfZW50ZXJfYWNjZWxl
cmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChld2tfdmlld19leGl0X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX21vZGUpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorCiAy
MDEyLTA3LTI2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtXSzJdIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50
IGRvZXMgbm90IGNoZWNrIHdoZXRoZXIgdGhlIG5vZGUgYWxsb3dzIGVkaXRpbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCmluZGV4IGY4ZjMwYzY3NjVkYmI2M2RjZjZmMDFlMWQ1MDk5NjdhNjBj
MzIwOWMuLjk0MjFmNDUyNjUxMzEzYmJjNTM4NTAyNDA3MWJiN2ExMzJjMGM5ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yMCw5ICsyMCw5IEBAIExJU1QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogCiAgICAgU2hhcmVkL0FQSS9jL2d0ay9XS0dyYXBoaWNzQ29udGV4dEd0ay5jcHAK
IAotICAgIFNoYXJlZC9jYWlyby9MYXllclRyZWVDb250ZXh0Q2Fpcm8uY3BwCiAgICAgU2hhcmVk
L2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAogCisgICAgU2hhcmVkL2VmbC9MYXllclRy
ZWVDb250ZXh0RWZsLmNwcAogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudEVm
bC5jcHAKICAgICBTaGFyZWQvZWZsL05hdGl2ZVdlYldoZWVsRXZlbnRFZmwuY3BwCiAgICAgU2hh
cmVkL2VmbC9OYXRpdmVXZWJNb3VzZUV2ZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9M
YXllclRyZWVDb250ZXh0LmgKaW5kZXggNzEwZDlkYTgxNDQzMDZhNGU3MDIwNGZmZTA3OTY3M2Rj
OTUxYmFkYy4uMzg4NTE0ZGIwOTUwOWRmZTIyNWNmN2Q1OGQ4ZGQ4MjMyYjU1OTQ5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC01OCw2ICs1OCw4IEBAIHB1
YmxpYzoKICAgICB1aW50MzJfdCB3ZWJMYXllcklEOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAg
IHVpbnQ2NF90IHdpbmRvd0hhbmRsZTsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICB1aW50MzJf
dCB3ZWJMYXllcklEOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTQwMDExZjVmM2YwZjQy
YWMyMWZhN2QwN2JhYjg1NDMyNjg4ZTVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcApAQCAtMCwwICsxLDU3IEBACisv
KgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK0xheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQoKQor
ICAgIDogd2ViTGF5ZXJJRCgwKQoreworfQorCitMYXllclRyZWVDb250ZXh0Ojp+TGF5ZXJUcmVl
Q29udGV4dCgpCit7Cit9CisKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGUo
d2ViTGF5ZXJJRCk7Cit9CisKK2Jvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYgY29udGV4dCkKK3sK
KyAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQud2ViTGF5ZXJJRCk7Cit9CisKK2Jv
b2wgTGF5ZXJUcmVlQ29udGV4dDo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICF3ZWJM
YXllcklEOworfQorCitib29sIG9wZXJhdG9yPT0oY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgYSwg
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgYikKK3sKKyAgICByZXR1cm4gYS53ZWJMYXllcklEID09
IGIud2ViTGF5ZXJJRDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggMTE4
ZWRiMTFmZjEwMTdlOTJkZjcwMzNmYjU5OGI5MDUxMTc4OWExNy4uYTFmMWNhNDBmNzE3MmM5Y2Fk
MTFkMzc1NGE2Njc3YmUzNTA2MGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNzIsOSArNzIsNyBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzY3JvbGxWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJl
Y3QsIGNvbnN0IFdlYkNvcgogCiBXZWJDb3JlOjpJbnRTaXplIFBhZ2VDbGllbnRJbXBsOjp2aWV3
U2l6ZSgpCiB7Ci0gICAgaW50IHdpZHRoLCBoZWlnaHQ7Ci0gICAgZXZhc19vYmplY3RfZ2VvbWV0
cnlfZ2V0KG1fdmlld1dpZGdldCwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICByZXR1cm4g
SW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gZXdrX3ZpZXdfc2l6ZV9nZXQobV92
aWV3V2lkZ2V0KTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZl
KCkKQEAgLTIyMSwxMiArMjE5LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldEZpbmRJbmRp
Y2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCwgYm9vbCkKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZV9l
bnRlcihtX3ZpZXdXaWRnZXQpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXdr
X3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZV9leGl0KG1fdmlld1dpZGdldCk7CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGVkMmZhMTk4YWYxMGM4NGFjNzFmMzlhODhhMWU2ZDI5
NTc0YzJhYmQuLmNlMjRlYjZjOTgxNjYxZmVmZjdmNzA3Nzg0OWQ2ZGQ1NGFkMzRhODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTQzLDYg
KzQzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FZmxTY3JlZW5VdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisjaW5jbHVkZSA8RXZhc19HTC5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjcsNiArNzEsMTIgQEAgc3RydWN0
IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIGJvb2wgaXNVc2luZ0Vjb3JlWDsKICNlbmRp
ZgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIEV2YXNfR0wqIGV2YXNH
bDsKKyAgICBFdmFzX0dMX0NvbnRleHQqIGV2YXNHbENvbnRleHQ7CisgICAgRXZhc19HTF9TdXJm
YWNlKiBldmFzR2xTdXJmYWNlOworI2VuZGlmCisKICAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KCkKICAgICAgICAgOiB1cmkoMCkKICAgICAgICAgLCB0aXRsZSgwKQpAQCAtNzcsNiArODcsMTEg
QEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmZGVmIEhBVkVfRUNPUkVfWAog
ICAgICAgICAsIGlzVXNpbmdFY29yZVgoZmFsc2UpCiAjZW5kaWYKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisgICAgICAgICwgZXZhc0dsKDApCisgICAgICAgICwgZXZhc0dsQ29u
dGV4dCgwKQorICAgICAgICAsIGV2YXNHbFN1cmZhY2UoMCkKKyNlbmRpZgogICAgIHsgfQogCiAg
ICAgfl9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQpAQCAtNDA2LDYgKzQyMSw5NCBAQCBzdGF0aWMg
dm9pZCBfZXdrX3ZpZXdfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29y
ZCB4LCBFdmFzX0Nvb3JkCiAgICAgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoc21hcnREYXRhKTsK
IH0KIAorSW50U2l6ZSBld2tfdmlld19zaXplX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dykKK3sKKyAgICBpbnQgd2lkdGgsIGhlaWdodDsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9n
ZXQoZXdrVmlldywgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICByZXR1cm4gSW50U2l6ZSh3
aWR0aCwgaGVpZ2h0KTsKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3N0
YXRpYyBib29sIGV3a192aWV3X2NyZWF0ZV9nbF9zdXJmYWNlKGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKK3sKKyAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICBFdmFzX0dMX0NvbmZpZyBldmFz
R2xDb25maWcgPSB7CisgICAgICAgIEVWQVNfR0xfUkdCQV84ODg4LAorICAgICAgICBFVkFTX0dM
X0RFUFRIX0JJVF84LAorICAgICAgICBFVkFTX0dMX1NURU5DSUxfTk9ORSwKKyAgICAgICAgRVZB
U19HTF9PUFRJT05TX05PTkUsCisgICAgICAgIEVWQVNfR0xfTVVMVElTQU1QTEVfTk9ORQorICAg
IH07CisKKyAgICBBU1NFUlQoIXByaXYtPmV2YXNHbFN1cmZhY2UpOworICAgIHByaXYtPmV2YXNH
bFN1cmZhY2UgPSBldmFzX2dsX3N1cmZhY2VfY3JlYXRlKHByaXYtPmV2YXNHbCwgJmV2YXNHbENv
bmZpZywgdmlld1NpemUud2lkdGgoKSwgdmlld1NpemUuaGVpZ2h0KCkpOworICAgIGlmICghcHJp
di0+ZXZhc0dsU3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRXZhc19OYXRp
dmVfU3VyZmFjZSBuYXRpdmVTdXJmYWNlOworICAgIGV2YXNfZ2xfbmF0aXZlX3N1cmZhY2VfZ2V0
KHByaXYtPmV2YXNHbCwgcHJpdi0+ZXZhc0dsU3VyZmFjZSwgJm5hdGl2ZVN1cmZhY2UpOworICAg
IGV2YXNfb2JqZWN0X2ltYWdlX25hdGl2ZV9zdXJmYWNlX3NldChzbWFydERhdGEtPmltYWdlLCAm
bmF0aXZlU3VyZmFjZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBld2tfdmlld19h
Y2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2VudGVyKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAw
KTsKKworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCghcHJpdi0+ZXZhc0dsLCBm
YWxzZSk7CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQoZXdrVmlldyk7
CisgICAgcHJpdi0+ZXZhc0dsID0gZXZhc19nbF9uZXcoZXZhcyk7CisgICAgaWYgKCFwcml2LT5l
dmFzR2wpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHByaXYtPmV2YXNHbENvbnRleHQg
PSBldmFzX2dsX2NvbnRleHRfY3JlYXRlKHByaXYtPmV2YXNHbCwgMCk7CisgICAgaWYgKCFwcml2
LT5ldmFzR2xDb250ZXh0KSB7CisgICAgICAgIGV2YXNfZ2xfZnJlZShwcml2LT5ldmFzR2wpOwor
ICAgICAgICBwcml2LT5ldmFzR2wgPSAwOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgaWYgKCFld2tfdmlld19jcmVhdGVfZ2xfc3VyZmFjZShld2tWaWV3LCBld2tfdmlld19z
aXplX2dldChld2tWaWV3KSkpIHsKKyAgICAgICAgZXZhc19nbF9jb250ZXh0X2Rlc3Ryb3kocHJp
di0+ZXZhc0dsLCBwcml2LT5ldmFzR2xDb250ZXh0KTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsQ29u
dGV4dCA9IDA7CisKKyAgICAgICAgZXZhc19nbF9mcmVlKHByaXYtPmV2YXNHbCk7CisgICAgICAg
IHByaXYtPmV2YXNHbCA9IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19t
b2RlX2V4aXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOworCisgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHByaXYtPmV2YXNHbCwgZmFsc2UpOworCisgICAgaWYgKHByaXYtPmV2
YXNHbFN1cmZhY2UpIHsKKyAgICAgICAgZXZhc19nbF9zdXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZh
c0dsLCBwcml2LT5ldmFzR2xTdXJmYWNlKTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9
IDA7CisgICAgfQorCisgICAgaWYgKHByaXYtPmV2YXNHbENvbnRleHQpIHsKKyAgICAgICAgZXZh
c19nbF9jb250ZXh0X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xDb250ZXh0KTsK
KyAgICAgICAgcHJpdi0+ZXZhc0dsQ29udGV4dCA9IDA7CisgICAgfQorCisgICAgZXZhc19nbF9m
cmVlKHByaXYtPmV2YXNHbCk7CisgICAgcHJpdi0+ZXZhc0dsID0gMDsKKworICAgIHJldHVybiB0
cnVlOworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxhdGUo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEpOwpAQCAtNDE5LDYgKzUyMiwxNiBAQCBzdGF0aWMgdm9pZCBfZXdr
X3ZpZXdfc21hcnRfY2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGlmIChzbWFy
dERhdGEtPmNoYW5nZWQuc2l6ZSkgewogICAgICAgICBpZiAocHJpdi0+cGFnZUNsaWVudC0+cGFn
ZSgpLT5kcmF3aW5nQXJlYSgpKQogICAgICAgICAgICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgp
LT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKEludFNpemUod2lkdGgsIGhlaWdodCksIEludFNpemUo
KSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIGlmICghcHJp
di0+ZXZhc0dsU3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZXZhc19nbF9z
dXJmYWNlX2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xTdXJmYWNlKTsKKyAgICAg
ICAgcHJpdi0+ZXZhc0dsU3VyZmFjZSA9IDA7CisgICAgICAgIGV3a192aWV3X2NyZWF0ZV9nbF9z
dXJmYWNlKGV3a1ZpZXcsIEludFNpemUod2lkdGgsIGhlaWdodCkpOworICAgICAgICBld2tfdmll
d19kaXNwbGF5KGV3a1ZpZXcsIEludFJlY3QoSW50UG9pbnQoKSwgSW50U2l6ZSh3aWR0aCwgaGVp
Z2h0KSkpOworI2VuZGlmCisKICAgICAgICAgc21hcnREYXRhLT52aWV3LncgPSB3aWR0aDsKICAg
ICAgICAgc21hcnREYXRhLT52aWV3LmggPSBoZWlnaHQ7CiAgICAgICAgIHNtYXJ0RGF0YS0+Y2hh
bmdlZC5zaXplID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggYTBhNjc5MDA1YzkxMmViMWJkYjI0NTc2Yzkw
Yzc5OGFiMGE5NWI0Ny4uNGE5MTgxOWI0NzU2YTZhMmJkODAwOTA1ZDY4ODNlYWI0YmJkMTRkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3By
aXZhdGUuaApAQCAtNzEsNSArNzEsMTEgQEAgdm9pZCBld2tfdmlld19pbnRlbnRfc2VydmljZV9y
ZWdpc3RlcihFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0ludGVudF9TZXIKICNlbmRp
ZgogCiBXZWJLaXQ6OldlYlBhZ2VQcm94eSogZXdrX3ZpZXdfcGFnZV9nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpOworV2ViQ29yZTo6SW50U2l6ZSBld2tfdmlld19zaXplX2dldChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldyk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCitib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21vZGVfZW50ZXIoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpOworYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19tb2RlX2V4aXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpOworI2VuZGlmCiAK
ICNlbmRpZiAvLyBld2tfdmlld19wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MjA2ZTYyMjIyNmM0OTY0YjA4YjIxNGU3YzljN2Uy
ZDUwZDZiNGU0Li43NzUwZjQ1N2Q1MDAwYzU2MjU4ODJhNDg3MTcwMjBlZGViNzAzOGZmIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDctMjYgIFlvdW5nVGFlY2sgU29uZyAgPHlvdW5ndGFlY2suc29uZ0BzYW1z
dW5nLmNvbT4KKworICAgICAgICBbV0syXVtFRkxdIEFkZCBhbiBBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORyBpbXBsZW1lbnRhdGlvbiBmb3IgRWZsIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgTWluaUJyb3dzZXIncyBvcHRpb24gZm9y
IHNlbGVjdGluZyBldmFzIGVuZ2luZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWlu
LmM6CisgICAgICAgIChicm93c2VyQ3JlYXRlKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEyLTA3
LTI2ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIHNwZWN1bGF0aXZlIE1hYyBidWlsZGZpeCBhZnRlciByMTIzNzI5IC0gMm5kIGF0dGVt
cHQuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZWZsL21haW4uYwppbmRleCAxN2M0MzAwYjAzYWQ4Yzk3YmExNjE2NTZmMWQ2ZjUx
NWJiNDA1NDUzLi4wMjYzMGYxYTgyNzAzZDZhOWIzZTJlNThlMzQyMDU5NmVkZTg2NjVhIDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93
c2VyL2VmbC9tYWluLmMKQEAgLTQzLDYgKzQzLDI5IEBAIHR5cGVkZWYgc3RydWN0IF9NaW5pQnJv
d3NlciB7CiAgICAgRXZhc19PYmplY3QgKmJyb3dzZXI7CiB9IE1pbmlCcm93c2VyOwogCitzdGF0
aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMgPSB7CisgICAgIk1pbmlCcm93c2VyIiwKKyAg
ICAiJXByb2cgW29wdGlvbnNdIFt1cmxdIiwKKyAgICAiMC4wLjEiLAorICAgICIoQykyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3NcbiIsCisgICAgIiIsCisgICAgIlRlc3QgV2ViIEJyb3dzZXIgdXNp
bmcgdGhlIEVubGlnaHRlbm1lbnQgRm91bmRhdGlvbiBMaWJyYXJpZXMgb2YgV2ViS2l0MiIsCisg
ICAgRUlOQV9UUlVFLCB7CisgICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9TVFIKKyAgICAgICAg
ICAgICgnZScsICJlbmdpbmUiLCAiZWNvcmUtZXZhcyBlbmdpbmUgdG8gdXNlLiIpLAorICAgICAg
ICBFQ09SRV9HRVRPUFRfQ0FMTEJBQ0tfTk9BUkdTCisgICAgICAgICAgICAoJ0UnLCAibGlzdC1l
bmdpbmVzIiwgImxpc3QgZWNvcmUtZXZhcyBlbmdpbmVzLiIsCisgICAgICAgICAgICAgZWNvcmVf
Z2V0b3B0X2NhbGxiYWNrX2Vjb3JlX2V2YXNfbGlzdF9lbmdpbmVzLCBOVUxMKSwKKyAgICAgICAg
RUNPUkVfR0VUT1BUX1ZFUlNJT04KKyAgICAgICAgICAgICgnVicsICJ2ZXJzaW9uIiksCisgICAg
ICAgIEVDT1JFX0dFVE9QVF9DT1BZUklHSFQKKyAgICAgICAgICAgICgnUicsICJjb3B5cmlnaHQi
KSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0hFTFAKKyAgICAgICAgICAgICgnaCcsICJoZWxwIiks
CisgICAgICAgIEVDT1JFX0dFVE9QVF9TRU5USU5FTAorICAgIH0KK307CisKIHN0YXRpYyBFaW5h
X0Jvb2wgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpkYXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYp
CiB7CiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKQEAgLTE1NCwxMSArMTc3LDI3IEBAIG9u
X2Vycm9yKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50
X2luZm8pCiAgICAgZWluYV9zdHJidWZfZnJlZShidWZmZXIpOwogfQogCi1zdGF0aWMgTWluaUJy
b3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsKQorc3RhdGljIGludAorcXVpdChF
aW5hX0Jvb2wgc3VjY2VzcywgY29uc3QgY2hhciAqbXNnKQoreworICAgIGV3a19zaHV0ZG93bigp
OworCisgICAgaWYgKG1zZykKKyAgICAgICAgZnB1dHMobXNnLCAoc3VjY2VzcykgPyBzdGRvdXQg
OiBzdGRlcnIpOworCisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm4gRVhJVF9GQUlM
VVJFOworCisgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKK30KKworc3RhdGljIE1pbmlCcm93c2Vy
ICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5naW5lKQogewog
ICAgIE1pbmlCcm93c2VyICphcHAgPSBtYWxsb2Moc2l6ZW9mKE1pbmlCcm93c2VyKSk7CiAKLSAg
ICBhcHAtPmVlID0gZWNvcmVfZXZhc19uZXcoMCwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVM
VF9IRUlHSFQsIDApOworICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAs
IERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hULCAwKTsKKyAgICBpZiAoIWFwcC0+ZWUpCisg
ICAgICAgIHJldHVybiAwOwogCiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQ
X05BTUUpOwogICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9l
Y29yZV9ldmFzX3Jlc2l6ZSk7CkBAIC0yMDIsMTYgKzI0MSwzOCBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciAqYXJndltdKQogewogICAgIGNvbnN0IGNoYXIgKnVybDsKICAgICBpbnQgYXJncyA9
IDE7CisgICAgY2hhciAqZW5naW5lID0gTlVMTDsKKyAgICB1bnNpZ25lZCBjaGFyIHF1aXRPcHRp
b24gPSAwOworCisgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0geworICAgICAgICBF
Q09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxV
RV9CT09MKHF1aXRPcHRpb24pLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9PTChxdWl0
T3B0aW9uKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCisg
ICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAorICAgICAgICBFQ09S
RV9HRVRPUFRfVkFMVUVfTk9ORQorICAgIH07CiAKICAgICBpZiAoIWV3a19pbml0KCkpCiAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAKKyAgICBlY29yZV9hcHBfYXJnc19zZXQoYXJnYywg
KGNvbnN0IGNoYXIgKiopIGFyZ3YpOworICAgIGFyZ3MgPSBlY29yZV9nZXRvcHRfcGFyc2UoJm9w
dGlvbnMsIHZhbHVlcywgYXJnYywgYXJndik7CisKKyAgICBpZiAoYXJncyA8IDApCisgICAgICAg
IHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IHBhcnNlIG9wdGlvbnMu
XG4iKTsKKworICAgIGlmIChxdWl0T3B0aW9uKQorICAgICAgICByZXR1cm4gcXVpdChFSU5BX1RS
VUUsIE5VTEwpOworCiAgICAgaWYgKGFyZ3MgPCBhcmdjKQogICAgICAgICB1cmwgPSBhcmd2W2Fy
Z3NdOwogICAgIGVsc2UKICAgICAgICAgdXJsID0gREVGQVVMVF9VUkw7CiAKLSAgICBNaW5pQnJv
d3NlciAqYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUodXJsKTsKKyAgICBNaW5pQnJvd3NlciAqYnJv
d3NlciA9IGJyb3dzZXJDcmVhdGUodXJsLCBlbmdpbmUpOworICAgIGlmICghYnJvd3NlcikKKyAg
ICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJy
b3dzZXIuXG4iKTsKIAogICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2
ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0
LCAwKTsKIApAQCAtMjIxLDcgKzI4Miw1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2
W10pCiAgICAgZWNvcmVfZXZhc19mcmVlKGJyb3dzZXItPmVlKTsKICAgICBmcmVlKGJyb3dzZXIp
OwogCi0gICAgZXdrX3NodXRkb3duKCk7Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcXVp
dChFSU5BX1RSVUUsIE5VTEwpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154860</attachid>
            <date>2012-07-27 00:16:27 -0700</date>
            <delta_ts>2012-07-27 06:45:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91581-20120727161615.patch</filename>
            <type>text/plain</type>
            <size>15839</size>
            <attacher name="YoungTaeck Song">youngtaeck.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTY5ZGQ3NWRiY2ExNThm
MTc3MWRmYWQwMDhhNWJmYTU4Yjk4N2UxNS4uYmZkM2I1ODZjN2JjZTc4NGM2YjMxMTEwZDJmZTE5
ZDY1Yjk2ZTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTI2ICBZb3Vu
Z1RhZWNrIFNvbmcgIDx5b3VuZ3RhZWNrLnNvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dL
Ml1bRUZMXSBBZGQgYW4gQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgaW1wbGVtZW50YXRpb24gZm9y
IEVmbCBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYSBzdWJzZXQgb2YgRWZsJ3MgVUlfU0lERV9DT01QT1NJVElORyBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgV2hlbiBlbnRlciBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBtb2RlLCBjcmVhdGUgZXZhc19nbCwgZXZhc19nbF9jb250ZXh0LCBhbmQgZXZhc19nbF9zdXJm
YWNlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL0xh
eWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnZpZXdTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfc2l6ZV9nZXQpOgorICAgICAgICAoZXdr
X3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UpOgorICAgICAgICAoZXdrX3ZpZXdfZW50ZXJfYWNjZWxl
cmF0ZWRfY29tcG9zaXRpbmdfbW9kZSk6CisgICAgICAgIChld2tfdmlld19leGl0X2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nX21vZGUpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorCiAy
MDEyLTA3LTI2ICBaZW5vIEFsYmlzc2VyICA8emVub0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgUXQgYnVpbGRmaXggYWZ0ZXIgcjEyMzc4Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKaW5kZXggYjRmYTBhYzMyN2M4MGMwNTRmNWQxNGNiMWVhNjNkY2I0ODY0NmE5MC4uMjMyN2Fm
NTNlZGVmY2M1NDNhODE4ZjJjMmE1NjM2ZDU4NDU0ZDNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwu
Y21ha2UKQEAgLTIwLDkgKzIwLDkgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAg
ICBTaGFyZWQvQVBJL2MvZ3RrL1dLR3JhcGhpY3NDb250ZXh0R3RrLmNwcAogCi0gICAgU2hhcmVk
L2NhaXJvL0xheWVyVHJlZUNvbnRleHRDYWlyby5jcHAKICAgICBTaGFyZWQvY2Fpcm8vU2hhcmVh
YmxlQml0bWFwQ2Fpcm8uY3BwCiAKKyAgICBTaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwu
Y3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50RWZsLmNwcAogICAgIFNo
YXJlZC9lZmwvTmF0aXZlV2ViV2hlZWxFdmVudEVmbC5jcHAKICAgICBTaGFyZWQvZWZsL05hdGl2
ZVdlYk1vdXNlRXZlbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRl
eHQuaAppbmRleCA3MTBkOWRhODE0NDMwNmE0ZTcwMjA0ZmZlMDc5NjczZGM5NTFiYWRjLi4zODg1
MTRkYjA5NTA5ZGZlMjI1Y2Y3ZDU4ZDhkZDgyMzJiNTU5NDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9MYXllclRyZWVDb250ZXh0LmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIHVp
bnQzMl90IHdlYkxheWVySUQ7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgdWludDY0X3Qgd2lu
ZG93SGFuZGxlOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgIHVpbnQzMl90IHdlYkxheWVySUQ7
CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5
ZXJUcmVlQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJl
ZUNvbnRleHRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MWQ3ODc4MjlkOWNjODgyZmY5N2E4MmZiZDQ2
ZDA5OGNhY2MwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZs
L0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQu
aCIKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5j
b2Rlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTGF5ZXJUcmVlQ29udGV4dDo6TGF5ZXJU
cmVlQ29udGV4dCgpCisgICAgOiB3ZWJMYXllcklEKDApCit7Cit9CisKK0xheWVyVHJlZUNvbnRl
eHQ6On5MYXllclRyZWVDb250ZXh0KCkKK3sKK30KKwordm9pZCBMYXllclRyZWVDb250ZXh0Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXItPmVuY29kZSh3ZWJMYXllcklEKTsKK30KKworYm9vbCBMYXllclRyZWVDb250ZXh0Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0
JiBjb250ZXh0KQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoY29udGV4dC53ZWJMYXll
cklEKTsKK30KKworYm9vbCBMYXllclRyZWVDb250ZXh0Ojppc0VtcHR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIXdlYkxheWVySUQ7Cit9CisKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBMYXllclRy
ZWVDb250ZXh0JiBhLCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBiKQoreworICAgIHJldHVybiBh
LndlYkxheWVySUQgPT0gYi53ZWJMYXllcklEOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAppbmRleCAxMThlZGIxMWZmMTAxN2U5MmRmNzAzM2ZiNTk4YjkwNTExNzg5YTE3Li5hMWYx
Y2E0MGY3MTcyYzljYWQxMWQzNzU0YTY2NzdiZTM1MDYwZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCkBAIC03Miw5ICs3
Miw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yCiAKIFdlYkNvcmU6OkludFNpemUgUGFnZUNs
aWVudEltcGw6OnZpZXdTaXplKCkKIHsKLSAgICBpbnQgd2lkdGgsIGhlaWdodDsKLSAgICBldmFz
X29iamVjdF9nZW9tZXRyeV9nZXQobV92aWV3V2lkZ2V0LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQp
OwotICAgIHJldHVybiBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIHJldHVybiBld2tfdmll
d19zaXplX2dldChtX3ZpZXdXaWRnZXQpOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdXaW5kb3dBY3RpdmUoKQpAQCAtMjIxLDEyICsyMTksMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29s
KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgUGFnZUNsaWVudEltcGw6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19tb2RlX2VudGVyKG1fdmlld1dpZGdldCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQobV92
aWV3V2lkZ2V0KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggYjY3MWQ3NjI3NjlhOTQwMTY5
NzFmOTljZjlkMWI0ZTk3YzA5YjRlYi4uNDFjZjAwYjYxZmI4NjgzMmYwOWJmNTJjMzg0NGYzNjU1
NDllMzg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcApAQCAtNDQsNiArNDQsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0VmbFNjcmVlblV0aWxp
dGllcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKyNpbmNsdWRlIDxFdmFzX0dMLmg+CisjZW5kaWYKKwogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OCw2ICs3
MiwxMiBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgYm9vbCBpc1VzaW5n
RWNvcmVYOwogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAg
RXZhc19HTCogZXZhc0dsOworICAgIEV2YXNfR0xfQ29udGV4dCogZXZhc0dsQ29udGV4dDsKKyAg
ICBFdmFzX0dMX1N1cmZhY2UqIGV2YXNHbFN1cmZhY2U7CisjZW5kaWYKKwogICAgIF9Fd2tfVmll
d19Qcml2YXRlX0RhdGEoKQogICAgICAgICA6IHVyaSgwKQogICAgICAgICAsIHRpdGxlKDApCkBA
IC03OCw2ICs4OCwxMSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAjaWZkZWYg
SEFWRV9FQ09SRV9YCiAgICAgICAgICwgaXNVc2luZ0Vjb3JlWChmYWxzZSkKICNlbmRpZgorI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgLCBldmFzR2woMCkKKyAgICAg
ICAgLCBldmFzR2xDb250ZXh0KDApCisgICAgICAgICwgZXZhc0dsU3VyZmFjZSgwKQorI2VuZGlm
CiAgICAgeyB9CiAKICAgICB+X0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCkBAIC00MDcsNiArNDIy
LDk0IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQKICAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdl
ZChzbWFydERhdGEpOwogfQogCitJbnRTaXplIGV3a192aWV3X3NpemVfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQoreworICAgIGludCB3aWR0aCwgaGVpZ2h0OworICAgIGV2YXNfb2Jq
ZWN0X2dlb21ldHJ5X2dldChld2tWaWV3LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQpOworICAgIHJl
dHVybiBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOworfQorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorc3RhdGljIGJvb2wgZXdrX3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAg
RVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworCisg
ICAgRXZhc19HTF9Db25maWcgZXZhc0dsQ29uZmlnID0geworICAgICAgICBFVkFTX0dMX1JHQkFf
ODg4OCwKKyAgICAgICAgRVZBU19HTF9ERVBUSF9CSVRfOCwKKyAgICAgICAgRVZBU19HTF9TVEVO
Q0lMX05PTkUsCisgICAgICAgIEVWQVNfR0xfT1BUSU9OU19OT05FLAorICAgICAgICBFVkFTX0dM
X01VTFRJU0FNUExFX05PTkUKKyAgICB9OworCisgICAgQVNTRVJUKCFwcml2LT5ldmFzR2xTdXJm
YWNlKTsKKyAgICBwcml2LT5ldmFzR2xTdXJmYWNlID0gZXZhc19nbF9zdXJmYWNlX2NyZWF0ZShw
cml2LT5ldmFzR2wsICZldmFzR2xDb25maWcsIHZpZXdTaXplLndpZHRoKCksIHZpZXdTaXplLmhl
aWdodCgpKTsKKyAgICBpZiAoIXByaXYtPmV2YXNHbFN1cmZhY2UpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIEV2YXNfTmF0aXZlX1N1cmZhY2UgbmF0aXZlU3VyZmFjZTsKKyAgICBldmFz
X2dsX25hdGl2ZV9zdXJmYWNlX2dldChwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbFN1cmZhY2Us
ICZuYXRpdmVTdXJmYWNlKTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9uYXRpdmVfc3VyZmFjZV9z
ZXQoc21hcnREYXRhLT5pbWFnZSwgJm5hdGl2ZVN1cmZhY2UpOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZV9lbnRlcihj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVU
VVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKKworICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTCghcHJpdi0+ZXZhc0dsLCBmYWxzZSk7CisKKyAgICBFdmFzKiBldmFzID0g
ZXZhc19vYmplY3RfZXZhc19nZXQoZXdrVmlldyk7CisgICAgcHJpdi0+ZXZhc0dsID0gZXZhc19n
bF9uZXcoZXZhcyk7CisgICAgaWYgKCFwcml2LT5ldmFzR2wpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHByaXYtPmV2YXNHbENvbnRleHQgPSBldmFzX2dsX2NvbnRleHRfY3JlYXRlKHBy
aXYtPmV2YXNHbCwgMCk7CisgICAgaWYgKCFwcml2LT5ldmFzR2xDb250ZXh0KSB7CisgICAgICAg
IGV2YXNfZ2xfZnJlZShwcml2LT5ldmFzR2wpOworICAgICAgICBwcml2LT5ldmFzR2wgPSAwOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFld2tfdmlld19jcmVhdGVf
Z2xfc3VyZmFjZShld2tWaWV3LCBld2tfdmlld19zaXplX2dldChld2tWaWV3KSkpIHsKKyAgICAg
ICAgZXZhc19nbF9jb250ZXh0X2Rlc3Ryb3kocHJpdi0+ZXZhc0dsLCBwcml2LT5ldmFzR2xDb250
ZXh0KTsKKyAgICAgICAgcHJpdi0+ZXZhc0dsQ29udGV4dCA9IDA7CisKKyAgICAgICAgZXZhc19n
bF9mcmVlKHByaXYtPmV2YXNHbCk7CisgICAgICAgIHByaXYtPmV2YXNHbCA9IDA7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBld2tf
dmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19tb2RlX2V4aXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCBmYWxzZSk7CisKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocHJp
di0+ZXZhc0dsLCBmYWxzZSk7CisKKyAgICBpZiAocHJpdi0+ZXZhc0dsU3VyZmFjZSkgeworICAg
ICAgICBldmFzX2dsX3N1cmZhY2VfZGVzdHJveShwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbFN1
cmZhY2UpOworICAgICAgICBwcml2LT5ldmFzR2xTdXJmYWNlID0gMDsKKyAgICB9CisKKyAgICBp
ZiAocHJpdi0+ZXZhc0dsQ29udGV4dCkgeworICAgICAgICBldmFzX2dsX2NvbnRleHRfZGVzdHJv
eShwcml2LT5ldmFzR2wsIHByaXYtPmV2YXNHbENvbnRleHQpOworICAgICAgICBwcml2LT5ldmFz
R2xDb250ZXh0ID0gMDsKKyAgICB9CisKKyAgICBldmFzX2dsX2ZyZWUocHJpdi0+ZXZhc0dsKTsK
KyAgICBwcml2LT5ldmFzR2wgPSAwOworCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwog
c3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZShFdmFzX09iamVjdCogZXdrVmll
dykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7
CkBAIC00MjAsNiArNTIzLDE2IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxh
dGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgaWYgKHNtYXJ0RGF0YS0+Y2hhbmdlZC5zaXpl
KSB7CiAgICAgICAgIGlmIChwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkp
CiAgICAgICAgICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNl
dFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgpKTsKKworI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgaWYgKCFwcml2LT5ldmFzR2xTdXJmYWNlKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBldmFzX2dsX3N1cmZhY2VfZGVzdHJveShwcml2
LT5ldmFzR2wsIHByaXYtPmV2YXNHbFN1cmZhY2UpOworICAgICAgICBwcml2LT5ldmFzR2xTdXJm
YWNlID0gMDsKKyAgICAgICAgZXdrX3ZpZXdfY3JlYXRlX2dsX3N1cmZhY2UoZXdrVmlldywgSW50
U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisgICAgICAgIGV3a192aWV3X2Rpc3BsYXkoZXdrVmlldywg
SW50UmVjdChJbnRQb2ludCgpLCBJbnRTaXplKHdpZHRoLCBoZWlnaHQpKSk7CisjZW5kaWYKKwog
ICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdpZHRoOwogICAgICAgICBzbWFydERhdGEtPnZp
ZXcuaCA9IGhlaWdodDsKICAgICAgICAgc21hcnREYXRhLT5jaGFuZ2VkLnNpemUgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZh
dGUuaAppbmRleCA0MzEyN2NmNmFlODA2NjE5NjgzYjc3YTY4ZWEyZWU3YTQzZGIyZjEyLi44NzVm
ODNhOGEwZTIxYzlkMGFiYmM0OGUzNGQ3OWQxMjZhM2YzYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC03Myw1ICs3
MywxMSBAQCB2b2lkIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVyKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50X1NlcgogI2VuZGlmCiAKIFdlYktpdDo6V2ViUGFn
ZVByb3h5KiBld2tfdmlld19wYWdlX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CitX
ZWJDb3JlOjpJbnRTaXplIGV3a192aWV3X3NpemVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK2Jvb2wgZXdrX3ZpZXdf
YWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfbW9kZV9lbnRlcihjb25zdCBFdmFzX09iamVjdCogZXdr
Vmlldyk7Citib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX21vZGVfZXhpdChj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CisjZW5kaWYKIAogI2VuZGlmIC8vIGV3a192aWV3
X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGZiYTVkNTQwYmQ0N2ZlZjgyODRjMTA1MTVmNmMzMjk5MWM4N2E2MDAuLjhkZjViNWYz
MDUxMDBlMDc5ZWE3OGJlYTQ4YjBiODNmZWZiNDczNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0yNiAg
WW91bmdUYWVjayBTb25nICA8eW91bmd0YWVjay5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAg
IFtXSzJdW0VGTF0gQWRkIGFuIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGltcGxlbWVudGF0aW9u
IGZvciBFZmwgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTE1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBNaW5pQnJvd3NlcidzIG9wdGlvbiBmb3Igc2VsZWN0aW5nIGV2YXMgZW5n
aW5lLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL21haW4uYzoKKyAgICAgICAgKGJyb3dz
ZXJDcmVhdGUpOgorICAgICAgICAobWFpbik6CisKIDIwMTItMDctMjYgIFJ5dWFuIENob2kgIDxy
eXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFJlbW92ZSBmb3J3YXJkaW5n
IGhlYWRlcnMgZnJvbSBNaW5pQnJvd3Nlci9FZmwuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCAxN2M0
MzAwYjAzYWQ4Yzk3YmExNjE2NTZmMWQ2ZjUxNWJiNDA1NDUzLi4wMjYzMGYxYTgyNzAzZDZhOWIz
ZTJlNThlMzQyMDU5NmVkZTg2NjVhIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwv
bWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTQzLDYgKzQzLDI5
IEBAIHR5cGVkZWYgc3RydWN0IF9NaW5pQnJvd3NlciB7CiAgICAgRXZhc19PYmplY3QgKmJyb3dz
ZXI7CiB9IE1pbmlCcm93c2VyOwogCitzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMg
PSB7CisgICAgIk1pbmlCcm93c2VyIiwKKyAgICAiJXByb2cgW29wdGlvbnNdIFt1cmxdIiwKKyAg
ICAiMC4wLjEiLAorICAgICIoQykyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3NcbiIsCisgICAgIiIs
CisgICAgIlRlc3QgV2ViIEJyb3dzZXIgdXNpbmcgdGhlIEVubGlnaHRlbm1lbnQgRm91bmRhdGlv
biBMaWJyYXJpZXMgb2YgV2ViS2l0MiIsCisgICAgRUlOQV9UUlVFLCB7CisgICAgICAgIEVDT1JF
X0dFVE9QVF9TVE9SRV9TVFIKKyAgICAgICAgICAgICgnZScsICJlbmdpbmUiLCAiZWNvcmUtZXZh
cyBlbmdpbmUgdG8gdXNlLiIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfQ0FMTEJBQ0tfTk9BUkdT
CisgICAgICAgICAgICAoJ0UnLCAibGlzdC1lbmdpbmVzIiwgImxpc3QgZWNvcmUtZXZhcyBlbmdp
bmVzLiIsCisgICAgICAgICAgICAgZWNvcmVfZ2V0b3B0X2NhbGxiYWNrX2Vjb3JlX2V2YXNfbGlz
dF9lbmdpbmVzLCBOVUxMKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1ZFUlNJT04KKyAgICAgICAg
ICAgICgnVicsICJ2ZXJzaW9uIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9DT1BZUklHSFQKKyAg
ICAgICAgICAgICgnUicsICJjb3B5cmlnaHQiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0hFTFAK
KyAgICAgICAgICAgICgnaCcsICJoZWxwIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9TRU5USU5F
TAorICAgIH0KK307CisKIHN0YXRpYyBFaW5hX0Jvb2wgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpk
YXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYpCiB7CiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQo
KTsKQEAgLTE1NCwxMSArMTc3LDI3IEBAIG9uX2Vycm9yKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19P
YmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiAgICAgZWluYV9zdHJidWZfZnJlZShi
dWZmZXIpOwogfQogCi1zdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hh
ciAqdXJsKQorc3RhdGljIGludAorcXVpdChFaW5hX0Jvb2wgc3VjY2VzcywgY29uc3QgY2hhciAq
bXNnKQoreworICAgIGV3a19zaHV0ZG93bigpOworCisgICAgaWYgKG1zZykKKyAgICAgICAgZnB1
dHMobXNnLCAoc3VjY2VzcykgPyBzdGRvdXQgOiBzdGRlcnIpOworCisgICAgaWYgKCFzdWNjZXNz
KQorICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgcmV0dXJuIEVYSVRfU1VDQ0VT
UzsKK30KKworc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVy
bCwgY29uc3QgY2hhciAqZW5naW5lKQogewogICAgIE1pbmlCcm93c2VyICphcHAgPSBtYWxsb2Mo
c2l6ZW9mKE1pbmlCcm93c2VyKSk7CiAKLSAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19uZXcoMCwg
MCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOworICAgIGFwcC0+ZWUgPSBl
Y29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hU
LCAwKTsKKyAgICBpZiAoIWFwcC0+ZWUpCisgICAgICAgIHJldHVybiAwOwogCiAgICAgZWNvcmVf
ZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQX05BTUUpOwogICAgIGVjb3JlX2V2YXNfY2FsbGJh
Y2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9lY29yZV9ldmFzX3Jlc2l6ZSk7CkBAIC0yMDIsMTYg
KzI0MSwzOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogICAgIGNvbnN0
IGNoYXIgKnVybDsKICAgICBpbnQgYXJncyA9IDE7CisgICAgY2hhciAqZW5naW5lID0gTlVMTDsK
KyAgICB1bnNpZ25lZCBjaGFyIHF1aXRPcHRpb24gPSAwOworCisgICAgRWNvcmVfR2V0b3B0X1Zh
bHVlIHZhbHVlc1tdID0geworICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSks
CisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAorICAgICAgICBF
Q09SRV9HRVRPUFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKKyAgICAgICAgRUNPUkVfR0VUT1BU
X1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09M
KHF1aXRPcHRpb24pLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfTk9ORQorICAgIH07CiAK
ICAgICBpZiAoIWV3a19pbml0KCkpCiAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAKKyAg
ICBlY29yZV9hcHBfYXJnc19zZXQoYXJnYywgKGNvbnN0IGNoYXIgKiopIGFyZ3YpOworICAgIGFy
Z3MgPSBlY29yZV9nZXRvcHRfcGFyc2UoJm9wdGlvbnMsIHZhbHVlcywgYXJnYywgYXJndik7CisK
KyAgICBpZiAoYXJncyA8IDApCisgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJP
UjogY291bGQgbm90IHBhcnNlIG9wdGlvbnMuXG4iKTsKKworICAgIGlmIChxdWl0T3B0aW9uKQor
ICAgICAgICByZXR1cm4gcXVpdChFSU5BX1RSVUUsIE5VTEwpOworCiAgICAgaWYgKGFyZ3MgPCBh
cmdjKQogICAgICAgICB1cmwgPSBhcmd2W2FyZ3NdOwogICAgIGVsc2UKICAgICAgICAgdXJsID0g
REVGQVVMVF9VUkw7CiAKLSAgICBNaW5pQnJvd3NlciAqYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUo
dXJsKTsKKyAgICBNaW5pQnJvd3NlciAqYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUodXJsLCBlbmdp
bmUpOworICAgIGlmICghYnJvd3NlcikKKyAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwg
IkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIuXG4iKTsKIAogICAgIEVjb3JlX0V2ZW50
X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJ
R05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0LCAwKTsKIApAQCAtMjIxLDcgKzI4Miw1IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgZWNvcmVfZXZhc19mcmVlKGJyb3dz
ZXItPmVlKTsKICAgICBmcmVlKGJyb3dzZXIpOwogCi0gICAgZXdrX3NodXRkb3duKCk7Ci0KLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gcXVpdChFSU5BX1RSVUUsIE5VTEwpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>