<?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>146511</bug_id>
          
          <creation_ts>2015-07-01 07:05:29 -0700</creation_ts>
          <short_desc>[GTK] ENABLE_OPENGL=OFF builds still include GL-specific files</short_desc>
          <delta_ts>2015-10-15 01:39:53 -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>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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Emanuele Aina">emanuele.aina</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andrunko</cc>
    
    <cc>barraclough</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>philip.chimento</cc>
    
    <cc>sam</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106046</commentid>
    <comment_count>0</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-01 07:05:29 -0700</bug_when>
    <thetext>A ENABLE_GL=OFF build of trunk@186174 fails on BitmapTextureGL.cpp, which is unguarded and included if USE_TEXTURE_MAPPER is set: https://trac.webkit.org/browser/trunk/Source/WebCore/PlatformGTK.cmake#L392

I&apos;m a cmake noob, but it doesn&apos;t look like USE_TEXTURE_MAPPER is something that can be disabled as it is set with SET_AND_EXPOSE_TO_BUILD() in OptionsGTK.cmake, which makes it look like it&apos;s not really a flag the user can set, but rather something port-specific: https://trac.webkit.org/browser/trunk/Source/cmake/OptionsGTK.cmake#L299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106676</commentid>
    <comment_count>1</comment_count>
      <attachid>256093</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-03 05:08:48 -0700</bug_when>
    <thetext>Created attachment 256093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106677</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-03 05:09:45 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106690</commentid>
    <comment_count>3</comment_count>
      <attachid>256100</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-03 06:48:57 -0700</bug_when>
    <thetext>Created attachment 256100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106692</commentid>
    <comment_count>4</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-03 06:51:06 -0700</bug_when>
    <thetext>I&apos;ve reuploaded the patch as it got mixed with bug #146550 before I learnt about the -g flag of `webkit-patch upload`. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106765</commentid>
    <comment_count>5</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-03 13:28:58 -0700</bug_when>
    <thetext>Disabling GL would still leave AC enables, which ultimately leads to LayerTreeHost::create() being called and returning a null pointer which causes the WebProcess to segfault: https://trac.webkit.org/browser/trunk/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.cpp#L49

Would it be appropriate to add an ASSERT_NOT_REACHED() in the &quot;#else&quot; in LayerTreeHost.cpp above, to make the intention more clear? As far as I can tell no LayerTreeHost::create() callsite checks for null, so an assertion would make things more clear.

Relatedly, would it make sense to turn off AC by default with ENABLE_OPENGL=OFF? At the moment AC requires GL (I plan to change that, but I have not even started to work on that), so you only get the segfault above with no GL and AC turned on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107034</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-07-06 00:52:42 -0700</bug_when>
    <thetext>The idea for the future is to fold USE_TEXTURE_MAPPER_GL into USE_TEXTURE_MAPPER, i.e. only one variable guarding the TextureMapper implementation (which only supports OpenGL backend at this point).

If you were able to disable USE_TEXTURE_MAPPER (much like USE_TEXTURE_MAPPER_GL is now disabled if there&apos;s no OpenGL support), the files you&apos;re modifying in the patch wouldn&apos;t be built at all.

I&apos;m not sure what&apos;s the reason behind enabling USE_TEXTURE_MAPPER at all times though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107045</commentid>
    <comment_count>7</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-06 01:31:04 -0700</bug_when>
    <thetext>I guess my (still not particularly well researched) plan for the Raspberry Pi is to implement some sort of TextureMapperCairo to try to composite non-rotated fully-opaque rectangles with Cairo to screen: my specific target is to avoid memory copies as much as possible during video playback (copying video frames to the backing buffer and the blitting it to screen severely slow things down).

This means that having USE_TEXTURE_MAPPER_GL separated from USE_TEXTURE_MAPPER is a useful feature for me, as I&apos;m only interested in avoiding GL (which we can&apos;t rely on for the Pi) while I plan to make use of the AC infrastructure.

Does it make any sense? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107059</commentid>
    <comment_count>8</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-06 02:17:33 -0700</bug_when>
    <thetext>Or rather, I should probably look into reviving the TextureMapperImageBuffer, which I guess was the original reason of the USE_TEXTURE_MAPPER_GL/USE_TEXTURE_MAPPER split.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107090</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-07-06 07:18:26 -0700</bug_when>
    <thetext>Here&apos;s some context: https://lists.webkit.org/pipermail/webkit-dev/2015-April/027384.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107098</commentid>
    <comment_count>10</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-06 08:21:52 -0700</bug_when>
    <thetext>Thanks for the pointer. My plan would be to severely restrict what can be composited to non-rotated fully-opaque rectangles and avoid any kind of transformation during compositing to produce what ultimately is a multi-source memcpy, so it would avoid any problem with non-affine transformations not being available in Cairo. I guess I&apos;m going a bit off-topic from the issue at hand, my only intent is to motivate why I would appreciate to retain the USE_TEXTURE_MAPPER_GL/USE_TEXTURE_MAPPER split at least until I had the chance to bang my head at TextureMapperImageBuffer for a while. :)

I will upload a rebased patch (the current one no longer applies) with the ASSERT_NOT_REACHED() I mentioned a few comments ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107101</commentid>
    <comment_count>11</comment_count>
      <attachid>256214</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-06 08:33:42 -0700</bug_when>
    <thetext>Created attachment 256214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107104</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-07-06 08:53:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created attachment 256214 [details]
&gt; Patch

I&apos;m pretty sure TextureMapperImageBuffer was removed a few months ago now: http://trac.webkit.org/changeset/183807</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107824</commentid>
    <comment_count>13</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-08 11:51:26 -0700</bug_when>
    <thetext>&gt; I&apos;m pretty sure TextureMapperImageBuffer was removed a few months ago now: http://trac.webkit.org/changeset/183807

Yup, sorry if I haven&apos;t been clear, but my intention is to resurrect it in some form in the next months.

I can&apos;t use GL on the Raspberry Pi, but some form of software-only composition would be greatly beneficial there to avoid extra copies. In particular we had some incredibly ugly hacks for WK1 which I would like to get rid of. Those hacks made video playback work acceptably on the Raspberry Pi without any accelerated composition: since those hacks cannot apply with the split process model of WebKit2 I would like to provide a proper implementation this time to accomplish the same goal (smooth 720p &lt;video&gt; playback).

As far as I can tell at the moment, TextureMapperImageBuffer provided a good chunk of what I need. I would first aim at enabling it only when ENABLE_OPENGL=OFF, to avoid the issues that lead to its removal. I&apos;m sorry I missed the request for comments when TextureMapperImageBuffer was to be removed, but I was still stuck with WK1 at that point. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110929</commentid>
    <comment_count>14</comment_count>
      <attachid>256214</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-07-21 04:28:14 -0700</bug_when>
    <thetext>Comment on attachment 256214
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:382
&gt;  }; // namespace WebCore
&gt; +#endif // USE(TEXTURE_MAPPER_GL)

Could use an empty line in between.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1393
&gt; +#if PLATFORM(X11) &amp;&amp; (USE(REDIRECTED_XCOMPOSITE_WINDOW) || USE(TEXTURE_MAPPER_GL))

This needs rebasing, I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111219</commentid>
    <comment_count>15</comment_count>
      <attachid>257245</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-22 00:23:54 -0700</bug_when>
    <thetext>Created attachment 257245
Patch

Rebased on current trunk (r187148)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111226</commentid>
    <comment_count>16</comment_count>
      <attachid>257251</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-22 00:42:20 -0700</bug_when>
    <thetext>Created attachment 257251
Patch

Rebased on current trunk (r187148) and added a dep from ENABLE(WAYLAND_TARGET) to ENABLE(OPENGL) due to EGL usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111953</commentid>
    <comment_count>17</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-07-24 01:46:40 -0700</bug_when>
    <thetext>By the way, I&apos;ve opened bug 147258 with my rough plans for some sort of software-only basic composition, any comment is appreciated. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114621</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-08-04 09:51:04 -0700</bug_when>
    <thetext>Patch LGTM... this is still a supported configuration, so we should land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114986</commentid>
    <comment_count>19</comment_count>
      <attachid>257251</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-04 23:49:38 -0700</bug_when>
    <thetext>Comment on attachment 257251
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:25
&gt;  #include &quot;config.h&quot;
&gt; +
&gt; +#if USE(TEXTURE_MAPPER_GL)
&gt;  #include &quot;BitmapTextureGL.h&quot;

We don&apos;t do this. The header should be guarded too, and then here include config.h and the main header unconditionally, and then we guard the rest of the file.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:24
&gt;  #include &quot;config.h&quot;
&gt; +
&gt; +#if USE(TEXTURE_MAPPER_GL)

Same here. Also it&apos;s a bit weird that the header has #if USE(TEXTURE_MAPPER) and the implementation USE(TEXTURE_MAPPER_GL). They should have the same condition. I guess what you want is to change the header in this case.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:26
&gt; +#if USE(TEXTURE_MAPPER_GL)
&gt; +
&gt;  #include &quot;TextureMapperShaderProgram.h&quot;

Same here.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1370
&gt; +    Window native;

setNativeSurfaceHandleForCompositing expects a uint64_t, so use that instead of Window. Also, this is not an if but an #if, so you don&apos;t need to declare this variable here, you can do it when assigned below on each #if branch. And use a better name, windowID, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123444</commentid>
    <comment_count>20</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-09-04 09:05:52 -0700</bug_when>
    <thetext>Sorry for the delay, I will pick the patch up soon but while working on #147258 I found that actually having a non-GL TextureMapper-based compositor helps a lot to figure out the  breakage due to confusion about the different guards.

I guess I will tie the loose ends while cleaning up the local patch I have for #147258.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126752</commentid>
    <comment_count>21</comment_count>
      <attachid>261403</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-09-17 11:18:09 -0700</bug_when>
    <thetext>Created attachment 261403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126810</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-17 13:25:52 -0700</bug_when>
    <thetext>Looks like the patch does not apply on master. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126823</commentid>
    <comment_count>23</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-09-17 13:54:32 -0700</bug_when>
    <thetext>Argh, I was on r189702 and forgot to do a pull before submitting. Let me see...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126939</commentid>
    <comment_count>24</comment_count>
      <attachid>261457</attachid>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-09-17 16:50:21 -0700</bug_when>
    <thetext>Created attachment 261457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126941</commentid>
    <comment_count>25</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-09-17 16:52:12 -0700</bug_when>
    <thetext>Patch updated. Not tested on current master (r189944) due to an unrelated build failure. I will try again tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127097</commentid>
    <comment_count>26</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-09-18 04:16:57 -0700</bug_when>
    <thetext>I&apos;ve re-tested the patch on top of master and I can run MiniBrowser with no GL involved (the first version only addressed the ability to build without GL but the resulting code just hit an assertion).

For reference, the build failure I encountered yesterday was bug #149342.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130934</commentid>
    <comment_count>27</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-10-06 05:17:13 -0700</bug_when>
    <thetext>I&apos;m considering this patch final, if anybody wants to give it a look again and eventually merge it, it would be very appreciated. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130980</commentid>
    <comment_count>28</comment_count>
      <attachid>261457</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 09:21:37 -0700</bug_when>
    <thetext>Comment on attachment 261457
Patch

Clearing flags on attachment: 261457

Committed r190615: &lt;http://trac.webkit.org/changeset/190615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130981</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 09:21:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133415</commentid>
    <comment_count>30</comment_count>
      <attachid>261457</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-10-15 01:13:32 -0700</bug_when>
    <thetext>Comment on attachment 261457
Patch

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

&gt; Source/WebKit2/UIProcess/gtk/WebPreferencesGtk.cpp:46
&gt; +#if !ENABLE(OPEN_GL)

This is wrong, it should be OPENGL. This disabled accelerated compositing, and I merged this in 2.10 branch before releasing 2.10.1 :-/ I&apos;ll make a new release...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133418</commentid>
    <comment_count>31</comment_count>
    <who name="Emanuele Aina">emanuele.aina</who>
    <bug_when>2015-10-15 01:39:53 -0700</bug_when>
    <thetext>Aargh, sorry about it! :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256093</attachid>
            <date>2015-07-03 05:08:48 -0700</date>
            <delta_ts>2015-07-03 06:48:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150703140752.patch</filename>
            <type>text/plain</type>
            <size>24547</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjI1CmRpZmYgLS1naXQgYy9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgdy9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY2MDIxMWVkNjIxZmE1
MjAwODgwMGY1ZGZiNWZjYTEzZDAwNTA1Yy4uMDM4N2U5ZjY5NmQzZDI0OTc5NDgxNDEwODRmN2Jh
MTg0MzY5NzlmMyAxMDA2NDQKLS0tIGMvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyB3L1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTAzICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmNwcDoKKyAgICAgICAgRml4IFRFWFRVUkVfTUFQUEVSX0dMIHZzIFRFWFRV
UkVfTUFQUEVSIGd1YXJkcyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBFTkFCTEVfT1BFTkdM
PU9GRiBvbmx5IGRpc2FibGVzIHRoZSBHTC1yZWxhdGVkIHBhcnRzLgorCiAyMDE1LTA3LTAxICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQWdncmVnYXRlIHByb2ZpbGUgY2FsbCBpbmZvcm1hdGlvbiBvbiB0aGUgYmFja2VuZCB0
byBkcmFzdGljYWxseSByZWR1Y2UgcHJvZmlsZSBzaXplcwpkaWZmIC0tZ2l0IGMvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIHcvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA1YjdhNzQx
YjhhNzA1NTE4YjBmYTczOWRhMzJmNDAwMzk1NDVlYTguLjhkYjQyMzcxMTZjYmJhMjVjNzcxNzg1
NTU4ZDc0MDA0ZmM0ZDc0MTMgMTAwNjQ0Ci0tLSBjL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
Kysgdy9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxNS0wNy0w
MyAgRW1hbnVlbGUgQWluYSAgPGVtYW51ZWxlLmFpbmFAY29sbGFib3JhLmNvbT4KKworICAgICAg
ICBGaXggRU5BQkxFX09QRU5HTD1PRkYgYnVpbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdC
YXNlLmNwcDoKKyAgICAgICAgUHJvdGVjdCBEcmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZh
Y2VIYW5kbGVGb3JDb21wb3NpdGluZygpIGNhbGwKKyAgICAgICAgd2l0aCB0aGUgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKSBndWFyZC4KKworMjAxNS0wNy0wMiAgRW1hbnVlbGUgQWluYSAgPGVtYW51
ZWxlLmFpbmFAY29sbGFib3JhLmNvbT4KKworICAgICAgICBGaXggYnVpbGQgd2l0aCBFTkFCTEUo
REFUQUJBU0VfUFJPQ0VTUykgYW5kICFFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdpdmVuIHRoYXQgSU5ERVhF
RF9EQVRBQkFTRSBhdCB0aGUgbW9tZW50IGlzIHRoZSBvbmx5IHVzZXIgb2YKKyAgICAgICAgREFU
QUJBU0VfUFJPQ0VTUywgdGhlaXIgZ3VhcmRzIGdvdCBpbmV2aXRhYmx5IG1peGVkIHVwIHdpdGgg
dmFyaW91cworICAgICAgICBsZXZlbHMgb2YgY29uc2lzdGVuY3kuIFNpbmNlIHRoZSAtLW5vLWlu
ZGV4ZWQtZGF0YWJhc2UgZmxhZyBmcm9tCisgICAgICAgIGJ1aWxkLXdlYmtpdCBsZWF2ZXMgREFU
QUJBU0VfUFJPQ0VTUyBlbmFibGVkLCB0aGlzIHJlc3VsdGVkIGluIGJ1aWxkCisgICAgICAgIGZh
aWx1cmVzLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6
CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICBBZGQgbWlzc2luZyBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkgZ3VhcmRzIGFuZCBtb3ZlZCB0aGUKKyAgICAgICAgbWlzcGxhY2Vk
IG9uZXMuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmg6Cisg
ICAgICAgIERpdHRvLCBhbmQgYWxzbyBhZGQgYSBmb3J3YXJkIGRlY2xhcmF0aW9uIGZvciBTZWN1
cml0eU9yaWdpbkRhdGEgc2luY2UKKyAgICAgICAgd2l0aCBJTkRFWEVEX0RBVEFCQVNFIG9mZiBT
ZWN1cml0eU9yaWdpbkRhdGEuaCBpcyBubyBsb25nZXIgaW5jbHVkZWQKKyAgICAgICAgYnkgd2F5
IG9mIFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oLgorCiAyMDE1LTA3LTAyICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJT
UUwgZG9lc24ndCB3b3JrIGJlY2F1c2Ugb3BlbkRhdGFiYXNlIGFsd2F5cyBmYWlscyB3aXRoIERP
TSBFeGNlcHRpb24gMTgKZGlmZiAtLWdpdCBjL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIHcvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uZGM2Zjc2NDQyM2Y0ZjJjNTczODQ5Yzk3ZDJmYzA4
YzJjYzYxOGY2NiAxMDA2NDQKLS0tIGMvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIHcvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTIwLDYgKzIwLDggQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAj
aW5jbHVkZSAiQml0bWFwVGV4dHVyZUdMLmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIK
QEAgLTM3NywzICszNzksNCBAQCBJbnRTaXplIEJpdG1hcFRleHR1cmVHTDo6c2l6ZSgpIGNvbnN0
CiB9CiAKIH07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQpkaWZmIC0tZ2l0IGMvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgdy9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCAwYmNlOGM3NDIwZDdkMGE0NGIzMDll
MjZmNTY2YTkyMTkzZTQ4NjBhLi5kZTJmYTZiYTExMmNjMGY3ZWE2Y2ZhOTFkNTU0Y2Q3YWE1Y2U1
ODA2IDEwMDY0NAotLS0gYy9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmNwcAorKysgdy9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMjAsNiArMjAsOCBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyR0wuaCIKIAogI2luY2x1ZGUgIkJpdG1hcFRleHR1cmVHTC5oIgpAQCAt
NTIsOCArNTQsNiBAQAogI2RlZmluZSBHTF9VTlBBQ0tfU0tJUF9ST1dTIDB4MENGMwogI2VuZGlm
CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVj
dCBUZXh0dXJlTWFwcGVyR0xEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAg
LTc5OCwxMiArNzk4LDExIEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBl
ckdMOjpjcmVhdGVUZXh0dXJlKCkKICAgICByZXR1cm4gYWRvcHRSZWYodGV4dHVyZSk7CiB9CiAK
LSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBl
cj4gVGV4dHVyZU1hcHBlcjo6cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpCiB7CiAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlckdMPigpOwogfQotI2VuZGlmCiAKIH07
Ci0jZW5kaWYKKworI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBj
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5jcHAgdy9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmluZGV4IDU4YmM2NTFiOGY1MDllYTFiYWE3
ZGQxYTdiZTc4YWE4ZGNhOWQwNjQuLjhmOTFjOTUwZWNjNjA2NzgwZjBmM2U5ODZhMmFmZDFhYTRj
NzhiMjUgMTAwNjQ0Ci0tLSBjL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIHcvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcApAQCAt
MjAsOSArMjAsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCisKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5o
IgogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKQEAg
LTQwMSw0ICs0MDMsNCBAQCBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFBhc3NSZQogfQogCiB9Ci0jZW5kaWYK
KyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYy9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCB3L1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4IDRjMzEwM2Q1ZTIwNzc3
NjFhZTdiYzNkYjdiOGYxODY0NDNkNTU1ZTMuLjU2NjQyOWYyMDUxNGJhYzAwZTBmYjVkMDYxMzA3
NTBhOWQ3YzEzN2UgMTAwNjQ0Ci0tLSBjL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuY3BwCisrKyB3L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuY3BwCkBAIC05NSw2ICs5NSw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNz
OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdS
ZWZlCiAgICAgUnVuTG9vcDo6Y3VycmVudCgpLnN0b3AoKTsKIH0KIAorI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogUGFzc1JlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4gRGF0YWJhc2VQcm9j
ZXNzOjpnZXRPckNyZWF0ZVVuaXF1ZUlEQkRhdGFiYXNlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNl
SWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1faWRiRGF0
YWJhc2VzLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKQEAgLTExNCw5ICsxMTUsMTEgQEAgdm9p
ZCBEYXRhYmFzZVByb2Nlc3M6OnJlbW92ZVVuaXF1ZUlEQkRhdGFiYXNlKGNvbnN0IFVuaXF1ZUlE
QkRhdGFiYXNlJiBkYXRhYmFzZSkKIAogICAgIG1faWRiRGF0YWJhc2VzLnJlbW92ZShpZGVudGlm
aWVyKTsKIH0KKyNlbmRpZgogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZURhdGFi
YXNlUHJvY2Vzcyhjb25zdCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLy8gKioqKioqKioq
CiAgICAgLy8gSU1QT1JUQU5UOiBEbyBub3QgY2hhbmdlIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJl
IGZvciBpbmRleGVkIGRhdGFiYXNlcyBvbiBkaXNrIHdpdGhvdXQgZmlyc3QgY29uc3VsdGluZyBh
IHJldmlld2VyIGZyb20gQXBwbGUgKDxyZGFyOi8vcHJvYmxlbS8xNzQ1NDcxMj4pCiAgICAgLy8g
KioqKioqKioqCkBAIC0xMjUsMTIgKzEyOCwxNSBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5p
dGlhbGl6ZURhdGFiYXNlUHJvY2Vzcyhjb25zdCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcgog
ICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmluZGV4
ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBlbnN1cmVJbmRleGVk
RGF0YWJhc2VSZWxhdGl2ZVBhdGhFeGlzdHMoU3RyaW5nSW1wbDo6ZW1wdHkoKSk7CisjZW5kaWYK
IH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogdm9pZCBEYXRhYmFzZVByb2Nlc3M6
OmVuc3VyZUluZGV4ZWREYXRhYmFzZVJlbGF0aXZlUGF0aEV4aXN0cyhjb25zdCBTdHJpbmcmIHJl
bGF0aXZlUGF0aCkKIHsKICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhp
cywgJkRhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cywgYWJzb2x1dGVJbmRleGVkRGF0
YWJhc2VQYXRoRnJvbURhdGFiYXNlUmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aCkpKTsKIH0KKyNl
bmRpZgogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyhjb25zdCBTdHJp
bmcmIHBhdGgpCiB7CkBAIC0xNDAsMTIgKzE0NiwxNCBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6
ZW5zdXJlUGF0aEV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgICAgIExPR19FUlJPUigi
RmFpbGVkIHRvIG1ha2UgYWxsIGRpcmVjdG9yaWVzIGZvciBwYXRoICclcyciLCBwYXRoLnV0Zjgo
KS5kYXRhKCkpOwogfQogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiBTdHJpbmcgRGF0
YWJhc2VQcm9jZXNzOjphYnNvbHV0ZUluZGV4ZWREYXRhYmFzZVBhdGhGcm9tRGF0YWJhc2VSZWxh
dGl2ZVBhdGgoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVBhdGgpCiB7CiAgICAgLy8gRklYTUU6IHBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHdhcyBvcmlnaW5hbGx5IGRlc2lnbmVkIHRvIGFwcGVu
ZCBpbmRpdmlkdWFsIGF0b21pYyBjb21wb25lbnRzLgogICAgIC8vIFdlIGRvbid0IGhhdmUgYSBm
dW5jdGlvbiBkZXNpZ25lZCB0byBhcHBlbmQgYSBtdWx0aS1jb21wb25lbnQgc3VicGF0aCwgYnV0
IHdlIHNob3VsZC4KICAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1faW5kZXhl
ZERhdGFiYXNlRGlyZWN0b3J5LCByZWxhdGl2ZVBhdGgpOwogfQorI2VuZGlmCiAKIHZvaWQgRGF0
YWJhc2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+
IHRhc2spCiB7CkBAIC0yMjQsNiArMjMyLDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmZldGNo
V2Vic2l0ZURhdGEoU2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCB1aW4KICAg
ICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQ
cm9jZXNzUHJveHk6OkRpZEZldGNoV2Vic2l0ZURhdGEoY2FsbGJhY2tJRCwgd2Vic2l0ZURhdGEp
LCAwKTsKICAgICB9KSk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAo
d2Vic2l0ZURhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcykgewog
ICAgICAgICAvLyBGSVhNRTogUGljayB0aGUgcmlnaHQgZGF0YWJhc2Ugc3RvcmUgYmFzZWQgb24g
dGhlIHNlc3Npb24gSUQuCiAgICAgICAgIHBvc3REYXRhYmFzZVRhc2soc3RkOjptYWtlX3VuaXF1
ZTxBc3luY1Rhc2s+KFtjYWxsYmFja0FnZ3JlZ2F0b3IsIHdlYnNpdGVEYXRhVHlwZXMsIHRoaXNd
IHsKQEAgLTIzNiw2ICsyNDUsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRl
RGF0YShTZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVpbgogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pKTsKICAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBEYXRhYmFzZVBy
b2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vi
c2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2Rp
ZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMjYwLDYgKzI3MCw3IEBAIHZvaWQg
RGF0YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIHVp
bnQ2NF90IHdlYnNpdGVEYXRhCiAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5OjpEaWREZWxldGVXZWJzaXRlRGF0YShj
YWxsYmFja0lEKSwgMCk7CiAgICAgfSkpOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRh
YmFzZXMpIHsKICAgICAgICAgcG9zdERhdGFiYXNlVGFzayhzdGQ6Om1ha2VfdW5pcXVlPEFzeW5j
VGFzaz4oW3RoaXMsIGNhbGxiYWNrQWdncmVnYXRvciwgbW9kaWZpZWRTaW5jZV0gewogCkBAIC0y
NjcsNiArMjc4LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGEKICAgICAgICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgICAgICB9
KSk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0
YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgc2VjdXJpdHlPcmlnaW5E
YXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTI5MSw2ICszMDMsNyBAQCB2b2lkIERhdGFi
YXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25J
RCwgdWludDY0X3QgdwogICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKGNhbGxiYWNrSUQpLCAwKTsKICAgICB9KSk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZUluZGV4ZWRE
QkRhdGFiYXNlcykgewogICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPj4gc2VjdXJpdHlPcmlnaW5zOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHNlY3VyaXR5
T3JpZ2luRGF0YSA6IHNlY3VyaXR5T3JpZ2luRGF0YXMpCkBAIC0zMDIsOCArMzE1LDEwIEBAIHZv
aWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6
U2Vzc2lvbklELCB1aW50NjRfdCB3CiAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICAgICAgfSkpOwogICAgIH0KKyNlbmRp
ZgogfQogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiBWZWN0b3I8UmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPj4gRGF0YWJhc2VQcm9jZXNzOjppbmRleGVkRGF0YWJhc2VPcmln
aW5zKCkKIHsKICAgICBpZiAobV9pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpKQpA
QCAtMzE5LDcgKzMzNCw5IEBAIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
PiBEYXRhYmFzZVByb2Nlc3M6OmluZGV4ZWREYXRhYmFzZU9yaWdpbnMoCiAKICAgICByZXR1cm4g
c2VjdXJpdHlPcmlnaW5zOwogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKIHN0YXRpYyB2b2lkIHJlbW92ZUFsbERhdGFiYXNlc0Zvck9yaWdpblBhdGgoY29uc3QgU3Ry
aW5nJiBvcmlnaW5QYXRoLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWVkU2luY2UpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhbHNvIGNsb3NlL2ludmFs
aWRhdGUgYW55IGxpdmUgaGFuZGxlcyB0byB0aGUgZGF0YWJhc2UgZmlsZXMgd2UgYXJlIGFib3V0
IHRvIGRlbGV0ZS4KQEAgLTM3Myw2ICszOTAsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGVs
ZXRlSW5kZXhlZERhdGFiYXNlRW50cmllc01vZGlmaWVkU2luY2Uoc3RkOjpjaHJvbm86OnN5cwog
ICAgIGZvciAoYXV0byYgb3JpZ2luUGF0aCA6IG9yaWdpblBhdGhzKQogICAgICAgICByZW1vdmVB
bGxEYXRhYmFzZXNGb3JPcmlnaW5QYXRoKG9yaWdpblBhdGgsIG1vZGlmaWVkU2luY2UpOwogfQor
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5p
dGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JikKZGlmZiAtLWdpdCBjL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuaCB3L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3Mu
aAppbmRleCA1OWE2MThiZTQwNTk1YzI4YzIyYmRiMmU5Y2EyMTgxNzk2ZDIzYzY5Li5kYzg3NWU0
MGEzYzBkNWVhYjQ2ZDM0ODY3Y2YzMzJjOWZkNmFkYjAwIDEwMDY0NAotLS0gYy9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKKysrIHcvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCkBAIC00Myw2ICs0Myw3IEBAIGNs
YXNzIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIFVuaXF1ZUlEQkRhdGFi
YXNlOwogCiBzdHJ1Y3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogY2xhc3MgRGF0YWJhc2VQcm9jZXNzIDogcHVibGljIENo
aWxkUHJvY2VzcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0YWJhc2VQcm9jZXNzKTsK
QEAgLTUxLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBEYXRhYmFzZVByb2Nlc3MmIHNp
bmdsZXRvbigpOwogICAgIH5EYXRhYmFzZVByb2Nlc3MoKTsKIAorI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogICAgIGNvbnN0IFN0cmluZyYgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9pbmRleGVkRGF0YWJhc2VEaXJlY3Rvcnk7IH0KIAogICAgIFBhc3NS
ZWZQdHI8VW5pcXVlSURCRGF0YWJhc2U+IGdldE9yQ3JlYXRlVW5pcXVlSURCRGF0YWJhc2UoY29u
c3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CkBAIC01OCw2ICs2MCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZW5zdXJlSW5kZXhlZERhdGFiYXNlUmVsYXRpdmVQYXRoRXhpc3RzKGNv
bnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBhYnNvbHV0ZUluZGV4ZWREYXRhYmFzZVBhdGhGcm9t
RGF0YWJhc2VSZWxhdGl2ZVBhdGgoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKIAogICAgIFdvcmtR
dWV1ZSYgcXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdldCgpOyB9CiAKQEAgLTg5LDkgKzkyLDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9u
SUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRf
dCB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3Jp
Z2lucywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gaW5kZXhlZERh
dGFiYXNlT3JpZ2lucygpOwogICAgIHZvaWQgZGVsZXRlSW5kZXhlZERhdGFiYXNlRW50cmllc0Zv
ck9yaWdpbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+Jik7
CiAgICAgdm9pZCBkZWxldGVJbmRleGVkRGF0YWJhc2VFbnRyaWVzTW9kaWZpZWRTaW5jZShzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOworI2VuZGlm
CiAKICAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdvcmsgcXVldWUgdGhyZWFkIG9ubHkKICAgICB2
b2lkIHBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKCk7CkBAIC0xMDEsOSArMTA2LDExIEBAIHByaXZh
dGU6CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCisjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAgICAgU3RyaW5nIG1faW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OwogCiAgICAg
SGFzaE1hcDxVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIsIFJlZlB0cjxVbmlxdWVJREJEYXRh
YmFzZT4+IG1faWRiRGF0YWJhc2VzOworI2VuZGlmCiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9w
dHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwogICAgIE11dGV4IG1fZGF0YWJhc2VUYXNr
TXV0ZXg7CmRpZmYgLS1naXQgYy9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCB3L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGU3NjQ2NzAxOTk1
YjY4Yzg3ODM2YTNmZjk3MDk1MWYzNzRkOWI2NDMuLjk4OGMzMTgyNDdlZmVkNjZhYWVkMDNkYWIy
NjE4YTE4OTcxMTZkYWUgMTAwNjQ0Ci0tLSBjL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyB3L1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC01
OSwzMyArNTksMzkgQEAgdm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVj
dGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIElEQkNvbm5lY3Rpb25NYXA6
Oml0ZXJhdG9yIGJhY2tlbmRJdGVyYXRvciA9IG1faWRiQ29ubmVjdGlvbnMuZmluZChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgICAgIGlmIChiYWNrZW5kSXRlcmF0b3IgIT0gbV9pZGJD
b25uZWN0aW9ucy5lbmQoKSkKICAgICAgICAgICAgIGJhY2tlbmRJdGVyYXRvci0+dmFsdWUtPmRp
ZFJlY2VpdmVEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rl
cj4mIHJlcGx5KQogeworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIElEQkNvbm5lY3Rp
b25NYXA6Oml0ZXJhdG9yIGJhY2tlbmRJdGVyYXRvciA9IG1faWRiQ29ubmVjdGlvbnMuZmluZChk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgICAgIGlmIChiYWNrZW5kSXRlcmF0b3IgIT0g
bV9pZGJDb25uZWN0aW9ucy5lbmQoKSkKICAgICAgICAgICAgIGJhY2tlbmRJdGVyYXRvci0+dmFs
dWUtPmRpZFJlY2VpdmVTeW5jRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2RlciwgcmVwbHkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlm
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgLy8gVGhlIFdlYlByb2Nlc3MgaGFzIGRpc2Nvbm5lY3Rl
ZCwgY2xvc2UgYWxsIG9mIHRoZSBjb25uZWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggaXQKICAgICB3
aGlsZSAoIW1faWRiQ29ubmVjdGlvbnMuaXNFbXB0eSgpKQogICAgICAgICByZW1vdmVEYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uKG1faWRiQ29ubmVjdGlvbnMuYmVnaW4oKS0+a2V5KTsKKyNl
bmRpZgogfQogCiB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQpAQCAt
OTMsNiArOTksNyBAQCB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsCiAKIH0KIAorI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogdm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVz
dGFibGlzaElEQkNvbm5lY3Rpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
CiB7CiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGlkYkNvbm5lY3Rp
b24gPSBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjcmVhdGUoKnRoaXMsIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKQEAgLTEwNiw2ICsxMTMsNyBAQCB2b2lkIERhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbih1
aW50NjRfdAogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBpZGJDb25u
ZWN0aW9uID0gbV9pZGJDb25uZWN0aW9ucy50YWtlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKICAgICBpZGJDb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogfQor
I2VuZGlmCiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYy9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgdy9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMWJhMzk3NjdiN2NhZWQ3MjIzZmFlOTU2ZTcwMTRiNzQ4
ZjBiMjIwNi4uMmFhZjJjMmQyOTRhY2Y4MmUwNDBhNmQxM2I4ZGZlNTQ0NjZiOWM5MCAxMDA2NDQK
LS0tIGMvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyB3L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMv
RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgogCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRB
QkFTRV9QUk9DRVNTKQorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogCiAjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKIApAQCAtMzgsMjAgKzM4LDI0IEBAIERhdGFiYXNlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkKIAog
dm9pZCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKICAgICBlbmNvZGVyIDw8IGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKICAgICBlbmNvZGVy
IDw8IGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgogfQog
CiBib29sIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHJlc3VsdCkKIHsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW5kZXhlZERhdGFiYXNl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1Mp
CisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRpZmYgLS1naXQgYy9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIHcvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCBiMTA0NGZhOTJlODliMjhiNjc5ZGFmOWY0ZjQ3YjBjYzEy
OWRjNTNjLi4wYWM0YTM2ZTZmOTE3MmRhMGZjZjQ0ZDE3OGYxYzY0MDA4NmRlZGRlIDEwMDY0NAot
LS0gYy9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCisrKyB3L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0
YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNs
dWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKIG5hbWVzcGFjZSBJUEMgewogY2xh
c3MgQXJndW1lbnREZWNvZGVyOwpAQCAtNDUsMTEgKzQ1LDEzIEBAIHN0cnVjdCBEYXRhYmFzZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKICAgICBTdHJpbmcgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5Owog
ICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogI2VuZGlmIC8vIERhdGFiYXNl
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyc19oCmRpZmYgLS1naXQgYy9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgdy9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMDFjNWU1ODk3YmRl
OTdjOTVlYThlZTg4ODFiNTNhYzcxOGM1NzY1Yi4uZTEzYWU4ODA1YmQxMTcxNGQyMTkwMDIzNzll
ZmUyZTZkMDNiMTBlNyAxMDA2NDQKLS0tIGMvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyB3L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtMTM5MCwxNiArMTM5MCwyMiBAQCB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYktpdFdl
YlZpZXdCYXNlKiB3ZWJraXRXZQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkUmVsYXVuY2hX
ZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsKKyNpZiBV
U0UoUkVESVJFQ1RFRF9YQ09NUE9TSVRFX1dJTkRPVykgfHwgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYmtpdFdlYlZpZXdCYXNl
LT5wcml2OwogICAgIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5nQXJlYSA9IHN0YXRpY19j
YXN0PERyYXdpbmdBcmVhUHJveHlJbXBsKj4ocHJpdi0+cGFnZVByb3h5LT5kcmF3aW5nQXJlYSgp
KTsKICAgICBBU1NFUlQoZHJhd2luZ0FyZWEpOworICAgIFdpbmRvdyBuYXRpdmU7CiAjaWYgVVNF
KFJFRElSRUNURURfWENPTVBPU0lURV9XSU5ET1cpCiAgICAgaWYgKCFwcml2LT5yZWRpcmVjdGVk
V2luZG93KQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZh
Y2VIYW5kbGVGb3JDb21wb3NpdGluZyhwcml2LT5yZWRpcmVjdGVkV2luZG93LT53aW5kb3dJRCgp
KTsKLSNlbHNlCisgICAgbmF0aXZlID0gcHJpdi0+cmVkaXJlY3RlZFdpbmRvdy0+d2luZG93SUQo
KTsKKyNlbGlmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBpZiAoIWd0a193aWRnZXRfZ2V0
X3JlYWxpemVkKEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSkKICAgICAgICAgcmV0dXJu
OwotICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmco
R0RLX1dJTkRPV19YSUQoZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQod2Via2l0V2Vi
Vmlld0Jhc2UpKSkpOworICAgIG5hdGl2ZSA9IEdES19XSU5ET1dfWElEKGd0a193aWRnZXRfZ2V0
X3dpbmRvdyhHVEtfV0lER0VUKHdlYmtpdFdlYlZpZXdCYXNlKSkpOwogI2VuZGlmCisgICAgZHJh
d2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhuYXRpdmUpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0od2Via2l0V2ViVmlld0Jhc2UpOworI2VuZGlmIC8vIFVT
RShSRURJUkVDVEVEX1hDT01QT1NJVEVfV0lORE9XKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CiB9CmRpZmYgLS1naXQgYy9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwIHcvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBm
YzExOGY1MDE2ZGU4MTdmN2Y4MWU2ZjdiNGNmMDNhZjkwODUxNDlhLi4yNzM2NjUyNWExODk1OWQw
ZDRmM2U3MDZjMDE1ZGVlMDJhZjcxZTNmIDEwMDY0NAotLS0gYy9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyB3L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQ1NywxNSArNDU3LDE2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmVuc3VyZURhdGFiYXNlUHJvY2VzcygpCiAKICAgICBtX2RhdGFiYXNlUHJvY2VzcyA9IERh
dGFiYXNlUHJvY2Vzc1Byb3h5OjpjcmVhdGUodGhpcyk7CiAKLSAgICBBU1NFUlQoIW1fY29uZmln
dXJhdGlvbi0+aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKS5pc0VtcHR5KCkpOwotCiAgICAg
Ly8gKioqKioqKioqCiAgICAgLy8gSU1QT1JUQU5UOiBEbyBub3QgY2hhbmdlIHRoZSBkaXJlY3Rv
cnkgc3RydWN0dXJlIGZvciBpbmRleGVkIGRhdGFiYXNlcyBvbiBkaXNrIHdpdGhvdXQgZmlyc3Qg
Y29uc3VsdGluZyBhIHJldmlld2VyIGZyb20gQXBwbGUgKDxyZGFyOi8vcHJvYmxlbS8xNzQ1NDcx
Mj4pCiAgICAgLy8gKioqKioqKioqCiAgICAgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHBhcmFtZXRlcnM7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgQVNTRVJU
KCFtX2NvbmZpZ3VyYXRpb24tPmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkuaXNFbXB0eSgp
KTsKICAgICBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSA9IG1fY29uZmlndXJh
dGlvbi0+aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKTsKIAogICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmluZGV4ZWRE
YXRhYmFzZURpcmVjdG9yeSwgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAgICBtX2RhdGFiYXNlUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6RGF0YWJhc2VQcm9jZXNzOjpJbml0aWFsaXplRGF0YWJhc2VQcm9jZXNzKHBhcmFtZXRl
cnMpLCAwKTsKIH0KZGlmZiAtLWdpdCBjL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgdy9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmlu
ZGV4IGZjMzM2ZjM5NDBlZjY3Mzk0NzJlMDg2YjJjNDVkOTJkNTJkNzQ1ZmYuLjAwNTlhZTEzNGE4
ODJkNDMwM2ZiZTllMjY1MmEyM2ExYmEzYWM4OWEgMTAwNjQ0Ci0tLSBjL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
KysrIHcvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCi0jaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC01MSwxMiArNTEsMTQgQEAgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uOjp+V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewogICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uKj46
Oml0ZXJhdG9yIGNvbm5lY3Rpb25JdGVyYXRvciA9IG1fd2ViSURCU2VydmVyQ29ubmVjdGlvbnMu
ZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgICAgIGlmIChjb25uZWN0aW9uSXRl
cmF0b3IgIT0gbV93ZWJJREJTZXJ2ZXJDb25uZWN0aW9ucy5lbmQoKSkKICAgICAgICAgICAgIGNv
bm5lY3Rpb25JdGVyYXRvci0+dmFsdWUtPmRpZFJlY2VpdmVXZWJJREJTZXJ2ZXJDb25uZWN0aW9u
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNl
bmRpZgogICAgIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtNzAsNiArNzIsNyBA
QCB2b2lkIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsCiB7CiB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIHZvaWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpyZWdpc3RlcldlYklE
QlNlcnZlckNvbm5lY3Rpb24oV2ViSURCU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICAgICBBU1NFUlQoIW1fd2ViSURCU2VydmVyQ29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlv
bi5tZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpKSk7CkBAIC04NSw3ICs4OCw4IEBAIHZvaWQg
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVXZWJJREJTZXJ2ZXJDb25uZWN0
aW9uKFdlYklEQlNlcnZlckNvCiAKICAgICBtX3dlYklEQlNlcnZlckNvbm5lY3Rpb25zLnJlbW92
ZShjb25uZWN0aW9uLm1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkpOwogfQorI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRpZmYgLS1naXQgYy9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCB3L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGMwNTE1ODVjNzAyNzQ3MzEzYzVhZmY1N2M0NGYx
ZmFlYTM3ZWJkYmEuLjYxYTdjYTQxODNmOTkyNDMyYTZhNWNmMzhjMDcyOTkyZWM3OGVkNWQgMTAw
NjQ0Ci0tLSBjL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyB3L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0
YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0zMSw3ICszMSw3IEBA
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ4LDggKzQ4LDEwIEBAIHB1YmxpYzoK
ICAgICAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBt
X2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAg
IHZvaWQgcmVnaXN0ZXJXZWJJREJTZXJ2ZXJDb25uZWN0aW9uKFdlYklEQlNlcnZlckNvbm5lY3Rp
b24mKTsKICAgICB2b2lkIHJlbW92ZVdlYklEQlNlcnZlckNvbm5lY3Rpb24oV2ViSURCU2VydmVy
Q29ubmVjdGlvbiYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CkBAIC02NywxMCArNjks
MTIgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFdlYklEQlNlcnZlckNvbm5lY3Rpb24qPiBtX3dlYklEQlNlcnZlckNvbm5lY3Rpb25zOworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogI2VuZGlm
IC8vIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256100</attachid>
            <date>2015-07-03 06:48:57 -0700</date>
            <delta_ts>2015-07-06 08:33:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150703154801.patch</filename>
            <type>text/plain</type>
            <size>5662</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliYTczNGZlMmRhZDNh
MzU0MGYyMTFjZTYxOTg5ZmY1OTQ4NzE4Ny4uNjI3ZDBjZDFjMDIxODZlNzIxNzYyMDBhMTczMDAw
YWVjNTY0NDlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTAzICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmNwcDoKKyAgICAgICAgRml4IFRFWFRVUkVfTUFQUEVSX0dMIHZzIFRFWFRV
UkVfTUFQUEVSIGd1YXJkcyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBFTkFCTEVfT1BFTkdM
PU9GRiBvbmx5IGRpc2FibGVzIHRoZSBHTC1yZWxhdGVkIHBhcnRzLgorCiAyMDE1LTA3LTAzICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW1N0
cmVhbXMgQVBJXSBSZW1vdmUgUmVhZGFibGVTdHJlYW0gYW5kIFJlYWRlciBjYW5jZWwoKSBjdXN0
b20gYmluZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdiZjk1YmM5ZTRkZTllMjY1NWRjNGU2OWVmMmRlY2Rj
YzUwMjE0ZWQuLjU3ZWExZjg4MjVjMGVlNjQxNTEyNjhmYTkzOGM4ZTdjODY5YzdiMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNy0wMyAgRW1hbnVlbGUgQWluYSAgPGVtYW51
ZWxlLmFpbmFAY29sbGFib3JhLmNvbT4KKworICAgICAgICBGaXggRU5BQkxFX09QRU5HTD1PRkYg
YnVpbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDY1MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgUHJvdGVj
dCBEcmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZygp
IGNhbGwKKyAgICAgICAgd2l0aCB0aGUgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSBndWFyZC4KKwog
MjAxNS0wNy0wMiAgRW1hbnVlbGUgQWluYSAgPGVtYW51ZWxlLmFpbmFAY29sbGFib3JhLmNvbT4K
IAogICAgICAgICBGaXggYnVpbGQgd2l0aCBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykgYW5kICFF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4
ZjJmZjRiMTkxODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uZGM2Zjc2NDQyM2Y0ZjJjNTczODQ5
Yzk3ZDJmYzA4YzJjYzYxOGY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTIwLDYgKzIw
LDggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCiAjaW5jbHVkZSAiQml0bWFwVGV4dHVyZUdMLmgiCiAKICNpbmNsdWRlICJFeHRlbnNp
b25zM0QuaCIKQEAgLTM3NywzICszNzksNCBAQCBJbnRTaXplIEJpdG1hcFRleHR1cmVHTDo6c2l6
ZSgpIGNvbnN0CiB9CiAKIH07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYgLy8gVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCAwYmNlOGM3NDIwZDdk
MGE0NGIzMDllMjZmNTY2YTkyMTkzZTQ4NjBhLi5kZTJmYTZiYTExMmNjMGY3ZWE2Y2ZhOTFkNTU0
Y2Q3YWE1Y2U1ODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMjAsNiArMjAsOCBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKIAogI2luY2x1ZGUgIkJpdG1hcFRleHR1cmVH
TC5oIgpAQCAtNTIsOCArNTQsNiBAQAogI2RlZmluZSBHTF9VTlBBQ0tfU0tJUF9ST1dTIDB4MENG
MwogI2VuZGlmCiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHN0cnVjdCBUZXh0dXJlTWFwcGVyR0xEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKQEAgLTc5OCwxMiArNzk4LDExIEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4
dHVyZU1hcHBlckdMOjpjcmVhdGVUZXh0dXJlKCkKICAgICByZXR1cm4gYWRvcHRSZWYodGV4dHVy
ZSk7CiB9CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiBzdGQ6OnVuaXF1ZV9wdHI8VGV4
dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpCiB7
CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlckdMPigpOwogfQotI2Vu
ZGlmCiAKIH07Ci0jZW5kaWYKKworI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmluZGV4IDU4YmM2NTFiOGY1
MDllYTFiYWE3ZGQxYTdiZTc4YWE4ZGNhOWQwNjQuLjhmOTFjOTUwZWNjNjA2NzgwZjBmM2U5ODZh
MmFmZDFhYTRjNzhiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
LmNwcApAQCAtMjAsOSArMjAsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbS5oIgogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogI2luY2x1ZGUgIkxlbmd0aEZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVy
R0wuaCIKQEAgLTQwMSw0ICs0MDMsNCBAQCBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFBhc3NSZQogfQogCiB9
Ci0jZW5kaWYKKyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5k
ZXggMDFjNWU1ODk3YmRlOTdjOTVlYThlZTg4ODFiNTNhYzcxOGM1NzY1Yi4uZTEzYWU4ODA1YmQx
MTcxNGQyMTkwMDIzNzllZmUyZTZkMDNiMTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtMTM5MCwxNiAr
MTM5MCwyMiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZQogCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlRGlkUmVsYXVuY2hXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3
QmFzZSkKIHsKKyNpZiBVU0UoUkVESVJFQ1RFRF9YQ09NUE9TSVRFX1dJTkRPVykgfHwgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdl
YmtpdFdlYlZpZXdCYXNlLT5wcml2OwogICAgIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5n
QXJlYSA9IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhUHJveHlJbXBsKj4ocHJpdi0+cGFnZVByb3h5
LT5kcmF3aW5nQXJlYSgpKTsKICAgICBBU1NFUlQoZHJhd2luZ0FyZWEpOworICAgIFdpbmRvdyBu
YXRpdmU7CiAjaWYgVVNFKFJFRElSRUNURURfWENPTVBPU0lURV9XSU5ET1cpCiAgICAgaWYgKCFw
cml2LT5yZWRpcmVjdGVkV2luZG93KQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEt
PnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhwcml2LT5yZWRpcmVjdGVkV2lu
ZG93LT53aW5kb3dJRCgpKTsKLSNlbHNlCisgICAgbmF0aXZlID0gcHJpdi0+cmVkaXJlY3RlZFdp
bmRvdy0+d2luZG93SUQoKTsKKyNlbGlmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBpZiAo
IWd0a193aWRnZXRfZ2V0X3JlYWxpemVkKEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcoR0RLX1dJTkRPV19YSUQoZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19X
SURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSkpOworICAgIG5hdGl2ZSA9IEdES19XSU5ET1dfWElE
KGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKHdlYmtpdFdlYlZpZXdCYXNlKSkpOwog
I2VuZGlmCisgICAgZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3Np
dGluZyhuYXRpdmUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0od2Via2l0V2ViVmlld0Jhc2Up
OworI2VuZGlmIC8vIFVTRShSRURJUkVDVEVEX1hDT01QT1NJVEVfV0lORE9XKSB8fCBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256214</attachid>
            <date>2015-07-06 08:33:42 -0700</date>
            <delta_ts>2015-07-22 00:23:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150706173243.patch</filename>
            <type>text/plain</type>
            <size>6305</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc4NTNiZWVkZjgxNjNm
OGFhYjE0OGQ1Y2NkODgxNzNmZjk4NmRhZC4uNjI0YjZiMzM1OWExMTY4MzliOTljNjRjNWFjNTEx
ODIyMjI4OWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTAzICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmNwcDoKKyAgICAgICAgRml4IFRFWFRVUkVfTUFQUEVSX0dMIHZzIFRFWFRV
UkVfTUFQUEVSIGd1YXJkcyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBFTkFCTEVfT1BFTkdM
PU9GRiBvbmx5IGRpc2FibGVzIHRoZSBHTC1yZWxhdGVkIHBhcnRzLgorCiAyMDE1LTA3LTA2ICBa
YW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGaXgg
YnVpbGQgZXJyb3JzIHdpdGggT3BlbkdMIEVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmVmZjI4YzMzODNkYzVl
ZmEzZWE4N2ZhM2ZmZTc2NjM4ZTYyYmUzNS4uZjZlN2RiNzY4YjE3N2E0ZjMwNjc3ODQ1ODY5MGI2
ZGMyNWYzODM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTAzICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3Bw
OgorICAgICAgICBQcm90ZWN0IERyYXdpbmdBcmVhSW1wbDo6c2V0TmF0aXZlU3VyZmFjZUhhbmRs
ZUZvckNvbXBvc2l0aW5nKCkgY2FsbAorICAgICAgICB3aXRoIHRoZSBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpIGd1YXJkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
LmNwcDoKKyAgICAgICAgKExheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6IEFkZCBBU1NFUlRfTk9UX1JF
QUNIRUQoKSB3aGVuIHRoZXJlJ3Mgbm8KKyAgICAgICAgYXBwcm9wcmlhdGUgaW1wbGVtZW50YXRp
b24uCisKIDIwMTUtMDctMDIgIEVtYW51ZWxlIEFpbmEgIDxlbWFudWVsZS5haW5hQGNvbGxhYm9y
YS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkIHdpdGggRU5BQkxFKERBVEFCQVNFX1BST0NFU1Mp
IGFuZCAhRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCmluZGV4
IDBlNTJkN2I0YjI1ODQ1YTYwMzhkYjQ1ZWQ4ZjhhOWFiZDRhZWY5OTQuLjQ0Y2NmNjAwMTZmMWNj
MGEwNmVhZDY2MzA2NTc1Mjg4ODE3ODEwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCkBAIC0y
MCw2ICsyMCw4IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQogI2luY2x1ZGUgIkJpdG1hcFRleHR1cmVHTC5oIgogCiAjaW5jbHVkZSAi
RXh0ZW5zaW9uczNELmgiCkBAIC0zNzcsMyArMzc5LDQgQEAgSW50U2l6ZSBCaXRtYXBUZXh0dXJl
R0w6OnNpemUoKSBjb25zdAogfQogCiB9OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmIC8v
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggNGM1NDgw
NTYyMzVlMzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNS4uNDc0MjQ0ZWIzNjc1ZGQ3MTU4YTBm
Mzk0ODdhZGJmMGI5MzRmNjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTIwLDYgKzIw
LDggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCiAKICNpbmNsdWRlICJCaXRtYXBU
ZXh0dXJlR0wuaCIKQEAgLTUyLDggKzU0LDYgQEAKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUk9X
UyAweDBDRjMKICNlbmRpZgogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdHJ1Y3QgVGV4dHVyZU1hcHBlckdMRGF0YSB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CkBAIC03OTgsMTIgKzc5OCwxMSBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1
cmU+IFRleHR1cmVNYXBwZXJHTDo6Y3JlYXRlVGV4dHVyZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVm
KHRleHR1cmUpOwogfQogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogc3RkOjp1bmlxdWVf
cHRyPFRleHR1cmVNYXBwZXI+IFRleHR1cmVNYXBwZXI6OnBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0
ZWQoKQogewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJHTD4oKTsK
IH0KLSNlbmRpZgogCiB9OwotI2VuZGlmCisKKyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAppbmRleCA1OGJj
NjUxYjhmNTA5ZWExYmFhN2RkMWE3YmU3OGFhOGRjYTlkMDY0Li44ZjkxYzk1MGVjYzYwNjc4MGYw
ZjNlOTg2YTJhZmQxYWE0Yzc4YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbS5jcHAKQEAgLTIwLDkgKzIwLDExIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW0uaCIKIAotI2lmIFVTRShURVhUVVJFX01BUFBFUikKICNpbmNsdWRlICJM
ZW5ndGhGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlckdMLmgiCkBAIC00MDEsNCArNDAzLDQgQEAgUGFzc1JlZlB0cjxUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShQYXNzUmUK
IH0KIAogfQotI2VuZGlmCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwCmluZGV4IGUyNzZjNjlkN2YzOGRlM2ZhNjQ3ZGY3MzY3Yzc4MWQwNDMyNmEyOTYuLmJkODQy
M2IzNWMzZWZlYWM5NTgxNDEyNjYzNjk0Y2IzNTUzODEzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTEz
OTAsMTkgKzEzOTAsMjEgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUV4aXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2UKIAogdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2VzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0
V2ViVmlld0Jhc2UpCiB7Ci0jaWYgUExBVEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYg
KFVTRShSRURJUkVDVEVEX1hDT01QT1NJVEVfV0lORE9XKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpKQogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYmtpdFdlYlZpZXdC
YXNlLT5wcml2OwogICAgIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5nQXJlYSA9IHN0YXRp
Y19jYXN0PERyYXdpbmdBcmVhUHJveHlJbXBsKj4ocHJpdi0+cGFnZVByb3h5LT5kcmF3aW5nQXJl
YSgpKTsKICAgICBBU1NFUlQoZHJhd2luZ0FyZWEpOworICAgIFdpbmRvdyBuYXRpdmU7CiAjaWYg
VVNFKFJFRElSRUNURURfWENPTVBPU0lURV9XSU5ET1cpCiAgICAgaWYgKCFwcml2LT5yZWRpcmVj
dGVkV2luZG93KQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1
cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhwcml2LT5yZWRpcmVjdGVkV2luZG93LT53aW5kb3dJ
RCgpKTsKLSNlbHNlCisgICAgbmF0aXZlID0gcHJpdi0+cmVkaXJlY3RlZFdpbmRvdy0+d2luZG93
SUQoKTsKKyNlbGlmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBpZiAoIWd0a193aWRnZXRf
Z2V0X3JlYWxpemVkKEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSkKICAgICAgICAgcmV0
dXJuOwotICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRp
bmcoR0RLX1dJTkRPV19YSUQoZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQod2Via2l0
V2ViVmlld0Jhc2UpKSkpOworICAgIG5hdGl2ZSA9IEdES19XSU5ET1dfWElEKGd0a193aWRnZXRf
Z2V0X3dpbmRvdyhHVEtfV0lER0VUKHdlYmtpdFdlYlZpZXdCYXNlKSkpOwogI2VuZGlmCisgICAg
ZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhuYXRpdmUp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0od2Via2l0V2ViVmlld0Jhc2UpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9z
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5j
cHAKaW5kZXggMGY3YzIyZWMwMTk3OTE5NWY2ODUyNGU3N2Y3N2FkYzNlM2JkNjc2YS4uMDU3Zjdm
NDI2MTJjMmFmNjgwNWRmM2ZhNzdiNTMyZmVmZGQ1M2EzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcApAQCAtNDgsNiArNDgs
NyBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQ
YWdlKiB3ZWJQYWdlKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFn
ZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257245</attachid>
            <date>2015-07-22 00:23:54 -0700</date>
            <delta_ts>2015-07-22 00:41:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150722092238.patch</filename>
            <type>text/plain</type>
            <size>19264</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTYyZDE3MWU2NjBhYjU4
NTdkNmU3MzZlNjUzYjI2OWMyNjYwZTQ2OS4uNTQxMjNkMzc0Y2VhZWEwNjJjZjI2NGU2Njk1MTc1
YzIzMzc3NzkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTAyICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBi
dWlsZCB3aXRoIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKSBhbmQgIUVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
R2l2ZW4gdGhhdCBJTkRFWEVEX0RBVEFCQVNFIGF0IHRoZSBtb21lbnQgaXMgdGhlIG9ubHkgdXNl
ciBvZgorICAgICAgICBEQVRBQkFTRV9QUk9DRVNTLCB0aGVpciBndWFyZHMgZ290IGluZXZpdGFi
bHkgbWl4ZWQgdXAgd2l0aCB2YXJpb3VzCisgICAgICAgIGxldmVscyBvZiBjb25zaXN0ZW5jeS4g
U2luY2UgdGhlIC0tbm8taW5kZXhlZC1kYXRhYmFzZSBmbGFnIGZyb20KKyAgICAgICAgYnVpbGQt
d2Via2l0IGxlYXZlcyBEQVRBQkFTRV9QUk9DRVNTIGVuYWJsZWQsIHRoaXMgcmVzdWx0ZWQgaW4g
YnVpbGQKKyAgICAgICAgZmFpbHVyZXMuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0RhdGFi
YXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL0RhdGFi
YXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2Vz
L1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIEFk
ZCBtaXNzaW5nIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKSBndWFyZHMgYW5kIG1vdmVkIHRoZQor
ICAgICAgICBtaXNwbGFjZWQgb25lcy4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVByb2Nlc3MuaDoKKyAgICAgICAgRGl0dG8sIGFuZCBhbHNvIGFkZCBhIGZvcndhcmQgZGVj
bGFyYXRpb24gZm9yIFNlY3VyaXR5T3JpZ2luRGF0YSBzaW5jZQorICAgICAgICB3aXRoIElOREVY
RURfREFUQUJBU0Ugb2ZmIFNlY3VyaXR5T3JpZ2luRGF0YS5oIGlzIG5vIGxvbmdlciBpbmNsdWRl
ZAorICAgICAgICBieSB3YXkgb2YgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyLmguCisKIDIw
MTUtMDctMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBbTWFjXSAiT3BlbiBJbWFnZSBJbiBOZXcgV2luZG93IiBjb250ZXh0
IG1lbnUgaXRlbSBkb2VzIG5vdGhpbmcgb24gYW4gaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggNjE2NTNjYWMxNzhk
MzRmYWE0NjlmZjEwNmU1MDU0ZjdkNzc5MDNmMi4uOTJmYzU0NzI4ZDZlZDk0NTIwNmMyNGU1YjE0
NGMyZDg4ZDA5ZWM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTk1LDYgKzk1LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nl
c3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmUKICAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwogfQogCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2U+IERhdGFiYXNlUHJvY2Vz
czo6Z2V0T3JDcmVhdGVVbmlxdWVJREJEYXRhYmFzZShjb25zdCBVbmlxdWVJREJEYXRhYmFzZUlk
ZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2lkYkRhdGFi
YXNlcy5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7CkBAIC0xMTQsOSArMTE1LDExIEBAIHZvaWQg
RGF0YWJhc2VQcm9jZXNzOjpyZW1vdmVVbmlxdWVJREJEYXRhYmFzZShjb25zdCBVbmlxdWVJREJE
YXRhYmFzZSYgZGF0YWJhc2UpCiAKICAgICBtX2lkYkRhdGFiYXNlcy5yZW1vdmUoaWRlbnRpZmll
cik7CiB9CisjZW5kaWYKIAogdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVEYXRhYmFz
ZVByb2Nlc3MoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogeworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIC8vICoqKioqKioqKgog
ICAgIC8vIElNUE9SVEFOVDogRG8gbm90IGNoYW5nZSB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBm
b3IgaW5kZXhlZCBkYXRhYmFzZXMgb24gZGlzayB3aXRob3V0IGZpcnN0IGNvbnN1bHRpbmcgYSBy
ZXZpZXdlciBmcm9tIEFwcGxlICg8cmRhcjovL3Byb2JsZW0vMTc0NTQ3MTI+KQogICAgIC8vICoq
KioqKioqKgpAQCAtMTI1LDEyICsxMjgsMTUgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRp
YWxpemVEYXRhYmFzZVByb2Nlc3MoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXIKICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5pbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCiAgICAgZW5zdXJlSW5kZXhlZERh
dGFiYXNlUmVsYXRpdmVQYXRoRXhpc3RzKFN0cmluZ0ltcGw6OmVtcHR5KCkpOworI2VuZGlmCiB9
CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpl
bnN1cmVJbmRleGVkRGF0YWJhc2VSZWxhdGl2ZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJiByZWxh
dGl2ZVBhdGgpCiB7CiAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMs
ICZEYXRhYmFzZVByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMsIGFic29sdXRlSW5kZXhlZERhdGFi
YXNlUGF0aEZyb21EYXRhYmFzZVJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhdGgpKSk7CiB9CisjZW5k
aWYKIAogdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5n
JiBwYXRoKQogewpAQCAtMTQwLDEyICsxNDYsMTQgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmVu
c3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgICAgICBMT0dfRVJST1IoIkZh
aWxlZCB0byBtYWtlIGFsbCBkaXJlY3RvcmllcyBmb3IgcGF0aCAnJXMnIiwgcGF0aC51dGY4KCku
ZGF0YSgpKTsKIH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogU3RyaW5nIERhdGFi
YXNlUHJvY2Vzczo6YWJzb2x1dGVJbmRleGVkRGF0YWJhc2VQYXRoRnJvbURhdGFiYXNlUmVsYXRp
dmVQYXRoKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVQYXRoKQogewogICAgIC8vIEZJWE1FOiBwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoKSB3YXMgb3JpZ2luYWxseSBkZXNpZ25lZCB0byBhcHBlbmQg
aW5kaXZpZHVhbCBhdG9taWMgY29tcG9uZW50cy4KICAgICAvLyBXZSBkb24ndCBoYXZlIGEgZnVu
Y3Rpb24gZGVzaWduZWQgdG8gYXBwZW5kIGEgbXVsdGktY29tcG9uZW50IHN1YnBhdGgsIGJ1dCB3
ZSBzaG91bGQuCiAgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2luZGV4ZWRE
YXRhYmFzZURpcmVjdG9yeSwgcmVsYXRpdmVQYXRoKTsKIH0KKyNlbmRpZgogCiB2b2lkIERhdGFi
YXNlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayhzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0
YXNrKQogewpAQCAtMjI0LDYgKzIzMiw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpmZXRjaFdl
YnNpdGVEYXRhKFNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgdWluCiAgICAg
ICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJv
Y2Vzc1Byb3h5OjpEaWRGZXRjaFdlYnNpdGVEYXRhKGNhbGxiYWNrSUQsIHdlYnNpdGVEYXRhKSwg
MCk7CiAgICAgfSkpOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgaWYgKHdl
YnNpdGVEYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMpIHsKICAg
ICAgICAgLy8gRklYTUU6IFBpY2sgdGhlIHJpZ2h0IGRhdGFiYXNlIHN0b3JlIGJhc2VkIG9uIHRo
ZSBzZXNzaW9uIElELgogICAgICAgICBwb3N0RGF0YWJhc2VUYXNrKHN0ZDo6bWFrZV91bmlxdWU8
QXN5bmNUYXNrPihbY2FsbGJhY2tBZ2dyZWdhdG9yLCB3ZWJzaXRlRGF0YVR5cGVzLCB0aGlzXSB7
CkBAIC0yMzYsNiArMjQ1LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURh
dGEoU2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCB1aW4KICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KSk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRGF0YWJhc2VQcm9j
ZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNp
dGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZp
ZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTI2MCw2ICsyNzAsNyBAQCB2b2lkIERh
dGFiYXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50
NjRfdCB3ZWJzaXRlRGF0YQogICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGEoY2Fs
bGJhY2tJRCksIDApOwogICAgIH0pKTsKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
ICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJh
c2VzKSB7CiAgICAgICAgIHBvc3REYXRhYmFzZVRhc2soc3RkOjptYWtlX3VuaXF1ZTxBc3luY1Rh
c2s+KFt0aGlzLCBjYWxsYmFja0FnZ3JlZ2F0b3IsIG1vZGlmaWVkU2luY2VdIHsKIApAQCAtMjY3
LDYgKzI3OCw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhCiAgICAgICAgICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICAgICAgfSkp
OwogICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFU
eXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3VyaXR5T3JpZ2luRGF0
YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC0yOTEsNiArMzAzLDcgQEAgdm9pZCBEYXRhYmFz
ZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQs
IHVpbnQ2NF90IHcKICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OkRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyhjYWxsYmFja0lEKSwgMCk7CiAgICAgfSkpOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJE
YXRhYmFzZXMpIHsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4+IHNlY3VyaXR5T3JpZ2luczsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzZWN1cml0eU9y
aWdpbkRhdGEgOiBzZWN1cml0eU9yaWdpbkRhdGFzKQpAQCAtMzAyLDggKzMxNSwxMCBAQCB2b2lk
IERhdGFiYXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNl
c3Npb25JRCwgdWludDY0X3QgdwogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgICAgIH0pKTsKICAgICB9CisjZW5kaWYK
IH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogVmVjdG9yPFJlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4+IERhdGFiYXNlUHJvY2Vzczo6aW5kZXhlZERhdGFiYXNlT3JpZ2lu
cygpCiB7CiAgICAgaWYgKG1faW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKQEAg
LTMxOSw3ICszMzQsOSBAQCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4g
RGF0YWJhc2VQcm9jZXNzOjppbmRleGVkRGF0YWJhc2VPcmlnaW5zKAogCiAgICAgcmV0dXJuIHNl
Y3VyaXR5T3JpZ2luczsKIH0KKyNlbmRpZgogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiBzdGF0aWMgdm9pZCByZW1vdmVBbGxEYXRhYmFzZXNGb3JPcmlnaW5QYXRoKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luUGF0aCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2Rp
ZmllZFNpbmNlKQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWxzbyBjbG9zZS9pbnZhbGlk
YXRlIGFueSBsaXZlIGhhbmRsZXMgdG8gdGhlIGRhdGFiYXNlIGZpbGVzIHdlIGFyZSBhYm91dCB0
byBkZWxldGUuCkBAIC0zNzMsNiArMzkwLDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRlbGV0
ZUluZGV4ZWREYXRhYmFzZUVudHJpZXNNb2RpZmllZFNpbmNlKHN0ZDo6Y2hyb25vOjpzeXMKICAg
ICBmb3IgKGF1dG8mIG9yaWdpblBhdGggOiBvcmlnaW5QYXRocykKICAgICAgICAgcmVtb3ZlQWxs
RGF0YWJhc2VzRm9yT3JpZ2luUGF0aChvcmlnaW5QYXRoLCBtb2RpZmllZFNpbmNlKTsKIH0KKyNl
bmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgK
aW5kZXggNDdjNjkyNTg2Y2ZmOWQzMGU5Y2Q3MTg2MzQ0Y2I5MzdmMGZlZjY0MC4uZmZhY2RmNmIz
MjI1MzE4MjY5ZWUyNDhjYTg0Yjg1MzA0MTA4YWFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFz
cyBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBVbmlxdWVJREJEYXRhYmFz
ZTsKIAogc3RydWN0IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKK3N0cnVjdCBT
ZWN1cml0eU9yaWdpbkRhdGE7CiAKIGNsYXNzIERhdGFiYXNlUHJvY2VzcyA6IHB1YmxpYyBDaGls
ZFByb2Nlc3MgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGFiYXNlUHJvY2Vzcyk7CkBA
IC01MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRGF0YWJhc2VQcm9jZXNzJiBzaW5n
bGV0b24oKTsKICAgICB+RGF0YWJhc2VQcm9jZXNzKCk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKICAgICBjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSgpIGNv
bnN0IHsgcmV0dXJuIG1faW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OyB9CiAKICAgICBSZWZQdHI8
VW5pcXVlSURCRGF0YWJhc2U+IGdldE9yQ3JlYXRlVW5pcXVlSURCRGF0YWJhc2UoY29uc3QgVW5p
cXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CkBAIC01OCw2ICs2MCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZW5zdXJlSW5kZXhlZERhdGFiYXNlUmVsYXRpdmVQYXRoRXhpc3RzKGNvbnN0IFN0
cmluZyYpOwogICAgIFN0cmluZyBhYnNvbHV0ZUluZGV4ZWREYXRhYmFzZVBhdGhGcm9tRGF0YWJh
c2VSZWxhdGl2ZVBhdGgoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKIAogICAgIFdvcmtRdWV1ZSYg
cXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdldCgpOyB9CiAKQEAgLTg5LDkgKzkyLDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIHVp
bnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVf
cG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJz
aXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywg
dWludDY0X3QgY2FsbGJhY2tJRCk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gaW5kZXhlZERhdGFiYXNl
T3JpZ2lucygpOwogICAgIHZvaWQgZGVsZXRlSW5kZXhlZERhdGFiYXNlRW50cmllc0Zvck9yaWdp
bnMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+Jik7CiAgICAg
dm9pZCBkZWxldGVJbmRleGVkRGF0YWJhc2VFbnRyaWVzTW9kaWZpZWRTaW5jZShzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOworI2VuZGlmCiAKICAg
ICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdvcmsgcXVldWUgdGhyZWFkIG9ubHkKICAgICB2b2lkIHBl
cmZvcm1OZXh0RGF0YWJhc2VUYXNrKCk7CkBAIC0xMDEsOSArMTA2LDExIEBAIHByaXZhdGU6CiAK
ICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgU3RyaW5nIG1faW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OwogCiAgICAgSGFzaE1h
cDxVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIsIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4+
IG1faWRiRGF0YWJhc2VzOworI2VuZGlmCiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwogICAgIE11dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGU3NjQ2NzAxOTk1YjY4Yzg3
ODM2YTNmZjk3MDk1MWYzNzRkOWI2NDMuLjk4OGMzMTgyNDdlZmVkNjZhYWVkMDNkYWIyNjE4YTE4
OTcxMTZkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC01OSwzMyAr
NTksMzkgQEAgdm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIElEQkNvbm5lY3Rpb25NYXA6Oml0ZXJh
dG9yIGJhY2tlbmRJdGVyYXRvciA9IG1faWRiQ29ubmVjdGlvbnMuZmluZChkZWNvZGVyLmRlc3Rp
bmF0aW9uSUQoKSk7CiAgICAgICAgIGlmIChiYWNrZW5kSXRlcmF0b3IgIT0gbV9pZGJDb25uZWN0
aW9ucy5lbmQoKSkKICAgICAgICAgICAgIGJhY2tlbmRJdGVyYXRvci0+dmFsdWUtPmRpZFJlY2Vp
dmVEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJl
cGx5KQogeworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVj
dGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIElEQkNvbm5lY3Rpb25NYXA6
Oml0ZXJhdG9yIGJhY2tlbmRJdGVyYXRvciA9IG1faWRiQ29ubmVjdGlvbnMuZmluZChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgICAgIGlmIChiYWNrZW5kSXRlcmF0b3IgIT0gbV9pZGJD
b25uZWN0aW9ucy5lbmQoKSkKICAgICAgICAgICAgIGJhY2tlbmRJdGVyYXRvci0+dmFsdWUtPmRp
ZFJlY2VpdmVTeW5jRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2RlciwgcmVwbHkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CisjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAgICAgLy8gVGhlIFdlYlByb2Nlc3MgaGFzIGRpc2Nvbm5lY3RlZCwgY2xv
c2UgYWxsIG9mIHRoZSBjb25uZWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggaXQKICAgICB3aGlsZSAo
IW1faWRiQ29ubmVjdGlvbnMuaXNFbXB0eSgpKQogICAgICAgICByZW1vdmVEYXRhYmFzZVByb2Nl
c3NJREJDb25uZWN0aW9uKG1faWRiQ29ubmVjdGlvbnMuYmVnaW4oKS0+a2V5KTsKKyNlbmRpZgog
fQogCiB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQpAQCAtOTMsNiAr
OTksNyBAQCB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsCiAKIH0KIAorI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogdm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlz
aElEQkNvbm5lY3Rpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAg
ICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGlkYkNvbm5lY3Rpb24gPSBE
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjcmVhdGUoKnRoaXMsIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKQEAgLTEwNiw2ICsxMTMsNyBAQCB2b2lkIERhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6cmVtb3ZlRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbih1aW50NjRf
dAogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBpZGJDb25uZWN0aW9u
ID0gbV9pZGJDb25uZWN0aW9ucy50YWtlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAg
ICBpZGJDb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogfQorI2VuZGlm
CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKaW5kZXggMWJhMzk3NjdiN2NhZWQ3MjIzZmFlOTU2ZTcwMTRiNzQ4ZjBiMjIw
Ni4uMmFhZjJjMmQyOTRhY2Y4MmUwNDBhNmQxM2I4ZGZlNTQ0NjZiOWM5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJh
c2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgogCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9Q
Uk9DRVNTKQorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnMuaCIKIApAQCAtMzgsMjAgKzM4LDI0IEBAIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkKIAogdm9pZCBE
YXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICBlbmNvZGVyIDw8IGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKICAgICBlbmNvZGVyIDw8IGlu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgogfQogCiBib29s
IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3Vs
dCkKIHsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW5kZXhlZERhdGFiYXNlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisjZW5k
aWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCBiMTA0NGZhOTJlODliMjhiNjc5ZGFmOWY0ZjQ3YjBjYzEyOWRjNTNj
Li4wYWM0YTM2ZTZmOTE3MmRhMGZjZjQ0ZDE3OGYxYzY0MDA4NmRlZGRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisj
aWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwpAQCAtNDUsMTEgKzQ1LDEzIEBAIHN0cnVjdCBEYXRhYmFzZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgewogICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwg
RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKICAgICBTdHJpbmcgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OwogICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogI2VuZGlmIC8vIERhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCAxNTBjZDEyYzNkODUwYThiODM1NjBiNGUxNzQwOGUxYjI2N2MxYmIw
Li5jNjFlZDc5Yzg5MWRjNGM1NTkwNTFlZTc0MjA2ZGY3OTQ0NjdlZTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQ2NSwxNSArNDY1LDE2IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZURhdGFiYXNlUHJvY2VzcygpCiAKICAgICBtX2Rh
dGFiYXNlUHJvY2VzcyA9IERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpjcmVhdGUodGhpcyk7CiAKLSAg
ICBBU1NFUlQoIW1fY29uZmlndXJhdGlvbi0+aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKS5p
c0VtcHR5KCkpOwotCiAgICAgLy8gKioqKioqKioqCiAgICAgLy8gSU1QT1JUQU5UOiBEbyBub3Qg
Y2hhbmdlIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGZvciBpbmRleGVkIGRhdGFiYXNlcyBvbiBk
aXNrIHdpdGhvdXQgZmlyc3QgY29uc3VsdGluZyBhIHJldmlld2VyIGZyb20gQXBwbGUgKDxyZGFy
Oi8vcHJvYmxlbS8xNzQ1NDcxMj4pCiAgICAgLy8gKioqKioqKioqCiAgICAgRGF0YWJhc2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCisgICAgQVNTRVJUKCFtX2NvbmZpZ3VyYXRpb24tPmluZGV4ZWREQkRhdGFiYXNlRGly
ZWN0b3J5KCkuaXNFbXB0eSgpKTsKICAgICBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVj
dG9yeSA9IG1fY29uZmlndXJhdGlvbi0+aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKTsKIAog
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShw
YXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSwgcGFyYW1ldGVycy5pbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAgICBtX2RhdGFiYXNl
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpJbml0aWFsaXplRGF0YWJh
c2VQcm9jZXNzKHBhcmFtZXRlcnMpLCAwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZjMzM2ZjM5NDBlZjY3Mzk0NzJlMDg2YjJjNDVkOTJkNTJk
NzQ1ZmYuLjAwNTlhZTEzNGE4ODJkNDMwM2ZiZTllMjY1MmEyM2ExYmEzYWM4OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCi0jaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MSwxMiArNTEsMTQgQEAgV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkK
IAogdm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uKj46Oml0ZXJhdG9yIGNvbm5lY3Rpb25JdGVyYXRvciA9IG1fd2ViSURC
U2VydmVyQ29ubmVjdGlvbnMuZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgICAg
IGlmIChjb25uZWN0aW9uSXRlcmF0b3IgIT0gbV93ZWJJREJTZXJ2ZXJDb25uZWN0aW9ucy5lbmQo
KSkKICAgICAgICAgICAgIGNvbm5lY3Rpb25JdGVyYXRvci0+dmFsdWUtPmRpZFJlY2VpdmVXZWJJ
REJTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyNlbmRpZgogICAgIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQpAQCAtNzAsNiArNzIsNyBAQCB2b2lkIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsCiB7CiB9CiAKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIHZvaWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uOjpyZWdpc3RlcldlYklEQlNlcnZlckNvbm5lY3Rpb24oV2ViSURCU2VydmVyQ29ubmVjdGlv
biYgY29ubmVjdGlvbikKIHsKICAgICBBU1NFUlQoIW1fd2ViSURCU2VydmVyQ29ubmVjdGlvbnMu
Y29udGFpbnMoY29ubmVjdGlvbi5tZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpKSk7CkBAIC04
NSw3ICs4OCw4IEBAIHZvaWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVX
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uKFdlYklEQlNlcnZlckNvCiAKICAgICBtX3dlYklEQlNlcnZl
ckNvbm5lY3Rpb25zLnJlbW92ZShjb25uZWN0aW9uLm1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkpOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0
YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGMwNTE1ODVjNzAy
NzQ3MzEzYzVhZmY1N2M0NGYxZmFlYTM3ZWJkYmEuLjYxYTdjYTQxODNmOTkyNDMyYTZhNWNmMzhj
MDcyOTkyZWM3OGVkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0
YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5o
CkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNpZiBF
TkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ4LDgg
KzQ4LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAorI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogICAgIHZvaWQgcmVnaXN0ZXJXZWJJREJTZXJ2ZXJDb25uZWN0aW9uKFdl
YklEQlNlcnZlckNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHJlbW92ZVdlYklEQlNlcnZlckNvbm5l
Y3Rpb24oV2ViSURCU2VydmVyQ29ubmVjdGlvbiYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAg
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CkBAIC02NywxMCArNjksMTIgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAg
IEhhc2hNYXA8dWludDY0X3QsIFdlYklEQlNlcnZlckNvbm5lY3Rpb24qPiBtX3dlYklEQlNlcnZl
ckNvbm5lY3Rpb25zOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFT
RV9QUk9DRVNTKQogI2VuZGlmIC8vIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257251</attachid>
            <date>2015-07-22 00:42:20 -0700</date>
            <delta_ts>2015-09-17 11:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150722094105.patch</filename>
            <type>text/plain</type>
            <size>7679</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmExZTljYjA1NzVjYmFm
YmI4NTRlNjZhM2MyMjZkOTg4YmU1ZWNjMS4uMWNhZDQyMjI3ZTBjNTkxMjc3MTY5ZWQ1ZjY0MzI4
ZTliYWJjNTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTAzICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmNwcDoKKyAgICAgICAgRml4IFRFWFRVUkVfTUFQUEVSX0dMIHZzIFRFWFRV
UkVfTUFQUEVSIGd1YXJkcyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBFTkFCTEVfT1BFTkdM
PU9GRiBvbmx5IGRpc2FibGVzIHRoZSBHTC1yZWxhdGVkIHBhcnRzLgorCiAyMDE1LTA3LTIxICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTm9kZSBoaWdobGlnaHRzIGFyZSB3cm9uZyB3aGVuIHRoZSBwYWdlIGlzIHpvb21lZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDU0MTIzZDM3NGNlYWVhMDYyY2YyNjRlNjY5NTE3NWMyMzM3Nzc5MTAuLmY4
NjI3ZTg1NTYyYTBjNmE2MDIxMDYyMjdiNzg3YjRlOWYyNzA0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wNy0wMyAgRW1hbnVlbGUgQWluYSAgPGVtYW51ZWxlLmFpbmFAY29s
bGFib3JhLmNvbT4KKworICAgICAgICBGaXggRU5BQkxFX09QRU5HTD1PRkYgYnVpbGRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1MTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgUHJvdGVjdCBEcmF3aW5nQXJl
YUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZygpIGNhbGwKKyAgICAg
ICAgd2l0aCB0aGUgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSBndWFyZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChMYXllclRyZWVIb3N0
OjpjcmVhdGUpOiBBZGQgQVNTRVJUX05PVF9SRUFDSEVEKCkgd2hlbiB0aGVyZSdzIG5vCisgICAg
ICAgIGFwcHJvcHJpYXRlIGltcGxlbWVudGF0aW9uLgorCiAyMDE1LTA3LTAyICBFbWFudWVsZSBB
aW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3
aXRoIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKSBhbmQgIUVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZUdMLmNwcAppbmRleCAwZTUyZDdiNGIyNTg0NWE2MDM4ZGI0NWVkOGY4
YTlhYmQ0YWVmOTk0Li45ZGVjOTYwMTc1MGNlYTRiMzQzYjdhYWMxOGJkN2FlZTNkMzdjMzg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFw
VGV4dHVyZUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZUdMLmNwcApAQCAtMjAsNiArMjAsOCBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNpbmNsdWRlICJCaXRt
YXBUZXh0dXJlR0wuaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtMzc3LDMgKzM3
OSw1IEBAIEludFNpemUgQml0bWFwVGV4dHVyZUdMOjpzaXplKCkgY29uc3QKIH0KIAogfTsgLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggNGM1NDgwNTYyMzVlMzk4ZmFjOTgzNjBmZTljYmY2MjVj
NzVhMWQwNS4uNDc0MjQ0ZWIzNjc1ZGQ3MTU4YTBmMzk0ODdhZGJmMGI5MzRmNjU2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKQEAgLTIwLDYgKzIwLDggQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaW5jbHVkZSAiVGV4dHVyZU1h
cHBlckdMLmgiCiAKICNpbmNsdWRlICJCaXRtYXBUZXh0dXJlR0wuaCIKQEAgLTUyLDggKzU0LDYg
QEAKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUk9XUyAweDBDRjMKICNlbmRpZgogCi0jaWYgVVNF
KFRFWFRVUkVfTUFQUEVSKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgVGV4dHVyZU1h
cHBlckdMRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC03OTgsMTIgKzc5
OCwxMSBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJHTDo6Y3JlYXRl
VGV4dHVyZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKHRleHR1cmUpOwogfQogCi0jaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQogc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+IFRleHR1cmVN
YXBwZXI6OnBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0ZWQoKQogewogICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFRleHR1cmVNYXBwZXJHTD4oKTsKIH0KLSNlbmRpZgogCiB9OwotI2VuZGlmCisK
KyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtLmNwcAppbmRleCA1OGJjNjUxYjhmNTA5ZWExYmFhN2RkMWE3YmU3OGFh
OGRjYTlkMDY0Li44ZjkxYzk1MGVjYzYwNjc4MGYwZjNlOTg2YTJhZmQxYWE0Yzc4YjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKQEAgLTIwLDkgKzIwLDEx
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQorCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCIKIAotI2lmIFVT
RShURVhUVVJFX01BUFBFUikKICNpbmNsdWRlICJMZW5ndGhGdW5jdGlvbnMuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCkBAIC00MDEsNCArNDAz
LDQgQEAgUGFzc1JlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06OmNyZWF0ZShQYXNzUmUKIH0KIAogfQotI2VuZGlmCisjZW5kaWYgLy8g
VVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IGUxYzczNzc3MWZkZTMxNzc4
NmY0YWQ1MzAyYTE1OTQ4NWZjYmNhOWYuLjQzMTBmY2EzNDg0ZDkzNzllMGFiNWU2NDI2ZTQxNzMx
NmIzNjJiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTEzNjAsMjIgKzEzNjAsMjQgQEAgdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZUV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShXZWJLaXRXZWJWaWV3
QmFzZSogd2Via2l0V2UKIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJv
Y2VzcyhXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB7Ci0jaWYgUExBVEZP
Uk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgKFVTRShSRURJUkVDVEVEX1hDT01QT1NJVEVf
V0lORE9XKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpKQogICAgIGlmIChQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgIT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpYMTEp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9
IHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2OwogICAgIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3
aW5nQXJlYSA9IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhUHJveHlJbXBsKj4ocHJpdi0+cGFnZVBy
b3h5LT5kcmF3aW5nQXJlYSgpKTsKICAgICBBU1NFUlQoZHJhd2luZ0FyZWEpOworICAgIFdpbmRv
dyBuYXRpdmU7CiAjaWYgVVNFKFJFRElSRUNURURfWENPTVBPU0lURV9XSU5ET1cpCiAgICAgaWYg
KCFwcml2LT5yZWRpcmVjdGVkV2luZG93KQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0Fy
ZWEtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhwcml2LT5yZWRpcmVjdGVk
V2luZG93LT53aW5kb3dJRCgpKTsKLSNlbHNlCisgICAgbmF0aXZlID0gcHJpdi0+cmVkaXJlY3Rl
ZFdpbmRvdy0+d2luZG93SUQoKTsKKyNlbGlmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBp
ZiAoIWd0a193aWRnZXRfZ2V0X3JlYWxpemVkKEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2Up
KSkKICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcoR0RLX1dJTkRPV19YSUQoZ3RrX3dpZGdldF9nZXRfd2luZG93KEdU
S19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSkpOworICAgIG5hdGl2ZSA9IEdES19XSU5ET1df
WElEKGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKHdlYmtpdFdlYlZpZXdCYXNlKSkp
OwogI2VuZGlmCisgICAgZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21w
b3NpdGluZyhuYXRpdmUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0od2Via2l0V2ViVmlld0Jh
c2UpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMGY3YzIyZWMwMTk3OTE5NWY2ODUyNGU3N2Y3N2FkYzNl
M2JkNjc2YS4uMDU3ZjdmNDI2MTJjMmFmNjgwNWRmM2ZhNzdiNTMyZmVmZGQ1M2EzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNw
cApAQCAtNDgsNiArNDgsNyBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVyVHJlZUhv
c3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0R3Rr
OjpjcmVhdGUod2ViUGFnZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZQppbmRleCBkYTY2NGRkMzE4Njg5NjdjNmY1ZDZlN2VhMWYwMmY3ZjdmNDcwNWE0
Li42YWRhNTllZTgwMGI1ZDljNWVjZTdlYTBiY2FjOWRkNGZlNmExNTRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZQpAQCAtOTIsNiArOTIsNyBAQCBXRUJLSVRfT1BUSU9OX0RFUEVORChVU0VfUkVESVJF
Q1RFRF9YQ09NUE9TSVRFX1dJTkRPVyBFTkFCTEVfWDExX1RBUkdFVCkKIFdFQktJVF9PUFRJT05f
REVQRU5EKFVTRV9HU1RSRUFNRVJfR0wgRU5BQkxFX09QRU5HTCkKIFdFQktJVF9PUFRJT05fREVQ
RU5EKFVTRV9HU1RSRUFNRVJfR0wgRU5BQkxFX1ZJREVPKQogV0VCS0lUX09QVElPTl9ERVBFTkQo
VVNFX0dTVFJFQU1FUl9NUEVHVFMgRU5BQkxFX1ZJREVPKQorV0VCS0lUX09QVElPTl9ERVBFTkQo
RU5BQkxFX1dBWUxBTkRfVEFSR0VUIEVOQUJMRV9PUEVOR0wpCiAKIFNFVF9BTkRfRVhQT1NFX1RP
X0JVSUxEKEVOQUJMRV9ERVZFTE9QRVJfTU9ERSAke0RFVkVMT1BFUl9NT0RFfSkKIGlmIChERVZF
TE9QRVJfTU9ERSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5M2Zj
NWVkNmFmNmVkNmJkYTc3YzRjMjZmNGQzZDExNWE3YmVkZjIxLi44YjFhMmJiNjM1MjkwMGQ3MzUz
MTkwYjVhOGMxNmY0ZDI1Mzg5YWEzIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDctMjIgIEVtYW51ZWxlIEFpbmEgIDxlbWFudWVs
ZS5haW5hQGNvbGxhYm9yYS5jb20+CisKKyAgICAgICAgRml4IEVOQUJMRV9PUEVOR0w9T0ZGIGJ1
aWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2
NTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTogTWFrZSBFTkFCTEVfV0FZTEFORF9UQVJHRVQg
ZGVwZW5kIG9uCisgICAgICAgIEVOQUJMRV9PUEVOR0wgZHVlIHRvIEVHTCB1c2FnZS4KKwogMjAx
NS0wNy0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlc3VycmVjdCBDTWFrZSBidWlsZCBvbiBXaW5kb3dzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261403</attachid>
            <date>2015-09-17 11:18:09 -0700</date>
            <delta_ts>2015-09-17 16:49:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150917201754.patch</filename>
            <type>text/plain</type>
            <size>18787</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiYzViMmM5MjM4MTM0
MTNiZmU0ZmFmYTBmM2Y2YzkzYTk4MzMxYy4uYzgzOTkyZjJlM2Y1N2Y2NWUxMjA4NWM5YzlkNWI5
ZTE0MzllNGU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA5LTE3ICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICBGaXggVEVYVFVSRV9NQVBQRVJfR0wgdnMu
IFRFWFRVUkVfTUFQUEVSIGd1YXJkcyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBFTkFCTEVf
T1BFTkdMPU9GRiBvbmx5IGRpc2FibGVzIHRoZSBHTC1yZWxhdGVkIHBhcnRzLgorCiAyMDE1LTAx
LTA4ICBHd2FuZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29y
ZGluYXRlZEdyYXBoaWNzXSBOb24tb3ZlcmxheSBzY3JvbGxiYXIgaXMgbm90IHJlbmRlcmVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggOGMwNmExY2IxMWVmNTQ2MjU4YzA1NjlmODhkMzNjYWUyYzQ0ZDExZi4uYmU4
NjRjMGM4NTI0OWZkNTc3MGQxYzI2OTE1NjRkMzcxMzc4ZmE0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQwIEBACisyMDE1LTA5LTE3ICBFbWFudWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xs
YWJvcmEuY29tPgorCisgICAgICAgIEZpeCBFTkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VS
ZWFsaXplKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRHJhdyk6CisgICAgICAgICh3ZWJr
aXRXZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2Vzcyk6CisgICAgICAgIFJlcGxhY2UgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKSB3aXRoIFVTRShURVhUVVJFX01BUFBFUikgYXJvdW5kCisgICAg
ICAgIHdlYmtpdFdlYlZpZXdSZW5kZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nUmVzdWx0cygpCisg
ICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6RHJh
d2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lmg6CisgICAgICAgIFJl
cGxhY2UgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSB3aXRoIFVTRShURVhUVVJFX01BUFBFUikgYXJv
dW5kCisgICAgICAgIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZygpLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFsaXplU3RvcmUpOgorICAgICAgICBE
ZWZhdWx0IHRvIG5vIEFDIGlmIG5vIEdMIHN1cHBvcnQgaGFzIGJlZW4gYnVpbHQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICBS
ZXBsYWNlIFVTRShURVhUVVJFX01BUFBFUl9HTCkgd2l0aCBVU0UoVEVYVFVSRV9NQVBQRVIpIGFy
b3VuZAorICAgICAgICBTZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICBSZXBsYWNlIFVTRShURVhUVVJFX01BUFBFUl9HTCkgd2l0aCBVU0UoVEVYVFVSRV9NQVBQRVIp
IGFyb3VuZAorICAgICAgICBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoKS4K
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcpOgorICAgICAgICBGb3JjZSBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZCgpIG9ubHkgaWYgYSBMYXllclRyZWVIb3N0CisgICAgICAgIGltcGxlbWVudGF0aW9u
IGlzIGF2YWlsYWJsZSwgdG8gYXZvaWQgY3Jhc2hpbmcgd2hlbiBidWlsZGluZyB3aXRob3V0Cisg
ICAgICAgIGFueSBHTCBzdXBwb3J0LgorCiAyMDE1LTA5LTExICBFbWFudWVsZSBBaW5hICA8ZW1h
bnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtUaHJlYWRlZENvbXBvc2l0b3Jd
IFNjcm9sbGluZyBhcnRpZmFjdHMgb24gYWNjZWxlcmF0ZWQgc3ViZnJhbWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuY3BwCmluZGV4IDBlNTJkN2I0YjI1ODQ1YTYwMzhkYjQ1ZWQ4ZjhhOWFiZDRhZWY5OTQu
LjQ5NGQ3NWU3Y2RkMDEwYjUyZmUzNmRmN2M1YmM0NzQ1MzU2NmZkNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuY3BwCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQml0bWFwVGV4dHVyZUdMLmgiCiAKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisKICNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0zNzcsMyArMzc5LDUgQEAgSW50U2l6ZSBC
aXRtYXBUZXh0dXJlR0w6OnNpemUoKSBjb25zdAogfQogCiB9OyAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCmlu
ZGV4IDBlMTg4MDliYTEwZTY1N2ZhZDExMzIzYzc3MzEwMzI2NTNhOWEyNWUuLmQ1MTM3OWI2NTU1
N2E1NTgxNmI3ODc4YTJlZjg2ZTU5M2Q0ZmYwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKQEAgLTIx
LDYgKzIxLDggQEAKICNpZm5kZWYgQml0bWFwVGV4dHVyZUdMX2gKICNkZWZpbmUgQml0bWFwVGV4
dHVyZUdMX2gKIAorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKwogI2luY2x1ZGUgIkJpdG1h
cFRleHR1cmUuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgpAQCAtOTIsNCArOTQsNiBAQCBCaXRtYXBUZXh0dXJlR0wqIHRvQml0
bWFwVGV4dHVyZUdMKEJpdG1hcFRleHR1cmUqKTsKIAogfQogCisjZW5kaWYgLy8gVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQorCiAjZW5kaWYgLy8gQml0bWFwVGV4dHVyZUdMX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKaW5kZXggNGM1NDgwNTYyMzVlMzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNS4u
MWY5YTQxYTcwY2Y5YWE1NTA1NGYwMmMyNWFlZjI4ZGMwNmVjMDgyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyR0wuaCIKIAorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKwogI2lu
Y2x1ZGUgIkJpdG1hcFRleHR1cmVHTC5oIgogI2luY2x1ZGUgIkJpdG1hcFRleHR1cmVQb29sLmgi
CiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01Miw4ICs1NCw2IEBACiAjZGVmaW5lIEdM
X1VOUEFDS19TS0lQX1JPV1MgMHgwQ0YzCiAjZW5kaWYKIAotI2lmIFVTRShURVhUVVJFX01BUFBF
UikKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFRleHR1cmVNYXBwZXJHTERhdGEgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNzk4LDEyICs3OTgsMTEgQEAgUGFzc1Jl
ZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyR0w6OmNyZWF0ZVRleHR1cmUoKQogICAg
IHJldHVybiBhZG9wdFJlZih0ZXh0dXJlKTsKIH0KIAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpwbGF0Zm9y
bUNyZWF0ZUFjY2VsZXJhdGVkKCkKIHsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0
dXJlTWFwcGVyR0w+KCk7CiB9Ci0jZW5kaWYKIAogfTsKLSNlbmRpZgorCisjZW5kaWYgLy8gVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4IGJkOWJmNTUyZjI2ODc1
ZTEwMmI5NGM5ZTEyYjM2OGJlMGVlZWRjYTAuLmI2ZWRkMTJmMGQ2MWQyM2FlMTViNzVlZTE0ZTU5
YmZiZGY3NTEwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5k
ZWYgVGV4dHVyZU1hcHBlckdMX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBlckdMX2gKIAotI2lmIFVT
RShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNpbmNsdWRl
ICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKQEAgLTEzOCw2ICsx
MzgsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBV
U0UoVEVYVFVSRV9NQVBQRVIpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAj
ZW5kaWYgLy8gVGV4dHVyZU1hcHBlckdMX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uY3BwCmluZGV4IDg4NWZlYzc4Njg3Y2U0M2FmNTc3N2U4ZTExN2I5NDhlZmE0MDFi
Y2QuLjRhNmI0YTg0OWMxYzEyMDliOGY0NjM5ODk0ZTg2N2ZmM2IwMTc0YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcApAQCAtMjIsNyArMjIsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgi
CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQor
CiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgpAQCAtNDEyLDQgKzQxMyw0IEBAIFBhc3NSZWZQdHI8
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpj
cmVhdGUoUGFzc1JlCiB9CiAKIH0KLSNlbmRpZgorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggNDNhNjUz
NGJlY2Y2MmJmOWExY2JjMmEwZDY1MGVlOWE5NjkzY2RiZi4uMjAzODQxNmE4YTEwNDFkODFiZDAy
ZWRjZmZhYzM1ZjJmMzM4ZTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW1faAogI2RlZmluZSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbV9oCiAKLSNpZiBVU0UoVEVY
VFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtOTYsNiArOTYsNiBAQCBwcml2YXRlOgogfTsKIAogfQot
I2VuZGlmCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAjZW5kaWYgLy8gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDFjYWM2Y2U1YWZjYmZl
MWRmY2MwZDY3MmYxNjQ3N2VhNDg2ZWVjNDkuLjlkOGEyYWM3ZDlhNWIzYTI4MzYzZGVlMjA1OWY2
OWEzMTFhODU1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTMyNiw3ICszMjYsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZVJlYWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgZ3RrX3dp
ZGdldF9zZXRfd2luZG93KHdpZGdldCwgd2luZG93KTsKICAgICBnZGtfd2luZG93X3NldF91c2Vy
X2RhdGEod2luZG93LCB3aWRnZXQpOwogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQ
TEFURk9STShYMTEpICYmICFVU0UoUkVESVJFQ1RFRF9YQ09NUE9TSVRFX1dJTkRPVykKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKFgxMSkgJiYgIVVTRShSRURJUkVDVEVEX1hD
T01QT1NJVEVfV0lORE9XKQogICAgIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5nQXJlYSA9
IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhUHJveHlJbXBsKj4ocHJpdi0+cGFnZVByb3h5LT5kcmF3
aW5nQXJlYSgpKTsKICAgICBkcmF3aW5nQXJlYS0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNv
bXBvc2l0aW5nKEdES19XSU5ET1dfWElEKHdpbmRvdykpOwogI2VuZGlmCkBAIC00NzIsNyArNDcy
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZChHT2JqZWN0KiBv
YmplY3QpCiAgICAgcHJpdi0+YXV0aGVudGljYXRpb25EaWFsb2cgPSAwOwogfQogCi0jaWYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIHN0YXRpYyBib29s
IHdlYmtpdFdlYlZpZXdSZW5kZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nUmVzdWx0cyhXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5nQXJl
YSwgY2Fpcm9fdCogY3IsIEdka1JlY3RhbmdsZSogY2xpcFJlY3QpCiB7CiAgICAgQVNTRVJUKGRy
YXdpbmdBcmVhKTsKQEAgLTUxNyw3ICs1MTcsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2Vi
Vmlld0Jhc2VEcmF3KEd0a1dpZGdldCogd2lkZ2V0LCBjYWlyb190KiBjcikKICAgICBpZiAoIWdk
a19jYWlyb19nZXRfY2xpcF9yZWN0YW5nbGUoY3IsICZjbGlwUmVjdCkpCiAgICAgICAgIHJldHVy
biBGQUxTRTsKIAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoVEVYVFVSRV9N
QVBQRVIpCiAgICAgaWYgKHdlYmtpdFdlYlZpZXdSZW5kZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5n
UmVzdWx0cyh3ZWJWaWV3QmFzZSwgZHJhd2luZ0FyZWEsIGNyLCAmY2xpcFJlY3QpKQogICAgICAg
ICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xh
c3MpLT5kcmF3KHdpZGdldCwgY3IpOwogI2VuZGlmCkBAIC0xMzYwLDcgKzEzNjAsNyBAQCB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYktpdFdl
YlZpZXdCYXNlKiB3ZWJraXRXZQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkUmVsYXVuY2hX
ZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsKLSNpZiBQ
TEFURk9STShYMTEpCisjaWYgUExBVEZPUk0oWDExKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAg
ICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLnR5cGUoKSAhPSBQbGF0Zm9y
bURpc3BsYXk6OlR5cGU6OlgxMSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzcwLDEyICsxMzcw
LDEzIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRSZWxhdW5jaFdlYlByb2Nlc3MoV2ViS2l0
V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlCiAjaWYgVVNFKFJFRElSRUNURURfWENPTVBP
U0lURV9XSU5ET1cpCiAgICAgaWYgKCFwcml2LT5yZWRpcmVjdGVkV2luZG93KQogICAgICAgICBy
ZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3Np
dGluZyhwcml2LT5yZWRpcmVjdGVkV2luZG93LT53aW5kb3dJRCgpKTsKKyAgICB1aW50NjRfdCB3
aW5kb3dJRCA9IHByaXYtPnJlZGlyZWN0ZWRXaW5kb3ctPndpbmRvd0lEKCk7CiAjZWxzZQogICAg
IGlmICghZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFz
ZSkpKQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd2luZ0FyZWEtPnNldE5hdGl2ZVN1cmZhY2VI
YW5kbGVGb3JDb21wb3NpdGluZyhHREtfV0lORE9XX1hJRChndGtfd2lkZ2V0X2dldF93aW5kb3co
R1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFzZSkpKSk7CisgICAgdWludDY0X3Qgd2luZG93SUQg
PSBHREtfV0lORE9XX1hJRChndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVCh3ZWJraXRX
ZWJWaWV3QmFzZSkpKTsKICNlbmRpZgorICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNl
SGFuZGxlRm9yQ29tcG9zaXRpbmcod2luZG93SUQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
d2Via2l0V2ViVmlld0Jhc2UpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRleCBiMDRjNDUwNDBkYjU4YTAwYjE0NTU1
NTVkMjZiNGRhYjYyYjkxMjE3Li44ZGNlMjc3NzdkZGM4YTVmYTVmNWFiNDdlM2U4YWVlMTNhMjU0
MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
SW1wbC5jcHAKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogICAg
IG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVl
Q29udGV4dCk7CiB9CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdU
SykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKIHZvaWQgRHJhd2lu
Z0FyZWFQcm94eUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50
NjRfdCBoYW5kbGUpCiB7CiAgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OkRyYXdpbmdBcmVhOjpTZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoaGFu
ZGxlKSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA2YTA1MmIyNjkzODM1NzRkYjUyYjdi
MmRjOWRmMGRhOWM1OGRiMjRmLi5kZWZlMjhmOGE2MjRkY2MyYzgwOTk1N2FlMjBkNTMxNWUwYjRm
MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc1JlY2VpdmVkRmly
c3RVcGRhdGUoKSBjb25zdCB7IHJldHVybiBtX2hhc1JlY2VpdmVkRmlyc3RVcGRhdGU7IH0KIAot
I2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQorI2lmIFVTRShURVhU
VVJFX01BUFBFUikgJiYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByZWZlcmVuY2VzR3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwCmluZGV4IDE3ZjE4YjNj
MTBjY2RlZjU0NjE0ZThkMWIxMmZlYmZjYTRlNmQzOWIuLmFhNzcwMTg3MWQ4MjczNDc5YTQyNjFi
OWQ5MTZjNDQyY2NmMzM1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwCkBAIC00Myw2ICs0Myw5IEBAIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnBsYXRmb3JtSW5pdGlhbGl6ZVN0b3JlKCkKICAgICAgICAgc2V0UGx1Z2luc0VuYWJs
ZWQoZmFsc2UpOwogICAgIH0KICNlbmRpZgorI2lmICFFTkFCTEUoT1BFTl9HTCkKKyAgICBzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAKaW5kZXggYjliOGI2ZjliMjQ3NjYxOTY2MDk4Y2UzYzFmODlm
MDViZTQzODI2ZS4uYzEwM2UzZmZmMzRhMWE0OGE5YWRmMTI4NDdkYTNkZGUxMzc5ZDcwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3Bw
CkBAIC03Niw3ICs3Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0Fy
ZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiBEcmF3aW5nQXJlYTo6
RHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlIHR5cGUsIFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAsIG1fd2ViUGFnZSh3ZWJQYWdlKQotI2lmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYg
UExBVEZPUk0oR1RLKQogICAgICwgbV9uYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmco
MCkKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaAppbmRleCA0NGFlYzAyYmRkZjBmODcxOTk2NTE3MzRjOTFhZWZjNmIxNGZhNjlm
Li41Nzc3M2ZiOTczZGIwYWMxMTkxYTk0MTI4ZjdhMWQ5Zjc5OTRjZjIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtMTQwLDcgKzE0
MCw3IEBAIHByb3RlY3RlZDoKICAgICBEcmF3aW5nQXJlYVR5cGUgbV90eXBlOwogICAgIFdlYlBh
Z2UmIG1fd2ViUGFnZTsKIAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0o
R1RLKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYgUExBVEZPUk0oR1RLKQogICAgIHVpbnQ2
NF90IG1fbmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nOwogI2VuZGlmCiAKQEAgLTE2
NSw3ICsxNjUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRUcmFuc2FjdGlvbkNh
bGxiYWNrSUQodWludDY0X3QgY2FsbGJhY2tJRCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
I2VuZGlmCiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKKyNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZvaWQg
c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KSA9IDA7CiAjZW5k
aWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KaW5kZXggODRjNjcyMmIxMzNlYjY3YTE1MjRmZTg0MWVi
MTU5MTcwZWViMzRkMi4uOGQ5NzkzYzEyMTVmMzgyYzI0NjdkMjI1MzFjODU1MzgwYTkzZTlmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5tZXNzYWdlcy5pbgpAQCAtNDAsNyArNDAsNyBAQCBtZXNzYWdlcyAtPiBEcmF3aW5n
QXJlYSB7CiAgICAgQWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiAjZW5kaWYKIAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQor
I2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYgUExBVEZPUk0oR1RLKQogICAgIFNldE5hdGl2ZVN1
cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiAjZW5kaWYKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5jcHAKaW5kZXggNTEzOWQ5ZGJjM2U0M2U5NDVmMTUwNDNkODk1NDkzZGJlNjIyMTdkMC4uNGIw
MzYzMmJhN2ZlMzZlOGMxMjM3ZmY5YWNlMmIwODI0ZDMwMzU4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKQEAgLTQ2
MCw3ICs0NjAsNyBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheQogICAgIEFTU0VSVCghbV9sYXll
clRyZWVIb3N0KTsKIAogICAgIG1fbGF5ZXJUcmVlSG9zdCA9IExheWVyVHJlZUhvc3Q6OmNyZWF0
ZSgmbV93ZWJQYWdlKTsKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdU
SykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKICAgICBpZiAobV9u
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKG1fbmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKTsKICNlbmRpZgpAQCAtNjc5LDE0ICs2NzksMTUgQEAgdm9pZCBE
cmF3aW5nQXJlYUltcGw6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSogZnJhbWUsIFdlYkMKICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdPdmVybGF5Um9v
dExheWVyKHZpZXdPdmVybGF5Um9vdExheWVyKTsKIH0KIAotI2lmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkgJiYgUExBVEZPUk0oR1RLKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYgUExBVEZP
Uk0oR1RLKQogdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JD
b21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CiAgICAgbV9uYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcgPSBoYW5kbGU7Ci0gICAgbV93ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRp
bmdzKCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSk7CiAKLSAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgIGlmIChtX2xheWVyVHJlZUhvc3QpIHsKKyAgICAgICAgbV93
ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQodHJ1ZSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKGhhbmRsZSk7CisgICAgfQogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRl
eCA5NGRmMzFmYTZmODM2NTMzMDJiNGIyMGU4Njc3YzM3NzkzN2Y1MzZjLi5iZTRlZTIwMmYzYTQ2
Yzg3MDE4N2EyMjY2ZjE2N2I2YzkyNDE0YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC03MCw3ICs3MCw3IEBAIHBy
aXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogCi0j
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCisjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSKSAmJiBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCB2b2lkIHNldE5hdGl2ZVN1
cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgK
aW5kZXggNTQwNzEyNjM5OWVjOTYxZDI4N2JjYzc3ZmY3OGJlZjg1MmVjYzg1Mi4uNzEyNmQ4M2Jh
Y2M3ODRjZGRjM2Y0Y2ZmNGE0OGE1NzBmNzZmMmI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CiAjZW5kaWYK
IAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQorI2lmIFVTRShU
RVhUVVJFX01BUFBFUikgJiYgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCBzZXROYXRp
dmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpID0gMDsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlCmluZGV4IDMyMzEyZTRhZTVkZWI0ZTJkNTFmZTYzYTdkMmRiY2I3NmEz
MDA1NWMuLjI4ZGE5YmQ1OTg1MzZlMDEzOTc0YzcwNmM4NWQyNDc5NmI3YTRkMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zR1RLLmNtYWtlCkBAIC05NSw2ICs5NSw3IEBAIFdFQktJVF9PUFRJT05fREVQRU5EKFVTRV9S
RURJUkVDVEVEX1hDT01QT1NJVEVfV0lORE9XIEVOQUJMRV9YMTFfVEFSR0VUKQogV0VCS0lUX09Q
VElPTl9ERVBFTkQoVVNFX0dTVFJFQU1FUl9HTCBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElP
Tl9ERVBFTkQoVVNFX0dTVFJFQU1FUl9HTCBFTkFCTEVfVklERU8pCiBXRUJLSVRfT1BUSU9OX0RF
UEVORChVU0VfR1NUUkVBTUVSX01QRUdUUyBFTkFCTEVfVklERU8pCitXRUJLSVRfT1BUSU9OX0RF
UEVORChFTkFCTEVfV0FZTEFORF9UQVJHRVQgRU5BQkxFX09QRU5HTCkKIAogU0VUX0FORF9FWFBP
U0VfVE9fQlVJTEQoRU5BQkxFX0RFVkVMT1BFUl9NT0RFICR7REVWRUxPUEVSX01PREV9KQogaWYg
KERFVkVMT1BFUl9NT0RFKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4
IDFjYTM1OGUxNWYzMGU4YWFmM2NkZWYyNzg1ZTdkNTFiODQ3MDU3MjAuLjg3YTZlNmRiNjYzMjBm
MTVjOTc4NzQwMjU4ZWIzMWJmOWY3NzFjM2YgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wOS0xNyAgRW1hbnVlbGUgQWluYSAgPGVt
YW51ZWxlLmFpbmFAY29sbGFib3JhLmNvbT4KKworICAgICAgICBGaXggRU5BQkxFX09QRU5HTD1P
RkYgYnVpbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDY1MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOiBNYWtlIEVOQUJMRV9XQVlMQU5EX1RB
UkdFVCBkZXBlbmQgb24KKyAgICAgICAgRU5BQkxFX09QRU5HTCBkdWUgdG8gRUdMIHVzYWdlLgor
CiAyMDE1LTA5LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDb252ZXJ0IG1hbnVhbCB0ZXN0IGFkZGVkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzcwMzIxIHRvIGFuIGF1dG9tYXRlZCB0ZXN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261457</attachid>
            <date>2015-09-17 16:50:21 -0700</date>
            <delta_ts>2015-10-06 09:21:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146511-20150918015006.patch</filename>
            <type>text/plain</type>
            <size>18800</size>
            <attacher name="Emanuele Aina">emanuele.aina</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzZGU3NjE3MzRhMjU4
MDNhNTAxZDM0Yzk0NzQzNjc1OTJiNjM2My4uOWJmYjcwZDE0MjI1ZTQ2NWU1NjEwYzIyY2NkYzVm
MzdlODIwM2RiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA5LTE3ICBFbWFu
dWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIEZpeCBF
TkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICBGaXggVEVYVFVSRV9NQVBQRVJfR0wgdnMu
IFRFWFRVUkVfTUFQUEVSIGd1YXJkcyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBFTkFCTEVf
T1BFTkdMPU9GRiBvbmx5IGRpc2FibGVzIHRoZSBHTC1yZWxhdGVkIHBhcnRzLgorCiAyMDE1LTAx
LTA4ICBHd2FuZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29y
ZGluYXRlZEdyYXBoaWNzXSBOb24tb3ZlcmxheSBzY3JvbGxiYXIgaXMgbm90IHJlbmRlcmVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZDFiMzE4NjI2YzNhN2JmZGIwOGIwZDRlNGE5MjM3YzdmZmVjYTZjNC4uM2Yw
MGFlYWRjY2ViNTAyM2MwNjRiNjExM2QyOGFkNThmOTI3ZjQ1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQwIEBACisyMDE1LTA5LTE3ICBFbWFudWVsZSBBaW5hICA8ZW1hbnVlbGUuYWluYUBjb2xs
YWJvcmEuY29tPgorCisgICAgICAgIEZpeCBFTkFCTEVfT1BFTkdMPU9GRiBidWlsZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjUxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VS
ZWFsaXplKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRHJhdyk6CisgICAgICAgICh3ZWJr
aXRXZWJWaWV3QmFzZURpZFJlbGF1bmNoV2ViUHJvY2Vzcyk6CisgICAgICAgIFJlcGxhY2UgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKSB3aXRoIFVTRShURVhUVVJFX01BUFBFUikgYXJvdW5kCisgICAg
ICAgIHdlYmtpdFdlYlZpZXdSZW5kZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nUmVzdWx0cygpCisg
ICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6RHJh
d2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lmg6CisgICAgICAgIFJl
cGxhY2UgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSB3aXRoIFVTRShURVhUVVJFX01BUFBFUikgYXJv
dW5kCisgICAgICAgIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZygpLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFsaXplU3RvcmUpOgorICAgICAgICBE
ZWZhdWx0IHRvIG5vIEFDIGlmIG5vIEdMIHN1cHBvcnQgaGFzIGJlZW4gYnVpbHQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICBS
ZXBsYWNlIFVTRShURVhUVVJFX01BUFBFUl9HTCkgd2l0aCBVU0UoVEVYVFVSRV9NQVBQRVIpIGFy
b3VuZAorICAgICAgICBTZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICBSZXBsYWNlIFVTRShURVhUVVJFX01BUFBFUl9HTCkgd2l0aCBVU0UoVEVYVFVSRV9NQVBQRVIp
IGFyb3VuZAorICAgICAgICBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoKS4K
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcpOgorICAgICAgICBGb3JjZSBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZCgpIG9ubHkgaWYgYSBMYXllclRyZWVIb3N0CisgICAgICAgIGltcGxlbWVudGF0aW9u
IGlzIGF2YWlsYWJsZSwgdG8gYXZvaWQgY3Jhc2hpbmcgd2hlbiBidWlsZGluZyB3aXRob3V0Cisg
ICAgICAgIGFueSBHTCBzdXBwb3J0LgorCiAyMDE1LTA5LTExICBFbWFudWVsZSBBaW5hICA8ZW1h
bnVlbGUuYWluYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtUaHJlYWRlZENvbXBvc2l0b3Jd
IFNjcm9sbGluZyBhcnRpZmFjdHMgb24gYWNjZWxlcmF0ZWQgc3ViZnJhbWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuY3BwCmluZGV4IDBlNTJkN2I0YjI1ODQ1YTYwMzhkYjQ1ZWQ4ZjhhOWFiZDRhZWY5OTQu
LjQ5NGQ3NWU3Y2RkMDEwYjUyZmUzNmRmN2M1YmM0NzQ1MzU2NmZkNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuY3BwCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQml0bWFwVGV4dHVyZUdMLmgiCiAKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisKICNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0zNzcsMyArMzc5LDUgQEAgSW50U2l6ZSBC
aXRtYXBUZXh0dXJlR0w6OnNpemUoKSBjb25zdAogfQogCiB9OyAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCmlu
ZGV4IDBlMTg4MDliYTEwZTY1N2ZhZDExMzIzYzc3MzEwMzI2NTNhOWEyNWUuLmQ1MTM3OWI2NTU1
N2E1NTgxNmI3ODc4YTJlZjg2ZTU5M2Q0ZmYwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKQEAgLTIx
LDYgKzIxLDggQEAKICNpZm5kZWYgQml0bWFwVGV4dHVyZUdMX2gKICNkZWZpbmUgQml0bWFwVGV4
dHVyZUdMX2gKIAorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKwogI2luY2x1ZGUgIkJpdG1h
cFRleHR1cmUuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgpAQCAtOTIsNCArOTQsNiBAQCBCaXRtYXBUZXh0dXJlR0wqIHRvQml0
bWFwVGV4dHVyZUdMKEJpdG1hcFRleHR1cmUqKTsKIAogfQogCisjZW5kaWYgLy8gVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQorCiAjZW5kaWYgLy8gQml0bWFwVGV4dHVyZUdMX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKaW5kZXggNGM1NDgwNTYyMzVlMzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNS4u
MWY5YTQxYTcwY2Y5YWE1NTA1NGYwMmMyNWFlZjI4ZGMwNmVjMDgyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyR0wuaCIKIAorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKwogI2lu
Y2x1ZGUgIkJpdG1hcFRleHR1cmVHTC5oIgogI2luY2x1ZGUgIkJpdG1hcFRleHR1cmVQb29sLmgi
CiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01Miw4ICs1NCw2IEBACiAjZGVmaW5lIEdM
X1VOUEFDS19TS0lQX1JPV1MgMHgwQ0YzCiAjZW5kaWYKIAotI2lmIFVTRShURVhUVVJFX01BUFBF
UikKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFRleHR1cmVNYXBwZXJHTERhdGEgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNzk4LDEyICs3OTgsMTEgQEAgUGFzc1Jl
ZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyR0w6OmNyZWF0ZVRleHR1cmUoKQogICAg
IHJldHVybiBhZG9wdFJlZih0ZXh0dXJlKTsKIH0KIAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpwbGF0Zm9y
bUNyZWF0ZUFjY2VsZXJhdGVkKCkKIHsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0
dXJlTWFwcGVyR0w+KCk7CiB9Ci0jZW5kaWYKIAogfTsKLSNlbmRpZgorCisjZW5kaWYgLy8gVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4IGJkOWJmNTUyZjI2ODc1
ZTEwMmI5NGM5ZTEyYjM2OGJlMGVlZWRjYTAuLmI2ZWRkMTJmMGQ2MWQyM2FlMTViNzVlZTE0ZTU5
YmZiZGY3NTEwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5k
ZWYgVGV4dHVyZU1hcHBlckdMX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBlckdMX2gKIAotI2lmIFVT
RShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNpbmNsdWRl
ICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKQEAgLTEzOCw2ICsx
MzgsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBV
U0UoVEVYVFVSRV9NQVBQRVIpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAj
ZW5kaWYgLy8gVGV4dHVyZU1hcHBlckdMX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uY3BwCmluZGV4IDg4NWZlYzc4Njg3Y2U0M2FmNTc3N2U4ZTExN2I5NDhlZmE0MDFi
Y2QuLjRhNmI0YTg0OWMxYzEyMDliOGY0NjM5ODk0ZTg2N2ZmM2IwMTc0YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcApAQCAtMjIsNyArMjIsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgi
CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQor
CiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgpAQCAtNDEyLDQgKzQxMyw0IEBAIFBhc3NSZWZQdHI8
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpj
cmVhdGUoUGFzc1JlCiB9CiAKIH0KLSNlbmRpZgorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggNDNhNjUz
NGJlY2Y2MmJmOWExY2JjMmEwZDY1MGVlOWE5NjkzY2RiZi4uMjAzODQxNmE4YTEwNDFkODFiZDAy
ZWRjZmZhYzM1ZjJmMzM4ZTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW1faAogI2RlZmluZSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbV9oCiAKLSNpZiBVU0UoVEVY
VFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtOTYsNiArOTYsNiBAQCBwcml2YXRlOgogfTsKIAogfQot
I2VuZGlmCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAjZW5kaWYgLy8gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDhiZDgzYzRlZjAwNjUy
NDBiOGI2YTA0NzdjNmQzYWI2MWY3ZWMwNzAuLjdmYjhhOTc1NGZlMmI2YTNhYjEzYjE5Y2ZhNzUw
Njg5NTVlZmIzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTMyNiw3ICszMjYsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZVJlYWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgZ3RrX3dp
ZGdldF9zZXRfd2luZG93KHdpZGdldCwgd2luZG93KTsKICAgICBnZGtfd2luZG93X3NldF91c2Vy
X2RhdGEod2luZG93LCB3aWRnZXQpOwogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQ
TEFURk9STShYMTEpICYmICFVU0UoUkVESVJFQ1RFRF9YQ09NUE9TSVRFX1dJTkRPVykKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKFgxMSkgJiYgIVVTRShSRURJUkVDVEVEX1hD
T01QT1NJVEVfV0lORE9XKQogICAgIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5nQXJlYSA9
IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhUHJveHlJbXBsKj4ocHJpdi0+cGFnZVByb3h5LT5kcmF3
aW5nQXJlYSgpKTsKICAgICBkcmF3aW5nQXJlYS0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNv
bXBvc2l0aW5nKEdES19XSU5ET1dfWElEKHdpbmRvdykpOwogI2VuZGlmCkBAIC00NzIsNyArNDcy
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZChHT2JqZWN0KiBv
YmplY3QpCiAgICAgcHJpdi0+YXV0aGVudGljYXRpb25EaWFsb2cgPSAwOwogfQogCi0jaWYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIHN0YXRpYyBib29s
IHdlYmtpdFdlYlZpZXdSZW5kZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nUmVzdWx0cyhXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIERyYXdpbmdBcmVhUHJveHlJbXBsKiBkcmF3aW5nQXJl
YSwgY2Fpcm9fdCogY3IsIEdka1JlY3RhbmdsZSogY2xpcFJlY3QpCiB7CiAgICAgQVNTRVJUKGRy
YXdpbmdBcmVhKTsKQEAgLTUxNyw3ICs1MTcsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2Vi
Vmlld0Jhc2VEcmF3KEd0a1dpZGdldCogd2lkZ2V0LCBjYWlyb190KiBjcikKICAgICBpZiAoIWdk
a19jYWlyb19nZXRfY2xpcF9yZWN0YW5nbGUoY3IsICZjbGlwUmVjdCkpCiAgICAgICAgIHJldHVy
biBGQUxTRTsKIAotI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoVEVYVFVSRV9N
QVBQRVIpCiAgICAgaWYgKHdlYmtpdFdlYlZpZXdSZW5kZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5n
UmVzdWx0cyh3ZWJWaWV3QmFzZSwgZHJhd2luZ0FyZWEsIGNyLCAmY2xpcFJlY3QpKQogICAgICAg
ICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xh
c3MpLT5kcmF3KHdpZGdldCwgY3IpOwogI2VuZGlmCkBAIC0xMzYzLDcgKzEzNjMsNyBAQCB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRGlkUmVsYXVuY2hXZWJQcm9jZXNzKFdlYktpdFdlYlZpZXdCYXNl
KiB3ZWJraXRXZWJWaWV3QmFzZQogICAgIC8vIFF1ZXVlIGEgcmVzaXplIHRvIGVuc3VyZSB0aGUg
bmV3IERyYXdpbmdBcmVhUHJveHkgaXMgcmVzaXplZC4KICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jl
c2l6ZV9ub19yZWRyYXcoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFzZSkpOwogCi0jaWYgUExB
VEZPUk0oWDExKQorI2lmIFBMQVRGT1JNKFgxMSkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAg
IGlmIChQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgIT0gUGxhdGZvcm1E
aXNwbGF5OjpUeXBlOjpYMTEpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTM3MywxMiArMTM3Mywx
MyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkUmVsYXVuY2hXZWJQcm9jZXNzKFdlYktpdFdl
YlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZQogI2lmIFVTRShSRURJUkVDVEVEX1hDT01QT1NJ
VEVfV0lORE9XKQogICAgIGlmICghcHJpdi0+cmVkaXJlY3RlZFdpbmRvdykKICAgICAgICAgcmV0
dXJuOwotICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRp
bmcocHJpdi0+cmVkaXJlY3RlZFdpbmRvdy0+d2luZG93SUQoKSk7CisgICAgdWludDY0X3Qgd2lu
ZG93SUQgPSBwcml2LT5yZWRpcmVjdGVkV2luZG93LT53aW5kb3dJRCgpOwogI2Vsc2UKICAgICBp
ZiAoIWd0a193aWRnZXRfZ2V0X3JlYWxpemVkKEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2Up
KSkKICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdpbmdBcmVhLT5zZXROYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcoR0RLX1dJTkRPV19YSUQoZ3RrX3dpZGdldF9nZXRfd2luZG93KEdU
S19XSURHRVQod2Via2l0V2ViVmlld0Jhc2UpKSkpOworICAgIHVpbnQ2NF90IHdpbmRvd0lEID0g
R0RLX1dJTkRPV19YSUQoZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQod2Via2l0V2Vi
Vmlld0Jhc2UpKSk7CiAjZW5kaWYKKyAgICBkcmF3aW5nQXJlYS0+c2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKHdpbmRvd0lEKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHdl
YmtpdFdlYlZpZXdCYXNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKaW5kZXggYjA0YzQ1MDQwZGI1OGEwMGIxNDU1NTU1
ZDI2YjRkYWI2MmI5MTIxNy4uOGRjZTI3Nzc3ZGRjOGE1ZmE1ZjVhYjQ3ZTNlOGFlZTEzYTI1NDJk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuY3BwCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZW50
ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXgKICAgICBt
X3dlYlBhZ2VQcm94eS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNv
bnRleHQpOwogfQogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEsp
CisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBQTEFURk9STShHVEspCiB2b2lkIERyYXdpbmdB
cmVhUHJveHlJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0
X3QgaGFuZGxlKQogewogICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpEcmF3aW5nQXJlYTo6U2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKGhhbmRs
ZSksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggNmEwNTJiMjY5MzgzNTc0ZGI1MmI3YjJk
YzlkZjBkYTljNThkYjI0Zi4uZGVmZTI4ZjhhNjI0ZGNjMmM4MDk5NTdhZTIwZDUzMTVlMGI0ZjBm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNSZWNlaXZlZEZpcnN0
VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNSZWNlaXZlZEZpcnN0VXBkYXRlOyB9CiAKLSNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBVU0UoVEVYVFVS
RV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcmVmZXJlbmNlc0d0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByZWZlcmVuY2VzR3RrLmNwcAppbmRleCAxN2YxOGIzYzEw
Y2NkZWY1NDYxNGU4ZDFiMTJmZWJmY2E0ZTZkMzliLi5hYTc3MDE4NzFkODI3MzQ3OWE0MjYxYjlk
OTE2YzQ0MmNjZjMzNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlByZWZlcmVuY2VzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlByZWZlcmVuY2VzR3RrLmNwcApAQCAtNDMsNiArNDMsOSBAQCB2b2lkIFdlYlByZWZlcmVu
Y2VzOjpwbGF0Zm9ybUluaXRpYWxpemVTdG9yZSgpCiAgICAgICAgIHNldFBsdWdpbnNFbmFibGVk
KGZhbHNlKTsKICAgICB9CiAjZW5kaWYKKyNpZiAhRU5BQkxFKE9QRU5fR0wpCisgICAgc2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IGI5YjhiNmY5YjI0NzY2MTk2NjA5OGNlM2MxZjg5ZjA1
YmU0MzgyNmUuLmMxMDNlM2ZmZjM0YTFhNDhhOWFkZjEyODQ3ZGEzZGRlMTM3OWQ3MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApA
QCAtNzYsNyArNzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVh
OjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZQogRHJhd2luZ0FyZWE6OkRy
YXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZSB0eXBlLCBXZWJQYWdlJiB3ZWJQYWdlKQogICAgIDog
bV90eXBlKHR5cGUpCiAgICAgLCBtX3dlYlBhZ2Uod2ViUGFnZSkKLSNpZiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBM
QVRGT1JNKEdUSykKICAgICAsIG1fbmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKDAp
CiAjZW5kaWYKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmgKaW5kZXggNDRhZWMwMmJkZGYwZjg3MTk5NjUxNzM0YzkxYWVmYzZiMTRmYTY5Zi4u
NTc3NzNmYjk3M2RiMGFjMTE5MWE5NDEyOGY3YTFkOWY3OTk0Y2YyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTE0MCw3ICsxNDAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0FyZWFUeXBlIG1fdHlwZTsKICAgICBXZWJQYWdl
JiBtX3dlYlBhZ2U7CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdU
SykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKICAgICB1aW50NjRf
dCBtX25hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZzsKICNlbmRpZgogCkBAIC0xNjUs
NyArMTY1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkVHJhbnNhY3Rpb25DYWxs
YmFja0lEKHVpbnQ2NF90IGNhbGxiYWNrSUQpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICNl
bmRpZgogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCisjaWYg
VVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCB2b2lkIHNl
dE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCkgPSAwOwogI2VuZGlm
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IDg0YzY3MjJiMTMzZWI2N2ExNTI0ZmU4NDFlYjE1
OTE3MGVlYjM0ZDIuLjhkOTc5M2MxMjE1ZjM4MmMyNDY3ZDIyNTMxYzg1NTM4MGE5M2U5ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEubWVzc2FnZXMuaW4KQEAgLTQwLDcgKzQwLDcgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0Fy
ZWEgewogICAgIEFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRCh1aW50NjRfdCBjYWxsYmFja0lEKQog
I2VuZGlmCiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKKyNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKICAgICBTZXROYXRpdmVTdXJm
YWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwu
Y3BwCmluZGV4IDUxMzlkOWRiYzNlNDNlOTQ1ZjE1MDQzZDg5NTQ5M2RiZTYyMjE3ZDAuLjRiMDM2
MzJiYTdmZTM2ZThjMTIzN2ZmOWFjZTJiMDgyNGQzMDM1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBAIC00NjAs
NyArNDYwLDcgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXkKICAgICBBU1NFUlQoIW1fbGF5ZXJU
cmVlSG9zdCk7CiAKICAgICBtX2xheWVyVHJlZUhvc3QgPSBMYXllclRyZWVIb3N0OjpjcmVhdGUo
Jm1fd2ViUGFnZSk7Ci0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEsp
CisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBQTEFURk9STShHVEspCiAgICAgaWYgKG1fbmF0
aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKQogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhtX25hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyk7CiAjZW5kaWYKQEAgLTY3OSwxNCArNjc5LDE1IEBAIHZvaWQgRHJh
d2luZ0FyZWFJbXBsOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqIGZyYW1lLCBXZWJDCiAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3T3ZlcmxheVJvb3RM
YXllcih2aWV3T3ZlcmxheVJvb3RMYXllcik7CiB9CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIFBMQVRGT1JN
KEdUSykKIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29t
cG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogewogICAgIG1fbmF0aXZlU3VyZmFjZUhhbmRsZUZv
ckNvbXBvc2l0aW5nID0gaGFuZGxlOwotICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwogCi0gICAgaWYgKG1f
bGF5ZXJUcmVlSG9zdCkKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KSB7CisgICAgICAgIG1fd2Vi
UGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKHRydWUpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyhoYW5kbGUpOworICAgIH0KIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXgg
OTRkZjMxZmE2ZjgzNjUzMzAyYjRiMjBlODY3N2MzNzc5MzdmNTM2Yy4uYmU0ZWUyMDJmM2E0NmM4
NzAxODdhMjI2NmYxNjdiNmM5MjQxNGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAotI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQorI2lmIFVTRShURVhUVVJF
X01BUFBFUikgJiYgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCBzZXROYXRpdmVTdXJm
YWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpIG92ZXJyaWRlOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCmlu
ZGV4IDU0MDcxMjYzOTllYzk2MWQyODdiY2M3N2ZmNzhiZWY4NTJlY2M4NTIuLjcxMjZkODNiYWNj
Nzg0Y2RkYzNmNGNmZjRhNDhhNTcwZjc2ZjJiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCiAK
LSNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBVU0UoVEVY
VFVSRV9NQVBQRVIpICYmIFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZl
U3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KSA9IDA7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0
aW9uc0dUSy5jbWFrZQppbmRleCAzYWU3NDZmNTU4MWVhNTBmOWM5MTFmZThjOGNhODY3ZTg2NmI2
YjliLi42MWZiMTQ3ODE4MzMxMDJlYTcyOGM2YjNlMjljOGY0MDhjMzY0ZmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZQpAQCAtOTUsNiArOTUsNyBAQCBXRUJLSVRfT1BUSU9OX0RFUEVORChVU0VfUkVE
SVJFQ1RFRF9YQ09NUE9TSVRFX1dJTkRPVyBFTkFCTEVfWDExX1RBUkdFVCkKIFdFQktJVF9PUFRJ
T05fREVQRU5EKFVTRV9HU1RSRUFNRVJfR0wgRU5BQkxFX09QRU5HTCkKIFdFQktJVF9PUFRJT05f
REVQRU5EKFVTRV9HU1RSRUFNRVJfR0wgRU5BQkxFX1ZJREVPKQogV0VCS0lUX09QVElPTl9ERVBF
TkQoVVNFX0dTVFJFQU1FUl9NUEVHVFMgRU5BQkxFX1ZJREVPKQorV0VCS0lUX09QVElPTl9ERVBF
TkQoRU5BQkxFX1dBWUxBTkRfVEFSR0VUIEVOQUJMRV9PUEVOR0wpCiAKIFNFVF9BTkRfRVhQT1NF
X1RPX0JVSUxEKEVOQUJMRV9ERVZFTE9QRVJfTU9ERSAke0RFVkVMT1BFUl9NT0RFfSkKIGlmIChE
RVZFTE9QRVJfTU9ERSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBj
YjczOTMzNGY0YTczYzUwNjVlODkyYjJjNDJkMmZlMDI2MTYyOWM4Li44MzY1Y2Q3NDI0NzcyMGQ0
MjY5MjIzYmVmZmZiY2RkNmEyZTMzMWQ0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDktMTcgIEVtYW51ZWxlIEFpbmEgIDxlbWFu
dWVsZS5haW5hQGNvbGxhYm9yYS5jb20+CisKKyAgICAgICAgRml4IEVOQUJMRV9PUEVOR0w9T0ZG
IGJ1aWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ2NTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTogTWFrZSBFTkFCTEVfV0FZTEFORF9UQVJH
RVQgZGVwZW5kIG9uCisgICAgICAgIEVOQUJMRV9PUEVOR0wgZHVlIHRvIEVHTCB1c2FnZS4KKwog
MjAxNS0wOS0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEZpeCBXaW5kb3dzIEVXUyBidWlsZCBhZnRlciByMTg5OTM0Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>