<?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>67582</bug_id>
          
          <creation_ts>2011-09-04 19:41:26 -0700</creation_ts>
          <short_desc>Calling nativeImageForCurrentFrame() causes assertion failure: m_verifier.isSafeToUse()</short_desc>
          <delta_ts>2012-06-19 01:55:26 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Huajun.Li">huajun.li.lee</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>aroben</cc>
    
    <cc>beidson</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyuki.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>leandro</cc>
    
    <cc>levin</cc>
    
    <cc>levin+threading</cc>
    
    <cc>menard</cc>
    
    <cc>naginenis</cc>
    
    <cc>rakuco</cc>
    
    <cc>s.choi</cc>
    
    <cc>svillar</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>462004</commentid>
    <comment_count>0</comment_count>
    <who name="Huajun.Li">huajun.li.lee</who>
    <bug_when>2011-09-04 19:41:26 -0700</bug_when>
    <thetext>Reproduce steps:
1. Launch EWebLauncher with cmd  &apos;build/Programs/EWebLauncher  -v&apos;
2. Surfing some web pages
3. Press &apos;F1&apos; to try to backward the page, you will find the browser segment fault, output msg likes &quot;ASSERTION FAILED: m_verifier.isSafeToUse()
../Source/JavaScriptCore/wtf/RefCounted.h(53) : void WTF::RefCountedBase::ref()&quot;

I am using git://gitorious.org/webkit/webkit.git, commit 0c5c7a3aaebfbd5451df634292fe182ee99e5a5d


Below is the backtrace :
-----------------------------------------------------------
(gdb) c
Continuing.
[New Thread 0x7f1daf02a700 (LWP 15960)]
[Thread 0x7f1daf02a700 (LWP 15960) exited]
[New Thread 0x7f1daf02a700 (LWP 15961)]
[Thread 0x7f1daf02a700 (LWP 15961) exited]
[New Thread 0x7f1daf02a700 (LWP 15962)]
[Thread 0x7f1daf02a700 (LWP 15962) exited]

Program received signal SIGSEGV, Segmentation fault.
0x00007f1dc0acea94 in WTF::RefCountedBase::ref (this=0x22d1400)
    at /home/huajun/build_webkit_repo/Source/JavaScriptCore/wtf/RefCounted.h:53
53              ASSERT(m_verifier.isSafeToUse());
(gdb) bt
#0  0x00007f1dc0acea94 in WTF::RefCountedBase::ref (this=0x22d1400)
    at /home/huajun/build_webkit_repo/Source/JavaScriptCore/wtf/RefCounted.h:53
#1  0x00007f1dbdc10d8a in WTF::refIfNotNull&lt;WebCore::SharedBuffer&gt; (ptr=0x22d1400)
    at /home/huajun/build_webkit_repo/Source/JavaScriptCore/wtf/PassRefPtr.h:53
#2  0x00007f1dbddbc6f8 in WTF::RefPtr&lt;WebCore::SharedBuffer&gt;::operator= (this=0x2309e70, optr=0x22d1400)
    at /home/huajun/build_webkit_repo/Source/JavaScriptCore/wtf/RefPtr.h:132
#3  0x00007f1dbe6d2765 in WebCore::BMPImageReader::setData (this=0x2309e60, data=0x22d1400)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.h:72
#4  0x00007f1dbe6db24e in WebCore::ICOImageDecoder::decodeAtIndex (this=0x1c2ccd0, index=0)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp:196
#5  0x00007f1dbe6daee0 in WebCore::ICOImageDecoder::decode (this=0x1c2ccd0, index=0, onlySize=false)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp:161
#6  0x00007f1dbe6dac7a in WebCore::ICOImageDecoder::frameBufferAtIndex (this=0x1c2ccd0, index=0)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp:121
#7  0x00007f1dbe6cf9da in WebCore::ImageSource::createFrameAtIndex (this=0x22f5158, index=0)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/graphics/ImageSource.cpp:138
#8  0x00007f1dbdef1477 in WebCore::BitmapImage::cacheFrame (this=0x22f5120, index=0)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/graphics/BitmapImage.cpp:127
#9  0x00007f1dbdef1b46 in WebCore::BitmapImage::frameAtIndex (this=0x22f5120, index=0)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/graphics/BitmapImage.cpp:248
#10 0x00007f1dbdef256e in WebCore::BitmapImage::nativeImageForCurrentFrame (this=0x22f5120)
    at /home/huajun/build_webkit_repo/Source/WebCore/platform/graphics/BitmapImage.h:160
#11 0x00007f1dbb82690b in ewk_history_item_icon_surface_get (item=0x24ead50)
    at /home/huajun/build_webkit_repo/Source/WebKit/efl/ewk/ewk_history.cpp:363
#12 0x00000000004030d6 in print_history (list=0x1a7db90) at /home/huajun/build_webkit_repo/Tools/EWebLauncher/main.c:177
#13 0x0000000000403fb0 in on_key_down (data=0x1ac34b0, e=0x1ad77f0, obj=0x7f1dc337b200, event_info=0x7fff3f985b90)
    at /home/huajun/build_webkit_repo/Tools/EWebLauncher/main.c:515
#14 0x00007f1dc2806842 in evas_object_event_callback_call (obj=0x7f1dc337b200, type=EVAS_CALLBACK_KEY_DOWN, event_info=0x7fff3f985b90)
    at evas_callbacks.c:224
#15 0x00007f1dc280e40b in evas_event_feed_key_down (e=0x1ad77f0, keyname=&lt;value optimized out&gt;, key=&lt;value optimized out&gt;,
    string=&lt;value optimized out&gt;, compose=&lt;value optimized out&gt;, timestamp=&lt;value optimized out&gt;, data=0x0) at evas_events.c:1249
#16 0x00007f1db5891bf4 in _ecore_event_evas_key (e=0x21ee280, press=ECORE_DOWN) at ecore_input_evas.c:153
#17 0x00007f1dc25c41a5 in _ecore_call_handler_cb () at ecore_private.h:287
#18 _ecore_event_call () at ecore_events.c:691
#19 0x00007f1dc25c89a5 in _ecore_main_loop_iterate_internal (once_only=0) at ecore_main.c:1746
#20 0x00007f1dc25c8faf in ecore_main_loop_begin () at ecore_main.c:861
#21 0x0000000000405640 in main (argc=2, argv=0x7fff3f986ec8) at /home/huajun/build_webkit_repo/Tools/EWebLauncher/main.c:914
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462375</commentid>
    <comment_count>1</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-09-05 23:26:27 -0700</bug_when>
    <thetext>So the problem is her: http://www.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/platform/image-decoders/ImageDecoder.h&amp;type=cs&amp;l=246

In ImageDecoder.h
        virtual void setData(SharedBuffer* data, bool allDataReceived)
        {
            if (m_failed)
                return;
            m_data = data;
On this last line, which ref counts a shared buffer.

That shared buffer is part of the icon which is shared across threads. At the moment, I don&apos;t know if something really tricky is going on or this is not thread safe -- at the moment, it doesn&apos;t look threadsafe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462576</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-06 09:05:40 -0700</bug_when>
    <thetext>I think the right question for us is what is the design. What is supposed to make this threadsafe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462810</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-09-06 13:35:19 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I think the right question for us is what is the design. What is supposed to make this threadsafe?

There are two comments in the code to indicate the design:
1. From IconDatabase.h,  &quot;Holding m_urlAndIconLock is required when accessing any of the following data structures or the objects they contain&quot;. This includes the data that is refcounted in this callstack. The lock is not held so the assert is correct in that sense.

2. In  IconDatabase::synchronousIconForPageURL, there is a comment which starts with &quot;PARANOID DISCUSSION&quot; (added here http://trac.webkit.org/changeset/25439/trunk/WebCore/loader/icon/IconDatabase.cpp). It has a long explanation about why returning Image* is ok. I don&apos;t think it considered platforms which did ref counting of the guts of these structures.

In short, I believe this is real a bug.

At a high level the appropriate fix would be to lock m_urlAndIconLock when accessing the SharedBuffer or for synchronousIconForPageURL to return a PassRefPtr which isn&apos;t shared across threads..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464165</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-09-08 10:55:38 -0700</bug_when>
    <thetext>Adding some people who seem to have been involved in the ewk api since it looks like the change needs to happen there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464768</commentid>
    <comment_count>5</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-09 06:42:20 -0700</bug_when>
    <thetext>Sorry, I still fail to see what could be done in ewk.

ewk_history_item_icon_surface_get&apos;s behavior follows quite closely what the PARANOID DISCUSSION comment describes, in that it just calls synchronousIconForPageURL and creates a platform-specific representation of the raw image (in ewk&apos;s case, a cairo_surface_t). We can&apos;t hold the m_urlAndIconLock mutex ourselves, and the rest of the call stack is inside WebCore.

Can you elaborate a little on your thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464822</commentid>
    <comment_count>6</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-09-09 09:16:05 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Sorry, I still fail to see what could be done in ewk.
&gt; 
&gt; ewk_history_item_icon_surface_get&apos;s behavior follows quite closely what the PARANOID DISCUSSION comment describes,

The PARANOID DISCUSSION comment seems to make some assumptions that aren&apos;t always true. I don&apos;t think this method is safe for you to call like this since thing you do right after the call isn&apos;t safe.

imo, it would be hard to see this issue when that comment was written. It seems to assume a model like what windows does which calls &quot;BitmapImage::getHBITMAPOfSize&quot; This method doesn&apos;t ref count any internal structures.


&gt; in that it just calls synchronousIconForPageURL and creates a platform-specific representation of the raw image (in ewk&apos;s case, a cairo_surface_t). We can&apos;t hold the m_urlAndIconLock mutex ourselves, and the rest of the call stack is inside WebCore.
&gt; 
&gt; Can you elaborate a little on your thoughts?

Your comments point in the right direction. Remove the call to IconDatabase ::synchronousIconForPageURL and add a new method to converts to your platform specific representation while holding the lock. Then call this method instead.

Does that make sense to you? (The current state of things appears to leave you open to race conditions which make cause misc crashes at random points in your code.)

PS imo, this method seems flawed and perhaps we should just remove it in every platform, but for this bug ewk is the target :). I suspect the OS X platform may have similar issues because it calls webGetNSImage which does some complicated things. I&apos;ll look at this for other platforms and file some bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465156</commentid>
    <comment_count>7</comment_count>
    <who name="Huajun.Li">huajun.li.lee</who>
    <bug_when>2011-09-09 18:21:53 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; in that it just calls synchronousIconForPageURL and creates a platform-specific representation of the raw image (in ewk&apos;s case, a cairo_surface_t). We can&apos;t hold the m_urlAndIconLock mutex ourselves, and the rest of the call stack is inside WebCore.
&gt; &gt; 
&gt; &gt; Can you elaborate a little on your thoughts?
&gt; 
&gt; Your comments point in the right direction. Remove the call to IconDatabase ::synchronousIconForPageURL and add a new method to converts to your platform specific representation while holding the lock. Then call this method instead.
&gt; 
&gt; Does that make sense to you? (The current state of things appears to leave you open to race conditions which make cause misc crashes at random points in your code.)
&gt; 
&gt; PS imo, this method seems flawed and perhaps we should just remove it in every platform, but for this bug ewk is the target :). I suspect the OS X platform may have similar issues because it calls webGetNSImage which does some complicated things. I&apos;ll look at this for other platforms and file some bugs.

I ever checked QT port, and found it may have same issue, so it is not specific to ewk. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558210</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-02-16 08:22:47 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; &gt; in that it just calls synchronousIconForPageURL and creates a platform-specific representation of the raw image (in ewk&apos;s case, a cairo_surface_t). We can&apos;t hold the m_urlAndIconLock mutex ourselves, and the rest of the call stack is inside WebCore.
&gt; &gt; &gt; 
&gt; &gt; &gt; Can you elaborate a little on your thoughts?
&gt; &gt; 
&gt; &gt; Your comments point in the right direction. Remove the call to IconDatabase ::synchronousIconForPageURL and add a new method to converts to your platform specific representation while holding the lock. Then call this method instead.
&gt; &gt; 
&gt; &gt; Does that make sense to you? (The current state of things appears to leave you open to race conditions which make cause misc crashes at random points in your code.)
&gt; &gt; 
&gt; &gt; PS imo, this method seems flawed and perhaps we should just remove it in every platform, but for this bug ewk is the target :). I suspect the OS X platform may have similar issues because it calls webGetNSImage which does some complicated things. I&apos;ll look at this for other platforms and file some bugs.
&gt; 
&gt; I ever checked QT port, and found it may have same issue, so it is not specific to ewk. :)

And I also hit this bug in Gtk port when implementing some unit tests for our icon database client</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558213</commentid>
    <comment_count>9</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-16 08:25:51 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; &gt; in that it just calls synchronousIconForPageURL and creates a platform-specific representation of the raw image (in ewk&apos;s case, a cairo_surface_t). We can&apos;t hold the m_urlAndIconLock mutex ourselves, and the rest of the call stack is inside WebCore.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Can you elaborate a little on your thoughts?
&gt; &gt; &gt; 
&gt; &gt; &gt; Your comments point in the right direction. Remove the call to IconDatabase ::synchronousIconForPageURL and add a new method to converts to your platform specific representation while holding the lock. Then call this method instead.
&gt; &gt; &gt; 
&gt; &gt; &gt; Does that make sense to you? (The current state of things appears to leave you open to race conditions which make cause misc crashes at random points in your code.)
&gt; &gt; &gt; 
&gt; &gt; &gt; PS imo, this method seems flawed and perhaps we should just remove it in every platform, but for this bug ewk is the target :). I suspect the OS X platform may have similar issues because it calls webGetNSImage which does some complicated things. I&apos;ll look at this for other platforms and file some bugs.
&gt; &gt; 
&gt; &gt; I ever checked QT port, and found it may have same issue, so it is not specific to ewk. :)
&gt; 
&gt; And I also hit this bug in Gtk port when implementing some unit tests for our icon database client

It indicates that there is likely a problem in the code (maybe for multiple platforms), and it needs a volunteer to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558245</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-02-16 08:59:55 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; And I also hit this bug in Gtk port when implementing some unit tests for our icon database client
&gt; 
&gt; It indicates that there is likely a problem in the code (maybe for multiple platforms), and it needs a volunteer to fix it.

Well, unless I&apos;m missing something it&apos;s pretty clear to me that IconDatabase ::synchronousIconForPageURL cannot be used by any platform as it requires a lock in the mutex used to verify refcounting. This issue was likely never addressed as 1- it does not obviously affect release builds and 2- the code is kind of correct, because even if you don&apos;t get the lock, nothing wrong will happen as long as you call it from the same thread that created the image data.

One possible fix off the top of my head would be replacing the last return by a call to some method in the IconDatabaseClient that will get the Image and will return the platform specific image. Does it sound good?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558250</commentid>
    <comment_count>11</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-16 09:04:32 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; &gt; And I also hit this bug in Gtk port when implementing some unit tests for our icon database client
&gt; &gt; 
&gt; &gt; It indicates that there is likely a problem in the code (maybe for multiple platforms), and it needs a volunteer to fix it.
&gt; 
&gt; Well, unless I&apos;m missing something it&apos;s pretty clear to me that IconDatabase ::synchronousIconForPageURL cannot be used by any platform as it requires a lock in the mutex used to verify refcounting. This issue was likely never addressed as 1- it does not obviously affect release builds and 2- the code is kind of correct, because even if you don&apos;t get the lock, nothing wrong will happen as long as you call it from the same thread that created the image data.

I agree with you mostly. (I don&apos;t think 2 is true but I haven&apos;t reviewed the code recently. iirc, there is a reason for the lock and verifying that ref counting only happens within the lock. When you do ref counting outside of the lock, there is another thread that may be doing it -- within the lock -- and then you have problems.)


&gt; 
&gt; One possible fix off the top of my head would be replacing the last return by a call to some method in the IconDatabaseClient that will get the Image and will return the platform specific image. Does it sound good?

 From my comments above &quot; Remove the call to IconDatabase ::synchronousIconForPageURL and add a new method to converts to your platform specific representation while holding the lock. Then call this method instead.&quot;

I think we are saying the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558294</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-16 10:10:44 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; &gt; And I also hit this bug in Gtk port when implementing some unit tests for our icon database client
&gt; &gt; 
&gt; &gt; It indicates that there is likely a problem in the code (maybe for multiple platforms), and it needs a volunteer to fix it.
&gt; 
&gt; Well, unless I&apos;m missing something it&apos;s pretty clear to me that IconDatabase ::synchronousIconForPageURL cannot be used by any platform as it requires a lock in the mutex used to verify refcounting. This issue was likely never addressed as 1- it does not obviously affect release builds and 2- the code is kind of correct, because even if you don&apos;t get the lock, nothing wrong will happen as long as you call it from the same thread that created the image data.

Mac uses it without asserting, and your suggestions as to why it might okay (nothing wrong happening, etc etc) are accurate AFAIK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558336</commentid>
    <comment_count>13</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-16 11:03:21 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; &gt; And I also hit this bug in Gtk port when implementing some unit tests for our icon database client
&gt; &gt; &gt; 
&gt; &gt; &gt; It indicates that there is likely a problem in the code (maybe for multiple platforms), and it needs a volunteer to fix it.
&gt; &gt; 
&gt; &gt; Well, unless I&apos;m missing something it&apos;s pretty clear to me that IconDatabase ::synchronousIconForPageURL cannot be used by any platform as it requires a lock in the mutex used to verify refcounting. This issue was likely never addressed as 1- it does not obviously affect release builds and 2- the code is kind of correct, because even if you don&apos;t get the lock, nothing wrong will happen as long as you call it from the same thread that created the image data.
&gt; 
&gt; Mac uses it without asserting, and your suggestions as to why it might okay (nothing wrong happening, etc etc) are accurate AFAIK

I think Mac actually does the right thing to my memory (because it carefully avoid ref counting) but the api as opposed very easily leads to bad behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592074</commentid>
    <comment_count>14</comment_count>
      <attachid>134786</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-03-30 05:10:34 -0700</bug_when>
    <thetext>Created attachment 134786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592083</commentid>
    <comment_count>15</comment_count>
      <attachid>134786</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-30 05:23:41 -0700</bug_when>
    <thetext>Comment on attachment 134786
Patch

Attachment 134786 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12266265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592085</commentid>
    <comment_count>16</comment_count>
      <attachid>134786</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-30 05:26:20 -0700</bug_when>
    <thetext>Comment on attachment 134786
Patch

Attachment 134786 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12275012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592092</commentid>
    <comment_count>17</comment_count>
      <attachid>134786</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-30 05:34:23 -0700</bug_when>
    <thetext>Comment on attachment 134786
Patch

Attachment 134786 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12266272</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592199</commentid>
    <comment_count>18</comment_count>
      <attachid>134822</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-03-30 09:07:18 -0700</bug_when>
    <thetext>Created attachment 134822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592217</commentid>
    <comment_count>19</comment_count>
      <attachid>134822</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-30 09:26:02 -0700</bug_when>
    <thetext>Comment on attachment 134822
Patch

Attachment 134822 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12267284</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606131</commentid>
    <comment_count>20</comment_count>
      <attachid>134822</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-19 16:30:35 -0700</bug_when>
    <thetext>Comment on attachment 134822
Patch

The reviewers seem to be suggesting that EFL need to change their use of the original function to be threadsafe.  It&apos;s not clear to me why adding this extra accessor is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606147</commentid>
    <comment_count>21</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-04-19 16:39:01 -0700</bug_when>
    <thetext>Actually I think this may the right fix.

The problem was that ref counting was happening outside of the lock and now this access function takes the appropriate lock.

Previously when I looked at this recent patch I though it needed a platform specific reviewer but now I think I may be able to do it.

It needs the window build issue fixed though so I&apos;ll leave it as r- so another patch may be done to fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606435</commentid>
    <comment_count>22</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-04-20 01:05:42 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 134822 [details])
&gt; The reviewers seem to be suggesting that EFL need to change their use of the original function to be threadsafe.  It&apos;s not clear to me why adding this extra accessor is correct.

Eric the problem is that the code inside this new function does some refcounting that must be done inside a lock. It is not something specific to EFL, all the platforms are potential targets. We have reported the same problem in Gtk and Qt guys said they also suffer it. It seems that the only &quot;safe&quot; ports are Win and the Mac because they prevent refcounting in their port code.

I&apos;ll provide a patch soon with the fix for the Win port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607702</commentid>
    <comment_count>23</comment_count>
      <attachid>138353</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-04-23 08:29:45 -0700</bug_when>
    <thetext>Created attachment 138353
Patch

Let&apos;s see if this fixes the Win EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607722</commentid>
    <comment_count>24</comment_count>
      <attachid>138353</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-23 08:56:27 -0700</bug_when>
    <thetext>Comment on attachment 138353
Patch

Attachment 138353 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12470903</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607775</commentid>
    <comment_count>25</comment_count>
      <attachid>138370</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-04-23 10:02:59 -0700</bug_when>
    <thetext>Created attachment 138370
Patch

Another try (crossing fingers)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607803</commentid>
    <comment_count>26</comment_count>
      <attachid>138370</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-23 10:28:36 -0700</bug_when>
    <thetext>Comment on attachment 138370
Patch

Attachment 138370 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12470916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617633</commentid>
    <comment_count>27</comment_count>
      <attachid>138370</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2012-05-07 09:10:53 -0700</bug_when>
    <thetext>Comment on attachment 138370
Patch

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

&gt; Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp:402
&gt; +    GRefPtr&lt;GdkPixbuf&gt; pixbuf = adoptGRef(cairoImageSurfaceToGdkPixbuf(icon));

You have to update at least this part of the patch, this is not going to work anymore because now we have NativeImageCairo since r115385, you need to call surface function to get the cairo_surface_t out of it.

http://trac.webkit.org/changeset/115385

Any update on this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617636</commentid>
    <comment_count>28</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-05-07 09:17:55 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; http://trac.webkit.org/changeset/115385
&gt; 
&gt; Any update on this patch?

It looks like it can&apos;t build on Windows for some reason that has yet to be determined, which makes landing it not possible :(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617657</commentid>
    <comment_count>29</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-05-07 09:47:07 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; http://trac.webkit.org/changeset/115385
&gt; &gt; 
&gt; &gt; Any update on this patch?
&gt; 
&gt; It looks like it can&apos;t build on Windows for some reason that has yet to be determined, which makes landing it not possible :(.

Yeah I have been trying to do that with aroben without much success. Looks like we&apos;d have to give it another try. I guess that only people with Windows builds can help here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621664</commentid>
    <comment_count>30</comment_count>
      <attachid>141424</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-05-11 08:39:17 -0700</bug_when>
    <thetext>Created attachment 141424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621727</commentid>
    <comment_count>31</comment_count>
      <attachid>141424</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-11 09:51:30 -0700</bug_when>
    <thetext>Comment on attachment 141424
Patch

Attachment 141424 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12666548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621741</commentid>
    <comment_count>32</comment_count>
      <attachid>141424</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-11 10:04:08 -0700</bug_when>
    <thetext>Comment on attachment 141424
Patch

Attachment 141424 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12674221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621773</commentid>
    <comment_count>33</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-05-11 10:32:22 -0700</bug_when>
    <thetext>Looking at the error on windows, I would guess that Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp needs to 
#include &quot;config.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621786</commentid>
    <comment_count>34</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-05-11 10:39:32 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; Looking at the error on windows, I would guess that Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp needs to 
&gt; #include &quot;config.h&quot;

Thx for the tip! I did some mistake on the EFL code after updating the patch so I&apos;ll try it in the next patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621839</commentid>
    <comment_count>35</comment_count>
      <attachid>141460</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-05-11 11:42:49 -0700</bug_when>
    <thetext>Created attachment 141460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621854</commentid>
    <comment_count>36</comment_count>
      <attachid>141460</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-11 12:02:55 -0700</bug_when>
    <thetext>Comment on attachment 141460
Patch

Attachment 141460 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12675285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633265</commentid>
    <comment_count>37</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-24 14:56:34 -0700</bug_when>
    <thetext>why unconfirmed? changed to new</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633268</commentid>
    <comment_count>38</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-24 14:57:16 -0700</bug_when>
    <thetext>*** Bug 85473 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633310</commentid>
    <comment_count>39</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-24 15:43:38 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; why unconfirmed? changed to new

I&apos;m guessing because unconfirmed is the default and nobody had bothered to change it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639738</commentid>
    <comment_count>40</comment_count>
      <attachid>145380</attachid>
    <who name="Misha">mtutunik</who>
    <bug_when>2012-06-01 14:43:04 -0700</bug_when>
    <thetext>Created attachment 145380
addition to the proposed patch

It looks like webkit2 Qt port needs this additional code to avoid similar crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640526</commentid>
    <comment_count>41</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-04 06:07:39 -0700</bug_when>
    <thetext>There are two alternative solutions to this.

The first is to let SharedBuffer inherit from ThreadSafeRefCounted instead of RefCounted . For all platforms with atomic integers this comes completely free, but for other it will be a lot more expensive.

The second is to copy the sharedbuffer before reusing it the BMPDecoder in the ICODecoder.

Both have been tested and works, but have different performance downsides.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640547</commentid>
    <comment_count>42</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-04 06:47:48 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; There are two alternative solutions to this.
&gt; 
&gt; The first is to let SharedBuffer inherit from ThreadSafeRefCounted instead of RefCounted . For all platforms with atomic integers this comes completely free, but for other it will be a lot more expensive.
&gt; 
&gt; The second is to copy the sharedbuffer before reusing it the BMPDecoder in the ICODecoder.
&gt; 
&gt; Both have been tested and works, but have different performance downsides.

The client just needs the image but not SharedBuffer. Sergio&apos;s patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640548</commentid>
    <comment_count>43</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-04 06:56:44 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (In reply to comment #41)
&gt; &gt; There are two alternative solutions to this.
&gt; &gt; 
&gt; &gt; The first is to let SharedBuffer inherit from ThreadSafeRefCounted instead of RefCounted . For all platforms with atomic integers this comes completely free, but for other it will be a lot more expensive.
&gt; &gt; 
&gt; &gt; The second is to copy the sharedbuffer before reusing it the BMPDecoder in the ICODecoder.
&gt; &gt; 
&gt; &gt; Both have been tested and works, but have different performance downsides.
&gt; 
&gt; The client just needs the image but not SharedBuffer. Sergio&apos;s patch looks good to me.

True, the patch actually looks good. I thought there might have been a problem since the patch stalled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640581</commentid>
    <comment_count>44</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-04 07:46:32 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; (In reply to comment #42)
&gt; &gt; (In reply to comment #41)
&gt; &gt; &gt; There are two alternative solutions to this.
&gt; &gt; &gt; 
&gt; &gt; &gt; The first is to let SharedBuffer inherit from ThreadSafeRefCounted instead of RefCounted . For all platforms with atomic integers this comes completely free, but for other it will be a lot more expensive.
&gt; &gt; &gt; 
&gt; &gt; &gt; The second is to copy the sharedbuffer before reusing it the BMPDecoder in the ICODecoder.
&gt; &gt; &gt; 
&gt; &gt; &gt; Both have been tested and works, but have different performance downsides.
&gt; &gt; 
&gt; &gt; The client just needs the image but not SharedBuffer. Sergio&apos;s patch looks good to me.
&gt; 
&gt; True, the patch actually looks good. I thought there might have been a problem since the patch stalled.

It breaks the windows build. If that were solved, this could moved forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641363</commentid>
    <comment_count>45</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-06-05 03:00:59 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; (In reply to comment #42)
&gt; &gt; (In reply to comment #41)
&gt; &gt; &gt; Both have been tested and works, but have different performance downsides.
&gt; &gt; 
&gt; &gt; The client just needs the image but not SharedBuffer. Sergio&apos;s patch looks good to me.
&gt; 
&gt; True, the patch actually looks good. I thought there might have been a problem since the patch stalled.

As some others said I tried several approaches to fix the windows build but I&apos;m a bit stalled now (specially because I don&apos;t have a windows machine to test). I spent some hours with aroben a couple of weeks ago but we weren&apos;t able to fix it. I suspect that the problem is a hack in the windows build in this file Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp where I found this comment:

// FIXME: On Windows, we require all WebKit source files to include config.h
// before including any other files. Failing to include config.h will leave
// WTF_USE_CF undefined, causing build failures in this 
// file. But Mac doesn&apos;t have a config.h for WebKit, so we can&apos;t include the 
// Windows one here. For now we can just define WTF_USE_CF and
// WTF_USE_CFNETWORK manually, but we need a better long-term solution.
#ifndef WTF_USE_CF
#define WTF_USE_CF 1
#endif

Rings any bell for any Windows hacker?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641364</commentid>
    <comment_count>46</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-05 03:07:35 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; #ifndef WTF_USE_CF
&gt; #define WTF_USE_CF 1
&gt; #endif
&gt; 
&gt; Rings any bell for any Windows hacker?

Have you tried git blame / svn blame to see who wrote it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641688</commentid>
    <comment_count>47</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-05 10:27:49 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (In reply to comment #43)
&gt; &gt; (In reply to comment #42)
&gt; &gt; &gt; (In reply to comment #41)
&gt; &gt; &gt; &gt; Both have been tested and works, but have different performance downsides.
&gt; &gt; &gt; 
&gt; &gt; &gt; The client just needs the image but not SharedBuffer. Sergio&apos;s patch looks good to me.
&gt; &gt; 
&gt; &gt; True, the patch actually looks good. I thought there might have been a problem since the patch stalled.
&gt; 
&gt; As some others said I tried several approaches to fix the windows build but I&apos;m a bit stalled now (specially because I don&apos;t have a windows machine to test). I spent some hours with aroben a couple of weeks ago but we weren&apos;t able to fix it. I suspect that the problem is a hack in the windows build in this file Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp where I found this comment:

fwiw, the lastest error on Windows was different:
&quot;5&gt;..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp(36) : warning C4067: unexpected tokens following preprocessor directive - expected a newline&quot;

so perhaps the change to WebInspectorClientCF.cpp wasn&apos;t done in a way that Windows likes?
(It looks ok in the diff but perhaps these lines are different from the other lines in the file?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650397</commentid>
    <comment_count>48</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-15 12:25:51 -0700</bug_when>
    <thetext>Is anyone still working on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650399</commentid>
    <comment_count>49</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-15 12:27:08 -0700</bug_when>
    <thetext>(In reply to comment #48)
&gt; Is anyone still working on this?

My impression is that it is stuck due to not figuring out the Windows build issue. If you&apos;d like to take it on, I&apos;m sure folks would appreciate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650400</commentid>
    <comment_count>50</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-15 12:27:41 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; (In reply to comment #48)
&gt; &gt; Is anyone still working on this?
&gt; 
&gt; My impression is that it is stuck due to not figuring out the Windows build issue. If you&apos;d like to take it on, I&apos;m sure folks would appreciate it.

I think the current patch seems like it is a good fix except for the Windows build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650404</commentid>
    <comment_count>51</comment_count>
      <attachid>147876</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-15 12:35:35 -0700</bug_when>
    <thetext>Created attachment 147876
Merged together and try to fix windows build

I don&apos;t have a Win Safari build environment. I&apos;ll use challenge the bot.

I think the build failure is due to missing definition for PLATFORM() and OS() macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650440</commentid>
    <comment_count>52</comment_count>
      <attachid>147883</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-15 13:01:58 -0700</bug_when>
    <thetext>Created attachment 147883
Try again.

I knew it...

BTW, Sergio, any reason why we want WTF_USE_CG in this file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650462</commentid>
    <comment_count>53</comment_count>
      <attachid>147883</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-15 13:41:12 -0700</bug_when>
    <thetext>Comment on attachment 147883
Try again.

Attachment 147883 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12969088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650475</commentid>
    <comment_count>54</comment_count>
      <attachid>147883</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-15 13:58:13 -0700</bug_when>
    <thetext>Comment on attachment 147883
Try again.

Attachment 147883 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12960676</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651381</commentid>
    <comment_count>55</comment_count>
      <attachid>148097</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-18 07:37:48 -0700</bug_when>
    <thetext>Created attachment 148097
Try fixing the build error (also removed change in webkit/cf)

cannot see why we need the WTF_USE_CG hack in webkit/cf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651397</commentid>
    <comment_count>56</comment_count>
      <attachid>148097</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-18 08:10:19 -0700</bug_when>
    <thetext>Comment on attachment 148097
Try fixing the build error (also removed change in webkit/cf)

Attachment 148097 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12979170</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651408</commentid>
    <comment_count>57</comment_count>
      <attachid>148104</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-18 08:42:19 -0700</bug_when>
    <thetext>Created attachment 148104
put WTF_USE_CG back, this should build now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651434</commentid>
    <comment_count>58</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-18 09:22:56 -0700</bug_when>
    <thetext>It builds now. Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652088</commentid>
    <comment_count>59</comment_count>
      <attachid>148104</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-18 23:27:50 -0700</bug_when>
    <thetext>Comment on attachment 148104
put WTF_USE_CG back, this should build now

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

This should do it.

Congrats to all! :)

&gt; Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp:-1159
&gt; -    if (!img || !img-&gt;data())

!img-&gt;data() got dropped but that seems ok.

&gt; Source/WebKit/efl/ewk/ewk_history.cpp:341
&gt;          ERR(&quot;icon is NULL.&quot;);

This error got a little bit broader.

Before if icon-&gt;nativeImageForCurrentFrame(); returned 0 this error wasn&apos;t printed.

But I think this is ok (in all instances).

&gt; Source/WebKit/efl/ewk/ewk_history.cpp:353
&gt;          ERR(&quot;icon is NULL.&quot;);

Same comment as above.

&gt; Source/WebKit/efl/ewk/ewk_settings.cpp:218
&gt;          ERR(&quot;no icon for url %s&quot;, url);

Same comment as before.

&gt; Source/WebKit/efl/ewk/ewk_settings.cpp:232
&gt;          ERR(&quot;no icon for url %s&quot;, url);

Same comment as before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652229</commentid>
    <comment_count>60</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-06-19 01:55:26 -0700</bug_when>
    <thetext>Committed r120694: &lt;http://trac.webkit.org/changeset/120694&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134786</attachid>
            <date>2012-03-30 05:10:34 -0700</date>
            <delta_ts>2012-03-30 09:07:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67582-20120330141032.patch</filename>
            <type>text/plain</type>
            <size>15326</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNmODdjYzYwNDNjZWI1
N2Q3MzJlNzA1N2MwNDIyYmRlMjhkOWRlMS4uNjFkNzFlZDhkYzUzZWY1NTJhNTM5MzhkNjc3YWFl
YzE0YTNkMWM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTMwICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wMy0yOCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG9ubHkg
dXBkYXRlIFRpbWVsaW5lIG92ZXJ2aWV3IHdoZW4gcmVhbGx5IG5lZWRlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTg4OTgzZmI5NWZkNWQ2YzM0OWZlYjE4OTFkNDgxMjA0N2Iz
ZjdlZS4uODQ0OWMwNTM2OGNiYTM1N2VhODMxMDFiNWI2MGNmOTc1ZjcxYzU5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMzAgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwogMjAxMi0wMy0yOCAgTGVvIFlh
bmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnld
IFVzZSBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6Omdsb2JhbFBvc2l0aW9uKCkgaW5zdGVh
ZCBvZiBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6Omdsb2JhbFBvcygpIGluIFdlYlBhZ2Uu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggODM2YzdkZDgyNTUyYmRkODJkZDFlZjU0YjFmNDZlN2Y5
NzNkYmMyNC4uYzc4Mjk3NjBiYTBiNGU4NzYxMDZkMTM3ZjBmYWQ0NjFmOTQzZWUyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTMwICBTZXJnaW8gVmlsbGFyIFNl
bmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcgbmF0aXZlSW1hZ2VG
b3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1fdmVyaWZpZXIuaXNT
YWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2Ugc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCgpIHRvIHJldHJpZXZlIGZhdmlj
b25zLgorCisgICAgICAgICogZXdrL2V3a19oaXN0b3J5LmNwcDoKKyAgICAgICAgKGV3a19oaXN0
b3J5X2l0ZW1faWNvbl9zdXJmYWNlX2dldCk6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX2lj
b25fb2JqZWN0X2FkZCk6CisgICAgICAgICogZXdrL2V3a19zZXR0aW5ncy5jcHA6CisgICAgICAg
IChld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAg
KGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fb2JqZWN0X2FkZCk6CisKIDIwMTItMDMt
MjcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtTT1VQXSBJbXBsZW1lbnQgbWlzc2luZyBtZXRob2RzIGluIENvb2tpZUphclNvdXAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCAzZTg5MWJiYTllMjdjYTliYTkyNDkyOTQ4OGJiMWI5Y2VmZTZjMTY3Li5j
MmUxNjJkM2NjNjgyMWNiODJlMzNmYmUyZjNiMzI1MmU0YjYyOGQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMzAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRG
cmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5j
aHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKKyAgICAgICAgKGdldElj
b25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0wMy0yOCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50IFBsYXRm
b3JtU3RyYXRlZ2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyNWEyYjZhYTFhZWJmMTUwMmZhYjI4MWJh
MzZkMjE4OWNmZDI1YjZmLi5jMTUzNGM1MjFiZWMxYjcwZjgyMzc4ZTg0NDVjMzZkNjE3MDk3NmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTMwICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcgbmF0aXZl
SW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1fdmVyaWZp
ZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2Ugc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCgpIHRvIHJldHJpZXZl
IGZhdmljb25zLgorCisgICAgICAgICogQXBpL3F3ZWJoaXN0b3J5LmNwcDoKKyAgICAgICAgKFFX
ZWJIaXN0b3J5SXRlbTo6aWNvbik6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChRV2ViU2V0dGluZ3M6Omljb25Gb3JVcmwpOgorCiAyMDEyLTAzLTIwICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIHd0Zi9QbGF0Zm9ybS5oIGZy
b20gSmF2YVNjcmlwdENvcmUgdG8gU291cmNlL1dURi93dGYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IGNlNGYwMTA0NjZjMGZiOGQxZGQ2ZTJjNWNm
MmNkMmU5ZDMxMmU2ODYuLjQ2MWM3YzliNzQzNTE2ZjNjYjY2NzFjZjdjMjA2ZTdjN2U0NTRhODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcApAQCAtMjkw
LDYgKzI5MCwxNiBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjbwogICAgIHJldHVybiBpY29uUmVj
b3JkLT5pbWFnZShzaXplKTsKIH0KIAorTmF0aXZlSW1hZ2VQdHIgSWNvbkRhdGFiYXNlOjpzeW5j
aHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFs
LCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIEltYWdlKiBpY29uID0gc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChwYWdlVVJMT3JpZ2luYWwsIHNpemUpOworICAgIGlmICghaWNvbikKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9j
ayk7CisgICAgcmV0dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Cit9CisK
IHZvaWQgSWNvbkRhdGFiYXNlOjpyZWFkSWNvbkZvclBhZ2VVUkxGcm9tRGlzayhjb25zdCBTdHJp
bmcmIHBhZ2VVUkwpCiB7CiAgICAgLy8gVGhlIGVmZmVjdCBvZiBhc2tpbmcgZm9yIGFuIEljb24g
Zm9yIGEgcGFnZVVSTCBhdXRvbWF0aWNhbGx5IHF1ZXVlcyBpdCB0byBiZSByZWFkIGZyb20gZGlz
awpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAppbmRleCBlNGQ4Y2E3
M2E0YmU0MmJhYWNhYzlkMTIwODRmMzUzYWM0NzY4ZGE2Li41MmUwYjNmMWI0YmRlMWY4MzRhOTEy
NzU4ZDY5MGJkYjQxMDdmNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuaApAQCAtOTYsNiArOTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElj
b25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiBwYWdl
VVJMKTsKIAogICAgIHZpcnR1YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29u
c3QgU3RyaW5nJiwgY29uc3QgSW50U2l6ZSYpOworICAgIHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIg
c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkxPcmln
aW5hbCwgY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHN5bmNocm9ub3VzSWNv
blVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9u
b3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBJ
Y29uTG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBT
dHJpbmcmLCBEb2N1bWVudExvYWRlciopOyAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZUJhc2UuaAppbmRleCA3MzRlMmY2YTJhNDYzZjUwYjFkODlmMTZkZDMz
ZmY1MWQxMmViMDdmLi5iZjNhZjllMTU3NWMzYjhiNWVjYTJjZDFkNzc4NjEzYjJjNDk2NTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEljb25EYXRhYmFzZUJhc2VfaAogI2RlZmluZSBJY29uRGF0
YWJhc2VCYXNlX2gKIAorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTc4LDcgKzE3OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChj
b25zdCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgSWNvbkxvYWREZWNp
c2lvbiBzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgRG9j
dW1lbnRMb2FkZXIqKSB7IHJldHVybiBJY29uTG9hZE5vOyB9CiAgICAgdmlydHVhbCBJbWFnZSog
c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikg
eyByZXR1cm4gMDsgfQotICAgIAorICAgIHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIgc3luY2hyb25v
dXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikgeyBy
ZXR1cm4gMDsgfQorCiAgICAgLy8gQXN5bmNocm9ub3VzIGNhbGxzIHdlIHNob3VsZCB1c2UgdG8g
cmVwbGFjZSB0aGUgYWJvdmUgd2hlbiBzdXBwb3J0ZWQuCiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzQXN5bmNocm9ub3VzTW9kZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lk
IGxvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxJY29uTG9h
ZERlY2lzaW9uQ2FsbGJhY2s+KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKaW5kZXggNjQ1Zjk1MTVjOTExNzEyNjJiMzZiNmI3MGEzNmM5NTg1YzNmNGZl
Ny4uMWNmYjM5NzkzN2E5M2E1Yjc3MzQ4M2JjODYwMGY2NmJiNDFlNzE0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTExNzMsMTMgKzExNzMsMTAg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRvd25sb2FkKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmMKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKCkKIHsKICAgICBTdHJpbmcgdXJsID0gbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgSW1hZ2UqIGltZyA9IGljb25EYXRh
YmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwodXJsLCBJbnRTaXplKDEwLCAxMCkpOwot
ICAgIGlmICghaW1nIHx8ICFpbWctPmRhdGEoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTmF0
aXZlSW1hZ2VTa2lhKiBiaXRtYXAgPSBpbWctPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7
CisgICAgTmF0aXZlSW1hZ2VTa2lhKiBiaXRtYXAgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91
c05hdGl2ZUljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6ZSgxMCwgMTApKTsKICAgICBpZiAoIWJp
dG1hcCkKICAgICAgICAgcmV0dXJuOworCiAgICAgYml0bWFwLT5sb2NrUGl4ZWxzKCk7CiAgICAg
U3RyaW5nIGljb25VcmwgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25VUkxGb3JQYWdl
VVJMKHVybCk7CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPnNldEZhdmljb24oaW1n
LT53aWR0aCgpLCBpbWctPmhlaWdodCgpLCAodW5zaWduZWQgY2hhciopYml0bWFwLT5nZXRQaXhl
bHMoKSwgaWNvblVybC51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3Rv
cnkuY3BwCmluZGV4IGMwYTBiMTg1ZGExMDBkM2U0ZmIyYmFkZDNiNjIyODA1ODFkMzFmOWYuLjhm
ZmVmZTM3ZGFlYmIxY2E4ZTE2ZDRhNTM1YWZlNWEwNGU5MWJkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19oaXN0b3J5LmNwcApAQCAtMzM2LDI3ICszMzYsMjQgQEAgY2Fpcm9fc3VyZmFjZV90
KiBld2tfaGlzdG9yeV9pdGVtX2ljb25fc3VyZmFjZV9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRl
bSogaXRlbSkKIHsKICAgICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVt
LCBjb3JlLCAwKTsKIAotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRh
dGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6
SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBpZiAoIWljb24pIHsKKyAgICBjYWlyb19zdXJmYWNlX3Qq
IGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQ
YWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlmICgh
aWNvbikKICAgICAgICAgRVJSKCJpY29uIGlzIE5VTEwuIik7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLSAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKwor
ICAgIHJldHVybiBpY29uOwogfQogCiBFdmFzX09iamVjdCogZXdrX2hpc3RvcnlfaXRlbV9pY29u
X29iamVjdF9hZGQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSwgRXZhcyogY2FudmFzKQog
ewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDAp
OwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAgIFdl
YkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAg
ICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2U7CiAKLSAgICBpZiAoIWljb24pIHsKKyAgICBjYWly
b19zdXJmYWNlX3QqIHN1cmZhY2UgPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91
c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAx
NikpOworICAgIGlmICghc3VyZmFjZSkgewogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgc3VyZmFjZSA9IGljb24tPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7CiAgICAgcmV0dXJuIGV3a191dGlsX2ltYWdlX2Zyb21fY2Fp
cm9fc3VyZmFjZV9hZGQoY2FudmFzLCBzdXJmYWNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3NldHRpbmdzLmNwcAppbmRleCBkMTNiMzllN2UzZDc5MTRiMGI4YzdlNDAxMWFjZWNlYThm
ZjNmMDM5Li5mODk5ZWJmZDM4YTkwOTMxMTE3NDU1OGUzZjFhNGViZmQwYmFiNzg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcApAQCAtMjE4LDE0ICsyMTgsMTEgQEAgY2Fp
cm9fc3VyZmFjZV90KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0
KGNvbnN0IGNoYXIqIHVybCkKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodXJs
LCAwKTsKIAogICAgIFdlYkNvcmU6OktVUkwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3Ry
aW5nOjpmcm9tVVRGOCh1cmwpKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6
Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwg
V2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLQotICAgIGlmICghaWNvbikgeworICAgIGNhaXJv
X3N1cmZhY2VfdCogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0
aXZlSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYp
KTsKKyAgICBpZiAoIWljb24pCiAgICAgICAgIEVSUigibm8gaWNvbiBmb3IgdXJsICVzIiwgdXJs
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgcmV0dXJuIGljb24tPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgcmV0dXJuIGljb247CiB9CiAKIEV2YXNfT2JqZWN0
KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX29iamVjdF9hZGQoY29uc3QgY2hhciog
dXJsLCBFdmFzKiBjYW52YXMpCkBAIC0yMzQsMTUgKzIzMSwxMyBAQCBFdmFzX09iamVjdCogZXdr
X3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKGNvbnN0IGNoYXIqIHVybCwg
RXZhcyogYwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwog
CiAgICAgV2ViQ29yZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6OmZy
b21VVEY4KHVybCkpOwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRh
dGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3Jl
OjpJbnRTaXplKDE2LCAxNikpOwotICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZTsKKyAgICBj
YWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJv
bm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUo
MTYsIDE2KSk7CiAKLSAgICBpZiAoIWljb24pIHsKKyAgICBpZiAoIXN1cmZhY2UpIHsKICAgICAg
ICAgRVJSKCJubyBpY29uIGZvciB1cmwgJXMiLCB1cmwpOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKLSAgICBzdXJmYWNlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsK
ICAgICByZXR1cm4gZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMs
IHN1cmZhY2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZmF2aWNvbmRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRm
YXZpY29uZGF0YWJhc2UuY3BwCmluZGV4IGExZmQzN2ExZTMxZGVlODgyZmY0Y2I4Y2Y2YzZmMzA5
NGIxYzU2MWQuLjg5M2YxNjE5Yzk3ZThlZTZhOGM0OTVmOWJhY2Y2MjE2NjgzODczZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3Bw
CkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVk
ZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUg
Ikdka0NhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAiSWNvbkRhdGFiYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTM5NCwxNiAr
Mzk1LDE4IEBAIHN0YXRpYyBHZGtQaXhidWYqIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KFdl
YktpdEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvCiAKICAgICAvLyBUaGUgZXhhY3Qgc2l6
ZSB3ZSBwYXNzIGlzIGlycmVsZXZhbnQgdG8gdGhlIGljb25EYXRhYmFzZSBjb2RlLgogICAgIC8v
IFdlIG11c3QgcGFzcyBzb21ldGhpbmcgZ3JlYXRlciB0aGFuIDB4MCB0byBnZXQgYSBwaXhidWYu
Ci0gICAgSW1hZ2UqIGljb24gPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdl
VVJMKHBhZ2VVUkwsICFpY29uU2l6ZS5pc1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAx
KSk7CisgICAgTmF0aXZlSW1hZ2VQdHIgaWNvbiA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3Vz
TmF0aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgIWljb25TaXplLmlzWmVybygpID8gaWNvblNp
emUgOiBJbnRTaXplKDEsIDEpKTsKICAgICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihpY29uLT5nZXRHZGtQ
aXhidWYoKSk7CisgICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihjYWly
b0ltYWdlU3VyZmFjZVRvR2RrUGl4YnVmKGljb24pKTsKICAgICBpZiAoIXBpeGJ1ZikKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICAvLyBBIHNpemUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhpbXVt
IGF2YWlsYWJsZSBzaXplLgotICAgIGlmICghaWNvblNpemUuaXNaZXJvKCkgJiYgKGljb24tPndp
ZHRoKCkgIT0gaWNvblNpemUud2lkdGgoKSB8fCBpY29uLT5oZWlnaHQoKSAhPSBpY29uU2l6ZS5o
ZWlnaHQoKSkpCisgICAgaW50IHBpeGJ1ZldpZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4
YnVmLmdldCgpKTsKKyAgICBpbnQgcGl4YnVmSGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0
KHBpeGJ1Zi5nZXQoKSk7CisgICAgaWYgKCFpY29uU2l6ZS5pc1plcm8oKSAmJiAocGl4YnVmV2lk
dGggIT0gaWNvblNpemUud2lkdGgoKSB8fCBwaXhidWZIZWlnaHQgIT0gaWNvblNpemUuaGVpZ2h0
KCkpKQogICAgICAgICBwaXhidWYgPSBnZGtfcGl4YnVmX3NjYWxlX3NpbXBsZShwaXhidWYuZ2V0
KCksIGljb25TaXplLndpZHRoKCksIGljb25TaXplLmhlaWdodCgpLCBHREtfSU5URVJQX0JJTElO
RUFSKTsKICAgICByZXR1cm4gcGl4YnVmLmxlYWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJoaXN0b3J5LmNwcAppbmRleCBmYzViZGQ1ZmNlYWQyNWM1N2YwZDI2NGJjNmYxOWMwZGMyZTJk
ZmMwLi4xNWQ0YWQ4YWZmNmQ1ZGFlNDhjMGQ5NzljMTVjYTA4ZmVkYjJhOTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYmhpc3RvcnkuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgUURhdGVUaW1lIFFX
ZWJIaXN0b3J5SXRlbTo6bGFzdFZpc2l0ZWQoKSBjb25zdAogUUljb24gUVdlYkhpc3RvcnlJdGVt
OjppY29uKCkgY29uc3QKIHsKICAgICBpZiAoZC0+aXRlbSkKLSAgICAgICAgcmV0dXJuICpXZWJD
b3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGQtPml0ZW0tPnVy
bCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpOworICAgICAgICByZXR1cm4gKldlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3Vz
TmF0aXZlSWNvbkZvclBhZ2VVUkwoZC0+aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYs
IDE2KSk7CiAKICAgICByZXR1cm4gUUljb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0
dGluZ3MuY3BwCmluZGV4IGNhMjY0YzhhZjAzNzNkMzZlZmY5MWQzMjdmZjU5YTUxMDRiOTllOWEu
LjE1YjZmYTZjNDJiZDUyZGExMTFiODFhNmE4ODhkODQ5N2MwMzBkYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAtNzE1LDE1ICs3MTUsMTEgQEAgdm9pZCBRV2ViU2V0
dGluZ3M6OmNsZWFySWNvbkRhdGFiYXNlKCkKIFFJY29uIFFXZWJTZXR0aW5nczo6aWNvbkZvclVy
bChjb25zdCBRVXJsJiB1cmwpCiB7CiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVdlYkNvcmVRdCgp
OwotICAgIFdlYkNvcmU6OkltYWdlKiBpbWFnZSA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5
bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoV2ViQ29yZTo6S1VSTCh1cmwpLnN0cmluZygpLAorICAg
IFFQaXhtYXAqIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2
ZUljb25Gb3JQYWdlVVJMKFdlYkNvcmU6OktVUkwodXJsKS5zdHJpbmcoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKICAgICBpZiAo
IWltYWdlKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCi0gICAgUVBpeG1hcCogaWNvbiA9
IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAgIGlmICghaWNvbikKLSAg
ICAgICAgcmV0dXJuIFFQaXhtYXAoKTsKLQogICAgIHJldHVybiogaWNvbjsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134822</attachid>
            <date>2012-03-30 09:07:18 -0700</date>
            <delta_ts>2012-04-23 08:29:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67582-20120330180716.patch</filename>
            <type>text/plain</type>
            <size>15448</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNmODdjYzYwNDNjZWI1
N2Q3MzJlNzA1N2MwNDIyYmRlMjhkOWRlMS4uNjFkNzFlZDhkYzUzZWY1NTJhNTM5MzhkNjc3YWFl
YzE0YTNkMWM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTMwICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wMy0yOCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG9ubHkg
dXBkYXRlIFRpbWVsaW5lIG92ZXJ2aWV3IHdoZW4gcmVhbGx5IG5lZWRlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTg4OTgzZmI5NWZkNWQ2YzM0OWZlYjE4OTFkNDgxMjA0N2Iz
ZjdlZS4uODQ0OWMwNTM2OGNiYTM1N2VhODMxMDFiNWI2MGNmOTc1ZjcxYzU5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMzAgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwogMjAxMi0wMy0yOCAgTGVvIFlh
bmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnld
IFVzZSBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6Omdsb2JhbFBvc2l0aW9uKCkgaW5zdGVh
ZCBvZiBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6Omdsb2JhbFBvcygpIGluIFdlYlBhZ2Uu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggODM2YzdkZDgyNTUyYmRkODJkZDFlZjU0YjFmNDZlN2Y5
NzNkYmMyNC4uYzc4Mjk3NjBiYTBiNGU4NzYxMDZkMTM3ZjBmYWQ0NjFmOTQzZWUyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTMwICBTZXJnaW8gVmlsbGFyIFNl
bmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcgbmF0aXZlSW1hZ2VG
b3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1fdmVyaWZpZXIuaXNT
YWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2Ugc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCgpIHRvIHJldHJpZXZlIGZhdmlj
b25zLgorCisgICAgICAgICogZXdrL2V3a19oaXN0b3J5LmNwcDoKKyAgICAgICAgKGV3a19oaXN0
b3J5X2l0ZW1faWNvbl9zdXJmYWNlX2dldCk6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX2lj
b25fb2JqZWN0X2FkZCk6CisgICAgICAgICogZXdrL2V3a19zZXR0aW5ncy5jcHA6CisgICAgICAg
IChld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAg
KGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fb2JqZWN0X2FkZCk6CisKIDIwMTItMDMt
MjcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtTT1VQXSBJbXBsZW1lbnQgbWlzc2luZyBtZXRob2RzIGluIENvb2tpZUphclNvdXAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCAzZTg5MWJiYTllMjdjYTliYTkyNDkyOTQ4OGJiMWI5Y2VmZTZjMTY3Li5j
MmUxNjJkM2NjNjgyMWNiODJlMzNmYmUyZjNiMzI1MmU0YjYyOGQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMzAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRG
cmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5j
aHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKKyAgICAgICAgKGdldElj
b25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0wMy0yOCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50IFBsYXRm
b3JtU3RyYXRlZ2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyNWEyYjZhYTFhZWJmMTUwMmZhYjI4MWJh
MzZkMjE4OWNmZDI1YjZmLi5jMTUzNGM1MjFiZWMxYjcwZjgyMzc4ZTg0NDVjMzZkNjE3MDk3NmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTMwICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcgbmF0aXZl
SW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1fdmVyaWZp
ZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2Ugc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCgpIHRvIHJldHJpZXZl
IGZhdmljb25zLgorCisgICAgICAgICogQXBpL3F3ZWJoaXN0b3J5LmNwcDoKKyAgICAgICAgKFFX
ZWJIaXN0b3J5SXRlbTo6aWNvbik6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChRV2ViU2V0dGluZ3M6Omljb25Gb3JVcmwpOgorCiAyMDEyLTAzLTIwICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIHd0Zi9QbGF0Zm9ybS5oIGZy
b20gSmF2YVNjcmlwdENvcmUgdG8gU291cmNlL1dURi93dGYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IGNlNGYwMTA0NjZjMGZiOGQxZGQ2ZTJjNWNm
MmNkMmU5ZDMxMmU2ODYuLjQ2MWM3YzliNzQzNTE2ZjNjYjY2NzFjZjdjMjA2ZTdjN2U0NTRhODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcApAQCAtMjkw
LDYgKzI5MCwxNiBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjbwogICAgIHJldHVybiBpY29uUmVj
b3JkLT5pbWFnZShzaXplKTsKIH0KIAorTmF0aXZlSW1hZ2VQdHIgSWNvbkRhdGFiYXNlOjpzeW5j
aHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFs
LCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIEltYWdlKiBpY29uID0gc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChwYWdlVVJMT3JpZ2luYWwsIHNpemUpOworICAgIGlmICghaWNvbikKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9j
ayk7CisgICAgcmV0dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Cit9CisK
IHZvaWQgSWNvbkRhdGFiYXNlOjpyZWFkSWNvbkZvclBhZ2VVUkxGcm9tRGlzayhjb25zdCBTdHJp
bmcmIHBhZ2VVUkwpCiB7CiAgICAgLy8gVGhlIGVmZmVjdCBvZiBhc2tpbmcgZm9yIGFuIEljb24g
Zm9yIGEgcGFnZVVSTCBhdXRvbWF0aWNhbGx5IHF1ZXVlcyBpdCB0byBiZSByZWFkIGZyb20gZGlz
awpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAppbmRleCBlNGQ4Y2E3
M2E0YmU0MmJhYWNhYzlkMTIwODRmMzUzYWM0NzY4ZGE2Li41MmUwYjNmMWI0YmRlMWY4MzRhOTEy
NzU4ZDY5MGJkYjQxMDdmNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuaApAQCAtOTYsNiArOTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElj
b25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiBwYWdl
VVJMKTsKIAogICAgIHZpcnR1YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29u
c3QgU3RyaW5nJiwgY29uc3QgSW50U2l6ZSYpOworICAgIHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIg
c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkxPcmln
aW5hbCwgY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHN5bmNocm9ub3VzSWNv
blVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9u
b3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBJ
Y29uTG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBT
dHJpbmcmLCBEb2N1bWVudExvYWRlciopOyAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZUJhc2UuaAppbmRleCA3MzRlMmY2YTJhNDYzZjUwYjFkODlmMTZkZDMz
ZmY1MWQxMmViMDdmLi45ZDljNDE0ZmU4M2RlOWUwYTNlZjBjZWRkNmIzYTM2Yzg1MjE3ZWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEljb25EYXRhYmFzZUJhc2VfaAogI2RlZmluZSBJY29uRGF0
YWJhc2VCYXNlX2gKIAorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzYsNyArMzcsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgSWNvbkRhdGFiYXNl
Q2xpZW50OwotY2xhc3MgSW1hZ2U7CiBjbGFzcyBJbnRTaXplOwogCiBlbnVtIEljb25Mb2FkRGVj
aXNpb24gewpAQCAtMTc4LDcgKzE3OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3lu
Y2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcmKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgSWNvbkxvYWREZWNpc2lvbiBzeW5jaHJvbm91c0xvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRMb2FkZXIqKSB7IHJldHVybiBJ
Y29uTG9hZE5vOyB9CiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJY29uRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikgeyByZXR1cm4gMDsgfQotICAgIAorICAg
IHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIgc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gQXN5
bmNocm9ub3VzIGNhbGxzIHdlIHNob3VsZCB1c2UgdG8gcmVwbGFjZSB0aGUgYWJvdmUgd2hlbiBz
dXBwb3J0ZWQuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzTW9kZSgpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGxvYWREZWNpc2lvbkZvckljb25VUkwo
Y29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxJY29uTG9hZERlY2lzaW9uQ2FsbGJhY2s+KSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggNjQ1Zjk1
MTVjOTExNzEyNjJiMzZiNmI3MGEzNmM5NTg1YzNmNGZlNy4uMWNmYjM5NzkzN2E5M2E1Yjc3MzQ4
M2JjODYwMGY2NmJiNDFlNzE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKQEAgLTExNzMsMTMgKzExNzMsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnk6OmRvd25sb2FkKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291
cmMKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJ
Y29uKCkKIHsKICAgICBTdHJpbmcgdXJsID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3Ry
aW5nKCk7Ci0gICAgSW1hZ2UqIGltZyA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZv
clBhZ2VVUkwodXJsLCBJbnRTaXplKDEwLCAxMCkpOwotICAgIGlmICghaW1nIHx8ICFpbWctPmRh
dGEoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTmF0aXZlSW1hZ2VTa2lhKiBiaXRtYXAgPSBp
bWctPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgTmF0aXZlSW1hZ2VTa2lhKiBi
aXRtYXAgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKHVy
bCwgSW50U2l6ZSgxMCwgMTApKTsKICAgICBpZiAoIWJpdG1hcCkKICAgICAgICAgcmV0dXJuOwor
CiAgICAgYml0bWFwLT5sb2NrUGl4ZWxzKCk7CiAgICAgU3RyaW5nIGljb25VcmwgPSBpY29uRGF0
YWJhc2UoKS5zeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKHVybCk7CiAgICAgbV93ZWJQYWdl
UHJpdmF0ZS0+bV9jbGllbnQtPnNldEZhdmljb24oaW1nLT53aWR0aCgpLCBpbWctPmhlaWdodCgp
LCAodW5zaWduZWQgY2hhciopYml0bWFwLT5nZXRQaXhlbHMoKSwgaWNvblVybC51dGY4KCkuZGF0
YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IGMwYTBiMTg1ZGEx
MDBkM2U0ZmIyYmFkZDNiNjIyODA1ODFkMzFmOWYuLjhmZmVmZTM3ZGFlYmIxY2E4ZTE2ZDRhNTM1
YWZlNWEwNGU5MWJkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlz
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAt
MzM2LDI3ICszMzYsMjQgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfaGlzdG9yeV9pdGVtX2ljb25f
c3VyZmFjZV9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSkKIHsKICAgICBFV0tfSElT
VE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVtLCBjb3JlLCAwKTsKIAotICAgIFdlYkNv
cmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
Rm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBp
ZiAoIWljb24pIHsKKyAgICBjYWlyb19zdXJmYWNlX3QqIGljb24gPSBXZWJDb3JlOjppY29uRGF0
YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJD
b3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlmICghaWNvbikKICAgICAgICAgRVJSKCJpY29u
IGlzIE5VTEwuIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICByZXR1cm4gaWNvbi0+
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKworICAgIHJldHVybiBpY29uOwogfQogCiBF
dmFzX09iamVjdCogZXdrX2hpc3RvcnlfaXRlbV9pY29uX29iamVjdF9hZGQoY29uc3QgRXdrX0hp
c3RvcnlfSXRlbSogaXRlbSwgRXZhcyogY2FudmFzKQogewogICAgIEVXS19ISVNUT1JZX0lURU1f
Q09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2Vi
Q29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwo
KSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZh
Y2U7CiAKLSAgICBpZiAoIWljb24pIHsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBX
ZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNv
cmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlmICghc3VyZmFjZSkg
ewogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgc3VyZmFjZSA9IGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiAg
ICAgcmV0dXJuIGV3a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBz
dXJmYWNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAppbmRleCBk
MTNiMzllN2UzZDc5MTRiMGI4YzdlNDAxMWFjZWNlYThmZjNmMDM5Li5mODk5ZWJmZDM4YTkwOTMx
MTE3NDU1OGUzZjFhNGViZmQwYmFiNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRp
bmdzLmNwcApAQCAtMjE4LDE0ICsyMTgsMTEgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfc2V0dGlu
Z3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0KGNvbnN0IGNoYXIqIHVybCkKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodXJsLCAwKTsKIAogICAgIFdlYkNvcmU6OktV
Ukwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmwpKTsKLSAg
ICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9u
b3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYp
KTsKLQotICAgIGlmICghaWNvbikgeworICAgIGNhaXJvX3N1cmZhY2VfdCogaWNvbiA9IFdlYkNv
cmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoa3VybC5z
dHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKKyAgICBpZiAoIWljb24pCiAgICAg
ICAgIEVSUigibm8gaWNvbiBmb3IgdXJsICVzIiwgdXJsKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQogCi0gICAgcmV0dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Cisg
ICAgcmV0dXJuIGljb247CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRh
YmFzZV9pY29uX29iamVjdF9hZGQoY29uc3QgY2hhciogdXJsLCBFdmFzKiBjYW52YXMpCkBAIC0y
MzQsMTUgKzIzMSwxMyBAQCBFdmFzX09iamVjdCogZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2Vf
aWNvbl9vYmplY3RfYWRkKGNvbnN0IGNoYXIqIHVybCwgRXZhcyogYwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwogCiAgICAgV2ViQ29yZTo6S1VSTCBrdXJs
KFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVybCkpOwotICAgIFdlYkNv
cmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
Rm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAg
IGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZTsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2Ug
PSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJM
KGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CiAKLSAgICBpZiAoIWlj
b24pIHsKKyAgICBpZiAoIXN1cmZhY2UpIHsKICAgICAgICAgRVJSKCJubyBpY29uIGZvciB1cmwg
JXMiLCB1cmwpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBzdXJmYWNlID0gaWNv
bi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICByZXR1cm4gZXdrX3V0aWxfaW1h
Z2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMsIHN1cmZhY2UpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCmluZGV4
IGExZmQzN2ExZTMxZGVlODgyZmY0Y2I4Y2Y2YzZmMzA5NGIxYzU2MWQuLjg5M2YxNjE5Yzk3ZThl
ZTZhOGM0OTVmOWJhY2Y2MjE2NjgzODczZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5j
bHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkdka0NhaXJvVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTM5NCwxNiArMzk1LDE4IEBAIHN0YXRpYyBHZGtQaXhi
dWYqIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0
YWJhc2UsIGNvCiAKICAgICAvLyBUaGUgZXhhY3Qgc2l6ZSB3ZSBwYXNzIGlzIGlycmVsZXZhbnQg
dG8gdGhlIGljb25EYXRhYmFzZSBjb2RlLgogICAgIC8vIFdlIG11c3QgcGFzcyBzb21ldGhpbmcg
Z3JlYXRlciB0aGFuIDB4MCB0byBnZXQgYSBwaXhidWYuCi0gICAgSW1hZ2UqIGljb24gPSBpY29u
RGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkwsICFpY29uU2l6ZS5p
c1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAxKSk7CisgICAgTmF0aXZlSW1hZ2VQdHIg
aWNvbiA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwocGFn
ZVVSTCwgIWljb25TaXplLmlzWmVybygpID8gaWNvblNpemUgOiBJbnRTaXplKDEsIDEpKTsKICAg
ICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgR1JlZlB0cjxHZGtQaXhidWY+
IHBpeGJ1ZiA9IGFkb3B0R1JlZihpY29uLT5nZXRHZGtQaXhidWYoKSk7CisgICAgR1JlZlB0cjxH
ZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihjYWlyb0ltYWdlU3VyZmFjZVRvR2RrUGl4YnVm
KGljb24pKTsKICAgICBpZiAoIXBpeGJ1ZikKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBB
IHNpemUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBzaXplLgotICAgIGlm
ICghaWNvblNpemUuaXNaZXJvKCkgJiYgKGljb24tPndpZHRoKCkgIT0gaWNvblNpemUud2lkdGgo
KSB8fCBpY29uLT5oZWlnaHQoKSAhPSBpY29uU2l6ZS5oZWlnaHQoKSkpCisgICAgaW50IHBpeGJ1
ZldpZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4YnVmLmdldCgpKTsKKyAgICBpbnQgcGl4
YnVmSGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KHBpeGJ1Zi5nZXQoKSk7CisgICAgaWYg
KCFpY29uU2l6ZS5pc1plcm8oKSAmJiAocGl4YnVmV2lkdGggIT0gaWNvblNpemUud2lkdGgoKSB8
fCBwaXhidWZIZWlnaHQgIT0gaWNvblNpemUuaGVpZ2h0KCkpKQogICAgICAgICBwaXhidWYgPSBn
ZGtfcGl4YnVmX3NjYWxlX3NpbXBsZShwaXhidWYuZ2V0KCksIGljb25TaXplLndpZHRoKCksIGlj
b25TaXplLmhlaWdodCgpLCBHREtfSU5URVJQX0JJTElORUFSKTsKICAgICByZXR1cm4gcGl4YnVm
LmxlYWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcAppbmRleCBmYzVi
ZGQ1ZmNlYWQyNWM1N2YwZDI2NGJjNmYxOWMwZGMyZTJkZmMwLi4xNWQ0YWQ4YWZmNmQ1ZGFlNDhj
MGQ5NzljMTVjYTA4ZmVkYjJhOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2ViaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgUURhdGVUaW1lIFFXZWJIaXN0b3J5SXRlbTo6bGFzdFZpc2l0
ZWQoKSBjb25zdAogUUljb24gUVdlYkhpc3RvcnlJdGVtOjppY29uKCkgY29uc3QKIHsKICAgICBp
ZiAoZC0+aXRlbSkKLSAgICAgICAgcmV0dXJuICpXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5j
aHJvbm91c0ljb25Gb3JQYWdlVVJMKGQtPml0ZW0tPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2
LCAxNikpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgICAgICByZXR1cm4gKldl
YkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoZC0+
aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CiAKICAgICByZXR1cm4gUUlj
b24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IGNhMjY0Yzhh
ZjAzNzNkMzZlZmY5MWQzMjdmZjU5YTUxMDRiOTllOWEuLjcyNzczZTE1MzM2ZTYwYjljMTA2ZmNh
YTY4YzM2NDk0ZTE2NjU2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJz
ZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApA
QCAtNzE1LDEyICs3MTUsOCBAQCB2b2lkIFFXZWJTZXR0aW5nczo6Y2xlYXJJY29uRGF0YWJhc2Uo
KQogUUljb24gUVdlYlNldHRpbmdzOjppY29uRm9yVXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAg
ICBXZWJDb3JlOjppbml0aWFsaXplV2ViQ29yZVF0KCk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGlt
YWdlID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChX
ZWJDb3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCisgICAgUVBpeG1hcCogaWNvbiA9IFdlYkNvcmU6
Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoV2ViQ29yZTo6
S1VSTCh1cmwpLnN0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJD
b3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBR
UGl4bWFwKCk7Ci0KLSAgICBRUGl4bWFwKiBpY29uID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCk7CiAgICAgaWYgKCFpY29uKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138353</attachid>
            <date>2012-04-23 08:29:45 -0700</date>
            <delta_ts>2012-04-23 10:02:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67582-20120423172943.patch</filename>
            <type>text/plain</type>
            <size>15562</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJmM2IzN2QwMGNjNTM4
MzU5ODY3OGQ4ZjgxMzg4NmM0ZWU4MTQ5OC4uMzM2OTIyMTA4YmFmMGE4Njc3YWQwNjNmYWMxNzYx
MWUxODlhNGQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTMwICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNC0yMyAgU3ppbGFyZCBMZWRh
biAgPHN6bGVkYW5AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEluY29ycmVjdCBoYW5kbGlu
ZyBvZiBDU1MgZXNjYXBlIHNlcXVlbmNlcyB0aGF0IGVuY29kZSBzdXJyb2dhdGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBjNzJlZGEyNTE5ZWEwYmNjMzllNDIwNWE4MGFlODUy
ZGFiZWFmNGYyLi5kMWRlZGM0ZDExMWZkZDBmZDgzMWMwOWFkZWM2ZThiYjlkZGZkNTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0zMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxs
aW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJl
OiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0
byByZXRyaWV2ZSBmYXZpY29ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24pOgorCiAyMDEyLTA0LTIxICBC
ZW5qYW1pbiBDIE1leWVyICA8Ym1leWVyQHJpbS5jb20+CiAKICAgICAgICAgRG9uJ3QgaGFyZCBj
b2RlIHRoZSBwbHVnaW5zIHRoYXQgYmxhY2tiZXJyeSBzdXBwb3J0cy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpp
bmRleCA2MmIyNjVmMjM0MjM2MmRlZDVlN2I1ODRlYmIzYTg5MmVhYjYzNTgwLi44YjcyZjFiOGNm
YjI3ZGRkYWFiNzVlNDRlODljYzhjMzIyM2FlOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTItMDMtMzAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNh
dXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05h
dGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBl
d2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZh
Y2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAg
ICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoKKyAgICAgICAgKGV3a19zZXR0aW5nc19pY29u
X2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25f
ZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQ
LiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQg
U2VjdXJpdHkgT3JpZ2luIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDVlYjU5OGY2ZTZjZjFiZGJm
ZWUyMGM5MGNkNGFhNWJmMzM5MTExZDkuLjMyOTY1YWY2MzkzOGVhYzZjY2Y5ZjEwNDljZTFmM2U5
ZTI1OTA5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0zMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxs
aW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJl
OiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0
byByZXRyaWV2ZSBmYXZpY29ucy4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXRmYXZpY29uZGF0
YWJhc2UuY3BwOgorICAgICAgICAoZ2V0SWNvblBpeGJ1ZlN5bmNocm9ub3VzbHkpOgorCiAyMDEy
LTA0LTIyICBBZHJpYW4gQnVuayAgPGJ1bmtAc3R1c3RhLmRlPgogCiAgICAgICAgIFtHVEtdIFJl
bW92ZSB0aGUgb2Jzb2xldGUgSGlsZG9uIFVJIGV4dGVuc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
Mjc3MDM1YmNjZjc1ZjQzNjZmZDczMzQxOTFkNzFkNzNmZWZiZDMzMC4uNTU1MDYyYzgzMDI5ODQy
NmZhMzA0YjFlNTc3M2M5YmFhOTFjOTgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0wMy0zMCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
KworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFz
c2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNv
bkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZpY29ucy4KKworICAgICAgICAqIEFwaS9xd2Vi
aGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlzdG9yeUl0ZW06Omljb24pOgorICAgICAgICAq
IEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzOjppY29uRm9yVXJs
KToKKwogMjAxMi0wNC0xOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5v
a2lhLmNvbT4KIAogICAgICAgICBDbGVhbi11cCBXaGVlbEV2ZW50IENvbnZlcnNpb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCBjZTRmMDEwNDY2
YzBmYjhkMWRkNmUyYzVjZjJjZDJlOWQzMTJlNjg2Li5kNTI4YWYxNThkMjUzOWRjYjNkNTFmMDYw
Y2U1NDliM2ZiYzU0MjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRh
YmFzZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5j
bHVkZSAiSWNvbkRhdGFiYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiSWNvblJlY29yZC5oIgorI2lu
Y2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKQEAgLTI5MCw2ICsyOTEsMTYgQEAgSW1h
Z2UqIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
IHBhZ2VVUkxPcmlnaW5hbCwgY28KICAgICByZXR1cm4gaWNvblJlY29yZC0+aW1hZ2Uoc2l6ZSk7
CiB9CiAKK05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29u
Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkxPcmlnaW5hbCwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICBJbWFnZSogaWNvbiA9IHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwocGFn
ZVVSTE9yaWdpbmFsLCBzaXplKTsKKyAgICBpZiAoIWljb24pCisgICAgICAgIHJldHVybiAwOwor
CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIHJldHVybiBp
Y29uLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworfQorCiB2b2lkIEljb25EYXRhYmFz
ZTo6cmVhZEljb25Gb3JQYWdlVVJMRnJvbURpc2soY29uc3QgU3RyaW5nJiBwYWdlVVJMKQogewog
ICAgIC8vIFRoZSBlZmZlY3Qgb2YgYXNraW5nIGZvciBhbiBJY29uIGZvciBhIHBhZ2VVUkwgYXV0
b21hdGljYWxseSBxdWV1ZXMgaXQgdG8gYmUgcmVhZCBmcm9tIGRpc2sKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKaW5kZXggZTRkOGNhNzNhNGJlNDJiYWFjYWM5ZDEy
MDg0ZjM1M2FjNDc2OGRhNi4uNTJlMGIzZjFiNGJkZTFmODM0YTkxMjc1OGQ2OTBiZGI0MTA3ZjRk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKQEAgLTk2LDYg
Kzk2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJY29uVVJMRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCk7CiAKICAgICB2aXJ0
dWFsIEltYWdlKiBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0
IEludFNpemUmKTsKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIHN5bmNocm9ub3VzTmF0aXZl
SWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNp
emUmKTsKICAgICB2aXJ0dWFsIFN0cmluZyBzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNv
bnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzeW5jaHJvbm91c0ljb25EYXRhS25vd25G
b3JJY29uVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgSWNvbkxvYWREZWNpc2lvbiBz
eW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRM
b2FkZXIqKTsgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VC
YXNlLmgKaW5kZXggNzM0ZTJmNmEyYTQ2M2Y1MGIxZDg5ZjE2ZGQzM2ZmNTFkMTJlYjA3Zi4uNTZj
YjAzYzY3ZjhkNjJiMGQ0MTE3OGI4NDM4YzM5MTlmODU5NzIwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaApAQCAtMjYsMTMgKzI2LDE0IEBACiAj
aWZuZGVmIEljb25EYXRhYmFzZUJhc2VfaAogI2RlZmluZSBJY29uRGF0YWJhc2VCYXNlX2gKIAor
I2luY2x1ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsgCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgSWNvbkRhdGFiYXNl
Q2xpZW50OwpAQCAtMTc4LDcgKzE3OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3lu
Y2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcmKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgSWNvbkxvYWREZWNpc2lvbiBzeW5jaHJvbm91c0xvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRMb2FkZXIqKSB7IHJldHVybiBJ
Y29uTG9hZE5vOyB9CiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJY29uRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikgeyByZXR1cm4gMDsgfQotICAgIAorICAg
IHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIgc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gQXN5
bmNocm9ub3VzIGNhbGxzIHdlIHNob3VsZCB1c2UgdG8gcmVwbGFjZSB0aGUgYWJvdmUgd2hlbiBz
dXBwb3J0ZWQuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzTW9kZSgpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGxvYWREZWNpc2lvbkZvckljb25VUkwo
Y29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxJY29uTG9hZERlY2lzaW9uQ2FsbGJhY2s+KSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggN2Y0MTRj
NzUxMjZhNWRkNmVkMTUwMzBiZGMxNTIyMzE1NGMwNTVmZC4uNTNlOWVmNzBkMjJmNTFjZWIyMjVl
OTBkNjE0ZGY5MjRhNjE5MWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKQEAgLTExODUsMTMgKzExODUsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnk6OmRvd25sb2FkKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291
cmMKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJ
Y29uKCkKIHsKICAgICBTdHJpbmcgdXJsID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3Ry
aW5nKCk7Ci0gICAgSW1hZ2UqIGltZyA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZv
clBhZ2VVUkwodXJsLCBJbnRTaXplKDEwLCAxMCkpOwotICAgIGlmICghaW1nIHx8ICFpbWctPmRh
dGEoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTmF0aXZlSW1hZ2VTa2lhKiBiaXRtYXAgPSBp
bWctPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgTmF0aXZlSW1hZ2VTa2lhKiBi
aXRtYXAgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKHVy
bCwgSW50U2l6ZSgxMCwgMTApKTsKICAgICBpZiAoIWJpdG1hcCkKICAgICAgICAgcmV0dXJuOwor
CiAgICAgYml0bWFwLT5sb2NrUGl4ZWxzKCk7CiAgICAgU3RyaW5nIGljb25VcmwgPSBpY29uRGF0
YWJhc2UoKS5zeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKHVybCk7CiAgICAgbV93ZWJQYWdl
UHJpdmF0ZS0+bV9jbGllbnQtPnNldEZhdmljb24oaW1nLT53aWR0aCgpLCBpbWctPmhlaWdodCgp
LCAodW5zaWduZWQgY2hhciopYml0bWFwLT5nZXRQaXhlbHMoKSwgaWNvblVybC51dGY4KCkuZGF0
YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IGMwYTBiMTg1ZGEx
MDBkM2U0ZmIyYmFkZDNiNjIyODA1ODFkMzFmOWYuLjhmZmVmZTM3ZGFlYmIxY2E4ZTE2ZDRhNTM1
YWZlNWEwNGU5MWJkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlz
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAt
MzM2LDI3ICszMzYsMjQgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfaGlzdG9yeV9pdGVtX2ljb25f
c3VyZmFjZV9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSkKIHsKICAgICBFV0tfSElT
VE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVtLCBjb3JlLCAwKTsKIAotICAgIFdlYkNv
cmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
Rm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBp
ZiAoIWljb24pIHsKKyAgICBjYWlyb19zdXJmYWNlX3QqIGljb24gPSBXZWJDb3JlOjppY29uRGF0
YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJD
b3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlmICghaWNvbikKICAgICAgICAgRVJSKCJpY29u
IGlzIE5VTEwuIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICByZXR1cm4gaWNvbi0+
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKworICAgIHJldHVybiBpY29uOwogfQogCiBF
dmFzX09iamVjdCogZXdrX2hpc3RvcnlfaXRlbV9pY29uX29iamVjdF9hZGQoY29uc3QgRXdrX0hp
c3RvcnlfSXRlbSogaXRlbSwgRXZhcyogY2FudmFzKQogewogICAgIEVXS19ISVNUT1JZX0lURU1f
Q09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2Vi
Q29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwo
KSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZh
Y2U7CiAKLSAgICBpZiAoIWljb24pIHsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBX
ZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNv
cmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlmICghc3VyZmFjZSkg
ewogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgc3VyZmFjZSA9IGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiAg
ICAgcmV0dXJuIGV3a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBz
dXJmYWNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAppbmRleCAw
MGU5N2JlODdkZDE4MjQ2MjQ4ZmZkMDhiYzU1MThkMWMwNzU1YThmLi42ZmExNGViZTAyMGE3OGZj
YWRmNzUwNTkzZWMyMGY5MzAwMWU3NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRp
bmdzLmNwcApAQCAtMjE4LDE0ICsyMTgsMTEgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfc2V0dGlu
Z3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0KGNvbnN0IGNoYXIqIHVybCkKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodXJsLCAwKTsKIAogICAgIFdlYkNvcmU6OktV
Ukwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmwpKTsKLSAg
ICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9u
b3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYp
KTsKLQotICAgIGlmICghaWNvbikgeworICAgIGNhaXJvX3N1cmZhY2VfdCogaWNvbiA9IFdlYkNv
cmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoa3VybC5z
dHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKKyAgICBpZiAoIWljb24pCiAgICAg
ICAgIEVSUigibm8gaWNvbiBmb3IgdXJsICVzIiwgdXJsKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQogCi0gICAgcmV0dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Cisg
ICAgcmV0dXJuIGljb247CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRh
YmFzZV9pY29uX29iamVjdF9nZXQoY29uc3QgY2hhciogdXJsLCBFdmFzKiBjYW52YXMpCkBAIC0y
MzQsMTUgKzIzMSwxMyBAQCBFdmFzX09iamVjdCogZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2Vf
aWNvbl9vYmplY3RfZ2V0KGNvbnN0IGNoYXIqIHVybCwgRXZhcyogYwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwogCiAgICAgV2ViQ29yZTo6S1VSTCBrdXJs
KFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVybCkpOwotICAgIFdlYkNv
cmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
Rm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAg
IGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZTsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2Ug
PSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJM
KGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CiAKLSAgICBpZiAoIWlj
b24pIHsKKyAgICBpZiAoIXN1cmZhY2UpIHsKICAgICAgICAgRVJSKCJubyBpY29uIGZvciB1cmwg
JXMiLCB1cmwpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBzdXJmYWNlID0gaWNv
bi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICByZXR1cm4gZXdrX3V0aWxfaW1h
Z2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMsIHN1cmZhY2UpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCmluZGV4
IGExZmQzN2ExZTMxZGVlODgyZmY0Y2I4Y2Y2YzZmMzA5NGIxYzU2MWQuLjg5M2YxNjE5Yzk3ZThl
ZTZhOGM0OTVmOWJhY2Y2MjE2NjgzODczZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5j
bHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkdka0NhaXJvVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTM5NCwxNiArMzk1LDE4IEBAIHN0YXRpYyBHZGtQaXhi
dWYqIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0
YWJhc2UsIGNvCiAKICAgICAvLyBUaGUgZXhhY3Qgc2l6ZSB3ZSBwYXNzIGlzIGlycmVsZXZhbnQg
dG8gdGhlIGljb25EYXRhYmFzZSBjb2RlLgogICAgIC8vIFdlIG11c3QgcGFzcyBzb21ldGhpbmcg
Z3JlYXRlciB0aGFuIDB4MCB0byBnZXQgYSBwaXhidWYuCi0gICAgSW1hZ2UqIGljb24gPSBpY29u
RGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkwsICFpY29uU2l6ZS5p
c1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAxKSk7CisgICAgTmF0aXZlSW1hZ2VQdHIg
aWNvbiA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwocGFn
ZVVSTCwgIWljb25TaXplLmlzWmVybygpID8gaWNvblNpemUgOiBJbnRTaXplKDEsIDEpKTsKICAg
ICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgR1JlZlB0cjxHZGtQaXhidWY+
IHBpeGJ1ZiA9IGFkb3B0R1JlZihpY29uLT5nZXRHZGtQaXhidWYoKSk7CisgICAgR1JlZlB0cjxH
ZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihjYWlyb0ltYWdlU3VyZmFjZVRvR2RrUGl4YnVm
KGljb24pKTsKICAgICBpZiAoIXBpeGJ1ZikKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBB
IHNpemUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBzaXplLgotICAgIGlm
ICghaWNvblNpemUuaXNaZXJvKCkgJiYgKGljb24tPndpZHRoKCkgIT0gaWNvblNpemUud2lkdGgo
KSB8fCBpY29uLT5oZWlnaHQoKSAhPSBpY29uU2l6ZS5oZWlnaHQoKSkpCisgICAgaW50IHBpeGJ1
ZldpZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4YnVmLmdldCgpKTsKKyAgICBpbnQgcGl4
YnVmSGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KHBpeGJ1Zi5nZXQoKSk7CisgICAgaWYg
KCFpY29uU2l6ZS5pc1plcm8oKSAmJiAocGl4YnVmV2lkdGggIT0gaWNvblNpemUud2lkdGgoKSB8
fCBwaXhidWZIZWlnaHQgIT0gaWNvblNpemUuaGVpZ2h0KCkpKQogICAgICAgICBwaXhidWYgPSBn
ZGtfcGl4YnVmX3NjYWxlX3NpbXBsZShwaXhidWYuZ2V0KCksIGljb25TaXplLndpZHRoKCksIGlj
b25TaXplLmhlaWdodCgpLCBHREtfSU5URVJQX0JJTElORUFSKTsKICAgICByZXR1cm4gcGl4YnVm
LmxlYWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcAppbmRleCBmYzVi
ZGQ1ZmNlYWQyNWM1N2YwZDI2NGJjNmYxOWMwZGMyZTJkZmMwLi4xNWQ0YWQ4YWZmNmQ1ZGFlNDhj
MGQ5NzljMTVjYTA4ZmVkYjJhOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2ViaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgUURhdGVUaW1lIFFXZWJIaXN0b3J5SXRlbTo6bGFzdFZpc2l0
ZWQoKSBjb25zdAogUUljb24gUVdlYkhpc3RvcnlJdGVtOjppY29uKCkgY29uc3QKIHsKICAgICBp
ZiAoZC0+aXRlbSkKLSAgICAgICAgcmV0dXJuICpXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5j
aHJvbm91c0ljb25Gb3JQYWdlVVJMKGQtPml0ZW0tPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2
LCAxNikpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgICAgICByZXR1cm4gKldl
YkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoZC0+
aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CiAKICAgICByZXR1cm4gUUlj
b24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IGNhMjY0Yzhh
ZjAzNzNkMzZlZmY5MWQzMjdmZjU5YTUxMDRiOTllOWEuLjcyNzczZTE1MzM2ZTYwYjljMTA2ZmNh
YTY4YzM2NDk0ZTE2NjU2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJz
ZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApA
QCAtNzE1LDEyICs3MTUsOCBAQCB2b2lkIFFXZWJTZXR0aW5nczo6Y2xlYXJJY29uRGF0YWJhc2Uo
KQogUUljb24gUVdlYlNldHRpbmdzOjppY29uRm9yVXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAg
ICBXZWJDb3JlOjppbml0aWFsaXplV2ViQ29yZVF0KCk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGlt
YWdlID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChX
ZWJDb3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCisgICAgUVBpeG1hcCogaWNvbiA9IFdlYkNvcmU6
Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoV2ViQ29yZTo6
S1VSTCh1cmwpLnN0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJD
b3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBR
UGl4bWFwKCk7Ci0KLSAgICBRUGl4bWFwKiBpY29uID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCk7CiAgICAgaWYgKCFpY29uKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138370</attachid>
            <date>2012-04-23 10:02:59 -0700</date>
            <delta_ts>2012-05-11 08:39:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67582-20120423190257.patch</filename>
            <type>text/plain</type>
            <size>15418</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJmM2IzN2QwMGNjNTM4
MzU5ODY3OGQ4ZjgxMzg4NmM0ZWU4MTQ5OC4uMzM2OTIyMTA4YmFmMGE4Njc3YWQwNjNmYWMxNzYx
MWUxODlhNGQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTMwICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNC0yMyAgU3ppbGFyZCBMZWRh
biAgPHN6bGVkYW5AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEluY29ycmVjdCBoYW5kbGlu
ZyBvZiBDU1MgZXNjYXBlIHNlcXVlbmNlcyB0aGF0IGVuY29kZSBzdXJyb2dhdGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBjNzJlZGEyNTE5ZWEwYmNjMzllNDIwNWE4MGFlODUy
ZGFiZWFmNGYyLi5kMWRlZGM0ZDExMWZkZDBmZDgzMWMwOWFkZWM2ZThiYjlkZGZkNTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0zMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxs
aW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJl
OiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0
byByZXRyaWV2ZSBmYXZpY29ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24pOgorCiAyMDEyLTA0LTIxICBC
ZW5qYW1pbiBDIE1leWVyICA8Ym1leWVyQHJpbS5jb20+CiAKICAgICAgICAgRG9uJ3QgaGFyZCBj
b2RlIHRoZSBwbHVnaW5zIHRoYXQgYmxhY2tiZXJyeSBzdXBwb3J0cy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpp
bmRleCA2MmIyNjVmMjM0MjM2MmRlZDVlN2I1ODRlYmIzYTg5MmVhYjYzNTgwLi44YjcyZjFiOGNm
YjI3ZGRkYWFiNzVlNDRlODljYzhjMzIyM2FlOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTItMDMtMzAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNh
dXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05h
dGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBl
d2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZh
Y2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAg
ICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoKKyAgICAgICAgKGV3a19zZXR0aW5nc19pY29u
X2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25f
ZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQ
LiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQg
U2VjdXJpdHkgT3JpZ2luIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDVlYjU5OGY2ZTZjZjFiZGJm
ZWUyMGM5MGNkNGFhNWJmMzM5MTExZDkuLjMyOTY1YWY2MzkzOGVhYzZjY2Y5ZjEwNDljZTFmM2U5
ZTI1OTA5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0zMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxs
aW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJl
OiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0
byByZXRyaWV2ZSBmYXZpY29ucy4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXRmYXZpY29uZGF0
YWJhc2UuY3BwOgorICAgICAgICAoZ2V0SWNvblBpeGJ1ZlN5bmNocm9ub3VzbHkpOgorCiAyMDEy
LTA0LTIyICBBZHJpYW4gQnVuayAgPGJ1bmtAc3R1c3RhLmRlPgogCiAgICAgICAgIFtHVEtdIFJl
bW92ZSB0aGUgb2Jzb2xldGUgSGlsZG9uIFVJIGV4dGVuc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
Mjc3MDM1YmNjZjc1ZjQzNjZmZDczMzQxOTFkNzFkNzNmZWZiZDMzMC4uNTU1MDYyYzgzMDI5ODQy
NmZhMzA0YjFlNTc3M2M5YmFhOTFjOTgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0wMy0zMCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
KworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFz
c2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNv
bkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZpY29ucy4KKworICAgICAgICAqIEFwaS9xd2Vi
aGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlzdG9yeUl0ZW06Omljb24pOgorICAgICAgICAq
IEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzOjppY29uRm9yVXJs
KToKKwogMjAxMi0wNC0xOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5v
a2lhLmNvbT4KIAogICAgICAgICBDbGVhbi11cCBXaGVlbEV2ZW50IENvbnZlcnNpb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCBjZTRmMDEwNDY2
YzBmYjhkMWRkNmUyYzVjZjJjZDJlOWQzMTJlNjg2Li40NjFjN2M5Yjc0MzUxNmYzY2I2NjcxY2Y3
YzIwNmU3YzdlNDU0YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRh
YmFzZS5jcHAKQEAgLTI5MCw2ICsyOTAsMTYgQEAgSW1hZ2UqIEljb25EYXRhYmFzZTo6c3luY2hy
b25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkxPcmlnaW5hbCwgY28KICAg
ICByZXR1cm4gaWNvblJlY29yZC0+aW1hZ2Uoc2l6ZSk7CiB9CiAKK05hdGl2ZUltYWdlUHRyIElj
b25EYXRhYmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
IHBhZ2VVUkxPcmlnaW5hbCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBJbWFnZSogaWNv
biA9IHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwocGFnZVVSTE9yaWdpbmFsLCBzaXplKTsKKyAg
ICBpZiAoIWljb24pCisgICAgICAgIHJldHVybiAwOworCisgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdXJsQW5kSWNvbkxvY2spOworICAgIHJldHVybiBpY29uLT5uYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpOworfQorCiB2b2lkIEljb25EYXRhYmFzZTo6cmVhZEljb25Gb3JQYWdlVVJMRnJv
bURpc2soY29uc3QgU3RyaW5nJiBwYWdlVVJMKQogewogICAgIC8vIFRoZSBlZmZlY3Qgb2YgYXNr
aW5nIGZvciBhbiBJY29uIGZvciBhIHBhZ2VVUkwgYXV0b21hdGljYWxseSBxdWV1ZXMgaXQgdG8g
YmUgcmVhZCBmcm9tIGRpc2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
LmgKaW5kZXggZTRkOGNhNzNhNGJlNDJiYWFjYWM5ZDEyMDg0ZjM1M2FjNDc2OGRhNi4uNTJlMGIz
ZjFiNGJkZTFmODM0YTkxMjc1OGQ2OTBiZGI0MTA3ZjRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNv
bnN0IFN0cmluZyYgcGFnZVVSTCk7CiAKICAgICB2aXJ0dWFsIEltYWdlKiBzeW5jaHJvbm91c0lj
b25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFNpemUmKTsKKyAgICB2aXJ0dWFs
IE5hdGl2ZUltYWdlUHRyIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmKTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1
YWwgYm9vbCBzeW5jaHJvbm91c0ljb25EYXRhS25vd25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYp
OwogICAgIHZpcnR1YWwgSWNvbkxvYWREZWNpc2lvbiBzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZv
ckljb25VUkwoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRMb2FkZXIqKTsgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgKaW5kZXggNzM0ZTJmNmEyYTQ2
M2Y1MGIxZDg5ZjE2ZGQzM2ZmNTFkMTJlYjA3Zi4uZDJiN2U0MWQwNWVlM2FiYjRhOTE5NmM2YzBk
ODA1ZjViMGZmMTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRh
YmFzZUJhc2UuaApAQCAtMjYsMTcgKzI2LDE3IEBACiAjaWZuZGVmIEljb25EYXRhYmFzZUJhc2Vf
aAogI2RlZmluZSBJY29uRGF0YWJhc2VCYXNlX2gKIAorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKLW5h
bWVzcGFjZSBXZWJDb3JlIHsgCituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50
TG9hZGVyOwogY2xhc3MgSWNvbkRhdGFiYXNlQ2xpZW50OwotY2xhc3MgSW1hZ2U7CiBjbGFzcyBJ
bnRTaXplOwogCiBlbnVtIEljb25Mb2FkRGVjaXNpb24gewpAQCAtMTc4LDcgKzE3OCw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVS
TChjb25zdCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgSWNvbkxvYWRE
ZWNpc2lvbiBzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwg
RG9jdW1lbnRMb2FkZXIqKSB7IHJldHVybiBJY29uTG9hZE5vOyB9CiAgICAgdmlydHVhbCBJbWFn
ZSogc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXpl
JikgeyByZXR1cm4gMDsgfQotICAgIAorICAgIHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIgc3luY2hy
b25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJikg
eyByZXR1cm4gMDsgfQorCiAgICAgLy8gQXN5bmNocm9ub3VzIGNhbGxzIHdlIHNob3VsZCB1c2Ug
dG8gcmVwbGFjZSB0aGUgYWJvdmUgd2hlbiBzdXBwb3J0ZWQuCiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQXN5bmNocm9ub3VzTW9kZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2
b2lkIGxvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxJY29u
TG9hZERlY2lzaW9uQ2FsbGJhY2s+KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggN2Y0MTRjNzUxMjZhNWRkNmVkMTUwMzBiZGMxNTIyMzE1NGMw
NTVmZC4uNTNlOWVmNzBkMjJmNTFjZWIyMjVlOTBkNjE0ZGY5MjRhNjE5MWIwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTExODUsMTMgKzExODUs
MTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRvd25sb2FkKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmMKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKCkKIHsKICAgICBTdHJpbmcgdXJsID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgSW1hZ2UqIGltZyA9IGljb25E
YXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwodXJsLCBJbnRTaXplKDEwLCAxMCkp
OwotICAgIGlmICghaW1nIHx8ICFpbWctPmRhdGEoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
TmF0aXZlSW1hZ2VTa2lhKiBiaXRtYXAgPSBpbWctPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCk7CisgICAgTmF0aXZlSW1hZ2VTa2lhKiBiaXRtYXAgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJv
bm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6ZSgxMCwgMTApKTsKICAgICBpZiAo
IWJpdG1hcCkKICAgICAgICAgcmV0dXJuOworCiAgICAgYml0bWFwLT5sb2NrUGl4ZWxzKCk7CiAg
ICAgU3RyaW5nIGljb25VcmwgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25VUkxGb3JQ
YWdlVVJMKHVybCk7CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPnNldEZhdmljb24o
aW1nLT53aWR0aCgpLCBpbWctPmhlaWdodCgpLCAodW5zaWduZWQgY2hhciopYml0bWFwLT5nZXRQ
aXhlbHMoKSwgaWNvblVybC51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hp
c3RvcnkuY3BwCmluZGV4IGMwYTBiMTg1ZGExMDBkM2U0ZmIyYmFkZDNiNjIyODA1ODFkMzFmOWYu
LjhmZmVmZTM3ZGFlYmIxY2E4ZTE2ZDRhNTM1YWZlNWEwNGU5MWJkYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAtMzM2LDI3ICszMzYsMjQgQEAgY2Fpcm9fc3VyZmFj
ZV90KiBld2tfaGlzdG9yeV9pdGVtX2ljb25fc3VyZmFjZV9nZXQoY29uc3QgRXdrX0hpc3Rvcnlf
SXRlbSogaXRlbSkKIHsKICAgICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihp
dGVtLCBjb3JlLCAwKTsKIAotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNv
bkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29y
ZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBpZiAoIWljb24pIHsKKyAgICBjYWlyb19zdXJmYWNl
X3QqIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlm
ICghaWNvbikKICAgICAgICAgRVJSKCJpY29uIGlzIE5VTEwuIik7Ci0gICAgICAgIHJldHVybiAw
OwotICAgIH0KLSAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsK
KworICAgIHJldHVybiBpY29uOwogfQogCiBFdmFzX09iamVjdCogZXdrX2hpc3RvcnlfaXRlbV9p
Y29uX29iamVjdF9hZGQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSwgRXZhcyogY2FudmFz
KQogewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUs
IDApOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAg
IFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25v
dXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsK
LSAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2U7CiAKLSAgICBpZiAoIWljb24pIHsKKyAgICBj
YWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJv
bm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2
LCAxNikpOworICAgIGlmICghc3VyZmFjZSkgewogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4i
KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgc3VyZmFjZSA9IGljb24tPm5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiAgICAgcmV0dXJuIGV3a191dGlsX2ltYWdlX2Zyb21f
Y2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBzdXJmYWNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3NldHRpbmdzLmNwcAppbmRleCAwMGU5N2JlODdkZDE4MjQ2MjQ4ZmZkMDhiYzU1MThk
MWMwNzU1YThmLi42ZmExNGViZTAyMGE3OGZjYWRmNzUwNTkzZWMyMGY5MzAwMWU3NGE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcApAQCAtMjE4LDE0ICsyMTgsMTEgQEAg
Y2Fpcm9fc3VyZmFjZV90KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2Vf
Z2V0KGNvbnN0IGNoYXIqIHVybCkKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
dXJsLCAwKTsKIAogICAgIFdlYkNvcmU6OktVUkwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6
U3RyaW5nOjpmcm9tVVRGOCh1cmwpKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNv
cmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmco
KSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLQotICAgIGlmICghaWNvbikgeworICAgIGNh
aXJvX3N1cmZhY2VfdCogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3Vz
TmF0aXZlSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwg
MTYpKTsKKyAgICBpZiAoIWljb24pCiAgICAgICAgIEVSUigibm8gaWNvbiBmb3IgdXJsICVzIiwg
dXJsKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgcmV0dXJuIGljb24tPm5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgcmV0dXJuIGljb247CiB9CiAKIEV2YXNfT2Jq
ZWN0KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX29iamVjdF9nZXQoY29uc3QgY2hh
ciogdXJsLCBFdmFzKiBjYW52YXMpCkBAIC0yMzQsMTUgKzIzMSwxMyBAQCBFdmFzX09iamVjdCog
ZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfZ2V0KGNvbnN0IGNoYXIqIHVy
bCwgRXZhcyogYwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDAp
OwogCiAgICAgV2ViQ29yZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6
OmZyb21VVEY4KHVybCkpOwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNv
bkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJD
b3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZTsKKyAg
ICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5j
aHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNp
emUoMTYsIDE2KSk7CiAKLSAgICBpZiAoIWljb24pIHsKKyAgICBpZiAoIXN1cmZhY2UpIHsKICAg
ICAgICAgRVJSKCJubyBpY29uIGZvciB1cmwgJXMiLCB1cmwpOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAKLSAgICBzdXJmYWNlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUo
KTsKICAgICByZXR1cm4gZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52
YXMsIHN1cmZhY2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRmYXZpY29uZGF0YWJhc2UuY3BwCmluZGV4IGExZmQzN2ExZTMxZGVlODgyZmY0Y2I4Y2Y2YzZm
MzA5NGIxYzU2MWQuLjg5M2YxNjE5Yzk3ZThlZTZhOGM0OTVmOWJhY2Y2MjE2NjgzODczZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2Uu
Y3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1
ZGUgIkdka0NhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiSWNvbkRhdGFiYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTM5NCwx
NiArMzk1LDE4IEBAIHN0YXRpYyBHZGtQaXhidWYqIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5
KFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvCiAKICAgICAvLyBUaGUgZXhhY3Qg
c2l6ZSB3ZSBwYXNzIGlzIGlycmVsZXZhbnQgdG8gdGhlIGljb25EYXRhYmFzZSBjb2RlLgogICAg
IC8vIFdlIG11c3QgcGFzcyBzb21ldGhpbmcgZ3JlYXRlciB0aGFuIDB4MCB0byBnZXQgYSBwaXhi
dWYuCi0gICAgSW1hZ2UqIGljb24gPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQ
YWdlVVJMKHBhZ2VVUkwsICFpY29uU2l6ZS5pc1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgx
LCAxKSk7CisgICAgTmF0aXZlSW1hZ2VQdHIgaWNvbiA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9u
b3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgIWljb25TaXplLmlzWmVybygpID8gaWNv
blNpemUgOiBJbnRTaXplKDEsIDEpKTsKICAgICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihpY29uLT5nZXRH
ZGtQaXhidWYoKSk7CisgICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihj
YWlyb0ltYWdlU3VyZmFjZVRvR2RrUGl4YnVmKGljb24pKTsKICAgICBpZiAoIXBpeGJ1ZikKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBBIHNpemUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhp
bXVtIGF2YWlsYWJsZSBzaXplLgotICAgIGlmICghaWNvblNpemUuaXNaZXJvKCkgJiYgKGljb24t
PndpZHRoKCkgIT0gaWNvblNpemUud2lkdGgoKSB8fCBpY29uLT5oZWlnaHQoKSAhPSBpY29uU2l6
ZS5oZWlnaHQoKSkpCisgICAgaW50IHBpeGJ1ZldpZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgo
cGl4YnVmLmdldCgpKTsKKyAgICBpbnQgcGl4YnVmSGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVp
Z2h0KHBpeGJ1Zi5nZXQoKSk7CisgICAgaWYgKCFpY29uU2l6ZS5pc1plcm8oKSAmJiAocGl4YnVm
V2lkdGggIT0gaWNvblNpemUud2lkdGgoKSB8fCBwaXhidWZIZWlnaHQgIT0gaWNvblNpemUuaGVp
Z2h0KCkpKQogICAgICAgICBwaXhidWYgPSBnZGtfcGl4YnVmX3NjYWxlX3NpbXBsZShwaXhidWYu
Z2V0KCksIGljb25TaXplLndpZHRoKCksIGljb25TaXplLmhlaWdodCgpLCBHREtfSU5URVJQX0JJ
TElORUFSKTsKICAgICByZXR1cm4gcGl4YnVmLmxlYWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJoaXN0b3J5LmNwcAppbmRleCBmYzViZGQ1ZmNlYWQyNWM1N2YwZDI2NGJjNmYxOWMwZGMy
ZTJkZmMwLi4xNWQ0YWQ4YWZmNmQ1ZGFlNDhjMGQ5NzljMTVjYTA4ZmVkYjJhOTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgUURhdGVUaW1l
IFFXZWJIaXN0b3J5SXRlbTo6bGFzdFZpc2l0ZWQoKSBjb25zdAogUUljb24gUVdlYkhpc3RvcnlJ
dGVtOjppY29uKCkgY29uc3QKIHsKICAgICBpZiAoZC0+aXRlbSkKLSAgICAgICAgcmV0dXJuICpX
ZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGQtPml0ZW0t
PnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRG
cmFtZSgpOworICAgICAgICByZXR1cm4gKldlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9u
b3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoZC0+aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUo
MTYsIDE2KSk7CiAKICAgICByZXR1cm4gUUljb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
c2V0dGluZ3MuY3BwCmluZGV4IGNhMjY0YzhhZjAzNzNkMzZlZmY5MWQzMjdmZjU5YTUxMDRiOTll
OWEuLjcyNzczZTE1MzM2ZTYwYjljMTA2ZmNhYTY4YzM2NDk0ZTE2NjU2YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAtNzE1LDEyICs3MTUsOCBAQCB2b2lkIFFXZWJT
ZXR0aW5nczo6Y2xlYXJJY29uRGF0YWJhc2UoKQogUUljb24gUVdlYlNldHRpbmdzOjppY29uRm9y
VXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBXZWJDb3JlOjppbml0aWFsaXplV2ViQ29yZVF0
KCk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGltYWdlID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChXZWJDb3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCisg
ICAgUVBpeG1hcCogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0
aXZlSWNvbkZvclBhZ2VVUkwoV2ViQ29yZTo6S1VSTCh1cmwpLnN0cmluZygpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAgIGlm
ICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBRUGl4bWFwKCk7Ci0KLSAgICBRUGl4bWFwKiBpY29u
ID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiAgICAgaWYgKCFpY29uKQog
ICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141424</attachid>
            <date>2012-05-11 08:39:17 -0700</date>
            <delta_ts>2012-05-11 11:42:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67582-20120511173915.patch</filename>
            <type>text/plain</type>
            <size>16357</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMTU3NGQ3Yjk2OGQx
MDg2OGU1MjEwOTkwYWFlZDFmNWRmZDU5Ny4uOWVjMGU0MjY1ZWYxMTQ2YmE4NTY5ZjhlNDE5MTU5
ZTQ2MWEwYmZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTMwICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNS0xMCAgS2ludWtvIFlhc3Vk
YSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hhbmdlIHRoZSByZXR1cm4gdHlw
ZSBvZiBFbnRyeS50b1VSTCgpIGJhY2sgdG8gU3RyaW5nIGZyb20gS1VSTApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKaW5kZXggZmNkZTQ1N2RiMTNiZTk3NjhlNzYyZTljODYyMzBiMzE0ZTFk
YTBiNi4uN2JmMWUxODg1OTNkZTQ4MzkxMWU4OGUzZWYyMjJkMDk2MDc0Njg0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMzAgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwogMjAxMi0wNS0wOSAgSm9uYXRo
YW4gRG9uZyAgPGpvbmF0aGFuLmRvbmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtC
bGFja0JlcnJ5XSBBdXRvZmlsbCBmZWF0dXJlIGltcGxlbWVudGF0aW9uIGZvciBCbGFja0JlcnJ5
IHBvcnRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAxNDU3N2YwZThhYWIxOTg0NmI0ZTBmNzFjYzFm
YjRhMTM0MWQwNmQ4Li5iNWZkZWNjYjBiM2EzYjQ4ZmE5ZTE0NGUwZDc2OGRkNjUyZjRkY2NkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDMtMzAgIFNlcmdpbyBWaWxs
YXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmll
ci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmlldmUg
ZmF2aWNvbnMuCisKKyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAoZXdr
X2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5X2l0
ZW1faWNvbl9vYmplY3RfYWRkKToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoKKyAg
ICAgICAgKGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgorICAg
ICAgICAoZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwogMjAx
Mi0wNS0xMCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXVtEUlRdIENsZWFyIGFkZGVkIHVzZXIgc3R5bGUgc2hlZXRzIGJl
Zm9yZSBhIG5ldyB0ZXN0Y2FzZSBleGVjdXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNzVjMjQ5
MDA4ZDgwNmJkYTRlOThiMzI5ZmVkMTJiYjUxNzhhYmQ0My4uNDFiNjM4NzVlZmU3ZGFmNWIwZjZm
Mzc2ZTM5MWZmNjM4MzZkZWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTAzLTMwICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisg
ICAgICAgIENhbGxpbmcgbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0
aW9uIGZhaWx1cmU6IG1fdmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ugc3luY2hyb25vdXNOYXRpdmVJY29uRm9y
UGFnZVVSTCgpIHRvIHJldHJpZXZlIGZhdmljb25zLgorCisgICAgICAgICogd2Via2l0L3dlYmtp
dGZhdmljb25kYXRhYmFzZS5jcHA6CisgICAgICAgIChnZXRJY29uUGl4YnVmU3luY2hyb25vdXNs
eSk6CisKIDIwMTItMDUtMDkgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBNb3ZlIHN1c3BlbmRBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50
ZXJmYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBiZDYzMDY3NTBhMmQ2ZDM5MmZlOWVmNGJhNGM0NzFi
MjZiMDRhNTFlLi5mZjk1YWJkZDFlZDY0YzUyZjk2YmUzODQyYTE2ODJiYWY3ZTYzZWQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTMwICBTZXJnaW8gVmlsbGFyIFNl
bmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcgbmF0aXZlSW1hZ2VG
b3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1fdmVyaWZpZXIuaXNT
YWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2Ugc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCgpIHRvIHJldHJpZXZlIGZhdmlj
b25zLgorCisgICAgICAgICogQXBpL3F3ZWJoaXN0b3J5LmNwcDoKKyAgICAgICAgKFFXZWJIaXN0
b3J5SXRlbTo6aWNvbik6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAg
IChRV2ViU2V0dGluZ3M6Omljb25Gb3JVcmwpOgorCiAyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0g
IDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0
aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IDZlOTdjMDJmMDlhNDVlZGFmYjQ2YmU5MDI2ZTll
YzkzOWY2YTZhNWYuLjgzMzM3M2ZjYTlkYTA4ODEwZWQwYzliYWQ4MDE2ZWE4NjY0YTI1ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2VD
bGllbnQuaCIKICNpbmNsdWRlICJJY29uUmVjb3JkLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKICNp
bmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNRTGl0
ZVN0YXRlbWVudC5oIgpAQCAtMjkwLDYgKzI5MSwxNiBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpz
eW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBj
bwogICAgIHJldHVybiBpY29uUmVjb3JkLT5pbWFnZShzaXplKTsKIH0KIAorTmF0aXZlSW1hZ2VQ
dHIgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIEltYWdl
KiBpY29uID0gc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChwYWdlVVJMT3JpZ2luYWwsIHNpemUp
OworICAgIGlmICghaWNvbikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgcmV0dXJuIGljb24tPm5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCk7Cit9CisKIHZvaWQgSWNvbkRhdGFiYXNlOjpyZWFkSWNvbkZvclBhZ2VV
UkxGcm9tRGlzayhjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiB7CiAgICAgLy8gVGhlIGVmZmVjdCBv
ZiBhc2tpbmcgZm9yIGFuIEljb24gZm9yIGEgcGFnZVVSTCBhdXRvbWF0aWNhbGx5IHF1ZXVlcyBp
dCB0byBiZSByZWFkIGZyb20gZGlzawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuaAppbmRleCBlNGQ4Y2E3M2E0YmU0MmJhYWNhYzlkMTIwODRmMzUzYWM0NzY4ZGE2Li41
MmUwYjNmMWI0YmRlMWY4MzRhOTEyNzU4ZDY5MGJkYjQxMDdmNGRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaApAQCAtOTYsNiArOTYsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVS
TCwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKTsKIAogICAgIHZpcnR1YWwgSW1hZ2UqIHN5bmNocm9u
b3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50U2l6ZSYpOworICAgIHZp
cnR1YWwgTmF0aXZlSW1hZ2VQdHIgc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmIHBhZ2VVUkxPcmlnaW5hbCwgY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwg
U3RyaW5nIHN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAg
dmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZvckljb25VUkwoY29uc3QgU3Ry
aW5nJik7CiAgICAgdmlydHVhbCBJY29uTG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lz
aW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCBEb2N1bWVudExvYWRlciopOyAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaAppbmRleCA3MzRlMmY2
YTJhNDYzZjUwYjFkODlmMTZkZDMzZmY1MWQxMmViMDdmLi41NmNiMDNjNjdmOGQ2MmIwZDQxMTc4
Yjg0MzhjMzkxOWY4NTk3MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlQmFzZS5oCkBAIC0yNiwxMyArMjYsMTQgQEAKICNpZm5kZWYgSWNvbkRhdGFiYXNl
QmFzZV9oCiAjZGVmaW5lIEljb25EYXRhYmFzZUJhc2VfaAogCisjaW5jbHVkZSAiSW1hZ2VTb3Vy
Y2UuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeyAKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBJY29uRGF0YWJhc2VDbGllbnQ7CkBAIC0xNzgsNyAr
MTc5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzeW5jaHJvbm91c0ljb25EYXRhS25v
d25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBJY29uTG9hZERlY2lzaW9uIHN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25z
dCBTdHJpbmcmLCBEb2N1bWVudExvYWRlciopIHsgcmV0dXJuIEljb25Mb2FkTm87IH0KICAgICB2
aXJ0dWFsIEltYWdlKiBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNv
bnN0IEludFNpemUmKSB7IHJldHVybiAwOyB9Ci0gICAgCisgICAgdmlydHVhbCBOYXRpdmVJbWFn
ZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0
IEludFNpemUmKSB7IHJldHVybiAwOyB9CisKICAgICAvLyBBc3luY2hyb25vdXMgY2FsbHMgd2Ug
c2hvdWxkIHVzZSB0byByZXBsYWNlIHRoZSBhYm92ZSB3aGVuIHN1cHBvcnRlZC4KICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNNb2RlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCBQYXNz
UmVmUHRyPEljb25Mb2FkRGVjaXNpb25DYWxsYmFjaz4pIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA2ZWY0ZTQ0OTBiYzFkZjU2ZDkzOTQ3ZGM5
MmZiMjA1NDM2ZTM3Yjk4Li4zNDhhOTJkZDU2ZjkwYzQzNDNhNjU2YWYxMGJiMmFmNTgzMzVlZjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMTE1
NSwxMyArMTE1NSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZG93bmxv
YWQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyYwogdm9pZCBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24oKQogewogICAgIFN0cmlu
ZyB1cmwgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKTsKLSAgICBJbWFnZSog
aW1nID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTCh1cmwsIEludFNp
emUoMTAsIDEwKSk7Ci0gICAgaWYgKCFpbWcgfHwgIWltZy0+ZGF0YSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBOYXRpdmVJbWFnZVNraWEqIGJpdG1hcCA9IGltZy0+bmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKTsKKyAgICBOYXRpdmVJbWFnZVNraWEqIGJpdG1hcCA9IGljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwodXJsLCBJbnRTaXplKDEwLCAxMCkp
OwogICAgIGlmICghYml0bWFwKQogICAgICAgICByZXR1cm47CisKICAgICBiaXRtYXAtPmxvY2tQ
aXhlbHMoKTsKICAgICBTdHJpbmcgaWNvblVybCA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3Vz
SWNvblVSTEZvclBhZ2VVUkwodXJsKTsKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+
c2V0RmF2aWNvbihpbWctPndpZHRoKCksIGltZy0+aGVpZ2h0KCksICh1bnNpZ25lZCBjaGFyKili
aXRtYXAtPmdldFBpeGVscygpLCBpY29uVXJsLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfaGlzdG9yeS5jcHAKaW5kZXggMWE0ZTliNzFmYjc1MDhmNjRjOGQ4ZTA0MjA2MmEw
NzRlMDI4YzY1Ny4uYmRlZmVhOTliZGNjMzU4MWQ4MWRkZTk3ZDNiNjYxNzMwYzQ0YmQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCkBAIC0zMzYsMjkgKzMzNiwyNiBAQCBj
YWlyb19zdXJmYWNlX3QqIGV3a19oaXN0b3J5X2l0ZW1faWNvbl9zdXJmYWNlX2dldChjb25zdCBF
d2tfSGlzdG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRf
T1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogCi0gICAgV2ViQ29yZTo6SW1hZ2UqIGljb24gPSBX
ZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvcmUtPnVy
bCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAgIGlmICghaWNvbikgeworICAgIE5h
dGl2ZUltYWdlUHRyIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05h
dGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikp
OworICAgIGlmICghaWNvbikKICAgICAgICAgRVJSKCJpY29uIGlzIE5VTEwuIik7Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KIAotICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2
ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1cm4g
bmF0aXZlSW1hZ2UgPyBuYXRpdmVJbWFnZS0+c3VyZmFjZSgpIDogMDsKKyAgICByZXR1cm4gaWNv
biA/IGljb24tPnN1cmZhY2UoKSA6IDA7CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfaGlzdG9yeV9p
dGVtX2ljb25fb2JqZWN0X2FkZChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtLCBFdmFzKiBj
YW52YXMpCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwg
Y29yZSwgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNhbnZhcywgMCk7
Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5j
aHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAx
NikpOwogCisgICAgTmF0aXZlSW1hZ2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgp
LnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJsKCksIFdlYkNvcmU6Oklu
dFNpemUoMTYsIDE2KSk7CiAgICAgaWYgKCFpY29uKSB7CiAgICAgICAgIEVSUigiaWNvbiBpcyBO
VUxMLiIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpOYXRpdmVJ
bWFnZUNhaXJvKiBuYXRpdmVJbWFnZSA9IGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCk7Ci0gICAgcmV0dXJuIG5hdGl2ZUltYWdlID8gZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19z
dXJmYWNlX2FkZChjYW52YXMsIG5hdGl2ZUltYWdlLT5zdXJmYWNlKCkpIDogMDsKKyAgICBjYWly
b19zdXJmYWNlX3QqIHN1cmZhY2UgPSBpY29uLT5zdXJmYWNlKCk7CisgICAgcmV0dXJuIHN1cmZh
Y2UgPyBld2tfdXRpbF9pbWFnZV9mcm9tX2NhaXJvX3N1cmZhY2VfYWRkKGNhbnZhcywgc3VyZmFj
ZSkgOiAwOwogfQogCiBFaW5hX0Jvb2wgZXdrX2hpc3RvcnlfaXRlbV9wYWdlX2NhY2hlX2V4aXN0
cyhjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Nl
dHRpbmdzLmNwcAppbmRleCA4NDI5MzBhN2UyOTQyNGEwMWY1ZmI2OWU0OGQ0NzZhNzY4ODI5NDI4
Li43ZjNkZWY0ZDg5NWRlNWU4MDU3NWFkNTMwMTk5ZjRhYzQ3OWEzNmM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcApAQCAtMjEzLDE1ICsyMTMsMTEgQEAgY2Fpcm9fc3Vy
ZmFjZV90KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0KGNvbnN0
IGNoYXIqIHVybCkKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodXJsLCAwKTsK
IAogICAgIFdlYkNvcmU6OktVUkwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpm
cm9tVVRGOCh1cmwpKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25E
YXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29y
ZTo6SW50U2l6ZSgxNiwgMTYpKTsKLQotICAgIGlmICghaWNvbikgeworICAgIE5hdGl2ZUltYWdl
UHRyIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CisgICAg
aWYgKCFpY29uKQogICAgICAgICBFUlIoIm5vIGljb24gZm9yIHVybCAlcyIsIHVybCk7Ci0gICAg
ICAgIHJldHVybiAwOwotICAgIH0KIAotICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fpcm8qIG5h
dGl2ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1
cm4gbmF0aXZlSW1hZ2UgPyBuYXRpdmVJbWFnZS0+c3VyZmFjZSgpIDogMDsKKyAgICByZXR1cm4g
aWNvbiA/IGljb24tPnN1cmZhY2UoKSA6IDA7CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfc2V0dGlu
Z3NfaWNvbl9kYXRhYmFzZV9pY29uX29iamVjdF9nZXQoY29uc3QgY2hhciogdXJsLCBFdmFzKiBj
YW52YXMpCkBAIC0yMzAsMTUgKzIyNiwxNSBAQCBFdmFzX09iamVjdCogZXdrX3NldHRpbmdzX2lj
b25fZGF0YWJhc2VfaWNvbl9vYmplY3RfZ2V0KGNvbnN0IGNoYXIqIHVybCwgRXZhcyogYwogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwogCiAgICAgV2ViQ29y
ZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVybCkp
OwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3lu
Y2hyb25vdXNJY29uRm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2
LCAxNikpOworICAgIE5hdGl2ZUltYWdlUHRyIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2Uo
KS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6
OkludFNpemUoMTYsIDE2KSk7CiAKICAgICBpZiAoIWljb24pIHsKICAgICAgICAgRVJSKCJubyBp
Y29uIGZvciB1cmwgJXMiLCB1cmwpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBX
ZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRpdmVJbWFnZSA9IGljb24tPm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJuIG5hdGl2ZUltYWdlID8gZXdrX3V0aWxfaW1h
Z2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMsIG5hdGl2ZUltYWdlLT5zdXJmYWNlKCkp
IDogMDsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBpY29uLT5zdXJmYWNlKCk7Cisg
ICAgcmV0dXJuIHN1cmZhY2UgPyBld2tfdXRpbF9pbWFnZV9mcm9tX2NhaXJvX3N1cmZhY2VfYWRk
KGNhbnZhcywgc3VyZmFjZSkgOiAwOwogfQogCiB2b2lkIGV3a19zZXR0aW5nc19vYmplY3RfY2Fj
aGVfY2FwYWNpdHlfc2V0KHVuc2lnbmVkIG1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQgbWF4RGVh
ZENhcGFjaXR5LCB1bnNpZ25lZCB0b3RhbENhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcAppbmRleCBhMWZkMzdhMWUzMWRl
ZTg4MmZmNGNiOGNmNmM2ZjMwOTRiMWM1NjFkLi5hOWMzZTY1NTcxOWNmZGVlYzM3Njc0N2UzMmFm
MmI3YjJlZDQ1YzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZmF2aWNvbmRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZmF2aWNvbmRhdGFiYXNlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNl
RGV0YWlscy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW0uaCIKKyNpbmNsdWRlICJHZGtDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkljb25E
YXRhYmFzZS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVudC5oIgogI2luY2x1ZGUgIklt
YWdlLmgiCkBAIC0zOTQsMTYgKzM5NSwxOCBAQCBzdGF0aWMgR2RrUGl4YnVmKiBnZXRJY29uUGl4
YnVmU3luY2hyb25vdXNseShXZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlLCBjbwogCiAg
ICAgLy8gVGhlIGV4YWN0IHNpemUgd2UgcGFzcyBpcyBpcnJlbGV2YW50IHRvIHRoZSBpY29uRGF0
YWJhc2UgY29kZS4KICAgICAvLyBXZSBtdXN0IHBhc3Mgc29tZXRoaW5nIGdyZWF0ZXIgdGhhbiAw
eDAgdG8gZ2V0IGEgcGl4YnVmLgotICAgIEltYWdlKiBpY29uID0gaWNvbkRhdGFiYXNlKCkuc3lu
Y2hyb25vdXNJY29uRm9yUGFnZVVSTChwYWdlVVJMLCAhaWNvblNpemUuaXNaZXJvKCkgPyBpY29u
U2l6ZSA6IEludFNpemUoMSwgMSkpOworICAgIE5hdGl2ZUltYWdlUHRyIGljb24gPSBpY29uRGF0
YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKHBhZ2VVUkwsICFpY29uU2l6
ZS5pc1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAxKSk7CiAgICAgaWYgKCFpY29uKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBwaXhidWYgPSBhZG9w
dEdSZWYoaWNvbi0+Z2V0R2RrUGl4YnVmKCkpOworICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBwaXhi
dWYgPSBhZG9wdEdSZWYoY2Fpcm9JbWFnZVN1cmZhY2VUb0dka1BpeGJ1ZihpY29uLT5zdXJmYWNl
KCkpKTsKICAgICBpZiAoIXBpeGJ1ZikKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBBIHNp
emUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBzaXplLgotICAgIGlmICgh
aWNvblNpemUuaXNaZXJvKCkgJiYgKGljb24tPndpZHRoKCkgIT0gaWNvblNpemUud2lkdGgoKSB8
fCBpY29uLT5oZWlnaHQoKSAhPSBpY29uU2l6ZS5oZWlnaHQoKSkpCisgICAgaW50IHBpeGJ1Zldp
ZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4YnVmLmdldCgpKTsKKyAgICBpbnQgcGl4YnVm
SGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KHBpeGJ1Zi5nZXQoKSk7CisgICAgaWYgKCFp
Y29uU2l6ZS5pc1plcm8oKSAmJiAocGl4YnVmV2lkdGggIT0gaWNvblNpemUud2lkdGgoKSB8fCBw
aXhidWZIZWlnaHQgIT0gaWNvblNpemUuaGVpZ2h0KCkpKQogICAgICAgICBwaXhidWYgPSBnZGtf
cGl4YnVmX3NjYWxlX3NpbXBsZShwaXhidWYuZ2V0KCksIGljb25TaXplLndpZHRoKCksIGljb25T
aXplLmhlaWdodCgpLCBHREtfSU5URVJQX0JJTElORUFSKTsKICAgICByZXR1cm4gcGl4YnVmLmxl
YWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcAppbmRleCBmYzViZGQ1
ZmNlYWQyNWM1N2YwZDI2NGJjNmYxOWMwZGMyZTJkZmMwLi4xNWQ0YWQ4YWZmNmQ1ZGFlNDhjMGQ5
NzljMTVjYTA4ZmVkYjJhOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
aGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3BwCkBA
IC0xNTgsNyArMTU4LDcgQEAgUURhdGVUaW1lIFFXZWJIaXN0b3J5SXRlbTo6bGFzdFZpc2l0ZWQo
KSBjb25zdAogUUljb24gUVdlYkhpc3RvcnlJdGVtOjppY29uKCkgY29uc3QKIHsKICAgICBpZiAo
ZC0+aXRlbSkKLSAgICAgICAgcmV0dXJuICpXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJv
bm91c0ljb25Gb3JQYWdlVVJMKGQtPml0ZW0tPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAx
NikpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgICAgICByZXR1cm4gKldlYkNv
cmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoZC0+aXRl
bS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CiAKICAgICByZXR1cm4gUUljb24o
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IDRlMDE4MzZmNzc4
NGM3OWFhMmZhYTA4MTdkZTcyYmYyNTQwYWI1MzUuLmVkNDNlYjNmOGNkNDcyODY0OGMzNWMwMzU3
MzYxZGU4ZTEyNzUyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAt
NzE1LDEyICs3MTUsOCBAQCB2b2lkIFFXZWJTZXR0aW5nczo6Y2xlYXJJY29uRGF0YWJhc2UoKQog
UUljb24gUVdlYlNldHRpbmdzOjppY29uRm9yVXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBX
ZWJDb3JlOjppbml0aWFsaXplV2ViQ29yZVF0KCk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGltYWdl
ID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChXZWJD
b3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCisgICAgUVBpeG1hcCogaWNvbiA9IFdlYkNvcmU6Omlj
b25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoV2ViQ29yZTo6S1VS
TCh1cmwpLnN0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3Jl
OjpJbnRTaXplKDE2LCAxNikpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBRUGl4
bWFwKCk7Ci0KLSAgICBRUGl4bWFwKiBpY29uID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVu
dEZyYW1lKCk7CiAgICAgaWYgKCFpY29uKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141460</attachid>
            <date>2012-05-11 11:42:49 -0700</date>
            <delta_ts>2012-06-18 09:32:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67582-20120511204247.patch</filename>
            <type>text/plain</type>
            <size>17760</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNkZTUwMjFhYTVkMTYy
YTJkNmYyYjhkYzgxMmJmMDU3MjNlYmVjZS4uNjVkZDNiNjc3MDY3NWU5YWVlYjFkMjA4Y2UwNGFh
OThmMDM4OWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNS0xMSAgQWxleGVpIEZpbGlw
cG92ICA8YWxleGVpZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHN1cHBvcnQgb2YgY29tYmluZWQgbm9kZXMgYW5kIGVkZ2VzIHNlcmlhbGl6YXRpb24gc2No
ZW1hLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTQwMWVkMDEyOTA5NzQ0ZGJl
NDkwYWQ0NzQzZWM5NTdiODRlYTFjNS4uYjY5Y2UyY2EwZjg5ZGI0YmNkODhkZmEwMzJjNjM5MDRh
ZTQwZmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3Nl
cnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwog
MjAxMi0wNS0xMCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgogCiAgICAgICAgIENh
cmV0IG5vZGUgYm91bmRhcnkgc2hvdWxkIGJlIGFkanVzdGVkIHRvIGFjY291bnQgZm9yIHRoZSB2
aXNpYmxlIHJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2YvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKaW5kZXggMzA0MjkxYTZjNjM2N2ViMjk5NzQwOTBm
YzA4NmVmMjkzMDVhMzRmNS4uYjFlNjAyZTMzZGMxYzJmMzA5MDQ0N2IwNDk0NmU4YzFlN2Y0YWYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3Zlcmlm
aWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4ZXMgd2luZG93cyBidWlsZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKwogMjAxMS0xMi0yMCAgUGF2ZWwgRmVsZG1hbiAg
PHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcHJv
ZHVjaWJsZSBjcmFzaCBhZnRlciBjbG9zaW5nIHdlYiBpbnNwZWN0b3IgYW5kIGJyb3dzZXIgd2lu
ZG93ICAoaUNhYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA4OTg5MzljZmJiMTQwYzQ3ODJhZGJkZDFm
OTgyOTU3MzYwM2I3ZWFiLi5mOWFkMjExYWI4YzQ1MzM0YmNjMDE4N2RmMTk4NzIwOGJkNTI4Yjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDUtMTEgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJp
Zmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmll
dmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAo
ZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5
X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoK
KyAgICAgICAgKGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwog
MjAxMi0wNS0xMSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gSW5wdXQgQXR0cmlidXRlIFBsYWNlaG9sZGVyIFJl
ZlRlc3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmYTY5YmFjOGMyNDI1MjBmNjYwNTcz
MmU2YTY3MDlkZDNlZDliM2NjLi5hYzJmMDIzMmY3ZDhmYjc1YjEzYWM3OThiZTVmOTkyYjdhMGY3
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTEgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNl
LmNwcDoKKyAgICAgICAgKGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0wNS0x
MSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIxMTYyMDUpOiBbR1RLXTogYnVpbGQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoaW4gYXJj
aGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNjg4MWFmNGExN2VhZjZkOGQwOGRhOTNiZGNmYWUwNjA0
MzZmNTNmNi4uN2FiYzVlNmY3YjM2ZmY4OGE0NzdjYzY5OTZlYWU1YTYyZjNlYTA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlzU2Fm
ZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZpY29u
cy4KKworICAgICAgICAqIEFwaS9xd2ViaGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlzdG9y
eUl0ZW06Omljb24pOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAo
UVdlYlNldHRpbmdzOjppY29uRm9yVXJsKToKKwogMjAxMi0wNS0xMCAgR3l1eW91bmcgS2ltICA8
Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0aW9u
cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNmU5N2MwMmYwOWE0NWVkYWZiNDZiZTkwMjZlOWVjOTM5
ZjZhNmE1Zi4uODMzMzczZmNhOWRhMDg4MTBlZDBjOWJhZDgwMTZlYTg2NjRhMjVlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25SZWNvcmQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3Rh
dGVtZW50LmgiCkBAIC0yOTAsNiArMjkxLDE2IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvCiAg
ICAgcmV0dXJuIGljb25SZWNvcmQtPmltYWdlKHNpemUpOwogfQogCitOYXRpdmVJbWFnZVB0ciBJ
Y29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgSW1hZ2UqIGlj
b24gPSBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkxPcmlnaW5hbCwgc2l6ZSk7Cisg
ICAgaWYgKCFpY29uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKTsKK30KKwogdm9pZCBJY29uRGF0YWJhc2U6OnJlYWRJY29uRm9yUGFnZVVSTEZy
b21EaXNrKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKICAgICAvLyBUaGUgZWZmZWN0IG9mIGFz
a2luZyBmb3IgYW4gSWNvbiBmb3IgYSBwYWdlVVJMIGF1dG9tYXRpY2FsbHkgcXVldWVzIGl0IHRv
IGJlIHJlYWQgZnJvbSBkaXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5oCmluZGV4IGU0ZDhjYTczYTRiZTQyYmFhY2FjOWQxMjA4NGYzNTNhYzQ3NjhkYTYuLjUyZTBi
M2YxYjRiZGUxZjgzNGE5MTI3NThkNjkwYmRiNDEwN2Y0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBj
b25zdCBTdHJpbmcmIHBhZ2VVUkwpOwogCiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVh
bCBOYXRpdmVJbWFnZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCBTdHJp
bmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25G
b3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKik7ICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCmluZGV4IDczNGUyZjZhMmE0
NjNmNTBiMWQ4OWYxNmRkMzNmZjUxZDEyZWIwN2YuLjU2Y2IwM2M2N2Y4ZDYyYjBkNDExNzhiODQz
OGMzOTE5Zjg1OTcyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2VCYXNlLmgKQEAgLTI2LDEzICsyNiwxNCBAQAogI2lmbmRlZiBJY29uRGF0YWJhc2VCYXNl
X2gKICNkZWZpbmUgSWNvbkRhdGFiYXNlQmFzZV9oCiAKKyNpbmNsdWRlICJJbWFnZVNvdXJjZS5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7IAorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudExvYWRlcjsKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudDsKQEAgLTE3OCw3ICsxNzks
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZv
ckljb25VUkwoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIElj
b25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYsIERvY3VtZW50TG9hZGVyKikgeyByZXR1cm4gSWNvbkxvYWRObzsgfQogICAgIHZpcnR1
YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3Qg
SW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KLSAgICAKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRy
IHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50
U2l6ZSYpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIEFzeW5jaHJvbm91cyBjYWxscyB3ZSBzaG91
bGQgdXNlIHRvIHJlcGxhY2UgdGhlIGFib3ZlIHdoZW4gc3VwcG9ydGVkLgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c01vZGUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBsb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQ
dHI8SWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDZlZjRlNDQ5MGJjMWRmNTZkOTM5NDdkYzkyZmIy
MDU0MzZlMzdiOTguLjM0OGE5MmRkNTZmOTBjNDM0M2E2NTZhZjEwYmIyYWY1ODMzNWVmMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMTU1LDEz
ICsxMTU1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpkb3dubG9hZChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB7CiAgICAgU3RyaW5nIHVy
bCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwotICAgIEltYWdlKiBpbWcg
PSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6ZSgx
MCwgMTApKTsKLSAgICBpZiAoIWltZyB8fCAhaW1nLT5kYXRhKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaW1nLT5uYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpOworICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCh1cmwsIEludFNpemUoMTAsIDEwKSk7CiAg
ICAgaWYgKCFiaXRtYXApCiAgICAgICAgIHJldHVybjsKKwogICAgIGJpdG1hcC0+bG9ja1BpeGVs
cygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
VVJMRm9yUGFnZVVSTCh1cmwpOwogICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5zZXRG
YXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNoYXIqKWJpdG1h
cC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmlu
ZGV4IDQ4NjNhMDI0NjI3ZTI2MmNkYjgzMWNjZTgxOGViOTA3YWY1YzNkZGQuLjRiY2YzYWU2ZTUx
Mjk1YmJiYTE0ZWYxOWZiNzI5NmU5YmFlMzk3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC0zMyw2
ICszMywxMiBAQAogI2RlZmluZSBXVEZfVVNFX0NGIDEKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V0lOKSAmJiAhT1MoV0lOQ0UpCisjaWZuZGVmIFdURl9VU0VfQ0cKKyNkZWZpbmUgV1RGX1VTRV9D
RyAxCisjZW5kaWYKKyNlbmRpZgorCiAvLyBOT1RFOiBUaGVzZSBuZWVkIHRvIGFwcGVhciB1cCB0
b3AsIGFzIHRoZXkgZGVjbGFyZSBtYWNyb3MKIC8vIHVzZWQgaW4gdGhlIEpTIGFuZCBXVEYgaGVh
ZGVycy4KICNpbmNsdWRlIDxydW50aW1lL0pTRXhwb3J0TWFjcm9zLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19oaXN0b3J5LmNwcAppbmRleCAxYTRlOWI3MWZiNzUwOGY2NGM4ZDhlMDQyMDYyYTA3
NGUwMjhjNjU3Li4wNDM5YzQ4MjczYjA0MGNmNTRiNTEzNjQ3NDA1N2NhMTgwYTQxMzRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKQEAgLTMzNiwyOSArMzM2LDI2IEBAIGNh
aXJvX3N1cmZhY2VfdCogZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KGNvbnN0IEV3
a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9P
Ul9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdl
YkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJs
KCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7Ci0gICAgaWYgKCFpY29uKSB7CisgICAgV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNo
cm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUo
MTYsIDE2KSk7CisgICAgaWYgKCFpY29uKQogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VDYWly
byogbmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAg
IHJldHVybiBuYXRpdmVJbWFnZSA/IG5hdGl2ZUltYWdlLT5zdXJmYWNlKCkgOiAwOworICAgIHJl
dHVybiBpY29uID8gaWNvbi0+c3VyZmFjZSgpIDogMDsKIH0KIAogRXZhc19PYmplY3QqIGV3a19o
aXN0b3J5X2l0ZW1faWNvbl9vYmplY3RfYWRkKGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0s
IEV2YXMqIGNhbnZhcykKIHsKICAgICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVS
TihpdGVtLCBjb3JlLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2Fu
dmFzLCAwKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJsKCksIFdlYkNvcmU6OkludFNp
emUoMTYsIDE2KSk7CiAKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpY29uID0gV2ViQ29y
ZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb3JlLT51
cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKICAgICBpZiAoIWljb24pIHsKICAgICAg
ICAgRVJSKCJpY29uIGlzIE5VTEwuIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAg
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1h
Z2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1cm4gbmF0aXZlSW1hZ2UgPyBld2tfdXRpbF9p
bWFnZV9mcm9tX2NhaXJvX3N1cmZhY2VfYWRkKGNhbnZhcywgbmF0aXZlSW1hZ2UtPnN1cmZhY2Uo
KSkgOiAwOworICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSA9IGljb24tPnN1cmZhY2UoKTsK
KyAgICByZXR1cm4gc3VyZmFjZSA/IGV3a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9h
ZGQoY2FudmFzLCBzdXJmYWNlKSA6IDA7CiB9CiAKIEVpbmFfQm9vbCBld2tfaGlzdG9yeV9pdGVt
X3BhZ2VfY2FjaGVfZXhpc3RzKGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCmluZGV4IDg0MjkzMGE3ZTI5NDI0YTAxZjVmYjY5
ZTQ4ZDQ3NmE3Njg4Mjk0MjguLjJmNTRkMDYwNDhiYzZlNTFiNDU3MjdhYjM1ODNhYWQzZjU0Yjc5
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCkBAIC0yMTMsMTUgKzIx
MywxMSBAQCBjYWlyb19zdXJmYWNlX3QqIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25f
c3VyZmFjZV9nZXQoY29uc3QgY2hhciogdXJsKQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTCh1cmwsIDApOwogCiAgICAgV2ViQ29yZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwo
KSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVybCkpOwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29u
ID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChrdXJs
LnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwotCi0gICAgaWYgKCFpY29uKSB7
CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29y
ZTo6SW50U2l6ZSgxNiwgMTYpKTsKKyAgICBpZiAoIWljb24pCiAgICAgICAgIEVSUigibm8gaWNv
biBmb3IgdXJsICVzIiwgdXJsKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpOwotICAgIHJldHVybiBuYXRpdmVJbWFnZSA/IG5hdGl2ZUltYWdlLT5z
dXJmYWNlKCkgOiAwOworICAgIHJldHVybiBpY29uID8gaWNvbi0+c3VyZmFjZSgpIDogMDsKIH0K
IAogRXZhc19PYmplY3QqIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fb2JqZWN0X2dl
dChjb25zdCBjaGFyKiB1cmwsIEV2YXMqIGNhbnZhcykKQEAgLTIzMCwxNSArMjI2LDE1IEBAIEV2
YXNfT2JqZWN0KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX29iamVjdF9nZXQoY29u
c3QgY2hhciogdXJsLCBFdmFzKiBjCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNhbnZhcywgMCk7CiAKICAgICBXZWJDb3JlOjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBX
VEY6OlN0cmluZzo6ZnJvbVVURjgodXJsKSk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGljb24gPSBX
ZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGt1cmwuc3Ry
aW5nKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CisgICAgV2ViQ29yZTo6TmF0aXZlSW1h
Z2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNv
bkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKIAog
ICAgIGlmICghaWNvbikgewogICAgICAgICBFUlIoIm5vIGljb24gZm9yIHVybCAlcyIsIHVybCk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fp
cm8qIG5hdGl2ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKLSAg
ICByZXR1cm4gbmF0aXZlSW1hZ2UgPyBld2tfdXRpbF9pbWFnZV9mcm9tX2NhaXJvX3N1cmZhY2Vf
YWRkKGNhbnZhcywgbmF0aXZlSW1hZ2UtPnN1cmZhY2UoKSkgOiAwOworICAgIGNhaXJvX3N1cmZh
Y2VfdCogc3VyZmFjZSA9IGljb24tPnN1cmZhY2UoKTsKKyAgICByZXR1cm4gc3VyZmFjZSA/IGV3
a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBzdXJmYWNlKSA6IDA7
CiB9CiAKIHZvaWQgZXdrX3NldHRpbmdzX29iamVjdF9jYWNoZV9jYXBhY2l0eV9zZXQodW5zaWdu
ZWQgbWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCBtYXhEZWFkQ2FwYWNpdHksIHVuc2lnbmVkIHRv
dGFsQ2FwYWNpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZmF2aWNvbmRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZp
Y29uZGF0YWJhc2UuY3BwCmluZGV4IGExZmQzN2ExZTMxZGVlODgyZmY0Y2I4Y2Y2YzZmMzA5NGIx
YzU2MWQuLmE5YzNlNjU1NzE5Y2ZkZWVjMzc2NzQ3ZTMyYWYyYjdiMmVkNDVjMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCkBA
IC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAi
RGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkdk
a0NhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
SWNvbkRhdGFiYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTM5NCwxNiArMzk1
LDE4IEBAIHN0YXRpYyBHZGtQaXhidWYqIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KFdlYktp
dEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvCiAKICAgICAvLyBUaGUgZXhhY3Qgc2l6ZSB3
ZSBwYXNzIGlzIGlycmVsZXZhbnQgdG8gdGhlIGljb25EYXRhYmFzZSBjb2RlLgogICAgIC8vIFdl
IG11c3QgcGFzcyBzb21ldGhpbmcgZ3JlYXRlciB0aGFuIDB4MCB0byBnZXQgYSBwaXhidWYuCi0g
ICAgSW1hZ2UqIGljb24gPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJM
KHBhZ2VVUkwsICFpY29uU2l6ZS5pc1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAxKSk7
CisgICAgTmF0aXZlSW1hZ2VQdHIgaWNvbiA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0
aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgIWljb25TaXplLmlzWmVybygpID8gaWNvblNpemUg
OiBJbnRTaXplKDEsIDEpKTsKICAgICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihpY29uLT5nZXRHZGtQaXhi
dWYoKSk7CisgICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihjYWlyb0lt
YWdlU3VyZmFjZVRvR2RrUGl4YnVmKGljb24tPnN1cmZhY2UoKSkpOwogICAgIGlmICghcGl4YnVm
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEEgc2l6ZSBvZiAoMCwgMCkgbWVhbnMgdGhl
IG1heGltdW0gYXZhaWxhYmxlIHNpemUuCi0gICAgaWYgKCFpY29uU2l6ZS5pc1plcm8oKSAmJiAo
aWNvbi0+d2lkdGgoKSAhPSBpY29uU2l6ZS53aWR0aCgpIHx8IGljb24tPmhlaWdodCgpICE9IGlj
b25TaXplLmhlaWdodCgpKSkKKyAgICBpbnQgcGl4YnVmV2lkdGggPSBnZGtfcGl4YnVmX2dldF93
aWR0aChwaXhidWYuZ2V0KCkpOworICAgIGludCBwaXhidWZIZWlnaHQgPSBnZGtfcGl4YnVmX2dl
dF9oZWlnaHQocGl4YnVmLmdldCgpKTsKKyAgICBpZiAoIWljb25TaXplLmlzWmVybygpICYmIChw
aXhidWZXaWR0aCAhPSBpY29uU2l6ZS53aWR0aCgpIHx8IHBpeGJ1ZkhlaWdodCAhPSBpY29uU2l6
ZS5oZWlnaHQoKSkpCiAgICAgICAgIHBpeGJ1ZiA9IGdka19waXhidWZfc2NhbGVfc2ltcGxlKHBp
eGJ1Zi5nZXQoKSwgaWNvblNpemUud2lkdGgoKSwgaWNvblNpemUuaGVpZ2h0KCksIEdES19JTlRF
UlBfQklMSU5FQVIpOwogICAgIHJldHVybiBwaXhidWYubGVha1JlZigpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYmhpc3RvcnkuY3BwCmluZGV4IGZjNWJkZDVmY2VhZDI1YzU3ZjBkMjY0YmM2ZjE5
YzBkYzJlMmRmYzAuLjE1ZDRhZDhhZmY2ZDVkYWU0OGMwZDk3OWMxNWNhMDhmZWRiMmE5NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBRRGF0
ZVRpbWUgUVdlYkhpc3RvcnlJdGVtOjpsYXN0VmlzaXRlZCgpIGNvbnN0CiBRSWNvbiBRV2ViSGlz
dG9yeUl0ZW06Omljb24oKSBjb25zdAogewogICAgIGlmIChkLT5pdGVtKQotICAgICAgICByZXR1
cm4gKldlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoZC0+
aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSktPm5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCk7CisgICAgICAgIHJldHVybiAqV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChkLT5pdGVtLT51cmwoKSwgV2ViQ29yZTo6SW50
U2l6ZSgxNiwgMTYpKTsKIAogICAgIHJldHVybiBRSWNvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5jcHAKaW5kZXggNGUwMTgzNmY3Nzg0Yzc5YWEyZmFhMDgxN2RlNzJiZjI1
NDBhYjUzNS4uZWQ0M2ViM2Y4Y2Q0NzI4NjQ4YzM1YzAzNTczNjFkZThlMTI3NTJlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC03MTUsMTIgKzcxNSw4IEBAIHZvaWQg
UVdlYlNldHRpbmdzOjpjbGVhckljb25EYXRhYmFzZSgpCiBRSWNvbiBRV2ViU2V0dGluZ3M6Omlj
b25Gb3JVcmwoY29uc3QgUVVybCYgdXJsKQogewogICAgIFdlYkNvcmU6OmluaXRpYWxpemVXZWJD
b3JlUXQoKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaW1hZ2UgPSBXZWJDb3JlOjppY29uRGF0YWJh
c2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKFdlYkNvcmU6OktVUkwodXJsKS5zdHJpbmco
KSwKKyAgICBRUGl4bWFwKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25v
dXNOYXRpdmVJY29uRm9yUGFnZVVSTChXZWJDb3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7Ci0g
ICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJuIFFQaXhtYXAoKTsKLQotICAgIFFQaXhtYXAq
IGljb24gPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICBpZiAoIWlj
b24pCiAgICAgICAgIHJldHVybiBRUGl4bWFwKCk7CiAK
</data>
<flag name="commit-queue"
          id="147603"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145380</attachid>
            <date>2012-06-01 14:43:04 -0700</date>
            <delta_ts>2012-06-01 14:43:04 -0700</delta_ts>
            <desc>addition to the proposed patch</desc>
            <filename>bug_67582_addition.patch</filename>
            <type>text/plain</type>
            <size>2492</size>
            <attacher name="Misha">mtutunik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKaW5kZXggMTA4
MDRmNy4uYzBjNzA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklj
b25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRh
YmFzZS5jcHAKQEAgLTE5MCw2ICsxOTAsMTQgQEAgSW1hZ2UqIFdlYkljb25EYXRhYmFzZTo6aW1h
Z2VGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6SW4KICAg
ICByZXR1cm4gbV9pY29uRGF0YWJhc2VJbXBsLT5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBh
Z2VVUkwsIGljb25TaXplKTsKIH0KIAorV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgV2ViSWNvbkRh
dGFiYXNlOjpuYXRpdmVJbWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBpY29uU2l6ZSkKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dCB8
fCAhbV9pY29uRGF0YWJhc2VJbXBsIHx8ICFtX2ljb25EYXRhYmFzZUltcGwtPmlzT3BlbigpIHx8
IHBhZ2VVUkwuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2lj
b25EYXRhYmFzZUltcGwtPnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwg
aWNvblNpemUpOworfQorCiBib29sIFdlYkljb25EYXRhYmFzZTo6aXNPcGVuKCkKIHsKICAgICBy
ZXR1cm4gbV9pY29uRGF0YWJhc2VJbXBsICYmIG1faWNvbkRhdGFiYXNlSW1wbC0+aXNPcGVuKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKaW5kZXggN2FlM2Zk
Yy4uNmEwYTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25E
YXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2Uu
aApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogCiAjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiV2ViSWNv
bkRhdGFiYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJhc2VDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KQEAgLTc4LDYgKzc5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZ2V0TG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIFdlYkNvcmU6OkltYWdlKiBpbWFnZUZvclBhZ2VVUkwo
Y29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaWNvblNpemUgPSBXZWJDb3Jl
OjpJbnRTaXplKDMyLCAzMikpOworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUlt
YWdlRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpY29u
U2l6ZSA9IFdlYkNvcmU6OkludFNpemUoMzIsIDMyKSk7CiAgICAgYm9vbCBpc09wZW4oKTsKIAog
ICAgIHZvaWQgcmVtb3ZlQWxsSWNvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCmluZGV4IDUxMzJjNzkuLjU5
MmJiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25E
YXRhYmFzZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50LmNwcApAQCAtODksMTEgKzg5LDggQEAgUUltYWdlIFF0V2ViSWNv
bkRhdGFiYXNlQ2xpZW50OjppY29uSW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBw
YWdlVVJMLAogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ltYWdlTG9jayk7CiAKICAgICBXZWJD
b3JlOjpJbnRTaXplIHNpemUoaWNvblNpemUud2lkdGgoKSwgaWNvblNpemUuaGVpZ2h0KCkpOwot
ICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gaW1hZ2UgPSBtX2ljb25EYXRhYmFzZS0+aW1hZ2VG
b3JQYWdlVVJMKHBhZ2VVUkwsIHNpemUpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVy
biBRSW1hZ2UoKTsKIAotICAgIFFQaXhtYXAqIG5hdGl2ZUltYWdlID0gaW1hZ2UtPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgUVBpeG1hcCogbmF0aXZlSW1hZ2UgPSBtX2ljb25E
YXRhYmFzZS0+bmF0aXZlSW1hZ2VGb3JQYWdlVVJMKHBhZ2VVUkwsIHNpemUpOwogICAgIGlmICgh
bmF0aXZlSW1hZ2UpCiAgICAgICAgIHJldHVybiBRSW1hZ2UoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147876</attachid>
            <date>2012-06-15 12:35:35 -0700</date>
            <delta_ts>2012-06-15 13:01:58 -0700</delta_ts>
            <desc>Merged together and try to fix windows build</desc>
            <filename>bug-67582-20120511204247.patch</filename>
            <type>text/plain</type>
            <size>20277</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNkZTUwMjFhYTVkMTYy
YTJkNmYyYjhkYzgxMmJmMDU3MjNlYmVjZS4uNjVkZDNiNjc3MDY3NWU5YWVlYjFkMjA4Y2UwNGFh
OThmMDM4OWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNS0xMSAgQWxleGVpIEZpbGlw
cG92ICA8YWxleGVpZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHN1cHBvcnQgb2YgY29tYmluZWQgbm9kZXMgYW5kIGVkZ2VzIHNlcmlhbGl6YXRpb24gc2No
ZW1hLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTQwMWVkMDEyOTA5NzQ0ZGJl
NDkwYWQ0NzQzZWM5NTdiODRlYTFjNS4uYjY5Y2UyY2EwZjg5ZGI0YmNkODhkZmEwMzJjNjM5MDRh
ZTQwZmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3Nl
cnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwog
MjAxMi0wNS0xMCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgogCiAgICAgICAgIENh
cmV0IG5vZGUgYm91bmRhcnkgc2hvdWxkIGJlIGFkanVzdGVkIHRvIGFjY291bnQgZm9yIHRoZSB2
aXNpYmxlIHJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2YvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKaW5kZXggMzA0MjkxYTZjNjM2N2ViMjk5NzQwOTBm
YzA4NmVmMjkzMDVhMzRmNS4uYjFlNjAyZTMzZGMxYzJmMzA5MDQ0N2IwNDk0NmU4YzFlN2Y0YWYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3Zlcmlm
aWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4ZXMgd2luZG93cyBidWlsZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKwogMjAxMS0xMi0yMCAgUGF2ZWwgRmVsZG1hbiAg
PHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcHJv
ZHVjaWJsZSBjcmFzaCBhZnRlciBjbG9zaW5nIHdlYiBpbnNwZWN0b3IgYW5kIGJyb3dzZXIgd2lu
ZG93ICAoaUNhYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA4OTg5MzljZmJiMTQwYzQ3ODJhZGJkZDFm
OTgyOTU3MzYwM2I3ZWFiLi5mOWFkMjExYWI4YzQ1MzM0YmNjMDE4N2RmMTk4NzIwOGJkNTI4Yjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDUtMTEgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJp
Zmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmll
dmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAo
ZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5
X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoK
KyAgICAgICAgKGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwog
MjAxMi0wNS0xMSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gSW5wdXQgQXR0cmlidXRlIFBsYWNlaG9sZGVyIFJl
ZlRlc3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmYTY5YmFjOGMyNDI1MjBmNjYwNTcz
MmU2YTY3MDlkZDNlZDliM2NjLi5hYzJmMDIzMmY3ZDhmYjc1YjEzYWM3OThiZTVmOTkyYjdhMGY3
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTEgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNl
LmNwcDoKKyAgICAgICAgKGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0wNS0x
MSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIxMTYyMDUpOiBbR1RLXTogYnVpbGQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoaW4gYXJj
aGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNjg4MWFmNGExN2VhZjZkOGQwOGRhOTNiZGNmYWUwNjA0
MzZmNTNmNi4uN2FiYzVlNmY3YjM2ZmY4OGE0NzdjYzY5OTZlYWU1YTYyZjNlYTA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlzU2Fm
ZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZpY29u
cy4KKworICAgICAgICAqIEFwaS9xd2ViaGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlzdG9y
eUl0ZW06Omljb24pOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAo
UVdlYlNldHRpbmdzOjppY29uRm9yVXJsKToKKwogMjAxMi0wNS0xMCAgR3l1eW91bmcgS2ltICA8
Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0aW9u
cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNmU5N2MwMmYwOWE0NWVkYWZiNDZiZTkwMjZlOWVjOTM5
ZjZhNmE1Zi4uODMzMzczZmNhOWRhMDg4MTBlZDBjOWJhZDgwMTZlYTg2NjRhMjVlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25SZWNvcmQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3Rh
dGVtZW50LmgiCkBAIC0yOTAsNiArMjkxLDE2IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvCiAg
ICAgcmV0dXJuIGljb25SZWNvcmQtPmltYWdlKHNpemUpOwogfQogCitOYXRpdmVJbWFnZVB0ciBJ
Y29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgSW1hZ2UqIGlj
b24gPSBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkxPcmlnaW5hbCwgc2l6ZSk7Cisg
ICAgaWYgKCFpY29uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKTsKK30KKwogdm9pZCBJY29uRGF0YWJhc2U6OnJlYWRJY29uRm9yUGFnZVVSTEZy
b21EaXNrKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKICAgICAvLyBUaGUgZWZmZWN0IG9mIGFz
a2luZyBmb3IgYW4gSWNvbiBmb3IgYSBwYWdlVVJMIGF1dG9tYXRpY2FsbHkgcXVldWVzIGl0IHRv
IGJlIHJlYWQgZnJvbSBkaXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5oCmluZGV4IGU0ZDhjYTczYTRiZTQyYmFhY2FjOWQxMjA4NGYzNTNhYzQ3NjhkYTYuLjUyZTBi
M2YxYjRiZGUxZjgzNGE5MTI3NThkNjkwYmRiNDEwN2Y0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBj
b25zdCBTdHJpbmcmIHBhZ2VVUkwpOwogCiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVh
bCBOYXRpdmVJbWFnZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCBTdHJp
bmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25G
b3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKik7ICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCmluZGV4IDczNGUyZjZhMmE0
NjNmNTBiMWQ4OWYxNmRkMzNmZjUxZDEyZWIwN2YuLjU2Y2IwM2M2N2Y4ZDYyYjBkNDExNzhiODQz
OGMzOTE5Zjg1OTcyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2VCYXNlLmgKQEAgLTI2LDEzICsyNiwxNCBAQAogI2lmbmRlZiBJY29uRGF0YWJhc2VCYXNl
X2gKICNkZWZpbmUgSWNvbkRhdGFiYXNlQmFzZV9oCiAKKyNpbmNsdWRlICJJbWFnZVNvdXJjZS5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7IAorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudExvYWRlcjsKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudDsKQEAgLTE3OCw3ICsxNzks
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZv
ckljb25VUkwoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIElj
b25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYsIERvY3VtZW50TG9hZGVyKikgeyByZXR1cm4gSWNvbkxvYWRObzsgfQogICAgIHZpcnR1
YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3Qg
SW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KLSAgICAKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRy
IHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50
U2l6ZSYpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIEFzeW5jaHJvbm91cyBjYWxscyB3ZSBzaG91
bGQgdXNlIHRvIHJlcGxhY2UgdGhlIGFib3ZlIHdoZW4gc3VwcG9ydGVkLgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c01vZGUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBsb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQ
dHI8SWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDZlZjRlNDQ5MGJjMWRmNTZkOTM5NDdkYzkyZmIy
MDU0MzZlMzdiOTguLjM0OGE5MmRkNTZmOTBjNDM0M2E2NTZhZjEwYmIyYWY1ODMzNWVmMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMTU1LDEz
ICsxMTU1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpkb3dubG9hZChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB7CiAgICAgU3RyaW5nIHVy
bCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwotICAgIEltYWdlKiBpbWcg
PSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6ZSgx
MCwgMTApKTsKLSAgICBpZiAoIWltZyB8fCAhaW1nLT5kYXRhKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaW1nLT5uYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpOworICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCh1cmwsIEludFNpemUoMTAsIDEwKSk7CiAg
ICAgaWYgKCFiaXRtYXApCiAgICAgICAgIHJldHVybjsKKwogICAgIGJpdG1hcC0+bG9ja1BpeGVs
cygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
VVJMRm9yUGFnZVVSTCh1cmwpOwogICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5zZXRG
YXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNoYXIqKWJpdG1h
cC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmlu
ZGV4IDQ4NjNhMDI0NjI3ZTI2MmNkYjgzMWNjZTgxOGViOTA3YWY1YzNkZGQuLjRiY2YzYWU2ZTUx
Mjk1YmJiYTE0ZWYxOWZiNzI5NmU5YmFlMzk3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC0zMyw2
ICszMywxNCBAQAogI2RlZmluZSBXVEZfVVNFX0NGIDEKICNlbmRpZgogCisjaW5jbHVkZSA8UGxh
dGZvcm0uaD4KKworI2lmIFBMQVRGT1JNKFdJTikgJiYgIU9TKFdJTkNFKQorI2lmbmRlZiBXVEZf
VVNFX0NHCisjZGVmaW5lIFdURl9VU0VfQ0cgMQorI2VuZGlmCisjZW5kaWYKKwogLy8gTk9URTog
VGhlc2UgbmVlZCB0byBhcHBlYXIgdXAgdG9wLCBhcyB0aGV5IGRlY2xhcmUgbWFjcm9zCiAvLyB1
c2VkIGluIHRoZSBKUyBhbmQgV1RGIGhlYWRlcnMuCiAjaW5jbHVkZSA8cnVudGltZS9KU0V4cG9y
dE1hY3Jvcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKaW5kZXggMWE0ZTli
NzFmYjc1MDhmNjRjOGQ4ZTA0MjA2MmEwNzRlMDI4YzY1Ny4uMDQzOWM0ODI3M2IwNDBjZjU0YjUx
MzY0NzQwNTdjYTE4MGE0MTM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19oaXN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3Bw
CkBAIC0zMzYsMjkgKzMzNiwyNiBAQCBjYWlyb19zdXJmYWNlX3QqIGV3a19oaXN0b3J5X2l0ZW1f
aWNvbl9zdXJmYWNlX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVX
S19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogCi0gICAg
V2ViQ29yZTo6SW1hZ2UqIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91
c0ljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwot
ICAgIGlmICghaWNvbikgeworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIGljb24gPSBXZWJD
b3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUt
PnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlmICghaWNvbikKICAgICAg
ICAgRVJSKCJpY29uIGlzIE5VTEwuIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KIAotICAg
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1h
Z2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1cm4gbmF0aXZlSW1hZ2UgPyBuYXRpdmVJbWFn
ZS0+c3VyZmFjZSgpIDogMDsKKyAgICByZXR1cm4gaWNvbiA/IGljb24tPnN1cmZhY2UoKSA6IDA7
CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfaGlzdG9yeV9pdGVtX2ljb25fb2JqZWN0X2FkZChjb25z
dCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtLCBFdmFzKiBjYW52YXMpCiB7CiAgICAgRVdLX0hJU1RP
UllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKGNhbnZhcywgMCk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGlj
b24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNv
cmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwogCisgICAgV2ViQ29yZTo6TmF0
aXZlSW1hZ2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0
aXZlSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7
CiAgICAgaWYgKCFpY29uKSB7CiAgICAgICAgIEVSUigiaWNvbiBpcyBOVUxMLiIpOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRp
dmVJbWFnZSA9IGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJu
IG5hdGl2ZUltYWdlID8gZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52
YXMsIG5hdGl2ZUltYWdlLT5zdXJmYWNlKCkpIDogMDsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1
cmZhY2UgPSBpY29uLT5zdXJmYWNlKCk7CisgICAgcmV0dXJuIHN1cmZhY2UgPyBld2tfdXRpbF9p
bWFnZV9mcm9tX2NhaXJvX3N1cmZhY2VfYWRkKGNhbnZhcywgc3VyZmFjZSkgOiAwOwogfQogCiBF
aW5hX0Jvb2wgZXdrX2hpc3RvcnlfaXRlbV9wYWdlX2NhY2hlX2V4aXN0cyhjb25zdCBFd2tfSGlz
dG9yeV9JdGVtKiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19z
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAppbmRl
eCA4NDI5MzBhN2UyOTQyNGEwMWY1ZmI2OWU0OGQ0NzZhNzY4ODI5NDI4Li4yZjU0ZDA2MDQ4YmM2
ZTUxYjQ1NzI3YWIzNTgzYWFkM2Y1NGI3OTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Nl
dHRpbmdzLmNwcApAQCAtMjEzLDE1ICsyMTMsMTEgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfc2V0
dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX3N1cmZhY2VfZ2V0KGNvbnN0IGNoYXIqIHVybCkKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodXJsLCAwKTsKIAogICAgIFdlYkNvcmU6
OktVUkwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmwpKTsK
LSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwg
MTYpKTsKLQotICAgIGlmICghaWNvbikgeworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIGlj
b24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdl
VVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CisgICAgaWYgKCFp
Y29uKQogICAgICAgICBFUlIoIm5vIGljb24gZm9yIHVybCAlcyIsIHVybCk7Ci0gICAgICAgIHJl
dHVybiAwOwotICAgIH0KIAotICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2ZUlt
YWdlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1cm4gbmF0
aXZlSW1hZ2UgPyBuYXRpdmVJbWFnZS0+c3VyZmFjZSgpIDogMDsKKyAgICByZXR1cm4gaWNvbiA/
IGljb24tPnN1cmZhY2UoKSA6IDA7CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfc2V0dGluZ3NfaWNv
bl9kYXRhYmFzZV9pY29uX29iamVjdF9nZXQoY29uc3QgY2hhciogdXJsLCBFdmFzKiBjYW52YXMp
CkBAIC0yMzAsMTUgKzIyNiwxNSBAQCBFdmFzX09iamVjdCogZXdrX3NldHRpbmdzX2ljb25fZGF0
YWJhc2VfaWNvbl9vYmplY3RfZ2V0KGNvbnN0IGNoYXIqIHVybCwgRXZhcyogYwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwogCiAgICAgV2ViQ29yZTo6S1VS
TCBrdXJsKFdlYkNvcmU6OktVUkwoKSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVybCkpOwotICAg
IFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25v
dXNJY29uRm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikp
OworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJh
c2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNv
cmU6OkludFNpemUoMTYsIDE2KSk7CiAKICAgICBpZiAoIWljb24pIHsKICAgICAgICAgRVJSKCJu
byBpY29uIGZvciB1cmwgJXMiLCB1cmwpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICBXZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRpdmVJbWFnZSA9IGljb24tPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJuIG5hdGl2ZUltYWdlID8gZXdrX3V0aWxf
aW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMsIG5hdGl2ZUltYWdlLT5zdXJmYWNl
KCkpIDogMDsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBpY29uLT5zdXJmYWNlKCk7
CisgICAgcmV0dXJuIHN1cmZhY2UgPyBld2tfdXRpbF9pbWFnZV9mcm9tX2NhaXJvX3N1cmZhY2Vf
YWRkKGNhbnZhcywgc3VyZmFjZSkgOiAwOwogfQogCiB2b2lkIGV3a19zZXR0aW5nc19vYmplY3Rf
Y2FjaGVfY2FwYWNpdHlfc2V0KHVuc2lnbmVkIG1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQgbWF4
RGVhZENhcGFjaXR5LCB1bnNpZ25lZCB0b3RhbENhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcAppbmRleCBhMWZkMzdhMWUz
MWRlZTg4MmZmNGNiOGNmNmM2ZjMwOTRiMWM1NjFkLi5hOWMzZTY1NTcxOWNmZGVlYzM3Njc0N2Uz
MmFmMmI3YjJlZDQ1YzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZmF2aWNvbmRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZmF2aWNvbmRhdGFiYXNlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkRhdGFi
YXNlRGV0YWlscy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJHZGtDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIklj
b25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVudC5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCkBAIC0zOTQsMTYgKzM5NSwxOCBAQCBzdGF0aWMgR2RrUGl4YnVmKiBnZXRJY29u
UGl4YnVmU3luY2hyb25vdXNseShXZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlLCBjbwog
CiAgICAgLy8gVGhlIGV4YWN0IHNpemUgd2UgcGFzcyBpcyBpcnJlbGV2YW50IHRvIHRoZSBpY29u
RGF0YWJhc2UgY29kZS4KICAgICAvLyBXZSBtdXN0IHBhc3Mgc29tZXRoaW5nIGdyZWF0ZXIgdGhh
biAweDAgdG8gZ2V0IGEgcGl4YnVmLgotICAgIEltYWdlKiBpY29uID0gaWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChwYWdlVVJMLCAhaWNvblNpemUuaXNaZXJvKCkgPyBp
Y29uU2l6ZSA6IEludFNpemUoMSwgMSkpOworICAgIE5hdGl2ZUltYWdlUHRyIGljb24gPSBpY29u
RGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKHBhZ2VVUkwsICFpY29u
U2l6ZS5pc1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAxKSk7CiAgICAgaWYgKCFpY29u
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBwaXhidWYgPSBh
ZG9wdEdSZWYoaWNvbi0+Z2V0R2RrUGl4YnVmKCkpOworICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBw
aXhidWYgPSBhZG9wdEdSZWYoY2Fpcm9JbWFnZVN1cmZhY2VUb0dka1BpeGJ1ZihpY29uLT5zdXJm
YWNlKCkpKTsKICAgICBpZiAoIXBpeGJ1ZikKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBB
IHNpemUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBzaXplLgotICAgIGlm
ICghaWNvblNpemUuaXNaZXJvKCkgJiYgKGljb24tPndpZHRoKCkgIT0gaWNvblNpemUud2lkdGgo
KSB8fCBpY29uLT5oZWlnaHQoKSAhPSBpY29uU2l6ZS5oZWlnaHQoKSkpCisgICAgaW50IHBpeGJ1
ZldpZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4YnVmLmdldCgpKTsKKyAgICBpbnQgcGl4
YnVmSGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KHBpeGJ1Zi5nZXQoKSk7CisgICAgaWYg
KCFpY29uU2l6ZS5pc1plcm8oKSAmJiAocGl4YnVmV2lkdGggIT0gaWNvblNpemUud2lkdGgoKSB8
fCBwaXhidWZIZWlnaHQgIT0gaWNvblNpemUuaGVpZ2h0KCkpKQogICAgICAgICBwaXhidWYgPSBn
ZGtfcGl4YnVmX3NjYWxlX3NpbXBsZShwaXhidWYuZ2V0KCksIGljb25TaXplLndpZHRoKCksIGlj
b25TaXplLmhlaWdodCgpLCBHREtfSU5URVJQX0JJTElORUFSKTsKICAgICByZXR1cm4gcGl4YnVm
LmxlYWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcAppbmRleCBmYzVi
ZGQ1ZmNlYWQyNWM1N2YwZDI2NGJjNmYxOWMwZGMyZTJkZmMwLi4xNWQ0YWQ4YWZmNmQ1ZGFlNDhj
MGQ5NzljMTVjYTA4ZmVkYjJhOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2ViaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgUURhdGVUaW1lIFFXZWJIaXN0b3J5SXRlbTo6bGFzdFZpc2l0
ZWQoKSBjb25zdAogUUljb24gUVdlYkhpc3RvcnlJdGVtOjppY29uKCkgY29uc3QKIHsKICAgICBp
ZiAoZC0+aXRlbSkKLSAgICAgICAgcmV0dXJuICpXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5j
aHJvbm91c0ljb25Gb3JQYWdlVVJMKGQtPml0ZW0tPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2
LCAxNikpLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgICAgICByZXR1cm4gKldl
YkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoZC0+
aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CiAKICAgICByZXR1cm4gUUlj
b24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IDRlMDE4MzZm
Nzc4NGM3OWFhMmZhYTA4MTdkZTcyYmYyNTQwYWI1MzUuLmVkNDNlYjNmOGNkNDcyODY0OGMzNWMw
MzU3MzYxZGU4ZTEyNzUyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJz
ZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApA
QCAtNzE1LDEyICs3MTUsOCBAQCB2b2lkIFFXZWJTZXR0aW5nczo6Y2xlYXJJY29uRGF0YWJhc2Uo
KQogUUljb24gUVdlYlNldHRpbmdzOjppY29uRm9yVXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAg
ICBXZWJDb3JlOjppbml0aWFsaXplV2ViQ29yZVF0KCk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGlt
YWdlID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChX
ZWJDb3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCisgICAgUVBpeG1hcCogaWNvbiA9IFdlYkNvcmU6
Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoV2ViQ29yZTo6
S1VSTCh1cmwpLnN0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJD
b3JlOjpJbnRTaXplKDE2LCAxNikpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBR
UGl4bWFwKCk7Ci0KLSAgICBRUGl4bWFwKiBpY29uID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCk7CiAgICAgaWYgKCFpY29uKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4IDEw
ODA0ZjcuLmMwYzcwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJ
Y29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0
YWJhc2UuY3BwCkBAIC0xOTAsNiArMTkwLDE0IEBAIEltYWdlKiBXZWJJY29uRGF0YWJhc2U6Omlt
YWdlRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OkluCiAg
ICAgcmV0dXJuIG1faWNvbkRhdGFiYXNlSW1wbC0+c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChw
YWdlVVJMLCBpY29uU2l6ZSk7CiB9CiAKK1dlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIFdlYkljb25E
YXRhYmFzZTo6bmF0aXZlSW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgaWNvblNpemUpCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQg
fHwgIW1faWNvbkRhdGFiYXNlSW1wbCB8fCAhbV9pY29uRGF0YWJhc2VJbXBsLT5pc09wZW4oKSB8
fCBwYWdlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9p
Y29uRGF0YWJhc2VJbXBsLT5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKHBhZ2VVUkws
IGljb25TaXplKTsKK30KKwogYm9vbCBXZWJJY29uRGF0YWJhc2U6OmlzT3BlbigpCiB7CiAgICAg
cmV0dXJuIG1faWNvbkRhdGFiYXNlSW1wbCAmJiBtX2ljb25EYXRhYmFzZUltcGwtPmlzT3Blbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCmluZGV4IDdhZTNm
ZGMuLjZhMGEzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29u
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKIAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogI2luY2x1ZGUgIldlYklj
b25EYXRhYmFzZUNsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSWNvbkRhdGFiYXNlQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CkBAIC03OCw2ICs3OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICBXZWJDb3JlOjpJbWFnZSogaW1hZ2VGb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGljb25TaXplID0gV2ViQ29y
ZTo6SW50U2l6ZSgzMiwgMzIpKTsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBuYXRpdmVJ
bWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaWNv
blNpemUgPSBXZWJDb3JlOjpJbnRTaXplKDMyLCAzMikpOwogICAgIGJvb2wgaXNPcGVuKCk7CiAK
ICAgICB2b2lkIHJlbW92ZUFsbEljb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRleCA1MTMyYzc5Li41
OTJiYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29u
RGF0YWJhc2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
Ykljb25EYXRhYmFzZUNsaWVudC5jcHAKQEAgLTg5LDExICs4OSw4IEBAIFFJbWFnZSBRdFdlYklj
b25EYXRhYmFzZUNsaWVudDo6aWNvbkltYWdlRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYg
cGFnZVVSTCwKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbWFnZUxvY2spOwogCiAgICAgV2Vi
Q29yZTo6SW50U2l6ZSBzaXplKGljb25TaXplLndpZHRoKCksIGljb25TaXplLmhlaWdodCgpKTsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGltYWdlID0gbV9pY29uRGF0YWJhc2UtPmltYWdl
Rm9yUGFnZVVSTChwYWdlVVJMLCBzaXplKTsKLSAgICBpZiAoIWltYWdlKQotICAgICAgICByZXR1
cm4gUUltYWdlKCk7CiAKLSAgICBRUGl4bWFwKiBuYXRpdmVJbWFnZSA9IGltYWdlLT5uYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgIFFQaXhtYXAqIG5hdGl2ZUltYWdlID0gbV9pY29u
RGF0YWJhc2UtPm5hdGl2ZUltYWdlRm9yUGFnZVVSTChwYWdlVVJMLCBzaXplKTsKICAgICBpZiAo
IW5hdGl2ZUltYWdlKQogICAgICAgICByZXR1cm4gUUltYWdlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147883</attachid>
            <date>2012-06-15 13:01:58 -0700</date>
            <delta_ts>2012-06-18 07:37:48 -0700</delta_ts>
            <desc>Try again.</desc>
            <filename>bug-67582-20120511204247.patch</filename>
            <type>text/plain</type>
            <size>20281</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNkZTUwMjFhYTVkMTYy
YTJkNmYyYjhkYzgxMmJmMDU3MjNlYmVjZS4uNjVkZDNiNjc3MDY3NWU5YWVlYjFkMjA4Y2UwNGFh
OThmMDM4OWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNS0xMSAgQWxleGVpIEZpbGlw
cG92ICA8YWxleGVpZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHN1cHBvcnQgb2YgY29tYmluZWQgbm9kZXMgYW5kIGVkZ2VzIHNlcmlhbGl6YXRpb24gc2No
ZW1hLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTQwMWVkMDEyOTA5NzQ0ZGJl
NDkwYWQ0NzQzZWM5NTdiODRlYTFjNS4uYjY5Y2UyY2EwZjg5ZGI0YmNkODhkZmEwMzJjNjM5MDRh
ZTQwZmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3Nl
cnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwog
MjAxMi0wNS0xMCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgogCiAgICAgICAgIENh
cmV0IG5vZGUgYm91bmRhcnkgc2hvdWxkIGJlIGFkanVzdGVkIHRvIGFjY291bnQgZm9yIHRoZSB2
aXNpYmxlIHJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2YvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKaW5kZXggMzA0MjkxYTZjNjM2N2ViMjk5NzQwOTBm
YzA4NmVmMjkzMDVhMzRmNS4uYjFlNjAyZTMzZGMxYzJmMzA5MDQ0N2IwNDk0NmU4YzFlN2Y0YWYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3Zlcmlm
aWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4ZXMgd2luZG93cyBidWlsZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKwogMjAxMS0xMi0yMCAgUGF2ZWwgRmVsZG1hbiAg
PHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcHJv
ZHVjaWJsZSBjcmFzaCBhZnRlciBjbG9zaW5nIHdlYiBpbnNwZWN0b3IgYW5kIGJyb3dzZXIgd2lu
ZG93ICAoaUNhYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA4OTg5MzljZmJiMTQwYzQ3ODJhZGJkZDFm
OTgyOTU3MzYwM2I3ZWFiLi5mOWFkMjExYWI4YzQ1MzM0YmNjMDE4N2RmMTk4NzIwOGJkNTI4Yjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDUtMTEgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJp
Zmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmll
dmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAo
ZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5
X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoK
KyAgICAgICAgKGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwog
MjAxMi0wNS0xMSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gSW5wdXQgQXR0cmlidXRlIFBsYWNlaG9sZGVyIFJl
ZlRlc3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmYTY5YmFjOGMyNDI1MjBmNjYwNTcz
MmU2YTY3MDlkZDNlZDliM2NjLi5hYzJmMDIzMmY3ZDhmYjc1YjEzYWM3OThiZTVmOTkyYjdhMGY3
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTEgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNl
LmNwcDoKKyAgICAgICAgKGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0wNS0x
MSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIxMTYyMDUpOiBbR1RLXTogYnVpbGQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoaW4gYXJj
aGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNjg4MWFmNGExN2VhZjZkOGQwOGRhOTNiZGNmYWUwNjA0
MzZmNTNmNi4uN2FiYzVlNmY3YjM2ZmY4OGE0NzdjYzY5OTZlYWU1YTYyZjNlYTA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlzU2Fm
ZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZpY29u
cy4KKworICAgICAgICAqIEFwaS9xd2ViaGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlzdG9y
eUl0ZW06Omljb24pOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAo
UVdlYlNldHRpbmdzOjppY29uRm9yVXJsKToKKwogMjAxMi0wNS0xMCAgR3l1eW91bmcgS2ltICA8
Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0aW9u
cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNmU5N2MwMmYwOWE0NWVkYWZiNDZiZTkwMjZlOWVjOTM5
ZjZhNmE1Zi4uODMzMzczZmNhOWRhMDg4MTBlZDBjOWJhZDgwMTZlYTg2NjRhMjVlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25SZWNvcmQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3Rh
dGVtZW50LmgiCkBAIC0yOTAsNiArMjkxLDE2IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvCiAg
ICAgcmV0dXJuIGljb25SZWNvcmQtPmltYWdlKHNpemUpOwogfQogCitOYXRpdmVJbWFnZVB0ciBJ
Y29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgSW1hZ2UqIGlj
b24gPSBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkxPcmlnaW5hbCwgc2l6ZSk7Cisg
ICAgaWYgKCFpY29uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKTsKK30KKwogdm9pZCBJY29uRGF0YWJhc2U6OnJlYWRJY29uRm9yUGFnZVVSTEZy
b21EaXNrKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKICAgICAvLyBUaGUgZWZmZWN0IG9mIGFz
a2luZyBmb3IgYW4gSWNvbiBmb3IgYSBwYWdlVVJMIGF1dG9tYXRpY2FsbHkgcXVldWVzIGl0IHRv
IGJlIHJlYWQgZnJvbSBkaXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5oCmluZGV4IGU0ZDhjYTczYTRiZTQyYmFhY2FjOWQxMjA4NGYzNTNhYzQ3NjhkYTYuLjUyZTBi
M2YxYjRiZGUxZjgzNGE5MTI3NThkNjkwYmRiNDEwN2Y0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBj
b25zdCBTdHJpbmcmIHBhZ2VVUkwpOwogCiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVh
bCBOYXRpdmVJbWFnZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCBTdHJp
bmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25G
b3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKik7ICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCmluZGV4IDczNGUyZjZhMmE0
NjNmNTBiMWQ4OWYxNmRkMzNmZjUxZDEyZWIwN2YuLjU2Y2IwM2M2N2Y4ZDYyYjBkNDExNzhiODQz
OGMzOTE5Zjg1OTcyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2VCYXNlLmgKQEAgLTI2LDEzICsyNiwxNCBAQAogI2lmbmRlZiBJY29uRGF0YWJhc2VCYXNl
X2gKICNkZWZpbmUgSWNvbkRhdGFiYXNlQmFzZV9oCiAKKyNpbmNsdWRlICJJbWFnZVNvdXJjZS5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7IAorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudExvYWRlcjsKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudDsKQEAgLTE3OCw3ICsxNzks
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZv
ckljb25VUkwoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIElj
b25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYsIERvY3VtZW50TG9hZGVyKikgeyByZXR1cm4gSWNvbkxvYWRObzsgfQogICAgIHZpcnR1
YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3Qg
SW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KLSAgICAKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRy
IHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50
U2l6ZSYpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIEFzeW5jaHJvbm91cyBjYWxscyB3ZSBzaG91
bGQgdXNlIHRvIHJlcGxhY2UgdGhlIGFib3ZlIHdoZW4gc3VwcG9ydGVkLgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c01vZGUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBsb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQ
dHI8SWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDZlZjRlNDQ5MGJjMWRmNTZkOTM5NDdkYzkyZmIy
MDU0MzZlMzdiOTguLjM0OGE5MmRkNTZmOTBjNDM0M2E2NTZhZjEwYmIyYWY1ODMzNWVmMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMTU1LDEz
ICsxMTU1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpkb3dubG9hZChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB7CiAgICAgU3RyaW5nIHVy
bCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwotICAgIEltYWdlKiBpbWcg
PSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6ZSgx
MCwgMTApKTsKLSAgICBpZiAoIWltZyB8fCAhaW1nLT5kYXRhKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaW1nLT5uYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpOworICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCh1cmwsIEludFNpemUoMTAsIDEwKSk7CiAg
ICAgaWYgKCFiaXRtYXApCiAgICAgICAgIHJldHVybjsKKwogICAgIGJpdG1hcC0+bG9ja1BpeGVs
cygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
VVJMRm9yUGFnZVVSTCh1cmwpOwogICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5zZXRG
YXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNoYXIqKWJpdG1h
cC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmlu
ZGV4IDQ4NjNhMDI0NjI3ZTI2MmNkYjgzMWNjZTgxOGViOTA3YWY1YzNkZGQuLjRiY2YzYWU2ZTUx
Mjk1YmJiYTE0ZWYxOWZiNzI5NmU5YmFlMzk3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC0zMyw2
ICszMywxNCBAQAogI2RlZmluZSBXVEZfVVNFX0NGIDEKICNlbmRpZgogCisjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CisKKyNpZiBQTEFURk9STShXSU4pICYmICFPUyhXSU5DRSkKKyNpZm5kZWYg
V1RGX1VTRV9DRworI2RlZmluZSBXVEZfVVNFX0NHIDEKKyNlbmRpZgorI2VuZGlmCisKIC8vIE5P
VEU6IFRoZXNlIG5lZWQgdG8gYXBwZWFyIHVwIHRvcCwgYXMgdGhleSBkZWNsYXJlIG1hY3Jvcwog
Ly8gdXNlZCBpbiB0aGUgSlMgYW5kIFdURiBoZWFkZXJzLgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNF
eHBvcnRNYWNyb3MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlz
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IDFh
NGU5YjcxZmI3NTA4ZjY0YzhkOGUwNDIwNjJhMDc0ZTAyOGM2NTcuLjA0MzljNDgyNzNiMDQwY2Y1
NGI1MTM2NDc0MDU3Y2ExODBhNDEzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5
LmNwcApAQCAtMzM2LDI5ICszMzYsMjYgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfaGlzdG9yeV9p
dGVtX2ljb25fc3VyZmFjZV9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSkKIHsKICAg
ICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVtLCBjb3JlLCAwKTsKIAot
ICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hy
b25vdXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYp
KTsKLSAgICBpZiAoIWljb24pIHsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpY29uID0g
V2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChj
b3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKKyAgICBpZiAoIWljb24pCiAg
ICAgICAgIEVSUigiaWNvbiBpcyBOVUxMLiIpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAK
LSAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRpdmVJbWFnZSA9IGljb24tPm5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJuIG5hdGl2ZUltYWdlID8gbmF0aXZl
SW1hZ2UtPnN1cmZhY2UoKSA6IDA7CisgICAgcmV0dXJuIGljb24gPyBpY29uLT5zdXJmYWNlKCkg
OiAwOwogfQogCiBFdmFzX09iamVjdCogZXdrX2hpc3RvcnlfaXRlbV9pY29uX29iamVjdF9hZGQo
Y29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSwgRXZhcyogY2FudmFzKQogewogICAgIEVXS19I
SVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAgIFdlYkNvcmU6OkltYWdl
KiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVS
TChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKIAorICAgIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91
c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAx
NikpOwogICAgIGlmICghaWNvbikgewogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VDYWlybyog
bmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAgIHJl
dHVybiBuYXRpdmVJbWFnZSA/IGV3a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQo
Y2FudmFzLCBuYXRpdmVJbWFnZS0+c3VyZmFjZSgpKSA6IDA7CisgICAgY2Fpcm9fc3VyZmFjZV90
KiBzdXJmYWNlID0gaWNvbi0+c3VyZmFjZSgpOworICAgIHJldHVybiBzdXJmYWNlID8gZXdrX3V0
aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMsIHN1cmZhY2UpIDogMDsKIH0K
IAogRWluYV9Cb29sIGV3a19oaXN0b3J5X2l0ZW1fcGFnZV9jYWNoZV9leGlzdHMoY29uc3QgRXdr
X0hpc3RvcnlfSXRlbSogaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfc2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAK
aW5kZXggODQyOTMwYTdlMjk0MjRhMDFmNWZiNjllNDhkNDc2YTc2ODgyOTQyOC4uMmY1NGQwNjA0
OGJjNmU1MWI0NTcyN2FiMzU4M2FhZDNmNTRiNzk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19zZXR0aW5ncy5jcHAKQEAgLTIxMywxNSArMjEzLDExIEBAIGNhaXJvX3N1cmZhY2VfdCogZXdr
X3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9zdXJmYWNlX2dldChjb25zdCBjaGFyKiB1cmwp
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHVybCwgMCk7CiAKICAgICBXZWJD
b3JlOjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJs
KSk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5z
eW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUo
MTYsIDE2KSk7Ci0KLSAgICBpZiAoIWljb24pIHsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0
ciBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9y
UGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlm
ICghaWNvbikKICAgICAgICAgRVJSKCJubyBpY29uIGZvciB1cmwgJXMiLCB1cmwpOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9CiAKLSAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRp
dmVJbWFnZSA9IGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJu
IG5hdGl2ZUltYWdlID8gbmF0aXZlSW1hZ2UtPnN1cmZhY2UoKSA6IDA7CisgICAgcmV0dXJuIGlj
b24gPyBpY29uLT5zdXJmYWNlKCkgOiAwOwogfQogCiBFdmFzX09iamVjdCogZXdrX3NldHRpbmdz
X2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfZ2V0KGNvbnN0IGNoYXIqIHVybCwgRXZhcyogY2Fu
dmFzKQpAQCAtMjMwLDE1ICsyMjYsMTUgQEAgRXZhc19PYmplY3QqIGV3a19zZXR0aW5nc19pY29u
X2RhdGFiYXNlX2ljb25fb2JqZWN0X2dldChjb25zdCBjaGFyKiB1cmwsIEV2YXMqIGMKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FudmFzLCAwKTsKIAogICAgIFdlYkNvcmU6
OktVUkwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmwpKTsK
LSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwg
MTYpKTsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpY29uID0gV2ViQ29yZTo6aWNvbkRh
dGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBX
ZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwogCiAgICAgaWYgKCFpY29uKSB7CiAgICAgICAgIEVS
Uigibm8gaWNvbiBmb3IgdXJsICVzIiwgdXJsKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0gICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAgIHJldHVybiBuYXRpdmVJbWFnZSA/IGV3a191
dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBuYXRpdmVJbWFnZS0+c3Vy
ZmFjZSgpKSA6IDA7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlID0gaWNvbi0+c3VyZmFj
ZSgpOworICAgIHJldHVybiBzdXJmYWNlID8gZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJm
YWNlX2FkZChjYW52YXMsIHN1cmZhY2UpIDogMDsKIH0KIAogdm9pZCBld2tfc2V0dGluZ3Nfb2Jq
ZWN0X2NhY2hlX2NhcGFjaXR5X3NldCh1bnNpZ25lZCBtaW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVk
IG1heERlYWRDYXBhY2l0eSwgdW5zaWduZWQgdG90YWxDYXBhY2l0eSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKaW5kZXggYTFmZDM3
YTFlMzFkZWU4ODJmZjRjYjhjZjZjNmYzMDk0YjFjNTYxZC4uYTljM2U2NTU3MTljZmRlZWMzNzY3
NDdlMzJhZjJiN2IyZWQ0NWMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJE
YXRhYmFzZURldGFpbHMuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRl
ICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiR2RrQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2VDbGllbnQuaCIKICNpbmNs
dWRlICJJbWFnZS5oIgpAQCAtMzk0LDE2ICszOTUsMTggQEAgc3RhdGljIEdka1BpeGJ1ZiogZ2V0
SWNvblBpeGJ1ZlN5bmNocm9ub3VzbHkoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwg
Y28KIAogICAgIC8vIFRoZSBleGFjdCBzaXplIHdlIHBhc3MgaXMgaXJyZWxldmFudCB0byB0aGUg
aWNvbkRhdGFiYXNlIGNvZGUuCiAgICAgLy8gV2UgbXVzdCBwYXNzIHNvbWV0aGluZyBncmVhdGVy
IHRoYW4gMHgwIHRvIGdldCBhIHBpeGJ1Zi4KLSAgICBJbWFnZSogaWNvbiA9IGljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgIWljb25TaXplLmlzWmVybygp
ID8gaWNvblNpemUgOiBJbnRTaXplKDEsIDEpKTsKKyAgICBOYXRpdmVJbWFnZVB0ciBpY29uID0g
aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChwYWdlVVJMLCAh
aWNvblNpemUuaXNaZXJvKCkgPyBpY29uU2l6ZSA6IEludFNpemUoMSwgMSkpOwogICAgIGlmICgh
aWNvbikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVm
ID0gYWRvcHRHUmVmKGljb24tPmdldEdka1BpeGJ1ZigpKTsKKyAgICBHUmVmUHRyPEdka1BpeGJ1
Zj4gcGl4YnVmID0gYWRvcHRHUmVmKGNhaXJvSW1hZ2VTdXJmYWNlVG9HZGtQaXhidWYoaWNvbi0+
c3VyZmFjZSgpKSk7CiAgICAgaWYgKCFwaXhidWYpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
Ly8gQSBzaXplIG9mICgwLCAwKSBtZWFucyB0aGUgbWF4aW11bSBhdmFpbGFibGUgc2l6ZS4KLSAg
ICBpZiAoIWljb25TaXplLmlzWmVybygpICYmIChpY29uLT53aWR0aCgpICE9IGljb25TaXplLndp
ZHRoKCkgfHwgaWNvbi0+aGVpZ2h0KCkgIT0gaWNvblNpemUuaGVpZ2h0KCkpKQorICAgIGludCBw
aXhidWZXaWR0aCA9IGdka19waXhidWZfZ2V0X3dpZHRoKHBpeGJ1Zi5nZXQoKSk7CisgICAgaW50
IHBpeGJ1ZkhlaWdodCA9IGdka19waXhidWZfZ2V0X2hlaWdodChwaXhidWYuZ2V0KCkpOworICAg
IGlmICghaWNvblNpemUuaXNaZXJvKCkgJiYgKHBpeGJ1ZldpZHRoICE9IGljb25TaXplLndpZHRo
KCkgfHwgcGl4YnVmSGVpZ2h0ICE9IGljb25TaXplLmhlaWdodCgpKSkKICAgICAgICAgcGl4YnVm
ID0gZ2RrX3BpeGJ1Zl9zY2FsZV9zaW1wbGUocGl4YnVmLmdldCgpLCBpY29uU2l6ZS53aWR0aCgp
LCBpY29uU2l6ZS5oZWlnaHQoKSwgR0RLX0lOVEVSUF9CSUxJTkVBUik7CiAgICAgcmV0dXJuIHBp
eGJ1Zi5sZWFrUmVmKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
aGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5jcHAKaW5kZXgg
ZmM1YmRkNWZjZWFkMjVjNTdmMGQyNjRiYzZmMTljMGRjMmUyZGZjMC4uMTVkNGFkOGFmZjZkNWRh
ZTQ4YzBkOTc5YzE1Y2EwOGZlZGIyYTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9B
cGkvcXdlYmhpc3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5
LmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIFFEYXRlVGltZSBRV2ViSGlzdG9yeUl0ZW06Omxhc3RW
aXNpdGVkKCkgY29uc3QKIFFJY29uIFFXZWJIaXN0b3J5SXRlbTo6aWNvbigpIGNvbnN0CiB7CiAg
ICAgaWYgKGQtPml0ZW0pCi0gICAgICAgIHJldHVybiAqV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChkLT5pdGVtLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6
ZSgxNiwgMTYpKS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICAgICAgcmV0dXJu
ICpXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJM
KGQtPml0ZW0tPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwogCiAgICAgcmV0dXJu
IFFJY29uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCA0ZTAx
ODM2Zjc3ODRjNzlhYTJmYWEwODE3ZGU3MmJmMjU0MGFiNTM1Li5lZDQzZWIzZjhjZDQ3Mjg2NDhj
MzVjMDM1NzM2MWRlOGUxMjc1MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKQEAgLTcxNSwxMiArNzE1LDggQEAgdm9pZCBRV2ViU2V0dGluZ3M6OmNsZWFySWNvbkRhdGFi
YXNlKCkKIFFJY29uIFFXZWJTZXR0aW5nczo6aWNvbkZvclVybChjb25zdCBRVXJsJiB1cmwpCiB7
CiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVdlYkNvcmVRdCgpOwotICAgIFdlYkNvcmU6OkltYWdl
KiBpbWFnZSA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwoV2ViQ29yZTo6S1VSTCh1cmwpLnN0cmluZygpLAorICAgIFFQaXhtYXAqIGljb24gPSBXZWJD
b3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKFdlYkNv
cmU6OktVUkwodXJsKS5zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBpZiAoIWltYWdlKQotICAgICAgICByZXR1
cm4gUVBpeG1hcCgpOwotCi0gICAgUVBpeG1hcCogaWNvbiA9IGltYWdlLT5uYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpOwogICAgIGlmICghaWNvbikKICAgICAgICAgcmV0dXJuIFFQaXhtYXAo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAppbmRl
eCAxMDgwNGY3Li5jMGM3MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNv
bkRhdGFiYXNlLmNwcApAQCAtMTkwLDYgKzE5MCwxNCBAQCBJbWFnZSogV2ViSWNvbkRhdGFiYXNl
OjppbWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpJ
bgogICAgIHJldHVybiBtX2ljb25EYXRhYmFzZUltcGwtPnN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwocGFnZVVSTCwgaWNvblNpemUpOwogfQogCitXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBXZWJJ
Y29uRGF0YWJhc2U6Om5hdGl2ZUltYWdlRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkws
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGljb25TaXplKQoreworICAgIGlmICghbV93ZWJDb250
ZXh0IHx8ICFtX2ljb25EYXRhYmFzZUltcGwgfHwgIW1faWNvbkRhdGFiYXNlSW1wbC0+aXNPcGVu
KCkgfHwgcGFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJu
IG1faWNvbkRhdGFiYXNlSW1wbC0+c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChwYWdl
VVJMLCBpY29uU2l6ZSk7Cit9CisKIGJvb2wgV2ViSWNvbkRhdGFiYXNlOjppc09wZW4oKQogewog
ICAgIHJldHVybiBtX2ljb25EYXRhYmFzZUltcGwgJiYgbV9pY29uRGF0YWJhc2VJbXBsLT5pc09w
ZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAppbmRleCA3
YWUzZmRjLi42YTBhMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRh
YmFzZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKICNpbmNsdWRlICJX
ZWJJY29uRGF0YWJhc2VDbGllbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZUNs
aWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgpAQCAtNzgsNiArNzksNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAgICAgV2ViQ29yZTo6SW1hZ2UqIGltYWdlRm9yUGFn
ZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpY29uU2l6ZSA9IFdl
YkNvcmU6OkludFNpemUoMzIsIDMyKSk7CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0
aXZlSW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGljb25TaXplID0gV2ViQ29yZTo6SW50U2l6ZSgzMiwgMzIpKTsKICAgICBib29sIGlzT3Blbigp
OwogCiAgICAgdm9pZCByZW1vdmVBbGxJY29ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAKaW5kZXggNTEzMmM3
OS4uNTkyYmIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCkBAIC04OSwxMSArODksOCBAQCBRSW1hZ2UgUXRX
ZWJJY29uRGF0YWJhc2VDbGllbnQ6Omljb25JbWFnZUZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJp
bmcmIHBhZ2VVUkwsCiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1hZ2VMb2NrKTsKIAogICAg
IFdlYkNvcmU6OkludFNpemUgc2l6ZShpY29uU2l6ZS53aWR0aCgpLCBpY29uU2l6ZS5oZWlnaHQo
KSk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBpbWFnZSA9IG1faWNvbkRhdGFiYXNlLT5p
bWFnZUZvclBhZ2VVUkwocGFnZVVSTCwgc2l6ZSk7Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAg
cmV0dXJuIFFJbWFnZSgpOwogCi0gICAgUVBpeG1hcCogbmF0aXZlSW1hZ2UgPSBpbWFnZS0+bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICBRUGl4bWFwKiBuYXRpdmVJbWFnZSA9IG1f
aWNvbkRhdGFiYXNlLT5uYXRpdmVJbWFnZUZvclBhZ2VVUkwocGFnZVVSTCwgc2l6ZSk7CiAgICAg
aWYgKCFuYXRpdmVJbWFnZSkKICAgICAgICAgcmV0dXJuIFFJbWFnZSgpOwogCg==
</data>
<flag name="commit-queue"
          id="155473"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148097</attachid>
            <date>2012-06-18 07:37:48 -0700</date>
            <delta_ts>2012-06-18 08:42:19 -0700</delta_ts>
            <desc>Try fixing the build error (also removed change in webkit/cf)</desc>
            <filename>bug-67582-20120511204247.patch</filename>
            <type>text/plain</type>
            <size>18921</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNkZTUwMjFhYTVkMTYy
YTJkNmYyYjhkYzgxMmJmMDU3MjNlYmVjZS4uNjVkZDNiNjc3MDY3NWU5YWVlYjFkMjA4Y2UwNGFh
OThmMDM4OWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNS0xMSAgQWxleGVpIEZpbGlw
cG92ICA8YWxleGVpZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHN1cHBvcnQgb2YgY29tYmluZWQgbm9kZXMgYW5kIGVkZ2VzIHNlcmlhbGl6YXRpb24gc2No
ZW1hLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTQwMWVkMDEyOTA5NzQ0ZGJl
NDkwYWQ0NzQzZWM5NTdiODRlYTFjNS4uYjY5Y2UyY2EwZjg5ZGI0YmNkODhkZmEwMzJjNjM5MDRh
ZTQwZmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3Nl
cnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwog
MjAxMi0wNS0xMCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgogCiAgICAgICAgIENh
cmV0IG5vZGUgYm91bmRhcnkgc2hvdWxkIGJlIGFkanVzdGVkIHRvIGFjY291bnQgZm9yIHRoZSB2
aXNpYmxlIHJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA4OTg5MzljZmJiMTQwYzQ3ODJhZGJk
ZDFmOTgyOTU3MzYwM2I3ZWFiLi5mOWFkMjExYWI4YzQ1MzM0YmNjMDE4N2RmMTk4NzIwOGJkNTI4
YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDUtMTEgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAg
ICAoZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0
b3J5X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNw
cDoKKyAgICAgICAgKGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToK
KwogMjAxMi0wNS0xMSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50
ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gSW5wdXQgQXR0cmlidXRlIFBsYWNlaG9sZGVy
IFJlZlRlc3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmYTY5YmFjOGMyNDI1MjBmNjYw
NTczMmU2YTY3MDlkZDNlZDliM2NjLi5hYzJmMDIzMmY3ZDhmYjc1YjEzYWM3OThiZTVmOTkyYjdh
MGY3MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTEgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGlu
ZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTog
bV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8g
cmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFi
YXNlLmNwcDoKKyAgICAgICAgKGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0w
NS0xMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIxMTYyMDUpOiBbR1RLXTogYnVpbGQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoaW4g
YXJjaGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNjg4MWFmNGExN2VhZjZkOGQwOGRhOTNiZGNmYWUw
NjA0MzZmNTNmNi4uN2FiYzVlNmY3YjM2ZmY4OGE0NzdjYzY5OTZlYWU1YTYyZjNlYTA0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZpbGxhciBT
ZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlz
U2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZp
Y29ucy4KKworICAgICAgICAqIEFwaS9xd2ViaGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlz
dG9yeUl0ZW06Omljb24pOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAg
ICAoUVdlYlNldHRpbmdzOjppY29uRm9yVXJsKToKKwogMjAxMi0wNS0xMCAgR3l1eW91bmcgS2lt
ICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0
aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNmU5N2MwMmYwOWE0NWVkYWZiNDZiZTkwMjZlOWVj
OTM5ZjZhNmE1Zi4uODMzMzczZmNhOWRhMDg4MTBlZDBjOWJhZDgwMTZlYTg2NjRhMjVlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNs
aWVudC5oIgogI2luY2x1ZGUgIkljb25SZWNvcmQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgogI2lu
Y2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRl
U3RhdGVtZW50LmgiCkBAIC0yOTAsNiArMjkxLDE2IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5
bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNv
CiAgICAgcmV0dXJuIGljb25SZWNvcmQtPmltYWdlKHNpemUpOwogfQogCitOYXRpdmVJbWFnZVB0
ciBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgSW1hZ2Uq
IGljb24gPSBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkxPcmlnaW5hbCwgc2l6ZSk7
CisgICAgaWYgKCFpY29uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKTsKK30KKwogdm9pZCBJY29uRGF0YWJhc2U6OnJlYWRJY29uRm9yUGFnZVVS
TEZyb21EaXNrKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKICAgICAvLyBUaGUgZWZmZWN0IG9m
IGFza2luZyBmb3IgYW4gSWNvbiBmb3IgYSBwYWdlVVJMIGF1dG9tYXRpY2FsbHkgcXVldWVzIGl0
IHRvIGJlIHJlYWQgZnJvbSBkaXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRh
YmFzZS5oCmluZGV4IGU0ZDhjYTczYTRiZTQyYmFhY2FjOWQxMjA4NGYzNTNhYzQ3NjhkYTYuLjUy
ZTBiM2YxYjRiZGUxZjgzNGE5MTI3NThkNjkwYmRiNDEwN2Y0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJM
LCBjb25zdCBTdHJpbmcmIHBhZ2VVUkwpOwogCiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25v
dXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJik7CisgICAgdmly
dHVhbCBOYXRpdmVJbWFnZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCBT
dHJpbmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJp
bmcmKTsKICAgICB2aXJ0dWFsIEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKik7ICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCmluZGV4IDczNGUyZjZh
MmE0NjNmNTBiMWQ4OWYxNmRkMzNmZjUxZDEyZWIwN2YuLjU2Y2IwM2M2N2Y4ZDYyYjBkNDExNzhi
ODQzOGMzOTE5Zjg1OTcyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2VCYXNlLmgKQEAgLTI2LDEzICsyNiwxNCBAQAogI2lmbmRlZiBJY29uRGF0YWJhc2VC
YXNlX2gKICNkZWZpbmUgSWNvbkRhdGFiYXNlQmFzZV9oCiAKKyNpbmNsdWRlICJJbWFnZVNvdXJj
ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7IAorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudDsKQEAgLTE3OCw3ICsx
NzksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93
bkZvckljb25VUkwoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0
IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKikgeyByZXR1cm4gSWNvbkxvYWRObzsgfQogICAgIHZp
cnR1YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29u
c3QgSW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KLSAgICAKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdl
UHRyIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3Qg
SW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIEFzeW5jaHJvbm91cyBjYWxscyB3ZSBz
aG91bGQgdXNlIHRvIHJlcGxhY2UgdGhlIGFib3ZlIHdoZW4gc3VwcG9ydGVkLgogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c01vZGUoKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBsb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIFBhc3NS
ZWZQdHI8SWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDZlZjRlNDQ5MGJjMWRmNTZkOTM5NDdkYzky
ZmIyMDU0MzZlMzdiOTguLjM0OGE5MmRkNTZmOTBjNDM0M2E2NTZhZjEwYmIyYWY1ODMzNWVmMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMTU1
LDEzICsxMTU1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpkb3dubG9h
ZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjCiB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB7CiAgICAgU3RyaW5n
IHVybCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwotICAgIEltYWdlKiBp
bWcgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6
ZSgxMCwgMTApKTsKLSAgICBpZiAoIWltZyB8fCAhaW1nLT5kYXRhKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaW1nLT5uYXRpdmVJbWFnZUZvckN1
cnJlbnRGcmFtZSgpOworICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaWNvbkRhdGFiYXNl
KCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCh1cmwsIEludFNpemUoMTAsIDEwKSk7
CiAgICAgaWYgKCFiaXRtYXApCiAgICAgICAgIHJldHVybjsKKwogICAgIGJpdG1hcC0+bG9ja1Bp
eGVscygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJ
Y29uVVJMRm9yUGFnZVVSTCh1cmwpOwogICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5z
ZXRGYXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNoYXIqKWJp
dG1hcC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19oaXN0b3J5LmNwcAppbmRleCAxYTRlOWI3MWZiNzUwOGY2NGM4ZDhlMDQyMDYyYTA3
NGUwMjhjNjU3Li4wNDM5YzQ4MjczYjA0MGNmNTRiNTEzNjQ3NDA1N2NhMTgwYTQxMzRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKQEAgLTMzNiwyOSArMzM2LDI2IEBAIGNh
aXJvX3N1cmZhY2VfdCogZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KGNvbnN0IEV3
a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9P
Ul9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdl
YkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJs
KCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7Ci0gICAgaWYgKCFpY29uKSB7CisgICAgV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNo
cm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUo
MTYsIDE2KSk7CisgICAgaWYgKCFpY29uKQogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VDYWly
byogbmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAg
IHJldHVybiBuYXRpdmVJbWFnZSA/IG5hdGl2ZUltYWdlLT5zdXJmYWNlKCkgOiAwOworICAgIHJl
dHVybiBpY29uID8gaWNvbi0+c3VyZmFjZSgpIDogMDsKIH0KIAogRXZhc19PYmplY3QqIGV3a19o
aXN0b3J5X2l0ZW1faWNvbl9vYmplY3RfYWRkKGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0s
IEV2YXMqIGNhbnZhcykKIHsKICAgICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVS
TihpdGVtLCBjb3JlLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2Fu
dmFzLCAwKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29yZS0+dXJsKCksIFdlYkNvcmU6OkludFNp
emUoMTYsIDE2KSk7CiAKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpY29uID0gV2ViQ29y
ZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChjb3JlLT51
cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKICAgICBpZiAoIWljb24pIHsKICAgICAg
ICAgRVJSKCJpY29uIGlzIE5VTEwuIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAg
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1h
Z2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1cm4gbmF0aXZlSW1hZ2UgPyBld2tfdXRpbF9p
bWFnZV9mcm9tX2NhaXJvX3N1cmZhY2VfYWRkKGNhbnZhcywgbmF0aXZlSW1hZ2UtPnN1cmZhY2Uo
KSkgOiAwOworICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSA9IGljb24tPnN1cmZhY2UoKTsK
KyAgICByZXR1cm4gc3VyZmFjZSA/IGV3a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9h
ZGQoY2FudmFzLCBzdXJmYWNlKSA6IDA7CiB9CiAKIEVpbmFfQm9vbCBld2tfaGlzdG9yeV9pdGVt
X3BhZ2VfY2FjaGVfZXhpc3RzKGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCmluZGV4IDg0MjkzMGE3ZTI5NDI0YTAxZjVmYjY5
ZTQ4ZDQ3NmE3Njg4Mjk0MjguLjJmNTRkMDYwNDhiYzZlNTFiNDU3MjdhYjM1ODNhYWQzZjU0Yjc5
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCkBAIC0yMTMsMTUgKzIx
MywxMSBAQCBjYWlyb19zdXJmYWNlX3QqIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25f
c3VyZmFjZV9nZXQoY29uc3QgY2hhciogdXJsKQogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTCh1cmwsIDApOwogCiAgICAgV2ViQ29yZTo6S1VSTCBrdXJsKFdlYkNvcmU6OktVUkwo
KSwgV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVybCkpOwotICAgIFdlYkNvcmU6OkltYWdlKiBpY29u
ID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChrdXJs
LnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwotCi0gICAgaWYgKCFpY29uKSB7
CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29y
ZTo6SW50U2l6ZSgxNiwgMTYpKTsKKyAgICBpZiAoIWljb24pCiAgICAgICAgIEVSUigibm8gaWNv
biBmb3IgdXJsICVzIiwgdXJsKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpOwotICAgIHJldHVybiBuYXRpdmVJbWFnZSA/IG5hdGl2ZUltYWdlLT5z
dXJmYWNlKCkgOiAwOworICAgIHJldHVybiBpY29uID8gaWNvbi0+c3VyZmFjZSgpIDogMDsKIH0K
IAogRXZhc19PYmplY3QqIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fb2JqZWN0X2dl
dChjb25zdCBjaGFyKiB1cmwsIEV2YXMqIGNhbnZhcykKQEAgLTIzMCwxNSArMjI2LDE1IEBAIEV2
YXNfT2JqZWN0KiBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9pY29uX29iamVjdF9nZXQoY29u
c3QgY2hhciogdXJsLCBFdmFzKiBjCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNhbnZhcywgMCk7CiAKICAgICBXZWJDb3JlOjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBX
VEY6OlN0cmluZzo6ZnJvbVVURjgodXJsKSk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGljb24gPSBX
ZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGt1cmwuc3Ry
aW5nKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7CisgICAgV2ViQ29yZTo6TmF0aXZlSW1h
Z2VQdHIgaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0aXZlSWNv
bkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKIAog
ICAgIGlmICghaWNvbikgewogICAgICAgICBFUlIoIm5vIGljb24gZm9yIHVybCAlcyIsIHVybCk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlQ2Fp
cm8qIG5hdGl2ZUltYWdlID0gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKLSAg
ICByZXR1cm4gbmF0aXZlSW1hZ2UgPyBld2tfdXRpbF9pbWFnZV9mcm9tX2NhaXJvX3N1cmZhY2Vf
YWRkKGNhbnZhcywgbmF0aXZlSW1hZ2UtPnN1cmZhY2UoKSkgOiAwOworICAgIGNhaXJvX3N1cmZh
Y2VfdCogc3VyZmFjZSA9IGljb24tPnN1cmZhY2UoKTsKKyAgICByZXR1cm4gc3VyZmFjZSA/IGV3
a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBzdXJmYWNlKSA6IDA7
CiB9CiAKIHZvaWQgZXdrX3NldHRpbmdzX29iamVjdF9jYWNoZV9jYXBhY2l0eV9zZXQodW5zaWdu
ZWQgbWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCBtYXhEZWFkQ2FwYWNpdHksIHVuc2lnbmVkIHRv
dGFsQ2FwYWNpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZmF2aWNvbmRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZp
Y29uZGF0YWJhc2UuY3BwCmluZGV4IGExZmQzN2ExZTMxZGVlODgyZmY0Y2I4Y2Y2YzZmMzA5NGIx
YzU2MWQuLmE5YzNlNjU1NzE5Y2ZkZWVjMzc2NzQ3ZTMyYWYyYjdiMmVkNDVjMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCkBA
IC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAi
RGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkdk
a0NhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
SWNvbkRhdGFiYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTM5NCwxNiArMzk1
LDE4IEBAIHN0YXRpYyBHZGtQaXhidWYqIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KFdlYktp
dEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvCiAKICAgICAvLyBUaGUgZXhhY3Qgc2l6ZSB3
ZSBwYXNzIGlzIGlycmVsZXZhbnQgdG8gdGhlIGljb25EYXRhYmFzZSBjb2RlLgogICAgIC8vIFdl
IG11c3QgcGFzcyBzb21ldGhpbmcgZ3JlYXRlciB0aGFuIDB4MCB0byBnZXQgYSBwaXhidWYuCi0g
ICAgSW1hZ2UqIGljb24gPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJM
KHBhZ2VVUkwsICFpY29uU2l6ZS5pc1plcm8oKSA/IGljb25TaXplIDogSW50U2l6ZSgxLCAxKSk7
CisgICAgTmF0aXZlSW1hZ2VQdHIgaWNvbiA9IGljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzTmF0
aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgIWljb25TaXplLmlzWmVybygpID8gaWNvblNpemUg
OiBJbnRTaXplKDEsIDEpKTsKICAgICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihpY29uLT5nZXRHZGtQaXhi
dWYoKSk7CisgICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihjYWlyb0lt
YWdlU3VyZmFjZVRvR2RrUGl4YnVmKGljb24tPnN1cmZhY2UoKSkpOwogICAgIGlmICghcGl4YnVm
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEEgc2l6ZSBvZiAoMCwgMCkgbWVhbnMgdGhl
IG1heGltdW0gYXZhaWxhYmxlIHNpemUuCi0gICAgaWYgKCFpY29uU2l6ZS5pc1plcm8oKSAmJiAo
aWNvbi0+d2lkdGgoKSAhPSBpY29uU2l6ZS53aWR0aCgpIHx8IGljb24tPmhlaWdodCgpICE9IGlj
b25TaXplLmhlaWdodCgpKSkKKyAgICBpbnQgcGl4YnVmV2lkdGggPSBnZGtfcGl4YnVmX2dldF93
aWR0aChwaXhidWYuZ2V0KCkpOworICAgIGludCBwaXhidWZIZWlnaHQgPSBnZGtfcGl4YnVmX2dl
dF9oZWlnaHQocGl4YnVmLmdldCgpKTsKKyAgICBpZiAoIWljb25TaXplLmlzWmVybygpICYmIChw
aXhidWZXaWR0aCAhPSBpY29uU2l6ZS53aWR0aCgpIHx8IHBpeGJ1ZkhlaWdodCAhPSBpY29uU2l6
ZS5oZWlnaHQoKSkpCiAgICAgICAgIHBpeGJ1ZiA9IGdka19waXhidWZfc2NhbGVfc2ltcGxlKHBp
eGJ1Zi5nZXQoKSwgaWNvblNpemUud2lkdGgoKSwgaWNvblNpemUuaGVpZ2h0KCksIEdES19JTlRF
UlBfQklMSU5FQVIpOwogICAgIHJldHVybiBwaXhidWYubGVha1JlZigpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYmhpc3RvcnkuY3BwCmluZGV4IGZjNWJkZDVmY2VhZDI1YzU3ZjBkMjY0YmM2ZjE5
YzBkYzJlMmRmYzAuLjE1ZDRhZDhhZmY2ZDVkYWU0OGMwZDk3OWMxNWNhMDhmZWRiMmE5NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBRRGF0
ZVRpbWUgUVdlYkhpc3RvcnlJdGVtOjpsYXN0VmlzaXRlZCgpIGNvbnN0CiBRSWNvbiBRV2ViSGlz
dG9yeUl0ZW06Omljb24oKSBjb25zdAogewogICAgIGlmIChkLT5pdGVtKQotICAgICAgICByZXR1
cm4gKldlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoZC0+
aXRlbS0+dXJsKCksIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSktPm5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCk7CisgICAgICAgIHJldHVybiAqV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChkLT5pdGVtLT51cmwoKSwgV2ViQ29yZTo6SW50
U2l6ZSgxNiwgMTYpKTsKIAogICAgIHJldHVybiBRSWNvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5jcHAKaW5kZXggNGUwMTgzNmY3Nzg0Yzc5YWEyZmFhMDgxN2RlNzJiZjI1
NDBhYjUzNS4uZWQ0M2ViM2Y4Y2Q0NzI4NjQ4YzM1YzAzNTczNjFkZThlMTI3NTJlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC03MTUsMTIgKzcxNSw4IEBAIHZvaWQg
UVdlYlNldHRpbmdzOjpjbGVhckljb25EYXRhYmFzZSgpCiBRSWNvbiBRV2ViU2V0dGluZ3M6Omlj
b25Gb3JVcmwoY29uc3QgUVVybCYgdXJsKQogewogICAgIFdlYkNvcmU6OmluaXRpYWxpemVXZWJD
b3JlUXQoKTsKLSAgICBXZWJDb3JlOjpJbWFnZSogaW1hZ2UgPSBXZWJDb3JlOjppY29uRGF0YWJh
c2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKFdlYkNvcmU6OktVUkwodXJsKS5zdHJpbmco
KSwKKyAgICBRUGl4bWFwKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25v
dXNOYXRpdmVJY29uRm9yUGFnZVVSTChXZWJDb3JlOjpLVVJMKHVybCkuc3RyaW5nKCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFNpemUoMTYsIDE2KSk7Ci0g
ICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJuIFFQaXhtYXAoKTsKLQotICAgIFFQaXhtYXAq
IGljb24gPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICBpZiAoIWlj
b24pCiAgICAgICAgIHJldHVybiBRUGl4bWFwKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKaW5kZXggMTA4MDRmNy4uYzBjNzA2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKQEAgLTE5MCw2ICsxOTAs
MTQgQEAgSW1hZ2UqIFdlYkljb25EYXRhYmFzZTo6aW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6SW4KICAgICByZXR1cm4gbV9pY29uRGF0YWJhc2VJ
bXBsLT5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkwsIGljb25TaXplKTsKIH0KIAor
V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgV2ViSWNvbkRhdGFiYXNlOjpuYXRpdmVJbWFnZUZvclBh
Z2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpY29u
U2l6ZSkKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dCB8fCAhbV9pY29uRGF0YWJhc2VJbXBsIHx8
ICFtX2ljb25EYXRhYmFzZUltcGwtPmlzT3BlbigpIHx8IHBhZ2VVUkwuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2ljb25EYXRhYmFzZUltcGwtPnN5bmNocm9u
b3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgaWNvblNpemUpOworfQorCiBib29sIFdl
Ykljb25EYXRhYmFzZTo6aXNPcGVuKCkKIHsKICAgICByZXR1cm4gbV9pY29uRGF0YWJhc2VJbXBs
ICYmIG1faWNvbkRhdGFiYXNlSW1wbC0+aXNPcGVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSWNvbkRhdGFiYXNlLmgKaW5kZXggN2FlM2ZkYy4uNmEwYTM0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2VDbGllbnQuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSW1hZ2VTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC03OCw2ICs3
OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3Qg
U3RyaW5nJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICBXZWJDb3JlOjpJbWFnZSogaW1h
Z2VGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGljb25T
aXplID0gV2ViQ29yZTo6SW50U2l6ZSgzMiwgMzIpKTsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFn
ZVB0ciBuYXRpdmVJbWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgaWNvblNpemUgPSBXZWJDb3JlOjpJbnRTaXplKDMyLCAzMikpOwogICAgIGJvb2wg
aXNPcGVuKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbEljb25zKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRl
eCA1MTMyYzc5Li41OTJiYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAKQEAgLTg5LDExICs4OSw4IEBAIFFJ
bWFnZSBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6aWNvbkltYWdlRm9yUGFnZVVSTChjb25zdCBX
VEY6OlN0cmluZyYgcGFnZVVSTCwKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbWFnZUxvY2sp
OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKGljb25TaXplLndpZHRoKCksIGljb25TaXpl
LmhlaWdodCgpKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGltYWdlID0gbV9pY29uRGF0
YWJhc2UtPmltYWdlRm9yUGFnZVVSTChwYWdlVVJMLCBzaXplKTsKLSAgICBpZiAoIWltYWdlKQot
ICAgICAgICByZXR1cm4gUUltYWdlKCk7CiAKLSAgICBRUGl4bWFwKiBuYXRpdmVJbWFnZSA9IGlt
YWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgIFFQaXhtYXAqIG5hdGl2ZUlt
YWdlID0gbV9pY29uRGF0YWJhc2UtPm5hdGl2ZUltYWdlRm9yUGFnZVVSTChwYWdlVVJMLCBzaXpl
KTsKICAgICBpZiAoIW5hdGl2ZUltYWdlKQogICAgICAgICByZXR1cm4gUUltYWdlKCk7CiAK
</data>
<flag name="commit-queue"
          id="155736"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148104</attachid>
            <date>2012-06-18 08:42:19 -0700</date>
            <delta_ts>2012-06-18 23:27:49 -0700</delta_ts>
            <desc>put WTF_USE_CG back, this should build now</desc>
            <filename>bug-67582-20120511204247.patch</filename>
            <type>text/plain</type>
            <size>20318</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNkZTUwMjFhYTVkMTYy
YTJkNmYyYjhkYzgxMmJmMDU3MjNlYmVjZS4uNjVkZDNiNjc3MDY3NWU5YWVlYjFkMjA4Y2UwNGFh
OThmMDM4OWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIENhbGxpbmcg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmU6IG1f
dmVyaWZpZXIuaXNTYWZlVG9Vc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyBzeW5jaHJvbm91cyBtZXRob2QgdG8gdGhlIEljb25E
YXRhYmFzZSB0aGF0IHJldHVybnMgYQorICAgICAgICBuYXRpdmUgaW1hZ2UgZm9yIHRoZSBwbGF0
Zm9ybSBpbnN0ZWFkIG9mIGEgV2ViQ29yZTo6SW1hZ2UqLgorCisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3lu
Y2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKEljb25EYXRhYmFzZSk6
CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlQmFzZTo6c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChJY29uRGF0YWJhc2VCYXNlKToKKwogMjAxMi0wNS0xMSAgQWxleGVpIEZpbGlw
cG92ICA8YWxleGVpZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVt
b3ZlIHN1cHBvcnQgb2YgY29tYmluZWQgbm9kZXMgYW5kIGVkZ2VzIHNlcmlhbGl6YXRpb24gc2No
ZW1hLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTQwMWVkMDEyOTA5NzQ0ZGJl
NDkwYWQ0NzQzZWM5NTdiODRlYTFjNS4uYjY5Y2UyY2EwZjg5ZGI0YmNkODhkZmEwMzJjNjM5MDRh
ZTQwZmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3Nl
cnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25G
b3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKKwog
MjAxMi0wNS0xMCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgogCiAgICAgICAgIENh
cmV0IG5vZGUgYm91bmRhcnkgc2hvdWxkIGJlIGFkanVzdGVkIHRvIGFjY291bnQgZm9yIHRoZSB2
aXNpYmxlIHJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2YvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKaW5kZXggMzA0MjkxYTZjNjM2N2ViMjk5NzQwOTBm
YzA4NmVmMjkzMDVhMzRmNS4uYjFlNjAyZTMzZGMxYzJmMzA5MDQ0N2IwNDk0NmU4YzFlN2Y0YWYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3Zlcmlm
aWVyLmlzU2FmZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4ZXMgd2luZG93cyBidWlsZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKwogMjAxMS0xMi0yMCAgUGF2ZWwgRmVsZG1hbiAg
PHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcHJv
ZHVjaWJsZSBjcmFzaCBhZnRlciBjbG9zaW5nIHdlYiBpbnNwZWN0b3IgYW5kIGJyb3dzZXIgd2lu
ZG93ICAoaUNhYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA4OTg5MzljZmJiMTQwYzQ3ODJhZGJkZDFm
OTgyOTU3MzYwM2I3ZWFiLi5mOWFkMjExYWI4YzQ1MzM0YmNjMDE4N2RmMTk4NzIwOGJkNTI4Yjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDUtMTEgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJp
Zmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmll
dmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAo
ZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5
X2l0ZW1faWNvbl9vYmplY3RfYWRkKToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoK
KyAgICAgICAgKGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX2ljb25fc3VyZmFjZV9nZXQpOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfYWRkKToKKwog
MjAxMi0wNS0xMSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gSW5wdXQgQXR0cmlidXRlIFBsYWNlaG9sZGVyIFJl
ZlRlc3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmYTY5YmFjOGMyNDI1MjBmNjYwNTcz
MmU2YTY3MDlkZDNlZDliM2NjLi5hYzJmMDIzMmY3ZDhmYjc1YjEzYWM3OThiZTVmOTkyYjdhMGY3
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTEgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBu
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92
ZXJpZmllci5pc1NhZmVUb1VzZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0
cmlldmUgZmF2aWNvbnMuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNl
LmNwcDoKKyAgICAgICAgKGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KToKKwogMjAxMi0wNS0x
MSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIxMTYyMDUpOiBbR1RLXTogYnVpbGQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoaW4gYXJj
aGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNjg4MWFmNGExN2VhZjZkOGQwOGRhOTNiZGNmYWUwNjA0
MzZmNTNmNi4uN2FiYzVlNmY3YjM2ZmY4OGE0NzdjYzY5OTZlYWU1YTYyZjNlYTA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0xMSAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBDYWxsaW5nIG5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlOiBtX3ZlcmlmaWVyLmlzU2Fm
ZVRvVXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoKSB0byByZXRyaWV2ZSBmYXZpY29u
cy4KKworICAgICAgICAqIEFwaS9xd2ViaGlzdG9yeS5jcHA6CisgICAgICAgIChRV2ViSGlzdG9y
eUl0ZW06Omljb24pOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAo
UVdlYlNldHRpbmdzOjppY29uRm9yVXJsKToKKwogMjAxMi0wNS0xMCAgR3l1eW91bmcgS2ltICA8
Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0aW9u
cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNmU5N2MwMmYwOWE0NWVkYWZiNDZiZTkwMjZlOWVjOTM5
ZjZhNmE1Zi4uODMzMzczZmNhOWRhMDg4MTBlZDBjOWJhZDgwMTZlYTg2NjRhMjVlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25SZWNvcmQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3Rh
dGVtZW50LmgiCkBAIC0yOTAsNiArMjkxLDE2IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvCiAg
ICAgcmV0dXJuIGljb25SZWNvcmQtPmltYWdlKHNpemUpOwogfQogCitOYXRpdmVJbWFnZVB0ciBJ
Y29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
JiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgSW1hZ2UqIGlj
b24gPSBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkxPcmlnaW5hbCwgc2l6ZSk7Cisg
ICAgaWYgKCFpY29uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKTsKK30KKwogdm9pZCBJY29uRGF0YWJhc2U6OnJlYWRJY29uRm9yUGFnZVVSTEZy
b21EaXNrKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKICAgICAvLyBUaGUgZWZmZWN0IG9mIGFz
a2luZyBmb3IgYW4gSWNvbiBmb3IgYSBwYWdlVVJMIGF1dG9tYXRpY2FsbHkgcXVldWVzIGl0IHRv
IGJlIHJlYWQgZnJvbSBkaXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5oCmluZGV4IGU0ZDhjYTczYTRiZTQyYmFhY2FjOWQxMjA4NGYzNTNhYzQ3NjhkYTYuLjUyZTBi
M2YxYjRiZGUxZjgzNGE5MTI3NThkNjkwYmRiNDEwN2Y0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBj
b25zdCBTdHJpbmcmIHBhZ2VVUkwpOwogCiAgICAgdmlydHVhbCBJbWFnZSogc3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVh
bCBOYXRpdmVJbWFnZVB0ciBzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCBTdHJp
bmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGJvb2wgc3luY2hyb25vdXNJY29uRGF0YUtub3duRm9ySWNvblVSTChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIEljb25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25G
b3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIERvY3VtZW50TG9hZGVyKik7ICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCmluZGV4IDczNGUyZjZhMmE0
NjNmNTBiMWQ4OWYxNmRkMzNmZjUxZDEyZWIwN2YuLjU2Y2IwM2M2N2Y4ZDYyYjBkNDExNzhiODQz
OGMzOTE5Zjg1OTcyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2VCYXNlLmgKQEAgLTI2LDEzICsyNiwxNCBAQAogI2lmbmRlZiBJY29uRGF0YWJhc2VCYXNl
X2gKICNkZWZpbmUgSWNvbkRhdGFiYXNlQmFzZV9oCiAKKyNpbmNsdWRlICJJbWFnZVNvdXJjZS5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7IAorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudExvYWRlcjsKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudDsKQEAgLTE3OCw3ICsxNzks
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZv
ckljb25VUkwoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIElj
b25Mb2FkRGVjaXNpb24gc3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYsIERvY3VtZW50TG9hZGVyKikgeyByZXR1cm4gSWNvbkxvYWRObzsgfQogICAgIHZpcnR1
YWwgSW1hZ2UqIHN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3Qg
SW50U2l6ZSYpIHsgcmV0dXJuIDA7IH0KLSAgICAKKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRy
IHN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgSW50
U2l6ZSYpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIEFzeW5jaHJvbm91cyBjYWxscyB3ZSBzaG91
bGQgdXNlIHRvIHJlcGxhY2UgdGhlIGFib3ZlIHdoZW4gc3VwcG9ydGVkLgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c01vZGUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBsb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQ
dHI8SWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDZlZjRlNDQ5MGJjMWRmNTZkOTM5NDdkYzkyZmIy
MDU0MzZlMzdiOTguLjM0OGE5MmRkNTZmOTBjNDM0M2E2NTZhZjEwYmIyYWY1ODMzNWVmMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMTU1LDEz
ICsxMTU1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpkb3dubG9hZChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB7CiAgICAgU3RyaW5nIHVy
bCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwotICAgIEltYWdlKiBpbWcg
PSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHVybCwgSW50U2l6ZSgx
MCwgMTApKTsKLSAgICBpZiAoIWltZyB8fCAhaW1nLT5kYXRhKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaW1nLT5uYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpOworICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFwID0gaWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTCh1cmwsIEludFNpemUoMTAsIDEwKSk7CiAg
ICAgaWYgKCFiaXRtYXApCiAgICAgICAgIHJldHVybjsKKwogICAgIGJpdG1hcC0+bG9ja1BpeGVs
cygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29u
VVJMRm9yUGFnZVVSTCh1cmwpOwogICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5zZXRG
YXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNoYXIqKWJpdG1h
cC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmlu
ZGV4IDQ4NjNhMDI0NjI3ZTI2MmNkYjgzMWNjZTgxOGViOTA3YWY1YzNkZGQuLjRiY2YzYWU2ZTUx
Mjk1YmJiYTE0ZWYxOWZiNzI5NmU5YmFlMzk3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC0zMyw2
ICszMywxNCBAQAogI2RlZmluZSBXVEZfVVNFX0NGIDEKICNlbmRpZgogCisjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CisKKyNpZiBQTEFURk9STShXSU4pICYmICFPUyhXSU5DRSkKKyNpZm5kZWYg
V1RGX1VTRV9DRworI2RlZmluZSBXVEZfVVNFX0NHIDEKKyNlbmRpZgorI2VuZGlmCisKIC8vIE5P
VEU6IFRoZXNlIG5lZWQgdG8gYXBwZWFyIHVwIHRvcCwgYXMgdGhleSBkZWNsYXJlIG1hY3Jvcwog
Ly8gdXNlZCBpbiB0aGUgSlMgYW5kIFdURiBoZWFkZXJzLgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNF
eHBvcnRNYWNyb3MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlz
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IDFh
NGU5YjcxZmI3NTA4ZjY0YzhkOGUwNDIwNjJhMDc0ZTAyOGM2NTcuLjA0MzljNDgyNzNiMDQwY2Y1
NGI1MTM2NDc0MDU3Y2ExODBhNDEzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5
LmNwcApAQCAtMzM2LDI5ICszMzYsMjYgQEAgY2Fpcm9fc3VyZmFjZV90KiBld2tfaGlzdG9yeV9p
dGVtX2ljb25fc3VyZmFjZV9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSkKIHsKICAg
ICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVtLCBjb3JlLCAwKTsKIAot
ICAgIFdlYkNvcmU6OkltYWdlKiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hy
b25vdXNJY29uRm9yUGFnZVVSTChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYp
KTsKLSAgICBpZiAoIWljb24pIHsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpY29uID0g
V2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChj
b3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKKyAgICBpZiAoIWljb24pCiAg
ICAgICAgIEVSUigiaWNvbiBpcyBOVUxMLiIpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAK
LSAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRpdmVJbWFnZSA9IGljb24tPm5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJuIG5hdGl2ZUltYWdlID8gbmF0aXZl
SW1hZ2UtPnN1cmZhY2UoKSA6IDA7CisgICAgcmV0dXJuIGljb24gPyBpY29uLT5zdXJmYWNlKCkg
OiAwOwogfQogCiBFdmFzX09iamVjdCogZXdrX2hpc3RvcnlfaXRlbV9pY29uX29iamVjdF9hZGQo
Y29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSwgRXZhcyogY2FudmFzKQogewogICAgIEVXS19I
SVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAgIFdlYkNvcmU6OkltYWdl
KiBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJY29uRm9yUGFnZVVS
TChjb3JlLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKIAorICAgIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91
c05hdGl2ZUljb25Gb3JQYWdlVVJMKGNvcmUtPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAx
NikpOwogICAgIGlmICghaWNvbikgewogICAgICAgICBFUlIoImljb24gaXMgTlVMTC4iKTsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VDYWlybyog
bmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAgIHJl
dHVybiBuYXRpdmVJbWFnZSA/IGV3a191dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQo
Y2FudmFzLCBuYXRpdmVJbWFnZS0+c3VyZmFjZSgpKSA6IDA7CisgICAgY2Fpcm9fc3VyZmFjZV90
KiBzdXJmYWNlID0gaWNvbi0+c3VyZmFjZSgpOworICAgIHJldHVybiBzdXJmYWNlID8gZXdrX3V0
aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChjYW52YXMsIHN1cmZhY2UpIDogMDsKIH0K
IAogRWluYV9Cb29sIGV3a19oaXN0b3J5X2l0ZW1fcGFnZV9jYWNoZV9leGlzdHMoY29uc3QgRXdr
X0hpc3RvcnlfSXRlbSogaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfc2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAK
aW5kZXggODQyOTMwYTdlMjk0MjRhMDFmNWZiNjllNDhkNDc2YTc2ODgyOTQyOC4uMmY1NGQwNjA0
OGJjNmU1MWI0NTcyN2FiMzU4M2FhZDNmNTRiNzk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19zZXR0aW5ncy5jcHAKQEAgLTIxMywxNSArMjEzLDExIEBAIGNhaXJvX3N1cmZhY2VfdCogZXdr
X3NldHRpbmdzX2ljb25fZGF0YWJhc2VfaWNvbl9zdXJmYWNlX2dldChjb25zdCBjaGFyKiB1cmwp
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHVybCwgMCk7CiAKICAgICBXZWJD
b3JlOjpLVVJMIGt1cmwoV2ViQ29yZTo6S1VSTCgpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJs
KSk7Ci0gICAgV2ViQ29yZTo6SW1hZ2UqIGljb24gPSBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5z
eW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGt1cmwuc3RyaW5nKCksIFdlYkNvcmU6OkludFNpemUo
MTYsIDE2KSk7Ci0KLSAgICBpZiAoIWljb24pIHsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0
ciBpY29uID0gV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9y
UGFnZVVSTChrdXJsLnN0cmluZygpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOworICAgIGlm
ICghaWNvbikKICAgICAgICAgRVJSKCJubyBpY29uIGZvciB1cmwgJXMiLCB1cmwpOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9CiAKLSAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZUNhaXJvKiBuYXRp
dmVJbWFnZSA9IGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgcmV0dXJu
IG5hdGl2ZUltYWdlID8gbmF0aXZlSW1hZ2UtPnN1cmZhY2UoKSA6IDA7CisgICAgcmV0dXJuIGlj
b24gPyBpY29uLT5zdXJmYWNlKCkgOiAwOwogfQogCiBFdmFzX09iamVjdCogZXdrX3NldHRpbmdz
X2ljb25fZGF0YWJhc2VfaWNvbl9vYmplY3RfZ2V0KGNvbnN0IGNoYXIqIHVybCwgRXZhcyogY2Fu
dmFzKQpAQCAtMjMwLDE1ICsyMjYsMTUgQEAgRXZhc19PYmplY3QqIGV3a19zZXR0aW5nc19pY29u
X2RhdGFiYXNlX2ljb25fb2JqZWN0X2dldChjb25zdCBjaGFyKiB1cmwsIEV2YXMqIGMKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FudmFzLCAwKTsKIAogICAgIFdlYkNvcmU6
OktVUkwga3VybChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmwpKTsK
LSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwoa3VybC5zdHJpbmcoKSwgV2ViQ29yZTo6SW50U2l6ZSgxNiwg
MTYpKTsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBpY29uID0gV2ViQ29yZTo6aWNvbkRh
dGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChrdXJsLnN0cmluZygpLCBX
ZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwogCiAgICAgaWYgKCFpY29uKSB7CiAgICAgICAgIEVS
Uigibm8gaWNvbiBmb3IgdXJsICVzIiwgdXJsKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0gICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UgPSBpY29uLT5uYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwotICAgIHJldHVybiBuYXRpdmVJbWFnZSA/IGV3a191
dGlsX2ltYWdlX2Zyb21fY2Fpcm9fc3VyZmFjZV9hZGQoY2FudmFzLCBuYXRpdmVJbWFnZS0+c3Vy
ZmFjZSgpKSA6IDA7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlID0gaWNvbi0+c3VyZmFj
ZSgpOworICAgIHJldHVybiBzdXJmYWNlID8gZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJm
YWNlX2FkZChjYW52YXMsIHN1cmZhY2UpIDogMDsKIH0KIAogdm9pZCBld2tfc2V0dGluZ3Nfb2Jq
ZWN0X2NhY2hlX2NhcGFjaXR5X3NldCh1bnNpZ25lZCBtaW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVk
IG1heERlYWRDYXBhY2l0eSwgdW5zaWduZWQgdG90YWxDYXBhY2l0eSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKaW5kZXggYTFmZDM3
YTFlMzFkZWU4ODJmZjRjYjhjZjZjNmYzMDk0YjFjNTYxZC4uYTljM2U2NTU3MTljZmRlZWMzNzY3
NDdlMzJhZjJiN2IyZWQ0NWMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJE
YXRhYmFzZURldGFpbHMuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRl
ICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiR2RrQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2VDbGllbnQuaCIKICNpbmNs
dWRlICJJbWFnZS5oIgpAQCAtMzk0LDE2ICszOTUsMTggQEAgc3RhdGljIEdka1BpeGJ1ZiogZ2V0
SWNvblBpeGJ1ZlN5bmNocm9ub3VzbHkoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwg
Y28KIAogICAgIC8vIFRoZSBleGFjdCBzaXplIHdlIHBhc3MgaXMgaXJyZWxldmFudCB0byB0aGUg
aWNvbkRhdGFiYXNlIGNvZGUuCiAgICAgLy8gV2UgbXVzdCBwYXNzIHNvbWV0aGluZyBncmVhdGVy
IHRoYW4gMHgwIHRvIGdldCBhIHBpeGJ1Zi4KLSAgICBJbWFnZSogaWNvbiA9IGljb25EYXRhYmFz
ZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgIWljb25TaXplLmlzWmVybygp
ID8gaWNvblNpemUgOiBJbnRTaXplKDEsIDEpKTsKKyAgICBOYXRpdmVJbWFnZVB0ciBpY29uID0g
aWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChwYWdlVVJMLCAh
aWNvblNpemUuaXNaZXJvKCkgPyBpY29uU2l6ZSA6IEludFNpemUoMSwgMSkpOwogICAgIGlmICgh
aWNvbikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVm
ID0gYWRvcHRHUmVmKGljb24tPmdldEdka1BpeGJ1ZigpKTsKKyAgICBHUmVmUHRyPEdka1BpeGJ1
Zj4gcGl4YnVmID0gYWRvcHRHUmVmKGNhaXJvSW1hZ2VTdXJmYWNlVG9HZGtQaXhidWYoaWNvbi0+
c3VyZmFjZSgpKSk7CiAgICAgaWYgKCFwaXhidWYpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
Ly8gQSBzaXplIG9mICgwLCAwKSBtZWFucyB0aGUgbWF4aW11bSBhdmFpbGFibGUgc2l6ZS4KLSAg
ICBpZiAoIWljb25TaXplLmlzWmVybygpICYmIChpY29uLT53aWR0aCgpICE9IGljb25TaXplLndp
ZHRoKCkgfHwgaWNvbi0+aGVpZ2h0KCkgIT0gaWNvblNpemUuaGVpZ2h0KCkpKQorICAgIGludCBw
aXhidWZXaWR0aCA9IGdka19waXhidWZfZ2V0X3dpZHRoKHBpeGJ1Zi5nZXQoKSk7CisgICAgaW50
IHBpeGJ1ZkhlaWdodCA9IGdka19waXhidWZfZ2V0X2hlaWdodChwaXhidWYuZ2V0KCkpOworICAg
IGlmICghaWNvblNpemUuaXNaZXJvKCkgJiYgKHBpeGJ1ZldpZHRoICE9IGljb25TaXplLndpZHRo
KCkgfHwgcGl4YnVmSGVpZ2h0ICE9IGljb25TaXplLmhlaWdodCgpKSkKICAgICAgICAgcGl4YnVm
ID0gZ2RrX3BpeGJ1Zl9zY2FsZV9zaW1wbGUocGl4YnVmLmdldCgpLCBpY29uU2l6ZS53aWR0aCgp
LCBpY29uU2l6ZS5oZWlnaHQoKSwgR0RLX0lOVEVSUF9CSUxJTkVBUik7CiAgICAgcmV0dXJuIHBp
eGJ1Zi5sZWFrUmVmKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
aGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5jcHAKaW5kZXgg
ZmM1YmRkNWZjZWFkMjVjNTdmMGQyNjRiYzZmMTljMGRjMmUyZGZjMC4uMTVkNGFkOGFmZjZkNWRh
ZTQ4YzBkOTc5YzE1Y2EwOGZlZGIyYTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9B
cGkvcXdlYmhpc3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5
LmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIFFEYXRlVGltZSBRV2ViSGlzdG9yeUl0ZW06Omxhc3RW
aXNpdGVkKCkgY29uc3QKIFFJY29uIFFXZWJIaXN0b3J5SXRlbTo6aWNvbigpIGNvbnN0CiB7CiAg
ICAgaWYgKGQtPml0ZW0pCi0gICAgICAgIHJldHVybiAqV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCku
c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChkLT5pdGVtLT51cmwoKSwgV2ViQ29yZTo6SW50U2l6
ZSgxNiwgMTYpKS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICAgICAgcmV0dXJu
ICpXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJM
KGQtPml0ZW0tPnVybCgpLCBXZWJDb3JlOjpJbnRTaXplKDE2LCAxNikpOwogCiAgICAgcmV0dXJu
IFFJY29uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCA0ZTAx
ODM2Zjc3ODRjNzlhYTJmYWEwODE3ZGU3MmJmMjU0MGFiNTM1Li5lZDQzZWIzZjhjZDQ3Mjg2NDhj
MzVjMDM1NzM2MWRlOGUxMjc1MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKQEAgLTcxNSwxMiArNzE1LDggQEAgdm9pZCBRV2ViU2V0dGluZ3M6OmNsZWFySWNvbkRhdGFi
YXNlKCkKIFFJY29uIFFXZWJTZXR0aW5nczo6aWNvbkZvclVybChjb25zdCBRVXJsJiB1cmwpCiB7
CiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVdlYkNvcmVRdCgpOwotICAgIFdlYkNvcmU6OkltYWdl
KiBpbWFnZSA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwoV2ViQ29yZTo6S1VSTCh1cmwpLnN0cmluZygpLAorICAgIFFQaXhtYXAqIGljb24gPSBXZWJD
b3JlOjppY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKFdlYkNv
cmU6OktVUkwodXJsKS5zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsKLSAgICBpZiAoIWltYWdlKQotICAgICAgICByZXR1
cm4gUVBpeG1hcCgpOwotCi0gICAgUVBpeG1hcCogaWNvbiA9IGltYWdlLT5uYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpOwogICAgIGlmICghaWNvbikKICAgICAgICAgcmV0dXJuIFFQaXhtYXAo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAppbmRl
eCAxMDgwNGY3Li5jMGM3MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNv
bkRhdGFiYXNlLmNwcApAQCAtMTkwLDYgKzE5MCwxNCBAQCBJbWFnZSogV2ViSWNvbkRhdGFiYXNl
OjppbWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpJ
bgogICAgIHJldHVybiBtX2ljb25EYXRhYmFzZUltcGwtPnN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwocGFnZVVSTCwgaWNvblNpemUpOwogfQogCitXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBXZWJJ
Y29uRGF0YWJhc2U6Om5hdGl2ZUltYWdlRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkws
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGljb25TaXplKQoreworICAgIGlmICghbV93ZWJDb250
ZXh0IHx8ICFtX2ljb25EYXRhYmFzZUltcGwgfHwgIW1faWNvbkRhdGFiYXNlSW1wbC0+aXNPcGVu
KCkgfHwgcGFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJu
IG1faWNvbkRhdGFiYXNlSW1wbC0+c3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFnZVVSTChwYWdl
VVJMLCBpY29uU2l6ZSk7Cit9CisKIGJvb2wgV2ViSWNvbkRhdGFiYXNlOjppc09wZW4oKQogewog
ICAgIHJldHVybiBtX2ljb25EYXRhYmFzZUltcGwgJiYgbV9pY29uRGF0YWJhc2VJbXBsLT5pc09w
ZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAppbmRleCA3
YWUzZmRjLi42YTBhMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRh
YmFzZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIldlYkljb25EYXRhYmFzZUNsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSWNvbkRhdGFi
YXNlQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVNvdXJjZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW50U2l6ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTc4LDYgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
TG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKIAogICAgIFdlYkNvcmU6OkltYWdlKiBpbWFnZUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaWNvblNpemUgPSBXZWJDb3JlOjpJbnRTaXplKDMyLCAz
MikpOworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpY29uU2l6ZSA9IFdlYkNvcmU6
OkludFNpemUoMzIsIDMyKSk7CiAgICAgYm9vbCBpc09wZW4oKTsKIAogICAgIHZvaWQgcmVtb3Zl
QWxsSWNvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
Ykljb25EYXRhYmFzZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRX
ZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCmluZGV4IDUxMzJjNzkuLjU5MmJiMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xp
ZW50LmNwcApAQCAtODksMTEgKzg5LDggQEAgUUltYWdlIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50
OjppY29uSW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMLAogICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2ltYWdlTG9jayk7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIHNp
emUoaWNvblNpemUud2lkdGgoKSwgaWNvblNpemUuaGVpZ2h0KCkpOwotICAgIFJlZlB0cjxXZWJD
b3JlOjpJbWFnZT4gaW1hZ2UgPSBtX2ljb25EYXRhYmFzZS0+aW1hZ2VGb3JQYWdlVVJMKHBhZ2VV
UkwsIHNpemUpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBRSW1hZ2UoKTsKIAot
ICAgIFFQaXhtYXAqIG5hdGl2ZUltYWdlID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZy
YW1lKCk7CisgICAgUVBpeG1hcCogbmF0aXZlSW1hZ2UgPSBtX2ljb25EYXRhYmFzZS0+bmF0aXZl
SW1hZ2VGb3JQYWdlVVJMKHBhZ2VVUkwsIHNpemUpOwogICAgIGlmICghbmF0aXZlSW1hZ2UpCiAg
ICAgICAgIHJldHVybiBRSW1hZ2UoKTsKIAo=
</data>
<flag name="review"
          id="155741"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>