<?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>78095</bug_id>
          
          <creation_ts>2012-02-08 02:45:34 -0800</creation_ts>
          <short_desc>[GStreamer] HRTFDatabaseLoader conflicts with AudioFileReader</short_desc>
          <delta_ts>2012-04-16 10:14: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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>67187</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>crogers</cc>
    
    <cc>dynastpsh</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>s.choi</cc>
    
    <cc>sh919.park</cc>
    
    <cc>slomo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551945</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-08 02:45:34 -0800</bug_when>
    <thetext>While running the webaudio tests I noticed a racy behavior in the GStreamer implementation of WebAudio.

Sometimes while the HRTF DatabaseLoader thread is still running (and underneath calling gst_init_check() which updates the gst registry) another thread is trying to create an AudioBus and fails to create a giostreamsrc gst element. One example of the 2 threads:


Thread 10 (Thread 0xae620b70 (LWP 9464)):
#0  0xb60d96ca in __i686.get_pc_thunk.bx () from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Dependencies/Root/lib/libglib-2.0.so.0
#1  0xb6149dac in g_mutex_get_impl (mutex=0x84c9d58) at gthread-posix.c:118
#2  0xb614a0a8 in g_mutex_unlock (mutex=0x84c9d58) at gthread-posix.c:227
#3  0xb438ab11 in gst_object_set_name (object=0x84d4360, name=0x0) at gstobject.c:708
#4  0xb438ad20 in gst_object_set_property (value=0xae61fadc, object=0x84d4360, prop_id=&lt;optimized out&gt;, pspec=&lt;optimized out&gt;) at gstobject.c:1085
#5  gst_object_set_property (object=0x84d4360, prop_id=1, value=0xae61fadc, pspec=0x846a6c8) at gstobject.c:1076
#6  0xb61f66c6 in object_set_property (nqueue=0x84c9e50, value=0x84d7b08, pspec=0x846a6c8, object=0x84d4360) at gobject.c:1342
#7  g_object_constructor (type=138861384, n_construct_properties=&lt;optimized out&gt;, construct_params=0x84d7cb0) at gobject.c:1853
#8  0xb61f7d89 in g_object_newv (object_type=138861384, n_parameters=0, parameters=0x0) at gobject.c:1703
#9  0xb43e2b83 in gst_registry_chunks_load_feature (plugin=0x84cc6a0, end=0xadcff7ca &quot;&quot;, in=0xae61fc90, registry=0x8476410)
    at gstregistrychunks.c:580
#10 _priv_gst_registry_chunks_load_plugin (registry=0x8476410, in=0xae61fc90, end=0xadcff7ca &quot;&quot;, out_plugin=0x0) at gstregistrychunks.c:861
#11 0xb440c4c4 in gst_registry_binary_read_cache (registry=0x8476410, location=0x8476338 &quot;/home/phil/.gstreamer-0.10/registry.i686.bin&quot;)
    at gstregistrybinary.c:600
#12 0xb43df9a2 in ensure_current_registry (error=0xae61fd0c) at gstregistry.c:1649
#13 gst_update_registry () at gstregistry.c:1759
#14 0xb43886c8 in init_post (context=&lt;optimized out&gt;, group=&lt;optimized out&gt;, data=&lt;optimized out&gt;, error=&lt;optimized out&gt;) at gst.c:793
#15 init_post (context=0x84696d0, group=0x8467fa0, data=0x0, error=0x0) at gst.c:658
#16 0xb61166a0 in g_option_context_parse (context=0x84696d0, argc=0x0, argv=0x0, error=0x0) at goption.c:2015
#17 0xb4389151 in gst_init_check (argc=0x0, argv=0x0, err=0x0) at gst.c:445
#18 0xb73c26d4 in WebCore::AudioFileReader::createBus(float, bool) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#19 0xb73c27e8 in WebCore::createBusFromAudioFile(char const*, bool, float) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#20 0xb73c445c in WebCore::AudioBus::loadPlatformResource(char const*, float) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#21 0xb73baeaf in WebCore::HRTFElevation::calculateKernelsForAzimuthElevation(int, int, float, WTF::String const&amp;, WTF::RefPtr&lt;WebCore::HRTFKernel&gt;&amp;, WTF::RefPtr&lt;WebCore::HRTFKernel&gt;&amp;) () from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#22 0xb73bb0fe in WebCore::HRTFElevation::createForSubject(WTF::String const&amp;, int, float) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#23 0xb73b958b in WebCore::HRTFDatabase::HRTFDatabase(float) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#24 0xb73b9789 in WebCore::HRTFDatabase::create(float) () from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#25 0xb73b98f8 in WebCore::HRTFDatabaseLoader::load() () from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#26 0xb73b9d0a in WebCore::databaseLoaderEntry(void*) () from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#27 0xb7f2583a in WTF::threadEntryPoint(void*) () from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libjavascriptcoregtk-3.0.so.0
#28 0xb5c6bc39 in start_thread (arg=0xae620b70) at pthread_create.c:304
#29 0xb5bd912e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 1 (Thread 0xb3e71ad0 (LWP 9452)):
#0  g_logv (log_domain=0xb621d7a4 &quot;GLib-GObject&quot;, log_level=&lt;optimized out&gt;, format=0xb61745b4 &quot;%s: assertion `%s&apos; failed&quot;, 
    args1=0xbfffda9c &quot;\004\032\&quot;\266)\340!\266@g\377\267\200\255E\b\320#\021\266\244\327!\266p\254@\266@\002#\266\217\223\037\266\244\327!\266\004\032\&quot;\266)\340!\266&quot;) at gmessages.c:765
#1  0xb61123c3 in g_log (log_domain=0xb621d7a4 &quot;GLib-GObject&quot;, log_level=G_LOG_LEVEL_CRITICAL, format=0xb61745b4 &quot;%s: assertion `%s&apos; failed&quot;)
    at gmessages.c:792
#2  0xb611240d in g_return_if_fail_warning (log_domain=0xb621d7a4 &quot;GLib-GObject&quot;, pretty_function=0xb6221a04 &quot;g_object_set&quot;, 
    expression=0xb621e029 &quot;G_IS_OBJECT (object)&quot;) at gmessages.c:801
#3  0xb61f938f in g_object_set (_object=0x0, first_property_name=0xb78228e6 &quot;stream&quot;) at gobject.c:2040
#4  0xb73c2463 in WebCore::AudioFileReader::createBus(float, bool) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#5  0xb73c2856 in WebCore::createBusFromInMemoryAudioFile(void const*, unsigned int, bool, float) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#6  0xb739f2c5 in WebCore::AudioBuffer::createFromAudioFileData(void const*, unsigned int, bool, float) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#7  0xb73a28d2 in WebCore::AudioContext::createBuffer(WTF::ArrayBuffer*, bool, int&amp;) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#8  0xb746c678 in WebCore::jsAudioContextPrototypeFunctionCreateBuffer(JSC::ExecState*) ()
   from /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
...

I wonder if in the GTK case we should simply run the HRTFDatabaseLoader in the main loop instead of creating a new thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551957</commentid>
    <comment_count>1</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2012-02-08 03:05:13 -0800</bug_when>
    <thetext>Yes, gst_init() should be called from the main thread before any other GStreamer function and ideally before anything else. Same for gobject_init() and gtk_init() btw, I hope these are not called from different threads? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551958</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-08 03:09:02 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Yes, gst_init() should be called from the main thread before any other GStreamer function and ideally before anything else. Same for gobject_init() and gtk_init() btw, I hope these are not called from different threads? :)

We&apos;re safe on the gobject/gtk side I think :)
I started already looking at make the HRTF DatabaseLoader run in the main loop, some good results already!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552118</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-08 07:41:11 -0800</bug_when>
    <thetext>(In reply to comment #2)

&gt; We&apos;re safe on the gobject/gtk side I think :)
&gt; I started already looking at make the HRTF DatabaseLoader run in the main loop, some good results already!

Why not just run gst_init() in the main loop and keep the HRTF DatabaseLoader in it&apos;s own thread? I believe it&apos;s best to keep expensive operations out of the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570794</commentid>
    <comment_count>4</comment_count>
      <attachid>130157</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-05 09:51:05 -0800</bug_when>
    <thetext>Created attachment 130157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570797</commentid>
    <comment_count>5</comment_count>
      <attachid>130157</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-05 09:53:52 -0800</bug_when>
    <thetext>Comment on attachment 130157
Patch

Maybe it&apos;d be better to move this to a more global location? Is there some function that initializes the WebAudio backend as a whole?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570824</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-05 10:27:39 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 130157 [details])
&gt; Maybe it&apos;d be better to move this to a more global location? Is there some function that initializes the WebAudio backend as a whole?

I haven&apos;t found such function yet. I&apos;ll keep looking!
The reason why I moved this in FFTFrame::initialize is because it&apos;s called by AudioContext::constructCommon() which is called in the AudioContext ctors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572968</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 09:41:48 -0800</bug_when>
    <thetext>That should be landed after bug 61355.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572969</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-07 09:42:35 -0800</bug_when>
    <thetext>I mean, bug 67187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575988</commentid>
    <comment_count>9</comment_count>
      <attachid>131290</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-12 01:27:21 -0700</bug_when>
    <thetext>Created attachment 131290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580635</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-16 10:21:43 -0700</bug_when>
    <thetext>Chris, it&apos;s indeed a bit odd to use FFTFrame::initialize() to initialize various backend-specific bits. Would it be Ok to add a more general function for this? Any suggestion welcome! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594320</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-03 02:36:07 -0700</bug_when>
    <thetext>Chris, can you please provide some insight on this matter? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594821</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-04-03 13:34:55 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Chris, it&apos;s indeed a bit odd to use FFTFrame::initialize() to initialize various backend-specific bits. Would it be Ok to add a more general function for this? Any suggestion welcome! :)

Hi Philippe, I think it&apos;s ok to create your GTK-specific initialize function which will call gst_init_check() instead of putting it in FFTFrame::initialize() (where it doesn&apos;t really belong).

Then in AudioContext::contructCommon() you could conditionally compile in the call to this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595553</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-04 08:17:23 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; Chris, it&apos;s indeed a bit odd to use FFTFrame::initialize() to initialize various backend-specific bits. Would it be Ok to add a more general function for this? Any suggestion welcome! :)
&gt; 
&gt; Hi Philippe, I think it&apos;s ok to create your GTK-specific initialize function which will call gst_init_check() instead of putting it in FFTFrame::initialize() (where it doesn&apos;t really belong).
&gt; 
&gt; Then in AudioContext::contructCommon() you could conditionally compile in the call to this function.

Thanks Chris!
I&apos;m preparing a patch adding a new GStreamerUtilities.cpp/h which for now only contains the init function, but later we could add more functions if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595561</commentid>
    <comment_count>14</comment_count>
      <attachid>135598</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-04 08:30:45 -0700</bug_when>
    <thetext>Created attachment 135598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595565</commentid>
    <comment_count>15</comment_count>
      <attachid>135598</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-04 08:39:59 -0700</bug_when>
    <thetext>Comment on attachment 135598
Patch

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

Looks good, though I&apos;ve pointed out a few small nits below.

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:186
&gt; +    WebCore::initializeGStreamer();

You are already in the WebCore namespace here, right?

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.cpp:22
&gt; +
&gt; +#include &quot;GStreamerUtilities.h&quot;

Extra newline here.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.cpp:27
&gt; +#include &lt;wtf/gobject/GOwnPtr.h&gt;
&gt; +
&gt; +#if USE(GSTREAMER)
&gt; +#include &lt;gst/gst.h&gt;

I think I&apos;d prefer the includes to all be on one side of the guard.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:196
&gt; +    GRefPtr&lt;GstElementFactory&gt; factory = gst_element_factory_find(gPlaybinName);
&gt; +    if (factory)

I think you could actually do:

GRefPtr&lt;GstElementFactory&gt; factory = gst_element_factory_find(gPlaybinName);
return factory;

&gt; Source/autotools/symbols.filter:138
&gt; +_ZN7WebCore19initializeGStreamerEv;

Why is this necessary? It should only be required if yo uare using this function outside of libwebkitgtk, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595581</commentid>
    <comment_count>16</comment_count>
      <attachid>135598</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-04 08:59:59 -0700</bug_when>
    <thetext>Comment on attachment 135598
Patch

Attachment 135598 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12323816</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595594</commentid>
    <comment_count>17</comment_count>
      <attachid>135598</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-04 09:09:57 -0700</bug_when>
    <thetext>Comment on attachment 135598
Patch

Attachment 135598 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12327010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595603</commentid>
    <comment_count>18</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-04 09:22:53 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 135598 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=135598&amp;action=review
&gt; &gt; Source/autotools/symbols.filter:138
&gt; &gt; +_ZN7WebCore19initializeGStreamerEv;
&gt; 
&gt; Why is this necessary? It should only be required if yo uare using this function outside of libwebkitgtk, I think.

Hum I had a runtime failure when running the tests about that missing symbol. I&apos;ll double check and upload a new patch which hopefully should build on Qt and EFL too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595612</commentid>
    <comment_count>19</comment_count>
      <attachid>135598</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-04-04 09:30:37 -0700</bug_when>
    <thetext>Comment on attachment 135598
Patch

Attachment 135598 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12319950</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595631</commentid>
    <comment_count>20</comment_count>
      <attachid>135598</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-04 09:57:46 -0700</bug_when>
    <thetext>Comment on attachment 135598
Patch

Attachment 135598 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12321929</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595640</commentid>
    <comment_count>21</comment_count>
      <attachid>135615</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-04 10:06:16 -0700</bug_when>
    <thetext>Created attachment 135615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595759</commentid>
    <comment_count>22</comment_count>
      <attachid>135615</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-04 11:51:25 -0700</bug_when>
    <thetext>Comment on attachment 135615
Patch

Attachment 135615 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12325905</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599276</commentid>
    <comment_count>23</comment_count>
      <attachid>136460</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-10 08:11:29 -0700</bug_when>
    <thetext>Created attachment 136460
Patch

Same patch but just to make sure GTK EWS builds it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599284</commentid>
    <comment_count>24</comment_count>
      <attachid>136460</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-10 08:20:14 -0700</bug_when>
    <thetext>Comment on attachment 136460
Patch

Attachment 136460 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12384233</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599332</commentid>
    <comment_count>25</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-10 09:20:54 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 136460 [details])
&gt; Attachment 136460 [details] did not pass gtk-ews (gtk):
&gt; Output: http://queues.webkit.org/results/12384233

A clean build is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603185</commentid>
    <comment_count>26</comment_count>
      <attachid>136460</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-16 08:53:23 -0700</bug_when>
    <thetext>Comment on attachment 136460
Patch

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

Looks good, but take a look at my comment below before landing.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:179
&gt; +bool doGstInit()

Is this used outside the file now? It&apos;s no longer static. Now that you have initializeGStreamer, perhaps it makese sense to rename this method to differeniate it from initializeGStreamer. How about initializeGStreamerAndRegisterWebKitWebSrc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603190</commentid>
    <comment_count>27</comment_count>
      <attachid>136460</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-16 09:05:48 -0700</bug_when>
    <thetext>Comment on attachment 136460
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:179
&gt;&gt; +bool doGstInit()
&gt; 
&gt; Is this used outside the file now? It&apos;s no longer static. Now that you have initializeGStreamer, perhaps it makese sense to rename this method to differeniate it from initializeGStreamer. How about initializeGStreamerAndRegisterWebKitWebSrc?

I agree about renaming but I saw some branches of this code doing additional elements registration. So maybe we should have a less specific name, like initializeGStreamerAndAndRegisterWebKitElements ? long names ftw :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603250</commentid>
    <comment_count>28</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-16 10:14:53 -0700</bug_when>
    <thetext>Committed r114269: &lt;http://trac.webkit.org/changeset/114269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130157</attachid>
            <date>2012-03-05 09:51:05 -0800</date>
            <delta_ts>2012-03-12 01:27:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>5685</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjNDcxNDRmYzlmMTZjYTY5NTBlZDRkZjVjN2RlNmU1YmQxYTI2ZWVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDUgTWFyIDIwMTIgMTg6NTA6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDkgKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgICAg
ICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrKysr
KwogLi4uL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCAgfCAg
ICA1IC0tLS0KIC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNw
cCAgIHwgICAgNyAtLS0tLS0KIC4uLi9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvRkZURnJhbWVH
U3RyZWFtZXIuY3BwIHwgICAgNCArKysKIDYgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygr
KSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQwMTU0NjUuLjFlNTQ4NDEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMi0wMy0wNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSFJURkRhdGFiYXNlTG9hZGVyIGNvbmZsaWN0
cyB3aXRoIEF1ZGlvRmlsZVJlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzgwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgbW9zdCB3ZWJhdWRp
byB0ZXN0cy4KKwogMjAxMi0wMy0wNSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmaXggZXh0ZW5zaW9ucy1yZXNvdXJj
ZS5odG1sIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGNmZWMxYjkuLjcyOWJm
M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0zNjMsOCArMzYzLDI3IEBAIGZhc3Qv
cmVnaW9ucwogIyBDU1MgRXhjbHVzaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDov
L3dlYmtpdC5vcmcvYi81NzMxMQogZmFzdC9leGNsdXNpb25zCiAKLSMgRm9yIG5vdywgV2ViIEF1
ZGlvIEFQSSBpcyBkaXNhYmxlZAotd2ViYXVkaW8KKyMgW0dUS11bSlNDXSBXZWJBdWRpbyBmYWls
dXJlcworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyOTgKK3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLmh0bWwKK3dlYmF1ZGlvL2NvbnZvbHV0
aW9uLW1vbm8tbW9uby5odG1sCit3ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwKK3dl
YmF1ZGlvL2RlbGF5bm9kZS5odG1sCit3ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbAor
d2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcuaHRtbAord2ViYXVkaW8vdXAtbWl4aW5nLW1v
bm8tc3RlcmVvLmh0bWwKK3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKK3dlYmF1ZGlv
L2JpcXVhZC1hbGxwYXNzLmh0bWwKK3dlYmF1ZGlvL2JpcXVhZC1oaWdoc2hlbGYuaHRtbAord2Vi
YXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWwKK3dlYmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWwK
K3dlYmF1ZGlvL2JpcXVhZGZpbHRlcm5vZGUtYmFzaWMuaHRtbAord2ViYXVkaW8vYmlxdWFkLWxv
d3NoZWxmLmh0bWwKK3dlYmF1ZGlvL2JpcXVhZC1nZXRGcmVxdWVuY3lSZXNwb25zZS5odG1sCit3
ZWJhdWRpby9iaXF1YWQtbm90Y2guaHRtbAord2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWwK
K3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwKK3dlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbAog
CiAjIFZJREVPX1RSQUNLIGlzIGRpc2FibGVkIGZvciBub3cKIG1lZGlhL3RyYWNrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNjdkMmVkOS4uNTk3NjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDEy
LTAzLTA1ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAorICAgICAg
ICBbR1N0cmVhbWVyXSBIUlRGRGF0YWJhc2VMb2FkZXIgY29uZmxpY3RzIHdpdGggQXVkaW9GaWxl
UmVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmVkIEdTdHJlYW1lciBpbml0aWFsaXphdGlvbiB0byBGRlRGcmFtZTo6aW5pdGlhbGl6ZSB3aGlj
aCBpcworICAgICAgICBjYWxsZWQgcXVpdGUgZWFybHkgYXQgQXVkaW9Db250ZXh0IGNyZWF0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
cjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0ZGVEZyYW1lR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZy
YW1lOjppbml0aWFsaXplKToKKworMjAxMi0wMy0wNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKICAgICAgICAgV2ViQXVkaW8gSlNDLXJlbGF0ZWQgZml4ZXMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMjk5CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCAzMGViYmY5Li42ZGQ4
NmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC01Nywx
MSArNTcsNiBAQCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyKEF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZAogICAgICwgbV9zYW1wbGVSYXRlKHNh
bXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsKLSAgICBzdGF0aWMgYm9vbCBn
c3RJbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlmICghZ3N0SW5pdGlhbGl6ZWQpCi0gICAgICAg
IGdzdEluaXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2soMCwgMCwgMCk7Ci0gICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRShnc3RJbml0aWFsaXplZCwgIkdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBmYWls
ZWQiKTsKLQogICAgIG1fcGlwZWxpbmUgPSBnc3RfcGlwZWxpbmVfbmV3KCJwbGF5Iik7CiAKICAg
ICBHc3RFbGVtZW50KiB3ZWJraXRBdWRpb1NyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dCo+KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfQVVESU9fU1JDLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCAwOTNmODFmLi5lN2I3YTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVh
ZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMjcyLDEzICsyNzIsNiBAQCBQ
YXNzT3duUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1w
bGVSYXRlLCBib29sIG1peFRvTW9ubwogewogICAgIG1fc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7
CiAKLSAgICBzdGF0aWMgYm9vbCBnc3RJbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlmICghZ3N0
SW5pdGlhbGl6ZWQpCi0gICAgICAgIGdzdEluaXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2soMCwg
MCwgMCk7Ci0KLSAgICBpZiAoIWdzdEluaXRpYWxpemVkKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQogICAgIG1fZnJvbnRMZWZ0QnVmZmVycyA9IGdzdF9idWZmZXJfbGlzdF9uZXcoKTsKICAg
ICBtX2Zyb250TGVmdEJ1ZmZlcnNJdGVyYXRvciA9IGdzdF9idWZmZXJfbGlzdF9pdGVyYXRlKG1f
ZnJvbnRMZWZ0QnVmZmVycyk7CiAgICAgZ3N0X2J1ZmZlcl9saXN0X2l0ZXJhdG9yX2FkZF9ncm91
cChtX2Zyb250TGVmdEJ1ZmZlcnNJdGVyYXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvRkZURnJhbWVHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0ZGVEZyYW1lR1N0cmVhbWVyLmNwcApp
bmRleCAyOTM3NDc2NC4uYWU4ZjZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0ZGVEZyYW1lR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvRkZURnJhbWVHU3RyZWFtZXIuY3BwCkBAIC04
Myw2ICs4MywxMCBAQCBGRlRGcmFtZTo6RkZURnJhbWUoY29uc3QgRkZURnJhbWUmIGZyYW1lKQog
CiB2b2lkIEZGVEZyYW1lOjppbml0aWFsaXplKCkKIHsKKyAgICBzdGF0aWMgYm9vbCBnc3RJbml0
aWFsaXplZCA9IGZhbHNlOworICAgIGlmICghZ3N0SW5pdGlhbGl6ZWQpCisgICAgICAgIGdzdElu
aXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2soMCwgMCwgMCk7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShnc3RJbml0aWFsaXplZCwgIkdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBmYWlsZWQiKTsK
IH0KIAogdm9pZCBGRlRGcmFtZTo6Y2xlYW51cCgpCi0tIAoxLjcuOS4x
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131290</attachid>
            <date>2012-03-12 01:27:21 -0700</date>
            <delta_ts>2012-04-04 08:30:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>3836</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyYWYzYmNkMWI5ZWFiNDM0MTFhMTA1Zjc2M2EzZGU4NTVhOTUwZTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDggTWFyIDIwMTIgMTc6MjY6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysrKysrKysrKysrKysrKysKIC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgIHwgICAgNSAtLS0tLQogLi4uL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwICAgfCAgICA3IC0tLS0tLS0KIC4uLi9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvRkZURnJhbWVHU3RyZWFtZXIuY3BwIHwgICAgNCArKysrCiA0
IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3NWNiOGRhLi4zNTJjZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMDMtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHU3RyZWFtZXJdIEhSVEZEYXRhYmFzZUxvYWRlciBjb25mbGljdHMgd2l0aCBBdWRpb0Zp
bGVSZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZWQgR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIHRvIEZGVEZyYW1lOjppbml0aWFsaXplIHdo
aWNoIGlzCisgICAgICAgIGNhbGxlZCBxdWl0ZSBlYXJseSBhdCBBdWRpb0NvbnRleHQgY3JlYXRp
b24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvRkZURnJhbWVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkZU
RnJhbWU6OmluaXRpYWxpemUpOgorCiAyMDEyLTAzLTA4ICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9A
dG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVhbSBHcmFw
aGljc0xheWVyQmxhY2tCZXJyeS57aCwgY3BwfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuY3BwCmluZGV4IDMwZWJiZjkuLjZkZDg2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTU3LDExICs1Nyw2IEBAIEF1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9Tb3VyY2VQcm92aWRl
ciYgcHJvdmlkCiAgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKICAgICAsIG1faXNQbGF5
aW5nKGZhbHNlKQogewotICAgIHN0YXRpYyBib29sIGdzdEluaXRpYWxpemVkID0gZmFsc2U7Ci0g
ICAgaWYgKCFnc3RJbml0aWFsaXplZCkKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSBnc3RfaW5p
dF9jaGVjaygwLCAwLCAwKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGdzdEluaXRpYWxpemVk
LCAiR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIGZhaWxlZCIpOwotCiAgICAgbV9waXBlbGluZSA9
IGdzdF9waXBlbGluZV9uZXcoInBsYXkiKTsKIAogICAgIEdzdEVsZW1lbnQqIHdlYmtpdEF1ZGlv
U3JjID0gcmVpbnRlcnByZXRfY2FzdDxHc3RFbGVtZW50Kj4oZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX1dFQl9BVURJT19TUkMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3Bw
CmluZGV4IDA5M2Y4MWYuLmU3YjdhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3Ry
ZWFtZXIuY3BwCkBAIC0yNzIsMTMgKzI3Miw2IEBAIFBhc3NPd25QdHI8QXVkaW9CdXM+IEF1ZGlv
RmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiB7
CiAgICAgbV9zYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAotICAgIHN0YXRpYyBib29sIGdzdElu
aXRpYWxpemVkID0gZmFsc2U7Ci0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkKLSAgICAgICAgZ3N0
SW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9jaGVjaygwLCAwLCAwKTsKLQotICAgIGlmICghZ3N0SW5p
dGlhbGl6ZWQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgbV9mcm9udExlZnRCdWZm
ZXJzID0gZ3N0X2J1ZmZlcl9saXN0X25ldygpOwogICAgIG1fZnJvbnRMZWZ0QnVmZmVyc0l0ZXJh
dG9yID0gZ3N0X2J1ZmZlcl9saXN0X2l0ZXJhdGUobV9mcm9udExlZnRCdWZmZXJzKTsKICAgICBn
c3RfYnVmZmVyX2xpc3RfaXRlcmF0b3JfYWRkX2dyb3VwKG1fZnJvbnRMZWZ0QnVmZmVyc0l0ZXJh
dG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9GRlRGcmFtZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvRkZURnJhbWVHU3RyZWFtZXIuY3BwCmluZGV4IDI5Mzc0NzY0Li5hZThmNmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvRkZURnJh
bWVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9GRlRGcmFtZUdTdHJlYW1lci5jcHAKQEAgLTgzLDYgKzgzLDEwIEBAIEZGVEZyYW1lOjpG
RlRGcmFtZShjb25zdCBGRlRGcmFtZSYgZnJhbWUpCiAKIHZvaWQgRkZURnJhbWU6OmluaXRpYWxp
emUoKQogeworICAgIHN0YXRpYyBib29sIGdzdEluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYg
KCFnc3RJbml0aWFsaXplZCkKKyAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9jaGVj
aygwLCAwLCAwKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGdzdEluaXRpYWxpemVkLCAiR1N0
cmVhbWVyIGluaXRpYWxpemF0aW9uIGZhaWxlZCIpOwogfQogCiB2b2lkIEZGVEZyYW1lOjpjbGVh
bnVwKCkKLS0gCjEuNy45LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135598</attachid>
            <date>2012-04-04 08:30:45 -0700</date>
            <delta_ts>2012-04-04 10:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>14969</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlZGQ4ZDM2NGVkNmQyMGI5NTQwNDgwNmYzZGNkNTM5Zjk5MDM3YzI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDQgQXByIDIwMTIgMTU6NDE6MzggKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDkgKysrKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gICAgICAgICAgICAgICAgIHwgICAxMyArKysrLS0KIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCAgIHwgICAgOCArKysrCiAuLi4v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwICB8ICAgIDUgLS0K
IC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCAgIHwgICAg
NyAtLS0KIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgICAgICAg
IHwgICAyMCArKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0
ckdTdHJlYW1lci5oIHwgICAgNSArKwogLi4uL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJV
dGlsaXRpZXMuY3BwICAgICAgfCAgIDQyICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oICAgICAgICB8ICAgMjIgKysrKysrKysr
KwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgICAgfCAg
IDMxICsrKysrKy0tLS0tLS0tLQogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciAgICAg
ICAgICAgICAgICAgICAgfCAgICAxICsKIDEyIGZpbGVzIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25z
KCspLCAzNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJVdGlsaXRpZXMuaAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCAxZDFkZTJiLi5hZjkxNzkxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDQtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIEhSVEZEYXRhYmFzZUxvYWRl
ciBjb25mbGljdHMgd2l0aCBBdWRpb0ZpbGVSZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
OiBFeHBvcnQgbmV3IHN5bWJvbC4KKwogMjAxMi0wNC0wMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIHJlbW92ZSBXZWJLaXQgZmlsZXMgZnJvbSAuZ2l0YXR0cmli
dXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDdjNDgwZDkuLjcwZmUzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNyBAQAorMjAxMi0wNC0wNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSFJURkRhdGFiYXNlTG9hZGVyIGNvbmZsaWN0cyB3
aXRoIEF1ZGlvRmlsZVJlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzgwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlZCB0aGUgR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRvIGEg
bmV3CisgICAgICAgIEdTdHJlYW1lclV0aWxpdGllcyBtb2R1bGUsIHVzZWQgYnkgdGhlIE1lZGlh
UGxheWVyIGFuZCB0aGUKKyAgICAgICAgQXVkaW9Db250ZXh0LiBJIGFsc28gcmVtb3ZlZCB0aGUg
c3RhdGljIHZhcmlhYmxlcyBhcworICAgICAgICBnc3RfaW5pdF9jaGVjayBhbHJlYWR5IGhhbmRs
ZXMgY2FzZXMgd2hlcmUgaXQncyBjYWxsZWQgbXVsdGlwbGUKKyAgICAgICAgdGltZXMuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y29uc3Ry
dWN0Q29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXVEY6
OmFkb3B0R1JlZik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpHc3RFbGVtZW50RmFj
dG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb0dzdElu
aXQpOgorCiAyMDEyLTA0LTA0ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgW0dUS10gU2Nyb2xsaW5nIGRvZXNuJ3Qgd29yayBpbiBXZWJLaXQyIHNpbmNl
IHIxMTAxODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDEyZjUyY2UuLjNlOGE5
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDYyMSwxMiArNDYyMSw4IEBA
IHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3Ry
ZWFtZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9u
aW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKQEAgLTU2
NTUsNiArNTY1MSwxNSBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViYXVkaW8vV2F2ZVRhYmxlLmlkbAogZW5kaWYKIAoraWYgVVNFX0dTVFJFQU1FUgor
d2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0
aWVzLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWZXJzaW9uaW5nLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaAorZW5kaWYKIAogIyAtLS0tCiAjIFdlYiBT
b2NrZXRzIFN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmNwcAppbmRleCBmMTIzZmQ5Li5mM2IyNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC02OCw2ICs2OCwxMCBA
QAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCisjaW5j
bHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHd0Zi9BcnJh
eUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KQEAgLTE3OCw2ICsxODIsMTAgQEAgQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQo
RG9jdW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QKIAog
dm9pZCBBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdENvbW1vbigpCiB7CisjaWYgVVNFKEdTVFJFQU1F
UikKKyAgICBXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKCk7CisjZW5kaWYKKwogICAgIEZG
VEZyYW1lOjppbml0aWFsaXplKCk7CiAgICAgCiAgICAgbV9saXN0ZW5lciA9IEF1ZGlvTGlzdGVu
ZXI6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmlu
ZGV4IGI2MDZhMzMuLjU2MTFiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lci5jcHAKQEAgLTU3LDExICs1Nyw2IEBAIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OkF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9Tb3VyY2VQcm92aWRlciYgcHJvdmlkCiAgICAg
LCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKICAgICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewot
ICAgIHN0YXRpYyBib29sIGdzdEluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgaWYgKCFnc3RJbml0
aWFsaXplZCkKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9jaGVjaygwLCAwLCAw
KTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGdzdEluaXRpYWxpemVkLCAiR1N0cmVhbWVyIGlu
aXRpYWxpemF0aW9uIGZhaWxlZCIpOwotCiAgICAgbV9waXBlbGluZSA9IGdzdF9waXBlbGluZV9u
ZXcoInBsYXkiKTsKIAogICAgIEdzdEVsZW1lbnQqIHdlYmtpdEF1ZGlvU3JjID0gcmVpbnRlcnBy
ZXRfY2FzdDxHc3RFbGVtZW50Kj4oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9BVURJT19T
UkMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IGE3YTVjNzEu
LjViOTJlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0z
MjQsMTMgKzMyNCw2IEBAIFBhc3NPd25QdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3Jl
YXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiB7CiAgICAgbV9zYW1wbGVS
YXRlID0gc2FtcGxlUmF0ZTsKIAotICAgIHN0YXRpYyBib29sIGdzdEluaXRpYWxpemVkID0gZmFs
c2U7Ci0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSBn
c3RfaW5pdF9jaGVjaygwLCAwLCAwKTsKLQotICAgIGlmICghZ3N0SW5pdGlhbGl6ZWQpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCiAgICAgbV9mcm9udExlZnRCdWZmZXJzID0gZ3N0X2J1ZmZl
cl9saXN0X25ldygpOwogICAgIG1fZnJvbnRMZWZ0QnVmZmVyc0l0ZXJhdG9yID0gZ3N0X2J1ZmZl
cl9saXN0X2l0ZXJhdGUobV9mcm9udExlZnRCdWZmZXJzKTsKICAgICBnc3RfYnVmZmVyX2xpc3Rf
aXRlcmF0b3JfYWRkX2dyb3VwKG1fZnJvbnRMZWZ0QnVmZmVyc0l0ZXJhdG9yKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
UmVmUHRyR1N0cmVhbWVyLmNwcAppbmRleCA1MzA2OTc0Li4wNjJlM2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dS
ZWZQdHJHU3RyZWFtZXIuY3BwCkBAIC0xNDAsNSArMTQwLDI1IEBAIHRlbXBsYXRlIDw+IHZvaWQg
ZGVyZWZHUHRyPEdzdEJ1cz4oR3N0QnVzKiBwdHIpCiAgICAgICAgIGdzdF9vYmplY3RfdW5yZWYo
cHRyKTsKIH0KIAordGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4gYWRvcHRH
UmVmKEdzdEVsZW1lbnRGYWN0b3J5KiBwdHIpCit7CisgICAgQVNTRVJUKCFHU1RfT0JKRUNUX0lT
X0ZMT0FUSU5HKEdTVF9PQkpFQ1QocHRyKSkpOworICAgIHJldHVybiBHUmVmUHRyPEdzdEVsZW1l
bnRGYWN0b3J5PihwdHIsIEdSZWZQdHJBZG9wdCk7Cit9CisKK3RlbXBsYXRlIDw+IEdzdEVsZW1l
bnRGYWN0b3J5KiByZWZHUHRyPEdzdEVsZW1lbnRGYWN0b3J5PihHc3RFbGVtZW50RmFjdG9yeSog
cHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NU
X09CSkVDVChwdHIpKTsKKworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQg
ZGVyZWZHUHRyPEdzdEVsZW1lbnRGYWN0b3J5PihHc3RFbGVtZW50RmFjdG9yeSogcHRyKQorewor
ICAgIGlmIChwdHIpCisgICAgICAgIGdzdF9vYmplY3RfdW5yZWYocHRyKTsKK30KKwogfQogI2Vu
ZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaAppbmRleCA5NDA0
NzBhLi5hM2RjZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKQEAgLTI5LDYgKzI5LDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgX0dzdFBhZFRlbXBsYXRlIEdzdFBhZFRlbXBsYXRlOwogdHlwZWRl
ZiBzdHJ1Y3QgX0dzdENhcHMgR3N0Q2FwczsKIHR5cGVkZWYgc3RydWN0IF9Hc3RUYXNrIEdzdFRh
c2s7CiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVzIEdzdEJ1czsKK3R5cGVkZWYgc3RydWN0IF9Hc3RF
bGVtZW50RmFjdG9yeSBHc3RFbGVtZW50RmFjdG9yeTsKIAogbmFtZXNwYWNlIFdURiB7CiAKQEAg
LTU1LDYgKzU2LDEwIEBAIHRlbXBsYXRlPD4gR1JlZlB0cjxHc3RCdXM+IGFkb3B0R1JlZihHc3RC
dXMqIHB0cik7CiB0ZW1wbGF0ZTw+IEdzdEJ1cyogcmVmR1B0cjxHc3RCdXM+KEdzdEJ1cyogcHRy
KTsKIHRlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8R3N0QnVzPihHc3RCdXMqIHB0cik7CiAKK3Rl
bXBsYXRlPD4gR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4gYWRvcHRHUmVmKEdzdEVsZW1lbnRG
YWN0b3J5KiBwdHIpOwordGVtcGxhdGU8PiBHc3RFbGVtZW50RmFjdG9yeSogcmVmR1B0cjxHc3RF
bGVtZW50RmFjdG9yeT4oR3N0RWxlbWVudEZhY3RvcnkqIHB0cik7Cit0ZW1wbGF0ZTw+IHZvaWQg
ZGVyZWZHUHRyPEdzdEVsZW1lbnRGYWN0b3J5PihHc3RFbGVtZW50RmFjdG9yeSogcHRyKTsKKwog
fQogCiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGll
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI3MWQzMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisK
KyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CisKKyNpZiBVU0UoR1NUUkVBTUVSKQor
I2luY2x1ZGUgPGdzdC9nc3QuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGluaXRp
YWxpemVHU3RyZWFtZXIoKQoreworICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjb21t
YW5kIGxpbmUuCisgICAgYm9vbCBnc3RJbml0aWFsaXplZCA9IGdzdF9pbml0X2NoZWNrKDAsIDAs
ICZlcnJvci5vdXRQdHIoKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShnc3RJbml0aWFsaXpl
ZCwgIkdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiwgZXJyb3IgPyBlcnJvci0+
bWVzc2FnZSA6ICJ1bmtub3duIGVycm9yIG9jY3VycmVkIik7CisgICAgcmV0dXJuIGdzdEluaXRp
YWxpemVkOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBVU0UoR1NU
UkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmI5ZWIxNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmgKQEAgLTAs
MCArMSwyMiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTAorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworCituYW1lc3BhY2UgV2ViQ29yZSB7Citib29sIGlu
aXRpYWxpemVHU3RyZWFtZXIoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNmVlN2E3OS4uN2Y2MTc5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdT
dHJlYW1lckdXb3JsZC5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclV0aWxpdGllcy5oIgogI2luY2x1
ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCkBAIC0xNzQsMjIgKzE3NSwxNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhciByZWdpcwogICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRU
eXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwKTsKIH0KIAotc3RhdGljIGJvb2wgZ3N0SW5pdGlh
bGl6ZWQgPSBmYWxzZTsKLQotc3RhdGljIGJvb2wgZG9Hc3RJbml0KCkKK2Jvb2wgZG9Hc3RJbml0
KCkKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUKLSAgICBpZiAoIWdzdEluaXRpYWxpemVkKSB7Ci0gICAgICAgIEdPd25Q
dHI8R0Vycm9yPiBlcnJvcjsKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9jaGVj
aygwLCAwLCAmZXJyb3Iub3V0UHRyKCkpOwotICAgICAgICBpZiAoIWdzdEluaXRpYWxpemVkKQot
ICAgICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJDb3VsZCBub3QgaW5pdGlhbGl6ZSBHU3Ry
ZWFtZXI6ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID8gZXJyb3ItPm1lc3Nh
Z2UgOiAidW5rbm93biBlcnJvciBvY2N1cnJlZCIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBnc3RfZWxlbWVudF9yZWdpc3RlcigwLCAid2Via2l0d2Vic3JjIiwgR1NUX1JBTktfUFJJTUFS
WSArIDEwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9TUkMpOwotICAgIH0KLSAgICByZXR1cm4gZ3N0SW5pdGlhbGl6ZWQ7CisgICAgaWYgKCFXZWJD
b3JlOjppbml0aWFsaXplR1N0cmVhbWVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IHNyY0ZhY3RvcnkgPSBnc3RfZWxlbWVudF9mYWN0
b3J5X2ZpbmQoIndlYmtpdHdlYnNyYyIpOworICAgIGlmICghc3JjRmFjdG9yeSkKKyAgICAgICAg
cmV0dXJuIGdzdF9lbGVtZW50X3JlZ2lzdGVyKDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19Q
UklNQVJZICsgMTAwLCBXRUJLSVRfVFlQRV9XRUJfU1JDKTsKKworICAgIHJldHVybiB0cnVlOwog
fQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQpAQCAt
MTk3LDExICsxOTIsOSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFp
bGFibGUoKQogICAgIGlmICghZG9Hc3RJbml0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5k
KGdQbGF5YmluTmFtZSk7Ci0gICAgaWYgKGZhY3RvcnkpIHsKLSAgICAgICAgZ3N0X29iamVjdF91
bnJlZihHU1RfT0JKRUNUKGZhY3RvcnkpKTsKKyAgICBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5
PiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKGdQbGF5YmluTmFtZSk7CisgICAg
aWYgKGZhY3RvcnkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9T
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGRmOTQzMDkuLjMxYWEwNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTM1LDYgKzEzNSw3IEBAIF9aTjdXZWJDb3JlMjJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzMThpc1NoYWRvd0RPTUVuYWJsZWRFOwogX1pOSzdXZWJDb3Jl
OERvY3VtZW50MTNub2Rlc0Zyb21SZWN0RWlpampqamI7CiBfWk43V2ViQ29yZTR0b0pTRVBOM0pT
QzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzhOb2RlTGlzdEU7CiBfWk5L
N1dlYkNvcmU2RWRpdG9yMjZzZWxlY3Rpb25TdGFydEhhc01hcmtlckZvckVOU18xNERvY3VtZW50
TWFya2VyMTBNYXJrZXJUeXBlRWlpOworX1pON1dlYkNvcmUxOWluaXRpYWxpemVHU3RyZWFtZXJF
djsKIGxvY2FsOgogX1oqOwogY3RpKjsKLS0gCjEuNy45LjE=
</data>
<flag name="commit-queue"
          id="140162"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135615</attachid>
            <date>2012-04-04 10:06:16 -0700</date>
            <delta_ts>2012-04-10 08:11:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>15716</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhNTdiYTViOGQyMmM0YmE5YzM0ZTExY2JkMTliMWFkN2YyMmNkNDFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDQgQXByIDIwMTIgMTU6NDE6MzggKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzQgKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgIDEzICsrKystLQogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwICAgfCAgICA4ICsrKysKIFNvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4u
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCAgfCAgICA1IC0t
CiAuLi4vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAgICB8ICAg
IDcgLS0tCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwICAgICAg
ICB8ICAgMjAgKysrKysrKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVm
UHRyR1N0cmVhbWVyLmggfCAgICA1ICsrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
clV0aWxpdGllcy5jcHAgICAgICB8ICAgNDEgKysrKysrKysrKysrKysrKysrKysKIC4uLi9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmggICAgICAgIHwgICAyMiArKysrKysr
KysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8
ICAgMzMgKysrKysrLS0tLS0tLS0tLQogMTIgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlvbnMo
KyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclV0aWxpdGllcy5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdjNDgwZDkuLjcwZmUzYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNC0wNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSFJURkRhdGFiYXNlTG9h
ZGVyIGNvbmZsaWN0cyB3aXRoIEF1ZGlvRmlsZVJlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUgR1N0cmVhbWVyIGluaXRpYWxpemF0
aW9uIGxvZ2ljIHRvIGEgbmV3CisgICAgICAgIEdTdHJlYW1lclV0aWxpdGllcyBtb2R1bGUsIHVz
ZWQgYnkgdGhlIE1lZGlhUGxheWVyIGFuZCB0aGUKKyAgICAgICAgQXVkaW9Db250ZXh0LiBJIGFs
c28gcmVtb3ZlZCB0aGUgc3RhdGljIHZhcmlhYmxlcyBhcworICAgICAgICBnc3RfaW5pdF9jaGVj
ayBhbHJlYWR5IGhhbmRsZXMgY2FzZXMgd2hlcmUgaXQncyBjYWxsZWQgbXVsdGlwbGUKKyAgICAg
ICAgdGltZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6Y29uc3RydWN0Q29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RG
OjpHc3RFbGVtZW50RmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dSZWZQdHJHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVz
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkb0dzdEluaXQpOgorCiAyMDEyLTA0LTA0ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2Jl
cnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gU2Nyb2xsaW5nIGRvZXNuJ3Qgd29yayBp
biBXZWJLaXQyIHNpbmNlIHIxMTAxODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDEyZjUyY2UuLjNlOGE5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDYy
MSwxMiArNDYyMSw4IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ2Fpcm8uaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lv
bmluZy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJWZXJzaW9uaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIFwKQEAgLTU2NTUsNiArNTY1MSwxNSBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVRhYmxlLmlkbAogZW5kaWYKIAoraWYg
VVNFX0dTVFJFQU1FUgord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGls
aXRpZXMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVXRpbGl0aWVzLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaAorZW5kaWYKIAog
IyAtLS0tCiAjIFdlYiBTb2NrZXRzIFN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBmMTIzZmQ5Li40NWFjMGQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBA
IC02OCw2ICs2OCwxMCBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjZW5kaWYKIAorI2lmIFVTRShH
U1RSRUFNRVIpCisjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTE3OCw2ICsxODIsMTAgQEAgQXVkaW9Db250ZXh0
OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5u
ZWxzLCBzaXplX3QKIAogdm9pZCBBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdENvbW1vbigpCiB7Cisj
aWYgVVNFKEdTVFJFQU1FUikKKyAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisjZW5kaWYKKwog
ICAgIEZGVEZyYW1lOjppbml0aWFsaXplKCk7CiAgICAgCiAgICAgbV9saXN0ZW5lciA9IEF1ZGlv
TGlzdGVuZXI6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBjMzVkYjZk
Li5lN2M2YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTg3LDYgKzE4Nyw3IEBA
IElGIChFTkFCTEVfVklERU8pCiAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggY2VmNjdhMS4uMjFlMGI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMjUyLDYgKzMyNTIs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBIRUFERVJT
ICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0
cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lckdXb3JsZC5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJVdGlsaXRpZXMuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAgICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmggXApAQCAt
MzI2Miw2ICszMjYzLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAg
ICAgICAgU09VUkNFUyArPSBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAgXAogICAgICAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuY3BwIFwKICAgICAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1NpbmtHU3RyZWFtZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
LmNwcAppbmRleCBiNjA2YTMzLi41NjExYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXIuY3BwCkBAIC01NywxMSArNTcsNiBAQCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvU291cmNlUHJvdmlkZXImIHByb3Zp
ZAogICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxz
ZSkKIHsKLSAgICBzdGF0aWMgYm9vbCBnc3RJbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlmICgh
Z3N0SW5pdGlhbGl6ZWQpCi0gICAgICAgIGdzdEluaXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2so
MCwgMCwgMCk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShnc3RJbml0aWFsaXplZCwgIkdTdHJl
YW1lciBpbml0aWFsaXphdGlvbiBmYWlsZWQiKTsKLQogICAgIG1fcGlwZWxpbmUgPSBnc3RfcGlw
ZWxpbmVfbmV3KCJwbGF5Iik7CiAKICAgICBHc3RFbGVtZW50KiB3ZWJraXRBdWRpb1NyYyA9IHJl
aW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVudCo+KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJf
QVVESU9fU1JDLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCBh
N2E1YzcxLi41YjkyZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNw
cApAQCAtMzI0LDEzICszMjQsNiBAQCBQYXNzT3duUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFk
ZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogewogICAgIG1f
c2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7CiAKLSAgICBzdGF0aWMgYm9vbCBnc3RJbml0aWFsaXpl
ZCA9IGZhbHNlOwotICAgIGlmICghZ3N0SW5pdGlhbGl6ZWQpCi0gICAgICAgIGdzdEluaXRpYWxp
emVkID0gZ3N0X2luaXRfY2hlY2soMCwgMCwgMCk7Ci0KLSAgICBpZiAoIWdzdEluaXRpYWxpemVk
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIG1fZnJvbnRMZWZ0QnVmZmVycyA9IGdz
dF9idWZmZXJfbGlzdF9uZXcoKTsKICAgICBtX2Zyb250TGVmdEJ1ZmZlcnNJdGVyYXRvciA9IGdz
dF9idWZmZXJfbGlzdF9pdGVyYXRlKG1fZnJvbnRMZWZ0QnVmZmVycyk7CiAgICAgZ3N0X2J1ZmZl
cl9saXN0X2l0ZXJhdG9yX2FkZF9ncm91cChtX2Zyb250TGVmdEJ1ZmZlcnNJdGVyYXRvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1Jl
ZlB0ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKaW5kZXggNTMwNjk3NC4uMDYyZTNmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcApAQCAtMTQwLDUgKzE0MCwyNSBAQCB0ZW1wbGF0ZSA8
PiB2b2lkIGRlcmVmR1B0cjxHc3RCdXM+KEdzdEJ1cyogcHRyKQogICAgICAgICBnc3Rfb2JqZWN0
X3VucmVmKHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+IEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+
IGFkb3B0R1JlZihHc3RFbGVtZW50RmFjdG9yeSogcHRyKQoreworICAgIEFTU0VSVCghR1NUX09C
SkVDVF9JU19GTE9BVElORyhHU1RfT0JKRUNUKHB0cikpKTsKKyAgICByZXR1cm4gR1JlZlB0cjxH
c3RFbGVtZW50RmFjdG9yeT4ocHRyLCBHUmVmUHRyQWRvcHQpOworfQorCit0ZW1wbGF0ZSA8PiBH
c3RFbGVtZW50RmFjdG9yeSogcmVmR1B0cjxHc3RFbGVtZW50RmFjdG9yeT4oR3N0RWxlbWVudEZh
Y3RvcnkqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZT
aW5rKEdTVF9PQkpFQ1QocHRyKSk7CisKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8
PiB2b2lkIGRlcmVmR1B0cjxHc3RFbGVtZW50RmFjdG9yeT4oR3N0RWxlbWVudEZhY3RvcnkqIHB0
cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKHB0cik7Cit9CisK
IH0KICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKaW5k
ZXggOTQwNDcwYS4uYTNkY2RhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oCkBAIC0yOSw2
ICsyOSw3IEBAIHR5cGVkZWYgc3RydWN0IF9Hc3RQYWRUZW1wbGF0ZSBHc3RQYWRUZW1wbGF0ZTsK
IHR5cGVkZWYgc3RydWN0IF9Hc3RDYXBzIEdzdENhcHM7CiB0eXBlZGVmIHN0cnVjdCBfR3N0VGFz
ayBHc3RUYXNrOwogdHlwZWRlZiBzdHJ1Y3QgX0dzdEJ1cyBHc3RCdXM7Cit0eXBlZGVmIHN0cnVj
dCBfR3N0RWxlbWVudEZhY3RvcnkgR3N0RWxlbWVudEZhY3Rvcnk7CiAKIG5hbWVzcGFjZSBXVEYg
ewogCkBAIC01NSw2ICs1NiwxMCBAQCB0ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0QnVzPiBhZG9wdEdS
ZWYoR3N0QnVzKiBwdHIpOwogdGVtcGxhdGU8PiBHc3RCdXMqIHJlZkdQdHI8R3N0QnVzPihHc3RC
dXMqIHB0cik7CiB0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZHUHRyPEdzdEJ1cz4oR3N0QnVzKiBwdHIp
OwogCit0ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IGFkb3B0R1JlZihHc3RF
bGVtZW50RmFjdG9yeSogcHRyKTsKK3RlbXBsYXRlPD4gR3N0RWxlbWVudEZhY3RvcnkqIHJlZkdQ
dHI8R3N0RWxlbWVudEZhY3Rvcnk+KEdzdEVsZW1lbnRGYWN0b3J5KiBwdHIpOwordGVtcGxhdGU8
PiB2b2lkIGRlcmVmR1B0cjxHc3RFbGVtZW50RmFjdG9yeT4oR3N0RWxlbWVudEZhY3RvcnkqIHB0
cik7CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJV
dGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjMzYzYTcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMu
aCIKKworI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRy
Lmg+CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wg
aW5pdGlhbGl6ZUdTdHJlYW1lcigpCit7CisgICAgR093blB0cjxHRXJyb3I+IGVycm9yOworICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgcGFzcyB0aGUgYXJndW1lbnRzIGZyb20gdGhl
IGNvbW1hbmQgbGluZS4KKyAgICBib29sIGdzdEluaXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2so
MCwgMCwgJmVycm9yLm91dFB0cigpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGdzdEluaXRp
YWxpemVkLCAiR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiLCBlcnJvciA/IGVy
cm9yLT5tZXNzYWdlIDogInVua25vd24gZXJyb3Igb2NjdXJyZWQiKTsKKyAgICByZXR1cm4gZ3N0
SW5pdGlhbGl6ZWQ7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pICYmIFVT
RShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjllYjE2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaApA
QCAtMCwwICsxLDIyIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Jv
b2wgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA2ZWU3YTc5Li4yZjQ4NzJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiR1N0cmVhbWVyR1dvcmxkLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiR1N0cmVhbWVyVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKQEAgLTE3NCwyMiArMTc1LDE2IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlh
RW5naW5lUmVnaXN0cmFyIHJlZ2lzCiAgICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBv
cnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDApOwogfQogCi1zdGF0aWMgYm9vbCBnc3RJ
bml0aWFsaXplZCA9IGZhbHNlOwotCi1zdGF0aWMgYm9vbCBkb0dzdEluaXQoKQorYm9vbCBkb0dz
dEluaXQoKQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB0aGUgYXJndW1lbnRzIGZy
b20gdGhlIGNvbW1hbmQgbGluZQotICAgIGlmICghZ3N0SW5pdGlhbGl6ZWQpIHsKLSAgICAgICAg
R093blB0cjxHRXJyb3I+IGVycm9yOwotICAgICAgICBnc3RJbml0aWFsaXplZCA9IGdzdF9pbml0
X2NoZWNrKDAsIDAsICZlcnJvci5vdXRQdHIoKSk7Ci0gICAgICAgIGlmICghZ3N0SW5pdGlhbGl6
ZWQpCi0gICAgICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkNvdWxkIG5vdCBpbml0aWFsaXpl
IEdTdHJlYW1lcjogJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPyBlcnJvci0+
bWVzc2FnZSA6ICJ1bmtub3duIGVycm9yIG9jY3VycmVkIik7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19Q
UklNQVJZICsgMTAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZ
UEVfV0VCX1NSQyk7Ci0gICAgfQotICAgIHJldHVybiBnc3RJbml0aWFsaXplZDsKKyAgICBpZiAo
IWluaXRpYWxpemVHU3RyZWFtZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1Jl
ZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4gc3JjRmFjdG9yeSA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
ZmluZCgid2Via2l0d2Vic3JjIik7CisgICAgaWYgKCFzcmNGYWN0b3J5KQorICAgICAgICByZXR1
cm4gZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoMCwgIndlYmtpdHdlYnNyYyIsIEdTVF9SQU5LX1BSSU1B
UlkgKyAxMDAsIFdFQktJVF9UWVBFX1dFQl9TUkMpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppc0F2YWlsYWJsZSgpCkBAIC0xOTcs
MTIgKzE5Miw4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppc0F2YWlsYWJs
ZSgpCiAgICAgaWYgKCFkb0dzdEluaXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
R3N0RWxlbWVudEZhY3RvcnkqIGZhY3RvcnkgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoZ1Bs
YXliaW5OYW1lKTsKLSAgICBpZiAoZmFjdG9yeSkgewotICAgICAgICBnc3Rfb2JqZWN0X3VucmVm
KEdTVF9PQkpFQ1QoZmFjdG9yeSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IGZhY3RvcnkgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoZ1BsYXliaW5OYW1lKTsKKyAgICByZXR1cm4gZmFjdG9y
eTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKLS0gCjEuNy45LjE=
</data>
<flag name="commit-queue"
          id="140216"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136460</attachid>
            <date>2012-04-10 08:11:29 -0700</date>
            <delta_ts>2012-04-16 09:05:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>15736</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiYWI2OTY4NTllNGVjNmM3OWUyYjgyMDc0NzQyNmU3NDcyMDZjNWMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDQgQXByIDIwMTIgMTU6NDE6MzggKzAyMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzQgKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgIDEzICsrKystLQogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwICAgfCAgICA4ICsrKysKIFNvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4u
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCAgfCAgICA1IC0t
CiAuLi4vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAgICB8ICAg
IDcgLS0tCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwICAgICAg
ICB8ICAgMjAgKysrKysrKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVm
UHRyR1N0cmVhbWVyLmggfCAgICA1ICsrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
clV0aWxpdGllcy5jcHAgICAgICB8ICAgNDEgKysrKysrKysrKysrKysrKysrKysKIC4uLi9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmggICAgICAgIHwgICAyMiArKysrKysr
KysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8
ICAgMzMgKysrKysrLS0tLS0tLS0tLQogMTIgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlvbnMo
KyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclV0aWxpdGllcy5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE3ZTZjNGQuLmE1ZGE1MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNC0wNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSFJURkRhdGFiYXNlTG9h
ZGVyIGNvbmZsaWN0cyB3aXRoIEF1ZGlvRmlsZVJlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUgR1N0cmVhbWVyIGluaXRpYWxpemF0
aW9uIGxvZ2ljIHRvIGEgbmV3CisgICAgICAgIEdTdHJlYW1lclV0aWxpdGllcyBtb2R1bGUsIHVz
ZWQgYnkgdGhlIE1lZGlhUGxheWVyIGFuZCB0aGUKKyAgICAgICAgQXVkaW9Db250ZXh0LiBJIGFs
c28gcmVtb3ZlZCB0aGUgc3RhdGljIHZhcmlhYmxlcyBhcworICAgICAgICBnc3RfaW5pdF9jaGVj
ayBhbHJlYWR5IGhhbmRsZXMgY2FzZXMgd2hlcmUgaXQncyBjYWxsZWQgbXVsdGlwbGUKKyAgICAg
ICAgdGltZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6Y29uc3RydWN0Q29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RG
OjpHc3RFbGVtZW50RmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dSZWZQdHJHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVz
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkb0dzdEluaXQpOgorCiAyMDEyLTA0LTEwICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgZXJyb3IgYSBz
dHJpbmcgb24gdGhlIGZyb250LWVuZCBzaWRlLCBub3QgYW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggZDM2NzM0OC4uZDZiYTQ4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC00NjI1LDEyICs0NjI1LDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
Q2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29y
bGQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyR1dvcmxkLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFt
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgXApAQCAtNTY1OSw2ICs1NjU1LDE1IEBAIGRvbV9i
aW5kaW5nX2lkbHMgKz0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlVGFi
bGUuaWRsCiBlbmRpZgogCitpZiBVU0VfR1NUUkVBTUVSCit3ZWJjb3JlX3NvdXJjZXMgKz0gXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVh
bWVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dS
ZWZQdHJHU3RyZWFtZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVy
c2lvbmluZy5oCitlbmRpZgogCiAjIC0tLS0KICMgV2ViIFNvY2tldHMgU3VwcG9ydApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGU4
OTg0NjcuLjk5OTdmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKQEAgLTY4LDYgKzY4LDEwIEBACiAjaW5jbHVkZSA8c3RkaW8uaD4K
ICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRp
ZXMuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8
d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMTc4LDYgKzE4
MiwxMCBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jdW1lbnQsIHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdAogCiB2b2lkIEF1ZGlvQ29udGV4dDo6Y29u
c3RydWN0Q29tbW9uKCkKIHsKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIGluaXRpYWxpemVHU3Ry
ZWFtZXIoKTsKKyNlbmRpZgorCiAgICAgRkZURnJhbWU6OmluaXRpYWxpemUoKTsKICAgICAKICAg
ICBtX2xpc3RlbmVyID0gQXVkaW9MaXN0ZW5lcjo6Y3JlYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IGMzNWRiNmQuLmU3YzZiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0xODcsNiArMTg3LDcgQEAgSUYgKEVOQUJMRV9WSURFTykKICAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3Ry
ZWFtZXIuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3Js
ZC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVz
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5n
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJv
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkNDRhMDBhLi5mMDQxYzk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTMyNTUsNiArMzI1NSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0x
KSB7CiAgICAgICAgIEhFQURFUlMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmggXAorICAgICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oIFwKICAgICAgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmggXAogICAgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Np
bmtHU3RyZWFtZXIuaCBcCkBAIC0zMjY1LDYgKzMyNjYsNyBAQCBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfVklERU89MSkgewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBcCiAgICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBcCisgICAg
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNw
cCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVy
c2lvbmluZy5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IGI2MDZhMzMuLjU2MTFiZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTU3LDExICs1Nyw2IEBAIEF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9T
b3VyY2VQcm92aWRlciYgcHJvdmlkCiAgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKICAg
ICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewotICAgIHN0YXRpYyBib29sIGdzdEluaXRpYWxpemVk
ID0gZmFsc2U7Ci0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkKLSAgICAgICAgZ3N0SW5pdGlhbGl6
ZWQgPSBnc3RfaW5pdF9jaGVjaygwLCAwLCAwKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGdz
dEluaXRpYWxpemVkLCAiR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uIGZhaWxlZCIpOwotCiAgICAg
bV9waXBlbGluZSA9IGdzdF9waXBlbGluZV9uZXcoInBsYXkiKTsKIAogICAgIEdzdEVsZW1lbnQq
IHdlYmtpdEF1ZGlvU3JjID0gcmVpbnRlcnByZXRfY2FzdDxHc3RFbGVtZW50Kj4oZ19vYmplY3Rf
bmV3KFdFQktJVF9UWVBFX1dFQl9BVURJT19TUkMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJH
U3RyZWFtZXIuY3BwCmluZGV4IGE3YTVjNzEuLjViOTJlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zMjQsMTMgKzMyNCw2IEBAIFBhc3NPd25QdHI8QXVk
aW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wg
bWl4VG9Nb25vCiB7CiAgICAgbV9zYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAotICAgIHN0YXRp
YyBib29sIGdzdEluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkK
LSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9jaGVjaygwLCAwLCAwKTsKLQotICAg
IGlmICghZ3N0SW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgbV9m
cm9udExlZnRCdWZmZXJzID0gZ3N0X2J1ZmZlcl9saXN0X25ldygpOwogICAgIG1fZnJvbnRMZWZ0
QnVmZmVyc0l0ZXJhdG9yID0gZ3N0X2J1ZmZlcl9saXN0X2l0ZXJhdGUobV9mcm9udExlZnRCdWZm
ZXJzKTsKICAgICBnc3RfYnVmZmVyX2xpc3RfaXRlcmF0b3JfYWRkX2dyb3VwKG1fZnJvbnRMZWZ0
QnVmZmVyc0l0ZXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAppbmRleCA1MzA2
OTc0Li4wNjJlM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCkBAIC0xNDAsNSAr
MTQwLDI1IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyPEdzdEJ1cz4oR3N0QnVzKiBwdHIp
CiAgICAgICAgIGdzdF9vYmplY3RfdW5yZWYocHRyKTsKIH0KIAordGVtcGxhdGUgPD4gR1JlZlB0
cjxHc3RFbGVtZW50RmFjdG9yeT4gYWRvcHRHUmVmKEdzdEVsZW1lbnRGYWN0b3J5KiBwdHIpCit7
CisgICAgQVNTRVJUKCFHU1RfT0JKRUNUX0lTX0ZMT0FUSU5HKEdTVF9PQkpFQ1QocHRyKSkpOwor
ICAgIHJldHVybiBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5PihwdHIsIEdSZWZQdHJBZG9wdCk7
Cit9CisKK3RlbXBsYXRlIDw+IEdzdEVsZW1lbnRGYWN0b3J5KiByZWZHUHRyPEdzdEVsZW1lbnRG
YWN0b3J5PihHc3RFbGVtZW50RmFjdG9yeSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAg
IHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIpKTsKKworICAgIHJldHVybiBw
dHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyPEdzdEVsZW1lbnRGYWN0b3J5PihH
c3RFbGVtZW50RmFjdG9yeSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdzdF9vYmpl
Y3RfdW5yZWYocHRyKTsKK30KKwogfQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dS
ZWZQdHJHU3RyZWFtZXIuaAppbmRleCA5NDA0NzBhLi5hM2RjZGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRy
R1N0cmVhbWVyLmgKQEAgLTI5LDYgKzI5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dzdFBhZFRlbXBs
YXRlIEdzdFBhZFRlbXBsYXRlOwogdHlwZWRlZiBzdHJ1Y3QgX0dzdENhcHMgR3N0Q2FwczsKIHR5
cGVkZWYgc3RydWN0IF9Hc3RUYXNrIEdzdFRhc2s7CiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVzIEdz
dEJ1czsKK3R5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50RmFjdG9yeSBHc3RFbGVtZW50RmFjdG9y
eTsKIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTU1LDYgKzU2LDEwIEBAIHRlbXBsYXRlPD4gR1Jl
ZlB0cjxHc3RCdXM+IGFkb3B0R1JlZihHc3RCdXMqIHB0cik7CiB0ZW1wbGF0ZTw+IEdzdEJ1cyog
cmVmR1B0cjxHc3RCdXM+KEdzdEJ1cyogcHRyKTsKIHRlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8
R3N0QnVzPihHc3RCdXMqIHB0cik7CiAKK3RlbXBsYXRlPD4gR1JlZlB0cjxHc3RFbGVtZW50RmFj
dG9yeT4gYWRvcHRHUmVmKEdzdEVsZW1lbnRGYWN0b3J5KiBwdHIpOwordGVtcGxhdGU8PiBHc3RF
bGVtZW50RmFjdG9yeSogcmVmR1B0cjxHc3RFbGVtZW50RmFjdG9yeT4oR3N0RWxlbWVudEZhY3Rv
cnkqIHB0cik7Cit0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZHUHRyPEdzdEVsZW1lbnRGYWN0b3J5PihH
c3RFbGVtZW50RmFjdG9yeSogcHRyKTsKKwogfQogCiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYWMzNjNhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCkBAIC0wLDAg
KzEsNDEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwKKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkdTdHJlYW1lclV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKworI2lmIFVTRShHU1RSRUFNRVIpCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKCkKK3sKKyAgICBHT3duUHRy
PEdFcnJvcj4gZXJyb3I7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBwYXNzIHRo
ZSBhcmd1bWVudHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgorICAgIGJvb2wgZ3N0SW5pdGlhbGl6
ZWQgPSBnc3RfaW5pdF9jaGVjaygwLCAwLCAmZXJyb3Iub3V0UHRyKCkpOworICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoZ3N0SW5pdGlhbGl6ZWQsICJHU3RyZWFtZXIgaW5pdGlhbGl6YXRpb24gZmFp
bGVkOiAlcyIsIGVycm9yID8gZXJyb3ItPm1lc3NhZ2UgOiAidW5rbm93biBlcnJvciBvY2N1cnJl
ZCIpOworICAgIHJldHVybiBnc3RJbml0aWFsaXplZDsKK30KKworfQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVURJTykgJiYgVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWViMTY1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChD
KSAyMDEyIElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKCk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDZhNjQzYzgu
LjAwYjYwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJHV29ybGQuaCIKKyNpbmNsdWRlICJHU3Ry
ZWFtZXJVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgpAQCAt
MTc1LDIyICsxNzYsMTYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXMKICAgICAgICAgcmVnaXN0
cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCk7CiB9
CiAKLXN0YXRpYyBib29sIGdzdEluaXRpYWxpemVkID0gZmFsc2U7Ci0KLXN0YXRpYyBib29sIGRv
R3N0SW5pdCgpCitib29sIGRvR3N0SW5pdCgpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBw
YXNzIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lCi0gICAgaWYgKCFnc3RJbml0
aWFsaXplZCkgewotICAgICAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7Ci0gICAgICAgIGdzdElu
aXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2soMCwgMCwgJmVycm9yLm91dFB0cigpKTsKLSAgICAg
ICAgaWYgKCFnc3RJbml0aWFsaXplZCkKLSAgICAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAi
Q291bGQgbm90IGluaXRpYWxpemUgR1N0cmVhbWVyOiAlcyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBlcnJvciA/IGVycm9yLT5tZXNzYWdlIDogInVua25vd24gZXJyb3Igb2NjdXJyZWQiKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoMCwgIndlYmtp
dHdlYnNyYyIsIEdTVF9SQU5LX1BSSU1BUlkgKyAxMDAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfU1JDKTsKLSAgICB9Ci0gICAgcmV0dXJuIGdzdElu
aXRpYWxpemVkOworICAgIGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lcigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5PiBzcmNGYWN0b3J5ID0g
Z3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJ3ZWJraXR3ZWJzcmMiKTsKKyAgICBpZiAoIXNyY0Zh
Y3RvcnkpCisgICAgICAgIHJldHVybiBnc3RfZWxlbWVudF9yZWdpc3RlcigwLCAid2Via2l0d2Vi
c3JjIiwgR1NUX1JBTktfUFJJTUFSWSArIDEwMCwgV0VCS0lUX1RZUEVfV0VCX1NSQyk7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omlz
QXZhaWxhYmxlKCkKQEAgLTE5OCwxMiArMTkzLDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkKICAgICBpZiAoIWRvR3N0SW5pdCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBHc3RFbGVtZW50RmFjdG9yeSogZmFjdG9yeSA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfZmluZChnUGxheWJpbk5hbWUpOwotICAgIGlmIChmYWN0b3J5KSB7Ci0gICAg
ICAgIGdzdF9vYmplY3RfdW5yZWYoR1NUX09CSkVDVChmYWN0b3J5KSk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgR1JlZlB0cjxHc3RFbGVtZW50
RmFjdG9yeT4gZmFjdG9yeSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZChnUGxheWJpbk5hbWUp
OworICAgIHJldHVybiBmYWN0b3J5OwogfQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQotLSAKMS43
LjkuMQ==
</data>
<flag name="review"
          id="141274"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="141275"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>