<?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>107820</bug_id>
          
          <creation_ts>2013-01-24 06:17:18 -0800</creation_ts>
          <short_desc>[EFL][WK2] Use C API inside ewk_settings</short_desc>
          <delta_ts>2014-03-24 03:09:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>112794</dependson>
          <blocked>107657</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jinwoo7.song</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>naginenis</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>815406</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-24 06:17:18 -0800</bug_when>
    <thetext>As per Bug 107657, we should start using the C API internally to avoid violating layering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815569</commentid>
    <comment_count>1</comment_count>
      <attachid>184520</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-24 09:57:39 -0800</bug_when>
    <thetext>Created attachment 184520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815594</commentid>
    <comment_count>2</comment_count>
      <attachid>184520</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-24 10:36:06 -0800</bug_when>
    <thetext>Comment on attachment 184520
Patch

Nice and there existed C API already for all of them!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815597</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-24 10:40:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 184520 [details])
&gt; Nice and there existed C API already for all of them!

Almost all of them. We will have to decide what to do about the others later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815614</commentid>
    <comment_count>4</comment_count>
      <attachid>184529</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-24 10:50:34 -0800</bug_when>
    <thetext>Created attachment 184529
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822633</commentid>
    <comment_count>5</comment_count>
      <attachid>184529</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-01 04:49:57 -0800</bug_when>
    <thetext>Comment on attachment 184529
Patch

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

LGTM overall.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings_private.h:49
&gt; +    inline WKPreferencesRef preferences();

would prefer having method definition here (it&apos;s just 1 line), that would make it inline automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825760</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-05 13:16:12 -0800</bug_when>
    <thetext>Ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827694</commentid>
    <comment_count>7</comment_count>
      <attachid>184529</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-07 10:52:08 -0800</bug_when>
    <thetext>Comment on attachment 184529
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings_private.h:49
&gt;&gt; +    inline WKPreferencesRef preferences();
&gt; 
&gt; would prefer having method definition here (it&apos;s just 1 line), that would make it inline automatically.

Putting inline on a member function that is not defined in its header file (or a header file) is weird. Please either remove the inline or make the function actually be inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827721</commentid>
    <comment_count>8</comment_count>
      <attachid>187138</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-07 11:03:16 -0800</bug_when>
    <thetext>Created attachment 187138
Patch

Take andersca&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827754</commentid>
    <comment_count>9</comment_count>
      <attachid>187138</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-07 11:31:46 -0800</bug_when>
    <thetext>Comment on attachment 187138
Patch

Attachment 187138 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16435285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827825</commentid>
    <comment_count>10</comment_count>
      <attachid>187157</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-07 13:05:18 -0800</bug_when>
    <thetext>Created attachment 187157
Patch

Fixed build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828230</commentid>
    <comment_count>11</comment_count>
      <attachid>187245</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-07 23:32:44 -0800</bug_when>
    <thetext>Created attachment 187245
Patch

Rebase on master due to new conflict in EwkView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828253</commentid>
    <comment_count>12</comment_count>
      <attachid>187245</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 00:00:49 -0800</bug_when>
    <thetext>Comment on attachment 187245
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:241
&gt; -    , m_settings(EwkSettings::create(this))
&gt; +    , m_settings(EwkSettings::create(WKPageGroupGetPreferences(WKPageGetPageGroup(m_webView-&gt;pageRef()))))

I don&apos;t get this. You get the PageGroup as an argument of the constructor, yet you extract (an other?) PageGroup from m_webView?
Why not construct the attribute from your parameters?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:99
&gt; +
&gt; +    return WKPreferencesGetFullScreenEnabled(const_cast&lt;Ewk_Settings*&gt;(settings)-&gt;preferences());

Why not make preferences() const instead of const-cast every access?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings_private.h:49
&gt; +    inline WKPreferencesRef preferences() {  return m_preferences.get(); }

You can remove the inline keyword, it is redundant. Make this const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828254</commentid>
    <comment_count>13</comment_count>
      <attachid>187245</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 00:03:34 -0800</bug_when>
    <thetext>Comment on attachment 187245
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:241
&gt;&gt; +    , m_settings(EwkSettings::create(WKPageGroupGetPreferences(WKPageGetPageGroup(m_webView-&gt;pageRef()))))
&gt; 
&gt; I don&apos;t get this. You get the PageGroup as an argument of the constructor, yet you extract (an other?) PageGroup from m_webView?
&gt; Why not construct the attribute from your parameters?

Because the pagegroup passed to the constructor may be NULL. Retrieving it from the WebPage / WebPageProxy makes sure that it is constructed / valid.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings_private.h:49
&gt;&gt; +    inline WKPreferencesRef preferences() {  return m_preferences.get(); }
&gt; 
&gt; You can remove the inline keyword, it is redundant. Make this const?

Ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828261</commentid>
    <comment_count>14</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 00:11:53 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; I don&apos;t get this. You get the PageGroup as an argument of the constructor, yet you extract (an other?) PageGroup from m_webView?
&gt; &gt; Why not construct the attribute from your parameters?
&gt; 
&gt; Because the pagegroup passed to the constructor may be NULL. Retrieving it from the WebPage / WebPageProxy makes sure that it is constructed / valid.

Having null opaque objects is something I almost only see in the EFL port.

How does that happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828351</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 02:11:40 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; I don&apos;t get this. You get the PageGroup as an argument of the constructor, yet you extract (an other?) PageGroup from m_webView?
&gt; &gt; &gt; Why not construct the attribute from your parameters?
&gt; &gt; 
&gt; &gt; Because the pagegroup passed to the constructor may be NULL. Retrieving it from the WebPage / WebPageProxy makes sure that it is constructed / valid.
&gt; 
&gt; Having null opaque objects is something I almost only see in the EFL port.
&gt; 
&gt; How does that happen?

This is called directly from:
WKViewRef WKViewCreate(Evas* canvas, WKContextRef contextRef, WKPageGroupRef pageGroupRef)

In that C API, pageGroupRef may be NULL if we wish the view to create its own new page group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829271</commentid>
    <comment_count>16</comment_count>
      <attachid>187476</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-10 05:34:00 -0800</bug_when>
    <thetext>Created attachment 187476
Patch

Take Benjamin&apos;s comment into consideration. I opened Bug 109276 to address the issue about the WKPageGroupRef being NULL. For now, this patch still retrieves the page group from the page to make sure it is not NULL. This can be improved if Bug 109276 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829272</commentid>
    <comment_count>17</comment_count>
      <attachid>187477</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-10 05:36:05 -0800</bug_when>
    <thetext>Created attachment 187477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829277</commentid>
    <comment_count>18</comment_count>
      <attachid>187477</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-10 05:53:32 -0800</bug_when>
    <thetext>Comment on attachment 187477
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829393</commentid>
    <comment_count>19</comment_count>
      <attachid>187477</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-10 18:14:26 -0800</bug_when>
    <thetext>Comment on attachment 187477
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:241
&gt; -    , m_settings(EwkSettings::create(this))
&gt; +    , m_settings(EwkSettings::create(WKPageGroupGetPreferences(WKPageGetPageGroup(wkPage()))))

LGTM, but let&apos;s fix the dependencies first in your other patch before we go ahead.
Then you can fix this line and land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829794</commentid>
    <comment_count>20</comment_count>
      <attachid>187477</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-11 09:35:25 -0800</bug_when>
    <thetext>Comment on attachment 187477
Patch

Attachment 187477 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16497253

New failing tests:
compositing/checkerboard.html
accessibility/anchor-linked-anonymous-block-crash.html
http/tests/cache/cancel-multiple-post-xhrs.html
animations/3d/state-at-end-event-transform.html
animations/animation-add-events-in-handler.html
animations/3d/replace-filling-transform.html
http/tests/cache/history-only-cached-subresource-loads.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/accessibility-node-reparent.html
animations/animation-border-overflow.html
accessibility/accessibility-object-detached.html
accessibility/anonymous-render-block-in-continuation-causes-crash.html
animations/animation-controller-drt-api.html
compositing/absolute-position-changed-with-composited-parent-layer.html
compositing/absolute-position-changed-in-composited-layer.html
http/tests/cache/iframe-304-crash.html
animations/3d/transform-perspective.html
http/tests/cache/cancel-during-failure-crash.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
animations/3d/transform-origin-vs-functions.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971003</commentid>
    <comment_count>21</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-01-22 20:30:19 -0800</bug_when>
    <thetext>Hi Chris! Can I continue this bug on behalf of you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971005</commentid>
    <comment_count>22</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-01-22 20:31:30 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Hi Chris! Can I continue this bug on behalf of you?

It seems to me Chris isn&apos;t interested in this issue nowadays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971510</commentid>
    <comment_count>23</comment_count>
      <attachid>222078</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-01-23 21:58:48 -0800</bug_when>
    <thetext>Created attachment 222078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971511</commentid>
    <comment_count>24</comment_count>
      <attachid>222078</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-01-23 22:03:15 -0800</bug_when>
    <thetext>Comment on attachment 222078
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:278
&gt; +    , m_settings(std::make_unique&lt;EwkSettings&gt;(WKPageGroupGetPreferences(WKPageGetPageGroup(wkPage()))))

LGTM, however, Benjamin might have a concern about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971518</commentid>
    <comment_count>25</comment_count>
      <attachid>222078</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-01-23 22:18:03 -0800</bug_when>
    <thetext>Comment on attachment 222078
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:278
&gt;&gt; +    , m_settings(std::make_unique&lt;EwkSettings&gt;(WKPageGroupGetPreferences(WKPageGetPageGroup(wkPage()))))
&gt; 
&gt; LGTM, however, Benjamin might have a concern about this.

In r159896, WebPageGroup is never null, so it seems to be okay but needs confirm from Benjamin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993757</commentid>
    <comment_count>26</comment_count>
      <attachid>227632</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-24 02:30:03 -0700</bug_when>
    <thetext>Created attachment 227632
Patch

Rebased patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993766</commentid>
    <comment_count>27</comment_count>
      <attachid>227632</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-24 03:09:31 -0700</bug_when>
    <thetext>Comment on attachment 227632
Patch

Clearing flags on attachment: 227632

Committed r166159: &lt;http://trac.webkit.org/changeset/166159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993767</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-24 03:09:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184520</attachid>
            <date>2013-01-24 09:57:39 -0800</date>
            <delta_ts>2013-01-24 10:50:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>17022</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1OGIwODUxLi4yNzI4MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDEtMjQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFVzZSBDIEFQSSBpbnNpZGUgZXdrX3NldHRpbmdz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQyBB
UEkgaW5zaWRlIGV3a19zZXR0aW5ncyBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBkaXJlY3RseQorICAg
ICAgICBpbnRlcm5hbCBDKysgY2xhc3NlcywgdG8gYXZvaWQgdmlvbGF0aW5nIEFQSSBsYXllcmlu
Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKEV3a1ZpZXdJbXBsOjpFd2tWaWV3SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3NldHRpbmdzLmNwcDoKKyAgICAgICAgKEV3a1NldHRpbmdzOjpFd2tTZXR0aW5ncyk6
CisgICAgICAgIChFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMpOgorICAgICAgICAoZXdrX3NldHRp
bmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Z1bGxz
Y3JlZW5fZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5h
YmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9nZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0KToK
KyAgICAgICAgKGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfc2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfZ2V0KToKKyAgICAg
ICAgKGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX3NldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9nZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX3NldCk6Cisg
ICAgICAgIChld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2VuYWJsZWRfZ2V0KToKKyAgICAg
ICAgKGV3a19zZXR0aW5nc19lbmNvZGluZ19kZXRlY3Rvcl9lbmFibGVkX3NldCk6CisgICAgICAg
IChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX3NldCk6CisgICAg
ICAgIChld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVudHNfd2lkdGhfZ2V0KToK
KyAgICAgICAgKGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9jYWNoZV9lbmFi
bGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25f
Y2FjaGVfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29w
ZW5fd2luZG93c19zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29wZW5f
d2luZG93c19nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9nZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9zZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdz
X2RlZmF1bHRfZm9udF9zaXplX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGVmYXVsdF9m
b250X3NpemVfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dzaW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dzaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaDoKKyAg
ICAgICAgKEV3a1NldHRpbmdzOjpjcmVhdGUpOgorICAgICAgICAoRXdrU2V0dGluZ3MpOgorCiAy
MDEzLTAxLTI0ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4K
IAogICAgICAgICBbUXRdW1dLMl0gUGFnZXMgLyByZXNvdXJjZXMgY2Fubm90IGJlIGxvYWRlZCBm
cm9tIHFyYyBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXdJbXBsLmNwcAppbmRleCA3NWZiMWQ3Li42NzViMmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCkBAIC0zOCw2ICszOCw4IEBA
CiAjaW5jbHVkZSAiV0tEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiV0tHZW9tZXRyeS5oIgogI2lu
Y2x1ZGUgIldLTnVtYmVyLmgiCisjaW5jbHVkZSAiV0tQYWdlLmgiCisjaW5jbHVkZSAiV0tQYWdl
R3JvdXAuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIK
ICNpbmNsdWRlICJXZWJJbWFnZS5oIgpAQCAtMTMxLDcgKzEzMyw3IEBAIEV3a1ZpZXdJbXBsOjpF
d2tWaWV3SW1wbChFdmFzX09iamVjdCogdmlldywgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250
ZXh0LCBQYXNzCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLCBtX3BhZ2VTY2Fs
ZUZhY3RvcigxKQogI2VuZGlmCi0gICAgLCBtX3NldHRpbmdzKEV3a1NldHRpbmdzOjpjcmVhdGUo
dGhpcykpCisgICAgLCBtX3NldHRpbmdzKEV3a1NldHRpbmdzOjpjcmVhdGUoV0tQYWdlR3JvdXBH
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9BUEkobV9wYWdlUHJveHkuZ2V0KCkp
KSkpKQogICAgICwgbV9jdXJzb3JJZGVudGlmaWVyKDApCiAgICAgLCBtX21vdXNlRXZlbnRzRW5h
YmxlZChmYWxzZSkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKaW5kZXggNzM2MTExMi4uZmZh
OGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0
dGluZ3MuY3BwCkBAIC0yOCwxMCArMjgsMTAgQEAKICNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIK
IAogI2luY2x1ZGUgIkV3a1ZpZXdJbXBsLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV0tQcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5j
bHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxXZWJLaXQyL1dlYlBhZ2VH
cm91cC5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUGFnZVByb3h5Lmg+Ci0jaW5jbHVkZSA8V2Vi
S2l0Mi9XZWJQcmVmZXJlbmNlcy5oPgogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCiAjaW5jbHVk
ZSAiV0tUZXh0Q2hlY2tlci5oIgpAQCAtNDMsMTQgKzQzLDE1IEBACiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKLWNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIEV3a1NldHRpbmdzOjpw
cmVmZXJlbmNlcygpIGNvbnN0CitFd2tTZXR0aW5nczo6RXdrU2V0dGluZ3MoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcykKKyAgICA6IG1fcHJlZmVyZW5jZXMocHJlZmVyZW5jZXMpCiB7Ci0g
ICAgcmV0dXJuIG1fdmlld0ltcGwtPnBhZ2UoKS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7
CisgICAgQVNTRVJUKHByZWZlcmVuY2VzKTsKIH0KIAotV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyog
RXdrU2V0dGluZ3M6OnByZWZlcmVuY2VzKCkKK1dLUHJlZmVyZW5jZXNSZWYgRXdrU2V0dGluZ3M6
OnByZWZlcmVuY2VzKCkKIHsKLSAgICByZXR1cm4gbV92aWV3SW1wbC0+cGFnZSgpLT5wYWdlR3Jv
dXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy5nZXQoKTsKIH0K
IAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQpAQCAtODYsNyArODcsOSBAQCBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywg
RWluYV9Cb29sCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworCisgICAgV0tQcmVmZXJl
bmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUp
OworCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7
CkBAIC05NywyMCArMTAwLDE2IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wKIAogRWluYV9Cb29s
IGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZ3MpCiB7Ci0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHJldHVybiBzZXR0aW5n
cy0+cHJlZmVyZW5jZXMoKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKHNldHRpbmdzKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKKworICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0RnVsbFNjcmVlbkVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGlu
Z3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRp
bmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9C
b29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRKYXZhU2NyaXB0
RW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpA
QCAtMTE5LDE0ICsxMTgsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2Vu
YWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPmphdmFTY3JpcHRFbmFibGVkKCk7CisgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+
KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
bG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBhdXRvbWF0aWMpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGF1dG9tYXRpYyk7CisgICAgV0tQcmVmZXJlbmNlc1NldExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgYXV0b21hdGlj
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTM1LDE0ICsxMzQsMTQgQEAgRWluYV9Cb29s
IGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9nZXQoY29uc3QgRXdrX1Nl
dHRpbmdzKiBzZXR0aW4KIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0
dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+bG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncykt
PnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2RldmVsb3Blcl9l
eHRyYXNfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJs
ZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNl
KTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTE1MSwxNCArMTUwLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4
dHJhc19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1
cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKKyAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJhc0VuYWJsZWQoY29uc3RfY2Fz
dDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzX2FsbG93ZWRfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKS0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGVuYWJsZSk7Cisg
ICAgdG9JbXBsKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKS0+c2V0QWxsb3dGaWxlQWNjZXNzRnJv
bUZpbGVVUkxzKGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2NywxNCArMTY2
LDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNf
YWxsb3dlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpOworICAgIHJldHVybiB0
b0ltcGwoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkp
LT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0
aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3Ms
IEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0xODMsMTQgKzE4MiwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRp
bmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5ncwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFs
c2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5mcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygp
KTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xOTksNyArMTk4LDcg
QEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9nZXQoY29u
c3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+ZG5zUHJlZmV0Y2hpbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0
aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiB2b2lkIGV3a19zZXR0aW5nc19jb250aW51b3Vz
X3NwZWxsX2NoZWNraW5nX2NoYW5nZV9jYl9zZXQoRXdrX1NldHRpbmdzX0NvbnRpbnVvdXNfU3Bl
bGxfQ2hlY2tpbmdfQ2hhbmdlX0NiIGNhbGxiYWNrKQpAQCAtMjc4LDcgKzI3Nyw3IEBAIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9zZXQoRXdrX1NldHRp
bmdzKiBzZXR0aW5ncywgRWluCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0VXNl
c0VuY29kaW5nRGV0ZWN0b3IoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RW5jb2RpbmdE
ZXRlY3RvckVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTI4NywxNCArMjg2LDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5nCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnVzZXNFbmNvZGluZ0Rl
dGVjdG9yKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRFbmNvZGluZ0RldGVjdG9yRW5h
YmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7
CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVudHNf
d2lkdGhfc2V0KEV3a19TZXR0aW5ncyAqc2V0dGluZ3MsIHVuc2lnbmVkIHdpZHRoKQogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAg
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExheW91dEZhbGxiYWNrV2lkdGgod2lkdGgpOwor
ICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPnNldExheW91dEZhbGxiYWNrV2lk
dGgod2lkdGgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMDMsMTMgKzMwMiwxNCBAQCB1
bnNpZ25lZCBld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVudHNfd2lkdGhfZ2V0
KGNvbnN0IEV3a19TZXR0aW5ncyAqcwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNl
cygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCk7CisgICAgcmV0dXJuIHRvSW1wbChjb25zdF9jYXN0
PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSktPmxheW91dEZhbGxiYWNr
V2lkdGgoKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNh
dGlvbl9jYWNoZV9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wg
ZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOwotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQoZW5hYmxlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRPZmZsaW5l
V2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJs
ZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTMxOCwxMyArMzE4LDE0IEBAIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9nZXQo
Y29uc3QgRXdrX1NldHRpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPm9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1Nl
dHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KEV3a19TZXR0aW5ncyogc2V0dGlu
Z3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZW5hYmxlKTsKKworICAgIFdLUHJl
ZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMzMs
MTQgKzMzNCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29wZW5fd2lu
ZG93c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5KGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJl
bmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJs
ZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNDksMTQgKzM1MCwx
NCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9nZXQoY29u
c3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+bG9jYWxTdG9yYWdlRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2Vz
R2V0TG9jYWxTdG9yYWdlRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdz
KS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcGx1Z2luc19l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldFBsdWdpbnNFbmFibGVkKGVuYWJsZSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNjUsMTQgKzM2NiwxNCBAQCBF
aW5hX0Jvb2wgZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRp
bmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0
dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+cGx1
Z2luc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFBsdWdpbnNFbmFibGVk
KGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0K
IAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQoRXdrX1NldHRp
bmdzKiBzZXR0aW5ncywgaW50IHNpemUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
c2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rm9u
dFNpemUoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIHNpemUpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC0zODEsMTQgKzM4MiwxNCBAQCBpbnQgZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9udF9z
aXplX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgMCk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCktPmRlZmF1bHRGb250U2l6ZSgpOworICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0RGVmYXVsdEZvbnRTaXplKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3Mp
LT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19wcml2YXRlX2Jy
b3dzaW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFi
bGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC0zOTcsNyArMzk4LDcgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dz
aW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVy
biBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChjb25zdF9jYXN0
PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyog
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCkBAIC00MDUsNyArNDA2LDcgQEAgRWluYV9Cb29s
IGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncywgRWluYV8KICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCktPnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChlbmFibGUpOworICAgIFdL
UHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCkBAIC00MTcsMTMgKzQxOCw4
IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfCiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfdGV4
dF9hdXRvc2l6aW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7
Ci0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+dGV4dEF1dG9zaXppbmdFbmFibGVkKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJB
TShzZXR0aW5ncyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3Mq
PihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAppbmRleCAzMzM1
YWFkLi4yNWNjMjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKQEAgLTI3LDYgKzI3LDggQEAKICNpZm5kZWYg
ZXdrX3NldHRpbmdzX3ByaXZhdGVfaAogI2RlZmluZSBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCiAK
KyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOSwy
MiArNDEsMTcgQEAgY2xhc3MgRXdrVmlld0ltcGw7CiAgKi8KIGNsYXNzIEV3a1NldHRpbmdzIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tTZXR0aW5ncz4gY3JlYXRlKEV3a1Zp
ZXdJbXBsKiB2aWV3SW1wbCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tTZXR0aW5ncz4gY3Jl
YXRlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEV3a1NldHRpbmdzKHZpZXdJbXBsKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRXdrU2V0dGluZ3MocHJlZmVyZW5jZXMpKTsKICAgICB9CiAKLSAgICBjb25zdCBX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OwotICAgIFdlYktpdDo6
V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCk7CisgICAgaW5saW5lIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFd2tTZXR0aW5ncyhF
d2tWaWV3SW1wbCogdmlld0ltcGwpCi0gICAgICAgIDogbV92aWV3SW1wbCh2aWV3SW1wbCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3ZpZXdJbXBsKTsKLSAgICB9CisgICAgZXhwbGljaXQgRXdr
U2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZik7CiAKLSAgICBFd2tWaWV3SW1wbCogbV92aWV3SW1w
bDsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBtX3ByZWZlcmVuY2VzOwogfTsK
IAogI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184529</attachid>
            <date>2013-01-24 10:50:34 -0800</date>
            <delta_ts>2013-02-07 11:03:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>17022</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxMjU5MjM1Li5lZjZmOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTYg
QEAKIDIwMTMtMDEtMjQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIFVzZSBDIEFQSSBpbnNpZGUgZXdrX3NldHRpbmdz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQyBB
UEkgaW5zaWRlIGV3a19zZXR0aW5ncyBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBkaXJlY3RseQorICAg
ICAgICBpbnRlcm5hbCBDKysgY2xhc3NlcywgdG8gYXZvaWQgdmlvbGF0aW5nIEFQSSBsYXllcmlu
Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAo
RXdrVmlldzo6RXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmNwcDoKKyAgICAgICAgKEV3a1NldHRpbmdzOjpFd2tTZXR0aW5ncyk6CisgICAgICAgIChF
d2tTZXR0aW5nczo6cHJlZmVyZW5jZXMpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Z1bGxzY3Jl
ZW5fZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxl
ZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldCk6CisgICAgICAgIChl
d2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0KToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0
aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX3NldCk6CisgICAgICAgIChl
d2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dlZF9nZXQpOgorICAg
ICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9zZXQpOgorICAgICAg
ICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tf
c2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0
aW5nc19lbmNvZGluZ19kZXRlY3Rvcl9lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGlu
Z3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdz
X3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX3NldCk6CisgICAgICAgIChld2tfc2V0
dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVudHNfd2lkdGhfZ2V0KToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9jYWNoZV9lbmFibGVkX3NldCk6Cisg
ICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19nZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9zZXQpOgorICAg
ICAgICAoZXdrX3NldHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdz
X3BsdWdpbnNfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9u
dF9zaXplX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGVmYXVsdF9mb250X3NpemVfZ2V0
KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfc2V0KToK
KyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfZ2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9zZXQpOgorICAgICAg
ICAoZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1Nl
dHRpbmdzOjpjcmVhdGUpOgorICAgICAgICAoRXdrU2V0dGluZ3MpOgorCisyMDEzLTAxLTI0ICBD
aHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKICAgICAgICAg
W0VGTF1bV0syXSBVc2UgQyBBUEkgaW5zaWRlIGV3a19mYXZpY29uX2RhdGFiYXNlCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc2ODAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCBlNDc4YTg2Li4z
ZmJhYjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgIldLRGljdGlvbmFyeS5oIgogI2luY2x1ZGUg
IldLR2VvbWV0cnkuaCIKICNpbmNsdWRlICJXS051bWJlci5oIgorI2luY2x1ZGUgIldLUGFnZS5o
IgorI2luY2x1ZGUgIldLUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNs
dWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKQEAgLTEzMSw3ICsxMzMs
NyBAQCBFd2tWaWV3OjpFd2tWaWV3KEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0LCBQYXNzUmVmUHRy
PEV3a0NvbnRleHQ+IGNvbnRleHQsIFBhc3NSZQogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICNlbmRpZgotICAgICwgbV9zZXR0aW5ncyhF
d2tTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9zZXR0aW5ncyhFd2tTZXR0aW5nczo6
Y3JlYXRlKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJ
KG1fcGFnZVByb3h5LmdldCgpKSkpKSkKICAgICAsIG1fY3Vyc29ySWRlbnRpZmllcigwKQogICAg
ICwgbV9tb3VzZUV2ZW50c0VuYWJsZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3Bw
CmluZGV4IDNkNDM0ZGYxLi5iMzhhMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTI3LDExICsyNywxMCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogCi0jaW5jbHVkZSAiRXdr
Vmlldy5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLUHJlZmVyZW5jZXMu
aCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5nc19w
cml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJQYWdlR3JvdXAuaD4KLSNpbmNsdWRlIDxX
ZWJLaXQyL1dlYlBhZ2VQcm94eS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJlZmVyZW5jZXMu
aD4KIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogI2luY2x1ZGUgIldLVGV4dENoZWNrZXIuaCIK
QEAgLTQzLDE0ICs0MiwxNSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1jb25zdCBX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMoKSBjb25zdAor
RXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpCisg
ICAgOiBtX3ByZWZlcmVuY2VzKHByZWZlcmVuY2VzKQogewotICAgIHJldHVybiBtX3ZpZXctPnBh
Z2UoKS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7CisgICAgQVNTRVJUKHByZWZlcmVuY2Vz
KTsKIH0KIAotV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogRXdrU2V0dGluZ3M6OnByZWZlcmVuY2Vz
KCkKK1dLUHJlZmVyZW5jZXNSZWYgRXdrU2V0dGluZ3M6OnByZWZlcmVuY2VzKCkKIHsKLSAgICBy
ZXR1cm4gbV92aWV3LT5wYWdlKCktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOworICAgIHJl
dHVybiBtX3ByZWZlcmVuY2VzLmdldCgpOwogfQogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCkBA
IC04Niw3ICs4Niw5IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVk
X3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wKIHsKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdz
LCBmYWxzZSk7Ci0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEZ1bGxTY3JlZW5FbmFi
bGVkKGVuYWJsZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQoc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKHNldHRpbmdzKTsKQEAgLTk3LDIwICs5OSwxNiBAQCBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0
aW5ncywgRWluYV9Cb29sCiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFi
bGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewotI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5F
bmFibGVkKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZ1bGxTY3JlZW5F
bmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygp
KTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKS0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJs
ZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTExOSwxNCArMTE3LDE0IEBAIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5n
cywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2Ny
aXB0RW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJs
ZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwog
fQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQogewogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShhdXRvbWF0
aWMpOworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGlu
Z3MtPnByZWZlcmVuY2VzKCksIGF1dG9tYXRpYyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAg
LTEzNSwxNCArMTMzLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1
dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4g
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGNvbnN0X2Nh
c3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9C
b29sIGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5n
cyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFi
bGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNTEsMTQgKzE0OSwxNCBAQCBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2RldmVsb3Blcl9leHRyYXNfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1Nl
dHRpbmdzKiBzZXR0aW5ncwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5k
ZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5w
cmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19m
cm9tX2ZpbGVfdXJsc19hbGxvd2VkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jv
b2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5n
cywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKSktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0xNjcsMTQgKzE2NSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzX2FsbG93ZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5n
cwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2Up
OwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5hbGxvd0ZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHMoKTsKKyAgICByZXR1cm4gdG9JbXBsKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdz
Kj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxz
KCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnJhbWVfZmxhdHRlbmluZ19lbmFibGVk
X3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJl
ZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTgzLDE0ICsx
ODEsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRf
Z2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKS0+ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1By
ZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5n
cyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfZG5zX3ByZWZldGNoaW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RE5TUHJl
ZmV0Y2hpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEROU1ByZWZldGNo
aW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMTk5LDcgKzE5Nyw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5z
X3ByZWZldGNoaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAK
LSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxl
ZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGNv
bnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAog
dm9pZCBld2tfc2V0dGluZ3NfY29udGludW91c19zcGVsbF9jaGVja2luZ19jaGFuZ2VfY2Jfc2V0
KEV3a19TZXR0aW5nc19Db250aW51b3VzX1NwZWxsX0NoZWNraW5nX0NoYW5nZV9DYiBjYWxsYmFj
aykKQEAgLTI3OCw3ICsyNzYsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2Rl
dGVjdG9yX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbgogewogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGVuYWJsZSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldEVuY29kaW5nRGV0ZWN0b3JFbmFibGVkKHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yODcsMTQgKzI4
NSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRf
Z2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZwogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5w
cmVmZXJlbmNlcygpLT51c2VzRW5jb2RpbmdEZXRlY3RvcigpOworICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0RW5jb2RpbmdEZXRlY3RvckVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3Mq
PihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX3NldChFd2tfU2V0dGluZ3MgKnNldHRp
bmdzLCB1bnNpZ25lZCB3aWR0aCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRM
YXlvdXRGYWxsYmFja1dpZHRoKHdpZHRoKTsKKyAgICB0b0ltcGwoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCkpLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRoKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzAzLDEzICszMDEsMTQgQEAgdW5zaWduZWQgZXdrX3NldHRpbmdzX3ByZWZlcnJl
ZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnMKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAg
IHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOwor
ICAgIHJldHVybiB0b0ltcGwoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnBy
ZWZlcmVuY2VzKCkpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
c2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9zZXQoRXdrX1Nl
dHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisK
KyAgICBXS1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0zMTgsMTMgKzMxNywxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2Fw
cGxpY2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aQogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5j
ZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfc2NyaXB0c19jYW5fb3Blbl93aW5k
b3dzX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5KGVuYWJsZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzMzLDE0ICszMzMsMTQgQEAgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3NfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+amF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2Vz
R2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjb25zdF9jYXN0PEV3a19T
ZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
c2V0dGluZ3NfbG9jYWxfc3RvcmFnZV9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdz
LCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExv
Y2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TG9jYWxTdG9y
YWdlRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMzQ5LDE0ICszNDksMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19s
b2NhbF9zdG9yYWdlX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAK
LSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmxvY2FsU3RvcmFnZUVuYWJsZWQo
KTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvY2FsU3RvcmFnZUVuYWJsZWQoY29uc3Rf
Y2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0
aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5z
ZXRQbHVnaW5zRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5zRW5h
YmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzY1LDE0ICszNjUsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wbHVnaW5z
X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4g
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnBsdWdpbnNFbmFibGVkKCk7CisgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRQbHVnaW5zRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNl
dHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGVm
YXVsdF9mb250X3NpemVfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIGludCBzaXplKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldERlZmF1bHRGb250U2l6ZShzaXplKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVsdEZvbnRTaXplKHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LCBzaXplKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzgxLDE0ICszODEsMTQgQEAgaW50
IGV3a19zZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IDApOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZWZhdWx0Rm9udFNp
emUoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShjb25zdF9j
YXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2luZ19lbmFibGVkX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5h
YmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzk3LDcgKzM5Nyw3IEBAIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2luZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0
dGluZ3MqIHNldHRpbmdzCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3Npemlu
Z19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQpA
QCAtNDA1LDcgKzQwNSw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5n
X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfCiAjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRUZXh0QXV0b3Np
emluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiAjZWxzZQpAQCAtNDE3LDEzICs0MTcsOCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3Rl
eHRfYXV0b3NpemluZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hXwog
CiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldChjb25z
dCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcp
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAK
LSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnRleHRBdXRvc2l6aW5nRW5hYmxl
ZCgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2V0dGluZ3MpOwotICAgIHJldHVybiBmYWxz
ZTsKLSNlbmRpZgorICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFi
bGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5nc19wcml2YXRlLmgKaW5kZXggMGI4NWQ5Yi4uMTg0YmQxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5o
CkBAIC0yNyw2ICsyNyw4IEBACiAjaWZuZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKICNkZWZp
bmUgZXdrX3NldHRpbmdzX3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzksMjIgKzQxLDE3IEBAIGNsYXNzIEV3a1ZpZXc7CiAg
Ki8KIGNsYXNzIEV3a1NldHRpbmdzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxF
d2tTZXR0aW5ncz4gY3JlYXRlKEV3a1ZpZXcqIHZpZXdJbXBsKQorICAgIHN0YXRpYyBQYXNzT3du
UHRyPEV3a1NldHRpbmdzPiBjcmVhdGUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcykKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrU2V0dGluZ3Modmlld0ltcGwpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tTZXR0aW5ncyhwcmVmZXJlbmNlcykpOwog
ICAgIH0KIAotICAgIGNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkg
Y29uc3Q7Ci0gICAgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKTsKKyAgICBp
bmxpbmUgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcygpOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IEV3a1NldHRpbmdzKEV3a1ZpZXcqIHZpZXdJbXBsKQotICAgICAgICA6IG1fdmlldyh2
aWV3SW1wbCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZpZXcpOwotICAgIH0KKyAgICBleHBs
aWNpdCBFd2tTZXR0aW5ncyhXS1ByZWZlcmVuY2VzUmVmKTsKIAotICAgIEV3a1ZpZXcqIG1fdmll
dzsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBtX3ByZWZlcmVuY2VzOwogfTsK
IAogI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gK
</data>
<flag name="review"
          id="203289"
          type_id="1"
          status="-"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="203290"
          type_id="3"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187138</attachid>
            <date>2013-02-07 11:03:16 -0800</date>
            <delta_ts>2013-02-07 13:05:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>16856</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkZjBlZDQ1Li5kNTdjODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDItMDcgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gVXNlIEMgQVBJIGluc2lkZSBld2tfc2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzgyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDIEFQ
SSBpbnNpZGUgZXdrX3NldHRpbmdzIGluc3RlYWQgb2YgYWNjZXNzaW5nIGRpcmVjdGx5CisgICAg
ICAgIGludGVybmFsIEMrKyBjbGFzc2VzLCB0byBhdm9pZCB2aW9sYXRpbmcgQVBJIGxheWVyaW5n
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChF
d2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxs
eV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX3Nl
dCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxz
X2FsbG93ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9zZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193aWR0aF9zZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRo
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2Fj
aGVfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxp
Y2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRzX2Nh
bl9vcGVuX3dpbmRvd3NfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdl
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfc2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Rl
ZmF1bHRfZm9udF9zaXplX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93
c2luZ19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2lu
Z19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
Lmg6CisgICAgICAgIChFd2tTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAgKEV3a1NldHRpbmdz
OjpwcmVmZXJlbmNlcyk6CisgICAgICAgIChFd2tTZXR0aW5ncyk6CisKIDIwMTMtMDItMDcgIEdh
dmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE0MjE0MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5jcHAKaW5kZXggMjhkY2FhNS4uN2M0NDA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJXS0RpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJXS0dlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV0tO
dW1iZXIuaCIKKyNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXS1BhZ2VHcm91cC5oIgog
I2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tWaWV3LmgiCkBAIC0yNDQsNyArMjQ1
LDcgQEAgRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCogZXZhc09iamVjdCwgUGFzc1JlZlB0
cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2UKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAjZW5kaWYKLSAgICAsIG1fc2V0dGluZ3Mo
RXdrU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2V0dGluZ3MoRXdrU2V0dGluZ3M6
OmNyZWF0ZShXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cCh0b0FQ
SShtX3BhZ2VQcm94eS5nZXQoKSkpKSkpCiAgICAgLCBtX2N1cnNvcklkZW50aWZpZXIoMCkKICAg
ICAsIG1fbW91c2VFdmVudHNFbmFibGVkKGZhbHNlKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNw
cAppbmRleCAzZDQzNGRmMS4uYzdhNjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCkBAIC0yNywxMSArMjcsMTAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkV3
a1ZpZXcuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1ByZWZlcmVuY2Vz
LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJld2tfc2V0dGluZ3Nf
cHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUGFnZUdyb3VwLmg+Ci0jaW5jbHVkZSA8
V2ViS2l0Mi9XZWJQYWdlUHJveHkuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dlYlByZWZlcmVuY2Vz
Lmg+CiAKICNpZiBFTkFCTEUoU1BFTExDSEVDSykKICNpbmNsdWRlICJXS1RleHRDaGVja2VyLmgi
CkBAIC00MywxNCArNDIsMTAgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotY29uc3Qg
V2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogRXdrU2V0dGluZ3M6OnByZWZlcmVuY2VzKCkgY29uc3QK
K0V3a1NldHRpbmdzOjpFd2tTZXR0aW5ncyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKQor
ICAgIDogbV9wcmVmZXJlbmNlcyhwcmVmZXJlbmNlcykKIHsKLSAgICByZXR1cm4gbV92aWV3LT5w
YWdlKCktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOwotfQotCi1XZWJLaXQ6OldlYlByZWZl
cmVuY2VzKiBFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMoKQotewotICAgIHJldHVybiBtX3ZpZXct
PnBhZ2UoKS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7CisgICAgQVNTRVJUKHByZWZlcmVu
Y2VzKTsKIH0KIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQpAQCAtODYsNyArODEsOSBAQCBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncywgRWluYV9Cb29sCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworCisgICAg
V0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LCBlbmFibGUpOworCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShz
ZXR0aW5ncyk7CkBAIC05NywyMCArOTQsMTYgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19mdWxs
c2NyZWVuX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbAogCiBF
aW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9nZXQoY29uc3QgRXdrX1Nl
dHRpbmdzKiBzZXR0aW5ncykKIHsKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5mdWxsU2NyZWVuRW5hYmxlZCgpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc2V0dGluZ3MpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgorCisg
ICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGdWxsU2NyZWVuRW5hYmxlZChjb25zdF9jYXN0PEV3
a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdz
LCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEph
dmFTY3JpcHRFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0xMTksMTQgKzExMiwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2phdmFz
Y3JpcHRfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJl
dHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdEVuYWJsZWQoKTsKKyAgICBy
ZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1Nl
dHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0
aW5ncywgRWluYV9Cb29sIGF1dG9tYXRpYykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYXV0b21hdGljKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBh
dXRvbWF0aWMpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMzUsMTQgKzEyOCwxNCBAQCBF
aW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X2dldChjb25z
dCBFd2tfU2V0dGluZ3MqIHNldHRpbgogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNl
cygpLT5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNl
dHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGV2
ZWxvcGVyX2V4dHJhc19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jv
b2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5n
cywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldERldmVsb3BlckV4
dHJhc0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtMTUxLDE0ICsxNDQsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19kZXZl
bG9wZXJfZXh0cmFzX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAot
ICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChj
b25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAK
IEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoZW5h
YmxlKTsKKyAgICB0b0ltcGwoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpLT5zZXRBbGxvd0ZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHMoZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTY3
LDE0ICsxNjAsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2Zp
bGVfdXJsc19hbGxvd2VkX2dldChjb25zdCBFd2tfU2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CisgICAg
cmV0dXJuIHRvSW1wbChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVy
ZW5jZXMoKSktPmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpOwogfQogCiBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE4MywxNCArMTc2LDE0IEBAIEVpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRp
bmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZl
cmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChlbmFi
bGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE5OSw3
ICsxOTIsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVk
X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLT5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQ
cmVmZXJlbmNlc0dldEROU1ByZWZldGNoaW5nRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5n
cyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIHZvaWQgZXdrX3NldHRpbmdzX2Nv
bnRpbnVvdXNfc3BlbGxfY2hlY2tpbmdfY2hhbmdlX2NiX3NldChFd2tfU2V0dGluZ3NfQ29udGlu
dW91c19TcGVsbF9DaGVja2luZ19DaGFuZ2VfQ2IgY2FsbGJhY2spCkBAIC0yNzgsNyArMjcxLDcg
QEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmNvZGluZ19kZXRlY3Rvcl9lbmFibGVkX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW4KIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LT5zZXRVc2VzRW5jb2RpbmdEZXRlY3RvcihlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRF
bmNvZGluZ0RldGVjdG9yRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjg3LDE0ICsyODAsMTQgQEAgRWluYV9Cb29sIGV3
a19zZXR0aW5nc19lbmNvZGluZ19kZXRlY3Rvcl9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGlu
Z3MqIHNldHRpbmcKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+dXNlc0Vu
Y29kaW5nRGV0ZWN0b3IoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEVuY29kaW5nRGV0
ZWN0b3JFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJl
bmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9j
b250ZW50c193aWR0aF9zZXQoRXdrX1NldHRpbmdzICpzZXR0aW5ncywgdW5zaWduZWQgd2lkdGgp
CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7
CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0TGF5b3V0RmFsbGJhY2tXaWR0aCh3
aWR0aCk7CisgICAgdG9JbXBsKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKS0+c2V0TGF5b3V0RmFs
bGJhY2tXaWR0aCh3aWR0aCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTMwMywxMyArMjk2
LDE0IEBAIHVuc2lnbmVkIGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193
aWR0aF9nZXQoY29uc3QgRXdrX1NldHRpbmdzICpzCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPmxheW91dEZhbGxiYWNrV2lkdGgoKTsKKyAgICByZXR1cm4gdG9JbXBsKGNv
bnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKS0+bGF5b3V0
RmFsbGJhY2tXaWR0aCgpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX29mZmxpbmVfd2Vi
X2FwcGxpY2F0aW9uX2NhY2hlX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldE9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChlbmFibGUpOworCisgICAgV0tQcmVmZXJlbmNlc1Nl
dE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMo
KSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzE4LDEzICszMTIsMTQgQEAg
RWluYV9Cb29sIGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9jYWNoZV9lbmFi
bGVkX2dldChjb25zdCBFd2tfU2V0dGkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKS0+b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CisgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoY29uc3RfY2Fz
dDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQoRXdrX1NldHRpbmdz
KiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMo
KS0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShlbmFibGUpOworCisg
ICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHko
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTMzMywxNCArMzI4LDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfc2NyaXB0c19jYW5f
b3Blbl93aW5kb3dzX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1
cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncykt
PnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvY2FsX3N0b3Jh
Z2VfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkK
IHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsK
IAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVu
YWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldExvY2FsU3RvcmFnZUVuYWJsZWQoc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM0OSwx
NCArMzQ0LDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9jYWxfc3RvcmFnZV9lbmFibGVk
X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLT5sb2NhbFN0b3JhZ2VFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4o
c2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19w
bHVnaW5zX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFi
bGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0UGx1Z2luc0VuYWJsZWQoZW5h
YmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQoc2V0dGluZ3MtPnByZWZl
cmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM2NSwxNCArMzYw
LDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcGx1Z2luc19lbmFibGVkX2dldChjb25zdCBF
d2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNl
cygpLT5wbHVnaW5zRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UGx1Z2lu
c0VuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2Vz
KCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9udF9zaXplX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBpbnQgc2l6ZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLT5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldERl
ZmF1bHRGb250U2l6ZShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgc2l6ZSk7CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KQEAgLTM4MSwxNCArMzc2LDE0IEBAIGludCBld2tfc2V0dGluZ3NfZGVmYXVs
dF9mb250X3NpemVfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCAwKTsKIAotICAgIHJldHVybiBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+ZGVmYXVsdEZvbnRTaXplKCk7CisgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXREZWZhdWx0Rm9udFNpemUoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihz
ZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3By
aXZhdGVfYnJvd3NpbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9C
b29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTM5Nyw3ICszOTIsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3ByaXZh
dGVfYnJvd3NpbmdfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGNv
bnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAog
RWluYV9Cb29sIGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9zZXQoRXdrX1Nl
dHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKQEAgLTQwNSw3ICs0MDAsNyBAQCBF
aW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX3NldChFd2tfU2V0
dGluZ3MqIHNldHRpbmdzLCBFaW5hXwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGVuYWJsZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nRW5hYmxlZChzZXR0aW5ncy0+cHJl
ZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKQEAgLTQxNywx
MyArNDEyLDggQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxl
ZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV8KIAogRWluYV9Cb29sIGV3a19zZXR0
aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5ncykKIHsKLSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLT50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHNldHRpbmdzKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKKyAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldFRleHRBdXRvc2l6aW5nRW5hYmxlZChjb25zdF9jYXN0PEV3a19T
ZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCmlu
ZGV4IDBiODVkOWIuLmZmMzI5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaApAQCAtMjcsNiArMjcsOCBAQAog
I2lmbmRlZiBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19zZXR0aW5nc19wcml2
YXRlX2gKIAorI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jh
c2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTM5LDIyICs0MSwxNyBAQCBjbGFzcyBFd2tWaWV3OwogICovCiBjbGFzcyBFd2tTZXR0aW5n
cyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RXdrU2V0dGluZ3M+IGNyZWF0ZShF
d2tWaWV3KiB2aWV3SW1wbCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tTZXR0aW5ncz4gY3Jl
YXRlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEV3a1NldHRpbmdzKHZpZXdJbXBsKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRXdrU2V0dGluZ3MocHJlZmVyZW5jZXMpKTsKICAgICB9CiAKLSAgICBjb25zdCBX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OwotICAgIFdlYktpdDo6
V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCk7CisgICAgaW5saW5lIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMoKSB7ICBtX3ByZWZlcmVuY2VzLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgRXdrU2V0dGluZ3MoRXdrVmlldyogdmlld0ltcGwpCi0gICAgICAgIDogbV92
aWV3KHZpZXdJbXBsKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgfQorICAg
IGV4cGxpY2l0IEV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYpOwogCi0gICAgRXdrVmlldyog
bV92aWV3OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IG1fcHJlZmVyZW5jZXM7
CiB9OwogCiAjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZhdGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187157</attachid>
            <date>2013-02-07 13:05:18 -0800</date>
            <delta_ts>2013-02-07 23:32:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>16859</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkZjBlZDQ1Li5kNTdjODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDItMDcgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gVXNlIEMgQVBJIGluc2lkZSBld2tfc2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzgyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDIEFQ
SSBpbnNpZGUgZXdrX3NldHRpbmdzIGluc3RlYWQgb2YgYWNjZXNzaW5nIGRpcmVjdGx5CisgICAg
ICAgIGludGVybmFsIEMrKyBjbGFzc2VzLCB0byBhdm9pZCB2aW9sYXRpbmcgQVBJIGxheWVyaW5n
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChF
d2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxs
eV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX3Nl
dCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxz
X2FsbG93ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9zZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193aWR0aF9zZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRo
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2Fj
aGVfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxp
Y2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRzX2Nh
bl9vcGVuX3dpbmRvd3NfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdl
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfc2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Rl
ZmF1bHRfZm9udF9zaXplX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93
c2luZ19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2lu
Z19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
Lmg6CisgICAgICAgIChFd2tTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAgKEV3a1NldHRpbmdz
OjpwcmVmZXJlbmNlcyk6CisgICAgICAgIChFd2tTZXR0aW5ncyk6CisKIDIwMTMtMDItMDcgIEdh
dmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE0MjE0MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5jcHAKaW5kZXggMjhkY2FhNS4uNjRkYWYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJXS0RpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJXS0dlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV0tO
dW1iZXIuaCIKKyNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXS1BhZ2VHcm91cC5oIgog
I2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tWaWV3LmgiCkBAIC0yNDQsNyArMjQ1
LDcgQEAgRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCogZXZhc09iamVjdCwgUGFzc1JlZlB0
cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2UKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAjZW5kaWYKLSAgICAsIG1fc2V0dGluZ3Mo
RXdrU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2V0dGluZ3MoRXdrU2V0dGluZ3M6
OmNyZWF0ZShXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cChtX3dl
YlZpZXctPnBhZ2VSZWYoKSkpKSkKICAgICAsIG1fY3Vyc29ySWRlbnRpZmllcigwKQogICAgICwg
bV9tb3VzZUV2ZW50c0VuYWJsZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCmlu
ZGV4IDNkNDM0ZGYxLi5jN2E2Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTI3LDExICsyNywxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogCi0jaW5jbHVkZSAiRXdrVmll
dy5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLUHJlZmVyZW5jZXMuaCIK
KyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2
YXRlLmgiCi0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJQYWdlR3JvdXAuaD4KLSNpbmNsdWRlIDxXZWJL
aXQyL1dlYlBhZ2VQcm94eS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJlZmVyZW5jZXMuaD4K
IAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogI2luY2x1ZGUgIldLVGV4dENoZWNrZXIuaCIKQEAg
LTQzLDE0ICs0MiwxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1jb25zdCBXZWJL
aXQ6OldlYlByZWZlcmVuY2VzKiBFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMoKSBjb25zdAorRXdr
U2V0dGluZ3M6OkV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpCisgICAg
OiBtX3ByZWZlcmVuY2VzKHByZWZlcmVuY2VzKQogewotICAgIHJldHVybiBtX3ZpZXctPnBhZ2Uo
KS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7Ci19Ci0KLVdlYktpdDo6V2ViUHJlZmVyZW5j
ZXMqIEV3a1NldHRpbmdzOjpwcmVmZXJlbmNlcygpCi17Ci0gICAgcmV0dXJuIG1fdmlldy0+cGFn
ZSgpLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICBBU1NFUlQocHJlZmVyZW5jZXMp
OwogfQogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCkBAIC04Niw3ICs4MSw5IEBAIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBFaW5hX0Jvb2wKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCktPnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisKKyAgICBXS1By
ZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVu
YWJsZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNldHRp
bmdzKTsKQEAgLTk3LDIwICs5NCwxNiBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Z1bGxzY3Jl
ZW5fZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sCiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzKQogewotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShzZXR0aW5ncyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisKKyAgICBy
ZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZ1bGxTY3JlZW5FbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1Nl
dHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0SmF2YVNj
cmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJs
ZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTExOSwxNCArMTEyLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlw
dF9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0RW5hYmxlZCgpOworICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGlu
Z3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRp
bmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdz
LCBFaW5hX0Jvb2wgYXV0b21hdGljKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNl
dExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShhdXRvbWF0aWMpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGF1dG9t
YXRpYyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEzNSwxNCArMTI4LDE0IEBAIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3
a19TZXR0aW5ncyogc2V0dGluCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkt
PmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGlu
Z3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kZXZlbG9w
ZXJfZXh0cmFzX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBl
bmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBm
YWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC0xNTEsMTQgKzE0NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2RldmVsb3Bl
cl9leHRyYXNfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAg
cmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7
CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGNvbnN0
X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWlu
YV9Cb29sIGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGlu
Z3MtPnByZWZlcmVuY2VzKCktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUp
OworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPnNldEFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcyhlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNjcsMTQg
KzE2MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91
cmxzX2FsbG93ZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncwogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKKyAgICByZXR1
cm4gdG9JbXBsKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNl
cygpKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
c2V0dGluZ3NfZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTgzLDE0ICsxNzYsMTQgQEAgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+ZnJhbWVGbGF0
dGVuaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVu
aW5nRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5j
ZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2VuYWJs
ZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldEROU1ByZWZldGNoaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJl
ZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTk5LDcgKzE5
Miw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2VuYWJsZWRfZ2V0
KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4o
c2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogdm9pZCBld2tfc2V0dGluZ3NfY29udGlu
dW91c19zcGVsbF9jaGVja2luZ19jaGFuZ2VfY2Jfc2V0KEV3a19TZXR0aW5nc19Db250aW51b3Vz
X1NwZWxsX0NoZWNraW5nX0NoYW5nZV9DYiBjYWxsYmFjaykKQEAgLTI3OCw3ICsyNzEsNyBAQCBF
aW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfc2V0KEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MsIEVpbgogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNl
dFVzZXNFbmNvZGluZ0RldGVjdG9yKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEVuY29k
aW5nRGV0ZWN0b3JFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yODcsMTQgKzI4MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT51c2VzRW5jb2Rp
bmdEZXRlY3RvcigpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RW5jb2RpbmdEZXRlY3Rv
ckVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2Vz
KCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRl
bnRzX3dpZHRoX3NldChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCB1bnNpZ25lZCB3aWR0aCkKIHsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAot
ICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHdpZHRo
KTsKKyAgICB0b0ltcGwoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpLT5zZXRMYXlvdXRGYWxsYmFj
a1dpZHRoKHdpZHRoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzAzLDEzICsyOTYsMTQg
QEAgdW5zaWduZWQgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRo
X2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnMKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOworICAgIHJldHVybiB0b0ltcGwoY29uc3Rf
Y2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpLT5sYXlvdXRGYWxs
YmFja1dpZHRoKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBw
bGljYXRpb25fY2FjaGVfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9C
b29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0T2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBl
bmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMTgsMTMgKzMxMiwxNCBAQCBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9uX2NhY2hlX2VuYWJsZWRf
Z2V0KGNvbnN0IEV3a19TZXR0aQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LT5vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChjb25zdF9jYXN0PEV3
a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBl
d2tfc2V0dGluZ3Nfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChFd2tfU2V0dGluZ3MqIHNl
dHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5z
ZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGVuYWJsZSk7CisKKyAgICBX
S1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MzMzLDE0ICszMjgsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19zY3JpcHRzX2Nhbl9vcGVu
X3dpbmRvd3NfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseShjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJl
ZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9jYWxfc3RvcmFnZV9l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxl
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzZXR0aW5ncy0+cHJl
ZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzQ5LDE0ICsz
NDQsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJsZWRfZ2V0
KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPmxvY2FsU3RvcmFnZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldExvY2FsU3RvcmFnZUVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0
aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3BsdWdp
bnNfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkK
IHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsK
IAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5zRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzY1LDE0ICszNjAsMTQg
QEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkt
PnBsdWdpbnNFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQbHVnaW5zRW5h
YmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7
CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGVmYXVsdF9mb250X3NpemVfc2V0KEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MsIGludCBzaXplKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCktPnNldERlZmF1bHRGb250U2l6ZShzaXplKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVs
dEZvbnRTaXplKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBzaXplKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtMzgxLDE0ICszNzYsMTQgQEAgaW50IGV3a19zZXR0aW5nc19kZWZhdWx0X2Zv
bnRfc2l6ZV9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIDApOwogCi0gICAgcmV0dXJuIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLT5kZWZhdWx0Rm9udFNpemUoKTsKKyAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRp
bmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcHJpdmF0
ZV9icm93c2luZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wg
ZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzk3LDcgKzM5Miw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcHJpdmF0ZV9i
cm93c2luZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzCiB7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBy
ZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKTsK
KyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoY29uc3Rf
Y2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQpAQCAtNDA1LDcgKzQwMCw3IEBAIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5n
cyogc2V0dGluZ3MsIEVpbmFfCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLT5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoZW5hYmxlKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAtNDE3LDEzICs0
MTIsOCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hXwogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdz
KQogewotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPnRleHRBdXRvc2l6aW5nRW5hYmxlZCgpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oc2V0dGluZ3MpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgorICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRp
bmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKaW5kZXgg
MGI4NWQ5Yi4uNjRmYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw4IEBACiAjaWZu
ZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKICNkZWZpbmUgZXdrX3NldHRpbmdzX3ByaXZhdGVf
aAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
MzksMjIgKzQxLDE3IEBAIGNsYXNzIEV3a1ZpZXc7CiAgKi8KIGNsYXNzIEV3a1NldHRpbmdzIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tTZXR0aW5ncz4gY3JlYXRlKEV3a1Zp
ZXcqIHZpZXdJbXBsKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a1NldHRpbmdzPiBjcmVhdGUo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRXdrU2V0dGluZ3Modmlld0ltcGwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBFd2tTZXR0aW5ncyhwcmVmZXJlbmNlcykpOwogICAgIH0KIAotICAgIGNvbnN0IFdlYktp
dDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Ci0gICAgV2ViS2l0OjpXZWJQ
cmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKTsKKyAgICBpbmxpbmUgV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlcygpIHsgIHJldHVybiBtX3ByZWZlcmVuY2VzLmdldCgpOyB9CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgRXdrU2V0dGluZ3MoRXdrVmlldyogdmlld0ltcGwpCi0gICAgICAgIDog
bV92aWV3KHZpZXdJbXBsKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgfQor
ICAgIGV4cGxpY2l0IEV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYpOwogCi0gICAgRXdrVmll
dyogbV92aWV3OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IG1fcHJlZmVyZW5j
ZXM7CiB9OwogCiAjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZhdGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187245</attachid>
            <date>2013-02-07 23:32:44 -0800</date>
            <delta_ts>2013-02-10 05:34:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>16925</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2OTlhMjc3Li5jOTM0MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDItMDcgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gVXNlIEMgQVBJIGluc2lkZSBld2tfc2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzgyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDIEFQ
SSBpbnNpZGUgZXdrX3NldHRpbmdzIGluc3RlYWQgb2YgYWNjZXNzaW5nIGRpcmVjdGx5CisgICAg
ICAgIGludGVybmFsIEMrKyBjbGFzc2VzLCB0byBhdm9pZCB2aW9sYXRpbmcgQVBJIGxheWVyaW5n
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChF
d2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxs
eV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX3Nl
dCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxz
X2FsbG93ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9zZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193aWR0aF9zZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRo
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2Fj
aGVfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxp
Y2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRzX2Nh
bl9vcGVuX3dpbmRvd3NfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdl
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfc2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Rl
ZmF1bHRfZm9udF9zaXplX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93
c2luZ19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2lu
Z19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
Lmg6CisgICAgICAgIChFd2tTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAgKEV3a1NldHRpbmdz
OjpwcmVmZXJlbmNlcyk6CisgICAgICAgIChFd2tTZXR0aW5ncyk6CisKIDIwMTMtMDItMDcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDIyMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGM0NTMzMTMuLjYyNzYwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiV0tEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiV0tHZW9tZXRyeS5oIgogI2luY2x1
ZGUgIldLTnVtYmVyLmgiCisjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldLVmlldy5oIgpAQCAtMjM3
LDcgKzIzOCw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXcoRXZhc19PYmplY3QqIGV2YXNPYmplY3QsIFBh
c3NSZWZQdHI8RXdrQ29udGV4dD4gY29udGV4dCwgV0tQYWdlCiAjZW5kaWYKICAgICAsIG1fYmFj
a0ZvcndhcmRMaXN0KEV3a0JhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKFdLUGFnZUdldEJhY2tGb3J3
YXJkTGlzdCh3a1BhZ2UoKSkpKQogICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKLSAgICAsIG1f
c2V0dGluZ3MoRXdrU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2V0dGluZ3MoRXdr
U2V0dGluZ3M6OmNyZWF0ZShXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VH
cm91cChtX3dlYlZpZXctPnBhZ2VSZWYoKSkpKSkKICAgICAsIG1fY3Vyc29ySWRlbnRpZmllcigw
KQogICAgICwgbV9tb3VzZUV2ZW50c0VuYWJsZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwCmluZGV4IDNkNDM0ZGYxLi5jN2E2Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTI3LDExICsyNywxMCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogCi0jaW5jbHVk
ZSAiRXdrVmlldy5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLUHJlZmVy
ZW5jZXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgImV3a19zZXR0
aW5nc19wcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJQYWdlR3JvdXAuaD4KLSNpbmNs
dWRlIDxXZWJLaXQyL1dlYlBhZ2VQcm94eS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJlZmVy
ZW5jZXMuaD4KIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogI2luY2x1ZGUgIldLVGV4dENoZWNr
ZXIuaCIKQEAgLTQzLDE0ICs0MiwxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1j
b25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMoKSBj
b25zdAorRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMpCisgICAgOiBtX3ByZWZlcmVuY2VzKHByZWZlcmVuY2VzKQogewotICAgIHJldHVybiBtX3Zp
ZXctPnBhZ2UoKS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7Ci19Ci0KLVdlYktpdDo6V2Vi
UHJlZmVyZW5jZXMqIEV3a1NldHRpbmdzOjpwcmVmZXJlbmNlcygpCi17Ci0gICAgcmV0dXJuIG1f
dmlldy0+cGFnZSgpLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICBBU1NFUlQocHJl
ZmVyZW5jZXMpOwogfQogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCkBAIC04Niw3ICs4MSw5IEBA
IEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAg
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCksIGVuYWJsZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHNldHRpbmdzKTsKQEAgLTk3LDIwICs5NCwxNiBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29s
CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX2dldChjb25zdCBF
d2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBy
ZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlm
CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZ1bGxTY3JlZW5FbmFibGVkKGNvbnN0X2Nh
c3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9C
b29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0
dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
c2V0SmF2YVNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNj
cmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KQEAgLTExOSwxNCArMTEyLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
amF2YXNjcmlwdF9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0RW5hYmxlZCgpOwor
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoY29uc3RfY2FzdDxF
d2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldChFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShhdXRvbWF0aWMpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCksIGF1dG9tYXRpYyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEzNSwxNCArMTI4LDE0
IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0
KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZl
cmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdz
Kj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5n
c19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0xNTEsMTQgKzE0NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2RldmVsb3Blcl9leHRyYXNfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5n
cwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2Up
OwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRyYXNF
bmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsK
IH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19h
bGxvd2VkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cyhlbmFibGUpOworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPnNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0xNjcsMTQgKzE2MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zy
b21fZmlsZV91cmxzX2FsbG93ZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncwogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsK
KyAgICByZXR1cm4gdG9JbXBsKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5w
cmVmZXJlbmNlcygpKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5h
YmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTgzLDE0ICsxNzYsMTQgQEAgRWluYV9C
b29sIGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+
cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNo
aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUp
CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7
CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVk
KGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEROU1ByZWZldGNoaW5nRW5hYmxlZChzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MTk5LDcgKzE5Miw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2Vu
YWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpOworICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1Nl
dHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogdm9pZCBld2tfc2V0dGlu
Z3NfY29udGludW91c19zcGVsbF9jaGVja2luZ19jaGFuZ2VfY2Jfc2V0KEV3a19TZXR0aW5nc19D
b250aW51b3VzX1NwZWxsX0NoZWNraW5nX0NoYW5nZV9DYiBjYWxsYmFjaykKQEAgLTI3OCw3ICsy
NzEsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbgogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldEVuY29kaW5nRGV0ZWN0b3JFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFi
bGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yODcsMTQgKzI4MCwxNCBAQCBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT51
c2VzRW5jb2RpbmdEZXRlY3RvcigpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RW5jb2Rp
bmdEZXRlY3RvckVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5p
bXVtX2NvbnRlbnRzX3dpZHRoX3NldChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCB1bnNpZ25lZCB3
aWR0aCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZh
bHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRMYXlvdXRGYWxsYmFja1dp
ZHRoKHdpZHRoKTsKKyAgICB0b0ltcGwoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpLT5zZXRMYXlv
dXRGYWxsYmFja1dpZHRoKHdpZHRoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzAzLDEz
ICsyOTYsMTQgQEAgdW5zaWduZWQgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRl
bnRzX3dpZHRoX2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnMKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5n
cy0+cHJlZmVyZW5jZXMoKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOworICAgIHJldHVybiB0b0lt
cGwoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpLT5s
YXlvdXRGYWxsYmFja1dpZHRoKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfb2ZmbGlu
ZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5n
cywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0T2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMTgsMTMgKzMxMiwx
NCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9uX2NhY2hl
X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpLT5vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKKyAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChjb25z
dF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVp
bmFfQm9vbCBld2tfc2V0dGluZ3Nfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChFd2tfU2V0
dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGVuYWJsZSk7
CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzMzLDE0ICszMjgsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3NfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAg
IHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRp
bmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9jYWxf
c3RvcmFnZV9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5h
YmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFs
c2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MzQ5LDE0ICszNDQsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2Vu
YWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPmxvY2FsU3RvcmFnZUVuYWJsZWQoKTsKKyAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldExvY2FsU3RvcmFnZUVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGlu
Z3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRp
bmdzX3BsdWdpbnNfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29s
IGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRQbHVnaW5zRW5hYmxl
ZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5zRW5hYmxlZChzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzY1LDE0
ICszNjAsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KGNv
bnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZl
cmVuY2VzKCktPnBsdWdpbnNFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQ
bHVnaW5zRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVy
ZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGVmYXVsdF9mb250X3NpemVf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIGludCBzaXplKQogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPnNldERlZmF1bHRGb250U2l6ZShzaXplKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RGVmYXVsdEZvbnRTaXplKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBzaXplKTsKIAogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtMzgxLDE0ICszNzYsMTQgQEAgaW50IGV3a19zZXR0aW5nc19k
ZWZhdWx0X2ZvbnRfc2l6ZV9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIDApOwogCi0gICAgcmV0
dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZWZhdWx0Rm9udFNpemUoKTsKKyAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShjb25zdF9jYXN0PEV3a19TZXR0aW5n
cyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfcHJpdmF0ZV9icm93c2luZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBF
aW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMzk3LDcgKzM5Miw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
cHJpdmF0ZV9icm93c2luZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdz
CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7
CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwog
fQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQpAQCAtNDA1LDcgKzQwMCw3
IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAot
ICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoZW5h
YmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAt
NDE3LDEzICs0MTIsOCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hXwogCiBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzKQogewotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPnRleHRBdXRvc2l6aW5nRW5hYmxlZCgpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc2V0dGluZ3MpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgorICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGNvbnN0X2Nhc3Q8
RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
LmgKaW5kZXggMGI4NWQ5Yi4uNjRmYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw4
IEBACiAjaWZuZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKICNkZWZpbmUgZXdrX3NldHRpbmdz
X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtMzksMjIgKzQxLDE3IEBAIGNsYXNzIEV3a1ZpZXc7CiAgKi8KIGNsYXNzIEV3a1Nl
dHRpbmdzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tTZXR0aW5ncz4gY3Jl
YXRlKEV3a1ZpZXcqIHZpZXdJbXBsKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a1NldHRpbmdz
PiBjcmVhdGUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcykKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgRXdrU2V0dGluZ3Modmlld0ltcGwpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBFd2tTZXR0aW5ncyhwcmVmZXJlbmNlcykpOwogICAgIH0KIAotICAgIGNv
bnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Ci0gICAgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKTsKKyAgICBpbmxpbmUgV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlcygpIHsgIHJldHVybiBtX3ByZWZlcmVuY2VzLmdldCgpOyB9CiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrU2V0dGluZ3MoRXdrVmlldyogdmlld0ltcGwpCi0g
ICAgICAgIDogbV92aWV3KHZpZXdJbXBsKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmlldyk7
Ci0gICAgfQorICAgIGV4cGxpY2l0IEV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYpOwogCi0g
ICAgRXdrVmlldyogbV92aWV3OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IG1f
cHJlZmVyZW5jZXM7CiB9OwogCiAjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZhdGVfaAo=
</data>
<flag name="review"
          id="206997"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="206998"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187476</attachid>
            <date>2013-02-10 05:34:00 -0800</date>
            <delta_ts>2013-02-10 05:36:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>16925</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2OTlhMjc3Li5jOTM0MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDItMDcgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gVXNlIEMgQVBJIGluc2lkZSBld2tfc2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzgyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDIEFQ
SSBpbnNpZGUgZXdrX3NldHRpbmdzIGluc3RlYWQgb2YgYWNjZXNzaW5nIGRpcmVjdGx5CisgICAg
ICAgIGludGVybmFsIEMrKyBjbGFzc2VzLCB0byBhdm9pZCB2aW9sYXRpbmcgQVBJIGxheWVyaW5n
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChF
d2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxs
eV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX3Nl
dCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxz
X2FsbG93ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9zZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193aWR0aF9zZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRo
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2Fj
aGVfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxp
Y2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRzX2Nh
bl9vcGVuX3dpbmRvd3NfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdl
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfc2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Rl
ZmF1bHRfZm9udF9zaXplX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93
c2luZ19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2lu
Z19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
Lmg6CisgICAgICAgIChFd2tTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAgKEV3a1NldHRpbmdz
OjpwcmVmZXJlbmNlcyk6CisgICAgICAgIChFd2tTZXR0aW5ncyk6CisKIDIwMTMtMDItMDcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDIyMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGM0NTMzMTMuLjYyNzYwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiV0tEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiV0tHZW9tZXRyeS5oIgogI2luY2x1
ZGUgIldLTnVtYmVyLmgiCisjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldLVmlldy5oIgpAQCAtMjM3
LDcgKzIzOCw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXcoRXZhc19PYmplY3QqIGV2YXNPYmplY3QsIFBh
c3NSZWZQdHI8RXdrQ29udGV4dD4gY29udGV4dCwgV0tQYWdlCiAjZW5kaWYKICAgICAsIG1fYmFj
a0ZvcndhcmRMaXN0KEV3a0JhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKFdLUGFnZUdldEJhY2tGb3J3
YXJkTGlzdCh3a1BhZ2UoKSkpKQogICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKLSAgICAsIG1f
c2V0dGluZ3MoRXdrU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2V0dGluZ3MoRXdr
U2V0dGluZ3M6OmNyZWF0ZShXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VH
cm91cChtX3dlYlZpZXctPnBhZ2VSZWYoKSkpKSkKICAgICAsIG1fY3Vyc29ySWRlbnRpZmllcigw
KQogICAgICwgbV9tb3VzZUV2ZW50c0VuYWJsZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwCmluZGV4IDNkNDM0ZGYxLi5jN2E2Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTI3LDExICsyNywxMCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogCi0jaW5jbHVk
ZSAiRXdrVmlldy5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLUHJlZmVy
ZW5jZXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgImV3a19zZXR0
aW5nc19wcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJQYWdlR3JvdXAuaD4KLSNpbmNs
dWRlIDxXZWJLaXQyL1dlYlBhZ2VQcm94eS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJlZmVy
ZW5jZXMuaD4KIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogI2luY2x1ZGUgIldLVGV4dENoZWNr
ZXIuaCIKQEAgLTQzLDE0ICs0MiwxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1j
b25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMoKSBj
b25zdAorRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMpCisgICAgOiBtX3ByZWZlcmVuY2VzKHByZWZlcmVuY2VzKQogewotICAgIHJldHVybiBtX3Zp
ZXctPnBhZ2UoKS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7Ci19Ci0KLVdlYktpdDo6V2Vi
UHJlZmVyZW5jZXMqIEV3a1NldHRpbmdzOjpwcmVmZXJlbmNlcygpCi17Ci0gICAgcmV0dXJuIG1f
dmlldy0+cGFnZSgpLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICBBU1NFUlQocHJl
ZmVyZW5jZXMpOwogfQogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCkBAIC04Niw3ICs4MSw5IEBA
IEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAg
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCksIGVuYWJsZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHNldHRpbmdzKTsKQEAgLTk3LDIwICs5NCwxNiBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29s
CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX2dldChjb25zdCBF
d2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBy
ZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlm
CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZ1bGxTY3JlZW5FbmFibGVkKGNvbnN0X2Nh
c3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9C
b29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0
dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
c2V0SmF2YVNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNj
cmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KQEAgLTExOSwxNCArMTEyLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
amF2YXNjcmlwdF9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0RW5hYmxlZCgpOwor
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoY29uc3RfY2FzdDxF
d2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldChFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShhdXRvbWF0aWMpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCksIGF1dG9tYXRpYyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEzNSwxNCArMTI4LDE0
IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0
KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZl
cmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdz
Kj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5n
c19kZXZlbG9wZXJfZXh0cmFzX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0xNTEsMTQgKzE0NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2RldmVsb3Blcl9leHRyYXNfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5n
cwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2Up
OwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRyYXNF
bmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsK
IH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19h
bGxvd2VkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cyhlbmFibGUpOworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPnNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0xNjcsMTQgKzE2MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zy
b21fZmlsZV91cmxzX2FsbG93ZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncwogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsK
KyAgICByZXR1cm4gdG9JbXBsKGNvbnN0X2Nhc3Q8RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5w
cmVmZXJlbmNlcygpKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5h
YmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTgzLDE0ICsxNzYsMTQgQEAgRWluYV9C
b29sIGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+
cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNo
aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUp
CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7
CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVk
KGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEROU1ByZWZldGNoaW5nRW5hYmxlZChzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MTk5LDcgKzE5Miw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2Vu
YWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpOworICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGNvbnN0X2Nhc3Q8RXdrX1Nl
dHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogdm9pZCBld2tfc2V0dGlu
Z3NfY29udGludW91c19zcGVsbF9jaGVja2luZ19jaGFuZ2VfY2Jfc2V0KEV3a19TZXR0aW5nc19D
b250aW51b3VzX1NwZWxsX0NoZWNraW5nX0NoYW5nZV9DYiBjYWxsYmFjaykKQEAgLTI3OCw3ICsy
NzEsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbgogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCktPnNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldEVuY29kaW5nRGV0ZWN0b3JFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFi
bGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yODcsMTQgKzI4MCwxNCBAQCBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT51
c2VzRW5jb2RpbmdEZXRlY3RvcigpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RW5jb2Rp
bmdEZXRlY3RvckVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5p
bXVtX2NvbnRlbnRzX3dpZHRoX3NldChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCB1bnNpZ25lZCB3
aWR0aCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZh
bHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRMYXlvdXRGYWxsYmFja1dp
ZHRoKHdpZHRoKTsKKyAgICB0b0ltcGwoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpLT5zZXRMYXlv
dXRGYWxsYmFja1dpZHRoKHdpZHRoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzAzLDEz
ICsyOTYsMTQgQEAgdW5zaWduZWQgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRl
bnRzX3dpZHRoX2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnMKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5n
cy0+cHJlZmVyZW5jZXMoKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOworICAgIHJldHVybiB0b0lt
cGwoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpLT5s
YXlvdXRGYWxsYmFja1dpZHRoKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfb2ZmbGlu
ZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5n
cywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0T2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMTgsMTMgKzMxMiwx
NCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9uX2NhY2hl
X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpLT5vZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKKyAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChjb25z
dF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVp
bmFfQm9vbCBld2tfc2V0dGluZ3Nfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChFd2tfU2V0
dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGVuYWJsZSk7
CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzMzLDE0ICszMjgsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3NfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAg
IHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+amF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRp
bmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9jYWxf
c3RvcmFnZV9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5h
YmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFs
c2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MzQ5LDE0ICszNDQsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2Vu
YWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPmxvY2FsU3RvcmFnZUVuYWJsZWQoKTsKKyAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldExvY2FsU3RvcmFnZUVuYWJsZWQoY29uc3RfY2FzdDxFd2tfU2V0dGlu
Z3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRp
bmdzX3BsdWdpbnNfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29s
IGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRQbHVnaW5zRW5hYmxl
ZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5zRW5hYmxlZChzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzY1LDE0
ICszNjAsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KGNv
bnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZl
cmVuY2VzKCktPnBsdWdpbnNFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQ
bHVnaW5zRW5hYmxlZChjb25zdF9jYXN0PEV3a19TZXR0aW5ncyo+KHNldHRpbmdzKS0+cHJlZmVy
ZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGVmYXVsdF9mb250X3NpemVf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIGludCBzaXplKQogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPnNldERlZmF1bHRGb250U2l6ZShzaXplKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RGVmYXVsdEZvbnRTaXplKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBzaXplKTsKIAogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtMzgxLDE0ICszNzYsMTQgQEAgaW50IGV3a19zZXR0aW5nc19k
ZWZhdWx0X2ZvbnRfc2l6ZV9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIDApOwogCi0gICAgcmV0
dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZWZhdWx0Rm9udFNpemUoKTsKKyAgICByZXR1
cm4gV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShjb25zdF9jYXN0PEV3a19TZXR0aW5n
cyo+KHNldHRpbmdzKS0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfcHJpdmF0ZV9icm93c2luZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBF
aW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMzk3LDcgKzM5Miw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
cHJpdmF0ZV9icm93c2luZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdz
CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7
CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoY29uc3RfY2FzdDxFd2tfU2V0dGluZ3MqPihzZXR0aW5ncyktPnByZWZlcmVuY2VzKCkpOwog
fQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQpAQCAtNDA1LDcgKzQwMCw3
IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAot
ICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoZW5h
YmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAt
NDE3LDEzICs0MTIsOCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hXwogCiBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzKQogewotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0
dGluZ3MtPnByZWZlcmVuY2VzKCktPnRleHRBdXRvc2l6aW5nRW5hYmxlZCgpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc2V0dGluZ3MpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgorICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGNvbnN0X2Nhc3Q8
RXdrX1NldHRpbmdzKj4oc2V0dGluZ3MpLT5wcmVmZXJlbmNlcygpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
LmgKaW5kZXggMGI4NWQ5Yi4uNjRmYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw4
IEBACiAjaWZuZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKICNkZWZpbmUgZXdrX3NldHRpbmdz
X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtMzksMjIgKzQxLDE3IEBAIGNsYXNzIEV3a1ZpZXc7CiAgKi8KIGNsYXNzIEV3a1Nl
dHRpbmdzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tTZXR0aW5ncz4gY3Jl
YXRlKEV3a1ZpZXcqIHZpZXdJbXBsKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a1NldHRpbmdz
PiBjcmVhdGUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcykKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgRXdrU2V0dGluZ3Modmlld0ltcGwpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBFd2tTZXR0aW5ncyhwcmVmZXJlbmNlcykpOwogICAgIH0KIAotICAgIGNv
bnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Ci0gICAgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKTsKKyAgICBpbmxpbmUgV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlcygpIHsgIHJldHVybiBtX3ByZWZlcmVuY2VzLmdldCgpOyB9CiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrU2V0dGluZ3MoRXdrVmlldyogdmlld0ltcGwpCi0g
ICAgICAgIDogbV92aWV3KHZpZXdJbXBsKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmlldyk7
Ci0gICAgfQorICAgIGV4cGxpY2l0IEV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYpOwogCi0g
ICAgRXdrVmlldyogbV92aWV3OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IG1f
cHJlZmVyZW5jZXM7CiB9OwogCiAjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZhdGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187477</attachid>
            <date>2013-02-10 05:36:05 -0800</date>
            <delta_ts>2014-01-23 21:58:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>107820_ewk_settings_capi.patch</filename>
            <type>text/plain</type>
            <size>16527</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyYTdkZDdiLi44YzJkZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDItMDcgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gVXNlIEMgQVBJIGluc2lkZSBld2tfc2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzgyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDIEFQ
SSBpbnNpZGUgZXdrX3NldHRpbmdzIGluc3RlYWQgb2YgYWNjZXNzaW5nIGRpcmVjdGx5CisgICAg
ICAgIGludGVybmFsIEMrKyBjbGFzc2VzLCB0byBhdm9pZCB2aW9sYXRpbmcgQVBJIGxheWVyaW5n
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChF
d2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3MuY3BwOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxs
eV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX3Nl
dCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxz
X2FsbG93ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19lbmFibGVkX2dldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9zZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193aWR0aF9zZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRo
X2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2Fj
aGVfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxp
Y2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRz
X2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zY3JpcHRzX2Nh
bl9vcGVuX3dpbmRvd3NfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdl
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfc2V0KToKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Rl
ZmF1bHRfZm9udF9zaXplX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93
c2luZ19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJpdmF0ZV9icm93c2lu
Z19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
Lmg6CisgICAgICAgIChFd2tTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAgKEV3a1NldHRpbmdz
OjpwcmVmZXJlbmNlcyk6CisgICAgICAgIChFd2tTZXR0aW5ncyk6CisKIDIwMTMtMDItMTAgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJLaXQyXVtH
dGtdIFJlbW92ZSB0aGUgZnVsbHNjcmVlbiBtYW5hZ2VyIHByb3h5IG1lc3NhZ2UgcmVjZWl2ZXIg
dXBvbiBpbnZhbGlkYXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlldy5jcHAKaW5kZXggYzQ1MzMxMy4uNzU5ZmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJX
S0RpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJXS0dlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV0tOdW1i
ZXIuaCIKKyNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXS1BhZ2VHcm91cC5oIgogI2lu
Y2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tWaWV3LmgiCkBAIC0yMzcsNyArMjM4LDcg
QEAgRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCogZXZhc09iamVjdCwgUGFzc1JlZlB0cjxF
d2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2UKICNlbmRpZgogICAgICwgbV9iYWNrRm9yd2FyZExp
c3QoRXdrQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHdr
UGFnZSgpKSkpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQotICAgICwgbV9zZXR0aW5ncyhF
d2tTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9zZXR0aW5ncyhFd2tTZXR0aW5nczo6
Y3JlYXRlKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrUGFn
ZSgpKSkpKQogICAgICwgbV9jdXJzb3JJZGVudGlmaWVyKDApCiAgICAgLCBtX21vdXNlRXZlbnRz
RW5hYmxlZChmYWxzZSkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKaW5kZXggM2Q0MzRkZjEu
LmVkNmJiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmNwcApAQCAtMjcsMTEgKzI3LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAKLSNpbmNsdWRlICJFd2tWaWV3LmgiCisjaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tQcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgIldl
YlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKLSNpbmNs
dWRlIDxXZWJLaXQyL1dlYlBhZ2VHcm91cC5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUGFnZVBy
b3h5Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcmVmZXJlbmNlcy5oPgogCiAjaWYgRU5BQkxF
KFNQRUxMQ0hFQ0spCiAjaW5jbHVkZSAiV0tUZXh0Q2hlY2tlci5oIgpAQCAtNDMsMTQgKzQyLDEw
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLWNvbnN0IFdlYktpdDo6V2ViUHJlZmVy
ZW5jZXMqIEV3a1NldHRpbmdzOjpwcmVmZXJlbmNlcygpIGNvbnN0CitFd2tTZXR0aW5nczo6RXdr
U2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcykKKyAgICA6IG1fcHJlZmVyZW5j
ZXMocHJlZmVyZW5jZXMpCiB7Ci0gICAgcmV0dXJuIG1fdmlldy0+cGFnZSgpLT5wYWdlR3JvdXAo
KS0+cHJlZmVyZW5jZXMoKTsKLX0KLQotV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogRXdrU2V0dGlu
Z3M6OnByZWZlcmVuY2VzKCkKLXsKLSAgICByZXR1cm4gbV92aWV3LT5wYWdlKCktPnBhZ2VHcm91
cCgpLT5wcmVmZXJlbmNlcygpOworICAgIEFTU0VSVChwcmVmZXJlbmNlcyk7CiB9CiAKICNpZiBF
TkFCTEUoU1BFTExDSEVDSykKQEAgLTg2LDcgKzgxLDkgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5n
c19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9v
bAogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMo
KS0+c2V0RnVsbFNjcmVlbkVuYWJsZWQoZW5hYmxlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRG
dWxsU2NyZWVuRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKKwogICAg
IHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2V0dGluZ3MpOwpAQCAtOTcs
MjAgKzk0LDE2IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wKIAogRWluYV9Cb29sIGV3a19zZXR0
aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3Mp
CiB7Ci0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNl
dHRpbmdzKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKKworICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0RnVsbFNjcmVlbkVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQog
CiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoRXdrX1NldHRp
bmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTE5LDE0ICsxMTIsMTQgQEAgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGlu
Z3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmphdmFTY3JpcHRFbmFi
bGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNf
aW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9v
bCBhdXRvbWF0aWMpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRp
bmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KGF1dG9tYXRpYyk7CisgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgYXV0b21hdGljKTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTM1LDE0ICsxMjgsMTQgQEAgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9nZXQoY29uc3QgRXdrX1NldHRpbmdz
KiBzZXR0aW4KIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+bG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2RldmVsb3Blcl9leHRyYXNfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
LT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dERldmVsb3BlckV4dHJhc0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE1MSwxNCArMTQ0LDE0IEBAIEVpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRp
bmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzX2FsbG93ZWRfc2V0KEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJl
ZmVyZW5jZXMoKS0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGVuYWJsZSk7CisgICAg
dG9JbXBsKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKS0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzKGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2NywxNCArMTYwLDE0
IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxs
b3dlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZl
cmVuY2VzKCktPmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpOworICAgIHJldHVybiB0b0lt
cGwoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpLT5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMo
KTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChlbmFibGUpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xODMsMTQgKzE3
NiwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9n
ZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5w
cmVmZXJlbmNlcygpLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
KTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9z
ZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xOTksNyArMTkyLDcg
QEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9nZXQoY29u
c3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+ZG5zUHJlZmV0Y2hpbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQog
CiB2b2lkIGV3a19zZXR0aW5nc19jb250aW51b3VzX3NwZWxsX2NoZWNraW5nX2NoYW5nZV9jYl9z
ZXQoRXdrX1NldHRpbmdzX0NvbnRpbnVvdXNfU3BlbGxfQ2hlY2tpbmdfQ2hhbmdlX0NiIGNhbGxi
YWNrKQpAQCAtMjc4LDcgKzI3MSw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5jb2Rpbmdf
ZGV0ZWN0b3JfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluCiB7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoZW5hYmxlKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RW5jb2RpbmdEZXRlY3RvckVuYWJsZWQoc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI4NywxNCAr
MjgwLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxl
ZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5nCiB7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCktPnVzZXNFbmNvZGluZ0RldGVjdG9yKCk7CisgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRFbmNvZGluZ0RldGVjdG9yRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMo
KSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVu
dHNfd2lkdGhfc2V0KEV3a19TZXR0aW5ncyAqc2V0dGluZ3MsIHVuc2lnbmVkIHdpZHRoKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExheW91dEZhbGxiYWNrV2lkdGgod2lkdGgp
OworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPnNldExheW91dEZhbGxiYWNr
V2lkdGgod2lkdGgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMDMsMTMgKzI5NiwxNCBA
QCB1bnNpZ25lZCBld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVudHNfd2lkdGhf
Z2V0KGNvbnN0IEV3a19TZXR0aW5ncyAqcwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCk7CisgICAgcmV0dXJuIHRvSW1wbChzZXR0aW5n
cy0+cHJlZmVyZW5jZXMoKSktPmxheW91dEZhbGxiYWNrV2lkdGgoKTsKIH0KIAogRWluYV9Cb29s
IGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9jYWNoZV9lbmFibGVkX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRpbmdzLT5w
cmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5hYmxl
KTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTMxOCwxMyArMzEyLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfb2ZmbGluZV93
ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpCiB7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBy
ZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPm9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0T2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGVFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29s
IGV3a19zZXR0aW5nc19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KEV3a19TZXR0aW5ncyog
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkt
PnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZW5hYmxlKTsKKworICAg
IFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0zMzMsMTQgKzMyOCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3NjcmlwdHNfY2FuX29w
ZW5fd2luZG93c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9C
b29sIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyog
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMo
KS0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRM
b2NhbFN0b3JhZ2VFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNDksMTQgKzM0NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZh
bHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+bG9jYWxTdG9yYWdl
RW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
cGx1Z2luc19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5h
YmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFs
c2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldFBsdWdpbnNFbmFibGVkKGVu
YWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNFbmFibGVkKHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNjUsMTQgKzM2
MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9nZXQoY29uc3Qg
RXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKS0+cGx1Z2luc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFBsdWdp
bnNFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgaW50
IHNpemUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBm
YWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdEZvbnRTaXpl
KHNpemUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rm9udFNpemUoc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCksIHNpemUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zODEsMTQgKzM3
NiwxNCBAQCBpbnQgZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9udF9zaXplX2dldChjb25zdCBFd2tf
U2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZXR0aW5ncywgMCk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmRl
ZmF1bHRGb250U2l6ZSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RGVmYXVsdEZvbnRT
aXplKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5n
c19wcml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0zOTcsNyArMzkyLDcgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19w
cml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MK
IHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsK
IAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nf
dGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFf
Qm9vbCBlbmFibGUpCkBAIC00MDUsNyArNDAwLDcgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc190
ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV8K
ICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkt
PnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRU
ZXh0QXV0b3NpemluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCkBAIC00MTcsMTMgKzQxMiw4IEBAIEVpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0
dGluZ3MsIEVpbmFfCiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2Vu
YWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7Ci0jaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+dGV4dEF1
dG9zaXppbmdFbmFibGVkKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRUZXh0
QXV0b3NpemluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZh
dGUuaAppbmRleCAwYjg1ZDliLi5kMmFiOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKQEAgLTI3LDYgKzI3
LDggQEAKICNpZm5kZWYgZXdrX3NldHRpbmdzX3ByaXZhdGVfaAogI2RlZmluZSBld2tfc2V0dGlu
Z3NfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgPFdlYktp
dDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC0zOSwyMiArNDEsMTcgQEAgY2xhc3MgRXdrVmlldzsKICAqLwogY2xhc3MgRXdr
U2V0dGluZ3MgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a1NldHRpbmdzPiBj
cmVhdGUoRXdrVmlldyogdmlld0ltcGwpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RXdrU2V0dGlu
Z3M+IGNyZWF0ZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tTZXR0aW5ncyh2aWV3SW1wbCkpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEV3a1NldHRpbmdzKHByZWZlcmVuY2VzKSk7CiAgICAgfQogCi0gICAg
Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKSBjb25zdDsKLSAgICBX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMoKSBjb25zdCB7ICByZXR1cm4gbV9wcmVmZXJlbmNlcy5nZXQoKTsgfQog
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a1NldHRpbmdzKEV3a1ZpZXcqIHZpZXdJbXBsKQot
ICAgICAgICA6IG1fdmlldyh2aWV3SW1wbCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZpZXcp
OwotICAgIH0KKyAgICBleHBsaWNpdCBFd2tTZXR0aW5ncyhXS1ByZWZlcmVuY2VzUmVmKTsKIAot
ICAgIEV3a1ZpZXcqIG1fdmlldzsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBt
X3ByZWZlcmVuY2VzOwogfTsKIAogI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222078</attachid>
            <date>2014-01-23 21:58:48 -0800</date>
            <delta_ts>2014-03-24 02:29:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107820-20140124145840.patch</filename>
            <type>text/plain</type>
            <size>17825</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzhhNTBlODNmNjY4ODJh
OGZjZjEyMThlMmIwNTIxN2RmYmU0NmE4Ni4uZDU5YjI4ZTQzMTljZjkzMmZhMjdjMGVkYmY5MTE5
YjYyZGZmOWNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE0LTAxLTIzICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IFVzZSBDIEFQSSBpbnNpZGUgZXdrX3NldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQyBBUEkgaW5zaWRlIGV3a19zZXR0aW5ncyBpbnN0
ZWFkIG9mIGFjY2Vzc2luZyBkaXJlY3RseQorICAgICAgICBpbnRlcm5hbCBDKysgY2xhc3Nlcywg
dG8gYXZvaWQgdmlvbGF0aW5nIEFQSSBsYXllcmluZy4KKworICAgICAgICBPcmlnaW5hbC1hdXRo
b3I6IENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpF
d2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRp
bmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2phdmFz
Y3JpcHRfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19h
dXRvbWF0aWNhbGx5X3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1
dG9tYXRpY2FsbHlfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFz
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2Vu
YWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVf
dXJsc19hbGxvd2VkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJv
bV9maWxlX3VybHNfYWxsb3dlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2Zs
YXR0ZW5pbmdfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0
ZW5pbmdfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGlu
Z19lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2Vu
YWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19lbmNvZGluZ19kZXRlY3Rvcl9lbmFi
bGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxl
ZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRz
X3dpZHRoX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29u
dGVudHNfd2lkdGhfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBs
aWNhdGlvbl9jYWNoZV9lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGlu
ZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRp
bmdzX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdz
X3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xv
Y2FsX3N0b3JhZ2VfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvY2FsX3N0
b3JhZ2VfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxl
ZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9nZXQpOgorICAg
ICAgICAoZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9udF9zaXplX3NldCk6CisgICAgICAgIChld2tf
c2V0dGluZ3NfZGVmYXVsdF9mb250X3NpemVfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19w
cml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2
YXRlX2Jyb3dzaW5nX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1
dG9zaXppbmdfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3RleHRfYXV0b3Np
emluZ19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfc3BhdGlhbF9uYXZpZ2F0
aW9uX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zcGF0aWFsX25hdmlnYXRp
b25fZW5hYmxlZF9nZXQpOgorICAgICAgICAoRXdrU2V0dGluZ3M6OnNldERlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJp
dmF0ZS5oOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKEV3
a1NldHRpbmdzOjpwcmVmZXJlbmNlcyk6CisKIDIwMTQtMDEtMjMgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IEdUSy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggMGQ5NWEyNmFhNzA0ZmQwZmEx
NDNmYTQ3NDIzZWQzYWMxZjliYWI5OS4uOTg0M2UzY2VjODQ2ZDkyNTk3MWM1OTMzOTM1NDM0OTJk
OWVjMGM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAKQEAgLTI3NSw3ICsyNzUsNyBAQCBFd2tWaWV3OjpFd2tWaWV3KFdLVmlld1JlZiB2aWV3LCBF
dmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAsIG1fdmlicmF0aW9uQ2xpZW50KHN0ZDo6bWFr
ZV91bmlxdWU8VmlicmF0aW9uQ2xpZW50RWZsPih0aGlzKSkKICNlbmRpZgogICAgICwgbV9iYWNr
Rm9yd2FyZExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxFd2tCYWNrRm9yd2FyZExpc3Q+KFdLUGFnZUdl
dEJhY2tGb3J3YXJkTGlzdCh3a1BhZ2UoKSkpKQotICAgICwgbV9zZXR0aW5ncyhzdGQ6Om1ha2Vf
dW5pcXVlPEV3a1NldHRpbmdzPih0aGlzKSkKKyAgICAsIG1fc2V0dGluZ3Moc3RkOjptYWtlX3Vu
aXF1ZTxFd2tTZXR0aW5ncz4oV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdl
R3JvdXAod2tQYWdlKCkpKSkpCiAgICAgLCBtX2N1cnNvcklkZW50aWZpZXIoMCkKICAgICAsIG1f
dXNlckFnZW50KFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1BhZ2VDb3B5VXNlckFnZW50
KHdrUGFnZSgpKSkpCiAgICAgLCBtX21vdXNlRXZlbnRzRW5hYmxlZChmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCmluZGV4IDRm
ZTNhN2JmZjRkMTU4MzI2NGQyNzVlYTdjZTFmZTgyMWJkYTliYjkuLmVlNzVhMWMxZTgxZGQwNDRj
MjY3YmVlNzU3NDQ0MDQyZmE1YzRlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcApAQCAtMjcsMjkgKzI3LDIxIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAKLSNpbmNsdWRlICJFd2tW
aWV3LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tQcmVmZXJlbmNlc1Jl
Zi5oIgorI2luY2x1ZGUgIldLU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIK
ICNpbmNsdWRlICJld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYktpdDIvV2Vi
UGFnZUdyb3VwLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJQYWdlUHJveHkuaD4KLSNpbmNsdWRl
IDxXZWJLaXQyL1dlYlByZWZlcmVuY2VzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAK
LWNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIEV3a1NldHRpbmdzOjpwcmVmZXJlbmNlcygp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlldy0+cGFnZSgpLT5wYWdlR3JvdXAoKS5wcmVmZXJl
bmNlcygpOwotfQotCi1XZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBFd2tTZXR0aW5nczo6cHJlZmVy
ZW5jZXMoKQotewotICAgIHJldHVybiBtX3ZpZXctPnBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVy
ZW5jZXMoKTsKLX0KLQogRWluYV9Cb29sIGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRGdWxsU2Ny
ZWVuRW5hYmxlZChlbmFibGUpOworCisgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFi
bGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOworCiAgICAgcmV0dXJuIHRydWU7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7CkBAIC02MCwyMCArNTIsMTYgQEAg
RWluYV9Cb29sIGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5n
cyogc2V0dGluZ3MsIEVpbmFfQm9vbAogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Z1bGxzY3Jl
ZW5fZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKLSNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7Ci0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5mdWxs
U2NyZWVuRW5hYmxlZCgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2V0dGluZ3MpOwotICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgorCisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGdWxs
U2NyZWVuRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdz
LCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEph
dmFTY3JpcHRFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC04MiwxNCArNzAsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1
cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmphdmFTY3JpcHRFbmFibGVkKCk7CisgICAgcmV0
dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRp
Y2FsbHlfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAK
LSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KGF1dG9tYXRpYyk7CisgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgYXV0b21hdGljKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtOTgsMTQgKzg2LDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1h
Z2VzX2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluCiB7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBy
ZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgp
OworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kZXZl
bG9wZXJfZXh0cmFzX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9v
bCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdz
LCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0xMTQsMTQgKzEwMiwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2RldmVs
b3Blcl9leHRyYXNfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVk
KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19maWxl
X2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdz
LCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOworICAgIHRvSW1wbChzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKSktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMzAsMTQgKzExOCwxNCBAQCBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzX2FsbG93ZWRfZ2V0KGNvbnN0IEV3
a19TZXR0aW5ncwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5n
cywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5hbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKKyAgICByZXR1cm4gdG9JbXBsKHNldHRpbmdzLT5wcmVm
ZXJlbmNlcygpKS0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7CiB9CiAKIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3NfZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCktPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxl
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTQ2LDE0ICsxMzQsMTQgQEAgRWluYV9Cb29s
IGV3a19zZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0
aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0
dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+ZnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9v
bCBld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyog
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMo
KS0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dEROU1ByZWZldGNoaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTYyLDE0ICsxNTAsMTQgQEAgRWluYV9Cb29sIGV3
a19zZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdz
KiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+ZG5zUHJl
ZmV0Y2hpbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRETlNQcmVmZXRj
aGluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0
dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
c2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RW5j
b2RpbmdEZXRlY3RvckVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE3OCw3ICsxNjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT51c2VzRW5jb2Rp
bmdEZXRlY3RvcigpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0RW5jb2RpbmdEZXRlY3Rv
ckVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2RlZmF1bHRfdGV4dF9lbmNvZGluZ19uYW1lX3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBjb25zdCBjaGFyKiBlbmNvZGluZykKQEAgLTIwMSw3ICsxODksNyBAQCBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX3NldChFd2tfU2V0
dGluZ3MgKnNldHRpbgogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0
aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNldExheW91dEZh
bGxiYWNrV2lkdGgod2lkdGgpOworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSkt
PnNldExheW91dEZhbGxiYWNrV2lkdGgod2lkdGgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0yMTAsMTMgKzE5OCwxNCBAQCB1bnNpZ25lZCBld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmlt
dW1fY29udGVudHNfd2lkdGhfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyAqcwogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJu
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCk7CisgICAgcmV0
dXJuIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPmxheW91dEZhbGxiYWNrV2lkdGgo
KTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbl9j
YWNoZV9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxl
KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2Up
OwotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25D
YWNoZUVuYWJsZWQoZW5hYmxlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIyNSwxMyArMjE0LDE0IEBAIEVpbmFfQm9vbCBld2tf
c2V0dGluZ3Nfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9nZXQoY29uc3Qg
RXdrX1NldHRpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdz
LCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPm9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygp
KTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGlu
Z3MtPnByZWZlcmVuY2VzKCktPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkoZW5hYmxlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0yNDAsMTQgKzIzMCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRp
bmdzX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5ncwogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFs
c2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5qYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRK
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNl
cygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2VuYWJsZWRf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKS0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNl
cygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yNTYsMTQgKzI0NiwxNCBA
QCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9nZXQoY29uc3Qg
RXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMoKS0+bG9jYWxTdG9yYWdlRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
TG9jYWxTdG9yYWdlRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfcGx1Z2luc19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPnNl
dFBsdWdpbnNFbmFibGVkKGVuYWJsZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNFbmFi
bGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC0yNzIsMTQgKzI2MiwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3BsdWdpbnNf
ZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+cGx1Z2luc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQ
cmVmZXJlbmNlc0dldFBsdWdpbnNFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0K
IAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQoRXdrX1NldHRp
bmdzKiBzZXR0aW5ncywgaW50IHNpemUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
c2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0Rm9u
dFNpemUoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIHNpemUpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC0yODgsMTQgKzI3OCwxNCBAQCBpbnQgZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9udF9z
aXplX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgMCk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3Mt
PnByZWZlcmVuY2VzKCktPmRlZmF1bHRGb250U2l6ZSgpOworICAgIHJldHVybiBXS1ByZWZlcmVu
Y2VzR2V0RGVmYXVsdEZvbnRTaXplKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWlu
YV9Cb29sIGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0
aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVy
ZW5jZXNTZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBl
bmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMDQsNyArMjk0LDcgQEAgRWluYV9C
b29sIGV3a19zZXR0aW5nc19wcml2YXRlX2Jyb3dzaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5n
cyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCkBAIC0zMTIsNyArMzAyLDcgQEAgRWluYV9C
b29sIGV3a19zZXR0aW5nc190ZXh0X2F1dG9zaXppbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdz
KiBzZXR0aW5ncywgRWluYV8KICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGlu
Z3MtPnByZWZlcmVuY2VzKCktPnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChlbmFibGUpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCkBAIC0zMjQsMjEgKzMx
NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0b3NpemluZ19lbmFibGVkX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hXwogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X3RleHRfYXV0b3NpemluZ19lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdz
KQogewotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0gICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0KLSAgICByZXR1cm4gc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCktPnRleHRBdXRvc2l6aW5nRW5hYmxlZCgpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oc2V0dGluZ3MpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgorICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNl
cygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19zcGF0aWFsX25hdmlnYXRpb25fZW5h
YmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAg
IHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLT5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZW5h
YmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0z
NDcsNyArMzMwLDcgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19zcGF0aWFsX25hdmlnYXRpb25f
ZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW4KIHsKICAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKS0+c3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCk7CisgICAgcmV0
dXJuIFdLUHJlZmVyZW5jZXNHZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzKCkpOwogfQogCiB2b2lkIEV3a1NldHRpbmdzOjpzZXREZWZhdWx0VGV4dEVuY29k
aW5nTmFtZShjb25zdCBjaGFyKiBuYW1lKQpAQCAtMzU1LDcgKzMzOCw3IEBAIHZvaWQgRXdrU2V0
dGluZ3M6OnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAg
aWYgKG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWUgPT0gbmFtZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgcHJlZmVyZW5jZXMoKS0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoU3RyaW5nOjpm
cm9tVVRGOChuYW1lKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKHByZWZlcmVuY2VzKCksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG5hbWUpKTsK
ICAgICBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lID0gbmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgK
aW5kZXggYWUxMmJhOTY3MDRlYmQ4YTc0YWFkOTgxM2RlYzdmMWRlYTkxMmQwNy4uMzVkNzkwNjU3
NTUzOTYzOTZmNjk5ZTkyZDJkOTIwNTU0YWNkNTM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0yNyw2
ICsyNywxMCBAQAogI2lmbmRlZiBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19z
ZXR0aW5nc19wcml2YXRlX2gKIAorI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgorI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQcmVmZXJlbmNlczsKIH0KQEAgLTM3LDIxICs0MSwy
MCBAQCBjbGFzcyBFd2tWaWV3OwogICovCiBjbGFzcyBFd2tTZXR0aW5ncyB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgRXdrU2V0dGluZ3MoRXdrVmlldyogdmlld0ltcGwpCi0gICAgICAgIDogbV92
aWV3KHZpZXdJbXBsKQorICAgIGV4cGxpY2l0IEV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXMpCisgICAgICAgIDogbV9wcmVmZXJlbmNlcyhwcmVmZXJlbmNlcykKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3ZpZXcpOwotICAgICAgICBtX2RlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lID0gcHJlZmVyZW5jZXMoKS0+ZGVmYXVsdFRleHRFbmNvZGluZ05hbWUoKS51dGY4KCkuZGF0
YSgpOworICAgICAgICBBU1NFUlQocHJlZmVyZW5jZXMpOworICAgICAgICBtX2RlZmF1bHRUZXh0
RW5jb2RpbmdOYW1lID0gV0tQcmVmZXJlbmNlc0NvcHlEZWZhdWx0VGV4dEVuY29kaW5nTmFtZShw
cmVmZXJlbmNlcyk7CiAgICAgfQogCi0gICAgY29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyog
cHJlZmVyZW5jZXMoKSBjb25zdDsKLSAgICBXZWJLaXQ6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcygpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVy
biBtX3ByZWZlcmVuY2VzLmdldCgpOyB9CiAKICAgICBjb25zdCBjaGFyKiBkZWZhdWx0VGV4dEVu
Y29kaW5nTmFtZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUo
Y29uc3QgY2hhciopOwogCiBwcml2YXRlOgotICAgIEV3a1ZpZXcqIG1fdmlldzsKKyAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBtX3ByZWZlcmVuY2VzOwogICAgIFdLRWluYVNoYXJl
ZFN0cmluZyBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227632</attachid>
            <date>2014-03-24 02:30:03 -0700</date>
            <delta_ts>2014-03-24 03:09:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107820-20140324182940.patch</filename>
            <type>text/plain</type>
            <size>17593</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODQ1Y2E0YmUyZmZmNDg3
N2YxNGQxZjg2YjQxYmY1N2UwYTAyYWQ3YS4uZTdhYTBjYzJhMTc2YzAyMDc4OWJjMjdlNTMyZTcz
NDBmODUyYjNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE0LTAzLTI0ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IFVzZSBDIEFQSSBpbnNpZGUgZXdrX3NldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MjAKKworICAgICAgICBSZXZpZXdlZCBieSBHeXV5
b3VuZyBLaW0uCisKKyAgICAgICAgVXNlIEMgQVBJIGluc2lkZSBld2tfc2V0dGluZ3MgaW5zdGVh
ZCBvZiBhY2Nlc3NpbmcgZGlyZWN0bHkKKyAgICAgICAgaW50ZXJuYWwgQysrIGNsYXNzZXMsIHRv
IGF2b2lkIHZpb2xhdGluZyBBUEkgbGF5ZXJpbmcuCisKKyAgICAgICAgT3JpZ2luYWwtYXV0aG9y
OiBDaHJpc3RvcGhlIER1bWV6IDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpFd2tW
aWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwOgorICAg
ICAgICAoZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdr
X3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdz
X2phdmFzY3JpcHRfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2phdmFzY3Jp
cHRfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRv
bWF0aWNhbGx5X3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9t
YXRpY2FsbHlfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2Vu
YWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kZXZlbG9wZXJfZXh0cmFzX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJs
c19hbGxvd2VkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZmlsZV9hY2Nlc3NfZnJvbV9m
aWxlX3VybHNfYWxsb3dlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0
ZW5pbmdfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5p
bmdfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Ruc19wcmVmZXRjaGluZ19l
bmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZG5zX3ByZWZldGNoaW5nX2VuYWJs
ZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19lbmNvZGluZ19kZXRlY3Rvcl9lbmFibGVk
X3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5jb2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9n
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dp
ZHRoX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVu
dHNfd2lkdGhfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19vZmZsaW5lX3dlYl9hcHBsaWNh
dGlvbl9jYWNoZV9lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfb2ZmbGluZV93
ZWJfYXBwbGljYXRpb25fY2FjaGVfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdz
X3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3Nj
cmlwdHNfY2FuX29wZW5fd2luZG93c19nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvY2Fs
X3N0b3JhZ2VfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2xvY2FsX3N0b3Jh
Z2VfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9z
ZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3BsdWdpbnNfZW5hYmxlZF9nZXQpOgorICAgICAg
ICAoZXdrX3NldHRpbmdzX2RlZmF1bHRfZm9udF9zaXplX3NldCk6CisgICAgICAgIChld2tfc2V0
dGluZ3NfZGVmYXVsdF9mb250X3NpemVfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2
YXRlX2Jyb3dzaW5nX2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19wcml2YXRl
X2Jyb3dzaW5nX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc190ZXh0X2F1dG9z
aXppbmdfZW5hYmxlZF9zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX3RleHRfYXV0b3Npemlu
Z19lbmFibGVkX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3Nfc3BhdGlhbF9uYXZpZ2F0aW9u
X2VuYWJsZWRfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19zcGF0aWFsX25hdmlnYXRpb25f
ZW5hYmxlZF9nZXQpOgorICAgICAgICAoRXdrU2V0dGluZ3M6OnNldERlZmF1bHRUZXh0RW5jb2Rp
bmdOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0
ZS5oOgorICAgICAgICAoRXdrU2V0dGluZ3M6OkV3a1NldHRpbmdzKToKKyAgICAgICAgKEV3a1Nl
dHRpbmdzOjpwcmVmZXJlbmNlcyk6CisKIDIwMTQtMDMtMjMgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgYWxsIEVGTCB0eXBlZGVmcyBpbnRvIEVm
bFR5cGVkZWZzLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCmluZGV4IGRkZGY0MWUwMWIwODQ3OGM4YjE4ODU0M2JiNGUxMTZlOWE3NDBmZTEuLjNiOGIy
MzJkODU5YzM0YmNlNjE4ZmIwNDViM2JiZTNhNjRkNTUzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC0yODIsNyArMjgyLDcgQEAgRXdrVmll
dzo6RXdrVmlldyhXS1ZpZXdSZWYgdmlldywgRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAg
LCBtX3ZpYnJhdGlvbkNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFZpYnJhdGlvbkNsaWVudEVmbD4o
dGhpcykpCiAjZW5kaWYKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KHN0ZDo6bWFrZV91bmlxdWU8
RXdrQmFja0ZvcndhcmRMaXN0PihXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3Qod2tQYWdlKCkpKSkK
LSAgICAsIG1fc2V0dGluZ3Moc3RkOjptYWtlX3VuaXF1ZTxFd2tTZXR0aW5ncz4odGhpcykpCisg
ICAgLCBtX3NldHRpbmdzKHN0ZDo6bWFrZV91bmlxdWU8RXdrU2V0dGluZ3M+KFdLUGFnZUdyb3Vw
R2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrUGFnZSgpKSkpKQogICAgICwgbV91
c2VDdXN0b21DdXJzb3IoZmFsc2UpCiAgICAgLCBtX3VzZXJBZ2VudChXS0VpbmFTaGFyZWRTdHJp
bmcoQWRvcHRXSywgV0tQYWdlQ29weVVzZXJBZ2VudCh3a1BhZ2UoKSkpKQogICAgICwgbV9tb3Vz
ZUV2ZW50c0VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzLmNwcAppbmRleCAxZWRhNjc2MjgxMzFiMmZmNTk3NmM3MGI0OGQy
ZmUwMWZhMmM5MmFlLi5lNDdkZDQ0OTUwNzc5OWZiMzBlNjcwMjg0NzkzNzIzYjNmMmVjMTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5j
cHAKQEAgLTI4LDI3ICsyOCwxOSBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogCiAjaW5j
bHVkZSAiRXdrVmlldy5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLUHJl
ZmVyZW5jZXNSZWYuaCIKKyNpbmNsdWRlICJXS1N0cmluZy5oIgorI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzLmgiCiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxX
ZWJLaXQyL1dlYlBhZ2VHcm91cC5oPgotI2luY2x1ZGUgPFdlYktpdDIvV2ViUGFnZVByb3h5Lmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLWNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXMmIEV3a1NldHRpbmdzOjpwcmVmZXJlbmNlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmll
dy0+cGFnZSgpLT5wYWdlR3JvdXAoKS5wcmVmZXJlbmNlcygpOwotfQotCi1XZWJLaXQ6OldlYlBy
ZWZlcmVuY2VzJiBFd2tTZXR0aW5nczo6cHJlZmVyZW5jZXMoKQotewotICAgIHJldHVybiBtX3Zp
ZXctPnBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMoKTsKLX0KLQogRWluYV9Cb29sIGV3
a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3Ms
IEVpbmFfQm9vbCBlbmFibGUpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwotICAgIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CisgICAgV0tQ
cmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBl
bmFibGUpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2V0dGlu
Z3MpOwpAQCAtNjEsNyArNTMsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5f
ZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKIHsKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRp
bmdzLCBmYWxzZSk7Ci0gICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLmZ1bGxTY3Jl
ZW5FbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGdWxsU2NyZWVuRW5hYmxl
ZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzZXR0
aW5ncyk7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzIsNyArNjQsNyBAQCBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywg
RWluYV9Cb29sCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdz
LCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5zZXRKYXZhU2NyaXB0RW5h
YmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0
aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
ODEsMTQgKzczLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVk
X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLmphdmFTY3JpcHRFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVy
ZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAK
IEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5n
cy0+cHJlZmVyZW5jZXMoKS5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYXV0b21hdGljKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5w
cmVmZXJlbmNlcygpLCBhdXRvbWF0aWMpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05Nywx
NCArODksMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGlj
YWxseV9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW4KIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5n
cy0+cHJlZmVyZW5jZXMoKS5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKTsKKyAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZGV2ZWxvcGVyX2V4dHJhc19l
bmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkuc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFi
bGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHNldHRpbmdz
LT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTMs
MTQgKzEwNSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2RldmVsb3Blcl9leHRyYXNfZW5h
YmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncwogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKKyAgICByZXR1cm4g
V0tQcmVmZXJlbmNlc0dldERldmVsb3BlckV4dHJhc0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmls
ZV91cmxzX2FsbG93ZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFi
bGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQoc2V0dGluZ3MtPnByZWZlcmVuY2UoKSwgZW5hYmxlKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMTI5LDE0ICsxMjEsMTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19m
aWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX2dldChjb25zdCBFd2tfU2V0dGluZ3MK
IHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsK
IAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5hbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHNldHRpbmdzLT5wcmVmZXJlbmNlKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2ZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0
aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLnNl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTQ1LDE0ICsxMzcsMTQgQEAgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19mcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZ3MKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5mcmFtZUZsYXR0
ZW5pbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19kbnNfcHJlZmV0Y2hpbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5n
cywgRWluYV9Cb29sIGVuYWJsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLnNldERO
U1ByZWZldGNoaW5nRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRETlNQcmVm
ZXRjaGluZ0VuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2MSwxNCArMTUzLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfZG5zX3ByZWZldGNoaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGlu
Z3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkuZG5zUHJlZmV0Y2hpbmdF
bmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRETlNQcmVmZXRjaGluZ0VuYWJs
ZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2VuY29kaW5nX2RldGVjdG9yX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5zZXRVc2VzRW5j
b2RpbmdEZXRlY3RvcihlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRFbmNvZGluZ0RldGVj
dG9yRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMTc3LDcgKzE2OSw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5j
b2RpbmdfZGV0ZWN0b3JfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5nCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAK
LSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkudXNlc0VuY29kaW5nRGV0ZWN0b3Io
KTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEVuY29kaW5nRGV0ZWN0b3JFbmFibGVkKHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19kZWZh
dWx0X3RleHRfZW5jb2RpbmdfbmFtZV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgY29uc3Qg
Y2hhciogZW5jb2RpbmcpCkBAIC0yMDAsNyArMTkyLDcgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5n
c19wcmVmZXJyZWRfbWluaW11bV9jb250ZW50c193aWR0aF9zZXQoRXdrX1NldHRpbmdzICpzZXR0
aW4KIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNl
KTsKIAotICAgIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLnNldExheW91dEZhbGxiYWNrV2lkdGgo
d2lkdGgpOworICAgIHRvSW1wbChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSktPnNldExheW91dEZh
bGxiYWNrV2lkdGgod2lkdGgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMDksMTMgKzIw
MSwxNCBAQCB1bnNpZ25lZCBld2tfc2V0dGluZ3NfcHJlZmVycmVkX21pbmltdW1fY29udGVudHNf
d2lkdGhfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyAqcwogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5w
cmVmZXJlbmNlcygpLmxheW91dEZhbGxiYWNrV2lkdGgoKTsKKyAgICByZXR1cm4gdG9JbXBsKHNl
dHRpbmdzLT5wcmVmZXJlbmNlcygpKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOwogfQogCiBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9uX2NhY2hlX2VuYWJsZWRf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGlu
Z3MtPnByZWZlcmVuY2VzKCkuc2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVu
YWJsZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0yMjQsMTMgKzIxNywxNCBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX29mZmxp
bmVfd2ViX2FwcGxpY2F0aW9uX2NhY2hlX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLm9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZCgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9C
b29sIGV3a19zZXR0aW5nc19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KEV3a19TZXR0aW5n
cyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7Ci0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCkuc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShlbmFibGUpOworCisg
ICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHko
c2V0dGluZ3MtPnByZWZlcmVuY2VzKCksIGVuYWJsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTIzOSwxNCArMjMzLDE0IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfc2NyaXB0c19jYW5f
b3Blbl93aW5kb3dzX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1
cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSgpOworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfbG9jYWxfc3RvcmFnZV9lbmFibGVkX3NldChFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCkuc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRM
b2NhbFN0b3JhZ2VFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yNTUsMTQgKzI0OSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2xvY2FsX3N0b3JhZ2VfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5ncykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZh
bHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5sb2NhbFN0b3JhZ2VF
bmFibGVkKCk7CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2NhbFN0b3JhZ2VFbmFibGVk
KHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19w
bHVnaW5zX2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFi
bGUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5zZXRQbHVnaW5zRW5hYmxlZChlbmFi
bGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQbHVnaW5zRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKSwgZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjcxLDE0ICsyNjUs
MTQgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wbHVnaW5zX2VuYWJsZWRfZ2V0KGNvbnN0IEV3
a19TZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2Vz
KCkucGx1Z2luc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldFBsdWdpbnNF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0
aW5nc19kZWZhdWx0X2ZvbnRfc2l6ZV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgaW50IHNp
emUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5zZXREZWZhdWx0Rm9udFNpemUoc2l6
ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldERlZmF1bHRGb250U2l6ZShzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKSwgc2l6ZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI4NywxNCArMjgxLDE0
IEBAIGludCBld2tfc2V0dGluZ3NfZGVmYXVsdF9mb250X3NpemVfZ2V0KGNvbnN0IEV3a19TZXR0
aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNl
dHRpbmdzLCAwKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5kZWZhdWx0
Rm9udFNpemUoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldERlZmF1bHRGb250U2l6ZShz
ZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfcHJp
dmF0ZV9icm93c2luZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jv
b2wgZW5hYmxlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5n
cywgZmFsc2UpOwogCi0gICAgc2V0dGluZ3MtPnByZWZlcmVuY2VzKCkuc2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZChlbmFibGUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0zMDMsNyArMjk3LDcgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19wcml2YXRl
X2Jyb3dzaW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAg
IHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7
CisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHNldHRp
bmdzLT5wcmVmZXJlbmNlcygpKTsKIH0KIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc190ZXh0X2F1
dG9zaXppbmdfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVu
YWJsZSkKQEAgLTMxMSw3ICszMDUsNyBAQCBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX3RleHRfYXV0
b3NpemluZ19lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hXwogI2lmIEVO
QUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS5zZXRUZXh0
QXV0b3NpemluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0VGV4dEF1dG9z
aXppbmdFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0
dXJuIHRydWU7CiAjZWxzZQpAQCAtMzI2LDcgKzMyMCw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfdGV4dF9hdXRvc2l6aW5nX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGlu
Z3MpCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJl
ZmVyZW5jZXMoKS50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldFRleHRBdXRvc2l6aW5nRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShzZXR0aW5ncyk7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MzM3LDcgKzMzMSw3IEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3Nfc3BhdGlhbF9uYXZpZ2F0aW9u
X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CiAKLSAgICBzZXR0aW5ncy0+
cHJlZmVyZW5jZXMoKS5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZW5hYmxlKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHNldHRpbmdzLT5wcmVmZXJl
bmNlcygpLCBlbmFibGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNDYsNyArMzQwLDcg
QEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19zcGF0aWFsX25hdmlnYXRpb25fZW5hYmxlZF9nZXQo
Y29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW4KIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMoKS5zcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKTsKKyAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKSk7
CiB9CiAKIHZvaWQgRXdrU2V0dGluZ3M6OnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0
IGNoYXIqIG5hbWUpCkBAIC0zNTQsNyArMzQ4LDcgQEAgdm9pZCBFd2tTZXR0aW5nczo6c2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgY2hhciogbmFtZSkKICAgICBpZiAobV9kZWZhdWx0
VGV4dEVuY29kaW5nTmFtZSA9PSBuYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmVmZXJl
bmNlcygpLnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKFN0cmluZzo6ZnJvbVVURjgobmFtZSkp
OworICAgIFdLUHJlZmVyZW5jZXNTZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShwcmVmZXJlbmNl
cygpLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhuYW1lKSk7CiAgICAgbV9kZWZhdWx0
VGV4dEVuY29kaW5nTmFtZSA9IG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCmluZGV4IDRkYjUxNWVj
ZGEzODc1ZTZmNjZkZmM5Y2Y3OTE0YTBjMGNmMjU0MjEuLjBkZTE5OWRiODc4NmRhZGU2Y2UzZDU1
Mjg0ZjNkNjhlZjk0OTNkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaApAQCAtMjcsNyArMjcsOSBAQAogI2lm
bmRlZiBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19zZXR0aW5nc19wcml2YXRl
X2gKIAotI2luY2x1ZGUgPFdlYktpdDIvV2ViUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlICJXS0Vp
bmFTaGFyZWRTdHJpbmcuaCIKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgPFdl
YktpdDIvV0tCYXNlLmg+CiAKIGNsYXNzIEV3a1ZpZXc7CiAvKioKQEAgLTM2LDIxICszOCwyMCBA
QCBjbGFzcyBFd2tWaWV3OwogICovCiBjbGFzcyBFd2tTZXR0aW5ncyB7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgRXdrU2V0dGluZ3MoRXdrVmlldyogdmlld0ltcGwpCi0gICAgICAgIDogbV92aWV3
KHZpZXdJbXBsKQorICAgIGV4cGxpY2l0IEV3a1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMpCisgICAgICAgIDogbV9wcmVmZXJlbmNlcyhwcmVmZXJlbmNlcykKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZpZXcpOwotICAgICAgICBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1l
ID0gcHJlZmVyZW5jZXMoKS5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgpLnV0ZjgoKS5kYXRhKCk7
CisgICAgICAgIEFTU0VSVChwcmVmZXJlbmNlcyk7CisgICAgICAgIG1fZGVmYXVsdFRleHRFbmNv
ZGluZ05hbWUgPSBXS1ByZWZlcmVuY2VzQ29weURlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKHByZWZl
cmVuY2VzKTsKICAgICB9CiAKLSAgICBjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzJiBwcmVm
ZXJlbmNlcygpIGNvbnN0OwotICAgIFdlYktpdDo6V2ViUHJlZmVyZW5jZXMmIHByZWZlcmVuY2Vz
KCk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIG1f
cHJlZmVyZW5jZXMuZ2V0KCk7IH0KIAogICAgIGNvbnN0IGNoYXIqIGRlZmF1bHRUZXh0RW5jb2Rp
bmdOYW1lKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25z
dCBjaGFyKik7CiAKIHByaXZhdGU6Ci0gICAgRXdrVmlldyogbV92aWV3OworICAgIFdLUmV0YWlu
UHRyPFdLUHJlZmVyZW5jZXNSZWY+IG1fcHJlZmVyZW5jZXM7CiAgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>