<?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>49658</bug_id>
          
          <creation_ts>2010-11-17 06:17:03 -0800</creation_ts>
          <short_desc>[GTK] Simplify context-menu handling code</short_desc>
          <delta_ts>2010-12-14 09:35:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310234</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-17 06:17:03 -0800</bug_when>
    <thetext>We can simplify the context-menu handling code by using a GtkMenuItem as PlatformMenuItemDescription instead of the custom struct we are currently using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310235</commentid>
    <comment_count>1</comment_count>
      <attachid>74103</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-17 06:19:22 -0800</bug_when>
    <thetext>Created attachment 74103
Patch to simplify context-menu handling in gtk port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310307</commentid>
    <comment_count>2</comment_count>
      <attachid>74103</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-17 08:39:43 -0800</bug_when>
    <thetext>Comment on attachment 74103
Patch to simplify context-menu handling in gtk port

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

Great patch! I have two small tweaks to suggest.

&gt; WebCore/platform/ContextMenuItem.h:188
&gt; +    typedef GtkMenuItem* PlatformMenuItemDescription;

I think we should make this a PlatformRefPtr&lt;GtkMenuItem&gt;(...).

&gt; WebCore/platform/gtk/ContextMenuItemGtk.cpp:118
&gt; +    : m_platformDescription(GTK_MENU_ITEM(g_object_ref(item)))

It would remove the need to call g_object_ref here.

&gt; WebCore/platform/gtk/ContextMenuItemGtk.cpp:135
&gt; +    GOwnPtr&lt;char&gt;actionName(g_strdup_printf(&quot;context-menu-action-%d&quot;, action));

Missing a space here between &lt;char&gt; and actionName.

&gt; WebCore/platform/gtk/ContextMenuItemGtk.cpp:156
&gt; +    if (m_platformDescription)
&gt; +        g_object_unref(m_platformDescription);

A smart pointer also removes the need for this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310751</commentid>
    <comment_count>3</comment_count>
      <attachid>74218</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-18 02:10:46 -0800</bug_when>
    <thetext>Created attachment 74218
Updated patch

I had to add PlatformRefPtr::leakRef() to implement PlatformMenuItemDescription ContextMenuItem::releasePlatformDescription() since we want to return the object with the sink reference to be consumed by the parent widget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310753</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-18 02:14:19 -0800</bug_when>
    <thetext>Attachment 74218 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;JavaScriptCore/ChangeLog&apos;, u&apos;JavaScriptCore/wtf/PlatformRefPtr.h&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/platform/ContextMenuItem.h&apos;, u&apos;WebCore/platform/gtk/ContextMenuGtk.cpp&apos;, u&apos;WebCore/platform/gtk/ContextMenuItemGtk.cpp&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/PlatformRefPtr.h:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 6 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>310879</commentid>
    <comment_count>5</comment_count>
      <attachid>74218</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-18 09:16:02 -0800</bug_when>
    <thetext>Comment on attachment 74218
Updated patch

Great patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311146</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-18 15:59:51 -0800</bug_when>
    <thetext>Attachment 74218 did not build on gtk:
Build output: http://queues.webkit.org/results/6169060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311315</commentid>
    <comment_count>7</comment_count>
      <attachid>74361</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-19 00:16:40 -0800</bug_when>
    <thetext>Created attachment 74361
New patch to fix the build issues

I forgot to include GOwnPtr.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311316</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-19 00:18:30 -0800</bug_when>
    <thetext>Attachment 74361 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;JavaScriptCore/ChangeLog&apos;, u&apos;JavaScriptCore/wtf/PlatformRefPtr.h&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/platform/ContextMenuItem.h&apos;, u&apos;WebCore/platform/gtk/ContextMenuGtk.cpp&apos;, u&apos;WebCore/platform/gtk/ContextMenuItemGtk.cpp&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/PlatformRefPtr.h:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 6 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>311390</commentid>
    <comment_count>9</comment_count>
      <attachid>74218</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-19 05:44:59 -0800</bug_when>
    <thetext>Comment on attachment 74218
Updated patch

Cleared Martin Robinson&apos;s review+ from obsolete attachment 74218 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320048</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-10 02:31:35 -0800</bug_when>
    <thetext>Committed r73703: &lt;http://trac.webkit.org/changeset/73703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320090</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-12-10 04:04:31 -0800</bug_when>
    <thetext>I think that patch broke a test:

http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r73715%20(16918)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320259</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-10 11:10:50 -0800</bug_when>
    <thetext>Committed r73746: &lt;http://trac.webkit.org/changeset/73746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320279</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 11:45:31 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73703 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320281</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 11:45:46 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73705 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320318</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 12:19:51 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73746 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320603</commentid>
    <comment_count>16</comment_count>
      <attachid>74361</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 22:28:35 -0800</bug_when>
    <thetext>Comment on attachment 74361
New patch to fix the build issues

Cleared review? from attachment 74361 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321010</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-12-13 02:54:46 -0800</bug_when>
    <thetext>Reopening to attach a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321013</commentid>
    <comment_count>18</comment_count>
      <attachid>76364</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-12-13 03:00:27 -0800</bug_when>
    <thetext>Created attachment 76364
New patch rebased to current master

Rebased to current git master and fixing the crash in editing/selection/empty-cell-right-click.html. It also improves the code that connects the activate signal for the menu items. gtk_container_get_children() uses gtk_container_foreach() to build the list of items, so we are iterating twice, one to build the list and another one to connect the signal. Using gtk_container_foreach() directly we iterate only once and we avoid creating/destroying the GList. It also makes easier to connect the acivate signal for submenu items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321014</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-13 03:01:40 -0800</bug_when>
    <thetext>Attachment 76364 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;JavaScriptCore/ChangeLog&apos;, u&apos;JavaScriptCore/wtf/PlatformRefPtr.h&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/platform/ContextMenuItem.h&apos;, u&apos;WebCore/platform/gtk/ContextMenuGtk.cpp&apos;, u&apos;WebCore/platform/gtk/ContextMenuItemGtk.cpp&apos;, u&apos;WebKit/gtk/ChangeLog&apos;, u&apos;WebKit/gtk/webkit/webkitwebview.cpp&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/PlatformRefPtr.h:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321968</commentid>
    <comment_count>20</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-14 08:04:30 -0800</bug_when>
    <thetext>This style error looks like a false positive, so let&apos;s give this another whirl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321978</commentid>
    <comment_count>21</comment_count>
      <attachid>76364</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-14 08:25:36 -0800</bug_when>
    <thetext>Comment on attachment 76364
New patch rebased to current master

Clearing flags on attachment: 76364

Committed r74028: &lt;http://trac.webkit.org/changeset/74028&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321980</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-14 08:25:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322010</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-14 09:35:27 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74028 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
editing/selection/extend-by-character-002.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74103</attachid>
            <date>2010-11-17 06:19:22 -0800</date>
            <delta_ts>2010-11-18 02:10:46 -0800</delta_ts>
            <desc>Patch to simplify context-menu handling in gtk port</desc>
            <filename>simplify-context-menu.diff</filename>
            <type>text/plain</type>
            <size>11613</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTgzMGE1Yy4uZDhkYzJhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMS0xNyAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2ltcGxpZnkgY29udGV4dC1tZW51IGhhbmRs
aW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ5NjU4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Db250ZXh0TWVu
dUl0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0
TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp+Q29udGV4dE1l
bnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBsYXRm
b3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VGl0
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQpOgorCiAyMDEwLTExLTE2ICBBZGFtIFJv
YmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFFUTW92aWVXaW4ncyBzZXR0
aW5ncyBpbnRvIGEgdnNwcm9wcyBmaWxlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRl
eCBlNzAyOTIxLi43OTE0ZjhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51SXRlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTE4
NSwyMiArMTg1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGVuYWJsZWQ7
CiAgICAgfTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBzdHJ1Y3QgUGxhdGZvcm1NZW51SXRl
bURlc2NyaXB0aW9uIHsKLSAgICAgICAgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCkKLSAg
ICAgICAgICAgIDogdHlwZShBY3Rpb25UeXBlKQotICAgICAgICAgICAgLCBhY3Rpb24oQ29udGV4
dE1lbnVJdGVtVGFnTm9BY3Rpb24pCi0gICAgICAgICAgICAsIHN1Yk1lbnUoMCkKLSAgICAgICAg
ICAgICwgY2hlY2tlZChmYWxzZSkKLSAgICAgICAgICAgICwgZW5hYmxlZCh0cnVlKQotICAgICAg
ICB7fQotCi0gICAgICAgIENvbnRleHRNZW51SXRlbVR5cGUgdHlwZTsKLSAgICAgICAgQ29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uOwotICAgICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAgIEd0a01l
bnUqIHN1Yk1lbnU7Ci0gICAgICAgIGJvb2wgY2hlY2tlZDsKLSAgICAgICAgYm9vbCBlbmFibGVk
OwotICAgIH07CisgICAgdHlwZWRlZiBHdGtNZW51SXRlbSogUGxhdGZvcm1NZW51SXRlbURlc2Ny
aXB0aW9uOwogI2VsaWYgUExBVEZPUk0oV1gpCiAgICAgc3RydWN0IFBsYXRmb3JtTWVudUl0ZW1E
ZXNjcmlwdGlvbiB7CiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigpCkBAIC0y
NjAsOSArMjQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIENvbnRleHRNZW51
SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlLCBDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5n
JiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQpOwogICAgICAgICBDb250ZXh0TWVudUl0ZW0o
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVj
a2VkLCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgc3VibWVudUl0ZW1zKTsKLSNpZiBQTEFURk9S
TShHVEspCi0gICAgICAgIENvbnRleHRNZW51SXRlbShHdGtNZW51SXRlbSopOwotI2VuZGlmCisK
ICAgICAgICAgfkNvbnRleHRNZW51SXRlbSgpOwogCiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1E
ZXNjcmlwdGlvbiByZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpOwpAQCAtMjg3LDkgKzI3MCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBlbmFibGVkKCkgY29uc3Q7CiAK
ICAgICAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQgYSBrZXlib2FyZCBhY2NlbGVyYXRvciBoZXJl
PwotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAgc3RhdGljIEd0a01lbnVJdGVtKiBjcmVhdGVO
YXRpdmVNZW51SXRlbShjb25zdCBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24mKTsKLSNlbmRp
ZgogCiAgICAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9D
b250ZXh0TWVudUd0ay5jcHAKaW5kZXggMjEwY2ZhNi4uM2QyNzRmMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIENvbnRleHRN
ZW51OjphcHBlbmRJdGVtKENvbnRleHRNZW51SXRlbSYgaXRlbSkKICAgICBjaGVja09yRW5hYmxl
SWZOZWVkZWQoaXRlbSk7CiAKICAgICBDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUgPSBpdGVtLnR5
cGUoKTsKLSAgICBHdGtNZW51SXRlbSogcGxhdGZvcm1JdGVtID0gQ29udGV4dE1lbnVJdGVtOjpj
cmVhdGVOYXRpdmVNZW51SXRlbShpdGVtLnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkpOwor
ICAgIEd0a01lbnVJdGVtKiBwbGF0Zm9ybUl0ZW0gPSBpdGVtLnJlbGVhc2VQbGF0Zm9ybURlc2Ny
aXB0aW9uKCk7CiAgICAgQVNTRVJUKHBsYXRmb3JtSXRlbSk7CiAKICAgICBpZiAodHlwZSA9PSBB
Y3Rpb25UeXBlIHx8IHR5cGUgPT0gQ2hlY2thYmxlQWN0aW9uVHlwZSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCmluZGV4IDY4ZDBhOWEuLjc2ZDczZTEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcApAQCAtMTE0LDMw
ICsxMTQsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogZ3RrU3RvY2tJREZyb21Db250ZXh0TWVudUFj
dGlvbihjb25zdCBDb250ZXh0TWVudUFjdGlvbiYgYWN0aQogfQogCiAvLyBFeHRyYWN0IHRoZSBB
Y3Rpb25UeXBlIGZyb20gdGhlIG1lbnUgaXRlbQotQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVu
dUl0ZW0oR3RrTWVudUl0ZW0qIGl0ZW0pCi0gICAgOiBtX3BsYXRmb3JtRGVzY3JpcHRpb24oKQor
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0
aW9uIGl0ZW0pCisgICAgOiBtX3BsYXRmb3JtRGVzY3JpcHRpb24oR1RLX01FTlVfSVRFTShnX29i
amVjdF9yZWYoaXRlbSkpKQogewotICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVfSVRFTShp
dGVtKSkKLSAgICAgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSBTZXBhcmF0b3JUeXBl
OwotICAgIGVsc2UgaWYgKGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUoaXRlbSkpCi0gICAgICAg
IG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7Ci0gICAgZWxzZSBpZiAo
R1RLX0lTX0NIRUNLX01FTlVfSVRFTShpdGVtKSkgewotICAgICAgICBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24udHlwZSA9IENoZWNrYWJsZUFjdGlvblR5cGU7Ci0gICAgICAgIG1fcGxhdGZvcm1EZXNj
cmlwdGlvbi5jaGVja2VkID0gZ3RrX2NoZWNrX21lbnVfaXRlbV9nZXRfYWN0aXZlKEdUS19DSEVD
S19NRU5VX0lURU0oaXRlbSkpOwotICAgIH0gZWxzZQotICAgICAgICBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24udHlwZSA9IEFjdGlvblR5cGU7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE2LCAw
KQotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IFN0cmluZzo6ZnJvbVVURjgoZ3Rr
X21lbnVfaXRlbV9nZXRfbGFiZWwoR1RLX01FTlVfSVRFTShpdGVtKSkpOwotI2Vsc2UKLSAgICBH
dGtXaWRnZXQqIGxhYmVsID0gZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihpdGVtKSk7Ci0gICAg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gU3RyaW5nOjpmcm9tVVRGOChndGtfbGFiZWxf
Z2V0X2xhYmVsKEdUS19MQUJFTChsYWJlbCkpKTsKLSNlbmRpZgotCi0gICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uLmFjdGlvbiA9ICpzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+KGdfb2Jq
ZWN0X2dldF9kYXRhKEdfT0JKRUNUKGl0ZW0pLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTikp
OwotCi0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUgPSBHVEtfTUVOVShndGtfbWVu
dV9pdGVtX2dldF9zdWJtZW51KGl0ZW0pKTsKLSAgICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnN1Yk1lbnUpCi0gICAgICAgIGdfb2JqZWN0X3JlZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3Vi
TWVudSk7CiB9CiAKIENvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51
KikKQEAgLTE0NywxMTQgKzEyNiwxMDkgQEAgQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0
ZW0oQ29udGV4dE1lbnUqKQogCiBDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250
ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgQ29udGV4dE1lbnUqIHN1Yk1lbnUpCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLnR5cGUgPSB0eXBlOwotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb24gPSBh
Y3Rpb247Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0bGU7Ci0KLSAgICBz
ZXRTdWJNZW51KHN1Yk1lbnUpOwotfQorICAgIGlmICh0eXBlID09IFNlcGFyYXRvclR5cGUpIHsK
KyAgICAgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0gR1RLX01FTlVfSVRFTShndGtfc2VwYXJh
dG9yX21lbnVfaXRlbV9uZXcoKSk7CisgICAgICAgIGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNU
KG1fcGxhdGZvcm1EZXNjcmlwdGlvbikpOworICAgICAgICByZXR1cm47CisgICAgfQogCi1Db250
ZXh0TWVudUl0ZW06On5Db250ZXh0TWVudUl0ZW0oKQotewotICAgIGlmIChtX3BsYXRmb3JtRGVz
Y3JpcHRpb24uc3ViTWVudSkKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLnN1Yk1lbnUpOwotfQorICAgIEdPd25QdHI8Y2hhcj5hY3Rpb25OYW1lKGdfc3RyZHVw
X3ByaW50ZigiY29udGV4dC1tZW51LWFjdGlvbi0lZCIsIGFjdGlvbikpOworICAgIEd0a0FjdGlv
biogcGxhdGZvcm1BY3Rpb24gPSAwOwogCi1HdGtNZW51SXRlbSogQ29udGV4dE1lbnVJdGVtOjpj
cmVhdGVOYXRpdmVNZW51SXRlbShjb25zdCBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24mIG1l
bnUpCi17Ci0gICAgR3RrTWVudUl0ZW0qIGl0ZW0gPSAwOwotICAgIGlmIChtZW51LnR5cGUgPT0g
U2VwYXJhdG9yVHlwZSkKLSAgICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX3NlcGFyYXRv
cl9tZW51X2l0ZW1fbmV3KCkpOwotICAgIGVsc2UgewotICAgICAgICBpZiAobWVudS50eXBlID09
IENoZWNrYWJsZUFjdGlvblR5cGUpIHsKLSAgICAgICAgICAgIGl0ZW0gPSBHVEtfTUVOVV9JVEVN
KGd0a19jaGVja19tZW51X2l0ZW1fbmV3X3dpdGhfbW5lbW9uaWMobWVudS50aXRsZS51dGY4KCku
ZGF0YSgpKSk7Ci0gICAgICAgICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUoR1RL
X0NIRUNLX01FTlVfSVRFTShpdGVtKSwgbWVudS5jaGVja2VkKTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGlmIChjb25zdCBnY2hhciogc3RvY2tJRCA9IGd0a1N0b2NrSURGcm9tQ29u
dGV4dE1lbnVBY3Rpb24obWVudS5hY3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgaXRlbSA9IEdU
S19NRU5VX0lURU0oZ3RrX2ltYWdlX21lbnVfaXRlbV9uZXdfd2l0aF9tbmVtb25pYyhtZW51LnRp
dGxlLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgICAgICAgICBHdGtXaWRnZXQqIGltYWdlID0g
Z3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKHN0b2NrSUQsIEdUS19JQ09OX1NJWkVfTUVOVSk7Ci0g
ICAgICAgICAgICAgICAgZ3RrX2ltYWdlX21lbnVfaXRlbV9zZXRfaW1hZ2UoR1RLX0lNQUdFX01F
TlVfSVRFTShpdGVtKSwgaW1hZ2UpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAg
ICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX21lbnVfaXRlbV9uZXdfd2l0aF9tbmVtb25pYyht
ZW51LnRpdGxlLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgfQorICAgIGlmICh0eXBlID09IEFj
dGlvblR5cGUpCisgICAgICAgIHBsYXRmb3JtQWN0aW9uID0gZ3RrX2FjdGlvbl9uZXcoYWN0aW9u
TmFtZS5nZXQoKSwgdGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3RrU3RvY2tJREZyb21Db250ZXh0
TWVudUFjdGlvbihhY3Rpb24pKTsKKyAgICBlbHNlIGlmICh0eXBlID09IENoZWNrYWJsZUFjdGlv
blR5cGUpCisgICAgICAgIHBsYXRmb3JtQWN0aW9uID0gR1RLX0FDVElPTihndGtfdG9nZ2xlX2Fj
dGlvbl9uZXcoYWN0aW9uTmFtZS5nZXQoKSwgdGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3RrU3Rv
Y2tJREZyb21Db250ZXh0TWVudUFjdGlvbihhY3Rpb24pKSk7CiAKLSAgICAgICAgQ29udGV4dE1l
bnVBY3Rpb24qIG1lbnVBY3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+KG1h
bGxvYyhzaXplb2YoQ29udGV4dE1lbnVBY3Rpb24qKSkpOwotICAgICAgICAqbWVudUFjdGlvbiA9
IG1lbnUuYWN0aW9uOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChpdGVtKSwg
V0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT04sIG1lbnVBY3Rpb24pOworICAgIG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbiA9IEdUS19NRU5VX0lURU0oZ3RrX2FjdGlvbl9jcmVhdGVfbWVudV9pdGVtKHBs
YXRmb3JtQWN0aW9uKSk7CisgICAgZ19vYmplY3RfdW5yZWYocGxhdGZvcm1BY3Rpb24pOworICAg
IGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNjcmlwdGlvbikpOwogCi0g
ICAgICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZShHVEtfV0lER0VUKGl0ZW0pLCBtZW51LmVu
YWJsZWQpOworICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNjcmlw
dGlvbiksIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OLCBHSU5UX1RPX1BPSU5URVIoYWN0aW9u
KSk7CiAKLSAgICAgICAgaWYgKG1lbnUuc3ViTWVudSkKLSAgICAgICAgICAgIGd0a19tZW51X2l0
ZW1fc2V0X3N1Ym1lbnUoaXRlbSwgR1RLX1dJREdFVChtZW51LnN1Yk1lbnUpKTsKLSAgICB9Cisg
ICAgaWYgKHN1Yk1lbnUpCisgICAgICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7Cit9CiAKLSAgICBy
ZXR1cm4gaXRlbTsKK0NvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgpCit7CisgICAg
aWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlvbikKKyAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wbGF0
Zm9ybURlc2NyaXB0aW9uKTsKIH0KIAogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIENvbnRl
eHRNZW51SXRlbTo6cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKQogewogICAgIFBsYXRmb3Jt
TWVudUl0ZW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiA9IG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsK
LSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24gPSBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24o
KTsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24gPSAwOwogICAgIHJldHVybiBkZXNjcmlwdGlv
bjsKIH0KIAogQ29udGV4dE1lbnVJdGVtVHlwZSBDb250ZXh0TWVudUl0ZW06OnR5cGUoKSBjb25z
dAogewotICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZTsKKyAgICBpZiAoR1RL
X0lTX1NFUEFSQVRPUl9NRU5VX0lURU0obV9wbGF0Zm9ybURlc2NyaXB0aW9uKSkKKyAgICAgICAg
cmV0dXJuIFNlcGFyYXRvclR5cGU7CisgICAgaWYgKEdUS19JU19DSEVDS19NRU5VX0lURU0obV9w
bGF0Zm9ybURlc2NyaXB0aW9uKSkKKyAgICAgICAgcmV0dXJuIENoZWNrYWJsZUFjdGlvblR5cGU7
CisgICAgaWYgKGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUobV9wbGF0Zm9ybURlc2NyaXB0aW9u
KSkKKyAgICAgICAgcmV0dXJuIFN1Ym1lbnVUeXBlOworICAgIHJldHVybiBBY3Rpb25UeXBlOwog
fQogCiB2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VHlwZShDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGUpCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOworICAgIGlmICh0
eXBlID09IFNlcGFyYXRvclR5cGUpIHsKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlv
bikKKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmKG1fcGxhdGZvcm1EZXNjcmlwdGlvbik7Cisg
ICAgICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IEdUS19NRU5VX0lURU0oZ3RrX3NlcGFyYXRv
cl9tZW51X2l0ZW1fbmV3KCkpOworICAgIH0KIH0KIAogQ29udGV4dE1lbnVBY3Rpb24gQ29udGV4
dE1lbnVJdGVtOjphY3Rpb24oKSBjb25zdAogewotICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24uYWN0aW9uOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbj4o
R1BPSU5URVJfVE9fSU5UKGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNj
cmlwdGlvbiksIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OKSkpOwogfQogCiB2b2lkIENvbnRl
eHRNZW51SXRlbTo6c2V0QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKIHsKLSAgICBt
X3BsYXRmb3JtRGVzY3JpcHRpb24uYWN0aW9uID0gYWN0aW9uOworICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNjcmlwdGlvbiksIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OLCBHSU5UX1RPX1BPSU5URVIoYWN0aW9uKSk7CiB9CiAKIFN0cmluZyBDb250ZXh0TWVu
dUl0ZW06OnRpdGxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnRpdGxlOworICAgIEd0a0FjdGlvbiogYWN0aW9uID0gZ3RrX2FjdGl2YXRhYmxlX2dldF9yZWxh
dGVkX2FjdGlvbihHVEtfQUNUSVZBVEFCTEUobV9wbGF0Zm9ybURlc2NyaXB0aW9uKSk7CisgICAg
cmV0dXJuIGFjdGlvbiA/IFN0cmluZyhndGtfYWN0aW9uX2dldF9sYWJlbChhY3Rpb24pKSA6IFN0
cmluZygpOwogfQogCiB2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VGl0bGUoY29uc3QgU3RyaW5n
JiB0aXRsZSkKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udGl0bGUgPSB0aXRsZTsKKyAg
ICBHdGtBY3Rpb24qIGFjdGlvbiA9IGd0a19hY3RpdmF0YWJsZV9nZXRfcmVsYXRlZF9hY3Rpb24o
R1RLX0FDVElWQVRBQkxFKG1fcGxhdGZvcm1EZXNjcmlwdGlvbikpOworICAgIGlmIChhY3Rpb24p
CisgICAgICAgIGd0a19hY3Rpb25fc2V0X2xhYmVsKGFjdGlvbiwgdGl0bGUudXRmOCgpLmRhdGEo
KSk7CiB9CiAKIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51SXRlbTo6cGxhdGZv
cm1TdWJNZW51KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1
Yk1lbnU7CisgICAgR3RrV2lkZ2V0KiBzdWJNZW51ID0gZ3RrX21lbnVfaXRlbV9nZXRfc3VibWVu
dShtX3BsYXRmb3JtRGVzY3JpcHRpb24pOworICAgIHJldHVybiBzdWJNZW51ID8gR1RLX01FTlUo
c3ViTWVudSkgOiAwOwogfQogCiB2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudShDb250
ZXh0TWVudSogbWVudSkKIHsKLSAgICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUp
Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51KTsK
LQotICAgIGlmICghbWVudSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLnN1Yk1lbnUgPSBtZW51LT5yZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpOwotICAg
IG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7Ci0KLSAgICBnX29iamVj
dF9yZWZfc2luayhHX09CSkVDVChtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSkpOworICAg
IGd0a19tZW51X2l0ZW1fc2V0X3N1Ym1lbnUobV9wbGF0Zm9ybURlc2NyaXB0aW9uLCBHVEtfV0lE
R0VUKG1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24oKSkpOwogfQogCiB2b2lkIENvbnRleHRNZW51
SXRlbTo6c2V0Q2hlY2tlZChib29sIHNob3VsZENoZWNrKQogewotICAgIG1fcGxhdGZvcm1EZXNj
cmlwdGlvbi5jaGVja2VkID0gc2hvdWxkQ2hlY2s7CisgICAgR3RrQWN0aW9uKiBhY3Rpb24gPSBn
dGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19BQ1RJVkFUQUJMRShtX3BsYXRm
b3JtRGVzY3JpcHRpb24pKTsKKyAgICBpZiAoYWN0aW9uICYmIEdUS19JU19UT0dHTEVfQUNUSU9O
KGFjdGlvbikpCisgICAgICAgIGd0a190b2dnbGVfYWN0aW9uX3NldF9hY3RpdmUoR1RLX1RPR0dM
RV9BQ1RJT04oYWN0aW9uKSwgc2hvdWxkQ2hlY2spOwogfQogCiB2b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0RW5hYmxlZChib29sIHNob3VsZEVuYWJsZSkKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24uZW5hYmxlZCA9IHNob3VsZEVuYWJsZTsKKyAgICBHdGtBY3Rpb24qIGFjdGlvbiA9IGd0
a19hY3RpdmF0YWJsZV9nZXRfcmVsYXRlZF9hY3Rpb24oR1RLX0FDVElWQVRBQkxFKG1fcGxhdGZv
cm1EZXNjcmlwdGlvbikpOworICAgIGlmIChhY3Rpb24pCisgICAgICAgIGd0a19hY3Rpb25fc2V0
X3NlbnNpdGl2ZShhY3Rpb24sIHNob3VsZEVuYWJsZSk7CiB9CiAKIH0K
</data>
<flag name="review"
          id="64638"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74218</attachid>
            <date>2010-11-18 02:10:46 -0800</date>
            <delta_ts>2010-11-19 05:44:59 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>simplify-context-menu2.diff</filename>
            <type>text/plain</type>
            <size>12988</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA2NzM3ODYyLi5jYjE5NDc0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTAtMTEtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IFNpbXBsaWZ5IGNvbnRleHQtbWVudSBoYW5kbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTY1OAorCisgICAgICAgICogd3RmL1BsYXRm
b3JtUmVmUHRyLmg6CisKIDIwMTAtMTEtMTcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MjE2MC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTgzMGE1Yy4uN2IxMDQzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMS0xOCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2ltcGxpZnkgY29udGV4dC1tZW51IGhhbmRs
aW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ5NjU4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Db250ZXh0TWVu
dUl0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0
TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp+Q29udGV4dE1l
bnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBsYXRm
b3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VGl0
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQpOgorCiAyMDEwLTExLTE2ICBBZGFtIFJv
YmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFFUTW92aWVXaW4ncyBzZXR0
aW5ncyBpbnRvIGEgdnNwcm9wcyBmaWxlCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm1SZWZQdHIuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCmlu
ZGV4IDhhYzE2Y2IuLmU0ZjEzMTQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybVJlZlB0ci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCkBA
IC03NCw2ICs3NCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBkZXJlZlBsYXRmb3JtUHRyKHB0
cik7CiAgICAgfQogCisgICAgVCogbGVha1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgorICAgIHsK
KyAgICAgICAgVCogcHRyID0gbV9wdHI7CisgICAgICAgIG1fcHRyID0gMDsKKyAgICAgICAgcmV0
dXJuIHB0cjsKKyAgICB9CisKICAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGlj
aCBhcmUgb25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KICAg
ICBQbGF0Zm9ybVJlZlB0cihIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRyKGhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGU3MDI5MjEuLmUwYTAwOGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBOU01lbnVJdGVt
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBzdHJ1Y3QgdGFnTUVOVUlURU1JTkZPVyog
TFBNRU5VSVRFTUlORk87CiAjZWxpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8R1JlZlB0ci5o
PgogdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwogI2VsaWYgUExBVEZP
Uk0oUVQpCiAjaW5jbHVkZSA8UUFjdGlvbj4KQEAgLTE4NSwyMiArMTg2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIGVuYWJsZWQ7CiAgICAgfTsKICNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICBzdHJ1Y3QgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIHsKLSAgICAgICAg
UGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCkKLSAgICAgICAgICAgIDogdHlwZShBY3Rpb25U
eXBlKQotICAgICAgICAgICAgLCBhY3Rpb24oQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCi0g
ICAgICAgICAgICAsIHN1Yk1lbnUoMCkKLSAgICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKLSAg
ICAgICAgICAgICwgZW5hYmxlZCh0cnVlKQotICAgICAgICB7fQotCi0gICAgICAgIENvbnRleHRN
ZW51SXRlbVR5cGUgdHlwZTsKLSAgICAgICAgQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uOwotICAg
ICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAgIEd0a01lbnUqIHN1Yk1lbnU7Ci0gICAgICAgIGJv
b2wgY2hlY2tlZDsKLSAgICAgICAgYm9vbCBlbmFibGVkOwotICAgIH07CisgICAgdHlwZWRlZiBH
dGtNZW51SXRlbSogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uOwogI2VsaWYgUExBVEZPUk0o
V1gpCiAgICAgc3RydWN0IFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiB7CiAgICAgICAgIFBs
YXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigpCkBAIC0yNjAsOSArMjQ2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBl
LCBDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNo
ZWNrZWQpOwogICAgICAgICBDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0
IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBWZWN0b3I8Q29udGV4dE1lbnVJ
dGVtPiYgc3VibWVudUl0ZW1zKTsKLSNpZiBQTEFURk9STShHVEspCi0gICAgICAgIENvbnRleHRN
ZW51SXRlbShHdGtNZW51SXRlbSopOwotI2VuZGlmCisKICAgICAgICAgfkNvbnRleHRNZW51SXRl
bSgpOwogCiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiByZWxlYXNlUGxhdGZv
cm1EZXNjcmlwdGlvbigpOwpAQCAtMjg3LDEzICsyNzEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIGVuYWJsZWQoKSBjb25zdDsKIAogICAgICAgICAvLyBGSVhNRTogRG8g
d2UgbmVlZCBhIGtleWJvYXJkIGFjY2VsZXJhdG9yIGhlcmU/Ci0jaWYgUExBVEZPUk0oR1RLKQot
ICAgICAgICBzdGF0aWMgR3RrTWVudUl0ZW0qIGNyZWF0ZU5hdGl2ZU1lbnVJdGVtKGNvbnN0IFBs
YXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiYpOwotI2VuZGlmCiAKICAgICBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKE1BQykKICAgICAgICAgUmV0YWluUHRyPE5TTWVudUl0ZW0+IG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8
R3RrTWVudUl0ZW0+IG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKICNlbHNlCiAgICAgICAgIFBsYXRm
b3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcAppbmRleCAyMTBjZmE2Li4zZDI3NGYy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUd0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIHZvaWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiBpdGVtKQog
ICAgIGNoZWNrT3JFbmFibGVJZk5lZWRlZChpdGVtKTsKIAogICAgIENvbnRleHRNZW51SXRlbVR5
cGUgdHlwZSA9IGl0ZW0udHlwZSgpOwotICAgIEd0a01lbnVJdGVtKiBwbGF0Zm9ybUl0ZW0gPSBD
b250ZXh0TWVudUl0ZW06OmNyZWF0ZU5hdGl2ZU1lbnVJdGVtKGl0ZW0ucmVsZWFzZVBsYXRmb3Jt
RGVzY3JpcHRpb24oKSk7CisgICAgR3RrTWVudUl0ZW0qIHBsYXRmb3JtSXRlbSA9IGl0ZW0ucmVs
ZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsKICAgICBBU1NFUlQocGxhdGZvcm1JdGVtKTsKIAog
ICAgIGlmICh0eXBlID09IEFjdGlvblR5cGUgfHwgdHlwZSA9PSBDaGVja2FibGVBY3Rpb25UeXBl
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKaW5kZXggNjhk
MGE5YS4uNTRjMmZjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1l
bnVJdGVtR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1H
dGsuY3BwCkBAIC0xMTQsMzAgKzExNCw5IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9ja0lE
RnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9uJiBhY3RpCiB9CiAK
IC8vIEV4dHJhY3QgdGhlIEFjdGlvblR5cGUgZnJvbSB0aGUgbWVudSBpdGVtCi1Db250ZXh0TWVu
dUl0ZW06OkNvbnRleHRNZW51SXRlbShHdGtNZW51SXRlbSogaXRlbSkKLSAgICA6IG1fcGxhdGZv
cm1EZXNjcmlwdGlvbigpCitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShQbGF0Zm9y
bU1lbnVJdGVtRGVzY3JpcHRpb24gaXRlbSkKKyAgICA6IG1fcGxhdGZvcm1EZXNjcmlwdGlvbihp
dGVtKQogewotICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVfSVRFTShpdGVtKSkKLSAgICAg
ICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSBTZXBhcmF0b3JUeXBlOwotICAgIGVsc2Ug
aWYgKGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUoaXRlbSkpCi0gICAgICAgIG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7Ci0gICAgZWxzZSBpZiAoR1RLX0lTX0NIRUNL
X01FTlVfSVRFTShpdGVtKSkgewotICAgICAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9
IENoZWNrYWJsZUFjdGlvblR5cGU7Ci0gICAgICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5jaGVj
a2VkID0gZ3RrX2NoZWNrX21lbnVfaXRlbV9nZXRfYWN0aXZlKEdUS19DSEVDS19NRU5VX0lURU0o
aXRlbSkpOwotICAgIH0gZWxzZQotICAgICAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9
IEFjdGlvblR5cGU7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE2LCAwKQotICAgIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IFN0cmluZzo6ZnJvbVVURjgoZ3RrX21lbnVfaXRlbV9n
ZXRfbGFiZWwoR1RLX01FTlVfSVRFTShpdGVtKSkpOwotI2Vsc2UKLSAgICBHdGtXaWRnZXQqIGxh
YmVsID0gZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihpdGVtKSk7Ci0gICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uLnRpdGxlID0gU3RyaW5nOjpmcm9tVVRGOChndGtfbGFiZWxfZ2V0X2xhYmVsKEdU
S19MQUJFTChsYWJlbCkpKTsKLSNlbmRpZgotCi0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFj
dGlvbiA9ICpzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+KGdfb2JqZWN0X2dldF9kYXRh
KEdfT0JKRUNUKGl0ZW0pLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTikpOwotCi0gICAgbV9w
bGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUgPSBHVEtfTUVOVShndGtfbWVudV9pdGVtX2dldF9z
dWJtZW51KGl0ZW0pKTsKLSAgICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpCi0g
ICAgICAgIGdfb2JqZWN0X3JlZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSk7CiB9CiAK
IENvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KikKQEAgLTE0Nywx
MTQgKzEyNiwxMDAgQEAgQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1l
bnUqKQogCiBDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1U
eXBlIHR5cGUsIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Q29udGV4dE1lbnUqIHN1Yk1lbnUpCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUg
PSB0eXBlOwotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb24gPSBhY3Rpb247Ci0gICAg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0bGU7Ci0KLSAgICBzZXRTdWJNZW51KHN1
Yk1lbnUpOwotfQorICAgIGlmICh0eXBlID09IFNlcGFyYXRvclR5cGUpIHsKKyAgICAgICAgbV9w
bGF0Zm9ybURlc2NyaXB0aW9uID0gR1RLX01FTlVfSVRFTShndGtfc2VwYXJhdG9yX21lbnVfaXRl
bV9uZXcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLUNvbnRleHRNZW51SXRlbTo6fkNv
bnRleHRNZW51SXRlbSgpCi17Ci0gICAgaWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51
KQotICAgICAgICBnX29iamVjdF91bnJlZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSk7
Ci19CisgICAgR093blB0cjxjaGFyPiBhY3Rpb25OYW1lKGdfc3RyZHVwX3ByaW50ZigiY29udGV4
dC1tZW51LWFjdGlvbi0lZCIsIGFjdGlvbikpOworICAgIEd0a0FjdGlvbiogcGxhdGZvcm1BY3Rp
b24gPSAwOwogCi1HdGtNZW51SXRlbSogQ29udGV4dE1lbnVJdGVtOjpjcmVhdGVOYXRpdmVNZW51
SXRlbShjb25zdCBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24mIG1lbnUpCi17Ci0gICAgR3Rr
TWVudUl0ZW0qIGl0ZW0gPSAwOwotICAgIGlmIChtZW51LnR5cGUgPT0gU2VwYXJhdG9yVHlwZSkK
LSAgICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1fbmV3
KCkpOwotICAgIGVsc2UgewotICAgICAgICBpZiAobWVudS50eXBlID09IENoZWNrYWJsZUFjdGlv
blR5cGUpIHsKLSAgICAgICAgICAgIGl0ZW0gPSBHVEtfTUVOVV9JVEVNKGd0a19jaGVja19tZW51
X2l0ZW1fbmV3X3dpdGhfbW5lbW9uaWMobWVudS50aXRsZS51dGY4KCkuZGF0YSgpKSk7Ci0gICAg
ICAgICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUoR1RLX0NIRUNLX01FTlVfSVRF
TShpdGVtKSwgbWVudS5jaGVja2VkKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlm
IChjb25zdCBnY2hhciogc3RvY2tJRCA9IGd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24o
bWVudS5hY3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3Rr
X2ltYWdlX21lbnVfaXRlbV9uZXdfd2l0aF9tbmVtb25pYyhtZW51LnRpdGxlLnV0ZjgoKS5kYXRh
KCkpKTsKLSAgICAgICAgICAgICAgICBHdGtXaWRnZXQqIGltYWdlID0gZ3RrX2ltYWdlX25ld19m
cm9tX3N0b2NrKHN0b2NrSUQsIEdUS19JQ09OX1NJWkVfTUVOVSk7Ci0gICAgICAgICAgICAgICAg
Z3RrX2ltYWdlX21lbnVfaXRlbV9zZXRfaW1hZ2UoR1RLX0lNQUdFX01FTlVfSVRFTShpdGVtKSwg
aW1hZ2UpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgaXRlbSA9IEdUS19N
RU5VX0lURU0oZ3RrX21lbnVfaXRlbV9uZXdfd2l0aF9tbmVtb25pYyhtZW51LnRpdGxlLnV0Zjgo
KS5kYXRhKCkpKTsKLSAgICAgICAgfQorICAgIGlmICh0eXBlID09IEFjdGlvblR5cGUpCisgICAg
ICAgIHBsYXRmb3JtQWN0aW9uID0gZ3RrX2FjdGlvbl9uZXcoYWN0aW9uTmFtZS5nZXQoKSwgdGl0
bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3RrU3RvY2tJREZyb21Db250ZXh0TWVudUFjdGlvbihhY3Rp
b24pKTsKKyAgICBlbHNlIGlmICh0eXBlID09IENoZWNrYWJsZUFjdGlvblR5cGUpCisgICAgICAg
IHBsYXRmb3JtQWN0aW9uID0gR1RLX0FDVElPTihndGtfdG9nZ2xlX2FjdGlvbl9uZXcoYWN0aW9u
TmFtZS5nZXQoKSwgdGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3RrU3RvY2tJREZyb21Db250ZXh0
TWVudUFjdGlvbihhY3Rpb24pKSk7CiAKLSAgICAgICAgQ29udGV4dE1lbnVBY3Rpb24qIG1lbnVB
Y3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+KG1hbGxvYyhzaXplb2YoQ29u
dGV4dE1lbnVBY3Rpb24qKSkpOwotICAgICAgICAqbWVudUFjdGlvbiA9IG1lbnUuYWN0aW9uOwot
ICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChpdGVtKSwgV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT04sIG1lbnVBY3Rpb24pOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IEdU
S19NRU5VX0lURU0oZ3RrX2FjdGlvbl9jcmVhdGVfbWVudV9pdGVtKHBsYXRmb3JtQWN0aW9uKSk7
CisgICAgZ19vYmplY3RfdW5yZWYocGxhdGZvcm1BY3Rpb24pOwogCi0gICAgICAgIGd0a193aWRn
ZXRfc2V0X3NlbnNpdGl2ZShHVEtfV0lER0VUKGl0ZW0pLCBtZW51LmVuYWJsZWQpOworICAgIGdf
b2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5nZXQoKSksIFdF
QktJVF9DT05URVhUX01FTlVfQUNUSU9OLCBHSU5UX1RPX1BPSU5URVIoYWN0aW9uKSk7CiAKLSAg
ICAgICAgaWYgKG1lbnUuc3ViTWVudSkKLSAgICAgICAgICAgIGd0a19tZW51X2l0ZW1fc2V0X3N1
Ym1lbnUoaXRlbSwgR1RLX1dJREdFVChtZW51LnN1Yk1lbnUpKTsKLSAgICB9CisgICAgaWYgKHN1
Yk1lbnUpCisgICAgICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7Cit9CiAKLSAgICByZXR1cm4gaXRl
bTsKK0NvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgpCit7CiB9CiAKIFBsYXRmb3Jt
TWVudUl0ZW1EZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnJlbGVhc2VQbGF0Zm9ybURlc2Ny
aXB0aW9uKCkKIHsKLSAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24g
PSBtX3BsYXRmb3JtRGVzY3JpcHRpb247Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0gUGxh
dGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCk7Ci0gICAgcmV0dXJuIGRlc2NyaXB0aW9uOworICAg
IHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24ubGVha1JlZigpOwogfQogCiBDb250ZXh0TWVu
dUl0ZW1UeXBlIENvbnRleHRNZW51SXRlbTo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
cGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlOworICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVf
SVRFTShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm4gU2VwYXJh
dG9yVHlwZTsKKyAgICBpZiAoR1RLX0lTX0NIRUNLX01FTlVfSVRFTShtX3BsYXRmb3JtRGVzY3Jp
cHRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm4gQ2hlY2thYmxlQWN0aW9uVHlwZTsKKyAgICBp
ZiAoZ3RrX21lbnVfaXRlbV9nZXRfc3VibWVudShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkp
KQorICAgICAgICByZXR1cm4gU3VibWVudVR5cGU7CisgICAgcmV0dXJuIEFjdGlvblR5cGU7CiB9
CiAKIHZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUeXBlKENvbnRleHRNZW51SXRlbVR5cGUgdHlw
ZSkKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IHR5cGU7CisgICAgaWYgKHR5
cGUgPT0gU2VwYXJhdG9yVHlwZSkKKyAgICAgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0gR1RL
X01FTlVfSVRFTShndGtfc2VwYXJhdG9yX21lbnVfaXRlbV9uZXcoKSk7CiB9CiAKIENvbnRleHRN
ZW51QWN0aW9uIENvbnRleHRNZW51SXRlbTo6YWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q29u
dGV4dE1lbnVBY3Rpb24+KEdQT0lOVEVSX1RPX0lOVChnX29iamVjdF9nZXRfZGF0YShHX09CSkVD
VChtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElP
TikpKTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbihDb250ZXh0TWVudUFj
dGlvbiBhY3Rpb24pCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbiA9IGFjdGlv
bjsKKyAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChtX3BsYXRmb3JtRGVzY3JpcHRpb24u
Z2V0KCkpLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTiwgR0lOVF9UT19QT0lOVEVSKGFjdGlv
bikpOwogfQogCiBTdHJpbmcgQ29udGV4dE1lbnVJdGVtOjp0aXRsZSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZTsKKyAgICBHdGtBY3Rpb24qIGFjdGlv
biA9IGd0a19hY3RpdmF0YWJsZV9nZXRfcmVsYXRlZF9hY3Rpb24oR1RLX0FDVElWQVRBQkxFKG1f
cGxhdGZvcm1EZXNjcmlwdGlvbi5nZXQoKSkpOworICAgIHJldHVybiBhY3Rpb24gPyBTdHJpbmco
Z3RrX2FjdGlvbl9nZXRfbGFiZWwoYWN0aW9uKSkgOiBTdHJpbmcoKTsKIH0KIAogdm9pZCBDb250
ZXh0TWVudUl0ZW06OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7Ci0gICAgbV9wbGF0
Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0bGU7CisgICAgR3RrQWN0aW9uKiBhY3Rpb24gPSBn
dGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19BQ1RJVkFUQUJMRShtX3BsYXRm
b3JtRGVzY3JpcHRpb24uZ2V0KCkpKTsKKyAgICBpZiAoYWN0aW9uKQorICAgICAgICBndGtfYWN0
aW9uX3NldF9sYWJlbChhY3Rpb24sIHRpdGxlLnV0ZjgoKS5kYXRhKCkpOwogfQogCiBQbGF0Zm9y
bU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnBsYXRmb3JtU3ViTWVudSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51OworICAgIEd0a1dp
ZGdldCogc3ViTWVudSA9IGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUobV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gc3ViTWVudSA/IEdUS19NRU5VKHN1Yk1lbnUpIDog
MDsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFN1Yk1lbnUoQ29udGV4dE1lbnUqIG1l
bnUpCiB7Ci0gICAgaWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51KQotICAgICAgICBn
X29iamVjdF91bnJlZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSk7Ci0KLSAgICBpZiAo
IW1lbnUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJN
ZW51ID0gbWVudS0+cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsKLSAgICBtX3BsYXRmb3Jt
RGVzY3JpcHRpb24udHlwZSA9IFN1Ym1lbnVUeXBlOwotCi0gICAgZ19vYmplY3RfcmVmX3Npbmso
R19PQkpFQ1QobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpKTsKKyAgICBndGtfbWVudV9p
dGVtX3NldF9zdWJtZW51KG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5nZXQoKSwgR1RLX1dJREdFVCht
ZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCkpKTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06
OnNldENoZWNrZWQoYm9vbCBzaG91bGRDaGVjaykKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRp
b24uY2hlY2tlZCA9IHNob3VsZENoZWNrOworICAgIEd0a0FjdGlvbiogYWN0aW9uID0gZ3RrX2Fj
dGl2YXRhYmxlX2dldF9yZWxhdGVkX2FjdGlvbihHVEtfQUNUSVZBVEFCTEUobV9wbGF0Zm9ybURl
c2NyaXB0aW9uLmdldCgpKSk7CisgICAgaWYgKGFjdGlvbiAmJiBHVEtfSVNfVE9HR0xFX0FDVElP
TihhY3Rpb24pKQorICAgICAgICBndGtfdG9nZ2xlX2FjdGlvbl9zZXRfYWN0aXZlKEdUS19UT0dH
TEVfQUNUSU9OKGFjdGlvbiksIHNob3VsZENoZWNrKTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0
ZW06OnNldEVuYWJsZWQoYm9vbCBzaG91bGRFbmFibGUpCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLmVuYWJsZWQgPSBzaG91bGRFbmFibGU7CisgICAgR3RrQWN0aW9uKiBhY3Rpb24gPSBn
dGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19BQ1RJVkFUQUJMRShtX3BsYXRm
b3JtRGVzY3JpcHRpb24uZ2V0KCkpKTsKKyAgICBpZiAoYWN0aW9uKQorICAgICAgICBndGtfYWN0
aW9uX3NldF9zZW5zaXRpdmUoYWN0aW9uLCBzaG91bGRFbmFibGUpOwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74361</attachid>
            <date>2010-11-19 00:16:40 -0800</date>
            <delta_ts>2010-12-10 22:28:35 -0800</delta_ts>
            <desc>New patch to fix the build issues</desc>
            <filename>simplify-cm3.diff</filename>
            <type>text/plain</type>
            <size>13348</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA2NzM3ODYyLi44Nzg2ZmVmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTAtMTEtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IFNpbXBsaWZ5IGNvbnRleHQtbWVudSBoYW5kbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTY1OAorCisgICAgICAgICogd3RmL1BsYXRm
b3JtUmVmUHRyLmg6CisKIDIwMTAtMTEtMTcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MjE2MC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTgzMGE1Yy4uNzA3MDk1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMS0xOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2ltcGxpZnkgY29udGV4dC1tZW51IGhhbmRs
aW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ5NjU4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Db250ZXh0TWVu
dUl0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0
TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp+Q29udGV4dE1l
bnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBsYXRm
b3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VGl0
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQpOgorCiAyMDEwLTExLTE2ICBBZGFtIFJv
YmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFFUTW92aWVXaW4ncyBzZXR0
aW5ncyBpbnRvIGEgdnNwcm9wcyBmaWxlCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm1SZWZQdHIuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCmlu
ZGV4IDhhYzE2Y2IuLmU0ZjEzMTQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybVJlZlB0ci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCkBA
IC03NCw2ICs3NCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBkZXJlZlBsYXRmb3JtUHRyKHB0
cik7CiAgICAgfQogCisgICAgVCogbGVha1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgorICAgIHsK
KyAgICAgICAgVCogcHRyID0gbV9wdHI7CisgICAgICAgIG1fcHRyID0gMDsKKyAgICAgICAgcmV0
dXJuIHB0cjsKKyAgICB9CisKICAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGlj
aCBhcmUgb25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KICAg
ICBQbGF0Zm9ybVJlZlB0cihIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRyKGhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGU3MDI5MjEuLmUwYTAwOGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBOU01lbnVJdGVt
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBzdHJ1Y3QgdGFnTUVOVUlURU1JTkZPVyog
TFBNRU5VSVRFTUlORk87CiAjZWxpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8R1JlZlB0ci5o
PgogdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwogI2VsaWYgUExBVEZP
Uk0oUVQpCiAjaW5jbHVkZSA8UUFjdGlvbj4KQEAgLTE4NSwyMiArMTg2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIGVuYWJsZWQ7CiAgICAgfTsKICNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICBzdHJ1Y3QgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIHsKLSAgICAgICAg
UGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCkKLSAgICAgICAgICAgIDogdHlwZShBY3Rpb25U
eXBlKQotICAgICAgICAgICAgLCBhY3Rpb24oQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCi0g
ICAgICAgICAgICAsIHN1Yk1lbnUoMCkKLSAgICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKLSAg
ICAgICAgICAgICwgZW5hYmxlZCh0cnVlKQotICAgICAgICB7fQotCi0gICAgICAgIENvbnRleHRN
ZW51SXRlbVR5cGUgdHlwZTsKLSAgICAgICAgQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uOwotICAg
ICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAgIEd0a01lbnUqIHN1Yk1lbnU7Ci0gICAgICAgIGJv
b2wgY2hlY2tlZDsKLSAgICAgICAgYm9vbCBlbmFibGVkOwotICAgIH07CisgICAgdHlwZWRlZiBH
dGtNZW51SXRlbSogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uOwogI2VsaWYgUExBVEZPUk0o
V1gpCiAgICAgc3RydWN0IFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiB7CiAgICAgICAgIFBs
YXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigpCkBAIC0yNjAsOSArMjQ2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBl
LCBDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNo
ZWNrZWQpOwogICAgICAgICBDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0
IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBWZWN0b3I8Q29udGV4dE1lbnVJ
dGVtPiYgc3VibWVudUl0ZW1zKTsKLSNpZiBQTEFURk9STShHVEspCi0gICAgICAgIENvbnRleHRN
ZW51SXRlbShHdGtNZW51SXRlbSopOwotI2VuZGlmCisKICAgICAgICAgfkNvbnRleHRNZW51SXRl
bSgpOwogCiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiByZWxlYXNlUGxhdGZv
cm1EZXNjcmlwdGlvbigpOwpAQCAtMjg3LDEzICsyNzEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIGVuYWJsZWQoKSBjb25zdDsKIAogICAgICAgICAvLyBGSVhNRTogRG8g
d2UgbmVlZCBhIGtleWJvYXJkIGFjY2VsZXJhdG9yIGhlcmU/Ci0jaWYgUExBVEZPUk0oR1RLKQot
ICAgICAgICBzdGF0aWMgR3RrTWVudUl0ZW0qIGNyZWF0ZU5hdGl2ZU1lbnVJdGVtKGNvbnN0IFBs
YXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiYpOwotI2VuZGlmCiAKICAgICBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKE1BQykKICAgICAgICAgUmV0YWluUHRyPE5TTWVudUl0ZW0+IG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8
R3RrTWVudUl0ZW0+IG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKICNlbHNlCiAgICAgICAgIFBsYXRm
b3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcAppbmRleCAyMTBjZmE2Li4zZDI3NGYy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUd0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIHZvaWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiBpdGVtKQog
ICAgIGNoZWNrT3JFbmFibGVJZk5lZWRlZChpdGVtKTsKIAogICAgIENvbnRleHRNZW51SXRlbVR5
cGUgdHlwZSA9IGl0ZW0udHlwZSgpOwotICAgIEd0a01lbnVJdGVtKiBwbGF0Zm9ybUl0ZW0gPSBD
b250ZXh0TWVudUl0ZW06OmNyZWF0ZU5hdGl2ZU1lbnVJdGVtKGl0ZW0ucmVsZWFzZVBsYXRmb3Jt
RGVzY3JpcHRpb24oKSk7CisgICAgR3RrTWVudUl0ZW0qIHBsYXRmb3JtSXRlbSA9IGl0ZW0ucmVs
ZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsKICAgICBBU1NFUlQocGxhdGZvcm1JdGVtKTsKIAog
ICAgIGlmICh0eXBlID09IEFjdGlvblR5cGUgfHwgdHlwZSA9PSBDaGVja2FibGVBY3Rpb25UeXBl
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKaW5kZXggNjhk
MGE5YS4uZDA1YjcwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1l
bnVJdGVtR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1H
dGsuY3BwCkBAIC0xOCwxMiArMTgsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKwogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgot
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRlICJHT3duUHRyLmgiCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
ICJ3ZWJraXQtY29udGV4dC1tZW51IgogCkBAIC0xMTQsMzAgKzExNiw5IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51
QWN0aW9uJiBhY3RpCiB9CiAKIC8vIEV4dHJhY3QgdGhlIEFjdGlvblR5cGUgZnJvbSB0aGUgbWVu
dSBpdGVtCi1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShHdGtNZW51SXRlbSogaXRl
bSkKLSAgICA6IG1fcGxhdGZvcm1EZXNjcmlwdGlvbigpCitDb250ZXh0TWVudUl0ZW06OkNvbnRl
eHRNZW51SXRlbShQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gaXRlbSkKKyAgICA6IG1fcGxh
dGZvcm1EZXNjcmlwdGlvbihpdGVtKQogewotICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVf
SVRFTShpdGVtKSkKLSAgICAgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSBTZXBhcmF0
b3JUeXBlOwotICAgIGVsc2UgaWYgKGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUoaXRlbSkpCi0g
ICAgICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7Ci0gICAgZWxz
ZSBpZiAoR1RLX0lTX0NIRUNLX01FTlVfSVRFTShpdGVtKSkgewotICAgICAgICBtX3BsYXRmb3Jt
RGVzY3JpcHRpb24udHlwZSA9IENoZWNrYWJsZUFjdGlvblR5cGU7Ci0gICAgICAgIG1fcGxhdGZv
cm1EZXNjcmlwdGlvbi5jaGVja2VkID0gZ3RrX2NoZWNrX21lbnVfaXRlbV9nZXRfYWN0aXZlKEdU
S19DSEVDS19NRU5VX0lURU0oaXRlbSkpOwotICAgIH0gZWxzZQotICAgICAgICBtX3BsYXRmb3Jt
RGVzY3JpcHRpb24udHlwZSA9IEFjdGlvblR5cGU7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDIs
IDE2LCAwKQotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IFN0cmluZzo6ZnJvbVVU
RjgoZ3RrX21lbnVfaXRlbV9nZXRfbGFiZWwoR1RLX01FTlVfSVRFTShpdGVtKSkpOwotI2Vsc2UK
LSAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihpdGVtKSk7
Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gU3RyaW5nOjpmcm9tVVRGOChndGtf
bGFiZWxfZ2V0X2xhYmVsKEdUS19MQUJFTChsYWJlbCkpKTsKLSNlbmRpZgotCi0gICAgbV9wbGF0
Zm9ybURlc2NyaXB0aW9uLmFjdGlvbiA9ICpzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+
KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGl0ZW0pLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTikpOwotCi0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUgPSBHVEtfTUVOVShn
dGtfbWVudV9pdGVtX2dldF9zdWJtZW51KGl0ZW0pKTsKLSAgICBpZiAobV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLnN1Yk1lbnUpCi0gICAgICAgIGdfb2JqZWN0X3JlZihtX3BsYXRmb3JtRGVzY3JpcHRp
b24uc3ViTWVudSk7CiB9CiAKIENvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRl
eHRNZW51KikKQEAgLTE0NywxMTQgKzEyOCwxMDAgQEAgQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0
TWVudUl0ZW0oQ29udGV4dE1lbnUqKQogCiBDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRl
bShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgQ29udGV4dE1lbnUqIHN1Yk1lbnUpCiB7Ci0gICAgbV9wbGF0Zm9y
bURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOwotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rp
b24gPSBhY3Rpb247Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0bGU7Cisg
ICAgaWYgKHR5cGUgPT0gU2VwYXJhdG9yVHlwZSkgeworICAgICAgICBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24gPSBHVEtfTUVOVV9JVEVNKGd0a19zZXBhcmF0b3JfbWVudV9pdGVtX25ldygpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7Ci19CisgICAg
R093blB0cjxjaGFyPiBhY3Rpb25OYW1lKGdfc3RyZHVwX3ByaW50ZigiY29udGV4dC1tZW51LWFj
dGlvbi0lZCIsIGFjdGlvbikpOworICAgIEd0a0FjdGlvbiogcGxhdGZvcm1BY3Rpb24gPSAwOwog
Ci1Db250ZXh0TWVudUl0ZW06On5Db250ZXh0TWVudUl0ZW0oKQotewotICAgIGlmIChtX3BsYXRm
b3JtRGVzY3JpcHRpb24uc3ViTWVudSkKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wbGF0Zm9y
bURlc2NyaXB0aW9uLnN1Yk1lbnUpOwotfQotCi1HdGtNZW51SXRlbSogQ29udGV4dE1lbnVJdGVt
OjpjcmVhdGVOYXRpdmVNZW51SXRlbShjb25zdCBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24m
IG1lbnUpCi17Ci0gICAgR3RrTWVudUl0ZW0qIGl0ZW0gPSAwOwotICAgIGlmIChtZW51LnR5cGUg
PT0gU2VwYXJhdG9yVHlwZSkKLSAgICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX3NlcGFy
YXRvcl9tZW51X2l0ZW1fbmV3KCkpOwotICAgIGVsc2UgewotICAgICAgICBpZiAobWVudS50eXBl
ID09IENoZWNrYWJsZUFjdGlvblR5cGUpIHsKLSAgICAgICAgICAgIGl0ZW0gPSBHVEtfTUVOVV9J
VEVNKGd0a19jaGVja19tZW51X2l0ZW1fbmV3X3dpdGhfbW5lbW9uaWMobWVudS50aXRsZS51dGY4
KCkuZGF0YSgpKSk7Ci0gICAgICAgICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9hY3RpdmUo
R1RLX0NIRUNLX01FTlVfSVRFTShpdGVtKSwgbWVudS5jaGVja2VkKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGlmIChjb25zdCBnY2hhciogc3RvY2tJRCA9IGd0a1N0b2NrSURGcm9t
Q29udGV4dE1lbnVBY3Rpb24obWVudS5hY3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgaXRlbSA9
IEdUS19NRU5VX0lURU0oZ3RrX2ltYWdlX21lbnVfaXRlbV9uZXdfd2l0aF9tbmVtb25pYyhtZW51
LnRpdGxlLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgICAgICAgICBHdGtXaWRnZXQqIGltYWdl
ID0gZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKHN0b2NrSUQsIEdUS19JQ09OX1NJWkVfTUVOVSk7
Ci0gICAgICAgICAgICAgICAgZ3RrX2ltYWdlX21lbnVfaXRlbV9zZXRfaW1hZ2UoR1RLX0lNQUdF
X01FTlVfSVRFTShpdGVtKSwgaW1hZ2UpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX21lbnVfaXRlbV9uZXdfd2l0aF9tbmVtb25p
YyhtZW51LnRpdGxlLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgfQorICAgIGlmICh0eXBlID09
IEFjdGlvblR5cGUpCisgICAgICAgIHBsYXRmb3JtQWN0aW9uID0gZ3RrX2FjdGlvbl9uZXcoYWN0
aW9uTmFtZS5nZXQoKSwgdGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3RrU3RvY2tJREZyb21Db250
ZXh0TWVudUFjdGlvbihhY3Rpb24pKTsKKyAgICBlbHNlIGlmICh0eXBlID09IENoZWNrYWJsZUFj
dGlvblR5cGUpCisgICAgICAgIHBsYXRmb3JtQWN0aW9uID0gR1RLX0FDVElPTihndGtfdG9nZ2xl
X2FjdGlvbl9uZXcoYWN0aW9uTmFtZS5nZXQoKSwgdGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3Rr
U3RvY2tJREZyb21Db250ZXh0TWVudUFjdGlvbihhY3Rpb24pKSk7CiAKLSAgICAgICAgQ29udGV4
dE1lbnVBY3Rpb24qIG1lbnVBY3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+
KG1hbGxvYyhzaXplb2YoQ29udGV4dE1lbnVBY3Rpb24qKSkpOwotICAgICAgICAqbWVudUFjdGlv
biA9IG1lbnUuYWN0aW9uOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChpdGVt
KSwgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT04sIG1lbnVBY3Rpb24pOworICAgIG1fcGxhdGZv
cm1EZXNjcmlwdGlvbiA9IEdUS19NRU5VX0lURU0oZ3RrX2FjdGlvbl9jcmVhdGVfbWVudV9pdGVt
KHBsYXRmb3JtQWN0aW9uKSk7CisgICAgZ19vYmplY3RfdW5yZWYocGxhdGZvcm1BY3Rpb24pOwog
Ci0gICAgICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZShHVEtfV0lER0VUKGl0ZW0pLCBtZW51
LmVuYWJsZWQpOworICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNj
cmlwdGlvbi5nZXQoKSksIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OLCBHSU5UX1RPX1BPSU5U
RVIoYWN0aW9uKSk7CiAKLSAgICAgICAgaWYgKG1lbnUuc3ViTWVudSkKLSAgICAgICAgICAgIGd0
a19tZW51X2l0ZW1fc2V0X3N1Ym1lbnUoaXRlbSwgR1RLX1dJREdFVChtZW51LnN1Yk1lbnUpKTsK
LSAgICB9CisgICAgaWYgKHN1Yk1lbnUpCisgICAgICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7Cit9
CiAKLSAgICByZXR1cm4gaXRlbTsKK0NvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgp
Cit7CiB9CiAKIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnJl
bGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkKIHsKLSAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3Jp
cHRpb24gZGVzY3JpcHRpb24gPSBtX3BsYXRmb3JtRGVzY3JpcHRpb247Ci0gICAgbV9wbGF0Zm9y
bURlc2NyaXB0aW9uID0gUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCk7Ci0gICAgcmV0dXJu
IGRlc2NyaXB0aW9uOworICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24ubGVha1JlZigp
OwogfQogCiBDb250ZXh0TWVudUl0ZW1UeXBlIENvbnRleHRNZW51SXRlbTo6dHlwZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlOworICAgIGlmIChHVEtf
SVNfU0VQQVJBVE9SX01FTlVfSVRFTShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKQorICAg
ICAgICByZXR1cm4gU2VwYXJhdG9yVHlwZTsKKyAgICBpZiAoR1RLX0lTX0NIRUNLX01FTlVfSVRF
TShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm4gQ2hlY2thYmxl
QWN0aW9uVHlwZTsKKyAgICBpZiAoZ3RrX21lbnVfaXRlbV9nZXRfc3VibWVudShtX3BsYXRmb3Jt
RGVzY3JpcHRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm4gU3VibWVudVR5cGU7CisgICAgcmV0
dXJuIEFjdGlvblR5cGU7CiB9CiAKIHZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUeXBlKENvbnRl
eHRNZW51SXRlbVR5cGUgdHlwZSkKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9
IHR5cGU7CisgICAgaWYgKHR5cGUgPT0gU2VwYXJhdG9yVHlwZSkKKyAgICAgICAgbV9wbGF0Zm9y
bURlc2NyaXB0aW9uID0gR1RLX01FTlVfSVRFTShndGtfc2VwYXJhdG9yX21lbnVfaXRlbV9uZXco
KSk7CiB9CiAKIENvbnRleHRNZW51QWN0aW9uIENvbnRleHRNZW51SXRlbTo6YWN0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbjsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVBY3Rpb24+KEdQT0lOVEVSX1RPX0lOVChnX29iamVj
dF9nZXRfZGF0YShHX09CSkVDVChtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpLCBXRUJLSVRf
Q09OVEVYVF9NRU5VX0FDVElPTikpKTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEFj
dGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLmFjdGlvbiA9IGFjdGlvbjsKKyAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChtX3Bs
YXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTiwgR0lO
VF9UT19QT0lOVEVSKGFjdGlvbikpOwogfQogCiBTdHJpbmcgQ29udGV4dE1lbnVJdGVtOjp0aXRs
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZTsKKyAg
ICBHdGtBY3Rpb24qIGFjdGlvbiA9IGd0a19hY3RpdmF0YWJsZV9nZXRfcmVsYXRlZF9hY3Rpb24o
R1RLX0FDVElWQVRBQkxFKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5nZXQoKSkpOworICAgIHJldHVy
biBhY3Rpb24gPyBTdHJpbmcoZ3RrX2FjdGlvbl9nZXRfbGFiZWwoYWN0aW9uKSkgOiBTdHJpbmco
KTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0
bGUpCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0bGU7CisgICAgR3Rr
QWN0aW9uKiBhY3Rpb24gPSBndGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19B
Q1RJVkFUQUJMRShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKTsKKyAgICBpZiAoYWN0aW9u
KQorICAgICAgICBndGtfYWN0aW9uX3NldF9sYWJlbChhY3Rpb24sIHRpdGxlLnV0ZjgoKS5kYXRh
KCkpOwogfQogCiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnBsYXRm
b3JtU3ViTWVudSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5z
dWJNZW51OworICAgIEd0a1dpZGdldCogc3ViTWVudSA9IGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1l
bnUobV9wbGF0Zm9ybURlc2NyaXB0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gc3ViTWVudSA/IEdU
S19NRU5VKHN1Yk1lbnUpIDogMDsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFN1Yk1l
bnUoQ29udGV4dE1lbnUqIG1lbnUpCiB7Ci0gICAgaWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5z
dWJNZW51KQotICAgICAgICBnX29iamVjdF91bnJlZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3Vi
TWVudSk7Ci0KLSAgICBpZiAoIW1lbnUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGxhdGZv
cm1EZXNjcmlwdGlvbi5zdWJNZW51ID0gbWVudS0+cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24o
KTsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IFN1Ym1lbnVUeXBlOwotCi0gICAg
Z19vYmplY3RfcmVmX3NpbmsoR19PQkpFQ1QobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUp
KTsKKyAgICBndGtfbWVudV9pdGVtX3NldF9zdWJtZW51KG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5n
ZXQoKSwgR1RLX1dJREdFVChtZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCkpKTsKIH0KIAogdm9p
ZCBDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQoYm9vbCBzaG91bGRDaGVjaykKIHsKLSAgICBt
X3BsYXRmb3JtRGVzY3JpcHRpb24uY2hlY2tlZCA9IHNob3VsZENoZWNrOworICAgIEd0a0FjdGlv
biogYWN0aW9uID0gZ3RrX2FjdGl2YXRhYmxlX2dldF9yZWxhdGVkX2FjdGlvbihHVEtfQUNUSVZB
VEFCTEUobV9wbGF0Zm9ybURlc2NyaXB0aW9uLmdldCgpKSk7CisgICAgaWYgKGFjdGlvbiAmJiBH
VEtfSVNfVE9HR0xFX0FDVElPTihhY3Rpb24pKQorICAgICAgICBndGtfdG9nZ2xlX2FjdGlvbl9z
ZXRfYWN0aXZlKEdUS19UT0dHTEVfQUNUSU9OKGFjdGlvbiksIHNob3VsZENoZWNrKTsKIH0KIAog
dm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQoYm9vbCBzaG91bGRFbmFibGUpCiB7Ci0g
ICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmVuYWJsZWQgPSBzaG91bGRFbmFibGU7CisgICAgR3Rr
QWN0aW9uKiBhY3Rpb24gPSBndGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19B
Q1RJVkFUQUJMRShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKTsKKyAgICBpZiAoYWN0aW9u
KQorICAgICAgICBndGtfYWN0aW9uX3NldF9zZW5zaXRpdmUoYWN0aW9uLCBzaG91bGRFbmFibGUp
OwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76364</attachid>
            <date>2010-12-13 03:00:27 -0800</date>
            <delta_ts>2010-12-14 08:25:36 -0800</delta_ts>
            <desc>New patch rebased to current master</desc>
            <filename>simplify-context-menu3.diff</filename>
            <type>text/plain</type>
            <size>16495</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA2ZWJkMDY0Li5hYjkwZDcyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTAtMTItMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IFNpbXBsaWZ5IGNvbnRleHQtbWVudSBoYW5kbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTY1OAorCisgICAgICAgICogd3RmL1BsYXRm
b3JtUmVmUHRyLmg6IEFkZCBsZWFrUmVmKCkKKwogMjAxMC0xMi0xMCAgTWljaGFlbCBTYWJvZmYg
IDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNs
b3VnaC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYzExNWVhZC4uMTE0NDRkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMi0xMyAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2ltcGxpZnkgY29udGV4dC1tZW51
IGhhbmRsaW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ5NjU4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Db250
ZXh0TWVudUl0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpD
b250ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp+Q29u
dGV4dE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6cmVsZWFz
ZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
Ojp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6
c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1
Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQpOgorCiAyMDEwLTEyLTEyICBK
b24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCmluZGV4IDY3Y2NjOWYuLmZlZjgxMmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTItMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFNp
bXBsaWZ5IGNvbnRleHQtbWVudSBoYW5kbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTY1OAorCisgICAgICAgIFVzZSBndGtfY29udGFp
bmVyX2ZvcmVhY2goKSBzbyB0aGF0IHdlIG9ubHkgaXRlcmF0ZSB0aGUgbGlzdCBvZgorICAgICAg
ICBjaGlsZHJlbiBvbmNlIGFuZCB3ZSBhdm9pZCBjcmVhdGluZy9kZXN0cm95aW5nIHRoZSBsaXN0
LiBJdCBhbHNvCisgICAgICAgIGNvbm5lY3RzIHRoZSBhY3RpdmF0ZSBzaWduYWwgZm9yIHN1Ym1l
bnUgaXRlbXMuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAg
IChjb250ZXh0TWVudUNvbm5lY3RBY3RpdmF0ZSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Zm9yd2FyZF9jb250ZXh0X21lbnVfZXZlbnQpOgorCiAyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWku
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1SZWZQdHIuaCBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCmluZGV4IDhhYzE2Y2IuLmU0ZjEzMTQgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oCkBAIC03NCw2ICs3NCwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBkZXJlZlBsYXRmb3JtUHRyKHB0cik7CiAgICAgfQogCisgICAgVCogbGVh
a1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgorICAgIHsKKyAgICAgICAgVCogcHRyID0gbV9wdHI7
CisgICAgICAgIG1fcHRyID0gMDsKKyAgICAgICAgcmV0dXJuIHB0cjsKKyAgICB9CisKICAgICAv
LyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUgb25seSBjb25zdHJ1Y3RlZCBh
bmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KICAgICBQbGF0Zm9ybVJlZlB0cihIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0K
ICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIg
PT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5o
CmluZGV4IGMxMzAyZWEuLjhmNTI1ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApA
QCAtNDIsNiArNDIsNyBAQCBjbGFzcyBOU01lbnVJdGVtOwogI2VsaWYgUExBVEZPUk0oV0lOKQog
dHlwZWRlZiBzdHJ1Y3QgdGFnTUVOVUlURU1JTkZPVyBNRU5VSVRFTUlORk87CiAjZWxpZiBQTEFU
Rk9STShHVEspCisjaW5jbHVkZSA8R1JlZlB0ci5oPgogdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJ
dGVtIEd0a01lbnVJdGVtOwogI2VsaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UUFjdGlvbj4K
QEAgLTE4MywyMiArMTg0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGVu
YWJsZWQ7CiAgICAgfTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBzdHJ1Y3QgUGxhdGZvcm1N
ZW51SXRlbURlc2NyaXB0aW9uIHsKLSAgICAgICAgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9u
KCkKLSAgICAgICAgICAgIDogdHlwZShBY3Rpb25UeXBlKQotICAgICAgICAgICAgLCBhY3Rpb24o
Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCi0gICAgICAgICAgICAsIHN1Yk1lbnUoMCkKLSAg
ICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKLSAgICAgICAgICAgICwgZW5hYmxlZCh0cnVlKQot
ICAgICAgICB7fQotCi0gICAgICAgIENvbnRleHRNZW51SXRlbVR5cGUgdHlwZTsKLSAgICAgICAg
Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uOwotICAgICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAg
IEd0a01lbnUqIHN1Yk1lbnU7Ci0gICAgICAgIGJvb2wgY2hlY2tlZDsKLSAgICAgICAgYm9vbCBl
bmFibGVkOwotICAgIH07CisgICAgdHlwZWRlZiBHdGtNZW51SXRlbSogUGxhdGZvcm1NZW51SXRl
bURlc2NyaXB0aW9uOwogI2VsaWYgUExBVEZPUk0oV1gpCiAgICAgc3RydWN0IFBsYXRmb3JtTWVu
dUl0ZW1EZXNjcmlwdGlvbiB7CiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigp
CkBAIC0yOTIsMTAgKzI3OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ29udGV4
dE1lbnVJdGVtKENvbnRleHRNZW51KiBzdWJNZW51ID0gMCk7CiAgICAgICAgIENvbnRleHRNZW51
SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29s
IGNoZWNrZWQsIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJtZW51SXRlbXMpOwogCi0jaWYg
UExBVEZPUk0oR1RLKQotICAgICAgICBDb250ZXh0TWVudUl0ZW0oR3RrTWVudUl0ZW0qKTsKLSNl
bmRpZgotCiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiByZWxlYXNlUGxhdGZv
cm1EZXNjcmlwdGlvbigpOwogCiAgICAgICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0OwpAQCAtMzA0
LDEyICsyODYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBsYXRmb3JtTWVudURl
c2NyaXB0aW9uIHBsYXRmb3JtU3ViTWVudSgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldFN1Yk1l
bnUoVmVjdG9yPENvbnRleHRNZW51SXRlbT4mKTsKIAotICAgICAgICAvLyBGSVhNRTogRG8gd2Ug
bmVlZCBhIGtleWJvYXJkIGFjY2VsZXJhdG9yIGhlcmU/Ci0jaWYgUExBVEZPUk0oR1RLKQotICAg
ICAgICBzdGF0aWMgR3RrTWVudUl0ZW0qIGNyZWF0ZU5hdGl2ZU1lbnVJdGVtKGNvbnN0IFBsYXRm
b3JtTWVudUl0ZW1EZXNjcmlwdGlvbiYpOwotI2VuZGlmCiAjZW5kaWYgLy8gVVNFKENST1NTX1BM
QVRGT1JNX0NPTlRFWFRfTUVOVVMpCi0KICAgICBwcml2YXRlOgogI2lmIFVTRShDUk9TU19QTEFU
Rk9STV9DT05URVhUX01FTlVTKQogICAgICAgICBTdHJpbmcgbV90aXRsZTsKQEAgLTMyMSw2ICsy
OTgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZWxzZQogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICAgICAgUmV0YWluUHRyPE5TTWVudUl0ZW0+IG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKKyNlbGlm
IFBMQVRGT1JNKEdUSykKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8R3RrTWVudUl0ZW0+IG1fcGxh
dGZvcm1EZXNjcmlwdGlvbjsKICNlbHNlCiAgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlw
dGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nv
bnRleHRNZW51R3RrLmNwcAppbmRleCAzMjcxNjdlLi40MjM5NTlhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvQ29udGV4dE1lbnVHdGsuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgQ29udGV4dE1l
bnU6OmFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiBpdGVtKQogewogICAgIEFTU0VSVChtX3Bs
YXRmb3JtRGVzY3JpcHRpb24pOwogCi0gICAgR3RrTWVudUl0ZW0qIHBsYXRmb3JtSXRlbSA9IENv
bnRleHRNZW51SXRlbTo6Y3JlYXRlTmF0aXZlTWVudUl0ZW0oaXRlbS5yZWxlYXNlUGxhdGZvcm1E
ZXNjcmlwdGlvbigpKTsKKyAgICBHdGtNZW51SXRlbSogcGxhdGZvcm1JdGVtID0gaXRlbS5yZWxl
YXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpOwogICAgIEFTU0VSVChwbGF0Zm9ybUl0ZW0pOwogICAg
IGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChtX3BsYXRmb3JtRGVzY3JpcHRp
b24pLCBHVEtfV0lER0VUKHBsYXRmb3JtSXRlbSkpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtf
V0lER0VUKHBsYXRmb3JtSXRlbSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
Q29udGV4dE1lbnVJdGVtR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51
SXRlbUd0ay5jcHAKaW5kZXggNjhkMGE5YS4uNGQ3OWYxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCkBAIC0xOCwxMiArMTgsMTQgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKwogI2luY2x1ZGUg
IkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNs
dWRlICJHT3duUHRyLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxn
dGsvZ3RrLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OICJ3ZWJraXQtY29udGV4dC1tZW51IgogCkBAIC0xMTQsMzAg
KzExNiw5IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHRNZW51QWN0
aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9uJiBhY3RpCiB9CiAKIC8vIEV4dHJhY3QgdGhlIEFj
dGlvblR5cGUgZnJvbSB0aGUgbWVudSBpdGVtCi1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51
SXRlbShHdGtNZW51SXRlbSogaXRlbSkKLSAgICA6IG1fcGxhdGZvcm1EZXNjcmlwdGlvbigpCitD
b250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRp
b24gaXRlbSkKKyAgICA6IG1fcGxhdGZvcm1EZXNjcmlwdGlvbihpdGVtKQogewotICAgIGlmIChH
VEtfSVNfU0VQQVJBVE9SX01FTlVfSVRFTShpdGVtKSkKLSAgICAgICAgbV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLnR5cGUgPSBTZXBhcmF0b3JUeXBlOwotICAgIGVsc2UgaWYgKGd0a19tZW51X2l0ZW1f
Z2V0X3N1Ym1lbnUoaXRlbSkpCi0gICAgICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0g
U3VibWVudVR5cGU7Ci0gICAgZWxzZSBpZiAoR1RLX0lTX0NIRUNLX01FTlVfSVRFTShpdGVtKSkg
ewotICAgICAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IENoZWNrYWJsZUFjdGlvblR5
cGU7Ci0gICAgICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5jaGVja2VkID0gZ3RrX2NoZWNrX21l
bnVfaXRlbV9nZXRfYWN0aXZlKEdUS19DSEVDS19NRU5VX0lURU0oaXRlbSkpOwotICAgIH0gZWxz
ZQotICAgICAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IEFjdGlvblR5cGU7Ci0jaWYg
R1RLX0NIRUNLX1ZFUlNJT04gKDIsIDE2LCAwKQotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50
aXRsZSA9IFN0cmluZzo6ZnJvbVVURjgoZ3RrX21lbnVfaXRlbV9nZXRfbGFiZWwoR1RLX01FTlVf
SVRFTShpdGVtKSkpOwotI2Vsc2UKLSAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3RrX2Jpbl9nZXRf
Y2hpbGQoR1RLX0JJTihpdGVtKSk7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0g
U3RyaW5nOjpmcm9tVVRGOChndGtfbGFiZWxfZ2V0X2xhYmVsKEdUS19MQUJFTChsYWJlbCkpKTsK
LSNlbmRpZgotCi0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbiA9ICpzdGF0aWNfY2Fz
dDxDb250ZXh0TWVudUFjdGlvbio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGl0ZW0pLCBX
RUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTikpOwotCi0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnN1Yk1lbnUgPSBHVEtfTUVOVShndGtfbWVudV9pdGVtX2dldF9zdWJtZW51KGl0ZW0pKTsKLSAg
ICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpCi0gICAgICAgIGdfb2JqZWN0X3Jl
ZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSk7CiB9CiAKIENvbnRleHRNZW51SXRlbTo6
Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KikKQEAgLTE0NywxMTQgKzEyOCwxMDAgQEAgQ29u
dGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnUqKQogCiBDb250ZXh0TWVu
dUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRN
ZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29udGV4dE1lbnUqIHN1Yk1l
bnUpCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOwotICAgIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbi5hY3Rpb24gPSBhY3Rpb247Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLnRpdGxlID0gdGl0bGU7CisgICAgaWYgKHR5cGUgPT0gU2VwYXJhdG9yVHlwZSkgeworICAg
ICAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24gPSBHVEtfTUVOVV9JVEVNKGd0a19zZXBhcmF0b3Jf
bWVudV9pdGVtX25ldygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHNldFN1Yk1l
bnUoc3ViTWVudSk7Ci19CisgICAgR093blB0cjxjaGFyPiBhY3Rpb25OYW1lKGdfc3RyZHVwX3By
aW50ZigiY29udGV4dC1tZW51LWFjdGlvbi0lZCIsIGFjdGlvbikpOworICAgIEd0a0FjdGlvbiog
cGxhdGZvcm1BY3Rpb24gPSAwOwogCi1Db250ZXh0TWVudUl0ZW06On5Db250ZXh0TWVudUl0ZW0o
KQotewotICAgIGlmIChtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSkKLSAgICAgICAgZ19v
YmplY3RfdW5yZWYobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpOwotfQotCi1HdGtNZW51
SXRlbSogQ29udGV4dE1lbnVJdGVtOjpjcmVhdGVOYXRpdmVNZW51SXRlbShjb25zdCBQbGF0Zm9y
bU1lbnVJdGVtRGVzY3JpcHRpb24mIG1lbnUpCi17Ci0gICAgR3RrTWVudUl0ZW0qIGl0ZW0gPSAw
OwotICAgIGlmIChtZW51LnR5cGUgPT0gU2VwYXJhdG9yVHlwZSkKLSAgICAgICAgaXRlbSA9IEdU
S19NRU5VX0lURU0oZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1fbmV3KCkpOwotICAgIGVsc2Ugewot
ICAgICAgICBpZiAobWVudS50eXBlID09IENoZWNrYWJsZUFjdGlvblR5cGUpIHsKLSAgICAgICAg
ICAgIGl0ZW0gPSBHVEtfTUVOVV9JVEVNKGd0a19jaGVja19tZW51X2l0ZW1fbmV3X3dpdGhfbW5l
bW9uaWMobWVudS50aXRsZS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgICAgICAgICBndGtfY2hlY2tf
bWVudV9pdGVtX3NldF9hY3RpdmUoR1RLX0NIRUNLX01FTlVfSVRFTShpdGVtKSwgbWVudS5jaGVj
a2VkKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChjb25zdCBnY2hhciogc3Rv
Y2tJRCA9IGd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24obWVudS5hY3Rpb24pKSB7Ci0g
ICAgICAgICAgICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX2ltYWdlX21lbnVfaXRlbV9u
ZXdfd2l0aF9tbmVtb25pYyhtZW51LnRpdGxlLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgICAg
ICAgICBHdGtXaWRnZXQqIGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKHN0b2NrSUQs
IEdUS19JQ09OX1NJWkVfTUVOVSk7Ci0gICAgICAgICAgICAgICAgZ3RrX2ltYWdlX21lbnVfaXRl
bV9zZXRfaW1hZ2UoR1RLX0lNQUdFX01FTlVfSVRFTShpdGVtKSwgaW1hZ2UpOwotICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgaXRlbSA9IEdUS19NRU5VX0lURU0oZ3RrX21lbnVf
aXRlbV9uZXdfd2l0aF9tbmVtb25pYyhtZW51LnRpdGxlLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAg
ICAgfQorICAgIGlmICh0eXBlID09IENoZWNrYWJsZUFjdGlvblR5cGUpCisgICAgICAgIHBsYXRm
b3JtQWN0aW9uID0gR1RLX0FDVElPTihndGtfdG9nZ2xlX2FjdGlvbl9uZXcoYWN0aW9uTmFtZS5n
ZXQoKSwgdGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgZ3RrU3RvY2tJREZyb21Db250ZXh0TWVudUFj
dGlvbihhY3Rpb24pKSk7CisgICAgZWxzZQorICAgICAgICBwbGF0Zm9ybUFjdGlvbiA9IGd0a19h
Y3Rpb25fbmV3KGFjdGlvbk5hbWUuZ2V0KCksIHRpdGxlLnV0ZjgoKS5kYXRhKCksIDAsIGd0a1N0
b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24oYWN0aW9uKSk7CiAKLSAgICAgICAgQ29udGV4dE1l
bnVBY3Rpb24qIG1lbnVBY3Rpb24gPSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbio+KG1h
bGxvYyhzaXplb2YoQ29udGV4dE1lbnVBY3Rpb24qKSkpOwotICAgICAgICAqbWVudUFjdGlvbiA9
IG1lbnUuYWN0aW9uOwotICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChpdGVtKSwg
V0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT04sIG1lbnVBY3Rpb24pOworICAgIG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbiA9IEdUS19NRU5VX0lURU0oZ3RrX2FjdGlvbl9jcmVhdGVfbWVudV9pdGVtKHBs
YXRmb3JtQWN0aW9uKSk7CisgICAgZ19vYmplY3RfdW5yZWYocGxhdGZvcm1BY3Rpb24pOwogCi0g
ICAgICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZShHVEtfV0lER0VUKGl0ZW0pLCBtZW51LmVu
YWJsZWQpOworICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG1fcGxhdGZvcm1EZXNjcmlw
dGlvbi5nZXQoKSksIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OLCBHSU5UX1RPX1BPSU5URVIo
YWN0aW9uKSk7CiAKLSAgICAgICAgaWYgKG1lbnUuc3ViTWVudSkKLSAgICAgICAgICAgIGd0a19t
ZW51X2l0ZW1fc2V0X3N1Ym1lbnUoaXRlbSwgR1RLX1dJREdFVChtZW51LnN1Yk1lbnUpKTsKLSAg
ICB9CisgICAgaWYgKHN1Yk1lbnUpCisgICAgICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7Cit9CiAK
LSAgICByZXR1cm4gaXRlbTsKK0NvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgpCit7
CiB9CiAKIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnJlbGVh
c2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkKIHsKLSAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRp
b24gZGVzY3JpcHRpb24gPSBtX3BsYXRmb3JtRGVzY3JpcHRpb247Ci0gICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uID0gUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCk7Ci0gICAgcmV0dXJuIGRl
c2NyaXB0aW9uOworICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24ubGVha1JlZigpOwog
fQogCiBDb250ZXh0TWVudUl0ZW1UeXBlIENvbnRleHRNZW51SXRlbTo6dHlwZSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlOworICAgIGlmIChHVEtfSVNf
U0VQQVJBVE9SX01FTlVfSVRFTShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKQorICAgICAg
ICByZXR1cm4gU2VwYXJhdG9yVHlwZTsKKyAgICBpZiAoR1RLX0lTX0NIRUNLX01FTlVfSVRFTSht
X3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm4gQ2hlY2thYmxlQWN0
aW9uVHlwZTsKKyAgICBpZiAoZ3RrX21lbnVfaXRlbV9nZXRfc3VibWVudShtX3BsYXRmb3JtRGVz
Y3JpcHRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm4gU3VibWVudVR5cGU7CisgICAgcmV0dXJu
IEFjdGlvblR5cGU7CiB9CiAKIHZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUeXBlKENvbnRleHRN
ZW51SXRlbVR5cGUgdHlwZSkKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IHR5
cGU7CisgICAgaWYgKHR5cGUgPT0gU2VwYXJhdG9yVHlwZSkKKyAgICAgICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uID0gR1RLX01FTlVfSVRFTShndGtfc2VwYXJhdG9yX21lbnVfaXRlbV9uZXcoKSk7
CiB9CiAKIENvbnRleHRNZW51QWN0aW9uIENvbnRleHRNZW51SXRlbTo6YWN0aW9uKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbjsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVBY3Rpb24+KEdQT0lOVEVSX1RPX0lOVChnX29iamVjdF9n
ZXRfZGF0YShHX09CSkVDVChtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpLCBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTikpKTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEFjdGlv
bihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LmFjdGlvbiA9IGFjdGlvbjsKKyAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChtX3BsYXRm
b3JtRGVzY3JpcHRpb24uZ2V0KCkpLCBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTiwgR0lOVF9U
T19QT0lOVEVSKGFjdGlvbikpOwogfQogCiBTdHJpbmcgQ29udGV4dE1lbnVJdGVtOjp0aXRsZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZTsKKyAgICBH
dGtBY3Rpb24qIGFjdGlvbiA9IGd0a19hY3RpdmF0YWJsZV9nZXRfcmVsYXRlZF9hY3Rpb24oR1RL
X0FDVElWQVRBQkxFKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5nZXQoKSkpOworICAgIHJldHVybiBh
Y3Rpb24gPyBTdHJpbmcoZ3RrX2FjdGlvbl9nZXRfbGFiZWwoYWN0aW9uKSkgOiBTdHJpbmcoKTsK
IH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUp
CiB7Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0bGU7CisgICAgR3RrQWN0
aW9uKiBhY3Rpb24gPSBndGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19BQ1RJ
VkFUQUJMRShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKTsKKyAgICBpZiAoYWN0aW9uKQor
ICAgICAgICBndGtfYWN0aW9uX3NldF9sYWJlbChhY3Rpb24sIHRpdGxlLnV0ZjgoKS5kYXRhKCkp
OwogfQogCiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnBsYXRmb3Jt
U3ViTWVudSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJN
ZW51OworICAgIEd0a1dpZGdldCogc3ViTWVudSA9IGd0a19tZW51X2l0ZW1fZ2V0X3N1Ym1lbnUo
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gc3ViTWVudSA/IEdUS19N
RU5VKHN1Yk1lbnUpIDogMDsKIH0KIAogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFN1Yk1lbnUo
Q29udGV4dE1lbnUqIG1lbnUpCiB7Ci0gICAgaWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJN
ZW51KQotICAgICAgICBnX29iamVjdF91bnJlZihtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVu
dSk7Ci0KLSAgICBpZiAoIW1lbnUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbi5zdWJNZW51ID0gbWVudS0+cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsK
LSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IFN1Ym1lbnVUeXBlOwotCi0gICAgZ19v
YmplY3RfcmVmX3NpbmsoR19PQkpFQ1QobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpKTsK
KyAgICBndGtfbWVudV9pdGVtX3NldF9zdWJtZW51KG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5nZXQo
KSwgR1RLX1dJREdFVChtZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCkpKTsKIH0KIAogdm9pZCBD
b250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQoYm9vbCBzaG91bGRDaGVjaykKIHsKLSAgICBtX3Bs
YXRmb3JtRGVzY3JpcHRpb24uY2hlY2tlZCA9IHNob3VsZENoZWNrOworICAgIEd0a0FjdGlvbiog
YWN0aW9uID0gZ3RrX2FjdGl2YXRhYmxlX2dldF9yZWxhdGVkX2FjdGlvbihHVEtfQUNUSVZBVEFC
TEUobV9wbGF0Zm9ybURlc2NyaXB0aW9uLmdldCgpKSk7CisgICAgaWYgKGFjdGlvbiAmJiBHVEtf
SVNfVE9HR0xFX0FDVElPTihhY3Rpb24pKQorICAgICAgICBndGtfdG9nZ2xlX2FjdGlvbl9zZXRf
YWN0aXZlKEdUS19UT0dHTEVfQUNUSU9OKGFjdGlvbiksIHNob3VsZENoZWNrKTsKIH0KIAogdm9p
ZCBDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQoYm9vbCBzaG91bGRFbmFibGUpCiB7Ci0gICAg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLmVuYWJsZWQgPSBzaG91bGRFbmFibGU7CisgICAgR3RrQWN0
aW9uKiBhY3Rpb24gPSBndGtfYWN0aXZhdGFibGVfZ2V0X3JlbGF0ZWRfYWN0aW9uKEdUS19BQ1RJ
VkFUQUJMRShtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkpKTsKKyAgICBpZiAoYWN0aW9uKQor
ICAgICAgICBndGtfYWN0aW9uX3NldF9zZW5zaXRpdmUoYWN0aW9uLCBzaG91bGRFbmFibGUpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGIwNjcwMDcuLmM0YjFk
OWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0yODUsNiArMjg1LDE5IEBA
IHN0YXRpYyB2b2lkIGNvbnRleHRNZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwg
Q29udGV4dE1lbnVDb250cm9sbGVyKiBjCiAgICAgY29udHJvbGxlci0+Y29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoJmNvbnRleHRJdGVtKTsKIH0KIAorc3RhdGljIHZvaWQgY29udGV4dE1lbnVDb25u
ZWN0QWN0aXZhdGUoR3RrTWVudUl0ZW0qIGl0ZW0sIENvbnRleHRNZW51Q29udHJvbGxlciogY29u
dHJvbGxlcikKK3sKKyAgICBpZiAoR1RLX0lTX1NFUEFSQVRPUl9NRU5VX0lURU0oaXRlbSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChHdGtXaWRnZXQqIG1lbnUgPSBndGtfbWVudV9pdGVt
X2dldF9zdWJtZW51KGl0ZW0pKSB7CisgICAgICAgIGd0a19jb250YWluZXJfZm9yZWFjaChHVEtf
Q09OVEFJTkVSKG1lbnUpLCAoR3RrQ2FsbGJhY2spY29udGV4dE1lbnVDb25uZWN0QWN0aXZhdGUs
IGNvbnRyb2xsZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZ19zaWduYWxfY29u
bmVjdChpdGVtLCAiYWN0aXZhdGUiLCBHX0NBTExCQUNLKGNvbnRleHRNZW51SXRlbUFjdGl2YXRl
ZCksIGNvbnRyb2xsZXIpOworfQorCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2Zv
cndhcmRfY29udGV4dF9tZW51X2V2ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgUGFnZSogcGFnZSA9IGNvcmUod2ViVmll
dyk7CkBAIC0zNDYsMjAgKzM1OSwxMiBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3
X2ZvcndhcmRfY29udGV4dF9tZW51X2V2ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZQogCiAgICAg
Ly8gV2UgY29ubmVjdCB0aGUgImFjdGl2YXRlIiBzaWduYWwgaGVyZSByYXRoZXIgdGhhbiBpbiBD
b250ZXh0TWVudUd0ayB0byBhdm9pZAogICAgIC8vIGEgbGF5ZXJpbmcgdmlvbGF0aW9uLiBDb250
ZXh0TWVudUd0ayBzaG91bGQgbm90IGtub3cgYWJvdXQgdGhlIENvbnRleHRNZW51Q29udHJvbGxl
ci4KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgaGFuZGxlIHN1Ym1lbnUgaXRlbXMuCi0gICAg
R093blB0cjxHTGlzdD4gaXRlbXMoZ3RrX2NvbnRhaW5lcl9nZXRfY2hpbGRyZW4oR1RLX0NPTlRB
SU5FUihtZW51KSkpOwotICAgIEdMaXN0KiBjdXJyZW50TGlzdEl0ZW0gPSBpdGVtcy5nZXQoKTsK
LSAgICB3aGlsZSAoY3VycmVudExpc3RJdGVtKSB7Ci0gICAgICAgIEd0a01lbnVJdGVtKiBpdGVt
ID0gR1RLX01FTlVfSVRFTShjdXJyZW50TGlzdEl0ZW0tPmRhdGEpOwotICAgICAgICBpZiAoIUdU
S19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0pICYmICFndGtfbWVudV9pdGVtX2dldF9zdWJt
ZW51KGl0ZW0pKQotICAgICAgICAgICAgZ19zaWduYWxfY29ubmVjdChpdGVtLCAiYWN0aXZhdGUi
LCBHX0NBTExCQUNLKGNvbnRleHRNZW51SXRlbUFjdGl2YXRlZCksIGNvbnRyb2xsZXIpOwotICAg
ICAgICBjdXJyZW50TGlzdEl0ZW0gPSBjdXJyZW50TGlzdEl0ZW0tPm5leHQ7Ci0gICAgfQorICAg
IGd0a19jb250YWluZXJfZm9yZWFjaChHVEtfQ09OVEFJTkVSKG1lbnUpLCAoR3RrQ2FsbGJhY2sp
Y29udGV4dE1lbnVDb25uZWN0QWN0aXZhdGUsIGNvbnRyb2xsZXIpOwogCiAgICAgZ19zaWduYWxf
ZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tQT1BVTEFURV9QT1BVUF0sIDAs
IG1lbnUpOwogCiAgICAgLy8gSWYgdGhlIGNvbnRleHQgbWVudSBpcyBub3cgZW1wdHksIGRvbid0
IHNob3cgaXQuCi0gICAgaXRlbXMuc2V0KGd0a19jb250YWluZXJfZ2V0X2NoaWxkcmVuKEdUS19D
T05UQUlORVIobWVudSkpKTsKKyAgICBHT3duUHRyPEdMaXN0PiBpdGVtcyhndGtfY29udGFpbmVy
X2dldF9jaGlsZHJlbihHVEtfQ09OVEFJTkVSKG1lbnUpKSk7CiAgICAgaWYgKCFpdGVtcykKICAg
ICAgICAgcmV0dXJuIEZBTFNFOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>