<?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>74179</bug_id>
          
          <creation_ts>2011-12-09 06:25:12 -0800</creation_ts>
          <short_desc>[EFL] Context menu restore for WebKit-EFL</short_desc>
          <delta_ts>2012-09-20 01:29:37 -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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>74182</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michal Pakula vel Rutka">mpakulavelrutka</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>518234</commentid>
    <comment_count>0</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-09 06:25:12 -0800</bug_when>
    <thetext>Adds context menu support for EFL port using CROSS_PLATFORM_CONTEXT_MENUS approach. As there are no native widgets in EFL I used Eina_List for NativeMenu (wrapped in a structure) and Ewk_Context_Menu_Item as NativeItem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518237</commentid>
    <comment_count>1</comment_count>
      <attachid>118569</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-09 06:40:06 -0800</bug_when>
    <thetext>Created attachment 118569
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518265</commentid>
    <comment_count>2</comment_count>
      <attachid>118578</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-09 07:54:18 -0800</bug_when>
    <thetext>Created attachment 118578
ChangeLog fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518270</commentid>
    <comment_count>3</comment_count>
      <attachid>118579</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-09 08:07:32 -0800</bug_when>
    <thetext>Created attachment 118579
ChangeLog fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518272</commentid>
    <comment_count>4</comment_count>
      <attachid>118580</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-09 08:10:26 -0800</bug_when>
    <thetext>Created attachment 118580
new files added to previous patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524386</commentid>
    <comment_count>5</comment_count>
      <attachid>118580</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-19 19:33:40 -0800</bug_when>
    <thetext>Comment on attachment 118580
new files added to previous patch

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

Personally, I like this patch. EFL port needs context menu so far. :-)

&gt; Source/WebKit/efl/ewk/ewk_private.h:170
&gt; +void ewk_context_menu_item_append(Ewk_Context_Menu_Core* o, const WebCore::ContextMenuItem&amp; core);

We don&apos;t use efl variable name style in internal functions. Change o with menu or coreMenu.

&gt; Source/WebKit/efl/ewk/ewk_private.h:173
&gt; +void ewk_context_menu_core_vector_get(Ewk_Context_Menu_Core* o, Vector&lt;Ewk_Context_Menu_Item*&gt;&amp; itemsVector);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524516</commentid>
    <comment_count>6</comment_count>
      <attachid>120004</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-20 03:44:18 -0800</bug_when>
    <thetext>Created attachment 120004
variable style fixes

Fixed internal functions variables names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525061</commentid>
    <comment_count>7</comment_count>
      <attachid>120004</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-20 20:02:27 -0800</bug_when>
    <thetext>Comment on attachment 120004
variable style fixes

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

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:318
&gt; +void ewk_context_menu_core_vector_get(Ewk_Context_Menu_Core* coreMenu, Vector&lt;Ewk_Context_Menu_Item*&gt;&amp; itemsVector)

I&apos;m not sure if *vector* name is good. Is it better to use ewk_context_menu_cores_get?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526168</commentid>
    <comment_count>8</comment_count>
      <attachid>120004</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-22 03:54:48 -0800</bug_when>
    <thetext>Comment on attachment 120004
variable style fixes

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

&gt;&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:318
&gt;&gt; +void ewk_context_menu_core_vector_get(Ewk_Context_Menu_Core* coreMenu, Vector&lt;Ewk_Context_Menu_Item*&gt;&amp; itemsVector)
&gt; 
&gt; I&apos;m not sure if *vector* name is good. Is it better to use ewk_context_menu_cores_get?

how about list ewk_context_menu_core_items_get?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526178</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-22 04:24:43 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 120004 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120004&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:318
&gt; &gt;&gt; +void ewk_context_menu_core_vector_get(Ewk_Context_Menu_Core* coreMenu, Vector&lt;Ewk_Context_Menu_Item*&gt;&amp; itemsVector)
&gt; &gt; 
&gt; &gt; I&apos;m not sure if *vector* name is good. Is it better to use ewk_context_menu_cores_get?
&gt; 
&gt; how about list ewk_context_menu_core_items_get?

Looks better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526782</commentid>
    <comment_count>10</comment_count>
      <attachid>120444</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-23 02:14:15 -0800</bug_when>
    <thetext>Created attachment 120444
change function name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526787</commentid>
    <comment_count>11</comment_count>
      <attachid>120444</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-23 02:31:53 -0800</bug_when>
    <thetext>Comment on attachment 120444
change function name

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

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:323
&gt; +    Eina_List* l;

Why don&apos;t we use more clear name instead of *l* ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526790</commentid>
    <comment_count>12</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-23 02:42:17 -0800</bug_when>
    <thetext>OK, I will change it to listIterator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526793</commentid>
    <comment_count>13</comment_count>
      <attachid>120448</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-23 02:50:04 -0800</bug_when>
    <thetext>Created attachment 120448
change list variable name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527094</commentid>
    <comment_count>14</comment_count>
      <attachid>120448</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-12-25 18:51:31 -0800</bug_when>
    <thetext>Comment on attachment 120448
change list variable name

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

&gt; Source/JavaScriptCore/wtf/Platform.h:1078
&gt; +#if PLATFORM(WIN) || PLATFORM(EFL)

Almost good for me.

could you remove -DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1 from Source/WebCore/PlatformEfl.cmake ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527173</commentid>
    <comment_count>15</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-26 02:34:03 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 120448 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120448&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/Platform.h:1078
&gt; &gt; +#if PLATFORM(WIN) || PLATFORM(EFL)
&gt; 
&gt; Almost good for me.
&gt; 
&gt; could you remove -DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1 from Source/WebCore/PlatformEfl.cmake ?

EFL WK1 is enabling CROSS_PLATFORM_CONTEXT_MENU. But, EFL WK2 is not using CROSS_PLATFORM_MENU. As discussed in private channel, Michal will support CROSS_PLATFORM_CONTEXT_MENU on EFL WebKit2.

Why don&apos;t we disable CROSS_PLATFORM_CONTEXT_MENU when we build EFL WebKit2 until Michal fix it ?  

If CORSS_PLATFORM_CONTEXT_MENUS is turned off, I remember there were build errors during the WebKit EFL port building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527683</commentid>
    <comment_count>16</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-28 08:47:01 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 120448 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120448&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/Platform.h:1078
&gt; &gt; +#if PLATFORM(WIN) || PLATFORM(EFL)
&gt; 
&gt; Almost good for me.
&gt; 
&gt; could you remove -DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1 from Source/WebCore/PlatformEfl.cmake ?

OK, done, Platform.h definition is enough.

(In reply to comment #15)
&gt; EFL WK1 is enabling CROSS_PLATFORM_CONTEXT_MENU. But, EFL WK2 is not using CROSS_PLATFORM_MENU. As discussed in private channel, Michal will support CROSS_PLATFORM_CONTEXT_MENU on EFL WebKit2.
&gt; 
&gt; Why don&apos;t we disable CROSS_PLATFORM_CONTEXT_MENU when we build EFL WebKit2 until Michal fix it ?  
&gt; 
&gt; If CORSS_PLATFORM_CONTEXT_MENUS is turned off, I remember there were build errors during the WebKit EFL port building.

Actually from WebKit2 in EFL point there is no or very little difference in WebKit2 implementation between CROSS and non-CROSS_PLATFORM_CONTEXT_MENUS, so switching to CROSS_PLATFORM_CONTEXT_MENUS=on will require only a minor patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527684</commentid>
    <comment_count>17</comment_count>
      <attachid>120677</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-28 08:48:33 -0800</bug_when>
    <thetext>Created attachment 120677
removed definition from PlatformEfl.cmake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527847</commentid>
    <comment_count>18</comment_count>
      <attachid>120677</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-28 22:07:29 -0800</bug_when>
    <thetext>Comment on attachment 120677
removed definition from PlatformEfl.cmake

Ok, LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581528</commentid>
    <comment_count>19</comment_count>
      <attachid>120677</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-03-18 17:19:10 -0700</bug_when>
    <thetext>Comment on attachment 120677
removed definition from PlatformEfl.cmake

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

&gt; Source/WebCore/platform/ContextMenuItem.h:52
&gt; +#elif PLATFORM(EFL)
&gt; +#include &quot;ewk_contextmenu.h&quot;

WebKit2 does not use ewk_contextmenu.h

How do you think finding better way to use in both webkit and webkit2?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581830</commentid>
    <comment_count>20</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-03-19 08:38:44 -0700</bug_when>
    <thetext>yes, you are right, I need to rebase this patch and I will think of this problem bearing in mind WK2...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582473</commentid>
    <comment_count>21</comment_count>
      <attachid>120677</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-03-19 17:00:18 -0700</bug_when>
    <thetext>Comment on attachment 120677
removed definition from PlatformEfl.cmake

Clear flags because of above comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595433</commentid>
    <comment_count>22</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-04 05:14:53 -0700</bug_when>
    <thetext>In that case when EFL WebKit2 is using non-cross platform context menus I changed the patch so it will use &quot;standard&quot; context menus, with Ewk_Context_Menu in Ewk_View_Private_Data. EWebLauncher patch will be updated soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595436</commentid>
    <comment_count>23</comment_count>
      <attachid>135564</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-04 05:18:13 -0700</bug_when>
    <thetext>Created attachment 135564
new approach not using cross platform context menus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597131</commentid>
    <comment_count>24</comment_count>
      <attachid>135564</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-05 19:17:17 -0700</bug_when>
    <thetext>Comment on attachment 135564
new approach not using cross platform context menus

Does it make sense to enable context menus even if the client implementation is empty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597253</commentid>
    <comment_count>25</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-06 01:27:57 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 135564 [details])
&gt; Does it make sense to enable context menus even if the client implementation is empty?

Unfortunately ContextMenuClientEfl have to be registered to pageClients in Page.h if CONTEXT_MENUS flag is enabled. Also it is used by ContextMenuController - there are virtual methods called on ContextMenuClient m_client, and they have to be implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607579</commentid>
    <comment_count>26</comment_count>
      <attachid>138317</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-23 03:14:48 -0700</bug_when>
    <thetext>Created attachment 138317
rebased patch

the patch needed to be rebased, plus some minor fixes added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607583</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 03:17:46 -0700</bug_when>
    <thetext>Attachment 138317 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u...&quot; exit_code: 1
Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h:46:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607585</commentid>
    <comment_count>28</comment_count>
      <attachid>138319</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-23 03:26:18 -0700</bug_when>
    <thetext>Created attachment 138319
rebased patch

style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620616</commentid>
    <comment_count>29</comment_count>
      <attachid>141178</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-10 09:03:20 -0700</bug_when>
    <thetext>Created attachment 141178
rebased patch

rebased again to match new PlatformMenuDescription after https://bugs.webkit.org/show_bug.cgi?id=84136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625422</commentid>
    <comment_count>30</comment_count>
      <attachid>142259</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-16 07:40:35 -0700</bug_when>
    <thetext>Created attachment 142259
rebased after ewk_private changes

Rebase after splitting ewk_private into separate header files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626069</commentid>
    <comment_count>31</comment_count>
      <attachid>142259</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-16 17:42:36 -0700</bug_when>
    <thetext>Comment on attachment 142259
rebased after ewk_private changes

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

Almost make sense except for my comments.

&gt; ChangeLog:11
&gt; +        No new tests.

You have to mention why this change doesn&apos;t need to have test cases, Or, if this modification doesn&apos;t need to have test case, please remove this line.

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests.

ditto.

&gt; Source/WebKit/ChangeLog:11
&gt; +        No new tests.

ditto.

&gt; Source/WebKit/efl/ChangeLog:11
&gt; +        No new tests.

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631419</commentid>
    <comment_count>32</comment_count>
      <attachid>142259</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-23 02:24:36 -0700</bug_when>
    <thetext>Comment on attachment 142259
rebased after ewk_private changes

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

&gt;&gt; ChangeLog:11
&gt;&gt; +        No new tests.
&gt; 
&gt; You have to mention why this change doesn&apos;t need to have test cases, Or, if this modification doesn&apos;t need to have test case, please remove this line.

It&apos;s not a new feature, just a new way of implementing, so no new test will be needed. I will remove this lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631420</commentid>
    <comment_count>33</comment_count>
      <attachid>143508</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-23 02:26:40 -0700</bug_when>
    <thetext>Created attachment 143508
change log fixes

new patch with fixed changelogs according to Gyuyoung comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632324</commentid>
    <comment_count>34</comment_count>
      <attachid>143508</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-23 19:29:46 -0700</bug_when>
    <thetext>Comment on attachment 143508
change log fixes

Looks fine now. By the way, are there any test cases covered by this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632540</commentid>
    <comment_count>35</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-24 02:17:45 -0700</bug_when>
    <thetext>There are some test cases which requires isContextClick to be implemented, which requires this one to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710425</commentid>
    <comment_count>36</comment_count>
      <attachid>143508</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-02 22:39:20 -0700</bug_when>
    <thetext>Comment on attachment 143508
change log fixes

Please rebase this patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710921</commentid>
    <comment_count>37</comment_count>
      <attachid>161997</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-09-04 02:45:32 -0700</bug_when>
    <thetext>Created attachment 161997
rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710932</commentid>
    <comment_count>38</comment_count>
      <attachid>161997</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-09-04 03:23:23 -0700</bug_when>
    <thetext>Comment on attachment 161997
rebased patch

LGTM. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711045</commentid>
    <comment_count>39</comment_count>
      <attachid>161997</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 06:12:45 -0700</bug_when>
    <thetext>Comment on attachment 161997
rebased patch

Clearing flags on attachment: 161997

Committed r127462: &lt;http://trac.webkit.org/changeset/127462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711046</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 06:12:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118569</attachid>
            <date>2011-12-09 06:40:06 -0800</date>
            <delta_ts>2011-12-09 07:54:18 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed_patch.diff</filename>
            <type>text/plain</type>
            <size>26389</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1MTJmNWZjLi42ZWE2NTYz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgQWRk
cyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1f
Q09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3
aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVz
ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTA5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFi
b3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNj
ZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggZjljZTQwNi4uOGI2YWUzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAg
ICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1Nf
UExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5v
IG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVy
ZXMgYXJlIHVzZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDogRW5hYmxlIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVO
VVMgZm9yIEVGTCBwbGF0Zm9ybS4KKwogMjAxMS0xMi0wOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHJlbG9hZGluZyBzdG9yYWdlIHBvaW50ZXIgZm9y
IGluZGV4ZWQgcHJvcGVydGllcyB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggNzJiZjIzYi4uMzM2NjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtMTA3Miw3ICsxMDcyLDcgQEAKICNkZWZpbmUgV1RGX1VTRV9QTEFURk9S
TV9TVFJBVEVHSUVTIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JN
KFdJTikgfHwgUExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NP
TlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Mzk3MmMxLi42NzBkMWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2
ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0
IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0MTc5CisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZM
IHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2Fj
aC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9tZW51
CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgor
CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnUuaDogQ2hhbmdlZCBOYXRpdmVNZW51IGRl
ZmluaXRpb24gdG8gRXdrX0NvbnRleHRfTWVudV9Db3JlKi4KKyAgICAgICAgKiBwbGF0Zm9ybS9D
b250ZXh0TWVudUl0ZW0uaDogQ2hhbmdlZCBOYXRpdmVJdGVtIGRlZmluaXRpb24gdG8gRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBhbmQgY2hhbmdlZCBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnU6OkNvbnRleHRNZW51KTogQ2hhbmdlIHBhcmFtZXRlciB0byBtYXRjaCBu
ZXcgTmF0aXZlTWVudSBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6
OmdldENvbnRleHRNZW51SXRlbXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1zKTogSW1wbGVtZW50ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6bmF0aXZlTWVudSk6IENoYW5nZWQgcmV0dXJuIHZh
bHVlIHRvIG1hdGNoIG5ldyBOYXRpdmVNZW51IGRlZmluaXRpb24uCisgICAgICAgICogcGxhdGZv
cm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbSk6IEltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtOjpuYXRpdmVNZW51SXRlbSk6IENoYW5nZWQgcmV0dXJuIHZhbHVl
IHRvIG1hdGNoIG5ldyBOYXRpdmVJdGVtIGRlZmluaXRpb24uCisKIDIwMTEtMTItMDkgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBp
bnNwZWN0b3IgdXRpbGl0aWVzIHN5bnRheCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4
dE1lbnUuaAppbmRleCBjYmRmNTNhLi40YTc3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51LmgKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBM
QVRGT1JNKFdJTikKICAgICAgICAgdHlwZWRlZiBITUVOVSBOYXRpdmVNZW51OwogI2VsaWYgUExB
VEZPUk0oRUZMKQotICAgICAgICB0eXBlZGVmIHZvaWQqIE5hdGl2ZU1lbnU7CisgICAgICAgIHR5
cGVkZWYgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBOYXRpdmVNZW51OwogI2VuZGlmCiAgICAgICAg
IGV4cGxpY2l0IENvbnRleHRNZW51KE5hdGl2ZU1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGUzNjkzNDguLmM1MzIzMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC00OCw2ICs0OCw4IEBAIHR5cGVk
ZWYgc3RydWN0IF9HdGtBY3Rpb24gR3RrQWN0aW9uOwogI2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxp
ZiBQTEFURk9STShXWCkKIGNsYXNzIHd4TWVudUl0ZW07CisjZWxpZiBQTEFURk9STShFRkwpCisj
aW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMjUzLDEwICsyNTUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JN
KFdJTikKICAgICAgICAgdHlwZWRlZiBNRU5VSVRFTUlORk8gTmF0aXZlSXRlbTsKICNlbGlmIFBM
QVRGT1JNKEVGTCkKLSAgICAgICAgdHlwZWRlZiB2b2lkKiBOYXRpdmVJdGVtOworICAgICAgICB0
eXBlZGVmIEV3a19Db250ZXh0X01lbnVfSXRlbSogTmF0aXZlSXRlbTsKICNlbmRpZgogICAgICAg
ICBDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wg
ZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgc3Vi
TWVudUl0ZW1zKTsKKyNpZiBQTEFURk9STShFRkwpCisgICAgICAgIGV4cGxpY2l0IENvbnRleHRN
ZW51SXRlbShOYXRpdmVJdGVtKTsKKyNlbHNlCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51
SXRlbShjb25zdCBOYXRpdmVJdGVtJik7CisjZW5kaWYKIAogICAgICAgICAvLyBPbiBXaW5kb3dz
LCB0aGUgdGl0bGUgKGR3VHlwZURhdGEgb2YgdGhlIE1FTlVJVEVNSU5GTykgaXMgbm90IHNldCBp
biB0aGlzIGZ1bmN0aW9uLiBDYWxsZXJzIGNhbiBzZXQgdGhlIHRpdGxlIHRoZW1zZWx2ZXMsCiAg
ICAgICAgIC8vIGFuZCBoYW5kbGUgdGhlIGxpZmV0aW1lIG9mIHRoZSB0aXRsZSwgaWYgdGhleSBu
ZWVkIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRN
ZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5j
cHAKaW5kZXggNDZhMjBkYy4uNTY5MDhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCkBAIC0yNCwyNyArMjQsMzcgQEAKIAogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIK
KyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9N
RU5VUykKLUNvbnRleHRNZW51OjpDb250ZXh0TWVudSh2b2lkKiBtZW51KQorQ29udGV4dE1lbnU6
OkNvbnRleHRNZW51KEV3a19Db250ZXh0X01lbnVfQ29yZSogbWVudSkKIHsKICAgICBnZXRDb250
ZXh0TWVudUl0ZW1zKG1lbnUsIG1faXRlbXMpOwogfQogCi12b2lkIENvbnRleHRNZW51OjpnZXRD
b250ZXh0TWVudUl0ZW1zKHZvaWQqIG1lbnUsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVt
cykKK3ZvaWQgQ29udGV4dE1lbnU6OmdldENvbnRleHRNZW51SXRlbXMoRXdrX0NvbnRleHRfTWVu
dV9Db3JlKiBtZW51LCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBpdGVtcy5jbGVhcigpOworICAgIFZlY3RvcjxFd2tfQ29udGV4
dF9NZW51X0l0ZW0qPiBuYXRpdmVJdGVtczsKKyAgICBld2tfY29udGV4dF9tZW51X2NvcmVfdmVj
dG9yX2dldChtZW51LCBuYXRpdmVJdGVtcyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG5hdGl2ZUl0ZW1zLnNpemUoKTsgKytpKQorICAgICAgICBpdGVtcy5hcHBlbmQoQ29udGV4dE1l
bnVJdGVtKG5hdGl2ZUl0ZW1zW2ldKSk7CiB9CiAKLXZvaWQqIENvbnRleHRNZW51OjpjcmVhdGVO
YXRpdmVNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykK
K0V3a19Db250ZXh0X01lbnVfQ29yZSogQ29udGV4dE1lbnU6OmNyZWF0ZU5hdGl2ZU1lbnVGcm9t
SXRlbXMoY29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbT4mIGl0ZW1zKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBj
b3JlTWVudSA9IGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcoKTsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVf
aXRlbV9hcHBlbmQoY29yZU1lbnUsIGl0ZW1zW2ldKTsKKyAgICByZXR1cm4gY29yZU1lbnU7CiB9
CiAKLXZvaWQqIENvbnRleHRNZW51OjpuYXRpdmVNZW51KCkgY29uc3QKK0V3a19Db250ZXh0X01l
bnVfQ29yZSogQ29udGV4dE1lbnU6Om5hdGl2ZU1lbnUoKSBjb25zdAogewogICAgIHJldHVybiBj
cmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1zKG1faXRlbXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRleCA0MjVjNmE2Li5m
YTNkNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1l
bnVJdGVtRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1l
bnVJdGVtRWZsLmNwcApAQCAtMzEsMTEgKzMxLDIyIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJ
dGVtLmgiCiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgImV3a19jb250
ZXh0bWVudS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmIFVTRShDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTKQotdm9pZCogQ29udGV4
dE1lbnVJdGVtOjpuYXRpdmVNZW51SXRlbSgpIGNvbnN0CitDb250ZXh0TWVudUl0ZW06OkNvbnRl
eHRNZW51SXRlbShFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgbV90eXBlID0g
c3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVJdGVtVHlwZT4oZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5
cGVfZ2V0KGl0ZW0pKTsKKyAgICBtX2FjdGlvbiA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51QWN0
aW9uPihld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX2dldChpdGVtKSk7CisgICAgbV90aXRs
ZSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisgICAgbV9lbmFibGVk
ID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KGl0ZW0pOworICAgIG1fY2hlY2tl
ZCA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldChpdGVtKTsKK30KKworRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBDb250ZXh0TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKCkgY29uc3QK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFr
ZUxpc3RzRWZsLnR4dAppbmRleCBjNWVmNjU2Li41ZjU3OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFr
ZUxpc3RzRWZsLnR4dApAQCAtNjUsNiArNjUsNyBAQCBFTkRJRiAoKQogTElTVChBUFBFTkQgV2Vi
S2l0X1NPVVJDRVMKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorICAgIGVmbC9X
ZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBw
b3J0L0RldmljZU1vdGlvbkNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJh
Z0NsaWVudEVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBmNDM1MTA1Li40MDlkMTJiIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWC
YSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250
ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3Ig
RUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHBy
b2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9t
ZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogQWRkZWQgQ29u
dGV4dE1lbnVDbGllbnRFZmwuY3BwIHRvIHNvdXJjZXMgbGlzdC4KKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHA6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Q29udGV4dE1lbnVDbGllbnRFZmwp
OiBBZGRlZCBhbmQgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNs
aWVudEVmbDo6Y29udGV4dE1lbnVEZXN0cm95ZWQpOiBBZGRlZCBhbmQgaW1wbGVtZW50ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y3VzdG9taXplTWVudSk6IElt
cGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNsaWVudEVmbDo6ZG93bmxvYWRVUkwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q2xpZW50RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzcGVhayk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmlzU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKTog
QWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaDog
UmVzdG9yZSB0aGUgZmlsZS4KKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDogQWRk
ZWQgX0V3a19Db250ZXh0X01lbnVfQ29yZSBhcyBhIHdyYXAgZm9yIEVpbmFfTGlzdC4KKyAgICAg
ICAgKGV3a19jb250ZXh0X21lbnVfdW5yZWYpOiBVcGRhdGVkIEVpbmFfTGlzdCBmcmVlaW5nLgor
ICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KTogVXBkYXRlZCBFaW5hX0xp
c3QgcmV0dXJuLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9uZXcpOiBBZGRlZCBFd2tfQ29u
dGV4dF9NZW51X0NvcmUgYXMgcGFyYW1ldGVyLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9p
dGVtX2FwcGVuZCk6IENoYW5nZWQgcGFyZW1ldGVyIGZyb20gRXdrX0NvbnRleHRfTWVudSB0byBF
d2tfQ29udGV4dF9NZW51X0NvcmUuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X3Nob3cpOgor
ICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9jb3JlX3ZlY3Rvcl9nZXQpOiBBZGRlZC4KKyAgICAg
ICAgKGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcpOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdr
X2NvbnRleHRtZW51Lmg6IEFkZGVkIG5ldyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb24gb2YgRXdr
X0NvbnRleHRfTWVudV9Db3JlCisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IEFkZGVkIGZ1
bmN0aW9uIGRlZmluaXRpb24uCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KF9ld2tfdmlld19wcml2X25ldyk6IEFkZGVkIGNvbnRleHRNZW51Q2xpZW50IGluaXRpYWxpc2F0
aW9uLgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOiBDaGFu
Z2VkIGNvbmRpdGlvbi4KKwogMjAxMS0xMi0wNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gSW50cm9kdWNlIEFzc2VydE1hdGNoaW5nRW51bXMu
Y3BwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4
dE1lbnVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29u
dGV4dE1lbnVDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljg0YWRjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDExIFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Q29udGV4dE1lbnVDbGllbnRFZmwuaCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29udGV4dE1l
bnVDbGllbnRFZmw6OkNvbnRleHRNZW51Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQorICAg
IDogbV92aWV3KHZpZXcpCisgICAgLCBtX25hdGl2ZU1lbnUoMCkKK3sKK30KKwordm9pZCBDb250
ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVEZXN0cm95ZWQoKQoreworICAgIGlmIChtX25h
dGl2ZU1lbnUpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShtX25hdGl2ZU1lbnUpOwor
ICAgIGRlbGV0ZSB0aGlzOworfQorCitQYXNzT3duUHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVu
dUNsaWVudEVmbDo6Y3VzdG9taXplTWVudShQYXNzT3duUHRyPENvbnRleHRNZW51PiBjb250ZXh0
TWVudSkKK3sKKyAgICBpZiAobV9uYXRpdmVNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51
X2ZyZWUobV9uYXRpdmVNZW51KTsKKworICAgIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1l
bnUgPSBjb250ZXh0TWVudS0+bmF0aXZlTWVudSgpOworICAgIG1fbmF0aXZlTWVudSA9IGV3a19j
b250ZXh0X21lbnVfbmV3KG1fdmlldywgY29yZU1lbnUsIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1f
dmlldyktPmNvbnRleHRNZW51Q29udHJvbGxlcigpKTsKKyAgICBld2tfY29udGV4dF9tZW51X3No
b3cobV9uYXRpdmVNZW51KTsKKyAgICBPd25QdHI8Q29udGV4dE1lbnU+IGN1c3RvbWl6ZWRNZW51
ID0gYWRvcHRQdHIobmV3IENvbnRleHRNZW51KGNvcmVNZW51KSk7CisKKyAgICByZXR1cm4gY3Vz
dG9taXplZE1lbnUucmVsZWFzZSgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0sIGNvbnN0IENvbnRl
eHRNZW51KiBwYXJlbnRNZW51KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
Q29udGV4dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcElu
RGljdGlvbmFyeShGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBD
b250ZXh0TWVudUNsaWVudEVmbDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitib29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBD
b250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNv
bnN0IEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5o
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGU0NTQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGll
bnRFZmwuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVk
IHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDb250ZXh0TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xp
ZW50RWZsX2gKKworI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIENvbnRleHRNZW51OworCitjbGFzcyBDb250ZXh0TWVudUNsaWVudEVm
bCA6IHB1YmxpYyBDb250ZXh0TWVudUNsaWVudCB7CitwdWJsaWM6CisgICAgQ29udGV4dE1lbnVD
bGllbnRFZmwoRXZhc19PYmplY3QqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0
cm95ZWQoKTsKKworICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4g
Y3VzdG9taXplTWVudShQYXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Pik7CisgICAgdmly
dHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0
IENvbnRleHRNZW51Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgS1VS
TCYpOworICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIGlzU3Bl
YWtpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFNwZWFraW5nKCk7CisgICAgdmlydHVhbCB2
b2lkIHNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJhbWUqKTsKKworcHJpdmF0ZToKKyAgICBFdmFz
X09iamVjdCogbV92aWV3OworICAgIEV3a19Db250ZXh0X01lbnUqIG1fbmF0aXZlTWVudTsKK307
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250
ZXh0bWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApp
bmRleCBkMmI5ZjE5Li40NmJkMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2NvbnRleHRtZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRl
eHRtZW51LmNwcApAQCAtMjQsMTEgKzI0LDE2IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVu
dUl0ZW0uaCIKKyNpbmNsdWRlICJld2tfbG9nZ2luZy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRl
LmgiCiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51
X0NvcmUgeworICAgIEVpbmFfTGlzdCogaXRlbXM7IC8qKjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8K
K307CisKIC8qKgogICogXHN0cnVjdCAgX0V3a19Db250ZXh0X01lbnUKICAqIEBicmllZiAgIENv
bnRhaW5zIHRoZSBjb250ZXh0IG1lbnUgZGF0YS4KQEAgLTQwLDcgKzQ1LDcgQEAgc3RydWN0IF9F
d2tfQ29udGV4dF9NZW51IHsKICNlbmRpZgogICAgIEV2YXNfT2JqZWN0KiB2aWV3OyAvKio8IHRo
ZSB2aWV3IG9iamVjdCAqLwogCi0gICAgRWluYV9MaXN0KiBpdGVtczsgLyoqPCB0aGUgbGlzdCBv
ZiBpdGVtcyAqLworICAgIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnU7IC8qKjwgYSB3
cmFwcGVyIGZvciBFaW5hX0xpc3QgY29udGFpbmluZyBjb250ZXh0IG1lbnUgaXRlbXMgKi8KIH07
CiAKIC8qKgpAQCAtNzIsNyArNzcsNyBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdr
X0NvbnRleHRfTWVudSogbWVudSkKICAgICBpZiAoLS1tZW51LT5fX3JlZikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRUlOQV9MSVNUX0ZSRUUobWVudS0+aXRlbXMsIGl0ZW0pCisgICAgRUlOQV9M
SVNUX0ZSRUUobWVudS0+Y29yZU1lbnUtPml0ZW1zLCBpdGVtKQogICAgICAgICBld2tfY29udGV4
dF9tZW51X2l0ZW1fZnJlZShzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVt
KSk7CiAKICAgICBmcmVlKG1lbnUpOwpAQCAtOTMsOCArOTgsOSBAQCBFaW5hX0Jvb2wgZXdrX2Nv
bnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiBjb25zdCBFaW5hX0xp
c3QqIGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51
KiBtZW51KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsK
KyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobWVudS0+Y29yZU1lbnUsIDApOwog
Ci0gICAgcmV0dXJuIG1lbnUtPml0ZW1zOworICAgIHJldHVybiBtZW51LT5jb3JlTWVudS0+aXRl
bXM7CiB9CiAKIEV3a19Db250ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25l
dyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLApAQCAtMjIwLDEwICsyMjYsMTEgQEAg
RWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9N
ZW51X0l0ZW0qIGl0ZW0sIEVpbmFfQm8KICAqCiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29u
dGV4dG1lbnUsbmV3IgogICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25l
dyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250
cm9sbGVyKQorRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmpl
Y3QqIHZpZXcsIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRl
eHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcikKIHsKICAgICBFd2tfQ29udGV4dF9NZW51KiBt
ZW51OwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKKyAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29yZU1lbnUsIDApOwogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250cm9sbGVyLCAwKTsKIAogICAgIG1lbnUgPSBzdGF0
aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51Kj4obWFsbG9jKHNpemVvZigqbWVudSkpKTsKQEAgLTIz
NSw3ICsyNDIsOCBAQCBFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFz
X09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDbwogICAgIG1lbnUtPl9fcmVmID0g
MTsKICAgICBtZW51LT52aWV3ID0gdmlldzsKICAgICBtZW51LT5jb250cm9sbGVyID0gY29udHJv
bGxlcjsKLSAgICBtZW51LT5pdGVtcyA9IDA7CisgICAgbWVudS0+Y29yZU1lbnUgPSBjb3JlTWVu
dTsKKwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNv
bnRleHRtZW51LG5ldyIsIG1lbnUpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0yNzMsNyArMjgx
LDcgQEAgYm9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSkK
ICAqCiAgKiBAc2VlIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcKICAqLwotdm9pZCBld2tfY29u
dGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNv
bnRleHRNZW51SXRlbSYgY29yZSkKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChF
d2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW0mIGNvcmUpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0
YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAg
RXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9BY3Rpb24+KGNvcmUuYWN0aW9uKCkpOwpAQCAtMjgzLDQyICsyOTEsNTUgQEAgdm9pZCBl
d2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNv
cmU6OkNvbnRleHRNZW51SXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb3JlLmVuYWJsZWQoKSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVu
dV9pdGVtKTsKIAotICAgIG1lbnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtZW51LT5pdGVt
cywgbWVudV9pdGVtKTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUt
PnZpZXcsICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwgbWVudSk7CisgICAgY29yZU1lbnUt
Pml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChjb3JlTWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7CiB9
CiAKIC8qKgogICogQGludGVybmFsCiAgKgotICogRW1pdHMgYSBzaWduYWwgd2l0aCB0aGUgaXRl
bXMgb2YgdGhlIGNvbnRleHQgbWVudS4KKyAqIEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxz
aG93IgogICoKICAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0
dXJuIHRoZSBzYW1lIGNvbnRleHQgbWVudSBvYmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBw
YXJhbWV0ZXIKLSAqCi0gKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9t
aXplIgotICoKLSAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0CiAgKi8KLUV3
a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01l
bnUqIG1lbnUpCit2b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBt
ZW51KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIsIG1l
bnUtPml0ZW1zKTsKLSAgICByZXR1cm4gbWVudTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxzaG93IiwgbWVudSk7CiB9CiAKIC8q
KgogICogQGludGVybmFsCiAgKgotICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ci
CisgKiBHZXRzIGEgVmVjdG9yIG9mIGNvbnRleHQgbWVudSBpdGVtcwogICoKLSAqIEBwYXJhbSBt
ZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0CisgKiBAcGFyYW0gY29yZU1lbnUgdGhlIGNvbnRl
eHQgbWVudSBjb3JlIG9iamVjdAogICovCi12b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tf
Q29udGV4dF9NZW51KiBtZW51KQordm9pZCBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dl
dChFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBWZWN0b3I8RXdrX0NvbnRleHRfTWVu
dV9JdGVtKj4mIGl0ZW1zVmVjdG9yKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
KG1lbnUpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGNvcmVNZW51KTsKIAotICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51
LHNob3ciLCBtZW51KTsKKyAgICBFaW5hX0xpc3QqIGw7CisgICAgdm9pZCogaXRlbTsKKyAgICBF
SU5BX0xJU1RfRk9SRUFDSChjb3JlTWVudS0+aXRlbXMsIGwsIGl0ZW0pCisgICAgICAgIGl0ZW1z
VmVjdG9yLmFwcGVuZChzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7
CiB9CiAKKy8qKgorICogQGludGVybmFsCisgKgorICogQ3JlYXRlcyBjb3JlIGNvbnRleHQgbWVu
dQorICoKKyAqLworRXdrX0NvbnRleHRfTWVudV9Db3JlKiBld2tfY29udGV4dF9tZW51X2NvcmVf
bmV3KCkKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51OworICAgIGNvcmVN
ZW51ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9Db3JlKj4obWFsbG9jKHNpemVvZigq
Y29yZU1lbnUpKSk7CisgICAgaWYgKCFjb3JlTWVudSkgeworICAgICAgICBDUklUSUNBTCgiQ291
bGQgbm90IGFsbG9jYXRlIGNvbnRleHQgbWVudSBtZW1vcnkuIik7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyAgICBjb3JlTWVudS0+aXRlbXMgPSAwOworICAgIHJldHVybiBjb3JlTWVudTsK
K30KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0
bWVudS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGZk
MzI0MDAuLjlmYmM0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29u
dGV4dG1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgK
QEAgLTI0LDExICsyNCw3IEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKLSAqICAtICJj
b250ZXh0bWVudSxjdXN0b21pemUiLCBFaW5hX0xpc3QgKjogY3VzdG9taXplIGNvbnRleHQgbWVu
dSBpcyB0YWtlbgotICogICAgYW5kIGl0IGdpdmVzIGEgbGlzdCB3aXRoIGl0ZW1zIG9mIGNvbnRl
eHQgbWVudSBhcyBhbiBhcmd1bWVudC4KICAqICAtICJjb250ZXh0bWVudSxmcmVlIiwgRXdrX0Nv
bnRleHRfTWVudSAqOiBhIGNvbnRleHQgbWVudSBpcyBmcmVlZC4KLSAqICAtICJjb250ZXh0bWVu
dSxpdGVtLGFwcGVuZGVkIiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIG5ldyBpdGVtIHdhcyBhZGRl
ZCB0bwotICogICAgdGhlIGNvbnRleHQgbWVudS4KICAqICAtICJjb250ZXh0bWVudSxuZXciLCBF
d2tfQ29udGV4dF9NZW51ICo6IGEgbmV3IGNvbnRleHQgbWVudSB3YXMgY3JlYXRlZAogICogICAg
YW5kIGl0IGdpdmVzIHRoZSBjb250ZXh0IG1lbnUgYXMgYW4gYXJndW1lbnQuCiAgKiAgLSAiY29u
dGV4dG1lbnUsc2hvdyIsIEV3a19Db250ZXh0X01lbnUgKjogYSBjb250ZXh0IG1lbnUgaXMgc2hv
d24uCkBAIC0xMzgsNiArMTM0LDkgQEAgZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUg
ewogICAgIEVXS19TRVBBUkFUT1JfVFlQRSwKICAgICBFV0tfU1VCTUVOVV9UWVBFCiB9OworLyoq
IENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgKi8KK3R5cGVk
ZWYgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgRXdrX0NvbnRleHRfTWVudV9Db3JlOwor
CiAvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBl
ICovCiB0eXBlZGVmIGVudW0gX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3a19Db250
ZXh0X01lbnVfSXRlbV9UeXBlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4
IDZmNTMzMjEuLjc2MjFhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5j
bHVkZSAiZXdrX2hpc3RvcnkuaCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tf
dmlldy5oIgpAQCAtMTY0LDExICsxNjUsMTMgQEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0b3J5X25l
dyhXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdrX2hpc3Rv
cnlfZnJlZShFd2tfSGlzdG9yeSogaGlzdG9yeSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2
aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOworRXdrX0Nv
bnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19D
b250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxl
ciogY29udHJvbGxlcik7CiBib29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9N
ZW51KiBvKTsKLXZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9N
ZW51KiBvLCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpOwordm9pZCBld2tfY29udGV4
dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnVfQ29yZSogbywgY29uc3QgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKTsKIEV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0
X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG8pOwogdm9pZCBld2tfY29udGV4dF9t
ZW51X3Nob3coRXdrX0NvbnRleHRfTWVudSogbyk7Cit2b2lkIGV3a19jb250ZXh0X21lbnVfY29y
ZV92ZWN0b3JfZ2V0KEV3a19Db250ZXh0X01lbnVfQ29yZSogbywgVmVjdG9yPEV3a19Db250ZXh0
X01lbnVfSXRlbSo+JiBpdGVtc1ZlY3Rvcik7CitFd2tfQ29udGV4dF9NZW51X0NvcmUqIGV3a19j
b250ZXh0X21lbnVfY29yZV9uZXcoKTsKICNlbmRpZgogCiBjb25zdCBFaW5hX1JlY3RhbmdsZSog
ZXdrX3ZpZXdfcmVwYWludHNfZ2V0KGNvbnN0IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwg
c2l6ZV90KiBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCAyOWJlMjE5
Li40ZTk0NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJD
aHJvbWVDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEVmbC5oIgpAQCAtNTk5LDYgKzYwMCw3IEBAIHN0YXRp
YyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50cyBwYWdl
Q2xpZW50czsKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hy
b21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisgICAgcGFnZUNsaWVudHMuY29udGV4dE1l
bnVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmwoc21hcnREYXRhLT5z
ZWxmKTsKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9
IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNs
aWVudCA9IG5ldyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw7CkBAIC0xNDY4LDcgKzE0NzAs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBp
ZiAobWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQp
KQorICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZl
bnQoZXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0
TWVudSogY29yZU1lbnUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCBkMmQyMWUyLi5kNjQ0MDEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMzcsNyArMzcsNyBAQCBGSU5EX1BBQ0tBR0UoVGhy
ZWFkcyBSRVFVSVJFRCkKIEZJTkRfUEFDS0FHRShKUEVHIFJFUVVJUkVEKQogRklORF9QQUNLQUdF
KFBORyBSRVFVSVJFRCkKIAotQUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9
MCkKK0FERF9ERUZJTklUSU9OUygtREVOQUJMRV9DT05URVhUX01FTlVTPTEpCiAKIFNFVChXVEZf
VVNFX1BUSFJFQURTIDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118578</attachid>
            <date>2011-12-09 07:54:18 -0800</date>
            <delta_ts>2011-12-09 08:07:32 -0800</delta_ts>
            <desc>ChangeLog fixes</desc>
            <filename>proposed_patch2.diff</filename>
            <type>text/plain</type>
            <size>26428</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1MTJmNWZjLi42ZWE2NTYz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTA5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFi
b3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNj
ZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggZjljZTQwNi4uOGI2YWUzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0
IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9N
RU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGlu
IEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDogRW5hYmxlIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVO
VVMgZm9yIEVGTCBwbGF0Zm9ybS4KKwogMjAxMS0xMi0wOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHJlbG9hZGluZyBzdG9yYWdlIHBvaW50ZXIgZm9y
IGluZGV4ZWQgcHJvcGVydGllcyB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggNzJiZjIzYi4uMzM2NjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtMTA3Miw3ICsxMDcyLDcgQEAKICNkZWZpbmUgV1RGX1VTRV9QTEFURk9S
TV9TVFJBVEVHSUVTIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JN
KFdJTikgfHwgUExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NP
TlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Mzk3MmMxLi42NzBkMWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2
ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0
IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1Nf
UExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5v
IG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVy
ZXMgYXJlIHVzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnUuaDogQ2hhbmdlZCBOYXRpdmVNZW51IGRlZmluaXRpb24gdG8gRXdrX0Nv
bnRleHRfTWVudV9Db3JlKi4KKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDog
Q2hhbmdlZCBOYXRpdmVJdGVtIGRlZmluaXRpb24gdG8gRXdrX0NvbnRleHRfTWVudV9JdGVtKiBh
bmQgY2hhbmdlZCBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OkNv
bnRleHRNZW51KTogQ2hhbmdlIHBhcmFtZXRlciB0byBtYXRjaCBuZXcgTmF0aXZlTWVudSBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmdldENvbnRleHRNZW51SXRl
bXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjcmVhdGVO
YXRpdmVNZW51RnJvbUl0ZW1zKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudTo6bmF0aXZlTWVudSk6IENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBO
YXRpdmVNZW51IGRlZmluaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51
SXRlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OkNvbnRleHRN
ZW51SXRlbSk6IEltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
OjpuYXRpdmVNZW51SXRlbSk6IENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBOYXRp
dmVJdGVtIGRlZmluaXRpb24uCisKIDIwMTEtMTItMDkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZp
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpbnNwZWN0b3IgdXRpbGl0aWVz
IHN5bnRheCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCBjYmRm
NTNhLi40YTc3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTU0
LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAg
ICAgdHlwZWRlZiBITUVOVSBOYXRpdmVNZW51OwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgICAg
ICB0eXBlZGVmIHZvaWQqIE5hdGl2ZU1lbnU7CisgICAgICAgIHR5cGVkZWYgRXdrX0NvbnRleHRf
TWVudV9Db3JlKiBOYXRpdmVNZW51OwogI2VuZGlmCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRN
ZW51KE5hdGl2ZU1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oCmluZGV4IGUzNjkzNDguLmM1MzIzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5oCkBAIC00OCw2ICs0OCw4IEBAIHR5cGVkZWYgc3RydWN0IF9HdGtBY3Rp
b24gR3RrQWN0aW9uOwogI2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxpZiBQTEFURk9STShXWCkKIGNs
YXNzIHd4TWVudUl0ZW07CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSAiZXdrX2NvbnRl
eHRtZW51LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjUzLDEwICsyNTUs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgdHlw
ZWRlZiBNRU5VSVRFTUlORk8gTmF0aXZlSXRlbTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAg
ICAgdHlwZWRlZiB2b2lkKiBOYXRpdmVJdGVtOworICAgICAgICB0eXBlZGVmIEV3a19Db250ZXh0
X01lbnVfSXRlbSogTmF0aXZlSXRlbTsKICNlbmRpZgogICAgICAgICBDb250ZXh0TWVudUl0ZW0o
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVj
a2VkLCBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zKTsKKyNpZiBQ
TEFURk9STShFRkwpCisgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShOYXRpdmVJdGVt
KTsKKyNlbHNlCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShjb25zdCBOYXRpdmVJ
dGVtJik7CisjZW5kaWYKIAogICAgICAgICAvLyBPbiBXaW5kb3dzLCB0aGUgdGl0bGUgKGR3VHlw
ZURhdGEgb2YgdGhlIE1FTlVJVEVNSU5GTykgaXMgbm90IHNldCBpbiB0aGlzIGZ1bmN0aW9uLiBD
YWxsZXJzIGNhbiBzZXQgdGhlIHRpdGxlIHRoZW1zZWx2ZXMsCiAgICAgICAgIC8vIGFuZCBoYW5k
bGUgdGhlIGxpZmV0aW1lIG9mIHRoZSB0aXRsZSwgaWYgdGhleSBuZWVkIGl0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNDZhMjBkYy4u
NTY5MDhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRN
ZW51RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVF
ZmwuY3BwCkBAIC0yNCwyNyArMjQsMzcgQEAKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJld2tfY29u
dGV4dG1lbnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUykKLUNvbnRleHRNZW51
OjpDb250ZXh0TWVudSh2b2lkKiBtZW51KQorQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KEV3a19D
b250ZXh0X01lbnVfQ29yZSogbWVudSkKIHsKICAgICBnZXRDb250ZXh0TWVudUl0ZW1zKG1lbnUs
IG1faXRlbXMpOwogfQogCi12b2lkIENvbnRleHRNZW51OjpnZXRDb250ZXh0TWVudUl0ZW1zKHZv
aWQqIG1lbnUsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK3ZvaWQgQ29udGV4dE1l
bnU6OmdldENvbnRleHRNZW51SXRlbXMoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBtZW51LCBWZWN0
b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBpdGVtcy5jbGVhcigpOworICAgIFZlY3RvcjxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPiBuYXRp
dmVJdGVtczsKKyAgICBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChtZW51LCBuYXRp
dmVJdGVtcyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hdGl2ZUl0ZW1zLnNpemUo
KTsgKytpKQorICAgICAgICBpdGVtcy5hcHBlbmQoQ29udGV4dE1lbnVJdGVtKG5hdGl2ZUl0ZW1z
W2ldKSk7CiB9CiAKLXZvaWQqIENvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1z
KGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK0V3a19Db250ZXh0X01lbnVf
Q29yZSogQ29udGV4dE1lbnU6OmNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9y
PENvbnRleHRNZW51SXRlbT4mIGl0ZW1zKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIDA7CisgICAgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSA9IGV3a19jb250
ZXh0X21lbnVfY29yZV9uZXcoKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbXMu
c2l6ZSgpOyArK2kpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoY29yZU1l
bnUsIGl0ZW1zW2ldKTsKKyAgICByZXR1cm4gY29yZU1lbnU7CiB9CiAKLXZvaWQqIENvbnRleHRN
ZW51OjpuYXRpdmVNZW51KCkgY29uc3QKK0V3a19Db250ZXh0X01lbnVfQ29yZSogQ29udGV4dE1l
bnU6Om5hdGl2ZU1lbnUoKSBjb25zdAogewogICAgIHJldHVybiBjcmVhdGVOYXRpdmVNZW51RnJv
bUl0ZW1zKG1faXRlbXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
Q29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRleCA0MjVjNmE2Li5mYTNkNTk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAt
MzEsMTEgKzMxLDIyIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgorI2luY2x1
ZGUgImV3a19wcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShDUk9T
U19QTEFURk9STV9DT05URVhUX01FTlVTKQotdm9pZCogQ29udGV4dE1lbnVJdGVtOjpuYXRpdmVN
ZW51SXRlbSgpIGNvbnN0CitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgbV90eXBlID0gc3RhdGljX2Nhc3Q8Q29udGV4
dE1lbnVJdGVtVHlwZT4oZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pKTsKKyAg
ICBtX2FjdGlvbiA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51QWN0aW9uPihld2tfY29udGV4dF9t
ZW51X2l0ZW1fYWN0aW9uX2dldChpdGVtKSk7CisgICAgbV90aXRsZSA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisgICAgbV9lbmFibGVkID0gZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2VuYWJsZWRfZ2V0KGl0ZW0pOworICAgIG1fY2hlY2tlZCA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV9jaGVja2VkX2dldChpdGVtKTsKK30KKworRXdrX0NvbnRleHRfTWVudV9JdGVtKiBD
b250ZXh0TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ01h
a2VMaXN0c0VmbC50eHQgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dAppbmRl
eCBjNWVmNjU2Li41ZjU3OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxp
c3RzRWZsLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dApAQCAt
NjUsNiArNjUsNyBAQCBFTkRJRiAoKQogTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKICAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Db250
ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEVmbC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwppbmRleCBmNDM1MTA1Li40MDlkMTJiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDEgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBh
a3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250
ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVY
VF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRz
IGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogQWRkZWQgQ29udGV4dE1lbnVDbGllbnRFZmwu
Y3BwIHRvIHNvdXJjZXMgbGlzdC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVu
dUNsaWVudEVmbC5jcHA6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6Q29udGV4dE1lbnVDbGllbnRFZmwpOiBBZGRlZCBhbmQgaW1wbGVt
ZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1l
bnVEZXN0cm95ZWQpOiBBZGRlZCBhbmQgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNsaWVudEVmbDo6Y3VzdG9taXplTWVudSk6IEltcGxlbWVudGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6ZG93bmxv
YWRVUkwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjps
b29rVXBJbkRpY3Rpb25hcnkpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q2xpZW50RWZsOjpzcGVhayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVD
bGllbnRFZmw6OmlzU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKTogQWRkZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaDogUmVzdG9yZSB0aGUgZmlsZS4K
KyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDogQWRkZWQgX0V3a19Db250ZXh0X01l
bnVfQ29yZSBhcyBhIHdyYXAgZm9yIEVpbmFfTGlzdC4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfdW5yZWYpOiBVcGRhdGVkIEVpbmFfTGlzdCBmcmVlaW5nLgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9pdGVtX2xpc3RfZ2V0KTogVXBkYXRlZCBFaW5hX0xpc3QgcmV0dXJuLgorICAgICAg
ICAoZXdrX2NvbnRleHRfbWVudV9uZXcpOiBBZGRlZCBFd2tfQ29udGV4dF9NZW51X0NvcmUgYXMg
cGFyYW1ldGVyLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZCk6IENoYW5n
ZWQgcGFyZW1ldGVyIGZyb20gRXdrX0NvbnRleHRfTWVudSB0byBFd2tfQ29udGV4dF9NZW51X0Nv
cmUuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X3Nob3cpOgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9jb3JlX3ZlY3Rvcl9nZXQpOiBBZGRlZC4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfY29yZV9uZXcpOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51Lmg6IEFk
ZGVkIG5ldyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb24gb2YgRXdrX0NvbnRleHRfTWVudV9Db3Jl
CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IEFkZGVkIGZ1bmN0aW9uIGRlZmluaXRpb24u
CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25l
dyk6IEFkZGVkIGNvbnRleHRNZW51Q2xpZW50IGluaXRpYWxpc2F0aW9uLgorICAgICAgICAoZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOiBDaGFuZ2VkIGNvbmRpdGlvbi4KKwog
MjAxMS0xMi0wNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gSW50cm9kdWNlIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YWRjYTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNs
aWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1i
ZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRF
ZmwuaCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29udGV4dE1lbnVDbGllbnRFZmw6OkNvbnRl
eHRNZW51Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCisg
ICAgLCBtX25hdGl2ZU1lbnUoMCkKK3sKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6
Y29udGV4dE1lbnVEZXN0cm95ZWQoKQoreworICAgIGlmIChtX25hdGl2ZU1lbnUpCisgICAgICAg
IGV3a19jb250ZXh0X21lbnVfZnJlZShtX25hdGl2ZU1lbnUpOworICAgIGRlbGV0ZSB0aGlzOwor
fQorCitQYXNzT3duUHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNsaWVudEVmbDo6Y3VzdG9t
aXplTWVudShQYXNzT3duUHRyPENvbnRleHRNZW51PiBjb250ZXh0TWVudSkKK3sKKyAgICBpZiAo
bV9uYXRpdmVNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUobV9uYXRpdmVNZW51
KTsKKworICAgIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUgPSBjb250ZXh0TWVudS0+
bmF0aXZlTWVudSgpOworICAgIG1fbmF0aXZlTWVudSA9IGV3a19jb250ZXh0X21lbnVfbmV3KG1f
dmlldywgY29yZU1lbnUsIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPmNvbnRleHRNZW51
Q29udHJvbGxlcigpKTsKKyAgICBld2tfY29udGV4dF9tZW51X3Nob3cobV9uYXRpdmVNZW51KTsK
KyAgICBPd25QdHI8Q29udGV4dE1lbnU+IGN1c3RvbWl6ZWRNZW51ID0gYWRvcHRQdHIobmV3IENv
bnRleHRNZW51KGNvcmVNZW51KSk7CisKKyAgICByZXR1cm4gY3VzdG9taXplZE1lbnUucmVsZWFz
ZSgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0sIGNvbnN0IENvbnRleHRNZW51KiBwYXJlbnRNZW51
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRF
Zmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcEluRGljdGlvbmFyeShGcmFtZSop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiti
b29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENv
bnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42OGU0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtMCwwICsx
LDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHly
aWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0
TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xpZW50RWZsX2gKKworI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENv
bnRleHRNZW51OworCitjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbCA6IHB1YmxpYyBDb250ZXh0
TWVudUNsaWVudCB7CitwdWJsaWM6CisgICAgQ29udGV4dE1lbnVDbGllbnRFZmwoRXZhc19PYmpl
Y3QqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsKKworICAgIHZp
cnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4gY3VzdG9taXplTWVudShQYXNz
T3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Pik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kik7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgS1VSTCYpOworICAgIHZpcnR1YWwg
dm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3BlYWso
Y29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcFNwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhHb29n
bGUoY29uc3QgRnJhbWUqKTsKKworcHJpdmF0ZToKKyAgICBFdmFzX09iamVjdCogbV92aWV3Owor
ICAgIEV3a19Db250ZXh0X01lbnUqIG1fbmF0aXZlTWVudTsKK307Cit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAppbmRleCBkMmI5ZjE5Li40NmJk
MmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAtMjQs
MTEgKzI0LDE2IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0
TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKKyNpbmNsdWRl
ICJld2tfbG9nZ2luZy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWlu
YS5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAorc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgeworICAgIEVpbmFf
TGlzdCogaXRlbXM7IC8qKjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8KK307CisKIC8qKgogICogXHN0
cnVjdCAgX0V3a19Db250ZXh0X01lbnUKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBjb250ZXh0
IG1lbnUgZGF0YS4KQEAgLTQwLDcgKzQ1LDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51IHsK
ICNlbmRpZgogICAgIEV2YXNfT2JqZWN0KiB2aWV3OyAvKio8IHRoZSB2aWV3IG9iamVjdCAqLwog
Ci0gICAgRWluYV9MaXN0KiBpdGVtczsgLyoqPCB0aGUgbGlzdCBvZiBpdGVtcyAqLworICAgIEV3
a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnU7IC8qKjwgYSB3cmFwcGVyIGZvciBFaW5hX0xp
c3QgY29udGFpbmluZyBjb250ZXh0IG1lbnUgaXRlbXMgKi8KIH07CiAKIC8qKgpAQCAtNzIsNyAr
NzcsNyBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSogbWVu
dSkKICAgICBpZiAoLS1tZW51LT5fX3JlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgRUlOQV9M
SVNUX0ZSRUUobWVudS0+aXRlbXMsIGl0ZW0pCisgICAgRUlOQV9MSVNUX0ZSRUUobWVudS0+Y29y
ZU1lbnUtPml0ZW1zLCBpdGVtKQogICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShz
dGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiAKICAgICBmcmVlKG1l
bnUpOwpAQCAtOTMsOCArOTgsOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95
KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiBjb25zdCBFaW5hX0xpc3QqIGV3a19jb250ZXh0X21l
bnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwobWVudS0+Y29yZU1lbnUsIDApOwogCi0gICAgcmV0dXJuIG1lbnUt
Pml0ZW1zOworICAgIHJldHVybiBtZW51LT5jb3JlTWVudS0+aXRlbXM7CiB9CiAKIEV3a19Db250
ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51
X0l0ZW1fVHlwZSB0eXBlLApAQCAtMjIwLDEwICsyMjYsMTEgQEAgRWluYV9Cb29sIGV3a19jb250
ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVp
bmFfQm8KICAqCiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsbmV3IgogICov
Ci1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmll
dywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorRXdrX0NvbnRl
eHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250
ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciog
Y29udHJvbGxlcikKIHsKICAgICBFd2tfQ29udGV4dF9NZW51KiBtZW51OwogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoY29yZU1lbnUsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChjb250cm9sbGVyLCAwKTsKIAogICAgIG1lbnUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4
dF9NZW51Kj4obWFsbG9jKHNpemVvZigqbWVudSkpKTsKQEAgLTIzNSw3ICsyNDIsOCBAQCBFd2tf
Q29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2Vi
Q29yZTo6Q29udGV4dE1lbnVDbwogICAgIG1lbnUtPl9fcmVmID0gMTsKICAgICBtZW51LT52aWV3
ID0gdmlldzsKICAgICBtZW51LT5jb250cm9sbGVyID0gY29udHJvbGxlcjsKLSAgICBtZW51LT5p
dGVtcyA9IDA7CisgICAgbWVudS0+Y29yZU1lbnUgPSBjb3JlTWVudTsKKwogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LG5ldyIsIG1l
bnUpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0yNzMsNyArMjgxLDcgQEAgYm9vbCBld2tfY29u
dGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAqCiAgKiBAc2VlIGV3a19j
b250ZXh0X21lbnVfaXRlbV9uZXcKICAqLwotdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBw
ZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29y
ZSkKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51X0Nv
cmUqIGNvcmVNZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7CiAg
ICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19Db250
ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAgRXdrX0NvbnRleHRfTWVudV9B
Y3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9BY3Rpb24+KGNvcmUu
YWN0aW9uKCkpOwpAQCAtMjgzLDQyICsyOTEsNTUgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0
ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLmVuYWJsZWQo
KSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudV9pdGVtKTsKIAotICAgIG1l
bnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtZW51LT5pdGVtcywgbWVudV9pdGVtKTsKLSAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVu
dSxpdGVtLGFwcGVuZGVkIiwgbWVudSk7CisgICAgY29yZU1lbnUtPml0ZW1zID0gZWluYV9saXN0
X2FwcGVuZChjb3JlTWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7CiB9CiAKIC8qKgogICogQGludGVy
bmFsCiAgKgotICogRW1pdHMgYSBzaWduYWwgd2l0aCB0aGUgaXRlbXMgb2YgdGhlIGNvbnRleHQg
bWVudS4KKyAqIEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxzaG93IgogICoKICAqIEBwYXJh
bSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0dXJuIHRoZSBzYW1lIGNvbnRl
eHQgbWVudSBvYmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBwYXJhbWV0ZXIKLSAqCi0gKiBA
bm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9taXplIgotICoKLSAqIEBzZWUg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0CiAgKi8KLUV3a19Db250ZXh0X01lbnUqIGV3
a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit2b2lkIGV3
a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTihtZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwo
bWVudS0+dmlldywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIsIG1lbnUtPml0ZW1zKTsKLSAgICBy
ZXR1cm4gbWVudTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZp
ZXcsICJjb250ZXh0bWVudSxzaG93IiwgbWVudSk7CiB9CiAKIC8qKgogICogQGludGVybmFsCiAg
KgotICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCisgKiBHZXRzIGEgVmVjdG9y
IG9mIGNvbnRleHQgbWVudSBpdGVtcwogICoKLSAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1l
bnUgb2JqZWN0CisgKiBAcGFyYW0gY29yZU1lbnUgdGhlIGNvbnRleHQgbWVudSBjb3JlIG9iamVj
dAogICovCi12b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51
KQordm9pZCBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChFd2tfQ29udGV4dF9NZW51
X0NvcmUqIGNvcmVNZW51LCBWZWN0b3I8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4mIGl0ZW1zVmVj
dG9yKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1lbnUpOworICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKGNvcmVNZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LHNob3ciLCBtZW51KTsKKyAg
ICBFaW5hX0xpc3QqIGw7CisgICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChj
b3JlTWVudS0+aXRlbXMsIGwsIGl0ZW0pCisgICAgICAgIGl0ZW1zVmVjdG9yLmFwcGVuZChzdGF0
aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiB9CiAKKy8qKgorICogQGlu
dGVybmFsCisgKgorICogQ3JlYXRlcyBjb3JlIGNvbnRleHQgbWVudQorICoKKyAqLworRXdrX0Nv
bnRleHRfTWVudV9Db3JlKiBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCkKK3sKKyAgICBFd2tf
Q29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51OworICAgIGNvcmVNZW51ID0gc3RhdGljX2Nhc3Q8
RXdrX0NvbnRleHRfTWVudV9Db3JlKj4obWFsbG9jKHNpemVvZigqY29yZU1lbnUpKSk7CisgICAg
aWYgKCFjb3JlTWVudSkgeworICAgICAgICBDUklUSUNBTCgiQ291bGQgbm90IGFsbG9jYXRlIGNv
bnRleHQgbWVudSBtZW1vcnkuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjb3Jl
TWVudS0+aXRlbXMgPSAwOworICAgIHJldHVybiBjb3JlTWVudTsKK30KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGZkMzI0MDAuLjlmYmM0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAgLTI0LDExICsyNCw3IEBA
CiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKLSAqICAtICJjb250ZXh0bWVudSxjdXN0b21p
emUiLCBFaW5hX0xpc3QgKjogY3VzdG9taXplIGNvbnRleHQgbWVudSBpcyB0YWtlbgotICogICAg
YW5kIGl0IGdpdmVzIGEgbGlzdCB3aXRoIGl0ZW1zIG9mIGNvbnRleHQgbWVudSBhcyBhbiBhcmd1
bWVudC4KICAqICAtICJjb250ZXh0bWVudSxmcmVlIiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIGNv
bnRleHQgbWVudSBpcyBmcmVlZC4KLSAqICAtICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwg
RXdrX0NvbnRleHRfTWVudSAqOiBhIG5ldyBpdGVtIHdhcyBhZGRlZCB0bwotICogICAgdGhlIGNv
bnRleHQgbWVudS4KICAqICAtICJjb250ZXh0bWVudSxuZXciLCBFd2tfQ29udGV4dF9NZW51ICo6
IGEgbmV3IGNvbnRleHQgbWVudSB3YXMgY3JlYXRlZAogICogICAgYW5kIGl0IGdpdmVzIHRoZSBj
b250ZXh0IG1lbnUgYXMgYW4gYXJndW1lbnQuCiAgKiAgLSAiY29udGV4dG1lbnUsc2hvdyIsIEV3
a19Db250ZXh0X01lbnUgKjogYSBjb250ZXh0IG1lbnUgaXMgc2hvd24uCkBAIC0xMzgsNiArMTM0
LDkgQEAgZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgewogICAgIEVXS19TRVBBUkFU
T1JfVFlQRSwKICAgICBFV0tfU1VCTUVOVV9UWVBFCiB9OworLyoqIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfQ29u
dGV4dF9NZW51X0NvcmUgRXdrX0NvbnRleHRfTWVudV9Db3JlOworCiAvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICovCiB0eXBlZGVmIGVudW0g
X0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDZmNTMzMjEuLjc2MjFhZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0
LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2hpc3Rvcnku
aCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpAQCAtMTY0LDEx
ICsxNjUsMTMgQEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0b3J5X25ldyhXZWJDb3JlOjpCYWNrRm9y
d2FyZExpc3RJbXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdrX2hpc3RvcnlfZnJlZShFd2tfSGlzdG9y
eSogaGlzdG9yeSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLUV3a19Db250ZXh0X01l
bnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250
ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOworRXdrX0NvbnRleHRfTWVudSogZXdrX2Nv
bnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250ZXh0X01lbnVfQ29yZSog
Y29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7CiBi
b29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9NZW51KiBvKTsKLXZvaWQgZXdr
X2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBvLCBXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW0mIGNvcmUpOwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5k
KEV3a19Db250ZXh0X01lbnVfQ29yZSogbywgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
JiBjb3JlKTsKIEV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3
a19Db250ZXh0X01lbnUqIG8pOwogdm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0NvbnRl
eHRfTWVudSogbyk7Cit2b2lkIGV3a19jb250ZXh0X21lbnVfY29yZV92ZWN0b3JfZ2V0KEV3a19D
b250ZXh0X01lbnVfQ29yZSogbywgVmVjdG9yPEV3a19Db250ZXh0X01lbnVfSXRlbSo+JiBpdGVt
c1ZlY3Rvcik7CitFd2tfQ29udGV4dF9NZW51X0NvcmUqIGV3a19jb250ZXh0X21lbnVfY29yZV9u
ZXcoKTsKICNlbmRpZgogCiBjb25zdCBFaW5hX1JlY3RhbmdsZSogZXdrX3ZpZXdfcmVwYWludHNf
Z2V0KGNvbnN0IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90KiBjb3VudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCAyOWJlMjE5Li40ZTk0NTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJCcmlk
Z2UuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJh
Z0NsaWVudEVmbC5oIgpAQCAtNTk5LDYgKzYwMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRl
X0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEp
CiAKICAgICBXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdl
Q2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0
RGF0YS0+c2VsZik7CisgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2Vi
Q29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xp
ZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0
YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFn
Q2xpZW50RWZsOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw7CkBAIC0xNDY4LDcgKzE0NzAsNyBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IEV2YXNfRQogICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
TW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBpZiAobWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQorICAgIGlmICghbWFpbkZy
YW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUgPQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZQppbmRleCBkMmQyMWUyLi5kNjQ0MDExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5j
bWFrZQpAQCAtMzcsNyArMzcsNyBAQCBGSU5EX1BBQ0tBR0UoVGhyZWFkcyBSRVFVSVJFRCkKIEZJ
TkRfUEFDS0FHRShKUEVHIFJFUVVJUkVEKQogRklORF9QQUNLQUdFKFBORyBSRVFVSVJFRCkKIAot
QUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MCkKK0FERF9ERUZJTklUSU9O
UygtREVOQUJMRV9DT05URVhUX01FTlVTPTEpCiAKIFNFVChXVEZfVVNFX1BUSFJFQURTIDEpCiBB
RERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118579</attachid>
            <date>2011-12-09 08:07:32 -0800</date>
            <delta_ts>2011-12-09 08:10:26 -0800</delta_ts>
            <desc>ChangeLog fixes</desc>
            <filename>proposed_patch3.diff</filename>
            <type>text/plain</type>
            <size>20377</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1MTJmNWZjLi40MTk2YjNm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTA5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFi
b3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNj
ZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggZjljZTQwNi4uYTg3NTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0
IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9N
RU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGlu
IEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDogRW5hYmxlIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVO
VVMgZm9yIEVGTCBwbGF0Zm9ybS4KKwogMjAxMS0xMi0wOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHJlbG9hZGluZyBzdG9yYWdlIHBvaW50ZXIgZm9y
IGluZGV4ZWQgcHJvcGVydGllcyB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggNzJiZjIzYi4uMzM2NjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtMTA3Miw3ICsxMDcyLDcgQEAKICNkZWZpbmUgV1RGX1VTRV9QTEFURk9S
TV9TVFJBVEVHSUVTIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JN
KFdJTikgfHwgUExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NP
TlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Mzk3MmMxLi40ZDkxYjE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2
ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0
IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1Nf
UExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5v
IG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVy
ZXMgYXJlIHVzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnUuaDogQ2hhbmdlZCBOYXRpdmVNZW51IGRlZmluaXRpb24gdG8gRXdrX0Nv
bnRleHRfTWVudV9Db3JlKi4KKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDog
Q2hhbmdlZCBOYXRpdmVJdGVtIGRlZmluaXRpb24gdG8gRXdrX0NvbnRleHRfTWVudV9JdGVtKiBh
bmQgY2hhbmdlZCBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OkNv
bnRleHRNZW51KTogQ2hhbmdlIHBhcmFtZXRlciB0byBtYXRjaCBuZXcgTmF0aXZlTWVudSBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmdldENvbnRleHRNZW51SXRl
bXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjcmVhdGVO
YXRpdmVNZW51RnJvbUl0ZW1zKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudTo6bmF0aXZlTWVudSk6IENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBO
YXRpdmVNZW51IGRlZmluaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51
SXRlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OkNvbnRleHRN
ZW51SXRlbSk6IEltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
OjpuYXRpdmVNZW51SXRlbSk6IENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBOYXRp
dmVJdGVtIGRlZmluaXRpb24uCisKIDIwMTEtMTItMDkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZp
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpbnNwZWN0b3IgdXRpbGl0aWVz
IHN5bnRheCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCBjYmRm
NTNhLi40YTc3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTU0
LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAg
ICAgdHlwZWRlZiBITUVOVSBOYXRpdmVNZW51OwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgICAg
ICB0eXBlZGVmIHZvaWQqIE5hdGl2ZU1lbnU7CisgICAgICAgIHR5cGVkZWYgRXdrX0NvbnRleHRf
TWVudV9Db3JlKiBOYXRpdmVNZW51OwogI2VuZGlmCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRN
ZW51KE5hdGl2ZU1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oCmluZGV4IGUzNjkzNDguLmM1MzIzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5oCkBAIC00OCw2ICs0OCw4IEBAIHR5cGVkZWYgc3RydWN0IF9HdGtBY3Rp
b24gR3RrQWN0aW9uOwogI2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxpZiBQTEFURk9STShXWCkKIGNs
YXNzIHd4TWVudUl0ZW07CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSAiZXdrX2NvbnRl
eHRtZW51LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjUzLDEwICsyNTUs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgdHlw
ZWRlZiBNRU5VSVRFTUlORk8gTmF0aXZlSXRlbTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAg
ICAgdHlwZWRlZiB2b2lkKiBOYXRpdmVJdGVtOworICAgICAgICB0eXBlZGVmIEV3a19Db250ZXh0
X01lbnVfSXRlbSogTmF0aXZlSXRlbTsKICNlbmRpZgogICAgICAgICBDb250ZXh0TWVudUl0ZW0o
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVj
a2VkLCBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zKTsKKyNpZiBQ
TEFURk9STShFRkwpCisgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShOYXRpdmVJdGVt
KTsKKyNlbHNlCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShjb25zdCBOYXRpdmVJ
dGVtJik7CisjZW5kaWYKIAogICAgICAgICAvLyBPbiBXaW5kb3dzLCB0aGUgdGl0bGUgKGR3VHlw
ZURhdGEgb2YgdGhlIE1FTlVJVEVNSU5GTykgaXMgbm90IHNldCBpbiB0aGlzIGZ1bmN0aW9uLiBD
YWxsZXJzIGNhbiBzZXQgdGhlIHRpdGxlIHRoZW1zZWx2ZXMsCiAgICAgICAgIC8vIGFuZCBoYW5k
bGUgdGhlIGxpZmV0aW1lIG9mIHRoZSB0aXRsZSwgaWYgdGhleSBuZWVkIGl0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNDZhMjBkYy4u
NTY5MDhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRN
ZW51RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVF
ZmwuY3BwCkBAIC0yNCwyNyArMjQsMzcgQEAKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJld2tfY29u
dGV4dG1lbnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUykKLUNvbnRleHRNZW51
OjpDb250ZXh0TWVudSh2b2lkKiBtZW51KQorQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KEV3a19D
b250ZXh0X01lbnVfQ29yZSogbWVudSkKIHsKICAgICBnZXRDb250ZXh0TWVudUl0ZW1zKG1lbnUs
IG1faXRlbXMpOwogfQogCi12b2lkIENvbnRleHRNZW51OjpnZXRDb250ZXh0TWVudUl0ZW1zKHZv
aWQqIG1lbnUsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK3ZvaWQgQ29udGV4dE1l
bnU6OmdldENvbnRleHRNZW51SXRlbXMoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBtZW51LCBWZWN0
b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBpdGVtcy5jbGVhcigpOworICAgIFZlY3RvcjxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPiBuYXRp
dmVJdGVtczsKKyAgICBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChtZW51LCBuYXRp
dmVJdGVtcyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hdGl2ZUl0ZW1zLnNpemUo
KTsgKytpKQorICAgICAgICBpdGVtcy5hcHBlbmQoQ29udGV4dE1lbnVJdGVtKG5hdGl2ZUl0ZW1z
W2ldKSk7CiB9CiAKLXZvaWQqIENvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1z
KGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK0V3a19Db250ZXh0X01lbnVf
Q29yZSogQ29udGV4dE1lbnU6OmNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9y
PENvbnRleHRNZW51SXRlbT4mIGl0ZW1zKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIDA7CisgICAgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSA9IGV3a19jb250
ZXh0X21lbnVfY29yZV9uZXcoKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbXMu
c2l6ZSgpOyArK2kpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoY29yZU1l
bnUsIGl0ZW1zW2ldKTsKKyAgICByZXR1cm4gY29yZU1lbnU7CiB9CiAKLXZvaWQqIENvbnRleHRN
ZW51OjpuYXRpdmVNZW51KCkgY29uc3QKK0V3a19Db250ZXh0X01lbnVfQ29yZSogQ29udGV4dE1l
bnU6Om5hdGl2ZU1lbnUoKSBjb25zdAogewogICAgIHJldHVybiBjcmVhdGVOYXRpdmVNZW51RnJv
bUl0ZW1zKG1faXRlbXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
Q29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRleCA0MjVjNmE2Li5mYTNkNTk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAt
MzEsMTEgKzMxLDIyIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgorI2luY2x1
ZGUgImV3a19wcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShDUk9T
U19QTEFURk9STV9DT05URVhUX01FTlVTKQotdm9pZCogQ29udGV4dE1lbnVJdGVtOjpuYXRpdmVN
ZW51SXRlbSgpIGNvbnN0CitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgbV90eXBlID0gc3RhdGljX2Nhc3Q8Q29udGV4
dE1lbnVJdGVtVHlwZT4oZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pKTsKKyAg
ICBtX2FjdGlvbiA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51QWN0aW9uPihld2tfY29udGV4dF9t
ZW51X2l0ZW1fYWN0aW9uX2dldChpdGVtKSk7CisgICAgbV90aXRsZSA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisgICAgbV9lbmFibGVkID0gZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2VuYWJsZWRfZ2V0KGl0ZW0pOworICAgIG1fY2hlY2tlZCA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV9jaGVja2VkX2dldChpdGVtKTsKK30KKworRXdrX0NvbnRleHRfTWVudV9JdGVtKiBD
b250ZXh0TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ01h
a2VMaXN0c0VmbC50eHQgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dAppbmRl
eCBjNWVmNjU2Li41ZjU3OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxp
c3RzRWZsLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dApAQCAt
NjUsNiArNjUsNyBAQCBFTkRJRiAoKQogTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKICAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Db250
ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEVmbC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwppbmRleCBmNDM1MTA1Li4zOTYyZTY5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDEgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBh
a3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250
ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVY
VF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRz
IGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogQWRkZWQgQ29udGV4dE1lbnVDbGllbnRFZmwu
Y3BwIHRvIHNvdXJjZXMgbGlzdC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVu
dUNsaWVudEVmbC5jcHA6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6Q29udGV4dE1lbnVDbGllbnRFZmwpOiBBZGRlZCBhbmQgaW1wbGVt
ZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1l
bnVEZXN0cm95ZWQpOiBBZGRlZCBhbmQgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNsaWVudEVmbDo6Y3VzdG9taXplTWVudSk6IEltcGxlbWVudGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6ZG93bmxv
YWRVUkwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjps
b29rVXBJbkRpY3Rpb25hcnkpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q2xpZW50RWZsOjpzcGVhayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVD
bGllbnRFZmw6OmlzU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKTogQWRkZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaDogUmVzdG9yZSB0aGUgZmlsZS4K
KyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDogQWRkZWQgX0V3a19Db250ZXh0X01l
bnVfQ29yZSBhcyBhIHdyYXAgZm9yIEVpbmFfTGlzdC4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfdW5yZWYpOiBVcGRhdGVkIEVpbmFfTGlzdCBmcmVlaW5nLgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9pdGVtX2xpc3RfZ2V0KTogVXBkYXRlZCBFaW5hX0xpc3QgcmV0dXJuLgorICAgICAg
ICAoZXdrX2NvbnRleHRfbWVudV9uZXcpOiBBZGRlZCBFd2tfQ29udGV4dF9NZW51X0NvcmUgYXMg
cGFyYW1ldGVyLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZCk6IENoYW5n
ZWQgcGFyZW1ldGVyIGZyb20gRXdrX0NvbnRleHRfTWVudSB0byBFd2tfQ29udGV4dF9NZW51X0Nv
cmUuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X3Nob3cpOgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9jb3JlX3ZlY3Rvcl9nZXQpOiBBZGRlZC4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfY29yZV9uZXcpOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51Lmg6IEFk
ZGVkIG5ldyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb24gb2YgRXdrX0NvbnRleHRfTWVudV9Db3Jl
CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IEFkZGVkIGZ1bmN0aW9uIGRlZmluaXRpb24u
CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25l
dyk6IEFkZGVkIGNvbnRleHRNZW51Q2xpZW50IGluaXRpYWxpc2F0aW9uLgorICAgICAgICAoZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOiBDaGFuZ2VkIGNvbmRpdGlvbi4KKwog
MjAxMS0xMi0wNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gSW50cm9kdWNlIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAppbmRleCBkMmI5ZjE5Li40NmJkMmI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAtMjQsMTEgKzI0LDE2
IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKKyNpbmNsdWRlICJld2tfbG9n
Z2luZy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWluYS5oPgogI2lu
Y2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAorc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgeworICAgIEVpbmFfTGlzdCogaXRl
bXM7IC8qKjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8KK307CisKIC8qKgogICogXHN0cnVjdCAgX0V3
a19Db250ZXh0X01lbnUKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBjb250ZXh0IG1lbnUgZGF0
YS4KQEAgLTQwLDcgKzQ1LDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51IHsKICNlbmRpZgog
ICAgIEV2YXNfT2JqZWN0KiB2aWV3OyAvKio8IHRoZSB2aWV3IG9iamVjdCAqLwogCi0gICAgRWlu
YV9MaXN0KiBpdGVtczsgLyoqPCB0aGUgbGlzdCBvZiBpdGVtcyAqLworICAgIEV3a19Db250ZXh0
X01lbnVfQ29yZSogY29yZU1lbnU7IC8qKjwgYSB3cmFwcGVyIGZvciBFaW5hX0xpc3QgY29udGFp
bmluZyBjb250ZXh0IG1lbnUgaXRlbXMgKi8KIH07CiAKIC8qKgpAQCAtNzIsNyArNzcsNyBAQCB2
b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAgICBp
ZiAoLS1tZW51LT5fX3JlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgRUlOQV9MSVNUX0ZSRUUo
bWVudS0+aXRlbXMsIGl0ZW0pCisgICAgRUlOQV9MSVNUX0ZSRUUobWVudS0+Y29yZU1lbnUtPml0
ZW1zLCBpdGVtKQogICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShzdGF0aWNfY2Fz
dDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiAKICAgICBmcmVlKG1lbnUpOwpAQCAt
OTMsOCArOTgsOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95KEV3a19Db250
ZXh0X01lbnUqIG1lbnUpCiBjb25zdCBFaW5hX0xpc3QqIGV3a19jb250ZXh0X21lbnVfaXRlbV9s
aXN0X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwobWVudS0+Y29yZU1lbnUsIDApOwogCi0gICAgcmV0dXJuIG1lbnUtPml0ZW1zOwor
ICAgIHJldHVybiBtZW51LT5jb3JlTWVudS0+aXRlbXM7CiB9CiAKIEV3a19Db250ZXh0X01lbnVf
SXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlw
ZSB0eXBlLApAQCAtMjIwLDEwICsyMjYsMTEgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVf
aXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVpbmFfQm8KICAq
CiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsbmV3IgogICovCi1Fd2tfQ29u
dGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29y
ZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorRXdrX0NvbnRleHRfTWVudSog
ZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250ZXh0X01lbnVf
Q29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxl
cikKIHsKICAgICBFd2tfQ29udGV4dF9NZW51KiBtZW51OwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoY29yZU1lbnUsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250
cm9sbGVyLCAwKTsKIAogICAgIG1lbnUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51Kj4o
bWFsbG9jKHNpemVvZigqbWVudSkpKTsKQEAgLTIzNSw3ICsyNDIsOCBAQCBFd2tfQ29udGV4dF9N
ZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29u
dGV4dE1lbnVDbwogICAgIG1lbnUtPl9fcmVmID0gMTsKICAgICBtZW51LT52aWV3ID0gdmlldzsK
ICAgICBtZW51LT5jb250cm9sbGVyID0gY29udHJvbGxlcjsKLSAgICBtZW51LT5pdGVtcyA9IDA7
CisgICAgbWVudS0+Y29yZU1lbnUgPSBjb3JlTWVudTsKKwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LG5ldyIsIG1lbnUpOwogCiAg
ICAgcmV0dXJuIG1lbnU7CkBAIC0yNzMsNyArMjgxLDcgQEAgYm9vbCBld2tfY29udGV4dF9tZW51
X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAqCiAgKiBAc2VlIGV3a19jb250ZXh0X21l
bnVfaXRlbV9uZXcKICAqLwotdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19D
b250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSkKK3ZvaWQg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVN
ZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7CiAgICAgRXdrX0Nv
bnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVf
SXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0
aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9BY3Rpb24+KGNvcmUuYWN0aW9uKCkp
OwpAQCAtMjgzLDQyICsyOTEsNTUgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5k
KEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLmVuYWJsZWQoKSk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudV9pdGVtKTsKIAotICAgIG1lbnUtPml0ZW1z
ID0gZWluYV9saXN0X2FwcGVuZChtZW51LT5pdGVtcywgbWVudV9pdGVtKTsKLSAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxpdGVtLGFw
cGVuZGVkIiwgbWVudSk7CisgICAgY29yZU1lbnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChj
b3JlTWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7CiB9CiAKIC8qKgogICogQGludGVybmFsCiAgKgot
ICogRW1pdHMgYSBzaWduYWwgd2l0aCB0aGUgaXRlbXMgb2YgdGhlIGNvbnRleHQgbWVudS4KKyAq
IEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxzaG93IgogICoKICAqIEBwYXJhbSBtZW51IHRo
ZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0dXJuIHRoZSBzYW1lIGNvbnRleHQgbWVudSBv
YmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBwYXJhbWV0ZXIKLSAqCi0gKiBAbm90ZSBlbWl0
cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9taXplIgotICoKLSAqIEBzZWUgZXdrX2NvbnRl
eHRfbWVudV9pdGVtX2xpc3RfZ2V0CiAgKi8KLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0
X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit2b2lkIGV3a19jb250ZXh0
X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewotICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
TihtZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmll
dywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIsIG1lbnUtPml0ZW1zKTsKLSAgICByZXR1cm4gbWVu
dTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250
ZXh0bWVudSxzaG93IiwgbWVudSk7CiB9CiAKIC8qKgogICogQGludGVybmFsCiAgKgotICogRW1p
dHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCisgKiBHZXRzIGEgVmVjdG9yIG9mIGNvbnRl
eHQgbWVudSBpdGVtcwogICoKLSAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0
CisgKiBAcGFyYW0gY29yZU1lbnUgdGhlIGNvbnRleHQgbWVudSBjb3JlIG9iamVjdAogICovCi12
b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51KQordm9pZCBl
d2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNv
cmVNZW51LCBWZWN0b3I8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4mIGl0ZW1zVmVjdG9yKQogewot
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1lbnUpOworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOKGNvcmVNZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LHNob3ciLCBtZW51KTsKKyAgICBFaW5hX0xp
c3QqIGw7CisgICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChjb3JlTWVudS0+
aXRlbXMsIGwsIGl0ZW0pCisgICAgICAgIGl0ZW1zVmVjdG9yLmFwcGVuZChzdGF0aWNfY2FzdDxF
d2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiB9CiAKKy8qKgorICogQGludGVybmFsCisg
KgorICogQ3JlYXRlcyBjb3JlIGNvbnRleHQgbWVudQorICoKKyAqLworRXdrX0NvbnRleHRfTWVu
dV9Db3JlKiBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCkKK3sKKyAgICBFd2tfQ29udGV4dF9N
ZW51X0NvcmUqIGNvcmVNZW51OworICAgIGNvcmVNZW51ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRl
eHRfTWVudV9Db3JlKj4obWFsbG9jKHNpemVvZigqY29yZU1lbnUpKSk7CisgICAgaWYgKCFjb3Jl
TWVudSkgeworICAgICAgICBDUklUSUNBTCgiQ291bGQgbm90IGFsbG9jYXRlIGNvbnRleHQgbWVu
dSBtZW1vcnkuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjb3JlTWVudS0+aXRl
bXMgPSAwOworICAgIHJldHVybiBjb3JlTWVudTsKK30KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGZkMzI0MDAuLjlmYmM0OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAgLTI0LDExICsyNCw3IEBACiAgKgogICog
VGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KCkpIGFyZSBlbWl0dGVkOgogICoKLSAqICAtICJjb250ZXh0bWVudSxjdXN0b21pemUiLCBFaW5h
X0xpc3QgKjogY3VzdG9taXplIGNvbnRleHQgbWVudSBpcyB0YWtlbgotICogICAgYW5kIGl0IGdp
dmVzIGEgbGlzdCB3aXRoIGl0ZW1zIG9mIGNvbnRleHQgbWVudSBhcyBhbiBhcmd1bWVudC4KICAq
ICAtICJjb250ZXh0bWVudSxmcmVlIiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIGNvbnRleHQgbWVu
dSBpcyBmcmVlZC4KLSAqICAtICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwgRXdrX0NvbnRl
eHRfTWVudSAqOiBhIG5ldyBpdGVtIHdhcyBhZGRlZCB0bwotICogICAgdGhlIGNvbnRleHQgbWVu
dS4KICAqICAtICJjb250ZXh0bWVudSxuZXciLCBFd2tfQ29udGV4dF9NZW51ICo6IGEgbmV3IGNv
bnRleHQgbWVudSB3YXMgY3JlYXRlZAogICogICAgYW5kIGl0IGdpdmVzIHRoZSBjb250ZXh0IG1l
bnUgYXMgYW4gYXJndW1lbnQuCiAgKiAgLSAiY29udGV4dG1lbnUsc2hvdyIsIEV3a19Db250ZXh0
X01lbnUgKjogYSBjb250ZXh0IG1lbnUgaXMgc2hvd24uCkBAIC0xMzgsNiArMTM0LDkgQEAgZW51
bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgewogICAgIEVXS19TRVBBUkFUT1JfVFlQRSwK
ICAgICBFV0tfU1VCTUVOVV9UWVBFCiB9OworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9F
d2tfQ29udGV4dF9NZW51X0NvcmUgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51
X0NvcmUgRXdrX0NvbnRleHRfTWVudV9Db3JlOworCiAvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBm
b3IgX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICovCiB0eXBlZGVmIGVudW0gX0V3a19Db250
ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDZmNTMzMjEuLjc2MjFhZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTlBf
anNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5j
bHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2hpc3RvcnkuaCIKICNpbmNs
dWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpAQCAtMTY0LDExICsxNjUsMTMg
QEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0b3J5X25ldyhXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJ
bXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdrX2hpc3RvcnlfZnJlZShFd2tfSGlzdG9yeSogaGlzdG9y
eSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLUV3a19Db250ZXh0X01lbnUqIGV3a19j
b250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIpOworRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVu
dV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUs
IFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7CiBib29sIGV3a19j
b250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9NZW51KiBvKTsKLXZvaWQgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBvLCBXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW0mIGNvcmUpOwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250
ZXh0X01lbnVfQ29yZSogbywgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKTsK
IEV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0
X01lbnUqIG8pOwogdm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0NvbnRleHRfTWVudSog
byk7Cit2b2lkIGV3a19jb250ZXh0X21lbnVfY29yZV92ZWN0b3JfZ2V0KEV3a19Db250ZXh0X01l
bnVfQ29yZSogbywgVmVjdG9yPEV3a19Db250ZXh0X01lbnVfSXRlbSo+JiBpdGVtc1ZlY3Rvcik7
CitFd2tfQ29udGV4dF9NZW51X0NvcmUqIGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcoKTsKICNl
bmRpZgogCiBjb25zdCBFaW5hX1JlY3RhbmdsZSogZXdrX3ZpZXdfcmVwYWludHNfZ2V0KGNvbnN0
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90KiBjb3VudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcAppbmRleCAyOWJlMjE5Li40ZTk0NTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKKyNpbmNsdWRl
ICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEVm
bC5oIgpAQCAtNTk5LDYgKzYwMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9l
d2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBX
ZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdlQ2xpZW50cy5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2Vs
Zik7CisgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q29u
dGV4dE1lbnVDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xpZW50cy5lZGl0
b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7
CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZs
OwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpJbnNwZWN0
b3JDbGllbnRFZmw7CkBAIC0xNDY4LDcgKzE0NzAsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29u
dGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNf
RQogICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVz
c0V2ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBpZiAobWFpbkZyYW1lLT5ldmVudEhhbmRsZXIo
KS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQorICAgIGlmICghbWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUgPQpkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0Vm
bC5jbWFrZQppbmRleCBkMmQyMWUyLi5kNjQ0MDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAt
MzcsNyArMzcsNyBAQCBGSU5EX1BBQ0tBR0UoVGhyZWFkcyBSRVFVSVJFRCkKIEZJTkRfUEFDS0FH
RShKUEVHIFJFUVVJUkVEKQogRklORF9QQUNLQUdFKFBORyBSRVFVSVJFRCkKIAotQUREX0RFRklO
SVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MCkKK0FERF9ERUZJTklUSU9OUygtREVOQUJM
RV9DT05URVhUX01FTlVTPTEpCiAKIFNFVChXVEZfVVNFX1BUSFJFQURTIDEpCiBBRERfREVGSU5J
VElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118580</attachid>
            <date>2011-12-09 08:10:26 -0800</date>
            <delta_ts>2011-12-20 03:44:18 -0800</delta_ts>
            <desc>new files added to previous patch</desc>
            <filename>proposed_patch4.diff</filename>
            <type>text/plain</type>
            <size>26428</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1MTJmNWZjLi40MTk2YjNm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTA5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFi
b3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWNj
ZWxlcmF0ZWQgQ29tcG9zaXRpbmcgdXNpbmcgQ2x1dHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggZjljZTQwNi4uYTg3NTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0
IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9N
RU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGlu
IEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDogRW5hYmxlIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVO
VVMgZm9yIEVGTCBwbGF0Zm9ybS4KKwogMjAxMS0xMi0wOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHJlbG9hZGluZyBzdG9yYWdlIHBvaW50ZXIgZm9y
IGluZGV4ZWQgcHJvcGVydGllcyB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggNzJiZjIzYi4uMzM2NjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtMTA3Miw3ICsxMDcyLDcgQEAKICNkZWZpbmUgV1RGX1VTRV9QTEFURk9S
TV9TVFJBVEVHSUVTIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JN
KFdJTikgfHwgUExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NP
TlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Mzk3MmMxLi40ZDkxYjE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2
ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0
IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1Nf
UExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5v
IG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVy
ZXMgYXJlIHVzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnUuaDogQ2hhbmdlZCBOYXRpdmVNZW51IGRlZmluaXRpb24gdG8gRXdrX0Nv
bnRleHRfTWVudV9Db3JlKi4KKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDog
Q2hhbmdlZCBOYXRpdmVJdGVtIGRlZmluaXRpb24gdG8gRXdrX0NvbnRleHRfTWVudV9JdGVtKiBh
bmQgY2hhbmdlZCBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OkNv
bnRleHRNZW51KTogQ2hhbmdlIHBhcmFtZXRlciB0byBtYXRjaCBuZXcgTmF0aXZlTWVudSBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmdldENvbnRleHRNZW51SXRl
bXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjcmVhdGVO
YXRpdmVNZW51RnJvbUl0ZW1zKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudTo6bmF0aXZlTWVudSk6IENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBO
YXRpdmVNZW51IGRlZmluaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51
SXRlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OkNvbnRleHRN
ZW51SXRlbSk6IEltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
OjpuYXRpdmVNZW51SXRlbSk6IENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBOYXRp
dmVJdGVtIGRlZmluaXRpb24uCisKIDIwMTEtMTItMDkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZp
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpbnNwZWN0b3IgdXRpbGl0aWVz
IHN5bnRheCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCBjYmRm
NTNhLi40YTc3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTU0
LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAg
ICAgdHlwZWRlZiBITUVOVSBOYXRpdmVNZW51OwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgICAg
ICB0eXBlZGVmIHZvaWQqIE5hdGl2ZU1lbnU7CisgICAgICAgIHR5cGVkZWYgRXdrX0NvbnRleHRf
TWVudV9Db3JlKiBOYXRpdmVNZW51OwogI2VuZGlmCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRN
ZW51KE5hdGl2ZU1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oCmluZGV4IGUzNjkzNDguLmM1MzIzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5oCkBAIC00OCw2ICs0OCw4IEBAIHR5cGVkZWYgc3RydWN0IF9HdGtBY3Rp
b24gR3RrQWN0aW9uOwogI2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxpZiBQTEFURk9STShXWCkKIGNs
YXNzIHd4TWVudUl0ZW07CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSAiZXdrX2NvbnRl
eHRtZW51LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjUzLDEwICsyNTUs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgdHlw
ZWRlZiBNRU5VSVRFTUlORk8gTmF0aXZlSXRlbTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAg
ICAgdHlwZWRlZiB2b2lkKiBOYXRpdmVJdGVtOworICAgICAgICB0eXBlZGVmIEV3a19Db250ZXh0
X01lbnVfSXRlbSogTmF0aXZlSXRlbTsKICNlbmRpZgogICAgICAgICBDb250ZXh0TWVudUl0ZW0o
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVj
a2VkLCBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zKTsKKyNpZiBQ
TEFURk9STShFRkwpCisgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShOYXRpdmVJdGVt
KTsKKyNlbHNlCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShjb25zdCBOYXRpdmVJ
dGVtJik7CisjZW5kaWYKIAogICAgICAgICAvLyBPbiBXaW5kb3dzLCB0aGUgdGl0bGUgKGR3VHlw
ZURhdGEgb2YgdGhlIE1FTlVJVEVNSU5GTykgaXMgbm90IHNldCBpbiB0aGlzIGZ1bmN0aW9uLiBD
YWxsZXJzIGNhbiBzZXQgdGhlIHRpdGxlIHRoZW1zZWx2ZXMsCiAgICAgICAgIC8vIGFuZCBoYW5k
bGUgdGhlIGxpZmV0aW1lIG9mIHRoZSB0aXRsZSwgaWYgdGhleSBuZWVkIGl0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNDZhMjBkYy4u
NTY5MDhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRN
ZW51RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVF
ZmwuY3BwCkBAIC0yNCwyNyArMjQsMzcgQEAKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJld2tfY29u
dGV4dG1lbnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUykKLUNvbnRleHRNZW51
OjpDb250ZXh0TWVudSh2b2lkKiBtZW51KQorQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KEV3a19D
b250ZXh0X01lbnVfQ29yZSogbWVudSkKIHsKICAgICBnZXRDb250ZXh0TWVudUl0ZW1zKG1lbnUs
IG1faXRlbXMpOwogfQogCi12b2lkIENvbnRleHRNZW51OjpnZXRDb250ZXh0TWVudUl0ZW1zKHZv
aWQqIG1lbnUsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK3ZvaWQgQ29udGV4dE1l
bnU6OmdldENvbnRleHRNZW51SXRlbXMoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBtZW51LCBWZWN0
b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBpdGVtcy5jbGVhcigpOworICAgIFZlY3RvcjxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPiBuYXRp
dmVJdGVtczsKKyAgICBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChtZW51LCBuYXRp
dmVJdGVtcyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hdGl2ZUl0ZW1zLnNpemUo
KTsgKytpKQorICAgICAgICBpdGVtcy5hcHBlbmQoQ29udGV4dE1lbnVJdGVtKG5hdGl2ZUl0ZW1z
W2ldKSk7CiB9CiAKLXZvaWQqIENvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1z
KGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK0V3a19Db250ZXh0X01lbnVf
Q29yZSogQ29udGV4dE1lbnU6OmNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9y
PENvbnRleHRNZW51SXRlbT4mIGl0ZW1zKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIDA7CisgICAgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSA9IGV3a19jb250
ZXh0X21lbnVfY29yZV9uZXcoKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbXMu
c2l6ZSgpOyArK2kpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoY29yZU1l
bnUsIGl0ZW1zW2ldKTsKKyAgICByZXR1cm4gY29yZU1lbnU7CiB9CiAKLXZvaWQqIENvbnRleHRN
ZW51OjpuYXRpdmVNZW51KCkgY29uc3QKK0V3a19Db250ZXh0X01lbnVfQ29yZSogQ29udGV4dE1l
bnU6Om5hdGl2ZU1lbnUoKSBjb25zdAogewogICAgIHJldHVybiBjcmVhdGVOYXRpdmVNZW51RnJv
bUl0ZW1zKG1faXRlbXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
Q29udGV4dE1lbnVJdGVtRWZsLmNwcAppbmRleCA0MjVjNmE2Li5mYTNkNTk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAt
MzEsMTEgKzMxLDIyIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgorI2luY2x1
ZGUgImV3a19wcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShDUk9T
U19QTEFURk9STV9DT05URVhUX01FTlVTKQotdm9pZCogQ29udGV4dE1lbnVJdGVtOjpuYXRpdmVN
ZW51SXRlbSgpIGNvbnN0CitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgbV90eXBlID0gc3RhdGljX2Nhc3Q8Q29udGV4
dE1lbnVJdGVtVHlwZT4oZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pKTsKKyAg
ICBtX2FjdGlvbiA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51QWN0aW9uPihld2tfY29udGV4dF9t
ZW51X2l0ZW1fYWN0aW9uX2dldChpdGVtKSk7CisgICAgbV90aXRsZSA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisgICAgbV9lbmFibGVkID0gZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2VuYWJsZWRfZ2V0KGl0ZW0pOworICAgIG1fY2hlY2tlZCA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV9jaGVja2VkX2dldChpdGVtKTsKK30KKworRXdrX0NvbnRleHRfTWVudV9JdGVtKiBD
b250ZXh0TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ01h
a2VMaXN0c0VmbC50eHQgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dAppbmRl
eCBjNWVmNjU2Li41ZjU3OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxp
c3RzRWZsLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dApAQCAt
NjUsNiArNjUsNyBAQCBFTkRJRiAoKQogTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKICAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Db250
ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEVmbC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwppbmRleCBmNDM1MTA1Li4zOTYyZTY5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDEgQEAKKzIwMTEtMTItMDkgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBh
a3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250
ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVY
VF9NRU5VUworICAgICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRz
IGluIEVGTCBld2tfY29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogQWRkZWQgQ29udGV4dE1lbnVDbGllbnRFZmwu
Y3BwIHRvIHNvdXJjZXMgbGlzdC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVu
dUNsaWVudEVmbC5jcHA6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6Q29udGV4dE1lbnVDbGllbnRFZmwpOiBBZGRlZCBhbmQgaW1wbGVt
ZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1l
bnVEZXN0cm95ZWQpOiBBZGRlZCBhbmQgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNsaWVudEVmbDo6Y3VzdG9taXplTWVudSk6IEltcGxlbWVudGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6ZG93bmxv
YWRVUkwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjps
b29rVXBJbkRpY3Rpb25hcnkpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q2xpZW50RWZsOjpzcGVhayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVD
bGllbnRFZmw6OmlzU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKTogQWRkZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaDogUmVzdG9yZSB0aGUgZmlsZS4K
KyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDogQWRkZWQgX0V3a19Db250ZXh0X01l
bnVfQ29yZSBhcyBhIHdyYXAgZm9yIEVpbmFfTGlzdC4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfdW5yZWYpOiBVcGRhdGVkIEVpbmFfTGlzdCBmcmVlaW5nLgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9pdGVtX2xpc3RfZ2V0KTogVXBkYXRlZCBFaW5hX0xpc3QgcmV0dXJuLgorICAgICAg
ICAoZXdrX2NvbnRleHRfbWVudV9uZXcpOiBBZGRlZCBFd2tfQ29udGV4dF9NZW51X0NvcmUgYXMg
cGFyYW1ldGVyLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZCk6IENoYW5n
ZWQgcGFyZW1ldGVyIGZyb20gRXdrX0NvbnRleHRfTWVudSB0byBFd2tfQ29udGV4dF9NZW51X0Nv
cmUuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X3Nob3cpOgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9jb3JlX3ZlY3Rvcl9nZXQpOiBBZGRlZC4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfY29yZV9uZXcpOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51Lmg6IEFk
ZGVkIG5ldyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb24gb2YgRXdrX0NvbnRleHRfTWVudV9Db3Jl
CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IEFkZGVkIGZ1bmN0aW9uIGRlZmluaXRpb24u
CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25l
dyk6IEFkZGVkIGNvbnRleHRNZW51Q2xpZW50IGluaXRpYWxpc2F0aW9uLgorICAgICAgICAoZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOiBDaGFuZ2VkIGNvbmRpdGlvbi4KKwog
MjAxMS0xMi0wNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gSW50cm9kdWNlIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YWRjYTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNs
aWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1i
ZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRF
ZmwuaCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29udGV4dE1lbnVDbGllbnRFZmw6OkNvbnRl
eHRNZW51Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCisg
ICAgLCBtX25hdGl2ZU1lbnUoMCkKK3sKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6
Y29udGV4dE1lbnVEZXN0cm95ZWQoKQoreworICAgIGlmIChtX25hdGl2ZU1lbnUpCisgICAgICAg
IGV3a19jb250ZXh0X21lbnVfZnJlZShtX25hdGl2ZU1lbnUpOworICAgIGRlbGV0ZSB0aGlzOwor
fQorCitQYXNzT3duUHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNsaWVudEVmbDo6Y3VzdG9t
aXplTWVudShQYXNzT3duUHRyPENvbnRleHRNZW51PiBjb250ZXh0TWVudSkKK3sKKyAgICBpZiAo
bV9uYXRpdmVNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUobV9uYXRpdmVNZW51
KTsKKworICAgIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUgPSBjb250ZXh0TWVudS0+
bmF0aXZlTWVudSgpOworICAgIG1fbmF0aXZlTWVudSA9IGV3a19jb250ZXh0X21lbnVfbmV3KG1f
dmlldywgY29yZU1lbnUsIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPmNvbnRleHRNZW51
Q29udHJvbGxlcigpKTsKKyAgICBld2tfY29udGV4dF9tZW51X3Nob3cobV9uYXRpdmVNZW51KTsK
KyAgICBPd25QdHI8Q29udGV4dE1lbnU+IGN1c3RvbWl6ZWRNZW51ID0gYWRvcHRQdHIobmV3IENv
bnRleHRNZW51KGNvcmVNZW51KSk7CisKKyAgICByZXR1cm4gY3VzdG9taXplZE1lbnUucmVsZWFz
ZSgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0sIGNvbnN0IENvbnRleHRNZW51KiBwYXJlbnRNZW51
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRF
Zmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcEluRGljdGlvbmFyeShGcmFtZSop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiti
b29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENv
bnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42OGU0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtMCwwICsx
LDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHly
aWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0
TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xpZW50RWZsX2gKKworI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENv
bnRleHRNZW51OworCitjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbCA6IHB1YmxpYyBDb250ZXh0
TWVudUNsaWVudCB7CitwdWJsaWM6CisgICAgQ29udGV4dE1lbnVDbGllbnRFZmwoRXZhc19PYmpl
Y3QqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsKKworICAgIHZp
cnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4gY3VzdG9taXplTWVudShQYXNz
T3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Pik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kik7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgS1VSTCYpOworICAgIHZpcnR1YWwg
dm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3BlYWso
Y29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcFNwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhHb29n
bGUoY29uc3QgRnJhbWUqKTsKKworcHJpdmF0ZToKKyAgICBFdmFzX09iamVjdCogbV92aWV3Owor
ICAgIEV3a19Db250ZXh0X01lbnUqIG1fbmF0aXZlTWVudTsKK307Cit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAppbmRleCBkMmI5ZjE5Li40NmJk
MmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAtMjQs
MTEgKzI0LDE2IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0
TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKKyNpbmNsdWRl
ICJld2tfbG9nZ2luZy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWlu
YS5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAorc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgeworICAgIEVpbmFf
TGlzdCogaXRlbXM7IC8qKjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8KK307CisKIC8qKgogICogXHN0
cnVjdCAgX0V3a19Db250ZXh0X01lbnUKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBjb250ZXh0
IG1lbnUgZGF0YS4KQEAgLTQwLDcgKzQ1LDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51IHsK
ICNlbmRpZgogICAgIEV2YXNfT2JqZWN0KiB2aWV3OyAvKio8IHRoZSB2aWV3IG9iamVjdCAqLwog
Ci0gICAgRWluYV9MaXN0KiBpdGVtczsgLyoqPCB0aGUgbGlzdCBvZiBpdGVtcyAqLworICAgIEV3
a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnU7IC8qKjwgYSB3cmFwcGVyIGZvciBFaW5hX0xp
c3QgY29udGFpbmluZyBjb250ZXh0IG1lbnUgaXRlbXMgKi8KIH07CiAKIC8qKgpAQCAtNzIsNyAr
NzcsNyBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSogbWVu
dSkKICAgICBpZiAoLS1tZW51LT5fX3JlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgRUlOQV9M
SVNUX0ZSRUUobWVudS0+aXRlbXMsIGl0ZW0pCisgICAgRUlOQV9MSVNUX0ZSRUUobWVudS0+Y29y
ZU1lbnUtPml0ZW1zLCBpdGVtKQogICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShz
dGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiAKICAgICBmcmVlKG1l
bnUpOwpAQCAtOTMsOCArOTgsOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95
KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiBjb25zdCBFaW5hX0xpc3QqIGV3a19jb250ZXh0X21l
bnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwobWVudS0+Y29yZU1lbnUsIDApOwogCi0gICAgcmV0dXJuIG1lbnUt
Pml0ZW1zOworICAgIHJldHVybiBtZW51LT5jb3JlTWVudS0+aXRlbXM7CiB9CiAKIEV3a19Db250
ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51
X0l0ZW1fVHlwZSB0eXBlLApAQCAtMjIwLDEwICsyMjYsMTEgQEAgRWluYV9Cb29sIGV3a19jb250
ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVp
bmFfQm8KICAqCiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsbmV3IgogICov
Ci1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmll
dywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorRXdrX0NvbnRl
eHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250
ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciog
Y29udHJvbGxlcikKIHsKICAgICBFd2tfQ29udGV4dF9NZW51KiBtZW51OwogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoY29yZU1lbnUsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChjb250cm9sbGVyLCAwKTsKIAogICAgIG1lbnUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4
dF9NZW51Kj4obWFsbG9jKHNpemVvZigqbWVudSkpKTsKQEAgLTIzNSw3ICsyNDIsOCBAQCBFd2tf
Q29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2Vi
Q29yZTo6Q29udGV4dE1lbnVDbwogICAgIG1lbnUtPl9fcmVmID0gMTsKICAgICBtZW51LT52aWV3
ID0gdmlldzsKICAgICBtZW51LT5jb250cm9sbGVyID0gY29udHJvbGxlcjsKLSAgICBtZW51LT5p
dGVtcyA9IDA7CisgICAgbWVudS0+Y29yZU1lbnUgPSBjb3JlTWVudTsKKwogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LG5ldyIsIG1l
bnUpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0yNzMsNyArMjgxLDcgQEAgYm9vbCBld2tfY29u
dGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAqCiAgKiBAc2VlIGV3a19j
b250ZXh0X21lbnVfaXRlbV9uZXcKICAqLwotdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBw
ZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29y
ZSkKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51X0Nv
cmUqIGNvcmVNZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7CiAg
ICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19Db250
ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAgRXdrX0NvbnRleHRfTWVudV9B
Y3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9BY3Rpb24+KGNvcmUu
YWN0aW9uKCkpOwpAQCAtMjgzLDQyICsyOTEsNTUgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0
ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLmVuYWJsZWQo
KSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudV9pdGVtKTsKIAotICAgIG1l
bnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtZW51LT5pdGVtcywgbWVudV9pdGVtKTsKLSAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVu
dSxpdGVtLGFwcGVuZGVkIiwgbWVudSk7CisgICAgY29yZU1lbnUtPml0ZW1zID0gZWluYV9saXN0
X2FwcGVuZChjb3JlTWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7CiB9CiAKIC8qKgogICogQGludGVy
bmFsCiAgKgotICogRW1pdHMgYSBzaWduYWwgd2l0aCB0aGUgaXRlbXMgb2YgdGhlIGNvbnRleHQg
bWVudS4KKyAqIEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxzaG93IgogICoKICAqIEBwYXJh
bSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0dXJuIHRoZSBzYW1lIGNvbnRl
eHQgbWVudSBvYmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBwYXJhbWV0ZXIKLSAqCi0gKiBA
bm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9taXplIgotICoKLSAqIEBzZWUg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0CiAgKi8KLUV3a19Db250ZXh0X01lbnUqIGV3
a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit2b2lkIGV3
a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTihtZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwo
bWVudS0+dmlldywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIsIG1lbnUtPml0ZW1zKTsKLSAgICBy
ZXR1cm4gbWVudTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZp
ZXcsICJjb250ZXh0bWVudSxzaG93IiwgbWVudSk7CiB9CiAKIC8qKgogICogQGludGVybmFsCiAg
KgotICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCisgKiBHZXRzIGEgVmVjdG9y
IG9mIGNvbnRleHQgbWVudSBpdGVtcwogICoKLSAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1l
bnUgb2JqZWN0CisgKiBAcGFyYW0gY29yZU1lbnUgdGhlIGNvbnRleHQgbWVudSBjb3JlIG9iamVj
dAogICovCi12b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51
KQordm9pZCBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChFd2tfQ29udGV4dF9NZW51
X0NvcmUqIGNvcmVNZW51LCBWZWN0b3I8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4mIGl0ZW1zVmVj
dG9yKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1lbnUpOworICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKGNvcmVNZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LHNob3ciLCBtZW51KTsKKyAg
ICBFaW5hX0xpc3QqIGw7CisgICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChj
b3JlTWVudS0+aXRlbXMsIGwsIGl0ZW0pCisgICAgICAgIGl0ZW1zVmVjdG9yLmFwcGVuZChzdGF0
aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiB9CiAKKy8qKgorICogQGlu
dGVybmFsCisgKgorICogQ3JlYXRlcyBjb3JlIGNvbnRleHQgbWVudQorICoKKyAqLworRXdrX0Nv
bnRleHRfTWVudV9Db3JlKiBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCkKK3sKKyAgICBFd2tf
Q29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51OworICAgIGNvcmVNZW51ID0gc3RhdGljX2Nhc3Q8
RXdrX0NvbnRleHRfTWVudV9Db3JlKj4obWFsbG9jKHNpemVvZigqY29yZU1lbnUpKSk7CisgICAg
aWYgKCFjb3JlTWVudSkgeworICAgICAgICBDUklUSUNBTCgiQ291bGQgbm90IGFsbG9jYXRlIGNv
bnRleHQgbWVudSBtZW1vcnkuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjb3Jl
TWVudS0+aXRlbXMgPSAwOworICAgIHJldHVybiBjb3JlTWVudTsKK30KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGZkMzI0MDAuLjlmYmM0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAgLTI0LDExICsyNCw3IEBA
CiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKLSAqICAtICJjb250ZXh0bWVudSxjdXN0b21p
emUiLCBFaW5hX0xpc3QgKjogY3VzdG9taXplIGNvbnRleHQgbWVudSBpcyB0YWtlbgotICogICAg
YW5kIGl0IGdpdmVzIGEgbGlzdCB3aXRoIGl0ZW1zIG9mIGNvbnRleHQgbWVudSBhcyBhbiBhcmd1
bWVudC4KICAqICAtICJjb250ZXh0bWVudSxmcmVlIiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIGNv
bnRleHQgbWVudSBpcyBmcmVlZC4KLSAqICAtICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwg
RXdrX0NvbnRleHRfTWVudSAqOiBhIG5ldyBpdGVtIHdhcyBhZGRlZCB0bwotICogICAgdGhlIGNv
bnRleHQgbWVudS4KICAqICAtICJjb250ZXh0bWVudSxuZXciLCBFd2tfQ29udGV4dF9NZW51ICo6
IGEgbmV3IGNvbnRleHQgbWVudSB3YXMgY3JlYXRlZAogICogICAgYW5kIGl0IGdpdmVzIHRoZSBj
b250ZXh0IG1lbnUgYXMgYW4gYXJndW1lbnQuCiAgKiAgLSAiY29udGV4dG1lbnUsc2hvdyIsIEV3
a19Db250ZXh0X01lbnUgKjogYSBjb250ZXh0IG1lbnUgaXMgc2hvd24uCkBAIC0xMzgsNiArMTM0
LDkgQEAgZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgewogICAgIEVXS19TRVBBUkFU
T1JfVFlQRSwKICAgICBFV0tfU1VCTUVOVV9UWVBFCiB9OworLyoqIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfQ29u
dGV4dF9NZW51X0NvcmUgRXdrX0NvbnRleHRfTWVudV9Db3JlOworCiAvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICovCiB0eXBlZGVmIGVudW0g
X0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDZmNTMzMjEuLjc2MjFhZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0
LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2hpc3Rvcnku
aCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpAQCAtMTY0LDEx
ICsxNjUsMTMgQEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0b3J5X25ldyhXZWJDb3JlOjpCYWNrRm9y
d2FyZExpc3RJbXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdrX2hpc3RvcnlfZnJlZShFd2tfSGlzdG9y
eSogaGlzdG9yeSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLUV3a19Db250ZXh0X01l
bnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250
ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOworRXdrX0NvbnRleHRfTWVudSogZXdrX2Nv
bnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250ZXh0X01lbnVfQ29yZSog
Y29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7CiBi
b29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9NZW51KiBvKTsKLXZvaWQgZXdr
X2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBvLCBXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW0mIGNvcmUpOwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5k
KEV3a19Db250ZXh0X01lbnVfQ29yZSogbywgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
JiBjb3JlKTsKIEV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3
a19Db250ZXh0X01lbnUqIG8pOwogdm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0NvbnRl
eHRfTWVudSogbyk7Cit2b2lkIGV3a19jb250ZXh0X21lbnVfY29yZV92ZWN0b3JfZ2V0KEV3a19D
b250ZXh0X01lbnVfQ29yZSogbywgVmVjdG9yPEV3a19Db250ZXh0X01lbnVfSXRlbSo+JiBpdGVt
c1ZlY3Rvcik7CitFd2tfQ29udGV4dF9NZW51X0NvcmUqIGV3a19jb250ZXh0X21lbnVfY29yZV9u
ZXcoKTsKICNlbmRpZgogCiBjb25zdCBFaW5hX1JlY3RhbmdsZSogZXdrX3ZpZXdfcmVwYWludHNf
Z2V0KGNvbnN0IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90KiBjb3VudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCAyOWJlMjE5Li40ZTk0NTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJCcmlk
Z2UuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJh
Z0NsaWVudEVmbC5oIgpAQCAtNTk5LDYgKzYwMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRl
X0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEp
CiAKICAgICBXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdl
Q2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0
RGF0YS0+c2VsZik7CisgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2Vi
Q29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xp
ZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0
YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFn
Q2xpZW50RWZsOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw7CkBAIC0xNDY4LDcgKzE0NzAsNyBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IEV2YXNfRQogICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
TW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBpZiAobWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQorICAgIGlmICghbWFpbkZy
YW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUgPQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZQppbmRleCBkMmQyMWUyLi5kNjQ0MDExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5j
bWFrZQpAQCAtMzcsNyArMzcsNyBAQCBGSU5EX1BBQ0tBR0UoVGhyZWFkcyBSRVFVSVJFRCkKIEZJ
TkRfUEFDS0FHRShKUEVHIFJFUVVJUkVEKQogRklORF9QQUNLQUdFKFBORyBSRVFVSVJFRCkKIAot
QUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MCkKK0FERF9ERUZJTklUSU9O
UygtREVOQUJMRV9DT05URVhUX01FTlVTPTEpCiAKIFNFVChXVEZfVVNFX1BUSFJFQURTIDEpCiBB
RERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120004</attachid>
            <date>2011-12-20 03:44:18 -0800</date>
            <delta_ts>2011-12-23 02:14:15 -0800</delta_ts>
            <desc>variable style fixes</desc>
            <filename>proposed_patch_style_changes.diff</filename>
            <type>text/plain</type>
            <size>26457</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1NjcyYmYwLi41NjkzYmFk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMjAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTE4ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNt
YW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZW5hbWUgRWRpdENvbW1hbmRRdCB0byBVbmRvU3Rl
cFF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBlMDA3ZGMzLi42ZjE0MDU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0yMCAgTWljaGHFgiBQ
YWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IENvbnRleHQgbWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2lu
ZyBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLiBBcyB0aGVy
ZSBhcmUgbm8gbmF0aXZlIHdpZGdldHMgaW4gRUZMIGV3a19jb250ZXh0X21lbnUKKyAgICAgICAg
c3RydWN0dXJlcyBhcmUgdXNlZC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBFbmFibGUg
Q1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUyBmb3IgRUZMIHBsYXRmb3JtLgorCiAyMDExLTEy
LTE5ICBZdXFpYW5nIFhpYW4gIDx5dXFpYW5nLnhpYW5AaW50ZWwuY29tPgogCiAgICAgICAgIFRl
bXBvcmFyeSBHUFIgc2hvdWxkIG5vdCBiZSBsYXppbHkgYWxsb2NhdGVkIGluIERGRyBKSVQgb24g
WDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggOTI2MmM2ZS4uMWRkMThh
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMTA3NSw3ICsxMDc1LDcg
QEAKICNkZWZpbmUgV1RGX1VTRV9QTEFURk9STV9TVFJBVEVHSUVTIDEKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oRUZMKQogI2RlZmlu
ZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA1NGUyNGRlLi42YThlYzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTEtMTItMjAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9y
dCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAg
ICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tfY29u
dGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnUuaDogQ2hhbmdlZCBOYXRp
dmVNZW51IGRlZmluaXRpb24gdG8gRXdrX0NvbnRleHRfTWVudV9Db3JlKi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDogQ2hhbmdlZCBOYXRpdmVJdGVtIGRlZmluaXRpb24g
dG8gRXdrX0NvbnRleHRfTWVudV9JdGVtKiBhbmQgY2hhbmdlZCBjb25zdHJ1Y3RvciBkZWNsYXJh
dGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OkNvbnRleHRNZW51KTogQ2hhbmdlIHBhcmFtZXRlciB0
byBtYXRjaCBuZXcgTmF0aXZlTWVudSBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnU6OmdldENvbnRleHRNZW51SXRlbXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1zKTogSW1wbGVtZW50
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6bmF0aXZlTWVudSk6IENoYW5nZWQg
cmV0dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBOYXRpdmVNZW51IGRlZmluaXRpb24uCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbSk6IEltcGxlbWVudGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpuYXRpdmVNZW51SXRlbSk6IENoYW5nZWQgcmV0
dXJuIHZhbHVlIHRvIG1hdGNoIG5ldyBOYXRpdmVJdGVtIGRlZmluaXRpb24uCisKIDIwMTEtMTIt
MjAgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSBjb21wb3NpdGluZy9zaGFkb3dzIHRlc3RzIGZhaWwgd2l0aCBhY2NlbGVyYXRlZCBw
YWludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKaW5kZXggY2JkZjUzYS4u
NGE3NzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCkBAIC01NCw3ICs1
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShXSU4pCiAgICAgICAgIHR5
cGVkZWYgSE1FTlUgTmF0aXZlTWVudTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAgICAgdHlw
ZWRlZiB2b2lkKiBOYXRpdmVNZW51OworICAgICAgICB0eXBlZGVmIEV3a19Db250ZXh0X01lbnVf
Q29yZSogTmF0aXZlTWVudTsKICNlbmRpZgogICAgICAgICBleHBsaWNpdCBDb250ZXh0TWVudShO
YXRpdmVNZW51KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4
dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApp
bmRleCBlMzY5MzQ4Li5jNTMyMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uaApAQCAtNDgsNiArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrQWN0aW9uIEd0
a0FjdGlvbjsKICNpbmNsdWRlIDxRQWN0aW9uPgogI2VsaWYgUExBVEZPUk0oV1gpCiBjbGFzcyB3
eE1lbnVJdGVtOworI2VsaWYgUExBVEZPUk0oRUZMKQorI2luY2x1ZGUgImV3a19jb250ZXh0bWVu
dS5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI1MywxMCArMjU1LDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShXSU4pCiAgICAgICAgIHR5cGVkZWYg
TUVOVUlURU1JTkZPIE5hdGl2ZUl0ZW07CiAjZWxpZiBQTEFURk9STShFRkwpCi0gICAgICAgIHR5
cGVkZWYgdm9pZCogTmF0aXZlSXRlbTsKKyAgICAgICAgdHlwZWRlZiBFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIE5hdGl2ZUl0ZW07CiAjZW5kaWYKICAgICAgICAgQ29udGV4dE1lbnVJdGVtKENvbnRl
eHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCwg
Y29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbT4mIHN1Yk1lbnVJdGVtcyk7CisjaWYgUExBVEZP
Uk0oRUZMKQorICAgICAgICBleHBsaWNpdCBDb250ZXh0TWVudUl0ZW0oTmF0aXZlSXRlbSk7Cisj
ZWxzZQogICAgICAgICBleHBsaWNpdCBDb250ZXh0TWVudUl0ZW0oY29uc3QgTmF0aXZlSXRlbSYp
OworI2VuZGlmCiAKICAgICAgICAgLy8gT24gV2luZG93cywgdGhlIHRpdGxlIChkd1R5cGVEYXRh
IG9mIHRoZSBNRU5VSVRFTUlORk8pIGlzIG5vdCBzZXQgaW4gdGhpcyBmdW5jdGlvbi4gQ2FsbGVy
cyBjYW4gc2V0IHRoZSB0aXRsZSB0aGVtc2VsdmVzLAogICAgICAgICAvLyBhbmQgaGFuZGxlIHRo
ZSBsaWZldGltZSBvZiB0aGUgdGl0bGUsIGlmIHRoZXkgbmVlZCBpdC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCmluZGV4IDQ2YTIwZGMuLjU2OTA4
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVm
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNw
cApAQCAtMjQsMjcgKzI0LDM3IEBACiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRt
ZW51LmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAjaWYgVVNFKENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMpCi1Db250ZXh0TWVudTo6Q29u
dGV4dE1lbnUodm9pZCogbWVudSkKK0NvbnRleHRNZW51OjpDb250ZXh0TWVudShFd2tfQ29udGV4
dF9NZW51X0NvcmUqIG1lbnUpCiB7CiAgICAgZ2V0Q29udGV4dE1lbnVJdGVtcyhtZW51LCBtX2l0
ZW1zKTsKIH0KIAotdm9pZCBDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVtcyh2b2lkKiBt
ZW51LCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCit2b2lkIENvbnRleHRNZW51Ojpn
ZXRDb250ZXh0TWVudUl0ZW1zKEV3a19Db250ZXh0X01lbnVfQ29yZSogbWVudSwgVmVjdG9yPENv
bnRleHRNZW51SXRlbT4mIGl0ZW1zKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaXRl
bXMuY2xlYXIoKTsKKyAgICBWZWN0b3I8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4gbmF0aXZlSXRl
bXM7CisgICAgZXdrX2NvbnRleHRfbWVudV9jb3JlX3ZlY3Rvcl9nZXQobWVudSwgbmF0aXZlSXRl
bXMpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuYXRpdmVJdGVtcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgaXRlbXMuYXBwZW5kKENvbnRleHRNZW51SXRlbShuYXRpdmVJdGVtc1tpXSkp
OwogfQogCi12b2lkKiBDb250ZXh0TWVudTo6Y3JlYXRlTmF0aXZlTWVudUZyb21JdGVtcyhjb25z
dCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCitFd2tfQ29udGV4dF9NZW51X0NvcmUq
IENvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxDb250
ZXh0TWVudUl0ZW0+JiBpdGVtcykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAwOworICAgIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUgPSBld2tfY29udGV4dF9t
ZW51X2NvcmVfbmV3KCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGl0ZW1zLnNpemUo
KTsgKytpKQorICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKGNvcmVNZW51LCBp
dGVtc1tpXSk7CisgICAgcmV0dXJuIGNvcmVNZW51OwogfQogCi12b2lkKiBDb250ZXh0TWVudTo6
bmF0aXZlTWVudSgpIGNvbnN0CitFd2tfQ29udGV4dF9NZW51X0NvcmUqIENvbnRleHRNZW51Ojpu
YXRpdmVNZW51KCkgY29uc3QKIHsKICAgICByZXR1cm4gY3JlYXRlTmF0aXZlTWVudUZyb21JdGVt
cyhtX2l0ZW1zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
b250ZXh0TWVudUl0ZW1FZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRl
eHRNZW51SXRlbUVmbC5jcHAKaW5kZXggNDI1YzZhNi4uZmEzZDU5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKQEAgLTMxLDEx
ICszMSwyMiBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgogCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKKyNpbmNsdWRlICJl
d2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExB
VEZPUk1fQ09OVEVYVF9NRU5VUykKLXZvaWQqIENvbnRleHRNZW51SXRlbTo6bmF0aXZlTWVudUl0
ZW0oKSBjb25zdAorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oRXdrX0NvbnRleHRf
TWVudV9JdGVtKiBpdGVtKQoreworICAgIG1fdHlwZSA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51
SXRlbVR5cGU+KGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldChpdGVtKSk7CisgICAgbV9h
Y3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbj4oZXdrX2NvbnRleHRfbWVudV9p
dGVtX2FjdGlvbl9nZXQoaXRlbSkpOworICAgIG1fdGl0bGUgPSBld2tfY29udGV4dF9tZW51X2l0
ZW1fdGl0bGVfZ2V0KGl0ZW0pOworICAgIG1fZW5hYmxlZCA9IGV3a19jb250ZXh0X21lbnVfaXRl
bV9lbmFibGVkX2dldChpdGVtKTsKKyAgICBtX2NoZWNrZWQgPSBld2tfY29udGV4dF9tZW51X2l0
ZW1fY2hlY2tlZF9nZXQoaXRlbSk7Cit9CisKK0V3a19Db250ZXh0X01lbnVfSXRlbSogQ29udGV4
dE1lbnVJdGVtOjpuYXRpdmVNZW51SXRlbSgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlz
dHNFZmwudHh0IGIvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggYzVl
ZjY1Ni4uNWY1Nzk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0Vm
bC50eHQKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTY1LDYg
KzY1LDcgQEAgRU5ESUYgKCkKIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dl
YkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9u
Q2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRF
ZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRFZmwuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKaW5kZXggZDU2OTgwYy4uODJhYzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQxIEBACisyMDExLTEyLTIwICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBt
ZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVO
VVMKKyAgICAgICAgYXBwcm9hY2guIEFzIHRoZXJlIGFyZSBubyBuYXRpdmUgd2lkZ2V0cyBpbiBF
RkwgZXdrX2NvbnRleHRfbWVudQorICAgICAgICBzdHJ1Y3R1cmVzIGFyZSB1c2VkLgorCisgICAg
ICAgICogQ01ha2VMaXN0c0VmbC50eHQ6IEFkZGVkIENvbnRleHRNZW51Q2xpZW50RWZsLmNwcCB0
byBzb3VyY2VzIGxpc3QuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGll
bnRFZmwuY3BwOiBSZXN0b3JlIHRoZSBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OkNvbnRleHRNZW51Q2xpZW50RWZsKTogQWRkZWQgYW5kIGltcGxlbWVudGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVz
dHJveWVkKTogQWRkZWQgYW5kIGltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4
dE1lbnVDbGllbnRFZmw6OmN1c3RvbWl6ZU1lbnUpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJM
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6bG9va1Vw
SW5EaWN0aW9uYXJ5KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVu
dEVmbDo6c3BlYWspOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50
RWZsOjppc1NwZWFraW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNs
aWVudEVmbDo6c3RvcFNwZWFraW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNsaWVudEVmbDo6c2VhcmNoV2l0aEdvb2dsZSk6IEFkZGVkLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmg6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAg
ICAgICogZXdrL2V3a19jb250ZXh0bWVudS5jcHA6IEFkZGVkIF9Fd2tfQ29udGV4dF9NZW51X0Nv
cmUgYXMgYSB3cmFwIGZvciBFaW5hX0xpc3QuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X3Vu
cmVmKTogVXBkYXRlZCBFaW5hX0xpc3QgZnJlZWluZy4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfaXRlbV9saXN0X2dldCk6IFVwZGF0ZWQgRWluYV9MaXN0IHJldHVybi4KKyAgICAgICAgKGV3
a19jb250ZXh0X21lbnVfbmV3KTogQWRkZWQgRXdrX0NvbnRleHRfTWVudV9Db3JlIGFzIHBhcmFt
ZXRlci4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQpOiBDaGFuZ2VkIHBh
cmVtZXRlciBmcm9tIEV3a19Db250ZXh0X01lbnUgdG8gRXdrX0NvbnRleHRfTWVudV9Db3JlLgor
ICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9zaG93KToKKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfY29yZV92ZWN0b3JfZ2V0KTogQWRkZWQuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X2Nv
cmVfbmV3KTogQWRkZWQuCisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5oOiBBZGRlZCBu
ZXcgZnVuY3Rpb25zIGFuZCBkZWZpbml0aW9uIG9mIEV3a19Db250ZXh0X01lbnVfQ29yZQorICAg
ICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOiBBZGRlZCBmdW5jdGlvbiBkZWZpbml0aW9uLgorICAg
ICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOiBB
ZGRlZCBjb250ZXh0TWVudUNsaWVudCBpbml0aWFsaXNhdGlvbi4KKyAgICAgICAgKGV3a192aWV3
X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KTogQ2hhbmdlZCBjb25kaXRpb24uCisKIDIwMTEt
MTItMTkgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtF
RkxdIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgZXdrX3ZpZXdfc2NhbGVfc2V0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRF
ZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YWRjYTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVu
dUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGll
bnRFZmwuaCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29udGV4dE1lbnVDbGllbnRFZmw6OkNv
bnRleHRNZW51Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcp
CisgICAgLCBtX25hdGl2ZU1lbnUoMCkKK3sKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6Y29udGV4dE1lbnVEZXN0cm95ZWQoKQoreworICAgIGlmIChtX25hdGl2ZU1lbnUpCisgICAg
ICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShtX25hdGl2ZU1lbnUpOworICAgIGRlbGV0ZSB0aGlz
OworfQorCitQYXNzT3duUHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNsaWVudEVmbDo6Y3Vz
dG9taXplTWVudShQYXNzT3duUHRyPENvbnRleHRNZW51PiBjb250ZXh0TWVudSkKK3sKKyAgICBp
ZiAobV9uYXRpdmVNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUobV9uYXRpdmVN
ZW51KTsKKworICAgIEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUgPSBjb250ZXh0TWVu
dS0+bmF0aXZlTWVudSgpOworICAgIG1fbmF0aXZlTWVudSA9IGV3a19jb250ZXh0X21lbnVfbmV3
KG1fdmlldywgY29yZU1lbnUsIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPmNvbnRleHRN
ZW51Q29udHJvbGxlcigpKTsKKyAgICBld2tfY29udGV4dF9tZW51X3Nob3cobV9uYXRpdmVNZW51
KTsKKyAgICBPd25QdHI8Q29udGV4dE1lbnU+IGN1c3RvbWl6ZWRNZW51ID0gYWRvcHRQdHIobmV3
IENvbnRleHRNZW51KGNvcmVNZW51KSk7CisKKyAgICByZXR1cm4gY3VzdG9taXplZE1lbnUucmVs
ZWFzZSgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0sIGNvbnN0IENvbnRleHRNZW51KiBwYXJlbnRN
ZW51KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGll
bnRFZmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcEluRGljdGlvbmFyeShGcmFt
ZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVu
dEVmbDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Citib29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVu
dEVmbDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IENvbnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGU0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250
ZXh0TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xpZW50RWZsX2gKKworI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IENvbnRleHRNZW51OworCitjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbCA6IHB1YmxpYyBDb250
ZXh0TWVudUNsaWVudCB7CitwdWJsaWM6CisgICAgQ29udGV4dE1lbnVDbGllbnRFZmwoRXZhc19P
YmplY3QqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsKKworICAg
IHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4gY3VzdG9taXplTWVudShQ
YXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Pik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kik7
CisKKyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgS1VSTCYpOworICAgIHZpcnR1
YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Bl
YWsoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3RvcFNwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhH
b29nbGUoY29uc3QgRnJhbWUqKTsKKworcHJpdmF0ZToKKyAgICBFdmFzX09iamVjdCogbV92aWV3
OworICAgIEV3a19Db250ZXh0X01lbnUqIG1fbmF0aXZlTWVudTsKK307Cit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAppbmRleCBkMmI5ZjE5Li40
NmJkMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAt
MjQsMTEgKzI0LDE2IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250
ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKKyNpbmNs
dWRlICJld2tfbG9nZ2luZy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8
RWluYS5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAorc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgeworICAgIEVp
bmFfTGlzdCogaXRlbXM7IC8qKjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8KK307CisKIC8qKgogICog
XHN0cnVjdCAgX0V3a19Db250ZXh0X01lbnUKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBjb250
ZXh0IG1lbnUgZGF0YS4KQEAgLTQwLDcgKzQ1LDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51
IHsKICNlbmRpZgogICAgIEV2YXNfT2JqZWN0KiB2aWV3OyAvKio8IHRoZSB2aWV3IG9iamVjdCAq
LwogCi0gICAgRWluYV9MaXN0KiBpdGVtczsgLyoqPCB0aGUgbGlzdCBvZiBpdGVtcyAqLworICAg
IEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnU7IC8qKjwgYSB3cmFwcGVyIGZvciBFaW5h
X0xpc3QgY29udGFpbmluZyBjb250ZXh0IG1lbnUgaXRlbXMgKi8KIH07CiAKIC8qKgpAQCAtNzIs
NyArNzcsNyBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSog
bWVudSkKICAgICBpZiAoLS1tZW51LT5fX3JlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgRUlO
QV9MSVNUX0ZSRUUobWVudS0+aXRlbXMsIGl0ZW0pCisgICAgRUlOQV9MSVNUX0ZSRUUobWVudS0+
Y29yZU1lbnUtPml0ZW1zLCBpdGVtKQogICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJl
ZShzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiAKICAgICBmcmVl
KG1lbnUpOwpAQCAtOTMsOCArOTgsOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0
cm95KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiBjb25zdCBFaW5hX0xpc3QqIGV3a19jb250ZXh0
X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwobWVudS0+Y29yZU1lbnUsIDApOwogCi0gICAgcmV0dXJuIG1l
bnUtPml0ZW1zOworICAgIHJldHVybiBtZW51LT5jb3JlTWVudS0+aXRlbXM7CiB9CiAKIEV3a19D
b250ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9N
ZW51X0l0ZW1fVHlwZSB0eXBlLApAQCAtMjIwLDEwICsyMjYsMTEgQEAgRWluYV9Cb29sIGV3a19j
b250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0s
IEVpbmFfQm8KICAqCiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsbmV3Igog
ICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCog
dmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorRXdrX0Nv
bnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19D
b250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxl
ciogY29udHJvbGxlcikKIHsKICAgICBFd2tfQ29udGV4dF9NZW51KiBtZW51OwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoY29yZU1lbnUsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChjb250cm9sbGVyLCAwKTsKIAogICAgIG1lbnUgPSBzdGF0aWNfY2FzdDxFd2tfQ29u
dGV4dF9NZW51Kj4obWFsbG9jKHNpemVvZigqbWVudSkpKTsKQEAgLTIzNSw3ICsyNDIsOCBAQCBF
d2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywg
V2ViQ29yZTo6Q29udGV4dE1lbnVDbwogICAgIG1lbnUtPl9fcmVmID0gMTsKICAgICBtZW51LT52
aWV3ID0gdmlldzsKICAgICBtZW51LT5jb250cm9sbGVyID0gY29udHJvbGxlcjsKLSAgICBtZW51
LT5pdGVtcyA9IDA7CisgICAgbWVudS0+Y29yZU1lbnUgPSBjb3JlTWVudTsKKwogICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LG5ldyIs
IG1lbnUpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0yNzMsNyArMjgxLDcgQEAgYm9vbCBld2tf
Y29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAqCiAgKiBAc2VlIGV3
a19jb250ZXh0X21lbnVfaXRlbV9uZXcKICAqLwotdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1f
YXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYg
Y29yZSkKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51
X0NvcmUqIGNvcmVNZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7
CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAgRXdrX0NvbnRleHRfTWVu
dV9BY3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9BY3Rpb24+KGNv
cmUuYWN0aW9uKCkpOwpAQCAtMjgzLDQyICsyOTEsNTUgQEAgdm9pZCBld2tfY29udGV4dF9tZW51
X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51
SXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLmVuYWJs
ZWQoKSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudV9pdGVtKTsKIAotICAg
IG1lbnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtZW51LT5pdGVtcywgbWVudV9pdGVtKTsK
LSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0
bWVudSxpdGVtLGFwcGVuZGVkIiwgbWVudSk7CisgICAgY29yZU1lbnUtPml0ZW1zID0gZWluYV9s
aXN0X2FwcGVuZChjb3JlTWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7CiB9CiAKIC8qKgogICogQGlu
dGVybmFsCiAgKgotICogRW1pdHMgYSBzaWduYWwgd2l0aCB0aGUgaXRlbXMgb2YgdGhlIGNvbnRl
eHQgbWVudS4KKyAqIEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxzaG93IgogICoKICAqIEBw
YXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0dXJuIHRoZSBzYW1lIGNv
bnRleHQgbWVudSBvYmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBwYXJhbWV0ZXIKLSAqCi0g
KiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9taXplIgotICoKLSAqIEBz
ZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0CiAgKi8KLUV3a19Db250ZXh0X01lbnUq
IGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit2b2lk
IGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewotICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihtZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Nh
bGwobWVudS0+dmlldywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIsIG1lbnUtPml0ZW1zKTsKLSAg
ICByZXR1cm4gbWVudTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUt
PnZpZXcsICJjb250ZXh0bWVudSxzaG93IiwgbWVudSk7CiB9CiAKIC8qKgogICogQGludGVybmFs
CiAgKgotICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCisgKiBHZXRzIGEgVmVj
dG9yIG9mIGNvbnRleHQgbWVudSBpdGVtcwogICoKLSAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0
IG1lbnUgb2JqZWN0CisgKiBAcGFyYW0gY29yZU1lbnUgdGhlIGNvbnRleHQgbWVudSBjb3JlIG9i
amVjdAogICovCi12b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBt
ZW51KQordm9pZCBld2tfY29udGV4dF9tZW51X2NvcmVfdmVjdG9yX2dldChFd2tfQ29udGV4dF9N
ZW51X0NvcmUqIGNvcmVNZW51LCBWZWN0b3I8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4mIGl0ZW1z
VmVjdG9yKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1lbnUpOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGNvcmVNZW51KTsKIAotICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LHNob3ciLCBtZW51KTsK
KyAgICBFaW5hX0xpc3QqIGw7CisgICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJU1RfRk9SRUFD
SChjb3JlTWVudS0+aXRlbXMsIGwsIGl0ZW0pCisgICAgICAgIGl0ZW1zVmVjdG9yLmFwcGVuZChz
dGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CiB9CiAKKy8qKgorICog
QGludGVybmFsCisgKgorICogQ3JlYXRlcyBjb3JlIGNvbnRleHQgbWVudQorICoKKyAqLworRXdr
X0NvbnRleHRfTWVudV9Db3JlKiBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCkKK3sKKyAgICBF
d2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51OworICAgIGNvcmVNZW51ID0gc3RhdGljX2Nh
c3Q8RXdrX0NvbnRleHRfTWVudV9Db3JlKj4obWFsbG9jKHNpemVvZigqY29yZU1lbnUpKSk7Cisg
ICAgaWYgKCFjb3JlTWVudSkgeworICAgICAgICBDUklUSUNBTCgiQ291bGQgbm90IGFsbG9jYXRl
IGNvbnRleHQgbWVudSBtZW1vcnkuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBj
b3JlTWVudS0+aXRlbXMgPSAwOworICAgIHJldHVybiBjb3JlTWVudTsKK30KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGZkMzI0MDAuLjlmYmM0OGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAgLTI0LDExICsyNCw3
IEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKLSAqICAtICJjb250ZXh0bWVudSxjdXN0
b21pemUiLCBFaW5hX0xpc3QgKjogY3VzdG9taXplIGNvbnRleHQgbWVudSBpcyB0YWtlbgotICog
ICAgYW5kIGl0IGdpdmVzIGEgbGlzdCB3aXRoIGl0ZW1zIG9mIGNvbnRleHQgbWVudSBhcyBhbiBh
cmd1bWVudC4KICAqICAtICJjb250ZXh0bWVudSxmcmVlIiwgRXdrX0NvbnRleHRfTWVudSAqOiBh
IGNvbnRleHQgbWVudSBpcyBmcmVlZC4KLSAqICAtICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVk
IiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIG5ldyBpdGVtIHdhcyBhZGRlZCB0bwotICogICAgdGhl
IGNvbnRleHQgbWVudS4KICAqICAtICJjb250ZXh0bWVudSxuZXciLCBFd2tfQ29udGV4dF9NZW51
ICo6IGEgbmV3IGNvbnRleHQgbWVudSB3YXMgY3JlYXRlZAogICogICAgYW5kIGl0IGdpdmVzIHRo
ZSBjb250ZXh0IG1lbnUgYXMgYW4gYXJndW1lbnQuCiAgKiAgLSAiY29udGV4dG1lbnUsc2hvdyIs
IEV3a19Db250ZXh0X01lbnUgKjogYSBjb250ZXh0IG1lbnUgaXMgc2hvd24uCkBAIC0xMzgsNiAr
MTM0LDkgQEAgZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgewogICAgIEVXS19TRVBB
UkFUT1JfVFlQRSwKICAgICBFV0tfU1VCTUVOVV9UWVBFCiB9OworLyoqIENyZWF0ZXMgYSB0eXBl
IG5hbWUgZm9yIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tf
Q29udGV4dF9NZW51X0NvcmUgRXdrX0NvbnRleHRfTWVudV9Db3JlOworCiAvKiogQ3JlYXRlcyBh
IHR5cGUgbmFtZSBmb3IgX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICovCiB0eXBlZGVmIGVu
dW0gX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDA2ZDFhYzEuLjkzYzVh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lk
Z2V0LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2hpc3Rv
cnkuaCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpAQCAtMTY0
LDExICsxNjUsMTMgQEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0b3J5X25ldyhXZWJDb3JlOjpCYWNr
Rm9yd2FyZExpc3RJbXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdrX2hpc3RvcnlfZnJlZShFd2tfSGlz
dG9yeSogaGlzdG9yeSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLUV3a19Db250ZXh0
X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpD
b250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOworRXdrX0NvbnRleHRfTWVudSogZXdr
X2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIEV3a19Db250ZXh0X01lbnVfQ29y
ZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7
CiBib29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9NZW51KiBtZW51KTsKLXZv
aWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpOwordm9pZCBld2tfY29udGV4dF9tZW51X2l0
ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIGNvbnN0IFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbSYgY29yZSk7CiBFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9t
ZW51X2N1c3RvbWl6ZShFd2tfQ29udGV4dF9NZW51KiBtZW51KTsKIHZvaWQgZXdrX2NvbnRleHRf
bWVudV9zaG93KEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwordm9pZCBld2tfY29udGV4dF9tZW51
X2NvcmVfdmVjdG9yX2dldChFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBWZWN0b3I8
RXdrX0NvbnRleHRfTWVudV9JdGVtKj4mIGl0ZW1zVmVjdG9yKTsKK0V3a19Db250ZXh0X01lbnVf
Q29yZSogZXdrX2NvbnRleHRfbWVudV9jb3JlX25ldygpOwogI2VuZGlmCiAKIGNvbnN0IEVpbmFf
UmVjdGFuZ2xlKiBld2tfdmlld19yZXBhaW50c19nZXQoY29uc3QgRXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhKiBwcml2LCBzaXplX3QqIGNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmlu
ZGV4IDkxZWVlYTEuLjZhYzg2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgog
I2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50
RWZsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50RWZsLmgiCkBAIC02MDEsNiArNjAy
LDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIFdlYkNvcmU6OlBhZ2U6OlBhZ2VD
bGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKKyAgICBwYWdlQ2xpZW50
cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbChz
bWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJD
b3JlOjpFZGl0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xpZW50cy5k
cmFnQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkRyYWdDbGllbnRFZmw7CiAgICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDsKQEAgLTE0
NzAsNyArMTQ3Miw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9l
dmVudChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXZhc19FCiAgICAgICAgICAgICBtYWlu
RnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOwogICAg
IH0KIAotICAgIGlmIChtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVF
dmVudChldmVudCkpCisgICAgaWYgKCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29u
dGV4dE1lbnVFdmVudChldmVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFdlYkNv
cmU6OkNvbnRleHRNZW51KiBjb3JlTWVudSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDkzOTI2
MmUuLmM4NzI5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0zNyw3ICszNyw3IEBAIEZJTkRf
UEFDS0FHRShUaHJlYWRzIFJFUVVJUkVEKQogRklORF9QQUNLQUdFKEpQRUcgUkVRVUlSRUQpCiBG
SU5EX1BBQ0tBR0UoUE5HIFJFUVVJUkVEKQogCi1BRERfREVGSU5JVElPTlMoLURFTkFCTEVfQ09O
VEVYVF9NRU5VUz0wKQorQUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MSkK
IAogU0VUKFdURl9VU0VfUFRIUkVBRFMgMSkKIEFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfUFRI
UkVBRFM9MSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120444</attachid>
            <date>2011-12-23 02:14:15 -0800</date>
            <delta_ts>2011-12-23 02:50:04 -0800</delta_ts>
            <desc>change function name</desc>
            <filename>proposed_patch_style_changes2.diff</filename>
            <type>text/plain</type>
            <size>26607</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwYTZiYmY4Li45NjM2NDdm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTIyICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9i
aWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIGJsb2IgZm9yIHRoZSBC
bGFja0JlcnJ5IHBvcnRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdhMzA5MjQuLmM3
NWFlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEy
LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9y
IEVGTCBwb3J0IHVzaW5nIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBw
cm9hY2guIEFzIHRoZXJlIGFyZSBubyBuYXRpdmUgd2lkZ2V0cyBpbiBFRkwgZXdrX2NvbnRleHRf
bWVudQorICAgICAgICBzdHJ1Y3R1cmVzIGFyZSB1c2VkLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6IEVuYWJsZSBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTIGZvciBFRkwgcGxhdGZv
cm0uCisKIDIwMTEtMTItMjMgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+
CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMDM0NjcpOiBJdCBicm9rZSBmYXN0L2ltYWdl
cy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYjE0NjJlLi5hYTM2NGRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMDc1LDcgKzEwNzUsNyBAQAogI2RlZmluZSBXVEZfVVNF
X1BMQVRGT1JNX1NUUkFURUdJRVMgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXSU4pCisjaWYg
UExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShFRkwpCiAjZGVmaW5lIFdURl9VU0VfQ1JPU1NfUExB
VEZPUk1fQ09OVEVYVF9NRU5VUyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVjZjY5NTIuLjA2
Mzc0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0xMi0yMyAgTWljaGHFgiBQ
YWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IENvbnRleHQgbWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2lu
ZyBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLiBBcyB0aGVy
ZSBhcmUgbm8gbmF0aXZlIHdpZGdldHMgaW4gRUZMIGV3a19jb250ZXh0X21lbnUKKyAgICAgICAg
c3RydWN0dXJlcyBhcmUgdXNlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOiBDaGFuZ2VkIE5hdGl2ZU1lbnUgZGVmaW5pdGlvbiB0
byBFd2tfQ29udGV4dF9NZW51X0NvcmUqLgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oOiBDaGFuZ2VkIE5hdGl2ZUl0ZW0gZGVmaW5pdGlvbiB0byBFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIGFuZCBjaGFuZ2VkIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudTo6Q29udGV4dE1lbnUpOiBDaGFuZ2UgcGFyYW1ldGVyIHRvIG1hdGNoIG5ldyBOYXRpdmVN
ZW51IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6Z2V0Q29udGV4
dE1lbnVJdGVtcyk6IEltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6
OmNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRNZW51OjpuYXRpdmVNZW51KTogQ2hhbmdlZCByZXR1cm4gdmFsdWUgdG8gbWF0
Y2ggbmV3IE5hdGl2ZU1lbnUgZGVmaW5pdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29u
dGV4dE1lbnVJdGVtRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6
Q29udGV4dE1lbnVJdGVtKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKTogQ2hhbmdlZCByZXR1cm4gdmFsdWUgdG8gbWF0Y2gg
bmV3IE5hdGl2ZUl0ZW0gZGVmaW5pdGlvbi4KKwogMjAxMS0xMi0yMiAgTWF0dCBGYWxrZW5oYWdl
biAgPGZhbGtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFwICdsYW5nJyBhbmQgeG1sOmxh
bmcgYXR0cmlidXRlcyB0byAnLXdlYmtpdC1sb2NhbGUnIENTUyBwcm9wZXJ0eSBmb3IgdXNlIHdp
dGggZm9udCBmYWxsYmFjayBhbmQgdGV4dC10cmFuc2Zvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5oCmluZGV4IGNiZGY1M2EuLjRhNzc0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnUuaApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgUExBVEZPUk0oV0lOKQogICAgICAgICB0eXBlZGVmIEhNRU5VIE5hdGl2ZU1lbnU7CiAjZWxp
ZiBQTEFURk9STShFRkwpCi0gICAgICAgIHR5cGVkZWYgdm9pZCogTmF0aXZlTWVudTsKKyAgICAg
ICAgdHlwZWRlZiBFd2tfQ29udGV4dF9NZW51X0NvcmUqIE5hdGl2ZU1lbnU7CiAjZW5kaWYKICAg
ICAgICAgZXhwbGljaXQgQ29udGV4dE1lbnUoTmF0aXZlTWVudSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggNGNhYWI4MC4uMDEwZTY3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTQ4LDYgKzQ4LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX0d0a0FjdGlvbiBHdGtBY3Rpb247CiAjaW5jbHVkZSA8UUFjdGlvbj4K
ICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hNZW51SXRlbTsKKyNlbGlmIFBMQVRGT1JNKEVG
TCkKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0yNTMsMTAgKzI1NSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgUExB
VEZPUk0oV0lOKQogICAgICAgICB0eXBlZGVmIE1FTlVJVEVNSU5GTyBOYXRpdmVJdGVtOwogI2Vs
aWYgUExBVEZPUk0oRUZMKQotICAgICAgICB0eXBlZGVmIHZvaWQqIE5hdGl2ZUl0ZW07CisgICAg
ICAgIHR5cGVkZWYgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBOYXRpdmVJdGVtOwogI2VuZGlmCiAg
ICAgICAgIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwg
Ym9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+
JiBzdWJNZW51SXRlbXMpOworI2lmIFBMQVRGT1JNKEVGTCkKKyAgICAgICAgZXhwbGljaXQgQ29u
dGV4dE1lbnVJdGVtKE5hdGl2ZUl0ZW0pOworI2Vsc2UKICAgICAgICAgZXhwbGljaXQgQ29udGV4
dE1lbnVJdGVtKGNvbnN0IE5hdGl2ZUl0ZW0mKTsKKyNlbmRpZgogCiAgICAgICAgIC8vIE9uIFdp
bmRvd3MsIHRoZSB0aXRsZSAoZHdUeXBlRGF0YSBvZiB0aGUgTUVOVUlURU1JTkZPKSBpcyBub3Qg
c2V0IGluIHRoaXMgZnVuY3Rpb24uIENhbGxlcnMgY2FuIHNldCB0aGUgdGl0bGUgdGhlbXNlbHZl
cywKICAgICAgICAgLy8gYW5kIGhhbmRsZSB0aGUgbGlmZXRpbWUgb2YgdGhlIHRpdGxlLCBpZiB0
aGV5IG5lZWQgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29u
dGV4dE1lbnVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51
RWZsLmNwcAppbmRleCA0NmEyMGRjLi42NzFkYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKQEAgLTI0LDI3ICsyNCwzNyBAQAogCiAjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
bi5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShDUk9TU19QTEFURk9STV9DT05U
RVhUX01FTlVTKQotQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KHZvaWQqIG1lbnUpCitDb250ZXh0
TWVudTo6Q29udGV4dE1lbnUoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBtZW51KQogewogICAgIGdl
dENvbnRleHRNZW51SXRlbXMobWVudSwgbV9pdGVtcyk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6
OmdldENvbnRleHRNZW51SXRlbXModm9pZCogbWVudSwgVmVjdG9yPENvbnRleHRNZW51SXRlbT4m
IGl0ZW1zKQordm9pZCBDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVtcyhFd2tfQ29udGV4
dF9NZW51X0NvcmUqIG1lbnUsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIGl0ZW1zLmNsZWFyKCk7CisgICAgVmVjdG9yPEV3a19D
b250ZXh0X01lbnVfSXRlbSo+IG5hdGl2ZUl0ZW1zOworICAgIGV3a19jb250ZXh0X21lbnVfY29y
ZV9pdGVtc19nZXQobWVudSwgbmF0aXZlSXRlbXMpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBuYXRpdmVJdGVtcy5zaXplKCk7ICsraSkKKyAgICAgICAgaXRlbXMuYXBwZW5kKENvbnRl
eHRNZW51SXRlbShuYXRpdmVJdGVtc1tpXSkpOwogfQogCi12b2lkKiBDb250ZXh0TWVudTo6Y3Jl
YXRlTmF0aXZlTWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRl
bXMpCitFd2tfQ29udGV4dF9NZW51X0NvcmUqIENvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51
RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIEV3a19Db250ZXh0X01lbnVfQ29y
ZSogY29yZU1lbnUgPSBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCk7CisKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKQorICAgICAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fYXBwZW5kKGNvcmVNZW51LCBpdGVtc1tpXSk7CisgICAgcmV0dXJuIGNvcmVNZW51
OwogfQogCi12b2lkKiBDb250ZXh0TWVudTo6bmF0aXZlTWVudSgpIGNvbnN0CitFd2tfQ29udGV4
dF9NZW51X0NvcmUqIENvbnRleHRNZW51OjpuYXRpdmVNZW51KCkgY29uc3QKIHsKICAgICByZXR1
cm4gY3JlYXRlTmF0aXZlTWVudUZyb21JdGVtcyhtX2l0ZW1zKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKaW5kZXggNDI1YzZh
Ni4uZmEzZDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRl
eHRNZW51SXRlbUVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRl
eHRNZW51SXRlbUVmbC5jcHAKQEAgLTMxLDExICszMSwyMiBAQAogI2luY2x1ZGUgIkNvbnRleHRN
ZW51SXRlbS5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJld2tf
Y29udGV4dG1lbnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUykKLXZvaWQqIENv
bnRleHRNZW51SXRlbTo6bmF0aXZlTWVudUl0ZW0oKSBjb25zdAorQ29udGV4dE1lbnVJdGVtOjpD
b250ZXh0TWVudUl0ZW0oRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQoreworICAgIG1fdHlw
ZSA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51SXRlbVR5cGU+KGV3a19jb250ZXh0X21lbnVfaXRl
bV90eXBlX2dldChpdGVtKSk7CisgICAgbV9hY3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVu
dUFjdGlvbj4oZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoaXRlbSkpOworICAgIG1f
dGl0bGUgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KGl0ZW0pOworICAgIG1fZW5h
YmxlZCA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX2dldChpdGVtKTsKKyAgICBtX2No
ZWNrZWQgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9nZXQoaXRlbSk7Cit9CisKK0V3
a19Db250ZXh0X01lbnVfSXRlbSogQ29udGV4dE1lbnVJdGVtOjpuYXRpdmVNZW51SXRlbSgpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYktpdC9lZmwv
Q01ha2VMaXN0c0VmbC50eHQKaW5kZXggYzVlZjY1Ni4uNWY1Nzk1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTY1LDYgKzY1LDcgQEAgRU5ESUYgKCkKIExJU1QoQVBQRU5E
IFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKyAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNv
cmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0
L0RyYWdDbGllbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZWQ3ZmE5Mi4uZTU1MmIxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDExLTEyLTIzICBNaWNoYcWCIFBh
a3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0g
Q29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5n
IENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBwcm9hY2guIEFzIHRoZXJl
IGFyZSBubyBuYXRpdmUgd2lkZ2V0cyBpbiBFRkwgZXdrX2NvbnRleHRfbWVudQorICAgICAgICBz
dHJ1Y3R1cmVzIGFyZSB1c2VkLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6IEFkZGVk
IENvbnRleHRNZW51Q2xpZW50RWZsLmNwcCB0byBzb3VyY2VzIGxpc3QuCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwOiBSZXN0b3JlIHRoZSBmaWxlLgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OkNvbnRleHRNZW51Q2xpZW50
RWZsKTogQWRkZWQgYW5kIGltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKTogQWRkZWQgYW5kIGltcGxlbWVudGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmN1c3RvbWl6ZU1lbnUp
OiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4
dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJMKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNsaWVudEVmbDo6bG9va1VwSW5EaWN0aW9uYXJ5KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c3BlYWspOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c2VhcmNoV2l0aEdvb2ds
ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZs
Lmg6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5jcHA6
IEFkZGVkIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgYXMgYSB3cmFwIGZvciBFaW5hX0xpc3QuCisg
ICAgICAgIChld2tfY29udGV4dF9tZW51X3VucmVmKTogVXBkYXRlZCBFaW5hX0xpc3QgZnJlZWlu
Zy4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldCk6IFVwZGF0ZWQgRWlu
YV9MaXN0IHJldHVybi4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfbmV3KTogQWRkZWQgRXdr
X0NvbnRleHRfTWVudV9Db3JlIGFzIHBhcmFtZXRlci4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfaXRlbV9hcHBlbmQpOiBDaGFuZ2VkIHBhcmVtZXRlciBmcm9tIEV3a19Db250ZXh0X01lbnUg
dG8gRXdrX0NvbnRleHRfTWVudV9Db3JlLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9zaG93
KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfY29yZV9pdGVtc19nZXQpOiBBZGRlZC4KKyAg
ICAgICAgKGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcpOiBBZGRlZC4KKyAgICAgICAgKiBld2sv
ZXdrX2NvbnRleHRtZW51Lmg6IEFkZGVkIG5ldyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb24gb2Yg
RXdrX0NvbnRleHRfTWVudV9Db3JlCisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IEFkZGVk
IGZ1bmN0aW9uIGRlZmluaXRpb24uCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAg
ICAgKF9ld2tfdmlld19wcml2X25ldyk6IEFkZGVkIGNvbnRleHRNZW51Q2xpZW50IGluaXRpYWxp
c2F0aW9uLgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOiBD
aGFuZ2VkIGNvbmRpdGlvbi4KKwogMjAxMS0xMi0yMiAgTWFyaXVzeiBHcnplZ29yY3p5ayAgPG1h
cml1c3ouZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBNaXNzaW5nIHBsdWdpbnMgc3Vw
cG9ydCBmb3IgZWZsIHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi44NGFkY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCkBAIC0wLDAgKzEsMTAx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCisKKyNpbmNsdWRlICJDb250ZXh0
TWVudS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0NvbnRleHRNZW51Q2xpZW50RWZsOjpDb250ZXh0TWVudUNsaWVudEVmbChFdmFzX09iamVj
dCogdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQorICAgICwgbV9uYXRpdmVNZW51KDApCit7Cit9
CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKCkKK3sK
KyAgICBpZiAobV9uYXRpdmVNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUobV9u
YXRpdmVNZW51KTsKKyAgICBkZWxldGUgdGhpczsKK30KKworUGFzc093blB0cjxDb250ZXh0TWVu
dT4gQ29udGV4dE1lbnVDbGllbnRFZmw6OmN1c3RvbWl6ZU1lbnUoUGFzc093blB0cjxDb250ZXh0
TWVudT4gY29udGV4dE1lbnUpCit7CisgICAgaWYgKG1fbmF0aXZlTWVudSkKKyAgICAgICAgZXdr
X2NvbnRleHRfbWVudV9mcmVlKG1fbmF0aXZlTWVudSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51
X0NvcmUqIGNvcmVNZW51ID0gY29udGV4dE1lbnUtPm5hdGl2ZU1lbnUoKTsKKyAgICBtX25hdGl2
ZU1lbnUgPSBld2tfY29udGV4dF9tZW51X25ldyhtX3ZpZXcsIGNvcmVNZW51LCBFV0tQcml2YXRl
Ojpjb3JlUGFnZShtX3ZpZXcpLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKSk7CisgICAgZXdrX2Nv
bnRleHRfbWVudV9zaG93KG1fbmF0aXZlTWVudSk7CisgICAgT3duUHRyPENvbnRleHRNZW51PiBj
dXN0b21pemVkTWVudSA9IGFkb3B0UHRyKG5ldyBDb250ZXh0TWVudShjb3JlTWVudSkpOworCisg
ICAgcmV0dXJuIGN1c3RvbWl6ZWRNZW51LnJlbGVhc2UoKTsKK30KKwordm9pZCBDb250ZXh0TWVu
dUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVt
LCBjb25zdCBDb250ZXh0TWVudSogcGFyZW50TWVudSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpkb3dubG9hZFVSTChjb25zdCBLVVJM
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50
RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBDb250ZXh0TWVudUNsaWVudEVmbDo6
aXNTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnN0b3BTcGVha2luZygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c2VhcmNo
V2l0aEdvb2dsZShjb25zdCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRN
ZW51Q2xpZW50RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlNDU0
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nv
bnRleHRNZW51Q2xpZW50RWZsLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZV
U0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVj
dHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dE1lbnVDbGllbnRFZmxfaAorI2RlZmluZSBD
b250ZXh0TWVudUNsaWVudEVmbF9oCisKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgor
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb250ZXh0TWVudTsKKworY2xhc3MgQ29udGV4
dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgeworcHVibGljOgorICAg
IENvbnRleHRNZW51Q2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgdmlydHVhbCB2b2lkIGNv
bnRleHRNZW51RGVzdHJveWVkKCk7CisKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6
Q29udGV4dE1lbnU+IGN1c3RvbWl6ZU1lbnUoUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVu
dT4pOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVu
dUl0ZW0qLCBjb25zdCBDb250ZXh0TWVudSopOworCisgICAgdmlydHVhbCB2b2lkIGRvd25sb2Fk
VVJMKGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5KEZy
YW1lKik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1
YWwgYm9vbCBpc1NwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKik7CisKK3ByaXZh
dGU6CisgICAgRXZhc19PYmplY3QqIG1fdmlldzsKKyAgICBFd2tfQ29udGV4dF9NZW51KiBtX25h
dGl2ZU1lbnU7Cit9OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250
ZXh0bWVudS5jcHAKaW5kZXggZDJiOWYxOS4uNzcwYzBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTI0LDExICsyNCwxNiBAQAogI2luY2x1ZGUgIkNv
bnRleHRNZW51LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnVJdGVtLmgiCisjaW5jbHVkZSAiZXdrX2xvZ2dpbmcuaCIKICNpbmNsdWRl
ICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVpbmEuaD4KICNpbmNsdWRlIDxlaW5hX3NhZmV0
eV9jaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKK3N0cnVjdCBfRXdr
X0NvbnRleHRfTWVudV9Db3JlIHsKKyAgICBFaW5hX0xpc3QqIGl0ZW1zOyAvKio8IHRoZSBsaXN0
IG9mIGl0ZW1zICovCit9OworCiAvKioKICAqIFxzdHJ1Y3QgIF9Fd2tfQ29udGV4dF9NZW51CiAg
KiBAYnJpZWYgICBDb250YWlucyB0aGUgY29udGV4dCBtZW51IGRhdGEuCkBAIC00MCw3ICs0NSw3
IEBAIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudSB7CiAjZW5kaWYKICAgICBFdmFzX09iamVjdCog
dmlldzsgLyoqPCB0aGUgdmlldyBvYmplY3QgKi8KIAotICAgIEVpbmFfTGlzdCogaXRlbXM7IC8q
KjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8KKyAgICBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVN
ZW51OyAvKio8IGEgd3JhcHBlciBmb3IgRWluYV9MaXN0IGNvbnRhaW5pbmcgY29udGV4dCBtZW51
IGl0ZW1zICovCiB9OwogCiAvKioKQEAgLTcyLDcgKzc3LDcgQEAgdm9pZCBld2tfY29udGV4dF9t
ZW51X3VucmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAgICAgaWYgKC0tbWVudS0+X19yZWYp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEVJTkFfTElTVF9GUkVFKG1lbnUtPml0ZW1zLCBpdGVt
KQorICAgIEVJTkFfTElTVF9GUkVFKG1lbnUtPmNvcmVNZW51LT5pdGVtcywgaXRlbSkKICAgICAg
ICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2ZyZWUoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVu
dV9JdGVtKj4oaXRlbSkpOwogCiAgICAgZnJlZShtZW51KTsKQEAgLTkzLDggKzk4LDkgQEAgRWlu
YV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVzdHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51KQog
Y29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdr
X0NvbnRleHRfTWVudSogbWVudSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwobWVudSwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUtPmNv
cmVNZW51LCAwKTsKIAotICAgIHJldHVybiBtZW51LT5pdGVtczsKKyAgICByZXR1cm4gbWVudS0+
Y29yZU1lbnUtPml0ZW1zOwogfQogCiBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGV3a19jb250ZXh0
X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwKQEAgLTIyMCwx
MCArMjI2LDExIEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQo
RXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtLCBFaW5hX0JvCiAgKgogICogQG5vdGUgZW1pdHMg
YSBzaWduYWwgImNvbnRleHRtZW51LG5ldyIKICAqLwotRXdrX0NvbnRleHRfTWVudSogZXdrX2Nv
bnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29u
dHJvbGxlciogY29udHJvbGxlcikKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVf
bmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBX
ZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCiB7CiAgICAgRXdrX0Nv
bnRleHRfTWVudSogbWVudTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodmll
dywgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNvcmVNZW51LCAwKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29udHJvbGxlciwgMCk7CiAKICAg
ICBtZW51ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudSo+KG1hbGxvYyhzaXplb2YoKm1l
bnUpKSk7CkBAIC0yMzUsNyArMjQyLDggQEAgRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRf
bWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q28KICAgICBt
ZW51LT5fX3JlZiA9IDE7CiAgICAgbWVudS0+dmlldyA9IHZpZXc7CiAgICAgbWVudS0+Y29udHJv
bGxlciA9IGNvbnRyb2xsZXI7Ci0gICAgbWVudS0+aXRlbXMgPSAwOworICAgIG1lbnUtPmNvcmVN
ZW51ID0gY29yZU1lbnU7CisKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1l
bnUtPnZpZXcsICJjb250ZXh0bWVudSxuZXciLCBtZW51KTsKIAogICAgIHJldHVybiBtZW51OwpA
QCAtMjczLDcgKzI4MSw3IEBAIGJvb2wgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0
X01lbnUqIG1lbnUpCiAgKgogICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3CiAgKi8K
LXZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51
LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCit2b2lkIGV3a19jb250ZXh0X21lbnVf
aXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSwgY29uc3QgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKQogewogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZT4oY29yZS50
eXBlKCkpOwogICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKQEAgLTI4Myw0MiArMjkx
LDU2IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51
KiBtZW51LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOKG1lbnVfaXRlbSk7CiAKLSAgICBtZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBl
bmQobWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsaXRlbSxhcHBlbmRlZCIsIG1lbnUpOwor
ICAgIGNvcmVNZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQoY29yZU1lbnUtPml0ZW1zLCBt
ZW51X2l0ZW0pOwogfQogCiAvKioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVtaXRzIGEgc2lnbmFs
IHdpdGggdGhlIGl0ZW1zIG9mIHRoZSBjb250ZXh0IG1lbnUuCisgKiBFbWl0cyBhIHNpZ25hbCAi
Y29udGV4dG1lbnUsc2hvdyIKICAqCiAgKiBAcGFyYW0gbWVudSB0aGUgY29udGV4dCBtZW51IG9i
amVjdAotICogQHJldHVybiB0aGUgc2FtZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRoYXQgd2FzIGdp
dmVuIHRocm91Z2ggcGFyYW1ldGVyCi0gKgotICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRl
eHRtZW51LGN1c3RvbWl6ZSIKLSAqCi0gKiBAc2VlIGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0
X2dldAogICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShF
d2tfQ29udGV4dF9NZW51KiBtZW51KQordm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0Nv
bnRleHRfTWVudSogbWVudSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
bWVudSwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CiAKLSAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxj
dXN0b21pemUiLCBtZW51LT5pdGVtcyk7Ci0gICAgcmV0dXJuIG1lbnU7CisgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsc2hvdyIsIG1l
bnUpOwogfQogCiAvKioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVtaXRzIGEgc2lnbmFsICJjb250
ZXh0bWVudSxzaG93IgorICogR2V0cyBhIFZlY3RvciBvZiBjb250ZXh0IG1lbnUgaXRlbXMKICAq
Ci0gKiBAcGFyYW0gbWVudSB0aGUgY29udGV4dCBtZW51IG9iamVjdAorICogQHBhcmFtIGNvcmVN
ZW51IHRoZSBjb250ZXh0IG1lbnUgY29yZSBvYmplY3QKKyAqIEBwYXJhbSBpdGVtc1ZlY3RvciBh
IHZlY3RvciB0byBmaWxsIHdpdGggRXdrX0NvbnRleHRfTWVudV9JdGVtCiAgKi8KLXZvaWQgZXdr
X2NvbnRleHRfbWVudV9zaG93KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit2b2lkIGV3a19jb250
ZXh0X21lbnVfY29yZV9pdGVtc19nZXQoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSwg
VmVjdG9yPEV3a19Db250ZXh0X01lbnVfSXRlbSo+JiBpdGVtc1ZlY3RvcikKIHsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTihjb3JlTWVudSk7CiAKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1l
bnUtPnZpZXcsICJjb250ZXh0bWVudSxzaG93IiwgbWVudSk7CisgICAgRWluYV9MaXN0KiBsOwor
ICAgIHZvaWQqIGl0ZW07CisgICAgRUlOQV9MSVNUX0ZPUkVBQ0goY29yZU1lbnUtPml0ZW1zLCBs
LCBpdGVtKQorICAgICAgICBpdGVtc1ZlY3Rvci5hcHBlbmQoc3RhdGljX2Nhc3Q8RXdrX0NvbnRl
eHRfTWVudV9JdGVtKj4oaXRlbSkpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIENy
ZWF0ZXMgY29yZSBjb250ZXh0IG1lbnUKKyAqCisgKi8KK0V3a19Db250ZXh0X01lbnVfQ29yZSog
ZXdrX2NvbnRleHRfbWVudV9jb3JlX25ldygpCit7CisgICAgRXdrX0NvbnRleHRfTWVudV9Db3Jl
KiBjb3JlTWVudTsKKyAgICBjb3JlTWVudSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVf
Q29yZSo+KG1hbGxvYyhzaXplb2YoKmNvcmVNZW51KSkpOworICAgIGlmICghY29yZU1lbnUpIHsK
KyAgICAgICAgQ1JJVElDQUwoIkNvdWxkIG5vdCBhbGxvY2F0ZSBjb250ZXh0IG1lbnUgbWVtb3J5
LiIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgY29yZU1lbnUtPml0ZW1zID0gMDsK
KyAgICByZXR1cm4gY29yZU1lbnU7Cit9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
Y29udGV4dG1lbnUuaAppbmRleCA0ZThlZjllLi43YTFjZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5oCkBAIC0yNCwxMSArMjQsNyBAQAogICoKICAqIFRoZSBmb2xs
b3dpbmcgc2lnbmFscyAoc2VlIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCgpKSBhcmUg
ZW1pdHRlZDoKICAqCi0gKiAgLSAiY29udGV4dG1lbnUsY3VzdG9taXplIiwgRWluYV9MaXN0ICo6
IGN1c3RvbWl6ZSBjb250ZXh0IG1lbnUgaXMgdGFrZW4KLSAqICAgIGFuZCBpdCBnaXZlcyBhIGxp
c3Qgd2l0aCBpdGVtcyBvZiBjb250ZXh0IG1lbnUgYXMgYW4gYXJndW1lbnQuCiAgKiAgLSAiY29u
dGV4dG1lbnUsZnJlZSIsIEV3a19Db250ZXh0X01lbnUgKjogYSBjb250ZXh0IG1lbnUgaXMgZnJl
ZWQuCi0gKiAgLSAiY29udGV4dG1lbnUsaXRlbSxhcHBlbmRlZCIsIEV3a19Db250ZXh0X01lbnUg
KjogYSBuZXcgaXRlbSB3YXMgYWRkZWQgdG8KLSAqICAgIHRoZSBjb250ZXh0IG1lbnUuCiAgKiAg
LSAiY29udGV4dG1lbnUsbmV3IiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIG5ldyBjb250ZXh0IG1l
bnUgd2FzIGNyZWF0ZWQKICAqICAgIGFuZCBpdCBnaXZlcyB0aGUgY29udGV4dCBtZW51IGFzIGFu
IGFyZ3VtZW50LgogICogIC0gImNvbnRleHRtZW51LHNob3ciLCBFd2tfQ29udGV4dF9NZW51ICo6
IGEgY29udGV4dCBtZW51IGlzIHNob3duLgpAQCAtMTM5LDYgKzEzNSw5IEBAIGVudW0gX0V3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlIHsKICAgICBFV0tfU0VQQVJBVE9SX1RZUEUsCiAgICAgRVdL
X1NVQk1FTlVfVFlQRQogfTsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0NvbnRl
eHRfTWVudV9Db3JlICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9Db3JlIEV3
a19Db250ZXh0X01lbnVfQ29yZTsKKwogLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tf
Q29udGV4dF9NZW51X0l0ZW1fVHlwZSAqLwogdHlwZWRlZiBlbnVtIF9Fd2tfQ29udGV4dF9NZW51
X0l0ZW1fVHlwZSAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ByaXZhdGUuaAppbmRleCA3N2Y2NTM0Li4wNjM5NjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ByaXZhdGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIldpZGdldC5oIgorI2luY2x1ZGUgImV3
a19jb250ZXh0bWVudS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCiAjaW5jbHVkZSAiZXdr
X2pzLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKQEAgLTE2NSwxMSArMTY2LDEzIEBAIEV3a19I
aXN0b3J5KiBld2tfaGlzdG9yeV9uZXcoV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0SW1wbCogaGlz
dG9yeSk7CiB2b2lkIGV3a19oaXN0b3J5X2ZyZWUoRXdrX0hpc3RvcnkqIGhpc3RvcnkpOwogCiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9t
ZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVy
KiBjb250cm9sbGVyKTsKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2
YXNfT2JqZWN0KiB2aWV3LCBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOwogYm9vbCBld2tfY29udGV4dF9t
ZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSk7Ci12b2lkIGV3a19jb250ZXh0X21lbnVf
aXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtJiBjb3JlKTsKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4
dF9NZW51X0NvcmUqIGNvcmVNZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNv
cmUpOwogRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9jdXN0b21pemUoRXdrX0Nv
bnRleHRfTWVudSogbWVudSk7CiB2b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4
dF9NZW51KiBtZW51KTsKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9jb3JlX2l0ZW1zX2dldChFd2tf
Q29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBWZWN0b3I8RXdrX0NvbnRleHRfTWVudV9JdGVt
Kj4mIGl0ZW1zVmVjdG9yKTsKK0V3a19Db250ZXh0X01lbnVfQ29yZSogZXdrX2NvbnRleHRfbWVu
dV9jb3JlX25ldygpOwogI2VuZGlmCiAKIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBld2tfdmlld19y
ZXBhaW50c19nZXQoY29uc3QgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2LCBzaXplX3QqIGNv
dW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDg3MTU2ZWEuLjIyNTBhNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dEVmbC5oIgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJEcmFnQ2xpZW50RWZsLmgiCkBAIC02MDcsNiArNjA4LDcgQEAgc3RhdGljIEV3a19WaWV3
X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSkKIAogICAgIFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwog
ICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDaHJvbWVDbGllbnRF
Zmwoc21hcnREYXRhLT5zZWxmKTsKKyAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9
IG5ldyBXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAg
IHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwo
c21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkNv
cmU6OkRyYWdDbGllbnRFZmw7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3
IFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDsKQEAgLTE0NzYsNyArMTQ3OCw3IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgRXZhc19FCiAgICAgICAgICAgICBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigp
LT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOwogICAgIH0KIAotICAgIGlmIChtYWluRnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudChldmVudCkpCisgICAgaWYg
KCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudChldmVudCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFdlYkNvcmU6OkNvbnRleHRNZW51KiBjb3Jl
TWVudSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDk3ZGE2MTEuLjk0NDg4YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zRWZsLmNtYWtlCkBAIC0zNyw3ICszNyw3IEBAIEZJTkRfUEFDS0FHRShUaHJlYWRzIFJFUVVJ
UkVEKQogRklORF9QQUNLQUdFKEpQRUcgUkVRVUlSRUQpCiBGSU5EX1BBQ0tBR0UoUE5HIFJFUVVJ
UkVEKQogCi1BRERfREVGSU5JVElPTlMoLURFTkFCTEVfQ09OVEVYVF9NRU5VUz0wKQorQUREX0RF
RklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MSkKIAogU0VUKFdURl9VU0VfUFRIUkVB
RFMgMSkKIEFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfUFRIUkVBRFM9MSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120448</attachid>
            <date>2011-12-23 02:50:04 -0800</date>
            <delta_ts>2011-12-28 08:48:33 -0800</delta_ts>
            <desc>change list variable name</desc>
            <filename>proposed_patch_style_changes3.diff</filename>
            <type>text/plain</type>
            <size>26629</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwYTZiYmY4Li45NjM2NDdm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTIyICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9i
aWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIGJsb2IgZm9yIHRoZSBC
bGFja0JlcnJ5IHBvcnRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdhMzA5MjQuLmM3
NWFlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEy
LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9y
IEVGTCBwb3J0IHVzaW5nIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBw
cm9hY2guIEFzIHRoZXJlIGFyZSBubyBuYXRpdmUgd2lkZ2V0cyBpbiBFRkwgZXdrX2NvbnRleHRf
bWVudQorICAgICAgICBzdHJ1Y3R1cmVzIGFyZSB1c2VkLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6IEVuYWJsZSBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTIGZvciBFRkwgcGxhdGZv
cm0uCisKIDIwMTEtMTItMjMgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+
CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMDM0NjcpOiBJdCBicm9rZSBmYXN0L2ltYWdl
cy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYjE0NjJlLi5hYTM2NGRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMDc1LDcgKzEwNzUsNyBAQAogI2RlZmluZSBXVEZfVVNF
X1BMQVRGT1JNX1NUUkFURUdJRVMgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXSU4pCisjaWYg
UExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShFRkwpCiAjZGVmaW5lIFdURl9VU0VfQ1JPU1NfUExB
VEZPUk1fQ09OVEVYVF9NRU5VUyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVjZjY5NTIuLjA2
Mzc0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0xMi0yMyAgTWljaGHFgiBQ
YWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IENvbnRleHQgbWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2lu
ZyBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLiBBcyB0aGVy
ZSBhcmUgbm8gbmF0aXZlIHdpZGdldHMgaW4gRUZMIGV3a19jb250ZXh0X21lbnUKKyAgICAgICAg
c3RydWN0dXJlcyBhcmUgdXNlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOiBDaGFuZ2VkIE5hdGl2ZU1lbnUgZGVmaW5pdGlvbiB0
byBFd2tfQ29udGV4dF9NZW51X0NvcmUqLgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oOiBDaGFuZ2VkIE5hdGl2ZUl0ZW0gZGVmaW5pdGlvbiB0byBFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIGFuZCBjaGFuZ2VkIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudTo6Q29udGV4dE1lbnUpOiBDaGFuZ2UgcGFyYW1ldGVyIHRvIG1hdGNoIG5ldyBOYXRpdmVN
ZW51IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6Z2V0Q29udGV4
dE1lbnVJdGVtcyk6IEltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6
OmNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMpOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRNZW51OjpuYXRpdmVNZW51KTogQ2hhbmdlZCByZXR1cm4gdmFsdWUgdG8gbWF0
Y2ggbmV3IE5hdGl2ZU1lbnUgZGVmaW5pdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29u
dGV4dE1lbnVJdGVtRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6
Q29udGV4dE1lbnVJdGVtKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKTogQ2hhbmdlZCByZXR1cm4gdmFsdWUgdG8gbWF0Y2gg
bmV3IE5hdGl2ZUl0ZW0gZGVmaW5pdGlvbi4KKwogMjAxMS0xMi0yMiAgTWF0dCBGYWxrZW5oYWdl
biAgPGZhbGtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFwICdsYW5nJyBhbmQgeG1sOmxh
bmcgYXR0cmlidXRlcyB0byAnLXdlYmtpdC1sb2NhbGUnIENTUyBwcm9wZXJ0eSBmb3IgdXNlIHdp
dGggZm9udCBmYWxsYmFjayBhbmQgdGV4dC10cmFuc2Zvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5oCmluZGV4IGNiZGY1M2EuLjRhNzc0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnUuaApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgUExBVEZPUk0oV0lOKQogICAgICAgICB0eXBlZGVmIEhNRU5VIE5hdGl2ZU1lbnU7CiAjZWxp
ZiBQTEFURk9STShFRkwpCi0gICAgICAgIHR5cGVkZWYgdm9pZCogTmF0aXZlTWVudTsKKyAgICAg
ICAgdHlwZWRlZiBFd2tfQ29udGV4dF9NZW51X0NvcmUqIE5hdGl2ZU1lbnU7CiAjZW5kaWYKICAg
ICAgICAgZXhwbGljaXQgQ29udGV4dE1lbnUoTmF0aXZlTWVudSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggNGNhYWI4MC4uMDEwZTY3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTQ4LDYgKzQ4LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX0d0a0FjdGlvbiBHdGtBY3Rpb247CiAjaW5jbHVkZSA8UUFjdGlvbj4K
ICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hNZW51SXRlbTsKKyNlbGlmIFBMQVRGT1JNKEVG
TCkKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0yNTMsMTAgKzI1NSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgUExB
VEZPUk0oV0lOKQogICAgICAgICB0eXBlZGVmIE1FTlVJVEVNSU5GTyBOYXRpdmVJdGVtOwogI2Vs
aWYgUExBVEZPUk0oRUZMKQotICAgICAgICB0eXBlZGVmIHZvaWQqIE5hdGl2ZUl0ZW07CisgICAg
ICAgIHR5cGVkZWYgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBOYXRpdmVJdGVtOwogI2VuZGlmCiAg
ICAgICAgIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwg
Ym9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+
JiBzdWJNZW51SXRlbXMpOworI2lmIFBMQVRGT1JNKEVGTCkKKyAgICAgICAgZXhwbGljaXQgQ29u
dGV4dE1lbnVJdGVtKE5hdGl2ZUl0ZW0pOworI2Vsc2UKICAgICAgICAgZXhwbGljaXQgQ29udGV4
dE1lbnVJdGVtKGNvbnN0IE5hdGl2ZUl0ZW0mKTsKKyNlbmRpZgogCiAgICAgICAgIC8vIE9uIFdp
bmRvd3MsIHRoZSB0aXRsZSAoZHdUeXBlRGF0YSBvZiB0aGUgTUVOVUlURU1JTkZPKSBpcyBub3Qg
c2V0IGluIHRoaXMgZnVuY3Rpb24uIENhbGxlcnMgY2FuIHNldCB0aGUgdGl0bGUgdGhlbXNlbHZl
cywKICAgICAgICAgLy8gYW5kIGhhbmRsZSB0aGUgbGlmZXRpbWUgb2YgdGhlIHRpdGxlLCBpZiB0
aGV5IG5lZWQgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29u
dGV4dE1lbnVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51
RWZsLmNwcAppbmRleCA0NmEyMGRjLi42NzFkYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKQEAgLTI0LDI3ICsyNCwzNyBAQAogCiAjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
bi5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShDUk9TU19QTEFURk9STV9DT05U
RVhUX01FTlVTKQotQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KHZvaWQqIG1lbnUpCitDb250ZXh0
TWVudTo6Q29udGV4dE1lbnUoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBtZW51KQogewogICAgIGdl
dENvbnRleHRNZW51SXRlbXMobWVudSwgbV9pdGVtcyk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6
OmdldENvbnRleHRNZW51SXRlbXModm9pZCogbWVudSwgVmVjdG9yPENvbnRleHRNZW51SXRlbT4m
IGl0ZW1zKQordm9pZCBDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVtcyhFd2tfQ29udGV4
dF9NZW51X0NvcmUqIG1lbnUsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIGl0ZW1zLmNsZWFyKCk7CisgICAgVmVjdG9yPEV3a19D
b250ZXh0X01lbnVfSXRlbSo+IG5hdGl2ZUl0ZW1zOworICAgIGV3a19jb250ZXh0X21lbnVfY29y
ZV9pdGVtc19nZXQobWVudSwgbmF0aXZlSXRlbXMpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBuYXRpdmVJdGVtcy5zaXplKCk7ICsraSkKKyAgICAgICAgaXRlbXMuYXBwZW5kKENvbnRl
eHRNZW51SXRlbShuYXRpdmVJdGVtc1tpXSkpOwogfQogCi12b2lkKiBDb250ZXh0TWVudTo6Y3Jl
YXRlTmF0aXZlTWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRl
bXMpCitFd2tfQ29udGV4dF9NZW51X0NvcmUqIENvbnRleHRNZW51OjpjcmVhdGVOYXRpdmVNZW51
RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIEV3a19Db250ZXh0X01lbnVfQ29y
ZSogY29yZU1lbnUgPSBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCk7CisKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKQorICAgICAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fYXBwZW5kKGNvcmVNZW51LCBpdGVtc1tpXSk7CisgICAgcmV0dXJuIGNvcmVNZW51
OwogfQogCi12b2lkKiBDb250ZXh0TWVudTo6bmF0aXZlTWVudSgpIGNvbnN0CitFd2tfQ29udGV4
dF9NZW51X0NvcmUqIENvbnRleHRNZW51OjpuYXRpdmVNZW51KCkgY29uc3QKIHsKICAgICByZXR1
cm4gY3JlYXRlTmF0aXZlTWVudUZyb21JdGVtcyhtX2l0ZW1zKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKaW5kZXggNDI1YzZh
Ni4uZmEzZDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRl
eHRNZW51SXRlbUVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRl
eHRNZW51SXRlbUVmbC5jcHAKQEAgLTMxLDExICszMSwyMiBAQAogI2luY2x1ZGUgIkNvbnRleHRN
ZW51SXRlbS5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJld2tf
Y29udGV4dG1lbnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICNpZiBVU0UoQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUykKLXZvaWQqIENv
bnRleHRNZW51SXRlbTo6bmF0aXZlTWVudUl0ZW0oKSBjb25zdAorQ29udGV4dE1lbnVJdGVtOjpD
b250ZXh0TWVudUl0ZW0oRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQoreworICAgIG1fdHlw
ZSA9IHN0YXRpY19jYXN0PENvbnRleHRNZW51SXRlbVR5cGU+KGV3a19jb250ZXh0X21lbnVfaXRl
bV90eXBlX2dldChpdGVtKSk7CisgICAgbV9hY3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVu
dUFjdGlvbj4oZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoaXRlbSkpOworICAgIG1f
dGl0bGUgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KGl0ZW0pOworICAgIG1fZW5h
YmxlZCA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX2dldChpdGVtKTsKKyAgICBtX2No
ZWNrZWQgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9nZXQoaXRlbSk7Cit9CisKK0V3
a19Db250ZXh0X01lbnVfSXRlbSogQ29udGV4dE1lbnVJdGVtOjpuYXRpdmVNZW51SXRlbSgpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYktpdC9lZmwv
Q01ha2VMaXN0c0VmbC50eHQKaW5kZXggYzVlZjY1Ni4uNWY1Nzk1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTY1LDYgKzY1LDcgQEAgRU5ESUYgKCkKIExJU1QoQVBQRU5E
IFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKyAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNv
cmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0
L0RyYWdDbGllbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZWQ3ZmE5Mi4uZTU1MmIxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDExLTEyLTIzICBNaWNoYcWCIFBh
a3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0g
Q29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5n
IENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBwcm9hY2guIEFzIHRoZXJl
IGFyZSBubyBuYXRpdmUgd2lkZ2V0cyBpbiBFRkwgZXdrX2NvbnRleHRfbWVudQorICAgICAgICBz
dHJ1Y3R1cmVzIGFyZSB1c2VkLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6IEFkZGVk
IENvbnRleHRNZW51Q2xpZW50RWZsLmNwcCB0byBzb3VyY2VzIGxpc3QuCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwOiBSZXN0b3JlIHRoZSBmaWxlLgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OkNvbnRleHRNZW51Q2xpZW50
RWZsKTogQWRkZWQgYW5kIGltcGxlbWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKTogQWRkZWQgYW5kIGltcGxlbWVudGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmN1c3RvbWl6ZU1lbnUp
OiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4
dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJMKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNsaWVudEVmbDo6bG9va1VwSW5EaWN0aW9uYXJ5KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c3BlYWspOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c2VhcmNoV2l0aEdvb2ds
ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZs
Lmg6IFJlc3RvcmUgdGhlIGZpbGUuCisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5jcHA6
IEFkZGVkIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgYXMgYSB3cmFwIGZvciBFaW5hX0xpc3QuCisg
ICAgICAgIChld2tfY29udGV4dF9tZW51X3VucmVmKTogVXBkYXRlZCBFaW5hX0xpc3QgZnJlZWlu
Zy4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldCk6IFVwZGF0ZWQgRWlu
YV9MaXN0IHJldHVybi4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfbmV3KTogQWRkZWQgRXdr
X0NvbnRleHRfTWVudV9Db3JlIGFzIHBhcmFtZXRlci4KKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfaXRlbV9hcHBlbmQpOiBDaGFuZ2VkIHBhcmVtZXRlciBmcm9tIEV3a19Db250ZXh0X01lbnUg
dG8gRXdrX0NvbnRleHRfTWVudV9Db3JlLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9zaG93
KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfY29yZV9pdGVtc19nZXQpOiBBZGRlZC4KKyAg
ICAgICAgKGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcpOiBBZGRlZC4KKyAgICAgICAgKiBld2sv
ZXdrX2NvbnRleHRtZW51Lmg6IEFkZGVkIG5ldyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb24gb2Yg
RXdrX0NvbnRleHRfTWVudV9Db3JlCisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IEFkZGVk
IGZ1bmN0aW9uIGRlZmluaXRpb24uCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAg
ICAgKF9ld2tfdmlld19wcml2X25ldyk6IEFkZGVkIGNvbnRleHRNZW51Q2xpZW50IGluaXRpYWxp
c2F0aW9uLgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOiBD
aGFuZ2VkIGNvbmRpdGlvbi4KKwogMjAxMS0xMi0yMiAgTWFyaXVzeiBHcnplZ29yY3p5ayAgPG1h
cml1c3ouZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBNaXNzaW5nIHBsdWdpbnMgc3Vw
cG9ydCBmb3IgZWZsIHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi44NGFkY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCkBAIC0wLDAgKzEsMTAx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCisKKyNpbmNsdWRlICJDb250ZXh0
TWVudS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0NvbnRleHRNZW51Q2xpZW50RWZsOjpDb250ZXh0TWVudUNsaWVudEVmbChFdmFzX09iamVj
dCogdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQorICAgICwgbV9uYXRpdmVNZW51KDApCit7Cit9
CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKCkKK3sK
KyAgICBpZiAobV9uYXRpdmVNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUobV9u
YXRpdmVNZW51KTsKKyAgICBkZWxldGUgdGhpczsKK30KKworUGFzc093blB0cjxDb250ZXh0TWVu
dT4gQ29udGV4dE1lbnVDbGllbnRFZmw6OmN1c3RvbWl6ZU1lbnUoUGFzc093blB0cjxDb250ZXh0
TWVudT4gY29udGV4dE1lbnUpCit7CisgICAgaWYgKG1fbmF0aXZlTWVudSkKKyAgICAgICAgZXdr
X2NvbnRleHRfbWVudV9mcmVlKG1fbmF0aXZlTWVudSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51
X0NvcmUqIGNvcmVNZW51ID0gY29udGV4dE1lbnUtPm5hdGl2ZU1lbnUoKTsKKyAgICBtX25hdGl2
ZU1lbnUgPSBld2tfY29udGV4dF9tZW51X25ldyhtX3ZpZXcsIGNvcmVNZW51LCBFV0tQcml2YXRl
Ojpjb3JlUGFnZShtX3ZpZXcpLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKSk7CisgICAgZXdrX2Nv
bnRleHRfbWVudV9zaG93KG1fbmF0aXZlTWVudSk7CisgICAgT3duUHRyPENvbnRleHRNZW51PiBj
dXN0b21pemVkTWVudSA9IGFkb3B0UHRyKG5ldyBDb250ZXh0TWVudShjb3JlTWVudSkpOworCisg
ICAgcmV0dXJuIGN1c3RvbWl6ZWRNZW51LnJlbGVhc2UoKTsKK30KKwordm9pZCBDb250ZXh0TWVu
dUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVt
LCBjb25zdCBDb250ZXh0TWVudSogcGFyZW50TWVudSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpkb3dubG9hZFVSTChjb25zdCBLVVJM
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50
RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBDb250ZXh0TWVudUNsaWVudEVmbDo6
aXNTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnN0b3BTcGVha2luZygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c2VhcmNo
V2l0aEdvb2dsZShjb25zdCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRN
ZW51Q2xpZW50RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlNDU0
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nv
bnRleHRNZW51Q2xpZW50RWZsLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZV
U0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVj
dHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dE1lbnVDbGllbnRFZmxfaAorI2RlZmluZSBD
b250ZXh0TWVudUNsaWVudEVmbF9oCisKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgor
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb250ZXh0TWVudTsKKworY2xhc3MgQ29udGV4
dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgeworcHVibGljOgorICAg
IENvbnRleHRNZW51Q2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgdmlydHVhbCB2b2lkIGNv
bnRleHRNZW51RGVzdHJveWVkKCk7CisKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6
Q29udGV4dE1lbnU+IGN1c3RvbWl6ZU1lbnUoUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVu
dT4pOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVu
dUl0ZW0qLCBjb25zdCBDb250ZXh0TWVudSopOworCisgICAgdmlydHVhbCB2b2lkIGRvd25sb2Fk
VVJMKGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5KEZy
YW1lKik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1
YWwgYm9vbCBpc1NwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKik7CisKK3ByaXZh
dGU6CisgICAgRXZhc19PYmplY3QqIG1fdmlldzsKKyAgICBFd2tfQ29udGV4dF9NZW51KiBtX25h
dGl2ZU1lbnU7Cit9OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250
ZXh0bWVudS5jcHAKaW5kZXggZDJiOWYxOS4uMGRkOGMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTI0LDExICsyNCwxNiBAQAogI2luY2x1ZGUgIkNv
bnRleHRNZW51LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnVJdGVtLmgiCisjaW5jbHVkZSAiZXdrX2xvZ2dpbmcuaCIKICNpbmNsdWRl
ICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVpbmEuaD4KICNpbmNsdWRlIDxlaW5hX3NhZmV0
eV9jaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKK3N0cnVjdCBfRXdr
X0NvbnRleHRfTWVudV9Db3JlIHsKKyAgICBFaW5hX0xpc3QqIGl0ZW1zOyAvKio8IHRoZSBsaXN0
IG9mIGl0ZW1zICovCit9OworCiAvKioKICAqIFxzdHJ1Y3QgIF9Fd2tfQ29udGV4dF9NZW51CiAg
KiBAYnJpZWYgICBDb250YWlucyB0aGUgY29udGV4dCBtZW51IGRhdGEuCkBAIC00MCw3ICs0NSw3
IEBAIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudSB7CiAjZW5kaWYKICAgICBFdmFzX09iamVjdCog
dmlldzsgLyoqPCB0aGUgdmlldyBvYmplY3QgKi8KIAotICAgIEVpbmFfTGlzdCogaXRlbXM7IC8q
KjwgdGhlIGxpc3Qgb2YgaXRlbXMgKi8KKyAgICBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVN
ZW51OyAvKio8IGEgd3JhcHBlciBmb3IgRWluYV9MaXN0IGNvbnRhaW5pbmcgY29udGV4dCBtZW51
IGl0ZW1zICovCiB9OwogCiAvKioKQEAgLTcyLDcgKzc3LDcgQEAgdm9pZCBld2tfY29udGV4dF9t
ZW51X3VucmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAgICAgaWYgKC0tbWVudS0+X19yZWYp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEVJTkFfTElTVF9GUkVFKG1lbnUtPml0ZW1zLCBpdGVt
KQorICAgIEVJTkFfTElTVF9GUkVFKG1lbnUtPmNvcmVNZW51LT5pdGVtcywgaXRlbSkKICAgICAg
ICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2ZyZWUoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVu
dV9JdGVtKj4oaXRlbSkpOwogCiAgICAgZnJlZShtZW51KTsKQEAgLTkzLDggKzk4LDkgQEAgRWlu
YV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVzdHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51KQog
Y29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdr
X0NvbnRleHRfTWVudSogbWVudSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwobWVudSwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUtPmNv
cmVNZW51LCAwKTsKIAotICAgIHJldHVybiBtZW51LT5pdGVtczsKKyAgICByZXR1cm4gbWVudS0+
Y29yZU1lbnUtPml0ZW1zOwogfQogCiBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGV3a19jb250ZXh0
X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwKQEAgLTIyMCwx
MCArMjI2LDExIEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQo
RXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtLCBFaW5hX0JvCiAgKgogICogQG5vdGUgZW1pdHMg
YSBzaWduYWwgImNvbnRleHRtZW51LG5ldyIKICAqLwotRXdrX0NvbnRleHRfTWVudSogZXdrX2Nv
bnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29u
dHJvbGxlciogY29udHJvbGxlcikKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVf
bmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51LCBX
ZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCiB7CiAgICAgRXdrX0Nv
bnRleHRfTWVudSogbWVudTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodmll
dywgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNvcmVNZW51LCAwKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29udHJvbGxlciwgMCk7CiAKICAg
ICBtZW51ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudSo+KG1hbGxvYyhzaXplb2YoKm1l
bnUpKSk7CkBAIC0yMzUsNyArMjQyLDggQEAgRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRf
bWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q28KICAgICBt
ZW51LT5fX3JlZiA9IDE7CiAgICAgbWVudS0+dmlldyA9IHZpZXc7CiAgICAgbWVudS0+Y29udHJv
bGxlciA9IGNvbnRyb2xsZXI7Ci0gICAgbWVudS0+aXRlbXMgPSAwOworICAgIG1lbnUtPmNvcmVN
ZW51ID0gY29yZU1lbnU7CisKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1l
bnUtPnZpZXcsICJjb250ZXh0bWVudSxuZXciLCBtZW51KTsKIAogICAgIHJldHVybiBtZW51OwpA
QCAtMjczLDcgKzI4MSw3IEBAIGJvb2wgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0
X01lbnUqIG1lbnUpCiAgKgogICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3CiAgKi8K
LXZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51
LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCit2b2lkIGV3a19jb250ZXh0X21lbnVf
aXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSwgY29uc3QgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKQogewogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZT4oY29yZS50
eXBlKCkpOwogICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKQEAgLTI4Myw0MiArMjkx
LDU2IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51
KiBtZW51LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOKG1lbnVfaXRlbSk7CiAKLSAgICBtZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBl
bmQobWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsaXRlbSxhcHBlbmRlZCIsIG1lbnUpOwor
ICAgIGNvcmVNZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQoY29yZU1lbnUtPml0ZW1zLCBt
ZW51X2l0ZW0pOwogfQogCiAvKioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVtaXRzIGEgc2lnbmFs
IHdpdGggdGhlIGl0ZW1zIG9mIHRoZSBjb250ZXh0IG1lbnUuCisgKiBFbWl0cyBhIHNpZ25hbCAi
Y29udGV4dG1lbnUsc2hvdyIKICAqCiAgKiBAcGFyYW0gbWVudSB0aGUgY29udGV4dCBtZW51IG9i
amVjdAotICogQHJldHVybiB0aGUgc2FtZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRoYXQgd2FzIGdp
dmVuIHRocm91Z2ggcGFyYW1ldGVyCi0gKgotICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRl
eHRtZW51LGN1c3RvbWl6ZSIKLSAqCi0gKiBAc2VlIGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0
X2dldAogICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShF
d2tfQ29udGV4dF9NZW51KiBtZW51KQordm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0Nv
bnRleHRfTWVudSogbWVudSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
bWVudSwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CiAKLSAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxj
dXN0b21pemUiLCBtZW51LT5pdGVtcyk7Ci0gICAgcmV0dXJuIG1lbnU7CisgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsc2hvdyIsIG1l
bnUpOwogfQogCiAvKioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVtaXRzIGEgc2lnbmFsICJjb250
ZXh0bWVudSxzaG93IgorICogR2V0cyBhIFZlY3RvciBvZiBjb250ZXh0IG1lbnUgaXRlbXMKICAq
Ci0gKiBAcGFyYW0gbWVudSB0aGUgY29udGV4dCBtZW51IG9iamVjdAorICogQHBhcmFtIGNvcmVN
ZW51IHRoZSBjb250ZXh0IG1lbnUgY29yZSBvYmplY3QKKyAqIEBwYXJhbSBpdGVtc1ZlY3RvciBh
IHZlY3RvciB0byBmaWxsIHdpdGggRXdrX0NvbnRleHRfTWVudV9JdGVtCiAgKi8KLXZvaWQgZXdr
X2NvbnRleHRfbWVudV9zaG93KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit2b2lkIGV3a19jb250
ZXh0X21lbnVfY29yZV9pdGVtc19nZXQoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSwg
VmVjdG9yPEV3a19Db250ZXh0X01lbnVfSXRlbSo+JiBpdGVtc1ZlY3RvcikKIHsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTihjb3JlTWVudSk7CiAKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1l
bnUtPnZpZXcsICJjb250ZXh0bWVudSxzaG93IiwgbWVudSk7CisgICAgRWluYV9MaXN0KiBsaXN0
SXRlcmF0b3I7CisgICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChjb3JlTWVu
dS0+aXRlbXMsIGxpc3RJdGVyYXRvciwgaXRlbSkKKyAgICAgICAgaXRlbXNWZWN0b3IuYXBwZW5k
KHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KGl0ZW0pKTsKIH0KIAorLyoqCisg
KiBAaW50ZXJuYWwKKyAqCisgKiBDcmVhdGVzIGNvcmUgY29udGV4dCBtZW51CisgKgorICovCitF
d2tfQ29udGV4dF9NZW51X0NvcmUqIGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcoKQoreworICAg
IEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnU7CisgICAgY29yZU1lbnUgPSBzdGF0aWNf
Y2FzdDxFd2tfQ29udGV4dF9NZW51X0NvcmUqPihtYWxsb2Moc2l6ZW9mKCpjb3JlTWVudSkpKTsK
KyAgICBpZiAoIWNvcmVNZW51KSB7CisgICAgICAgIENSSVRJQ0FMKCJDb3VsZCBub3QgYWxsb2Nh
dGUgY29udGV4dCBtZW51IG1lbW9yeS4iKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAg
IGNvcmVNZW51LT5pdGVtcyA9IDA7CisgICAgcmV0dXJuIGNvcmVNZW51OworfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKaW5kZXggNGU4ZWY5ZS4uN2ExY2Uy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaApAQCAtMjQsMTEgKzI0
LDcgQEAKICAqCiAgKiBUaGUgZm9sbG93aW5nIHNpZ25hbHMgKHNlZSBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQoKSkgYXJlIGVtaXR0ZWQ6CiAgKgotICogIC0gImNvbnRleHRtZW51LGN1
c3RvbWl6ZSIsIEVpbmFfTGlzdCAqOiBjdXN0b21pemUgY29udGV4dCBtZW51IGlzIHRha2VuCi0g
KiAgICBhbmQgaXQgZ2l2ZXMgYSBsaXN0IHdpdGggaXRlbXMgb2YgY29udGV4dCBtZW51IGFzIGFu
IGFyZ3VtZW50LgogICogIC0gImNvbnRleHRtZW51LGZyZWUiLCBFd2tfQ29udGV4dF9NZW51ICo6
IGEgY29udGV4dCBtZW51IGlzIGZyZWVkLgotICogIC0gImNvbnRleHRtZW51LGl0ZW0sYXBwZW5k
ZWQiLCBFd2tfQ29udGV4dF9NZW51ICo6IGEgbmV3IGl0ZW0gd2FzIGFkZGVkIHRvCi0gKiAgICB0
aGUgY29udGV4dCBtZW51LgogICogIC0gImNvbnRleHRtZW51LG5ldyIsIEV3a19Db250ZXh0X01l
bnUgKjogYSBuZXcgY29udGV4dCBtZW51IHdhcyBjcmVhdGVkCiAgKiAgICBhbmQgaXQgZ2l2ZXMg
dGhlIGNvbnRleHQgbWVudSBhcyBhbiBhcmd1bWVudC4KICAqICAtICJjb250ZXh0bWVudSxzaG93
IiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIGNvbnRleHQgbWVudSBpcyBzaG93bi4KQEAgLTEzOSw2
ICsxMzUsOSBAQCBlbnVtIF9Fd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB7CiAgICAgRVdLX1NF
UEFSQVRPUl9UWVBFLAogICAgIEVXS19TVUJNRU5VX1RZUEUKIH07CisvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19Db250ZXh0X01lbnVfQ29yZSAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3
a19Db250ZXh0X01lbnVfQ29yZSBFd2tfQ29udGV4dF9NZW51X0NvcmU7CisKIC8qKiBDcmVhdGVz
IGEgdHlwZSBuYW1lIGZvciBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgKi8KIHR5cGVkZWYg
ZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgICAgRXdrX0NvbnRleHRfTWVudV9JdGVt
X1R5cGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggNzdmNjUzNC4uMDYz
OTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJOUF9qc29iamVjdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJX
aWRnZXQuaCIKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNpbmNsdWRlICJld2tfaGlz
dG9yeS5oIgogI2luY2x1ZGUgImV3a19qcy5oIgogI2luY2x1ZGUgImV3a192aWV3LmgiCkBAIC0x
NjUsMTEgKzE2NiwxMyBAQCBFd2tfSGlzdG9yeSogZXdrX2hpc3RvcnlfbmV3KFdlYkNvcmU6OkJh
Y2tGb3J3YXJkTGlzdEltcGwqIGhpc3RvcnkpOwogdm9pZCBld2tfaGlzdG9yeV9mcmVlKEV3a19I
aXN0b3J5KiBoaXN0b3J5KTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotRXdrX0NvbnRl
eHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7CitFd2tfQ29udGV4dF9NZW51KiBl
d2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgRXdrX0NvbnRleHRfTWVudV9D
b3JlKiBjb3JlTWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVy
KTsKIGJvb2wgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwot
dm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUs
IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSk7Cit2b2lkIGV3a19jb250ZXh0X21lbnVf
aXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSwgY29uc3QgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKTsKIEV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0
X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwogdm9pZCBld2tfY29udGV4
dF9tZW51X3Nob3coRXdrX0NvbnRleHRfTWVudSogbWVudSk7Cit2b2lkIGV3a19jb250ZXh0X21l
bnVfY29yZV9pdGVtc19nZXQoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSwgVmVjdG9y
PEV3a19Db250ZXh0X01lbnVfSXRlbSo+JiBpdGVtc1ZlY3Rvcik7CitFd2tfQ29udGV4dF9NZW51
X0NvcmUqIGV3a19jb250ZXh0X21lbnVfY29yZV9uZXcoKTsKICNlbmRpZgogCiBjb25zdCBFaW5h
X1JlY3RhbmdsZSogZXdrX3ZpZXdfcmVwYWludHNfZ2V0KGNvbnN0IEV3a19WaWV3X1ByaXZhdGVf
RGF0YSogcHJpdiwgc2l6ZV90KiBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApp
bmRleCA4NzE1NmVhLi4yMjUwYTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVu
dEVmbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEVmbC5oIgpAQCAtNjA3LDYgKzYw
OCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhF
d2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBXZWJDb3JlOjpQYWdlOjpQYWdl
Q2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcg
V2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisgICAgcGFnZUNsaWVu
dHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmwo
c21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMu
ZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwogICAgIHBhZ2VDbGllbnRz
Lmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw7CkBAIC0x
NDc2LDcgKzE0NzgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRf
ZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgICAgICAgICAgbWFp
bkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAg
ICB9CiAKLSAgICBpZiAobWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51
RXZlbnQoZXZlbnQpKQorICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENv
bnRleHRNZW51RXZlbnQoZXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJD
b3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCA5N2Rh
NjExLi45NDQ4OGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQor
KysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMzcsNyArMzcsNyBAQCBGSU5E
X1BBQ0tBR0UoVGhyZWFkcyBSRVFVSVJFRCkKIEZJTkRfUEFDS0FHRShKUEVHIFJFUVVJUkVEKQog
RklORF9QQUNLQUdFKFBORyBSRVFVSVJFRCkKIAotQUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NP
TlRFWFRfTUVOVVM9MCkKK0FERF9ERUZJTklUSU9OUygtREVOQUJMRV9DT05URVhUX01FTlVTPTEp
CiAKIFNFVChXVEZfVVNFX1BUSFJFQURTIDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BU
SFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120677</attachid>
            <date>2011-12-28 08:48:33 -0800</date>
            <delta_ts>2012-03-19 17:00:18 -0700</delta_ts>
            <desc>removed definition from PlatformEfl.cmake</desc>
            <filename>proposed_patch_options.diff</filename>
            <type>text/plain</type>
            <size>27161</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwYTZiYmY4Li45NjM2NDdm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTItMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAg
ICAgICBhcHByb2FjaC4gQXMgdGhlcmUgYXJlIG5vIG5hdGl2ZSB3aWRnZXRzIGluIEVGTCBld2tf
Y29udGV4dF9tZW51CisgICAgICAgIHN0cnVjdHVyZXMgYXJlIHVzZWQuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcg
Zm9yIEVGTCBwb3J0LgorCiAyMDExLTEyLTIyICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9i
aWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIGJsb2IgZm9yIHRoZSBC
bGFja0JlcnJ5IHBvcnRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdhMzA5MjQuLmM3
NWFlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEy
LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9y
IEVGTCBwb3J0IHVzaW5nIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBw
cm9hY2guIEFzIHRoZXJlIGFyZSBubyBuYXRpdmUgd2lkZ2V0cyBpbiBFRkwgZXdrX2NvbnRleHRf
bWVudQorICAgICAgICBzdHJ1Y3R1cmVzIGFyZSB1c2VkLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6IEVuYWJsZSBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTIGZvciBFRkwgcGxhdGZv
cm0uCisKIDIwMTEtMTItMjMgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+
CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMDM0NjcpOiBJdCBicm9rZSBmYXN0L2ltYWdl
cy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAppbmRleCBiYjE0NjJlLi5hYTM2NGRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMDc1LDcgKzEwNzUsNyBAQAogI2RlZmluZSBXVEZfVVNF
X1BMQVRGT1JNX1NUUkFURUdJRVMgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXSU4pCisjaWYg
UExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShFRkwpCiAjZGVmaW5lIFdURl9VU0VfQ1JPU1NfUExB
VEZPUk1fQ09OVEVYVF9NRU5VUyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVjZjY5NTIuLjNh
MGYxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0xMi0yMyAgTWljaGHFgiBQ
YWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IENvbnRleHQgbWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2lu
ZyBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLiBBcyB0aGVy
ZSBhcmUgbm8gbmF0aXZlIHdpZGdldHMgaW4gRUZMIGV3a19jb250ZXh0X21lbnUKKyAgICAgICAg
c3RydWN0dXJlcyBhcmUgdXNlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAg
KiBQbGF0Zm9ybUVmbC5jbWFrZTogUmVtb3ZlZCAtRFdURl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09O
VEVYVF9NRU5VUz0xLgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51Lmg6IENoYW5nZWQg
TmF0aXZlTWVudSBkZWZpbml0aW9uIHRvIEV3a19Db250ZXh0X01lbnVfQ29yZSouCisgICAgICAg
ICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6IENoYW5nZWQgTmF0aXZlSXRlbSBkZWZpbml0
aW9uIHRvIEV3a19Db250ZXh0X01lbnVfSXRlbSogYW5kIGNoYW5nZWQgY29uc3RydWN0b3IgZGVj
bGFyYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpDb250ZXh0TWVudSk6IENoYW5nZSBwYXJhbWV0
ZXIgdG8gbWF0Y2ggbmV3IE5hdGl2ZU1lbnUgZGVmaW5pdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51OjpnZXRDb250ZXh0TWVudUl0ZW1zKTogSW1wbGVtZW50ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudTo6Y3JlYXRlTmF0aXZlTWVudUZyb21JdGVtcyk6IEltcGxl
bWVudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6Om5hdGl2ZU1lbnUpOiBDaGFu
Z2VkIHJldHVybiB2YWx1ZSB0byBtYXRjaCBuZXcgTmF0aXZlTWVudSBkZWZpbml0aW9uLgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0pOiBJbXBsZW1lbnRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6bmF0aXZlTWVudUl0ZW0pOiBDaGFuZ2Vk
IHJldHVybiB2YWx1ZSB0byBtYXRjaCBuZXcgTmF0aXZlSXRlbSBkZWZpbml0aW9uLgorCiAyMDEx
LTEyLTIyICBNYXR0IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBNYXAgJ2xhbmcnIGFuZCB4bWw6bGFuZyBhdHRyaWJ1dGVzIHRvICctd2Via2l0LWxvY2FsZScg
Q1NTIHByb3BlcnR5IGZvciB1c2Ugd2l0aCBmb250IGZhbGxiYWNrIGFuZCB0ZXh0LXRyYW5zZm9y
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBiYzIzNWQ3Li40NzliMWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMzAyLDUgKzMwMiw0IEBAIElGIChXVEZfVVNFX0NVUkwp
CiAgICkKIEVORElGICgpCiAKLUFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfQ1JPU1NfUExBVEZP
Uk1fQ09OVEVYVF9NRU5VUz0xCi0gICAgICAgICAgICAgICAgLUREQVRBX0RJUj0iJHtDTUFLRV9J
TlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfSIpCitBRERfREVGSU5JVElPTlMoLURE
QVRBX0RJUj0iJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfSIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCBjYmRmNTNhLi40YTc3NGU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTU0LDcgKzU0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgdHlwZWRlZiBITUVO
VSBOYXRpdmVNZW51OwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgICAgICB0eXBlZGVmIHZvaWQq
IE5hdGl2ZU1lbnU7CisgICAgICAgIHR5cGVkZWYgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBOYXRp
dmVNZW51OwogI2VuZGlmCiAgICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51KE5hdGl2ZU1lbnUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IDRjYWFi
ODAuLjAxMGU2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5o
CkBAIC00OCw2ICs0OCw4IEBAIHR5cGVkZWYgc3RydWN0IF9HdGtBY3Rpb24gR3RrQWN0aW9uOwog
I2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNzIHd4TWVudUl0ZW07
CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjUzLDEwICsyNTUsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgdHlwZWRlZiBNRU5VSVRFTUlO
Rk8gTmF0aXZlSXRlbTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICAgICAgdHlwZWRlZiB2b2lk
KiBOYXRpdmVJdGVtOworICAgICAgICB0eXBlZGVmIEV3a19Db250ZXh0X01lbnVfSXRlbSogTmF0
aXZlSXRlbTsKICNlbmRpZgogICAgICAgICBDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVBY3Rp
b24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBjb25zdCBWZWN0
b3I8Q29udGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zKTsKKyNpZiBQTEFURk9STShFRkwpCisg
ICAgICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShOYXRpdmVJdGVtKTsKKyNlbHNlCiAgICAg
ICAgIGV4cGxpY2l0IENvbnRleHRNZW51SXRlbShjb25zdCBOYXRpdmVJdGVtJik7CisjZW5kaWYK
IAogICAgICAgICAvLyBPbiBXaW5kb3dzLCB0aGUgdGl0bGUgKGR3VHlwZURhdGEgb2YgdGhlIE1F
TlVJVEVNSU5GTykgaXMgbm90IHNldCBpbiB0aGlzIGZ1bmN0aW9uLiBDYWxsZXJzIGNhbiBzZXQg
dGhlIHRpdGxlIHRoZW1zZWx2ZXMsCiAgICAgICAgIC8vIGFuZCBoYW5kbGUgdGhlIGxpZmV0aW1l
IG9mIHRoZSB0aXRsZSwgaWYgdGhleSBuZWVkIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKaW5kZXggNDZhMjBkYy4uNjcxZGJmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCkBAIC0yNCwy
NyArMjQsMzcgQEAKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKKyNp
bmNsdWRlICJld2tfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBVU0Uo
Q1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUykKLUNvbnRleHRNZW51OjpDb250ZXh0TWVudSh2
b2lkKiBtZW51KQorQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KEV3a19Db250ZXh0X01lbnVfQ29y
ZSogbWVudSkKIHsKICAgICBnZXRDb250ZXh0TWVudUl0ZW1zKG1lbnUsIG1faXRlbXMpOwogfQog
Ci12b2lkIENvbnRleHRNZW51OjpnZXRDb250ZXh0TWVudUl0ZW1zKHZvaWQqIG1lbnUsIFZlY3Rv
cjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKK3ZvaWQgQ29udGV4dE1lbnU6OmdldENvbnRleHRN
ZW51SXRlbXMoRXdrX0NvbnRleHRfTWVudV9Db3JlKiBtZW51LCBWZWN0b3I8Q29udGV4dE1lbnVJ
dGVtPiYgaXRlbXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpdGVtcy5jbGVhcigp
OworICAgIFZlY3RvcjxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPiBuYXRpdmVJdGVtczsKKyAgICBl
d2tfY29udGV4dF9tZW51X2NvcmVfaXRlbXNfZ2V0KG1lbnUsIG5hdGl2ZUl0ZW1zKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmF0aXZlSXRlbXMuc2l6ZSgpOyArK2kpCisgICAgICAg
IGl0ZW1zLmFwcGVuZChDb250ZXh0TWVudUl0ZW0obmF0aXZlSXRlbXNbaV0pKTsKIH0KIAotdm9p
ZCogQ29udGV4dE1lbnU6OmNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPENv
bnRleHRNZW51SXRlbT4mIGl0ZW1zKQorRXdrX0NvbnRleHRfTWVudV9Db3JlKiBDb250ZXh0TWVu
dTo6Y3JlYXRlTmF0aXZlTWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVt
PiYgaXRlbXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBF
d2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51ID0gZXdrX2NvbnRleHRfbWVudV9jb3JlX25l
dygpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkKKyAg
ICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChjb3JlTWVudSwgaXRlbXNbaV0pOwor
ICAgIHJldHVybiBjb3JlTWVudTsKIH0KIAotdm9pZCogQ29udGV4dE1lbnU6Om5hdGl2ZU1lbnUo
KSBjb25zdAorRXdrX0NvbnRleHRfTWVudV9Db3JlKiBDb250ZXh0TWVudTo6bmF0aXZlTWVudSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGNyZWF0ZU5hdGl2ZU1lbnVGcm9tSXRlbXMobV9pdGVtcyk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJ
dGVtRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1F
ZmwuY3BwCmluZGV4IDQyNWM2YTYuLmZhM2Q1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCkBAIC0zMSwxMSArMzEsMjIgQEAK
ICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgVVNFKENST1NTX1BMQVRGT1JNX0NPTlRF
WFRfTUVOVVMpCi12b2lkKiBDb250ZXh0TWVudUl0ZW06Om5hdGl2ZU1lbnVJdGVtKCkgY29uc3QK
K0NvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKEV3a19Db250ZXh0X01lbnVfSXRlbSog
aXRlbSkKK3sKKyAgICBtX3R5cGUgPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUl0ZW1UeXBlPihl
d2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9nZXQoaXRlbSkpOworICAgIG1fYWN0aW9uID0gc3Rh
dGljX2Nhc3Q8Q29udGV4dE1lbnVBY3Rpb24+KGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25f
Z2V0KGl0ZW0pKTsKKyAgICBtX3RpdGxlID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dl
dChpdGVtKTsKKyAgICBtX2VuYWJsZWQgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9n
ZXQoaXRlbSk7CisgICAgbV9jaGVja2VkID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRf
Z2V0KGl0ZW0pOworfQorCitFd2tfQ29udGV4dF9NZW51X0l0ZW0qIENvbnRleHRNZW51SXRlbTo6
bmF0aXZlTWVudUl0ZW0oKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dCBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CmluZGV4IGM1ZWY2NTYuLjVmNTc5
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBAIC02NSw2ICs2NSw3IEBAIEVO
RElGICgpCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3JlU3VwcG9y
dC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwCisgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZs
LmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbC5j
cHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50RWZsLmNwcAogICAg
IGVmbC9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4
IGVkN2ZhOTIuLmU1NTJiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAx
MS0xMi0yMyAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29t
PgorCisgICAgICAgIFtFRkxdIENvbnRleHQgbWVudSByZXN0b3JlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0
IGZvciBFRkwgcG9ydCB1c2luZyBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAg
IGFwcHJvYWNoLiBBcyB0aGVyZSBhcmUgbm8gbmF0aXZlIHdpZGdldHMgaW4gRUZMIGV3a19jb250
ZXh0X21lbnUKKyAgICAgICAgc3RydWN0dXJlcyBhcmUgdXNlZC4KKworICAgICAgICAqIENNYWtl
TGlzdHNFZmwudHh0OiBBZGRlZCBDb250ZXh0TWVudUNsaWVudEVmbC5jcHAgdG8gc291cmNlcyBs
aXN0LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcDog
UmVzdG9yZSB0aGUgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZs
OjpDb250ZXh0TWVudUNsaWVudEVmbCk6IEFkZGVkIGFuZCBpbXBsZW1lbnRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudURlc3Ryb3llZCk6IEFk
ZGVkIGFuZCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50
RWZsOjpjdXN0b21pemVNZW51KTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpkb3dubG9hZFVSTCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcEluRGljdGlvbmFy
eSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFr
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6aXNTcGVh
a2luZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnN0
b3BTcGVha2luZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRF
Zmw6OnNlYXJjaFdpdGhHb29nbGUpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudEVmbC5oOiBSZXN0b3JlIHRoZSBmaWxlLgorICAgICAgICAqIGV3ay9l
d2tfY29udGV4dG1lbnUuY3BwOiBBZGRlZCBfRXdrX0NvbnRleHRfTWVudV9Db3JlIGFzIGEgd3Jh
cCBmb3IgRWluYV9MaXN0LgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV91bnJlZik6IFVwZGF0
ZWQgRWluYV9MaXN0IGZyZWVpbmcuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbGlz
dF9nZXQpOiBVcGRhdGVkIEVpbmFfTGlzdCByZXR1cm4uCisgICAgICAgIChld2tfY29udGV4dF9t
ZW51X25ldyk6IEFkZGVkIEV3a19Db250ZXh0X01lbnVfQ29yZSBhcyBwYXJhbWV0ZXIuCisgICAg
ICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKTogQ2hhbmdlZCBwYXJlbWV0ZXIgZnJv
bSBFd2tfQ29udGV4dF9NZW51IHRvIEV3a19Db250ZXh0X01lbnVfQ29yZS4KKyAgICAgICAgKGV3
a19jb250ZXh0X21lbnVfc2hvdyk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2NvcmVfaXRl
bXNfZ2V0KTogQWRkZWQuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KTogQWRk
ZWQuCisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5oOiBBZGRlZCBuZXcgZnVuY3Rpb25z
IGFuZCBkZWZpbml0aW9uIG9mIEV3a19Db250ZXh0X01lbnVfQ29yZQorICAgICAgICAqIGV3ay9l
d2tfcHJpdmF0ZS5oOiBBZGRlZCBmdW5jdGlvbiBkZWZpbml0aW9uLgorICAgICAgICAqIGV3ay9l
d2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOiBBZGRlZCBjb250ZXh0
TWVudUNsaWVudCBpbml0aWFsaXNhdGlvbi4KKyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVu
dV9mb3J3YXJkX2V2ZW50KTogQ2hhbmdlZCBjb25kaXRpb24uCisKIDIwMTEtMTItMjIgIE1hcml1
c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0g
TWlzc2luZyBwbHVnaW5zIHN1cHBvcnQgZm9yIGVmbCBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRhZGNhNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZs
LmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBD
b21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBz
eXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgor
CisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
I2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitDb250ZXh0TWVudUNsaWVudEVmbDo6Q29udGV4dE1lbnVD
bGllbnRFZmwoRXZhc19PYmplY3QqIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1f
bmF0aXZlTWVudSgwKQoreworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0
TWVudURlc3Ryb3llZCgpCit7CisgICAgaWYgKG1fbmF0aXZlTWVudSkKKyAgICAgICAgZXdrX2Nv
bnRleHRfbWVudV9mcmVlKG1fbmF0aXZlTWVudSk7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK1Bh
c3NPd25QdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q2xpZW50RWZsOjpjdXN0b21pemVNZW51
KFBhc3NPd25QdHI8Q29udGV4dE1lbnU+IGNvbnRleHRNZW51KQoreworICAgIGlmIChtX25hdGl2
ZU1lbnUpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShtX25hdGl2ZU1lbnUpOworCisg
ICAgRXdrX0NvbnRleHRfTWVudV9Db3JlKiBjb3JlTWVudSA9IGNvbnRleHRNZW51LT5uYXRpdmVN
ZW51KCk7CisgICAgbV9uYXRpdmVNZW51ID0gZXdrX2NvbnRleHRfbWVudV9uZXcobV92aWV3LCBj
b3JlTWVudSwgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KS0+Y29udGV4dE1lbnVDb250cm9s
bGVyKCkpOworICAgIGV3a19jb250ZXh0X21lbnVfc2hvdyhtX25hdGl2ZU1lbnUpOworICAgIE93
blB0cjxDb250ZXh0TWVudT4gY3VzdG9taXplZE1lbnUgPSBhZG9wdFB0cihuZXcgQ29udGV4dE1l
bnUoY29yZU1lbnUpKTsKKworICAgIHJldHVybiBjdXN0b21pemVkTWVudS5yZWxlYXNlKCk7Cit9
CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENv
bnRleHRNZW51SXRlbSogaXRlbSwgY29uc3QgQ29udGV4dE1lbnUqIHBhcmVudE1lbnUpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6ZG93
bmxvYWRVUkwoY29uc3QgS1VSTCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBDb250ZXh0TWVudUNsaWVudEVmbDo6bG9va1VwSW5EaWN0aW9uYXJ5KEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzcGVh
ayhjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgQ29u
dGV4dE1lbnVDbGllbnRFZmw6OmlzU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzdG9w
U3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1l
bnVDbGllbnRFZmw6OnNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJhbWUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjY4ZTQ1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oCkBAIC0wLDAgKzEsNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChD
KSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRleHRNZW51Q2xp
ZW50RWZsX2gKKyNkZWZpbmUgQ29udGV4dE1lbnVDbGllbnRFZmxfaAorCisjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDbGllbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4dE1l
bnU7CisKK2NsYXNzIENvbnRleHRNZW51Q2xpZW50RWZsIDogcHVibGljIENvbnRleHRNZW51Q2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBDb250ZXh0TWVudUNsaWVudEVmbChFdmFzX09iamVjdCopOwor
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgpOworCisgICAgdmlydHVhbCBQ
YXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51PiBjdXN0b21pemVNZW51KFBhc3NPd25QdHI8
V2ViQ29yZTo6Q29udGV4dE1lbnU+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1lbnUqKTsKKworICAgIHZp
cnR1YWwgdm9pZCBkb3dubG9hZFVSTChjb25zdCBLVVJMJik7CisgICAgdmlydHVhbCB2b2lkIGxv
b2tVcEluRGljdGlvbmFyeShGcmFtZSopOworICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBT
dHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wU3BlYWtpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdvb2dsZShjb25z
dCBGcmFtZSopOworCitwcml2YXRlOgorICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7CisgICAgRXdr
X0NvbnRleHRfTWVudSogbV9uYXRpdmVNZW51OworfTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCmluZGV4IGQyYjlmMTkuLjBkZDhjMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC0yNCwxMSArMjQs
MTYgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgorI2luY2x1ZGUgImV3a19s
b2dnaW5nLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFaW5hLmg+CiAj
aW5jbHVkZSA8ZWluYV9zYWZldHlfY2hlY2tzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCitzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnVfQ29yZSB7CisgICAgRWluYV9MaXN0KiBp
dGVtczsgLyoqPCB0aGUgbGlzdCBvZiBpdGVtcyAqLworfTsKKwogLyoqCiAgKiBcc3RydWN0ICBf
RXdrX0NvbnRleHRfTWVudQogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGNvbnRleHQgbWVudSBk
YXRhLgpAQCAtNDAsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnUgewogI2VuZGlm
CiAgICAgRXZhc19PYmplY3QqIHZpZXc7IC8qKjwgdGhlIHZpZXcgb2JqZWN0ICovCiAKLSAgICBF
aW5hX0xpc3QqIGl0ZW1zOyAvKio8IHRoZSBsaXN0IG9mIGl0ZW1zICovCisgICAgRXdrX0NvbnRl
eHRfTWVudV9Db3JlKiBjb3JlTWVudTsgLyoqPCBhIHdyYXBwZXIgZm9yIEVpbmFfTGlzdCBjb250
YWluaW5nIGNvbnRleHQgbWVudSBpdGVtcyAqLwogfTsKIAogLyoqCkBAIC03Miw3ICs3Nyw3IEBA
IHZvaWQgZXdrX2NvbnRleHRfbWVudV91bnJlZihFd2tfQ29udGV4dF9NZW51KiBtZW51KQogICAg
IGlmICgtLW1lbnUtPl9fcmVmKQogICAgICAgICByZXR1cm47CiAKLSAgICBFSU5BX0xJU1RfRlJF
RShtZW51LT5pdGVtcywgaXRlbSkKKyAgICBFSU5BX0xJU1RfRlJFRShtZW51LT5jb3JlTWVudS0+
aXRlbXMsIGl0ZW0pCiAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9mcmVlKHN0YXRpY19j
YXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KGl0ZW0pKTsKIAogICAgIGZyZWUobWVudSk7CkBA
IC05Myw4ICs5OCw5IEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2Rlc3Ryb3koRXdrX0Nv
bnRleHRfTWVudSogbWVudSkKIGNvbnN0IEVpbmFfTGlzdCogZXdrX2NvbnRleHRfbWVudV9pdGVt
X2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIDApOworICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChtZW51LT5jb3JlTWVudSwgMCk7CiAKLSAgICByZXR1cm4gbWVudS0+aXRlbXM7
CisgICAgcmV0dXJuIG1lbnUtPmNvcmVNZW51LT5pdGVtczsKIH0KIAogRXdrX0NvbnRleHRfTWVu
dV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUsCkBAIC0yMjAsMTAgKzIyNiwxMSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSwgRWluYV9Cbwog
ICoKICAqIEBub3RlIGVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxuZXciCiAgKi8KLUV3a19D
b250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJD
b3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCitFd2tfQ29udGV4dF9NZW51
KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgRXdrX0NvbnRleHRfTWVu
dV9Db3JlKiBjb3JlTWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9s
bGVyKQogewogICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHZpZXcsIDApOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChjb3JlTWVudSwgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNv
bnRyb2xsZXIsIDApOwogCiAgICAgbWVudSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnUq
PihtYWxsb2Moc2l6ZW9mKCptZW51KSkpOwpAQCAtMjM1LDcgKzI0Miw4IEBAIEV3a19Db250ZXh0
X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpD
b250ZXh0TWVudUNvCiAgICAgbWVudS0+X19yZWYgPSAxOwogICAgIG1lbnUtPnZpZXcgPSB2aWV3
OwogICAgIG1lbnUtPmNvbnRyb2xsZXIgPSBjb250cm9sbGVyOwotICAgIG1lbnUtPml0ZW1zID0g
MDsKKyAgICBtZW51LT5jb3JlTWVudSA9IGNvcmVNZW51OworCiAgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsbmV3IiwgbWVudSk7CiAK
ICAgICByZXR1cm4gbWVudTsKQEAgLTI3Myw3ICsyODEsNyBAQCBib29sIGV3a19jb250ZXh0X21l
bnVfZnJlZShFd2tfQ29udGV4dF9NZW51KiBtZW51KQogICoKICAqIEBzZWUgZXdrX2NvbnRleHRf
bWVudV9pdGVtX25ldwogICovCi12b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdr
X0NvbnRleHRfTWVudSogbWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKQordm9p
ZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnVfQ29yZSogY29y
ZU1lbnUsIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSkKIHsKICAgICBFd2tf
Q29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVu
dV9JdGVtX1R5cGU+KGNvcmUudHlwZSgpKTsKICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBh
Y3Rpb24gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0FjdGlvbj4oY29yZS5hY3Rpb24o
KSk7CkBAIC0yODMsNDIgKzI5MSw1NiBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBl
bmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUuZW5hYmxlZCgpKTsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51X2l0ZW0pOwogCi0gICAgbWVudS0+aXRl
bXMgPSBlaW5hX2xpc3RfYXBwZW5kKG1lbnUtPml0ZW1zLCBtZW51X2l0ZW0pOwotICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LGl0ZW0s
YXBwZW5kZWQiLCBtZW51KTsKKyAgICBjb3JlTWVudS0+aXRlbXMgPSBlaW5hX2xpc3RfYXBwZW5k
KGNvcmVNZW51LT5pdGVtcywgbWVudV9pdGVtKTsKIH0KIAogLyoqCiAgKiBAaW50ZXJuYWwKICAq
Ci0gKiBFbWl0cyBhIHNpZ25hbCB3aXRoIHRoZSBpdGVtcyBvZiB0aGUgY29udGV4dCBtZW51Lgor
ICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCiAgKgogICogQHBhcmFtIG1lbnUg
dGhlIGNvbnRleHQgbWVudSBvYmplY3QKLSAqIEByZXR1cm4gdGhlIHNhbWUgY29udGV4dCBtZW51
IG9iamVjdCB0aGF0IHdhcyBnaXZlbiB0aHJvdWdoIHBhcmFtZXRlcgotICoKLSAqIEBub3RlIGVt
aXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxjdXN0b21pemUiCi0gKgotICogQHNlZSBld2tfY29u
dGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQKICAqLwotRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRl
eHRfbWVudV9jdXN0b21pemUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKK3ZvaWQgZXdrX2NvbnRl
eHRfbWVudV9zaG93KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiB7Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIDApOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOKG1lbnUpOwogCi0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtZW51LT52
aWV3LCAiY29udGV4dG1lbnUsY3VzdG9taXplIiwgbWVudS0+aXRlbXMpOwotICAgIHJldHVybiBt
ZW51OworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNv
bnRleHRtZW51LHNob3ciLCBtZW51KTsKIH0KIAogLyoqCiAgKiBAaW50ZXJuYWwKICAqCi0gKiBF
bWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsc2hvdyIKKyAqIEdldHMgYSBWZWN0b3Igb2YgY29u
dGV4dCBtZW51IGl0ZW1zCiAgKgotICogQHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmpl
Y3QKKyAqIEBwYXJhbSBjb3JlTWVudSB0aGUgY29udGV4dCBtZW51IGNvcmUgb2JqZWN0CisgKiBA
cGFyYW0gaXRlbXNWZWN0b3IgYSB2ZWN0b3IgdG8gZmlsbCB3aXRoIEV3a19Db250ZXh0X01lbnVf
SXRlbQogICovCi12b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBt
ZW51KQordm9pZCBld2tfY29udGV4dF9tZW51X2NvcmVfaXRlbXNfZ2V0KEV3a19Db250ZXh0X01l
bnVfQ29yZSogY29yZU1lbnUsIFZlY3RvcjxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPiYgaXRlbXNW
ZWN0b3IpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29yZU1lbnUpOwogCi0gICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsc2hvdyIsIG1lbnUpOwor
ICAgIEVpbmFfTGlzdCogbGlzdEl0ZXJhdG9yOworICAgIHZvaWQqIGl0ZW07CisgICAgRUlOQV9M
SVNUX0ZPUkVBQ0goY29yZU1lbnUtPml0ZW1zLCBsaXN0SXRlcmF0b3IsIGl0ZW0pCisgICAgICAg
IGl0ZW1zVmVjdG9yLmFwcGVuZChzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihp
dGVtKSk7CiB9CiAKKy8qKgorICogQGludGVybmFsCisgKgorICogQ3JlYXRlcyBjb3JlIGNvbnRl
eHQgbWVudQorICoKKyAqLworRXdrX0NvbnRleHRfTWVudV9Db3JlKiBld2tfY29udGV4dF9tZW51
X2NvcmVfbmV3KCkKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0NvcmUqIGNvcmVNZW51OworICAg
IGNvcmVNZW51ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9Db3JlKj4obWFsbG9jKHNp
emVvZigqY29yZU1lbnUpKSk7CisgICAgaWYgKCFjb3JlTWVudSkgeworICAgICAgICBDUklUSUNB
TCgiQ291bGQgbm90IGFsbG9jYXRlIGNvbnRleHQgbWVudSBtZW1vcnkuIik7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKyAgICBjb3JlTWVudS0+aXRlbXMgPSAwOworICAgIHJldHVybiBjb3Jl
TWVudTsKK30KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19j
b250ZXh0bWVudS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmlu
ZGV4IDRlOGVmOWUuLjdhMWNlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRt
ZW51LmgKQEAgLTI0LDExICsyNCw3IEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChz
ZWUgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKLSAq
ICAtICJjb250ZXh0bWVudSxjdXN0b21pemUiLCBFaW5hX0xpc3QgKjogY3VzdG9taXplIGNvbnRl
eHQgbWVudSBpcyB0YWtlbgotICogICAgYW5kIGl0IGdpdmVzIGEgbGlzdCB3aXRoIGl0ZW1zIG9m
IGNvbnRleHQgbWVudSBhcyBhbiBhcmd1bWVudC4KICAqICAtICJjb250ZXh0bWVudSxmcmVlIiwg
RXdrX0NvbnRleHRfTWVudSAqOiBhIGNvbnRleHQgbWVudSBpcyBmcmVlZC4KLSAqICAtICJjb250
ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwgRXdrX0NvbnRleHRfTWVudSAqOiBhIG5ldyBpdGVtIHdh
cyBhZGRlZCB0bwotICogICAgdGhlIGNvbnRleHQgbWVudS4KICAqICAtICJjb250ZXh0bWVudSxu
ZXciLCBFd2tfQ29udGV4dF9NZW51ICo6IGEgbmV3IGNvbnRleHQgbWVudSB3YXMgY3JlYXRlZAog
ICogICAgYW5kIGl0IGdpdmVzIHRoZSBjb250ZXh0IG1lbnUgYXMgYW4gYXJndW1lbnQuCiAgKiAg
LSAiY29udGV4dG1lbnUsc2hvdyIsIEV3a19Db250ZXh0X01lbnUgKjogYSBjb250ZXh0IG1lbnUg
aXMgc2hvd24uCkBAIC0xMzksNiArMTM1LDkgQEAgZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVt
X1R5cGUgewogICAgIEVXS19TRVBBUkFUT1JfVFlQRSwKICAgICBFV0tfU1VCTUVOVV9UWVBFCiB9
OworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgKi8K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0NvcmUgRXdrX0NvbnRleHRfTWVudV9D
b3JlOworCiAvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19Db250ZXh0X01lbnVfSXRl
bV9UeXBlICovCiB0eXBlZGVmIGVudW0gX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3
a19Db250ZXh0X01lbnVfSXRlbV9UeXBlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5o
CmluZGV4IDc3ZjY1MzQuLjA2Mzk2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51Lmgi
CiAjaW5jbHVkZSAiZXdrX2hpc3RvcnkuaCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRl
ICJld2tfdmlldy5oIgpAQCAtMTY1LDExICsxNjYsMTMgQEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0
b3J5X25ldyhXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdr
X2hpc3RvcnlfZnJlZShFd2tfSGlzdG9yeSogaGlzdG9yeSk7CiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2Jq
ZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOwor
RXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcs
IEV3a19Db250ZXh0X01lbnVfQ29yZSogY29yZU1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29u
dHJvbGxlciogY29udHJvbGxlcik7CiBib29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29u
dGV4dF9NZW51KiBtZW51KTsKLXZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tf
Q29udGV4dF9NZW51KiBtZW51LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpOwordm9p
ZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnVfQ29yZSogY29y
ZU1lbnUsIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSk7CiBFd2tfQ29udGV4
dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShFd2tfQ29udGV4dF9NZW51KiBtZW51
KTsKIHZvaWQgZXdrX2NvbnRleHRfbWVudV9zaG93KEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwor
dm9pZCBld2tfY29udGV4dF9tZW51X2NvcmVfaXRlbXNfZ2V0KEV3a19Db250ZXh0X01lbnVfQ29y
ZSogY29yZU1lbnUsIFZlY3RvcjxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPiYgaXRlbXNWZWN0b3Ip
OworRXdrX0NvbnRleHRfTWVudV9Db3JlKiBld2tfY29udGV4dF9tZW51X2NvcmVfbmV3KCk7CiAj
ZW5kaWYKIAogY29uc3QgRWluYV9SZWN0YW5nbGUqIGV3a192aWV3X3JlcGFpbnRzX2dldChjb25z
dCBFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIHNpemVfdCogY291bnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKaW5kZXggODcxNTZlYS4uMjI1MGE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAj
aW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCisjaW5jbHVk
ZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRF
ZmwuaCIKQEAgLTYwNyw2ICs2MDgsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBf
ZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogCiAgICAg
V2ViQ29yZTo6UGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7CiAgICAgcGFnZUNsaWVudHMu
Y2hyb21lQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbChzbWFydERhdGEtPnNl
bGYpOworICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRp
dG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYp
OwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVm
bDsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50RWZsOwpAQCAtMTQ3Niw3ICsxNDc4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2Nv
bnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFz
X0UKICAgICAgICAgICAgIG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJl
c3NFdmVudChldmVudCk7CiAgICAgfQogCi0gICAgaWYgKG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVy
KCktPnNlbmRDb250ZXh0TWVudUV2ZW50KGV2ZW50KSkKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50KGV2ZW50KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51ID0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UKaW5kZXggOTdkYTYxMS4uOTQ0ODhiYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAg
LTM3LDcgKzM3LDcgQEAgRklORF9QQUNLQUdFKFRocmVhZHMgUkVRVUlSRUQpCiBGSU5EX1BBQ0tB
R0UoSlBFRyBSRVFVSVJFRCkKIEZJTkRfUEFDS0FHRShQTkcgUkVRVUlSRUQpCiAKLUFERF9ERUZJ
TklUSU9OUygtREVOQUJMRV9DT05URVhUX01FTlVTPTApCitBRERfREVGSU5JVElPTlMoLURFTkFC
TEVfQ09OVEVYVF9NRU5VUz0xKQogCiBTRVQoV1RGX1VTRV9QVEhSRUFEUyAxKQogQUREX0RFRklO
SVRJT05TKC1EV1RGX1VTRV9QVEhSRUFEUz0xKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135564</attachid>
            <date>2012-04-04 05:18:13 -0700</date>
            <delta_ts>2012-04-23 03:14:48 -0700</delta_ts>
            <desc>new approach not using cross platform context menus</desc>
            <filename>non-cross-platform.patch</filename>
            <type>text/plain</type>
            <size>17120</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxZDFkZTJiLi4zMTYzZjVh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDQtMDQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMK
KyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcgZm9yIEVGTCBwb3J0LgorCiAyMDEyLTA0LTAz
ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgcmVtb3ZlIFdlYktp
dCBmaWxlcyBmcm9tIC5naXRhdHRyaWJ1dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE4OTZmOC4uM2U1Y2Iy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTA0ICBNaWNoYcWCIFBha3XF
gmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQ29u
dGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5v
bi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLCB0aGUgc2Ft
ZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAg
ICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZWQgLURXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NP
TlRFWFRfTUVOVVM9MS4KKwogMjAxMi0wNC0wMiAgUGV0ZXIgUnliaW4gIDxwZXRlci5yeWJpbkBn
bWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ29kZUdlbmVyYXRvckluc3BlY3Rv
ci5weTogc3dpdGNoIEluc3BlY3RvciwgTWVtb3J5IGFuZCBEYXRhYmFzZSBkb21haW5zIHRvIHR5
cGVkIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBjMzVkYjZkLi43MTFkMWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMjY3LDUgKzI2Nyw0IEBAIElGIChFTkFCTEVf
V0VCR0wpCiAgICkKIEVORElGICgpCiAKLUFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfQ1JPU1Nf
UExBVEZPUk1fQ09OVEVYVF9NRU5VUz0xCi0gICAgICAgICAgICAgICAgLUREQVRBX0RJUj0iJHtD
TUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfSIpCitBRERfREVGSU5JVElP
TlMoLUREQVRBX0RJUj0iJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElS
fSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFiNjE3MDQuLmIzNTQyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTItMDQtMDQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUg
c3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVO
VVMKKyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkZWQg
Q29udGV4dE1lbnVDbGllbnRFZmwuY3BwIGZpbGUgdG8gc291cmNlcyBsaXN0LgorCiAyMDEyLTA0
LTAxICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
U3VwcG9ydCB0aGUgTmV0d29yayBJbmZvcm1hdGlvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDU0ZTdkOTEuLjhiYTBkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNzgs
NiArNzgsNyBAQCBFTkRJRiAoKQogTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwv
V2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0
TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVu
dEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEVmbC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwppbmRleCA2OWUzZWYzLi5iNjM3MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzkgQEAKKzIwMTItMDQtMDQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0
IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRF
WFRfTUVOVVMKKyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4K
KworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250
ZXh0TWVudUNsaWVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVEZXN0cm95ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmdldEN1c3RvbU1lbnVGcm9t
RGVmYXVsdEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNs
aWVudEVmbDo6ZG93bmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGll
bnRFZmw6Omxvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNsaWVudEVmbDo6c3BlYWspOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRF
Zmw6OmlzU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6
OnN0b3BTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6
c2VhcmNoV2l0aEdvb2dsZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRFZmwuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnRleHRN
ZW51Q2xpZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDogUmVtb3Zl
ZCBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKGV3
a19jb250ZXh0X21lbnVfZGVzdHJveSk6IEFkZGVkIGZyZWVpbmcgY29udGV4dCBtZW51LgorICAg
ICAgICAoZXdrX2NvbnRleHRfbWVudV9uZXcpOiBBZGRlZCBmaWxsaW5nIGV3a19jb250ZXh0bWVu
dSBsaXN0LgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOiBSZW1vdmVkIGV3a19jb250ZXh0
X21lbnVfY3VzdG9taXplIGFuZCBjaGFuZ2VkIGV3a19jb250ZXh0X21lbnVfbmV3IGRlZmluaXRp
b25zLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKTogQWRkZWQgY29udGV4dE1lbnUuCisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9u
ZXcpOiBDb250ZXh0TWVudUNsaWVudEVmbCBhZGRlZCB0byBwYWdlQ2xpZW50cy4KKyAgICAgICAg
KF9ld2tfdmlld19wcml2X2RlbCk6IEFkZGVkIGNvbnRleHRNZW51IGlzIGZyZWVpbmcKKyAgICAg
ICAgKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KTogQWRkZWQgbmV3IGltcGxl
bWVudGF0aW9uLgorCiAyMDEyLTA0LTAzICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEu
bmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIERSVCBzdXBwb3J0IGZv
ciBzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkY2Q3ODAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVm
bC5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBD
b21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBz
eXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgor
CisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisj
aW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
ZXdrX3ByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIENvbnRleHRNZW51
Q2xpZW50RWZsOjpjb250ZXh0TWVudURlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9
CisKK1BsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0
b21NZW51RnJvbURlZmF1bHRJdGVtcyhDb250ZXh0TWVudSogbWVudSkKK3sKKyAgICAvLyB3YXJu
aW5nOiB0aGlzIHRyYW5zZmVycyB0aGUgb3duZXJzaGlwIHRvIHRoZSBjYWxsZXIKKyAgICByZXR1
cm4gbWVudS0+cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsKK30KKwordm9pZCBDb250ZXh0
TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwg
Y29uc3QgQ29udGV4dE1lbnUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
Q29udGV4dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcElu
RGljdGlvbmFyeShGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBD
b250ZXh0TWVudUNsaWVudEVmbDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitib29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBD
b250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNv
bnN0IEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5o
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDQwYWNlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGll
bnRFZmwuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVk
IHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDb250ZXh0TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xp
ZW50RWZsX2gKKworI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDxS
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbnRleHRNZW51Owor
CitjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbCA6IHB1YmxpYyBDb250ZXh0TWVudUNsaWVudCB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51RGVzdHJveWVkKCk7CisKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGdldEN1c3RvbU1lbnVGcm9tRGVmYXVs
dEl0ZW1zKENvbnRleHRNZW51Kik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgS1VSTCYpOworICAgIHZpcnR1YWwgdm9pZCBsb29r
VXBJbkRpY3Rpb25hcnkoRnJhbWUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgU3Ry
aW5nJik7CisgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcFNwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhHb29nbGUoY29uc3Qg
RnJhbWUqKTsKK307Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRl
eHRtZW51LmNwcAppbmRleCA2ZGZlOTA5Li5iNGZhMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAtODQsNiArODQsNyBAQCBFaW5hX0Jvb2wgZXdrX2Nv
bnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwobWVudS0+Y29udHJvbGxlciwgZmFsc2UpOwogICAgIG1lbnUtPmNvbnRy
b2xsZXItPmNsZWFyQ29udGV4dE1lbnUoKTsKKyAgICBld2tfY29udGV4dF9tZW51X2ZyZWUobWVu
dSk7CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNyw3
ICsyMTgsNyBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3
a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSwgRWluYV9CbwogICoKICAqIEBub3RlIGVtaXRzIGEg
c2lnbmFsICJjb250ZXh0bWVudSxuZXciCiAgKi8KLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250
ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIpCitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25l
dyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250
cm9sbGVyLCBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUpCiB7CiAgICAgRXdrX0NvbnRl
eHRfTWVudSogbWVudTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodmlldywg
MCk7CkBAIC0yMzEsNiArMjMyLDEwIEBAIEV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21l
bnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvCiAgICAgbWVu
dS0+aXRlbXMgPSAwOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+
dmlldywgImNvbnRleHRtZW51LG5ldyIsIG1lbnUpOwogCisgICAgVmVjdG9yPFdlYkNvcmU6OkNv
bnRleHRNZW51SXRlbT4qIGl0ZW1zTGlzdCA9IGNvcmVNZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9u
KCk7CisgICAgZm9yIChWZWN0b3I8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtPjo6aXRlcmF0b3Ig
aXRlciA9IGl0ZW1zTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBpdGVtc0xpc3QtPmVuZCgpOyArK2l0
ZXIpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQobWVudSwgKml0ZXIpOwor
CiAgICAgcmV0dXJuIG1lbnU7CiB9CiAKQEAgLTI4MywyNiArMjg4LDYgQEAgdm9pZCBld2tfY29u
dGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNv
bnRleHRNZW51SXQKIC8qKgogICogQGludGVybmFsCiAgKgotICogRW1pdHMgYSBzaWduYWwgd2l0
aCB0aGUgaXRlbXMgb2YgdGhlIGNvbnRleHQgbWVudS4KLSAqCi0gKiBAcGFyYW0gbWVudSB0aGUg
Y29udGV4dCBtZW51IG9iamVjdAotICogQHJldHVybiB0aGUgc2FtZSBjb250ZXh0IG1lbnUgb2Jq
ZWN0IHRoYXQgd2FzIGdpdmVuIHRocm91Z2ggcGFyYW1ldGVyCi0gKgotICogQG5vdGUgZW1pdHMg
YSBzaWduYWwgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIKLSAqCi0gKiBAc2VlIGV3a19jb250ZXh0
X21lbnVfaXRlbV9saXN0X2dldAotICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9t
ZW51X2N1c3RvbWl6ZShFd2tfQ29udGV4dF9NZW51KiBtZW51KQotewotICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKLQotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIsIG1lbnUtPml0
ZW1zKTsKLSAgICByZXR1cm4gbWVudTsKLX0KLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqCiAgKiBF
bWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsc2hvdyIKICAqCiAgKiBAcGFyYW0gbWVudSB0aGUg
Y29udGV4dCBtZW51IG9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCA5
NmU0Nzk1Li40YmNjMmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIldpZGdldC5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgogI2luY2x1
ZGUgImV3a19oaXN0b3J5LmgiCiAjaW5jbHVkZSAiZXdrX2pzLmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXcuaCIKQEAgLTE3OSwxMCArMTgwLDkgQEAgRXdrX0hpc3RvcnkqIGV3a19oaXN0b3J5X25ldyhX
ZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKiBoaXN0b3J5KTsKIHZvaWQgZXdrX2hpc3Rvcnlf
ZnJlZShFd2tfSGlzdG9yeSogaGlzdG9yeSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
LUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3
LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpOworRXdrX0NvbnRl
eHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlciwgV2ViQ29yZTo6Q29udGV4dE1lbnUq
IGNvcmVNZW51KTsKIGJvb2wgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0X01lbnUq
IG1lbnUpOwogdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01l
bnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSk7Ci1Fd2tfQ29udGV4dF9N
ZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShFd2tfQ29udGV4dF9NZW51KiBtZW51KTsK
IHZvaWQgZXdrX2NvbnRleHRfbWVudV9zaG93KEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDJkNDJhMzIuLjA5MjRlMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dEVmbC5oIgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJEcmFnQ2xpZW50RWZsLmgiCkBAIC0yMzIsNiArMjMzLDcgQEAgc3RydWN0IF9Fd2tfVmll
d19Qcml2YXRlX0RhdGEgewogICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAg
fSBhbmltYXRlZFpvb207CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOworICAgIEV3a19D
b250ZXh0X01lbnUqIGNvbnRleHRNZW51OwogfTsKIAogI2lmbmRlZiBFV0tfVFlQRV9DSEVDSwpA
QCAtNjE3LDYgKzYxOSw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmll
d19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBXZWJDb3Jl
OjpQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVD
bGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7Cisg
ICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6
OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdD
bGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsKICAgICBwYWdlQ2xpZW50cy5pbnNw
ZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOwpAQCAtNzMwLDYg
KzczMyw4IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25l
dyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBwcml2LT5zb3VwU2Vzc2lv
biA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwogCisgICAgcHJp
di0+Y29udGV4dE1lbnUgPSAwOworCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IGFkb3B0UHRyKG5l
dyBXZWJDb3JlOjpQYWdlQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZikpOwogCiAgICAgcmV0dXJu
IHByaXY7CkBAIC03NjIsNiArNzY3LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVs
KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIAogICAgIGV3a19oaXN0b3J5X2ZyZWUocHJp
di0+aGlzdG9yeSk7CiAKKyAgICBld2tfY29udGV4dF9tZW51X2ZyZWUocHJpdi0+Y29udGV4dE1l
bnUpOworCiAgICAgZGVsZXRlIHByaXY7CiB9CiAKQEAgLTE0NzQsNiArMTQ4MSw5IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgRXZhc19FCiAgICAgRWluYV9Cb29sIG1vdXNlX3ByZXNzX2hhbmRsZWQgPSBm
YWxzZTsKIAogICAgIHByaXYtPnBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jbGVhckNv
bnRleHRNZW51KCk7CisgICAgaWYgKHByaXYtPmNvbnRleHRNZW51KQorICAgICAgICBld2tfY29u
dGV4dF9tZW51X2ZyZWUocHJpdi0+Y29udGV4dE1lbnUpOworCiAgICAgV2ViQ29yZTo6RnJhbWUq
IG1haW5GcmFtZSA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEV2YXNfQ29vcmQgeCwg
eTsKICAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoc21hcnREYXRhLT5zZWxmLCAmeCwgJnks
IDAsIDApOwpAQCAtMTQ4NSw3ICsxNDk1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRf
bWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFzX0UKICAg
ICAgICAgICAgIG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJlc3NFdmVu
dChldmVudCk7CiAgICAgfQogCi0gICAgaWYgKG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNl
bmRDb250ZXh0TWVudUV2ZW50KGV2ZW50KSkKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50KGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51ID0KQEAgLTE0OTYsNiArMTUw
NiwxMiBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgICAgICByZXR1cm4gbW91c2VfcHJl
c3NfaGFuZGxlZDsKICAgICB9CiAKKyAgICBwcml2LT5jb250ZXh0TWVudSA9IGV3a19jb250ZXh0
X21lbnVfbmV3KGV3a1ZpZXcsIHByaXYtPnBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLCBj
b3JlTWVudSk7CisgICAgaWYgKCFwcml2LT5jb250ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgZXdrX2NvbnRleHRfbWVudV9zaG93KHByaXYtPmNvbnRleHRNZW51KTsKKwog
ICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCmluZGV4IDlkM2FjNmIuLmUzMzA3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRp
b25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC00MCw3
ICs0MCw3IEBAIFNFVChFTkFCTEVfR0xJQl9TVVBQT1JUIE9OKQogU0VUKFdURl9VU0VfU09VUCAx
KQogQUREX0RFRklOSVRJT05TKC1EV1RGX1VTRV9TT1VQPTEpCiAKLUFERF9ERUZJTklUSU9OUygt
REVOQUJMRV9DT05URVhUX01FTlVTPTApCitBRERfREVGSU5JVElPTlMoLURFTkFCTEVfQ09OVEVY
VF9NRU5VUz0xKQogCiBTRVQoV1RGX1VTRV9QVEhSRUFEUyAxKQogQUREX0RFRklOSVRJT05TKC1E
V1RGX1VTRV9QVEhSRUFEUz0xKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138317</attachid>
            <date>2012-04-23 03:14:48 -0700</date>
            <delta_ts>2012-04-23 03:26:18 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>non-cross-platform-rebased.patch</filename>
            <type>text/plain</type>
            <size>17095</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3N2JiOTJkLi40Zjk0Mzcz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDQtMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMK
KyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcgZm9yIEVGTCBwb3J0LgorCiAyMDEyLTA0LTIz
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgdGVzdCBm
dW5jdGlvbiB0byBnZXQgcGxhY2Vob2xkZXIgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxNGE5YS4u
OGUxNjk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTIzICBNaWNoYcWC
IFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVz
aW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLCB0
aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZWQgLURXVEZfVVNFX0NST1NTX1BMQVRG
T1JNX0NPTlRFWFRfTUVOVVM9MQorCiAyMDEyLTA0LTIzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJvZHVjZSBTdHJp
bmcucHJvdG90eXBlLnN0YXJ0cy9lbmRzV2l0aCBhbmQgdXNlIGl0IGFsbCBvdmVyIHRoZSBwbGFj
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMGYzZWUzYS4uYmFhYWQwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI2OSw1ICsyNjksNCBAQCBJRiAoRU5BQkxFX1dFQkdM
KQogICApCiBFTkRJRiAoKQogCi1BRERfREVGSU5JVElPTlMoLURXVEZfVVNFX0NST1NTX1BMQVRG
T1JNX0NPTlRFWFRfTUVOVVM9MQotICAgICAgICAgICAgICAgIC1EREFUQV9ESVI9IiR7Q01BS0Vf
SU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQorQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA2MzUwYjgyLi4xY2Q0YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDEyLTA0LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBv
cnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisg
ICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENvbnRl
eHRNZW51Q2xpZW50RWZsLmNwcCBmaWxlIHRvIHNvdXJjZXMgbGlzdC4KKwogMjAxMi0wNC0yMCAg
TWlrZSBMYXR0YW56aW8gIDxtbGF0dGFuemlvQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIEV4cG9zZSBXZWJWaWV3cG9ydEFyZ3VtZW50cyB0byBXZWJQYWdlQ2xpZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUVmbC5jbWFrZQppbmRleCBjNzdhOGI1Li44OGQ5ZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwu
Y21ha2UKQEAgLTc4LDYgKzc4LDcgQEAgRU5ESUYgKCkKIExJU1QoQVBQRU5EIFdlYktpdF9TT1VS
Q0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCiAgICAg
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRF
ZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjJiMjY1Zi4uZjdlZjI5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1
dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51
IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19Q
TEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2Vk
IGluIFdlYktpdDIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51
RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRD
dXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OnNlYXJjaFdpdGhHb29nbGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0NvbnRleHRNZW51Q2xpZW50RWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDb250ZXh0TWVudUNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVu
dS5jcHA6IFJlbW92ZWQgZXdrX2NvbnRleHRfbWVudV9jdXN0b21pemUgaW1wbGVtZW50YXRpb24u
CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2Rlc3Ryb3kpOiBBZGRlZCBmcmVlaW5nIGNvbnRl
eHQgbWVudS4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfbmV3KTogQWRkZWQgZmlsbGluZyBl
d2tfY29udGV4dG1lbnUgbGlzdC4KKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDogUmVtb3Zl
ZCBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZSBhbmQgY2hhbmdlZCBld2tfY29udGV4dF9tZW51
X25ldyBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAo
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6IEFkZGVkIGNvbnRleHRNZW51LgorICAgICAgICAoX2V3
a192aWV3X3ByaXZfbmV3KTogQ29udGV4dE1lbnVDbGllbnRFZmwgYWRkZWQgdG8gcGFnZUNsaWVu
dHMuCisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOiBBZGRlZCBjb250ZXh0TWVudSBpcyBm
cmVlaW5nCisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCk6IEFk
ZGVkIG5ldyBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQLiBT
YW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgU2Vj
dXJpdHkgT3JpZ2luIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAyMTk4ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSw4OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgorCisjaW5jbHVkZSAiQ29udGV4dE1l
bnUuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ29u
dGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUg
dGhpczsKK30KKworUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbnRFZmw6
OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKENvbnRleHRNZW51KiBtZW51KQoreworICAg
IC8vIHdhcm5pbmc6IHRoaXMgdHJhbnNmZXJzIHRoZSBvd25lcnNoaXAgdG8gdGhlIGNhbGxlcgor
ICAgIHJldHVybiBtZW51LT5yZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpOworfQorCit2b2lk
IENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVu
dUl0ZW0qLCBjb25zdCBDb250ZXh0TWVudSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6ZG93bmxvYWRVUkwoY29uc3QgS1VSTCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6
bG9va1VwSW5EaWN0aW9uYXJ5KEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzcGVhayhjb25zdCBTdHJpbmcmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgQ29udGV4dE1lbnVDbGllbnRFZmw6OmlzU3Bl
YWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnNlYXJjaFdpdGhH
b29nbGUoY29uc3QgRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNs
aWVudEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMmY4ZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0
TWVudUNsaWVudEVmbC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIENvbnRleHRNZW51Q2xpZW50RWZsX2gKKyNkZWZpbmUgQ29udGV4
dE1lbnVDbGllbnRFZmxfaAorCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENv
bnRleHRNZW51OworCitjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbCA6IHB1YmxpYyBDb250ZXh0
TWVudUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51RGVzdHJv
eWVkKCk7CisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGdldEN1c3RvbU1l
bnVGcm9tRGVmYXVsdEl0ZW1zKENvbnRleHRNZW51Kik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kik7
CisKKyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgS1VSTCYgdXJsKTsKKyAgICB2
aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5KEZyYW1lKik7CisgICAgdmlydHVhbCB2b2lk
IHNwZWFrKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgYm9vbCBpc1NwZWFraW5nKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygpOworICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hX
aXRoR29vZ2xlKGNvbnN0IEZyYW1lKik7Cit9OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKaW5kZXggNmRmZTkwOS4uYjRmYTMyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTg0LDYgKzg0LDcgQEAg
RWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVzdHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51
KQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCBmYWxzZSk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUtPmNvbnRyb2xsZXIsIGZhbHNlKTsK
ICAgICBtZW51LT5jb250cm9sbGVyLT5jbGVhckNvbnRleHRNZW51KCk7CisgICAgZXdrX2NvbnRl
eHRfbWVudV9mcmVlKG1lbnUpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0yMTcsNyArMjE4LDcgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRl
bV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVpbmFfQm8KICAqCiAg
KiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsbmV3IgogICovCi1Fd2tfQ29udGV4
dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorRXdrX0NvbnRleHRfTWVudSogZXdr
X2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51
Q29udHJvbGxlciogY29udHJvbGxlciwgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51KQog
ewogICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHZpZXcsIDApOwpAQCAtMjMxLDYgKzIzMiwxMCBAQCBFd2tfQ29udGV4dF9NZW51
KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4
dE1lbnVDbwogICAgIG1lbnUtPml0ZW1zID0gMDsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxuZXciLCBtZW51KTsKIAorICAgIFZl
Y3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+KiBpdGVtc0xpc3QgPSBjb3JlTWVudS0+cGxh
dGZvcm1EZXNjcmlwdGlvbigpOworICAgIGZvciAoVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbT46Oml0ZXJhdG9yIGl0ZXIgPSBpdGVtc0xpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gaXRlbXNM
aXN0LT5lbmQoKTsgKytpdGVyKQorICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5k
KG1lbnUsICppdGVyKTsKKwogICAgIHJldHVybiBtZW51OwogfQogCkBAIC0yODMsMjYgKzI4OCw2
IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBt
ZW51LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0CiAvKioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVt
aXRzIGEgc2lnbmFsIHdpdGggdGhlIGl0ZW1zIG9mIHRoZSBjb250ZXh0IG1lbnUuCi0gKgotICog
QHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QKLSAqIEByZXR1cm4gdGhlIHNhbWUg
Y29udGV4dCBtZW51IG9iamVjdCB0aGF0IHdhcyBnaXZlbiB0aHJvdWdoIHBhcmFtZXRlcgotICoK
LSAqIEBub3RlIGVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxjdXN0b21pemUiCi0gKgotICog
QHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQKLSAqLwotRXdrX0NvbnRleHRfTWVu
dSogZXdrX2NvbnRleHRfbWVudV9jdXN0b21pemUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKLXsK
LSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobWVudSwgMCk7Ci0KLSAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxjdXN0
b21pemUiLCBtZW51LT5pdGVtcyk7Ci0gICAgcmV0dXJuIG1lbnU7Ci19Ci0KLS8qKgotICogQGlu
dGVybmFsCi0gKgogICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCiAgKgogICog
QHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19w
cml2YXRlLmgKaW5kZXggZjRiOTlhY2UuLjcwZTk0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
cHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRl
eHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2hpc3RvcnkuaCIKICNpbmNsdWRlICJld2tfanMuaCIK
ICNpbmNsdWRlICJld2tfdmlldy5oIgpAQCAtMTkwLDEwICsxOTEsOSBAQCBFd2tfSGlzdG9yeSog
ZXdrX2hpc3RvcnlfbmV3KFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdEltcGwqIGhpc3RvcnkpOwog
dm9pZCBld2tfaGlzdG9yeV9mcmVlKEV3a19IaXN0b3J5KiBoaXN0b3J5KTsKIAogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQotRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXco
RXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJv
bGxlcik7CitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVj
dCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyLCBXZWJD
b3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUpOwogYm9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUo
RXdrX0NvbnRleHRfTWVudSogbWVudSk7CiB2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBl
bmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3Jl
KTsKLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250
ZXh0X01lbnUqIG1lbnUpOwogdm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0NvbnRleHRf
TWVudSogbWVudSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXgg
ZjdmOTNkOS4uZTYyOTczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwu
aCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRFZmwuaCIKQEAgLTI0NCw2ICsyNDUsNyBA
QCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIEVjb3JlX0FuaW1hdG9y
KiBhbmltYXRvcjsKICAgICB9IGFuaW1hdGVkWm9vbTsKICAgICBTb3VwU2Vzc2lvbiogc291cFNl
c3Npb247CisgICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnU7CiB9OwogCiAjaWZuZGVm
IEVXS19UWVBFX0NIRUNLCkBAIC02MjksNiArNjMxLDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZh
dGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSkKIAogICAgIFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBh
Z2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmwoc21h
cnREYXRhLT5zZWxmKTsKKyAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBX
ZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDsKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGll
bnQgPSBuZXcgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAg
cGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwogICAg
IHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpJbnNwZWN0b3JDbGll
bnRFZmw7CkBAIC03NDYsNiArNzQ5LDggQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
X2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAg
IHByaXYtPnBhZ2VDbGllbnQgPSBhZG9wdFB0cihuZXcgUGFnZUNsaWVudEVmbChzbWFydERhdGEt
PnNlbGYpKTsKIAorICAgIHByaXYtPmNvbnRleHRNZW51ID0gMDsKKwogICAgIHJldHVybiBwcml2
OwogfQogCkBAIC03NzYsNiArNzgxLDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVs
KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIAogICAgIGV3a19oaXN0b3J5X2ZyZWUocHJp
di0+aGlzdG9yeSk7CiAKKyAgICBpZiAocHJpdi0+Y29udGV4dE1lbnUpCisgICAgICAgIGV3a19j
b250ZXh0X21lbnVfZnJlZShwcml2LT5jb250ZXh0TWVudSk7CisKICAgICBkZWxldGUgcHJpdjsK
IH0KIApAQCAtMTQ4OCw2ICsxNDk2LDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVu
dV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFzX0UKICAgICBF
aW5hX0Jvb2wgbW91c2VfcHJlc3NfaGFuZGxlZCA9IGZhbHNlOwogCiAgICAgcHJpdi0+cGFnZS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmNsZWFyQ29udGV4dE1lbnUoKTsKKyAgICBpZiAocHJp
di0+Y29udGV4dE1lbnUpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShwcml2LT5jb250
ZXh0TWVudSk7CisKICAgICBXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lID0gcHJpdi0+cGFnZS0+
bWFpbkZyYW1lKCk7CiAgICAgRXZhc19Db29yZCB4LCB5OwogICAgIGV2YXNfb2JqZWN0X2dlb21l
dHJ5X2dldChzbWFydERhdGEtPnNlbGYsICZ4LCAmeSwgMCwgMCk7CkBAIC0xNDk5LDcgKzE1MTAs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBp
ZiAobWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQp
KQorICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZl
bnQoZXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0
TWVudSogY29yZU1lbnUgPQpAQCAtMTUxMCw2ICsxNTIxLDEyIEBAIEVpbmFfQm9vbCBld2tfdmll
d19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3Qg
RXZhc19FCiAgICAgICAgIHJldHVybiBtb3VzZV9wcmVzc19oYW5kbGVkOwogICAgIH0KIAorICAg
IHByaXYtPmNvbnRleHRNZW51ID0gZXdrX2NvbnRleHRfbWVudV9uZXcoZXdrVmlldywgcHJpdi0+
cGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCksIGNvcmVNZW51KTsKKyAgICBpZiAoIXByaXYt
PmNvbnRleHRNZW51KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBld2tfY29udGV4dF9t
ZW51X3Nob3cocHJpdi0+Y29udGV4dE1lbnUpOworCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggMTAzNjJhYS4uOWIyMWMw
NyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTQwLDcgKzQwLDcgQEAgU0VUKEVOQUJMRV9HTElC
X1NVUFBPUlQgT04pCiBTRVQoV1RGX1VTRV9TT1VQIDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZf
VVNFX1NPVVA9MSkKIAotQUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MCkK
K0FERF9ERUZJTklUSU9OUygtREVOQUJMRV9DT05URVhUX01FTlVTPTEpCiAKIFNFVChXVEZfVVNF
X1BUSFJFQURTIDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138319</attachid>
            <date>2012-04-23 03:26:18 -0700</date>
            <delta_ts>2012-05-10 09:03:20 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>non-cross-platform-rebased2.patch</filename>
            <type>text/plain</type>
            <size>17065</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3N2JiOTJkLi40Zjk0Mzcz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDQtMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMK
KyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcgZm9yIEVGTCBwb3J0LgorCiAyMDEyLTA0LTIz
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgdGVzdCBm
dW5jdGlvbiB0byBnZXQgcGxhY2Vob2xkZXIgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxNGE5YS4u
OGUxNjk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTIzICBNaWNoYcWC
IFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVz
aW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLCB0
aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZWQgLURXVEZfVVNFX0NST1NTX1BMQVRG
T1JNX0NPTlRFWFRfTUVOVVM9MQorCiAyMDEyLTA0LTIzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJvZHVjZSBTdHJp
bmcucHJvdG90eXBlLnN0YXJ0cy9lbmRzV2l0aCBhbmQgdXNlIGl0IGFsbCBvdmVyIHRoZSBwbGFj
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMGYzZWUzYS4uYmFhYWQwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI2OSw1ICsyNjksNCBAQCBJRiAoRU5BQkxFX1dFQkdM
KQogICApCiBFTkRJRiAoKQogCi1BRERfREVGSU5JVElPTlMoLURXVEZfVVNFX0NST1NTX1BMQVRG
T1JNX0NPTlRFWFRfTUVOVVM9MQotICAgICAgICAgICAgICAgIC1EREFUQV9ESVI9IiR7Q01BS0Vf
SU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQorQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA2MzUwYjgyLi4xY2Q0YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDEyLTA0LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBv
cnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisg
ICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENvbnRl
eHRNZW51Q2xpZW50RWZsLmNwcCBmaWxlIHRvIHNvdXJjZXMgbGlzdC4KKwogMjAxMi0wNC0yMCAg
TWlrZSBMYXR0YW56aW8gIDxtbGF0dGFuemlvQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIEV4cG9zZSBXZWJWaWV3cG9ydEFyZ3VtZW50cyB0byBXZWJQYWdlQ2xpZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUVmbC5jbWFrZQppbmRleCBjNzdhOGI1Li44OGQ5ZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwu
Y21ha2UKQEAgLTc4LDYgKzc4LDcgQEAgRU5ESUYgKCkKIExJU1QoQVBQRU5EIFdlYktpdF9TT1VS
Q0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCiAgICAg
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VNb3Rpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRF
ZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjJiMjY1Zi4uZjdlZjI5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTIzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1
dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51
IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19Q
TEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2Vk
IGluIFdlYktpdDIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51
RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRD
dXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OnNlYXJjaFdpdGhHb29nbGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0NvbnRleHRNZW51Q2xpZW50RWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDb250ZXh0TWVudUNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVu
dS5jcHA6IFJlbW92ZWQgZXdrX2NvbnRleHRfbWVudV9jdXN0b21pemUgaW1wbGVtZW50YXRpb24u
CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2Rlc3Ryb3kpOiBBZGRlZCBmcmVlaW5nIGNvbnRl
eHQgbWVudS4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfbmV3KTogQWRkZWQgZmlsbGluZyBl
d2tfY29udGV4dG1lbnUgbGlzdC4KKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDogUmVtb3Zl
ZCBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZSBhbmQgY2hhbmdlZCBld2tfY29udGV4dF9tZW51
X25ldyBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAo
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6IEFkZGVkIGNvbnRleHRNZW51LgorICAgICAgICAoX2V3
a192aWV3X3ByaXZfbmV3KTogQ29udGV4dE1lbnVDbGllbnRFZmwgYWRkZWQgdG8gcGFnZUNsaWVu
dHMuCisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOiBBZGRlZCBjb250ZXh0TWVudSBpcyBm
cmVlaW5nCisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCk6IEFk
ZGVkIG5ldyBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQLiBT
YW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgU2Vj
dXJpdHkgT3JpZ2luIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjVmNTZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgorCisjaW5jbHVkZSAiQ29udGV4dE1l
bnUuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiS1VSTC5oIgorI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0
TWVudURlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK1BsYXRmb3JtTWVudURl
c2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJ
dGVtcyhDb250ZXh0TWVudSogbWVudSkKK3sKKyAgICAvLyB3YXJuaW5nOiB0aGlzIHRyYW5zZmVy
cyB0aGUgb3duZXJzaGlwIHRvIHRoZSBjYWxsZXIKKyAgICByZXR1cm4gbWVudS0+cmVsZWFzZVBs
YXRmb3JtRGVzY3JpcHRpb24oKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6Y29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1lbnUq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRF
Zmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcEluRGljdGlvbmFyeShGcmFtZSop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiti
b29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENv
bnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zOWE4ODFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHly
aWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0
TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xpZW50RWZsX2gKKworI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb250ZXh0TWVudTsKKworY2xhc3MgQ29udGV4
dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgeworcHVibGljOgorICAg
IHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgpOworCisgICAgdmlydHVhbCBQbGF0
Zm9ybU1lbnVEZXNjcmlwdGlvbiBnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhDb250ZXh0
TWVudSopOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qLCBjb25zdCBDb250ZXh0TWVudSopOworCisgICAgdmlydHVhbCB2b2lkIGRvd25s
b2FkVVJMKGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5
KEZyYW1lKik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFN0cmluZyYpOworICAgIHZp
cnR1YWwgYm9vbCBpc1NwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygp
OworICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKik7Cit9Owor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKaW5k
ZXggNmRmZTkwOS4uYjRmYTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0
bWVudS5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVz
dHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51KQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChtZW51LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KG1lbnUtPmNvbnRyb2xsZXIsIGZhbHNlKTsKICAgICBtZW51LT5jb250cm9sbGVyLT5jbGVhckNv
bnRleHRNZW51KCk7CisgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKG1lbnUpOwogICAgIHJldHVy
biB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMTcsNyArMjE4LDcgQEAgRWlu
YV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIGl0ZW0sIEVpbmFfQm8KICAqCiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4
dG1lbnUsbmV3IgogICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhF
dmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9s
bGVyKQorRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3Qq
IHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlciwgV2ViQ29y
ZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51KQogewogICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHZpZXcsIDApOwpAQCAtMjMxLDYg
KzIzMiwxMCBAQCBFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09i
amVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDbwogICAgIG1lbnUtPml0ZW1zID0gMDsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0
bWVudSxuZXciLCBtZW51KTsKIAorICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+
KiBpdGVtc0xpc3QgPSBjb3JlTWVudS0+cGxhdGZvcm1EZXNjcmlwdGlvbigpOworICAgIGZvciAo
VmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT46Oml0ZXJhdG9yIGl0ZXIgPSBpdGVtc0xp
c3QtPmJlZ2luKCk7IGl0ZXIgIT0gaXRlbXNMaXN0LT5lbmQoKTsgKytpdGVyKQorICAgICAgICBl
d2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKG1lbnUsICppdGVyKTsKKwogICAgIHJldHVybiBt
ZW51OwogfQogCkBAIC0yODMsMjYgKzI4OCw2IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVt
X2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0CiAv
KioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVtaXRzIGEgc2lnbmFsIHdpdGggdGhlIGl0ZW1zIG9m
IHRoZSBjb250ZXh0IG1lbnUuCi0gKgotICogQHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBv
YmplY3QKLSAqIEByZXR1cm4gdGhlIHNhbWUgY29udGV4dCBtZW51IG9iamVjdCB0aGF0IHdhcyBn
aXZlbiB0aHJvdWdoIHBhcmFtZXRlcgotICoKLSAqIEBub3RlIGVtaXRzIGEgc2lnbmFsICJjb250
ZXh0bWVudSxjdXN0b21pemUiCi0gKgotICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlz
dF9nZXQKLSAqLwotRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9jdXN0b21pemUo
RXdrX0NvbnRleHRfTWVudSogbWVudSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwobWVudSwgMCk7Ci0KLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1l
bnUtPnZpZXcsICJjb250ZXh0bWVudSxjdXN0b21pemUiLCBtZW51LT5pdGVtcyk7Ci0gICAgcmV0
dXJuIG1lbnU7Ci19Ci0KLS8qKgotICogQGludGVybmFsCi0gKgogICogRW1pdHMgYSBzaWduYWwg
ImNvbnRleHRtZW51LHNob3ciCiAgKgogICogQHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBv
YmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggZjRiOTlhY2UuLjcwZTk0
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lk
Z2V0LmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2hpc3Rv
cnkuaCIKICNpbmNsdWRlICJld2tfanMuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpAQCAtMTkw
LDEwICsxOTEsOSBAQCBFd2tfSGlzdG9yeSogZXdrX2hpc3RvcnlfbmV3KFdlYkNvcmU6OkJhY2tG
b3J3YXJkTGlzdEltcGwqIGhpc3RvcnkpOwogdm9pZCBld2tfaGlzdG9yeV9mcmVlKEV3a19IaXN0
b3J5KiBoaXN0b3J5KTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotRXdrX0NvbnRleHRf
TWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNv
bnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7CitFd2tfQ29udGV4dF9NZW51KiBld2tf
Y29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVD
b250cm9sbGVyKiBjb250cm9sbGVyLCBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUpOwog
Ym9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSk7CiB2b2lk
IGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKTsKLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250
ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwogdm9pZCBld2tfY29u
dGV4dF9tZW51X3Nob3coRXdrX0NvbnRleHRfTWVudSogbWVudSk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggZjdmOTNkOS4uZTYyOTczZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQnJpZGdlLmgi
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCisjaW5j
bHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDbGll
bnRFZmwuaCIKQEAgLTI0NCw2ICsyNDUsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0
YSB7CiAgICAgICAgIEVjb3JlX0FuaW1hdG9yKiBhbmltYXRvcjsKICAgICB9IGFuaW1hdGVkWm9v
bTsKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247CisgICAgRXdrX0NvbnRleHRfTWVudSog
Y29udGV4dE1lbnU7CiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCkBAIC02MjksNiArNjMx
LDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIFdlYkNvcmU6OlBhZ2U6OlBhZ2VD
bGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKKyAgICBwYWdlQ2xpZW50
cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDsK
ICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBX
ZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9
IG5ldyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw7CkBAIC03NDYsNiArNzQ5LDggQEAgc3Rh
dGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIHByaXYtPnBhZ2VDbGllbnQgPSBhZG9wdFB0cihu
ZXcgUGFnZUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpKTsKIAorICAgIHByaXYtPmNvbnRleHRN
ZW51ID0gMDsKKwogICAgIHJldHVybiBwcml2OwogfQogCkBAIC03NzYsNiArNzgxLDkgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikK
IAogICAgIGV3a19oaXN0b3J5X2ZyZWUocHJpdi0+aGlzdG9yeSk7CiAKKyAgICBpZiAocHJpdi0+
Y29udGV4dE1lbnUpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShwcml2LT5jb250ZXh0
TWVudSk7CisKICAgICBkZWxldGUgcHJpdjsKIH0KIApAQCAtMTQ4OCw2ICsxNDk2LDkgQEAgRWlu
YV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBjb25zdCBFdmFzX0UKICAgICBFaW5hX0Jvb2wgbW91c2VfcHJlc3NfaGFuZGxlZCA9
IGZhbHNlOwogCiAgICAgcHJpdi0+cGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmNsZWFy
Q29udGV4dE1lbnUoKTsKKyAgICBpZiAocHJpdi0+Y29udGV4dE1lbnUpCisgICAgICAgIGV3a19j
b250ZXh0X21lbnVfZnJlZShwcml2LT5jb250ZXh0TWVudSk7CisKICAgICBXZWJDb3JlOjpGcmFt
ZSogbWFpbkZyYW1lID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgRXZhc19Db29yZCB4
LCB5OwogICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChzbWFydERhdGEtPnNlbGYsICZ4LCAm
eSwgMCwgMCk7CkBAIC0xNDk5LDcgKzE1MTAsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4
dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQog
ICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2
ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBpZiAobWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+
c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQorICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhh
bmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUgPQpAQCAtMTUxMCw2ICsx
NTIxLDEyIEBAIEVpbmFfQm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChF
dmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXZhc19FCiAgICAgICAgIHJldHVybiBtb3VzZV9w
cmVzc19oYW5kbGVkOwogICAgIH0KIAorICAgIHByaXYtPmNvbnRleHRNZW51ID0gZXdrX2NvbnRl
eHRfbWVudV9uZXcoZXdrVmlldywgcHJpdi0+cGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCks
IGNvcmVNZW51KTsKKyAgICBpZiAoIXByaXYtPmNvbnRleHRNZW51KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBld2tfY29udGV4dF9tZW51X3Nob3cocHJpdi0+Y29udGV4dE1lbnUpOwor
CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwu
Y21ha2UKaW5kZXggMTAzNjJhYS4uOWIyMWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTQw
LDcgKzQwLDcgQEAgU0VUKEVOQUJMRV9HTElCX1NVUFBPUlQgT04pCiBTRVQoV1RGX1VTRV9TT1VQ
IDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1NPVVA9MSkKIAotQUREX0RFRklOSVRJT05T
KC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MCkKK0FERF9ERUZJTklUSU9OUygtREVOQUJMRV9DT05U
RVhUX01FTlVTPTEpCiAKIFNFVChXVEZfVVNFX1BUSFJFQURTIDEpCiBBRERfREVGSU5JVElPTlMo
LURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141178</attachid>
            <date>2012-05-10 09:03:20 -0700</date>
            <delta_ts>2012-05-16 07:40:35 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>non-cross-platform-rebased3.diff</filename>
            <type>text/plain</type>
            <size>17713</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2YmFiODllLi4wMTY4Y2Uy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDUtMTAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMK
KyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZsYWcgZm9yIEVGTCBwb3J0LgorCiAyMDEyLTA1LTA5
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDYWxlbmRhciBQ
aWNrZXI6IEZpeCBhIGNyYXNoIGJ5IGNoYW5naW5nIGlucHV0IHR5cGUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmIwNTFkNi4uYzNjM2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTEw
ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVG
TCBwb3J0IHVzaW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFw
cHJvYWNoLCB0aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZWQgLURXVEZfVVNFX0NS
T1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVM9MQorCiAyMDEyLTA1LTEwICBBbGV4aXMgTWVuYXJk
ICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0gQXZvaWQgc3Ry
aW5nIGNvbnZlcnNpb25zIHRvIGNvbnN0cnVjdCBhIFFVcmwgd2hlbiB1c2luZyBRdDUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDljNzE4YWEuLjJjY2UzMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlCkBAIC0yNzcsOCArMjc3LDcgQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgKQog
RU5ESUYgKCkKIAotQUREX0RFRklOSVRJT05TKC1EV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05U
RVhUX01FTlVTPTEKLSAgICAgICAgICAgICAgICAtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExf
UFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9IikKK0FERF9ERUZJTklUSU9OUygtRERBVEFfRElS
PSIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9IikKIAogSUYgKEVO
QUJMRV9XRUJfQVVESU8pCiAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklF
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBkZTExNWY0Li43YWUyMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTA1LTEwICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1
cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVT
CisgICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENv
bnRleHRNZW51Q2xpZW50RWZsLmNwcCBmaWxlIHRvIHNvdXJjZXMgbGlzdC4KKwogMjAxMi0wNS0w
OCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIEltcGxlbWVudCBhIHBvcHVwIGNsaWVudCBmb3IgSFRNTCBjb250cm9scwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggZmM0M2I0Ni4uMjM4MGE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNt
YWtlCkBAIC04NCw2ICs4NCw3IEBAIEVORElGICgpCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNF
UwogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisgICAgZWZsL1dlYkNvcmVTdXBw
b3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNl
TW90aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50RWZs
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDQ5MjFhMmMuLjc1MTI1ZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMi0wNS0xMCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRr
YSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIENvbnRleHQgbWVudSBy
ZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2luZyBub24tQ1JPU1NfUExB
VEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaCwgdGhlIHNhbWUgYXMgdXNlZCBp
biBXZWJLaXQyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudURl
c3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Z2V0Q3Vz
dG9tTWVudUZyb21EZWZhdWx0SXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVD
bGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpkb3dubG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6bG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzcGVhayk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNsaWVudEVmbDo6aXNTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudEVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoQ29udGV4dE1lbnVDbGllbnRFZmwpOgorICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUu
Y3BwOiBSZW1vdmVkIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplIGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9kZXN0cm95KTogQWRkZWQgZnJlZWluZyBjb250ZXh0
IG1lbnUuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X25ldyk6IEFkZGVkIGZpbGxpbmcgZXdr
X2NvbnRleHRtZW51IGxpc3QuCisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6IFJlbW92ZWQg
ZXdrX2NvbnRleHRfbWVudV9jdXN0b21pemUgYW5kIGNoYW5nZWQgZXdrX2NvbnRleHRfbWVudV9u
ZXcgZGVmaW5pdGlvbi4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3
a19WaWV3X1ByaXZhdGVfRGF0YSk6IEFkZGVkIGNvbnRleHRNZW51LgorICAgICAgICAoX2V3a192
aWV3X3ByaXZfbmV3KTogQ29udGV4dE1lbnVDbGllbnRFZmwgYWRkZWQgdG8gcGFnZUNsaWVudHMu
CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOiBBZGRlZCBjb250ZXh0TWVudSBpcyBmcmVl
aW5nCisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCk6IEFkZGVk
IG5ldyBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMi0wNS0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjExNjYzMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nv
bnRleHRNZW51Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41ZjU2ZTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisj
aW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVEZXN0
cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCitQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
biBDb250ZXh0TWVudUNsaWVudEVmbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29u
dGV4dE1lbnUqIG1lbnUpCit7CisgICAgLy8gd2FybmluZzogdGhpcyB0cmFuc2ZlcnMgdGhlIG93
bmVyc2hpcCB0byB0aGUgY2FsbGVyCisgICAgcmV0dXJuIG1lbnUtPnJlbGVhc2VQbGF0Zm9ybURl
c2NyaXB0aW9uKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51KikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpkb3du
bG9hZFVSTChjb25zdCBLVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IENvbnRleHRNZW51Q2xpZW50RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFr
KGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBDb250
ZXh0TWVudUNsaWVudEVmbDo6aXNTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnN0b3BT
cGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVu
dUNsaWVudEVmbDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzlhODgxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmgKQEAgLTAsMCArMSw1NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgorICogQ29weXJp
Z2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dE1lbnVDbGll
bnRFZmxfaAorI2RlZmluZSBDb250ZXh0TWVudUNsaWVudEVmbF9oCisKKyNpbmNsdWRlICJDb250
ZXh0TWVudUNsaWVudC5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4dE1lbnU7CisKK2NsYXNzIENvbnRleHRNZW51Q2xp
ZW50RWZsIDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsKKworICAgIHZpcnR1YWwgUGxhdGZvcm1NZW51
RGVzY3JpcHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVt
KiwgY29uc3QgQ29udGV4dE1lbnUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZFVSTChj
b25zdCBLVVJMJik7CisgICAgdmlydHVhbCB2b2lkIGxvb2tVcEluRGljdGlvbmFyeShGcmFtZSop
OworICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNTcGVha2luZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wU3BlYWtpbmcoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSopOworfTsKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCmluZGV4IDZkZmU5
MDkuLjA1ODRmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3Bw
CkBAIC04NCw2ICs4NCw3IEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2Rlc3Ryb3koRXdr
X0NvbnRleHRfTWVudSogbWVudSkKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
bWVudSwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LT5j
b250cm9sbGVyLCBmYWxzZSk7CiAgICAgbWVudS0+Y29udHJvbGxlci0+Y2xlYXJDb250ZXh0TWVu
dSgpOworICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShtZW51KTsKICAgICByZXR1cm4gdHJ1ZTsK
ICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjE3LDcgKzIxOCw3IEBAIEVpbmFfQm9vbCBl
d2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBp
dGVtLCBFaW5hX0JvCiAgKgogICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LG5l
dyIKICAqLwotRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmpl
Y3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcikKK0V3
a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBX
ZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIsIFdlYkNvcmU6OkNvbnRl
eHRNZW51KiBjb3JlTWVudSkKIHsKICAgICBFd2tfQ29udGV4dF9NZW51KiBtZW51OwogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCAwKTsKQEAgLTIzMSw2ICsyMzIsMTAg
QEAgRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZp
ZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q28KICAgICBtZW51LT5pdGVtcyA9IDA7CiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsbmV3
IiwgbWVudSk7CiAKKyAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtPiog
aXRlbXNMaXN0ID0gY29yZU1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24oKTsKKyAgICBmb3IgKFZl
Y3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gaXRl
bXNMaXN0LT5iZWdpbigpOyBpdGVyICE9IGl0ZW1zTGlzdC0+ZW5kKCk7ICsraXRlcikKKyAgICAg
ICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChtZW51LCAqaXRlcik7CisKICAgICByZXR1
cm4gbWVudTsKIH0KIApAQCAtMjY2LDcgKzI3MSw3IEBAIGJvb2wgZXdrX2NvbnRleHRfbWVudV9m
cmVlKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAgKgogICogQHNlZSBld2tfY29udGV4dF9tZW51
X2l0ZW1fbmV3CiAgKi8KLXZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29u
dGV4dF9NZW51KiBtZW51LCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCit2b2lkIGV3
a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgY29uc3Qg
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKQogewogICAgIEV3a19Db250ZXh0X01lbnVf
SXRlbV9UeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZT4o
Y29yZS50eXBlKCkpOwogICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRp
Y19jYXN0PEV3a19Db250ZXh0X01lbnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKQEAgLTI4Mywy
NiArMjg4LDYgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0
X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXQKIC8qKgogICogQGludGVybmFsCiAg
KgotICogRW1pdHMgYSBzaWduYWwgd2l0aCB0aGUgaXRlbXMgb2YgdGhlIGNvbnRleHQgbWVudS4K
LSAqCi0gKiBAcGFyYW0gbWVudSB0aGUgY29udGV4dCBtZW51IG9iamVjdAotICogQHJldHVybiB0
aGUgc2FtZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRoYXQgd2FzIGdpdmVuIHRocm91Z2ggcGFyYW1l
dGVyCi0gKgotICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIK
LSAqCi0gKiBAc2VlIGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldAotICovCi1Fd2tfQ29u
dGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShFd2tfQ29udGV4dF9NZW51KiBt
ZW51KQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCAwKTsKLQot
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRt
ZW51LGN1c3RvbWl6ZSIsIG1lbnUtPml0ZW1zKTsKLSAgICByZXR1cm4gbWVudTsKLX0KLQotLyoq
Ci0gKiBAaW50ZXJuYWwKLSAqCiAgKiBFbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsc2hvdyIK
ICAqCiAgKiBAcGFyYW0gbWVudSB0aGUgY29udGV4dCBtZW51IG9iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ByaXZhdGUuaAppbmRleCBmYTI4NGYzLi42MGEzZGRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ByaXZhdGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIldpZGdldC5oIgorI2luY2x1ZGUgImV3
a19jb250ZXh0bWVudS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCiAjaW5jbHVkZSAiZXdr
X2pzLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKQEAgLTE5MCwxMCArMTkxLDkgQEAgRXdrX0hp
c3RvcnkqIGV3a19oaXN0b3J5X25ldyhXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKiBoaXN0
b3J5KTsKIHZvaWQgZXdrX2hpc3RvcnlfZnJlZShFd2tfSGlzdG9yeSogaGlzdG9yeSk7CiAKICNp
ZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21l
bnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIpOworRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZh
c19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxl
ciwgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51KTsKIGJvb2wgZXdrX2NvbnRleHRfbWVu
dV9mcmVlKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwotdm9pZCBld2tfY29udGV4dF9tZW51X2l0
ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRl
bSYgY29yZSk7Ci1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZShF
d2tfQ29udGV4dF9NZW51KiBtZW51KTsKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVu
ZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0m
IGNvcmUpOwogdm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0NvbnRleHRfTWVudSogbWVu
dSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggN2EwZWUxZS4u
YTlkN2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKICNpbmNs
dWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgogI2luY2x1ZGUgIkRyYWdDbGllbnRFZmwuaCIKQEAgLTI1Niw2ICsyNTcsNyBAQCBzdHJ1Y3Qg
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIEVjb3JlX0FuaW1hdG9yKiBhbmltYXRv
cjsKICAgICB9IGFuaW1hdGVkWm9vbTsKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247Cisg
ICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnU7CiB9OwogCiAjaWZuZGVmIEVXS19UWVBF
X0NIRUNLCkBAIC02NDEsNiArNjQzLDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
X2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAg
IFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBhZ2VDbGllbnRz
LmNocm9tZUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmwoc21hcnREYXRhLT5z
ZWxmKTsKKyAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb3JlOjpD
b250ZXh0TWVudUNsaWVudEVmbDsKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcg
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVu
dHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwogICAgIHBhZ2VDbGll
bnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw7CkBA
IC03NzQsNiArNzc3LDggQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3
X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIHByaXYtPnBh
Z2VDbGllbnQgPSBhZG9wdFB0cihuZXcgUGFnZUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpKTsK
IAorICAgIHByaXYtPmNvbnRleHRNZW51ID0gMDsKKwogICAgIHJldHVybiBwcml2OwogfQogCkBA
IC04MDQsNiArODA5LDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3
X1ByaXZhdGVfRGF0YSogcHJpdikKIAogICAgIGV3a19oaXN0b3J5X2ZyZWUocHJpdi0+aGlzdG9y
eSk7CiAKKyAgICBpZiAocHJpdi0+Y29udGV4dE1lbnUpCisgICAgICAgIGV3a19jb250ZXh0X21l
bnVfZnJlZShwcml2LT5jb250ZXh0TWVudSk7CisKICAgICBkZWxldGUgcHJpdjsKIH0KIApAQCAt
MTUxNiw2ICsxNTI0LDkgQEAgRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJk
X2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFzX0UKICAgICBFaW5hX0Jvb2wg
bW91c2VfcHJlc3NfaGFuZGxlZCA9IGZhbHNlOwogCiAgICAgcHJpdi0+cGFnZS0+Y29udGV4dE1l
bnVDb250cm9sbGVyKCktPmNsZWFyQ29udGV4dE1lbnUoKTsKKyAgICBpZiAocHJpdi0+Y29udGV4
dE1lbnUpCisgICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShwcml2LT5jb250ZXh0TWVudSk7
CisKICAgICBXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1l
KCk7CiAgICAgRXZhc19Db29yZCB4LCB5OwogICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChz
bWFydERhdGEtPnNlbGYsICZ4LCAmeSwgMCwgMCk7CkBAIC0xNTI3LDcgKzE1MzgsNyBAQCBFaW5h
X0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIo
KS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAgICB9CiAKLSAgICBpZiAobWFpbkZy
YW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQpKQorICAgIGlm
ICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQoZXZlbnQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudSogY29y
ZU1lbnUgPQpAQCAtMTUzOCw2ICsxNTQ5LDEyIEBAIEVpbmFfQm9vbCBld2tfdmlld19jb250ZXh0
X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXZhc19FCiAg
ICAgICAgIHJldHVybiBtb3VzZV9wcmVzc19oYW5kbGVkOwogICAgIH0KIAorICAgIHByaXYtPmNv
bnRleHRNZW51ID0gZXdrX2NvbnRleHRfbWVudV9uZXcoZXdrVmlldywgcHJpdi0+cGFnZS0+Y29u
dGV4dE1lbnVDb250cm9sbGVyKCksIGNvcmVNZW51KTsKKyAgICBpZiAoIXByaXYtPmNvbnRleHRN
ZW51KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBld2tfY29udGV4dF9tZW51X3Nob3co
cHJpdi0+Y29udGV4dE1lbnUpOworCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291
cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggOTgzZmY2NS4uZjYyOGRjYyAxMDA2NDQK
LS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UKQEAgLTQwLDcgKzQwLDcgQEAgU0VUKEVOQUJMRV9HTElCX1NVUFBPUlQg
T04pCiBTRVQoV1RGX1VTRV9TT1VQIDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1NPVVA9
MSkKIAotQUREX0RFRklOSVRJT05TKC1ERU5BQkxFX0NPTlRFWFRfTUVOVVM9MCkKK0FERF9ERUZJ
TklUSU9OUygtREVOQUJMRV9DT05URVhUX01FTlVTPTEpCiAKIFNFVChXVEZfVVNFX1BUSFJFQURT
IDEpCiBBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142259</attachid>
            <date>2012-05-16 07:40:35 -0700</date>
            <delta_ts>2012-05-23 02:26:40 -0700</delta_ts>
            <desc>rebased after ewk_private changes</desc>
            <filename>non-cross-platform-rebased4.diff</filename>
            <type>text/plain</type>
            <size>18263</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4ZTk5ZTllLi4yZDBkNWU4
ZCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTA1LTE2ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgW0VGTF0gQ29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1
cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVT
CisgICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2U6IFR1cm4gb24gQ09OVEVYVF9NRU5VUyBmbGFnIGZvciBFRkwgcG9ydC4KKwogMjAxMi0wNS0x
NiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIEFkZCBXZWJLaXQgQVBJIHRvIGFjY2VzcyBpbm5lciB0ZXh0IHZhbHVlIG9mIGlucHV0IGVs
ZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAyMTg4NDZhLi5hYmNiMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTItMDUtMTYgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0
IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRF
WFRfTUVOVVMKKyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4K
KworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTog
UmVtb3ZlZCAtRFdURl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUz0xCisKIDIwMTIt
MDUtMTYgIEFycGl0YSBCYWh1Z3VuYSAgPGFycGl0YWJhaHVndW5hQGdtYWlsLmNvbT4KIAogICAg
ICAgICAiYm9yZGVyOiBjb2xsYXBzZSIgKyAiZGlzcGxheTogbm9uZSIgcm93cyBpbiB0aGUgdGJv
ZHkgd2hpbGUgaGF2aW5nIHRoZWFkIG9yIHRmb290IGRvZXNuJ3QgcmVuZGVyIHRoZSBvcHBvc2l0
ZSBib3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOWM3MThhYS4uMmNjZTMyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI3Nyw4ICsyNzcsNyBAQCBJRiAoRU5BQkxF
X1dFQkdMKQogICApCiBFTkRJRiAoKQogCi1BRERfREVGSU5JVElPTlMoLURXVEZfVVNFX0NST1NT
X1BMQVRGT1JNX0NPTlRFWFRfTUVOVVM9MQotICAgICAgICAgICAgICAgIC1EREFUQV9ESVI9IiR7
Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQorQUREX0RFRklOSVRJ
T05TKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJ
Un0iKQogCiBJRiAoRU5BQkxFX1dFQl9BVURJTykKICAgTElTVChBUFBFTkQgV2ViQ29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5MWU5OTYuLmU2ZGM4OTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMTYgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9y
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBj
b250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JN
X0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2Vi
S2l0Mi4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5j
bWFrZTogQWRkZWQgQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwIGZpbGUgdG8gc291cmNlcyBsaXN0
LgorCiAyMDEyLTA1LTE1ICBUb21hc3ogTW9yYXdza2kgIDx0Lm1vcmF3c2tpQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFtFRkxdIFNwbGl0IGV3a19wcml2YXRlLmggZmlsZSB0byBtdWx0aXBsZSBw
cml2YXRlIGZpbGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZGQyMjhjYi4uNzU4NjQ2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC04NCw2ICs4NCw3IEBAIEVORElGICgpCiBM
SVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRN
YXRjaGluZ0VudW1zLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCisgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAg
IGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbC5jcHAKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJD
b3JlU3VwcG9ydC9EcmFnQ2xpZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDk0NGNiZjAu
LjU2YmI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMi0wNS0xNiAg
TWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAg
ICAgIFtFRkxdIENvbnRleHQgbWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwg
cG9ydCB1c2luZyBub24tQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHBy
b2FjaCwgdGhlIHNhbWUgYXMgdXNlZCBpbiBXZWJLaXQyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q2xpZW50RWZsOjpjb250ZXh0TWVudURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpkb3dubG9hZFVSTCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6bG9va1VwSW5EaWN0aW9u
YXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzcGVhayk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6aXNTcGVha2luZyk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGV4dE1lbnVDbGllbnRFZmwpOgorICAgICAg
ICAqIGV3ay9ld2tfY29udGV4dG1lbnUuY3BwOiBSZW1vdmVkIGV3a19jb250ZXh0X21lbnVfY3Vz
dG9taXplIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9kZXN0cm95
KTogQWRkZWQgZnJlZWluZyBjb250ZXh0IG1lbnUuCisgICAgICAgIChld2tfY29udGV4dF9tZW51
X25ldyk6IEFkZGVkIGZpbGxpbmcgZXdrX2NvbnRleHRtZW51IGxpc3QuCisgICAgICAgICogZXdr
L2V3a19jb250ZXh0bWVudV9wcml2YXRlLmg6IFJlbW92ZWQgZXdrX2NvbnRleHRfbWVudV9jdXN0
b21pemUgYW5kIGNoYW5nZWQgZXdrX2NvbnRleHRfbWVudV9uZXcgZGVmaW5pdGlvbi4KKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6
CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZf
ZGVsKToKKyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KToKKwog
MjAxMi0wNS0xNiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgogCiAgICAgICAgIFtFRkxdIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGlt
cGxlbWVudCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjU2ZTMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRF
ZmwuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
Q29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQg
c3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIK
KworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgor
I2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDb250ZXh0
TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlz
OworfQorCitQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEVmbDo6Z2V0
Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqIG1lbnUpCit7CisgICAgLy8g
d2FybmluZzogdGhpcyB0cmFuc2ZlcnMgdGhlIG93bmVyc2hpcCB0byB0aGUgY2FsbGVyCisgICAg
cmV0dXJuIG1lbnUtPnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCk7Cit9CisKK3ZvaWQgQ29u
dGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRl
bSosIGNvbnN0IENvbnRleHRNZW51KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpkb3dubG9hZFVSTChjb25zdCBLVVJMJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpsb29r
VXBJbkRpY3Rpb25hcnkoRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBDb250ZXh0TWVudUNsaWVudEVmbDo6aXNTcGVha2lu
ZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnN0b3BTcGVha2luZygpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c2VhcmNoV2l0aEdvb2ds
ZShjb25zdCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50
RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlhODgxZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51
Q2xpZW50RWZsLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ29udGV4dE1lbnVDbGllbnRFZmxfaAorI2RlZmluZSBDb250ZXh0TWVu
dUNsaWVudEVmbF9oCisKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgorCisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4
dE1lbnU7CisKK2NsYXNzIENvbnRleHRNZW51Q2xpZW50RWZsIDogcHVibGljIENvbnRleHRNZW51
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQo
KTsKKworICAgIHZpcnR1YWwgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gZ2V0Q3VzdG9tTWVudUZy
b21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1l
bnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1lbnUqKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZFVSTChjb25zdCBLVVJMJik7CisgICAgdmlydHVhbCB2
b2lkIGxvb2tVcEluRGljdGlvbmFyeShGcmFtZSopOworICAgIHZpcnR1YWwgdm9pZCBzcGVhayhj
b25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpOworICAgIHZpcnR1
YWwgdm9pZCBzdG9wU3BlYWtpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdvb2ds
ZShjb25zdCBGcmFtZSopOworfTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuY3BwCmluZGV4IDZkZmU5MDkuLmU3OTJjNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKLSNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImV3a19jb250ZXh0bWVudV9wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWluYS5oPgogI2lu
Y2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KQEAgLTg0LDYgKzg0LDcgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVzdHJveShF
d2tfQ29udGV4dF9NZW51KiBtZW51KQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChtZW51LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUt
PmNvbnRyb2xsZXIsIGZhbHNlKTsKICAgICBtZW51LT5jb250cm9sbGVyLT5jbGVhckNvbnRleHRN
ZW51KCk7CisgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKG1lbnUpOwogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMTcsNyArMjE4LDcgQEAgRWluYV9Cb29s
IGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0q
IGl0ZW0sIEVpbmFfQm8KICAqCiAgKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUs
bmV3IgogICovCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09i
amVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQor
RXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcs
IFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlciwgV2ViQ29yZTo6Q29u
dGV4dE1lbnUqIGNvcmVNZW51KQogewogICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHZpZXcsIDApOwpAQCAtMjMxLDYgKzIzMiwx
MCBAQCBFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCog
dmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDbwogICAgIG1lbnUtPml0ZW1zID0gMDsKICAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxu
ZXciLCBtZW51KTsKIAorICAgIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+
KiBpdGVtc0xpc3QgPSBjb3JlTWVudS0+cGxhdGZvcm1EZXNjcmlwdGlvbigpOworICAgIGZvciAo
VmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBp
dGVtc0xpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gaXRlbXNMaXN0LT5lbmQoKTsgKytpdGVyKQorICAg
ICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKG1lbnUsICppdGVyKTsKKwogICAgIHJl
dHVybiBtZW51OwogfQogCkBAIC0yNjYsNyArMjcxLDcgQEAgYm9vbCBld2tfY29udGV4dF9tZW51
X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAqCiAgKiBAc2VlIGV3a19jb250ZXh0X21l
bnVfaXRlbV9uZXcKICAqLwotdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19D
b250ZXh0X01lbnUqIG1lbnUsIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSkKK3ZvaWQg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBjb25z
dCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVu
dV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBl
Pihjb3JlLnR5cGUoKSk7CiAgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uID0gc3Rh
dGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9BY3Rpb24+KGNvcmUuYWN0aW9uKCkpOwpAQCAtMjgz
LDI2ICsyODgsNiBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRl
eHRfTWVudSogbWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdAogLyoqCiAgKiBAaW50ZXJuYWwK
ICAqCi0gKiBFbWl0cyBhIHNpZ25hbCB3aXRoIHRoZSBpdGVtcyBvZiB0aGUgY29udGV4dCBtZW51
LgotICoKLSAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0dXJu
IHRoZSBzYW1lIGNvbnRleHQgbWVudSBvYmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBwYXJh
bWV0ZXIKLSAqCi0gKiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9taXpl
IgotICoKLSAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0Ci0gKi8KLUV3a19D
b250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUq
IG1lbnUpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIDApOwot
Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4
dG1lbnUsY3VzdG9taXplIiwgbWVudS0+aXRlbXMpOwotICAgIHJldHVybiBtZW51OwotfQotCi0v
KioKLSAqIEBpbnRlcm5hbAotICoKICAqIEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxzaG93
IgogICoKICAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51X3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnVfcHJpdmF0ZS5oCmluZGV4IGNlMWYzYTgu
Ljk1ZGNkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1l
bnVfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnVf
cHJpdmF0ZS5oCkBAIC0yMSw2ICsyMSw4IEBACiAjaWZuZGVmIGV3a19jb250ZXh0bWVudV9wcml2
YXRlX2gKICNkZWZpbmUgZXdrX2NvbnRleHRtZW51X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiZXdr
X2NvbnRleHRtZW51LmgiCisKIC8vIGZvcndhcmQgZGVjbGFyYXRpb25zCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBzdHJ1Y3QgQ29udGV4dE1lbnU7CkBAIC0yOCwxMSArMzAsMTAgQEAgc3RydWN0IENv
bnRleHRNZW51SXRlbTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotRXdrX0NvbnRl
eHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcik7CitFd2tfQ29udGV4dF9NZW51KiBl
d2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyKiBjb250cm9sbGVyLCBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUp
OwogYm9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSk7Ci12
b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwg
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKTsKLUV3a19Db250ZXh0X01lbnUqIGV3a19j
b250ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwordm9pZCBld2tf
Y29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIGNvbnN0IFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSk7CiB2b2lkIGV3a19jb250ZXh0X21lbnVfc2hv
dyhFd2tfQ29udGV4dF9NZW51KiBtZW51KTsKICNlbmRpZgogCi0jZW5kaWYgLy8gZXdrX2NvbnRl
eHRfbWFudV9wcml2YXRlX2gKKyNlbmRpZiAvLyBld2tfY29udGV4dF9tZW51X3ByaXZhdGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNGE5ZmY4ZC4uOTg5ODQ1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQnJp
ZGdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgi
CisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVu
dUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRy
YWdDbGllbnRFZmwuaCIKQEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgorI2lu
Y2x1ZGUgImV3a19jb250ZXh0bWVudV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgi
CiAjaW5jbHVkZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfaGlzdG9yeV9w
cml2YXRlLmgiCkBAIC0zMzUsNiArMzM3LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEgewogICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAgfSBhbmltYXRlZFpv
b207CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOworICAgIEV3a19Db250ZXh0X01lbnUq
IGNvbnRleHRNZW51OwogfTsKIAogI2lmbmRlZiBFV0tfVFlQRV9DSEVDSwpAQCAtNzIwLDYgKzcy
Myw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhF
d2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBXZWJDb3JlOjpQYWdlOjpQYWdl
Q2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcg
V2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisgICAgcGFnZUNsaWVu
dHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw7
CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcg
V2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQg
PSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOwpAQCAtODU2LDYgKzg2MCw4IEBAIHN0
YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gYWRvcHRQdHIo
bmV3IFBhZ2VDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKSk7CiAKKyAgICBwcml2LT5jb250ZXh0
TWVudSA9IDA7CisKICAgICByZXR1cm4gcHJpdjsKIH0KIApAQCAtODg2LDYgKzg5Miw5IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYp
CiAKICAgICBld2tfaGlzdG9yeV9mcmVlKHByaXYtPmhpc3RvcnkpOwogCisgICAgaWYgKHByaXYt
PmNvbnRleHRNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUocHJpdi0+Y29udGV4
dE1lbnUpOworCiAgICAgZGVsZXRlIHByaXY7CiB9CiAKQEAgLTE1OTAsNiArMTU5OSw5IEBAIEVp
bmFfQm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgRXZhc19FCiAgICAgRWluYV9Cb29sIG1vdXNlX3ByZXNzX2hhbmRsZWQg
PSBmYWxzZTsKIAogICAgIHByaXYtPnBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jbGVh
ckNvbnRleHRNZW51KCk7CisgICAgaWYgKHByaXYtPmNvbnRleHRNZW51KQorICAgICAgICBld2tf
Y29udGV4dF9tZW51X2ZyZWUocHJpdi0+Y29udGV4dE1lbnUpOworCiAgICAgV2ViQ29yZTo6RnJh
bWUqIG1haW5GcmFtZSA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEV2YXNfQ29vcmQg
eCwgeTsKICAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoc21hcnREYXRhLT5zZWxmLCAmeCwg
JnksIDAsIDApOwpAQCAtMTYwMSw3ICsxNjEzLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2NvbnRl
eHRfbWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFzX0UK
ICAgICAgICAgICAgIG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJlc3NF
dmVudChldmVudCk7CiAgICAgfQogCi0gICAgaWYgKG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkt
PnNlbmRDb250ZXh0TWVudUV2ZW50KGV2ZW50KSkKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRI
YW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50KGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51ID0KQEAgLTE2MTIsNiAr
MTYyNCwxMiBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgICAgICByZXR1cm4gbW91c2Vf
cHJlc3NfaGFuZGxlZDsKICAgICB9CiAKKyAgICBwcml2LT5jb250ZXh0TWVudSA9IGV3a19jb250
ZXh0X21lbnVfbmV3KGV3a1ZpZXcsIHByaXYtPnBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigp
LCBjb3JlTWVudSk7CisgICAgaWYgKCFwcml2LT5jb250ZXh0TWVudSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgZXdrX2NvbnRleHRfbWVudV9zaG93KHByaXYtPmNvbnRleHRNZW51KTsK
KwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZs
LmNtYWtlCmluZGV4IGQ4NDhjOTguLjRjNjI3MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC00
MCw3ICs0MCw3IEBAIFNFVChFTkFCTEVfR0xJQl9TVVBQT1JUIE9OKQogU0VUKFdURl9VU0VfU09V
UCAxKQogQUREX0RFRklOSVRJT05TKC1EV1RGX1VTRV9TT1VQPTEpCiAKLUFERF9ERUZJTklUSU9O
UygtREVOQUJMRV9DT05URVhUX01FTlVTPTApCitBRERfREVGSU5JVElPTlMoLURFTkFCTEVfQ09O
VEVYVF9NRU5VUz0xKQogCiBTRVQoV1RGX1VTRV9QVEhSRUFEUyAxKQogQUREX0RFRklOSVRJT05T
KC1EV1RGX1VTRV9QVEhSRUFEUz0xKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143508</attachid>
            <date>2012-05-23 02:26:40 -0700</date>
            <delta_ts>2012-09-04 02:45:32 -0700</delta_ts>
            <desc>change log fixes</desc>
            <filename>non-cross-platform-changelogfixes.diff</filename>
            <type>text/plain</type>
            <size>18071</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyMWVmYmFhLi5kODU4MGJl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMjMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3Vw
cG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9uLUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMK
KyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1lIGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAgICAg
ICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOiBUdXJuIG9uIENPTlRFWFRfTUVOVVMg
ZmxhZyBmb3IgRUZMIHBvcnQuCisKIDIwMTItMDUtMjIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBJbXBsZW1lbnRzIHRoZSByZWdpc3RlclByb3RvY29s
SGFuZGxlciBtZXRob2QgYW5kIG9wdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjBlZTFjLi40YTk5ZDRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMjMgIE1pY2hhxYIgUGFrdcWC
YSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250
ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkcyBjb250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgRUZMIHBvcnQgdXNpbmcgbm9u
LUNST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKKyAgICAgICAgYXBwcm9hY2gsIHRoZSBzYW1l
IGFzIHVzZWQgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBSZW1v
dmVkIC1EV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTPTEKKwogMjAxMi0wNS0y
MiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbUmVmYWN0
b3JpbmddIEVsZW1lbnRTaGFkb3c6Om1fbmVlZHNSZWRpc3RyaWJ1dGluZyAgc2hvdWxkIGJlIG9u
IENvbnRlbnREaXN0cmlidXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA1ZWMwODdl
Li4xMjU1YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMjc4LDggKzI3OCw3IEBA
IElGIChFTkFCTEVfV0VCR0wpCiAgICkKIEVORElGICgpCiAKLUFERF9ERUZJTklUSU9OUygtRFdU
Rl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUz0xCi0gICAgICAgICAgICAgICAgLURE
QVRBX0RJUj0iJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfSIpCitB
RERfREVGSU5JVElPTlMoLUREQVRBX0RJUj0iJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRB
X0lOU1RBTExfRElSfSIpCiAKIElGIChFTkFCTEVfV0VCX0FVRElPKQogICBMSVNUKEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzQ5YWRmNS4uMjg2NThjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0yMyAgTWljaGHFgiBQYWt1xYJhIHZl
bCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIENvbnRleHQg
bWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2luZyBub24tQ1JP
U1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaCwgdGhlIHNhbWUgYXMg
dXNlZCBpbiBXZWJLaXQyLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENv
bnRleHRNZW51Q2xpZW50RWZsLmNwcCBmaWxlIHRvIHNvdXJjZXMgbGlzdC4KKwogMjAxMi0wNS0y
MiAgRG9uZ3dvbyBJbSAgPGR3LmltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEltcGxl
bWVudHMgdGhlIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyIG1ldGhvZCBhbmQgb3B0aW9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMmVlODMwZC4uMWE5MDEzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlCkBAIC04Niw2ICs4Niw3IEBAIEVORElGICgpCiBMSVNUKEFQUEVORCBXZWJLaXRf
U09VUkNFUwogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAog
ICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisgICAgZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlTW90aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xp
ZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDFhYzczMzAuLjE3YjRmNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNS0yMyAgTWljaGHFgiBQYWt1xYJhIHZl
bCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIENvbnRleHQg
bWVudSByZXN0b3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2luZyBub24tQ1JP
U1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaCwgdGhlIHNhbWUgYXMg
dXNlZCBpbiBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJ
dGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1l
bnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6
OmRvd25sb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjps
b29rVXBJbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRF
Zmw6OnNwZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjppc1Nw
ZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzdG9wU3Bl
YWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNlYXJjaFdp
dGhHb29nbGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZs
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgKENvbnRleHRNZW51Q2xpZW50
RWZsKToKKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDogUmVtb3ZlZCBld2tfY29u
dGV4dF9tZW51X2N1c3RvbWl6ZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKGV3a19jb250ZXh0
X21lbnVfZGVzdHJveSk6IEFkZGVkIGZyZWVpbmcgY29udGV4dCBtZW51LgorICAgICAgICAoZXdr
X2NvbnRleHRfbWVudV9uZXcpOiBBZGRlZCBmaWxsaW5nIGV3a19jb250ZXh0bWVudSBsaXN0Lgor
ICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnVfcHJpdmF0ZS5oOiBSZW1vdmVkIGV3a19jb250
ZXh0X21lbnVfY3VzdG9taXplIGFuZCBjaGFuZ2VkIGV3a19jb250ZXh0X21lbnVfbmV3IGRlZmlu
aXRpb24uCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAgKF9l
d2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2Fy
ZF9ldmVudCk6CisKIDIwMTItMDUtMjIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXSBJbXBsZW1lbnRzIHRoZSByZWdpc3RlclByb3RvY29sSGFuZGxlciBt
ZXRob2QgYW5kIG9wdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41ZjU2ZTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCkBAIC0wLDAgKzEsODcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKKworI2luY2x1ZGUgIkNvbnRleHRN
ZW51LmgiCisjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4
dE1lbnVEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCitQbGF0Zm9ybU1lbnVE
ZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEVmbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0
SXRlbXMoQ29udGV4dE1lbnUqIG1lbnUpCit7CisgICAgLy8gd2FybmluZzogdGhpcyB0cmFuc2Zl
cnMgdGhlIG93bmVyc2hpcCB0byB0aGUgY2FsbGVyCisgICAgcmV0dXJuIG1lbnUtPnJlbGVhc2VQ
bGF0Zm9ybURlc2NyaXB0aW9uKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50
RWZsOjpkb3dubG9hZFVSTChjb25zdCBLVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRF
Zmw6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
Ym9vbCBDb250ZXh0TWVudUNsaWVudEVmbDo6aXNTcGVha2luZygpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRF
Zmw6OnN0b3BTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBD
b250ZXh0TWVudUNsaWVudEVmbDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzlhODgxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmgKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4
dE1lbnVDbGllbnRFZmxfaAorI2RlZmluZSBDb250ZXh0TWVudUNsaWVudEVmbF9oCisKKyNpbmNs
dWRlICJDb250ZXh0TWVudUNsaWVudC5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4dE1lbnU7CisKK2NsYXNzIENvbnRl
eHRNZW51Q2xpZW50RWZsIDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsKKworICAgIHZpcnR1YWwgUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4
dE1lbnUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4
dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1lbnUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBkb3du
bG9hZFVSTChjb25zdCBLVVJMJik7CisgICAgdmlydHVhbCB2b2lkIGxvb2tVcEluRGljdGlvbmFy
eShGcmFtZSopOworICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBTdHJpbmcmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wU3BlYWtpbmco
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSopOworfTsK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRl
eHRtZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCmlu
ZGV4IDZkZmU5MDkuLmU3OTJjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNp
bmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0
ZW0uaCIKLSNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVu
dV9wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2No
ZWNrcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTg0LDYgKzg0LDcgQEAg
RWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVzdHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51
KQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCBmYWxzZSk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUtPmNvbnRyb2xsZXIsIGZhbHNlKTsK
ICAgICBtZW51LT5jb250cm9sbGVyLT5jbGVhckNvbnRleHRNZW51KCk7CisgICAgZXdrX2NvbnRl
eHRfbWVudV9mcmVlKG1lbnUpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0yMTcsNyArMjE4LDcgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRl
bV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVpbmFfQm8KICAqCiAg
KiBAbm90ZSBlbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsbmV3IgogICovCi1Fd2tfQ29udGV4
dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorRXdrX0NvbnRleHRfTWVudSogZXdr
X2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51
Q29udHJvbGxlciogY29udHJvbGxlciwgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNvcmVNZW51KQog
ewogICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHZpZXcsIDApOwpAQCAtMjMxLDYgKzIzMiwxMCBAQCBFd2tfQ29udGV4dF9NZW51
KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4
dE1lbnVDbwogICAgIG1lbnUtPml0ZW1zID0gMDsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxuZXciLCBtZW51KTsKIAorICAgIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+KiBpdGVtc0xpc3QgPSBjb3JlTWVu
dS0+cGxhdGZvcm1EZXNjcmlwdGlvbigpOworICAgIGZvciAoVmVjdG9yPFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbT46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBpdGVtc0xpc3QtPmJlZ2luKCk7IGl0
ZXIgIT0gaXRlbXNMaXN0LT5lbmQoKTsgKytpdGVyKQorICAgICAgICBld2tfY29udGV4dF9tZW51
X2l0ZW1fYXBwZW5kKG1lbnUsICppdGVyKTsKKwogICAgIHJldHVybiBtZW51OwogfQogCkBAIC0y
NjYsNyArMjcxLDcgQEAgYm9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVu
dSogbWVudSkKICAqCiAgKiBAc2VlIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcKICAqLwotdm9p
ZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSkKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVt
X2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW0mIGNvcmUpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0
YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAg
RXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9BY3Rpb24+KGNvcmUuYWN0aW9uKCkpOwpAQCAtMjgzLDI2ICsyODgsNiBAQCB2b2lkIGV3
a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdAogLyoqCiAgKiBAaW50ZXJuYWwKICAqCi0gKiBFbWl0cyBhIHNpZ25h
bCB3aXRoIHRoZSBpdGVtcyBvZiB0aGUgY29udGV4dCBtZW51LgotICoKLSAqIEBwYXJhbSBtZW51
IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0Ci0gKiBAcmV0dXJuIHRoZSBzYW1lIGNvbnRleHQgbWVu
dSBvYmplY3QgdGhhdCB3YXMgZ2l2ZW4gdGhyb3VnaCBwYXJhbWV0ZXIKLSAqCi0gKiBAbm90ZSBl
bWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsY3VzdG9taXplIgotICoKLSAqIEBzZWUgZXdrX2Nv
bnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0Ci0gKi8KLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250
ZXh0X21lbnVfY3VzdG9taXplKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCi17Ci0gICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIDApOwotCi0gICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfY2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsY3VzdG9taXplIiwgbWVu
dS0+aXRlbXMpOwotICAgIHJldHVybiBtZW51OwotfQotCi0vKioKLSAqIEBpbnRlcm5hbAotICoK
ICAqIEVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxzaG93IgogICoKICAqIEBwYXJhbSBtZW51
IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2NvbnRleHRtZW51X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
Y29udGV4dG1lbnVfcHJpdmF0ZS5oCmluZGV4IGNlMWYzYTguLjk1ZGNkYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnVfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnVfcHJpdmF0ZS5oCkBAIC0yMSw2ICsy
MSw4IEBACiAjaWZuZGVmIGV3a19jb250ZXh0bWVudV9wcml2YXRlX2gKICNkZWZpbmUgZXdrX2Nv
bnRleHRtZW51X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCisKIC8v
IGZvcndhcmQgZGVjbGFyYXRpb25zCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ29udGV4
dE1lbnU7CkBAIC0yOCwxMSArMzAsMTAgQEAgc3RydWN0IENvbnRleHRNZW51SXRlbTsKIH0KIAog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRf
bWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxl
ciogY29udHJvbGxlcik7CitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhF
dmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9s
bGVyLCBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUpOwogYm9vbCBld2tfY29udGV4dF9t
ZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbWVudSk7Ci12b2lkIGV3a19jb250ZXh0X21lbnVf
aXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtJiBjb3JlKTsKLUV3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9taXpl
KEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBw
ZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRl
bSYgY29yZSk7CiB2b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBt
ZW51KTsKICNlbmRpZgogCi0jZW5kaWYgLy8gZXdrX2NvbnRleHRfbWFudV9wcml2YXRlX2gKKyNl
bmRpZiAvLyBld2tfY29udGV4dF9tZW51X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKaW5kZXggM2M4NWNhMC4uN2MyNTYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiQ29udGV4dE1l
bnVDbGllbnRFZmwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRFZmwuaCIKQEAgLTU1
LDYgKzU2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgorI2luY2x1ZGUgImV3a19jb250ZXh0bWVu
dV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1l
X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfaGlzdG9yeV9wcml2YXRlLmgiCkBAIC0zMzgsNiAr
MzQwLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgICAgICBFY29yZV9B
bmltYXRvciogYW5pbWF0b3I7CiAgICAgfSBhbmltYXRlZFpvb207CiAgICAgU291cFNlc3Npb24q
IHNvdXBTZXNzaW9uOworICAgIEV3a19Db250ZXh0X01lbnUqIGNvbnRleHRNZW51OwogfTsKIAog
I2lmbmRlZiBFV0tfVFlQRV9DSEVDSwpAQCAtNzE5LDYgKzcyMiw3IEBAIHN0YXRpYyBFd2tfVmll
d19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEpCiAKICAgICBXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsK
ICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50
RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQg
PSBuZXcgV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw7CiAgICAgcGFnZUNsaWVudHMuZWRp
dG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYp
OwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVm
bDsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50RWZsOwpAQCAtODU2LDYgKzg2MCw4IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRl
X0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEp
CiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gYWRvcHRQdHIobmV3IFBhZ2VDbGllbnRFZmwoc21h
cnREYXRhLT5zZWxmKSk7CiAKKyAgICBwcml2LT5jb250ZXh0TWVudSA9IDA7CisKICAgICByZXR1
cm4gcHJpdjsKIH0KIApAQCAtODg2LDYgKzg5Miw5IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19w
cml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYpCiAKICAgICBld2tfaGlzdG9yeV9m
cmVlKHByaXYtPmhpc3RvcnkpOwogCisgICAgaWYgKHByaXYtPmNvbnRleHRNZW51KQorICAgICAg
ICBld2tfY29udGV4dF9tZW51X2ZyZWUocHJpdi0+Y29udGV4dE1lbnUpOworCiAgICAgZGVsZXRl
IHByaXY7CiB9CiAKQEAgLTE1OTAsNiArMTU5OSw5IEBAIEVpbmFfQm9vbCBld2tfdmlld19jb250
ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXZhc19F
CiAgICAgRWluYV9Cb29sIG1vdXNlX3ByZXNzX2hhbmRsZWQgPSBmYWxzZTsKIAogICAgIHByaXYt
PnBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jbGVhckNvbnRleHRNZW51KCk7CisgICAg
aWYgKHByaXYtPmNvbnRleHRNZW51KQorICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUocHJp
di0+Y29udGV4dE1lbnUpOworCiAgICAgV2ViQ29yZTo6RnJhbWUqIG1haW5GcmFtZSA9IHByaXYt
PnBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEV2YXNfQ29vcmQgeCwgeTsKICAgICBldmFzX29iamVj
dF9nZW9tZXRyeV9nZXQoc21hcnREYXRhLT5zZWxmLCAmeCwgJnksIDAsIDApOwpAQCAtMTYwMSw3
ICsxNjEzLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFzX0UKICAgICAgICAgICAgIG1haW5GcmFt
ZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJlc3NFdmVudChldmVudCk7CiAgICAgfQog
Ci0gICAgaWYgKG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50
KGV2ZW50KSkKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0
TWVudUV2ZW50KGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgV2ViQ29yZTo6
Q29udGV4dE1lbnUqIGNvcmVNZW51ID0KQEAgLTE2MTIsNiArMTYyNCwxMiBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGNvbnN0IEV2YXNfRQogICAgICAgICByZXR1cm4gbW91c2VfcHJlc3NfaGFuZGxlZDsKICAgICB9
CiAKKyAgICBwcml2LT5jb250ZXh0TWVudSA9IGV3a19jb250ZXh0X21lbnVfbmV3KGV3a1ZpZXcs
IHByaXYtPnBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLCBjb3JlTWVudSk7CisgICAgaWYg
KCFwcml2LT5jb250ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZXdrX2Nv
bnRleHRfbWVudV9zaG93KHByaXYtPmNvbnRleHRNZW51KTsKKwogICAgIHJldHVybiB0cnVlOwog
I2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDk4NWI1NTYu
LmRhNzk3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC00MCw3ICs0MCw3IEBAIFNFVChFTkFC
TEVfR0xJQl9TVVBQT1JUIE9OKQogU0VUKFdURl9VU0VfU09VUCAxKQogQUREX0RFRklOSVRJT05T
KC1EV1RGX1VTRV9TT1VQPTEpCiAKLUFERF9ERUZJTklUSU9OUygtREVOQUJMRV9DT05URVhUX01F
TlVTPTApCitBRERfREVGSU5JVElPTlMoLURFTkFCTEVfQ09OVEVYVF9NRU5VUz0xKQogCiBTRVQo
V1RGX1VTRV9QVEhSRUFEUyAxKQogQUREX0RFRklOSVRJT05TKC1EV1RGX1VTRV9QVEhSRUFEUz0x
KQo=
</data>
<flag name="review"
          id="150088"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161997</attachid>
            <date>2012-09-04 02:45:32 -0700</date>
            <delta_ts>2012-09-04 06:12:45 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>rebased.patch</filename>
            <type>text/plain</type>
            <size>18099</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4ZTJmZGUzLi5hNTNmMzE5
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDktMDQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9yZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgR3l1eW91bmcgS2ltLgorCisgICAgICAgIEFkZHMgY29udGV4dCBtZW51IHN1cHBv
cnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisg
ICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2VkIGluIFdlYktpdDIuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZTogVHVybiBvbiBDT05URVhUX01FTlVTIGZs
YWcgZm9yIEVGTCBwb3J0CisKIDIwMTItMDktMDMgIEppbndvbyBTb25nICA8amlud29vNy5zb25n
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFVzZSBXZWJLaXRWZXJzaW9uLmggdG8gZ2V0
IHZlcnNpb24gaW5mb3JtYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMGVhN2ZmLi5iYTRmMzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDktMDQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwg
UnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1l
bnUgcmVzdG9yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR3l1eW91bmcgS2ltLgorCisgICAgICAg
IEFkZHMgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIEVGTCBwb3J0IHVzaW5nIG5vbi1DUk9TU19Q
TEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIGFwcHJvYWNoLCB0aGUgc2FtZSBhcyB1c2Vk
IGluIFdlYktpdDIuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogUmVtb3ZlZCAtRFdU
Rl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUz0xCisKIDIwMTItMDktMDQgIElseWEg
VGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE5NSTogY29zbWV0aWMgY2hhbmdlLCByZW5hbWUgbV9kb21NZW1vcnlVc2FnZSB0byBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNDU0ZWVl
OC4uYjlhZjk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI5Nyw4ICsyOTcsNyBA
QCBJRiAoV1RGX1VTRV8zRF9HUkFQSElDUykKICAgKQogRU5ESUYgKCkKIAotQUREX0RFRklOSVRJ
T05TKC1EV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTPTEKLSAgICAgICAgICAg
ICAgICAtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9E
SVJ9IikKK0FERF9ERUZJTklUSU9OUygtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExfUFJFRklY
fS8ke0RBVEFfSU5TVEFMTF9ESVJ9IikKIAogSUYgKEVOQUJMRV9XRUJfQVVESU8pCiAgIExJU1Qo
QVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjZGFiYjFkLi5k
ZDgyMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTA0ICBNaWNoYcWCIFBh
a3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0g
Q29udGV4dCBtZW51IHJlc3RvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4K
KworICAgICAgICBBZGRzIGNvbnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2luZyBu
b24tQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaCwgdGhlIHNh
bWUgYXMgdXNlZCBpbiBXZWJLaXQyLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFk
ZGVkIENvbnRleHRNZW51Q2xpZW50RWZsLmNwcCBmaWxlIHRvIHNvdXJjZXMgbGlzdC4KKwogMjAx
Mi0wOC0yOSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0VGTF0gTW92ZSBzZXZlcmFsIGZpbGVzIHRvIHJlbW92ZSB3ZWJraXQxIGRlcGVuZGVuY3kgZnJv
bSBXZWJDb3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZDhkMmZiNS4uODRmMDI0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC04OSw2ICs4OSw3IEBAIExJU1QoQVBQRU5EIFdl
YktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuY3Bw
CiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2Vi
Q29yZVN1cHBvcnQvQ29sb3JDaG9vc2VyRWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlv
bkNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEVmbC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA4NmM0YjJmLi4zNTQ0NzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTItMDktMDQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBDb250ZXh0IG1lbnUgcmVzdG9y
ZS4gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAgICAgICBBZGRzIGNv
bnRleHQgbWVudSBzdXBwb3J0IGZvciBFRkwgcG9ydCB1c2luZyBub24tQ1JPU1NfUExBVEZPUk1f
Q09OVEVYVF9NRU5VUworICAgICAgICBhcHByb2FjaCwgdGhlIHNhbWUgYXMgdXNlZCBpbiBXZWJL
aXQyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OmNvbnRleHRNZW51RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmRvd25sb2FkVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpsb29rVXBJbkRpY3Rp
b25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNwZWFrKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpzdG9wU3BlYWtpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNlYXJjaFdpdGhHb29nbGUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0TWVudUNsaWVudEVmbCk6CisgICAg
ICAgICogZXdrL2V3a19jb250ZXh0bWVudS5jcHA6IFJlbW92ZWQgZXdrX2NvbnRleHRfbWVudV9j
dXN0b21pemUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChld2tfY29udGV4dF9tZW51X2Rlc3Ry
b3kpOiBBZGRlZCBmcmVlaW5nIGNvbnRleHQgbWVudS4gCisgICAgICAgIChld2tfY29udGV4dF9t
ZW51X25ldyk6IEFkZGVkIGZpbGxpbmcgZXdrX2NvbnRleHRtZW51IGxpc3QuCisgICAgICAgIChl
d2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKToKKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRt
ZW51X3ByaXZhdGUuaDogUmVtb3ZlZCBld2tfY29udGV4dF9tZW51X2N1c3RvbWl6ZSBhbmQgY2hh
bmdlZCBld2tfY29udGV4dF9tZW51X25ldyBkZWZpbml0aW9uLgorICAgICAgICAqIGV3ay9ld2tf
dmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9l
d2tfdmlld19wcml2X25ldyk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOgorICAgICAg
ICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQpOgorCiAyMDEyLTA5LTA0ICBS
eXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBEcm9w
IGRlZmF1bHQgdGhlbWUgY29uY2VwdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjVmNTZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAgLTAsMCAr
MSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgorCisjaW5jbHVkZSAiQ29u
dGV4dE1lbnUuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiS1VSTC5o
IgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpj
b250ZXh0TWVudURlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK1BsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURl
ZmF1bHRJdGVtcyhDb250ZXh0TWVudSogbWVudSkKK3sKKyAgICAvLyB3YXJuaW5nOiB0aGlzIHRy
YW5zZmVycyB0aGUgb3duZXJzaGlwIHRvIHRoZSBjYWxsZXIKKyAgICByZXR1cm4gbWVudS0+cmVs
ZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVm
bDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4
dE1lbnUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVD
bGllbnRFZmw6OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6Omxvb2tVcEluRGljdGlvbmFyeShG
cmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNs
aWVudEVmbDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitib29sIENvbnRleHRNZW51Q2xpZW50RWZsOjppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDb250ZXh0TWVudUNs
aWVudEVmbDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWE4ODFkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAt
MCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBT
LkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBD
b250ZXh0TWVudUNsaWVudEVmbF9oCisjZGVmaW5lIENvbnRleHRNZW51Q2xpZW50RWZsX2gKKwor
I2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb250ZXh0TWVudTsKKworY2xhc3Mg
Q29udGV4dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgeworcHVibGlj
OgorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgpOworCisgICAgdmlydHVh
bCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhD
b250ZXh0TWVudSopOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChD
b250ZXh0TWVudUl0ZW0qLCBjb25zdCBDb250ZXh0TWVudSopOworCisgICAgdmlydHVhbCB2b2lk
IGRvd25sb2FkVVJMKGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0
aW9uYXJ5KEZyYW1lKik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFN0cmluZyYpOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1NwZWFraW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVh
a2luZygpOworICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKik7
Cit9OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
Y29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5j
cHAKaW5kZXggNmRmZTkwOS4uZTc5MmM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19j
b250ZXh0bWVudS5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudS5o
IgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNvbnRleHRN
ZW51SXRlbS5oIgotI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX2NvbnRl
eHRtZW51X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFaW5hLmg+CiAjaW5jbHVkZSA8ZWluYV9zYWZl
dHlfY2hlY2tzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtODQsNiArODQs
NyBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01lbnUq
IG1lbnUpCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIGZhbHNlKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobWVudS0+Y29udHJvbGxlciwgZmFs
c2UpOwogICAgIG1lbnUtPmNvbnRyb2xsZXItPmNsZWFyQ29udGV4dE1lbnUoKTsKKyAgICBld2tf
Y29udGV4dF9tZW51X2ZyZWUobWVudSk7CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTIxNyw3ICsyMTgsNyBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSwgRWluYV9Cbwog
ICoKICAqIEBub3RlIGVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxuZXciCiAgKi8KLUV3a19D
b250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJD
b3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCitFd2tfQ29udGV4dF9NZW51
KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4
dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyLCBXZWJDb3JlOjpDb250ZXh0TWVudSogY29yZU1l
bnUpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudSogbWVudTsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwodmlldywgMCk7CkBAIC0yMzEsNiArMjMyLDEwIEBAIEV3a19Db250ZXh0
X01lbnUqIGV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpD
b250ZXh0TWVudUNvCiAgICAgbWVudS0+aXRlbXMgPSAwOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LG5ldyIsIG1lbnUpOwogCisg
ICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4qIGl0ZW1zTGlzdCA9IGNv
cmVNZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCk7CisgICAgZm9yIChWZWN0b3I8V2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGl0ZW1zTGlzdC0+YmVnaW4o
KTsgaXRlciAhPSBpdGVtc0xpc3QtPmVuZCgpOyArK2l0ZXIpCisgICAgICAgIGV3a19jb250ZXh0
X21lbnVfaXRlbV9hcHBlbmQobWVudSwgKml0ZXIpOworCiAgICAgcmV0dXJuIG1lbnU7CiB9CiAK
QEAgLTI2Niw3ICsyNzEsNyBAQCBib29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4
dF9NZW51KiBtZW51KQogICoKICAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldwogICov
Ci12b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVu
dSwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKQordm9pZCBld2tfY29udGV4dF9tZW51
X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIGNvbnN0IFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbSYgY29yZSkKIHsKICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBl
ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGU+KGNvcmUudHlwZSgpKTsK
ICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24gPSBzdGF0aWNfY2FzdDxFd2tfQ29u
dGV4dF9NZW51X0FjdGlvbj4oY29yZS5hY3Rpb24oKSk7CkBAIC0yODMsMjYgKzI4OCw2IEBAIHZv
aWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBX
ZWJDb3JlOjpDb250ZXh0TWVudUl0CiAvKioKICAqIEBpbnRlcm5hbAogICoKLSAqIEVtaXRzIGEg
c2lnbmFsIHdpdGggdGhlIGl0ZW1zIG9mIHRoZSBjb250ZXh0IG1lbnUuCi0gKgotICogQHBhcmFt
IG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QKLSAqIEByZXR1cm4gdGhlIHNhbWUgY29udGV4
dCBtZW51IG9iamVjdCB0aGF0IHdhcyBnaXZlbiB0aHJvdWdoIHBhcmFtZXRlcgotICoKLSAqIEBu
b3RlIGVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxjdXN0b21pemUiCi0gKgotICogQHNlZSBl
d2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQKLSAqLwotRXdrX0NvbnRleHRfTWVudSogZXdr
X2NvbnRleHRfbWVudV9jdXN0b21pemUoRXdrX0NvbnRleHRfTWVudSogbWVudSkKLXsKLSAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobWVudSwgMCk7Ci0KLSAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKG1lbnUtPnZpZXcsICJjb250ZXh0bWVudSxjdXN0b21pemUi
LCBtZW51LT5pdGVtcyk7Ci0gICAgcmV0dXJuIG1lbnU7Ci19Ci0KLS8qKgotICogQGludGVybmFs
Ci0gKgogICogRW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LHNob3ciCiAgKgogICogQHBhcmFt
IG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfY29udGV4dG1lbnVfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19jb250ZXh0bWVudV9wcml2YXRlLmgKaW5kZXggY2UxZjNhOC4uOTVkY2RhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudV9wcml2YXRlLmgKQEAgLTIx
LDYgKzIxLDggQEAKICNpZm5kZWYgZXdrX2NvbnRleHRtZW51X3ByaXZhdGVfaAogI2RlZmluZSBl
d2tfY29udGV4dG1lbnVfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIK
KwogLy8gZm9yd2FyZCBkZWNsYXJhdGlvbnMKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBD
b250ZXh0TWVudTsKQEAgLTI4LDExICszMCwxMCBAQCBzdHJ1Y3QgQ29udGV4dE1lbnVJdGVtOwog
fQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi1Fd2tfQ29udGV4dF9NZW51KiBld2tfY29u
dGV4dF9tZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyKiBjb250cm9sbGVyKTsKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVf
bmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIsIFdlYkNvcmU6OkNvbnRleHRNZW51KiBjb3JlTWVudSk7CiBib29sIGV3a19jb250
ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9NZW51KiBtZW51KTsKLXZvaWQgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW0mIGNvcmUpOwotRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9jdXN0
b21pemUoRXdrX0NvbnRleHRfTWVudSogbWVudSk7Cit2b2lkIGV3a19jb250ZXh0X21lbnVfaXRl
bV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtJiBjb3JlKTsKIHZvaWQgZXdrX2NvbnRleHRfbWVudV9zaG93KEV3a19Db250ZXh0X01l
bnUqIG1lbnUpOwogI2VuZGlmCiAKLSNlbmRpZiAvLyBld2tfY29udGV4dF9tYW51X3ByaXZhdGVf
aAorI2VuZGlmIC8vIGV3a19jb250ZXh0X21lbnVfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcAppbmRleCBlZjYwOWNjLi40OTQ5YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJDb250
ZXh0TWVudUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEVmbC5oIgpA
QCAtNTcsNiArNTgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJjX2luc3RhbmNlLmgiCisjaW5jbHVkZSAiZXdrX2NvbnRl
eHRtZW51X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfZnJhbWUuaCIKICNpbmNsdWRlICJld2tf
ZnJhbWVfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5X3ByaXZhdGUuaCIKQEAgLTM2
MCw2ICszNjIsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAjaWZkZWYgSEFW
RV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwogI2VuZGlmCisgICAgRXdrX0NvbnRl
eHRfTWVudSogY29udGV4dE1lbnU7CiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCkBAIC03
NDEsNiArNzQ0LDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3By
aXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIFdlYkNvcmU6OlBh
Z2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVu
dCA9IG5ldyBXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKKyAgICBw
YWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDb250ZXh0TWVudUNs
aWVudEVmbDsKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6RWRp
dG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVu
dCA9IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBA
IC04OTEsNiArODk1LDggQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3
X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT5pc1Vz
aW5nRWNvcmVYID0gV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWChzbWFydERhdGEtPmJhc2UuZXZhcyk7
CiAjZW5kaWYKIAorICAgIHByaXYtPmNvbnRleHRNZW51ID0gMDsKKwogICAgIHJldHVybiBwcml2
OwogfQogCkBAIC05MjQsNiArOTMwLDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVs
KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKICAgICBpZiAocHJpdi0+Y3Vyc29yT2JqZWN0
KQogICAgICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0KTsKIAorICAgIGlm
IChwcml2LT5jb250ZXh0TWVudSkKKyAgICAgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKHByaXYt
PmNvbnRleHRNZW51KTsKKwogICAgIGRlbGV0ZSBwcml2OwogfQogCkBAIC0xNjI0LDYgKzE2MzMs
OSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRQogICAgIEVpbmFfQm9vbCBtb3VzZV9wcmVzc19o
YW5kbGVkID0gZmFsc2U7CiAKICAgICBwcml2LT5wYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS0+Y2xlYXJDb250ZXh0TWVudSgpOworICAgIGlmIChwcml2LT5jb250ZXh0TWVudSkKKyAgICAg
ICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKHByaXYtPmNvbnRleHRNZW51KTsKKwogICAgIFdlYkNv
cmU6OkZyYW1lKiBtYWluRnJhbWUgPSBwcml2LT5wYWdlLT5tYWluRnJhbWUoKTsKICAgICBFdmFz
X0Nvb3JkIHgsIHk7CiAgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KHNtYXJ0RGF0YS0+c2Vs
ZiwgJngsICZ5LCAwLCAwKTsKQEAgLTE2MzUsNyArMTY0Nyw3IEBAIEVpbmFfQm9vbCBld2tfdmll
d19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3Qg
RXZhc19FCiAgICAgICAgICAgICBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3Vz
ZVByZXNzRXZlbnQoZXZlbnQpOwogICAgIH0KIAotICAgIGlmIChtYWluRnJhbWUtPmV2ZW50SGFu
ZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudChldmVudCkpCisgICAgaWYgKCFtYWluRnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudChldmVudCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIFdlYkNvcmU6OkNvbnRleHRNZW51KiBjb3JlTWVudSA9CkBAIC0x
NjQ2LDYgKzE2NTgsMTIgQEAgRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJk
X2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFzX0UKICAgICAgICAgcmV0dXJu
IG1vdXNlX3ByZXNzX2hhbmRsZWQ7CiAgICAgfQogCisgICAgcHJpdi0+Y29udGV4dE1lbnUgPSBl
d2tfY29udGV4dF9tZW51X25ldyhld2tWaWV3LCBwcml2LT5wYWdlLT5jb250ZXh0TWVudUNvbnRy
b2xsZXIoKSwgY29yZU1lbnUpOworICAgIGlmICghcHJpdi0+Y29udGV4dE1lbnUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGV3a19jb250ZXh0X21lbnVfc2hvdyhwcml2LT5jb250ZXh0
TWVudSk7CisKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZQppbmRleCA2MzNkMWI5Li42MmZkNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZQpAQCAtMjYsNyArMjYsNyBAQCBTRVQoRU5BQkxFX0dMSUJfU1VQUE9SVCBPTikKIFNFVChXVEZf
VVNFX1NPVVAgMSkKIEFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfU09VUD0xKQogCi1BRERfREVG
SU5JVElPTlMoLURFTkFCTEVfQ09OVEVYVF9NRU5VUz0wKQorQUREX0RFRklOSVRJT05TKC1ERU5B
QkxFX0NPTlRFWFRfTUVOVVM9MSkKIAogU0VUKFdURl9VU0VfUFRIUkVBRFMgMSkKIEFERF9ERUZJ
TklUSU9OUygtRFdURl9VU0VfUFRIUkVBRFM9MSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>