<?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>118657</bug_id>
          
          <creation_ts>2013-07-14 22:19:44 -0700</creation_ts>
          <short_desc>[WK2][Soup] Add private browsing support</short_desc>
          <delta_ts>2013-07-25 16:23:47 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Kwang Yul Seo">skyul</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>svillar</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>908292</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:19:44 -0700</bug_when>
    <thetext>Soup should support private browsing in WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908293</commentid>
    <comment_count>1</comment_count>
      <attachid>206639</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:38:51 -0700</bug_when>
    <thetext>Created attachment 206639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908294</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-14 22:40:44 -0700</bug_when>
    <thetext>Attachment 206639 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSession.h&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSessionStub.cpp&apos;, u&apos;Source/WebCore/platform/network/ResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.h&apos;, u&apos;Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1384:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1385:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1386:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1387:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1388:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1389:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908296</commentid>
    <comment_count>3</comment_count>
      <attachid>206639</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-14 22:44:58 -0700</bug_when>
    <thetext>Comment on attachment 206639
Patch

Attachment 206639 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1064772</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908297</commentid>
    <comment_count>4</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:45:40 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=206639) [details]
&gt; Patch

This is the first try to add private browsing support to soup in WK2. 

One problem with this patch is that it does not use the identifier base when creating a private browsing session. The Mac port uses the bundle name of the UIProcess. Similarly, we can use the process name of the UIProcess, but I am sure what to do with this identifier base in ResourceHandle::createPrivateBrowsingSession.

Any comment is welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908298</commentid>
    <comment_count>5</comment_count>
      <attachid>206640</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:48:26 -0700</bug_when>
    <thetext>Created attachment 206640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908299</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-14 22:49:22 -0700</bug_when>
    <thetext>Attachment 206640 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSession.h&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSessionStub.cpp&apos;, u&apos;Source/WebCore/platform/network/ResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.h&apos;, u&apos;Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1384:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1385:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1386:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1387:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1388:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1389:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908300</commentid>
    <comment_count>7</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:56:26 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=206640) [details]
&gt; Patch

Build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908301</commentid>
    <comment_count>8</comment_count>
      <attachid>206641</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:56:53 -0700</bug_when>
    <thetext>Created attachment 206641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908302</commentid>
    <comment_count>9</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-14 22:57:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=206641) [details]
&gt; Patch

Fixed a typo in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908303</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-14 22:58:11 -0700</bug_when>
    <thetext>Attachment 206641 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSession.h&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSessionStub.cpp&apos;, u&apos;Source/WebCore/platform/network/ResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.h&apos;, u&apos;Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1384:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1385:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1386:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1387:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1388:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1389:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908401</commentid>
    <comment_count>11</comment_count>
      <attachid>206641</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-07-15 08:02:30 -0700</bug_when>
    <thetext>Comment on attachment 206641
Patch

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

r- because of the style issues and because I feel we should figure out the identifier base before landing this

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:53
&gt; +    bool isPrivateBrowsingSession() const { return m_isPrivate; }

This should be kept under a PLATFORM(MAC) || USE(CFNETWORK) || USE(SOUP) check, since it&apos;s still not universally supported.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1408
&gt; +    // FIXME: Handle identifierBase

What do you mean handle identifierBase? What do you need to do with it?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:32
&gt;  

There should be no empty line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908413</commentid>
    <comment_count>12</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-15 08:36:06 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 206641 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206641&amp;action=review
&gt; 
&gt; r- because of the style issues and because I feel we should figure out the identifier base before landing this

Okay, I will fix the style issues. I intentionally violated the style issues as I tried to keep the original code as-is. 

&gt; &gt; Source/WebCore/platform/network/NetworkStorageSession.h:53
&gt; &gt; +    bool isPrivateBrowsingSession() const { return m_isPrivate; }
&gt; 
&gt; This should be kept under a PLATFORM(MAC) || USE(CFNETWORK) || USE(SOUP) check, since it&apos;s still not universally supported.

This method is not platform-specific. Isn&apos;t it okay to make other ports return false by initializing m_isPrivate to false in the constructor?

&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1408
&gt; &gt; +    // FIXME: Handle identifierBase
&gt; 
&gt; What do you mean handle identifierBase? What do you need to do with it?

I will ask the original authors about the intention of identifierBase.

&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:32
&gt; &gt;  
&gt; 
&gt; There should be no empty line here.

Okay. I will fix it.

Thanks for your review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908456</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-15 10:29:44 -0700</bug_when>
    <thetext>&gt; What do you mean handle identifierBase? What do you need to do with it?

It&apos;s used by CFNetwork to identify named sessions (specifically, a private browsing session for Safari would be created with identifierBase &quot;com.apple.Safari&quot;, and will be named &quot;com.apple.Safari.PrivateBrowsing&quot;).

You probably don&apos;t need it unless Soup also identifies sessions by a string identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908540</commentid>
    <comment_count>14</comment_count>
      <attachid>206692</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-15 15:33:29 -0700</bug_when>
    <thetext>Created attachment 206692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908542</commentid>
    <comment_count>15</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-15 15:35:43 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; What do you mean handle identifierBase? What do you need to do with it?
&gt; 
&gt; It&apos;s used by CFNetwork to identify named sessions (specifically, a private browsing session for Safari would be created with identifierBase &quot;com.apple.Safari&quot;, and will be named &quot;com.apple.Safari.PrivateBrowsing&quot;).
&gt; 
&gt; You probably don&apos;t need it unless Soup also identifies sessions by a string identifier.

Thanks for the information. I changed the patch to ignore the string identifier passed by createPrivateBrowsingSession() because Soup does not identify sessions by a string identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908552</commentid>
    <comment_count>16</comment_count>
      <attachid>206692</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-15 16:01:50 -0700</bug_when>
    <thetext>Comment on attachment 206692
Patch

Attachment 206692 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1068624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908560</commentid>
    <comment_count>17</comment_count>
      <attachid>206692</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-15 16:17:54 -0700</bug_when>
    <thetext>Comment on attachment 206692
Patch

Attachment 206692 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1071595</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908568</commentid>
    <comment_count>18</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-15 16:30:48 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 206692 [details])
&gt; Attachment 206692 [details] did not pass efl-wk2-ews (efl-wk2):
&gt; Output: http://webkit-queues.appspot.com/results/1071595

It seems the last argument of g_object_set should NULL instead of 0. Otherwise, EFL build fails with the following errors:

Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/platform/network/soup/ResourceHandleSoup.cpp.o
/home/kseo/webkit-efl/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp: In function &apos;SoupSession* WebCore::createSoupSession()&apos;:
/home/kseo/webkit-efl/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:10: error: missing sentinel in function call [-Werror=format]

It seems we pass NULL to g_object_set in other places too. Should we add an exception to check-webkit-style?

kseo@kseo:WebCore (privatebrowsing)&gt; grep -R g_object_set *
platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:    g_object_set(m_exitFullscreenAction, &quot;icon-name&quot;, EXIT_FULLSCREEN_ICON_NAME, NULL);
platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:    g_object_set(m_volumeElement.get(), &quot;mute&quot;, muted, NULL);
platform/graphics/gstreamer/GStreamerGWorld.cpp:        g_object_set(sink, &quot;force-aspect-ratio&quot;, TRUE, NULL);
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908570</commentid>
    <comment_count>19</comment_count>
      <attachid>206701</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-15 16:32:36 -0700</bug_when>
    <thetext>Created attachment 206701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908571</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-15 16:35:11 -0700</bug_when>
    <thetext>Attachment 206701 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSession.h&apos;, u&apos;Source/WebCore/platform/network/ResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.h&apos;, u&apos;Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1390:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908664</commentid>
    <comment_count>21</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-15 21:43:31 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Attachment 206701 [details] did not pass style-queue:

Bug 32858 and Bug 39372 fixed this false positive style error. But the rule works only when the entire function call is one line. If g_*() function call spans multiple lines, check-webkit-style does not recognize the pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908716</commentid>
    <comment_count>22</comment_count>
      <attachid>206701</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-16 00:17:41 -0700</bug_when>
    <thetext>Comment on attachment 206701
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2453
&gt; +    bool privateBrowsingEnabled = store.getBoolValueForKey(WebPreferencesKey::privateBrowsingEnabledKey());
&gt; +    settings-&gt;setPrivateBrowsingEnabled(privateBrowsingEnabled);
&gt; +#if USE(SOUP)
&gt; +    if (privateBrowsingEnabled)
&gt; +        WebFrameNetworkingContext::ensurePrivateBrowsingSession();
&gt; +    else
&gt; +        WebFrameNetworkingContext::destroyPrivateBrowsingSession();
&gt; +#endif

I realized that this is not necessary because WebPreferences keeps track of privateBrowsingPageGroupCount and sends WebProcess::EnsurePrivateBrowsingSession and WebProcess::DestroyPrivateBrowsingSession messages accordingly.

I will fix the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908719</commentid>
    <comment_count>23</comment_count>
      <attachid>206733</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-16 00:21:40 -0700</bug_when>
    <thetext>Created attachment 206733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908727</commentid>
    <comment_count>24</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-16 00:39:35 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Bug 32858 and Bug 39372 fixed this false positive style error. But the rule works only when the entire function call is one line. If g_*() function call spans multiple lines, check-webkit-style does not recognize the pattern.

I filed a separate bug to fix this. See Bug 118718</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911459</commentid>
    <comment_count>25</comment_count>
      <attachid>207420</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-24 16:48:32 -0700</bug_when>
    <thetext>Created attachment 207420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911460</commentid>
    <comment_count>26</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-24 16:49:25 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created an attachment (id=207420) [details]
&gt; Patch

Rebased to the HEAD. kov, would you review the patch again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911461</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-24 16:49:36 -0700</bug_when>
    <thetext>Attachment 207420 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/network/NetworkStorageSession.h&apos;, u&apos;Source/WebCore/platform/network/ResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/CookieJarSoup.h&apos;, u&apos;Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp&apos;, u&apos;Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1386:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911591</commentid>
    <comment_count>28</comment_count>
      <attachid>207420</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-07-25 06:11:00 -0700</bug_when>
    <thetext>Comment on attachment 207420
Patch

OK!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911795</commentid>
    <comment_count>29</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-07-25 16:23:47 -0700</bug_when>
    <thetext>Committed r153355: &lt;http://trac.webkit.org/changeset/153355&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206639</attachid>
            <date>2013-07-14 22:38:51 -0700</date>
            <delta_ts>2013-07-14 22:48:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130715143737.patch</filename>
            <type>text/plain</type>
            <size>19760</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1NmUzNzJlNTRjYjI2
MjQyZjkzNjFjNzczMWIwMGM2ZjQ4NmJjYy4uZGQ2MjRlZDlhMzQ1NWFlYjExNTdkZjFiNjk3MjNi
MmE1NDE4ZDk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm8gdXNlIHRoZSBkaXNrIGNhY2hlIGZlYXR1cmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHByaXZhdGUgYnJv
d3NpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjppc1By
aXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICBNb3ZlIGlzUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpIG91dCBvZiBQTEFURk9STShNQUMpIGd1YXJkIGFuZCBtYWtlIGl0CisgICAgICAgIGNy
b3NzLXBsYXRmb3JtLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25TdHViLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgSW5pdGlhbGl6ZSBtX2lzUHJpdmF0
ZSB0byBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aDoKKyAgICAgICAgQWRkIGEgZmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgcHJpdmF0ZSBicm93
c2luZyBzZXNzaW9uIGZvciBzb3VwLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUHJpdmF0ZUJyb3dz
aW5nQ29va2llSmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFy
U291cC5oOgorICAgICAgICBBZGQgYSBtZXRob2QgdG8gY3JlYXRlIGEgbm9uLXBlcnNpc3RlbnQg
Y29va2llIGphciBmb3IgcHJpdmF0ZSBicm93c2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAg
ICAgSW5pdGlhbGl6ZSBtX2lzUHJpdmF0ZSB0byBmYWxzZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIEltcGxlbWVudCB0aGUgbWV0aG9kIGJ5IGludm9raW5nIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3Vw
U2Vzc2lvbik6CisgICAgICAgIEV4dHJhY3QgY29tbW9uIHNvdXAgc2Vzc2lvbiBjcmVhdGlvbiBj
b2RlIHNvIHRoYXQgYm90aCBkZWZhdWx0U2Vzc2lvbgorICAgICAgICBhbmQgY3JlYXRlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbiBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlIGEgc291cAor
ICAgICAgICBzZXNzaW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1
bHRTZXNzaW9uKToKKyAgICAgICAgQ2hhbmdlIHRvIHVzZSBjcmVhdGVTb3VwU2Vzc2lvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgQ3JlYXRlIGEgc2Vzc2lvbiB3aGljaCB1c2VzIGEgbm9uLXBlcnNpc3Rl
bnQgY29va2llIGphci4KKwogMjAxMy0wNy0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBNYWMgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE1MjYxNS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlMzZmMzBiYTEwODJhMTIxMjdhZDc5NzJhMWRlOGJjYjQyMzliNjE1Li5kODVl
Mzk2N2RmMzUwOGQ3YzY1YjU0YjIxMDdiZGQxMzNjZTNlMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTMtMDctMTQgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5l
dD4KKworICAgICAgICBbV0syXVtTb3VwXSBBZGQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg2NTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHBy
aXZhdGUgYnJvd3NpbmcgaW4gV0syIGJ5IGltcGxlbWVudGluZyBwcml2YXRlIGJyb3dzaW5nCisg
ICAgICAgIHJlbGF0ZWQgbWV0aG9kcyBpbiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgQWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydCBtZXRob2RzLiBDb3BpZWQgZnJvbSB0aGUg
TWFjIHBvcnQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNl
dFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICBJbnZva2UgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbiB3aGVuCisgICAgICAgIHBy
aXZhdGUgYnJvd3NpbmcgaXMgZW5hYmxlZCBpbiB0aGUgc2V0dGluZ3MuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBJbml0aWFsaXplIHRoZSBwcml2YXRlIGJyb3dz
aW5nIHNlc3Npb24gc3RvcmFnZSBpZGVudGlmaWVyIGJhc2UuCisgICAgICAgIEN1cnJlbnRseSwg
dGhlIGlkZW50aWZpZXIgaXMgaGFyZC1jb2RlZCB0byAiUHJvY2Vzc05hbWUiIGFuZCBub3QgdXNl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgIEFkZCBVU0UoU09VUCkgZ3VhcmQuCisKIDIwMTMtMDctMTAgIFJvZ2Vy
IEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBQbHVnaW5zIHRoYXQgZG9u
J3Qgc3VwcG9ydCBzbmFwc2hvdHRpbmcgc2hvdWxkIG5vdCBhbGwgYXV0b3N0YXJ0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKaW5kZXggMDMzMjQ5YTA2MWQ4OWY5MDg5ODI5MWYwY2RiMTZkMDdkYzA2YzBiYi4uZDAx
OWIzMzQ4ZTllOWVkMTExNzk2YmRiM2Q5ODcxODI1OTQxZTc1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBA
IC01MCwxMSArNTAsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc3dpdGNoVG9OZXdU
ZXN0aW5nU2Vzc2lvbigpOwogCisgICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBj
b25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQorCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0Uo
Q0ZORVRXT1JLKQogICAgIC8vIE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlv
biBkZWZhdWx0IHNob3VsZCBiZSB1c2VkLgogICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxh
dGZvcm1TZXNzaW9uKCkgeyByZXR1cm4gbV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KICAgICBS
ZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSgpIGNvbnN0Owot
ICAgIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc1By
aXZhdGU7IH0KICNlbGlmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0U291cFNlc3Npb24oU291cFNl
c3Npb24qIHNlc3Npb24pIHsgbV9zZXNzaW9uID0gc2Vzc2lvbjsgfQogICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbjsgfQpAQCAtNjksMTMgKzcw
LDEzIEBAIHByaXZhdGU6CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFJldGFpblB0cjxDRlVS
TFN0b3JhZ2VTZXNzaW9uUmVmPik7CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CiAgICAg
UmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IG1fcGxhdGZvcm1TZXNzaW9uOwotICAg
IGJvb2wgbV9pc1ByaXZhdGU7CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNl
c3Npb24oU291cFNlc3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOwogI2Vsc2UK
ICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgorICAgIGJv
b2wgbV9pc1ByaXZhdGU7CiB9OwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZORVRXT1JL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25TdHViLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5kZXggYmY4NDBiZGRlNzU5M2VjODViNDI1NDJi
MjhhMzcyN2RjODJiNDczZC4uODY4ODQ5MTMzYzk4Nzg5MDExNWZmNTE2ZTY5NTY5NzZiNWU0YjVh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25TdHViLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24oTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkK
KyAgICAsIG1faXNQcml2YXRlKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggYmI0ZmU1YmFiMzM0MmUxZjc4
M2U2NTczNzVmZDE4MmMxZjdkOTk4Yy4uN2Y4OWE0ZjAzZDEzNzFjOWM2MmVmNGMzZDA0Nzc4NTNh
NDhhNjA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGxl
ZE9yQ2xpZW50bGVzcygpOwogICAgIHZvaWQgZW5zdXJlUmVhZEJ1ZmZlcigpOwogICAgIHN0YXRp
YyBTb3VwU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24oKTsKKyAgICBzdGF0aWMgU291cFNlc3Npb24q
IGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGlj
IHVpbnQ2NF90IGdldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCopOwog
ICAgIHN0YXRpYyB2b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0
cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmlu
ZyYgaG9zdCwgR1Rsc0NlcnRpZmljYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggMDMyOTM0YmQxN2Q4
NzkxZTFhYmFjZmNlNmI3YmVjNDczZTNiNjcxNS4uZTUyNzY1MzZhY2I4OTk1YzMxMGI3Mzc0ODgy
OTFmM2NkYTM5MWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtNTYsNiArNTYsMTUgQEAgU291cENvb2tp
ZUphciogc291cENvb2tpZUphcigpCiAgICAgcmV0dXJuIGphcjsKIH0KIAorU291cENvb2tpZUph
ciogY3JlYXRlUHJpdmF0ZUJyb3dzaW5nQ29va2llSmFyKCkKK3sKKyAgICBTb3VwQ29va2llSmFy
KiBqYXIgPSBzb3VwX2Nvb2tpZV9qYXJfbmV3KCk7CisKKyAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0
X2FjY2VwdF9wb2xpY3koamFyLCBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZ
KTsKKworICAgIHJldHVybiBqYXI7Cit9CisKIHZvaWQgc2V0U291cENvb2tpZUphcihTb3VwQ29v
a2llSmFyKiBqYXIpCiB7CiAgICAgZGVmYXVsdENvb2tpZUphcigpID0gamFyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKaW5k
ZXggMjg5MzBjZTA0YzgwYWE0NmMyYmY1YTQ5ZGQyOGNjMGI4M2UxZWM4YS4uYjk0OWVmOGZhMWIw
M2QxMTM5Njg4ZDFmMDRiOWFiMTk5NDQxOWNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oCkBAIC0zNCw2ICszNCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNvdXBDb29raWVKYXIqIHNvdXBDb29raWVKYXIoKTsKIHZv
aWQgc2V0U291cENvb2tpZUphcihTb3VwQ29va2llSmFyKik7CiAKK1NvdXBDb29raWVKYXIqIGNy
ZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcigpOworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGRkNTZlMmI4OWY1MWNkNzdjY2IyMDI3M2Y3
YTJjNWQzOGViZmVhZDAuLmJjMDY3Yjc1ZjUxMGMxMWU2ZDAzZDgxNDJlM2JmMWU4MjFjZWNlNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMwLDExICszMCwxMyBA
QAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAg
OiBtX3Nlc3Npb24oc2Vzc2lvbikKKyAgICAsIG1faXNQcml2YXRlKGZhbHNlKQogewogfQogCkBA
IC01OCwxMCArNjAsMTQgQEAgUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlRGVmYXVsdFNlc3Npb24oY28KICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNl
c3Npb24oKSkpOwogfQogCi1QYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmlu
ZyYpCitQYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
ckJhc2UpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7
CisgICAgU3RyaW5nIGlkZW50aWZpZXIgPSBtYWtlU3RyaW5nKGlkZW50aWZpZXJCYXNlLCAiLlBy
aXZhdGVCcm93c2luZyIpOworCisgICAgT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gc2Vz
c2lvbiA9IGFkb3B0UHRyKG5ldyBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oaWRlbnRpZmllckJhc2UpKSk7CisgICAgc2Vz
c2lvbi0+bV9pc1ByaXZhdGUgPSB0cnVlOworCisgICAgcmV0dXJuIHNlc3Npb24ucmVsZWFzZSgp
OwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vz
c2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDhlZmFhNjdiNzVhZDgzZjIyYTdmMDdl
ODgwNjNhM2M0ZWEzYzhkY2YuLjMzMTIxZThjZjQ5MTVlODRhMWNiMGE2MTU3Y2NhNjRiOGUwZGYy
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0xMzcwLDkgKzEzNzAsOCBAQCBzdGF0aWMg
dm9pZCBhdXRoZW50aWNhdGVDYWxsYmFjayhTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3Nh
Z2UqIHNvdXBNZXNzYWdlLAogICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNlc3Npb24sIHNvdXBNZXNzYWdlLCBzb3Vw
QXV0aCwgcmV0cnlpbmcsIGhhbmRsZS5nZXQoKSkpOwogfQogCi1Tb3VwU2Vzc2lvbiogUmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKK3N0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291
cFNlc3Npb24oKQogewotICAgIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CiAgICAg
Ly8gVmFsdWVzIHRha2VuIGZyb20gaHR0cDovL3d3dy5icm93c2Vyc2NvcGUub3JnLyAgZm9sbG93
aW5nCiAgICAgLy8gdGhlIHJ1bGUgIkRvIFdoYXQgRXZlcnkgT3RoZXIgTW9kZXJuIEJyb3dzZXIg
SXMgRG9pbmciLiBUaGV5IHNlZW0KICAgICAvLyB0byBzaWduaWZpY2FudGx5IGltcHJvdmUgcGFn
ZSBsb2FkaW5nIHRpbWUgY29tcGFyZWQgdG8gc291cCdzCkBAIC0xMzgwLDI2ICsxMzc5LDM4IEBA
IFNvdXBTZXNzaW9uKiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKQogICAgIHN0YXRp
YyBjb25zdCBpbnQgbWF4Q29ubmVjdGlvbnMgPSAzNTsKICAgICBzdGF0aWMgY29uc3QgaW50IG1h
eENvbm5lY3Rpb25zUGVySG9zdCA9IDY7CiAKLSAgICBpZiAoIXNlc3Npb24pIHsKLSAgICAgICAg
c2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0
KHNlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TLCBt
YXhDb25uZWN0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09O
TlNfUEVSX0hPU1QsIG1heENvbm5lY3Rpb25zUGVySG9zdCwKLSAgICAgICAgICAgICAgICAgICAg
IFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNP
REVSLAotICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZ
UEUsIFNPVVBfVFlQRV9DT05URU5UX1NOSUZGRVIsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQ
X1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0RF
RkFVTFQsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fVVNFX1RIUkVBRF9DT05U
RVhULCBUUlVFLAotICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICAgICAgIGdfc2lnbmFs
X2Nvbm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRl
Q2FsbGJhY2spLCAwKTsKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9h
c3luY19uZXcoKTsKKyAgICBnX29iamVjdF9zZXQoc2Vzc2lvbiwKKyAgICAgICAgICAgICAgICAg
U09VUF9TRVNTSU9OX01BWF9DT05OUywgbWF4Q29ubmVjdGlvbnMsCisgICAgICAgICAgICAgICAg
IFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIG1heENvbm5lY3Rpb25zUGVySG9zdCwK
KyAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBf
VFlQRV9DT05URU5UX0RFQ09ERVIsCisgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERf
RkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSLAorICAgICAgICAgICAg
ICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JF
U09MVkVSX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9VU0VfVEhSRUFE
X0NPTlRFWFQsIFRSVUUsCisgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGdfc2lnbmFsX2Nv
bm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2Fs
bGJhY2spLCAwKTsKIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgICAgICBnX3NpZ25hbF9j
b25uZWN0KHNlc3Npb24sICJyZXF1ZXN0LXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RTdGFy
dGVkQ2FsbGJhY2spLCAwKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJyZXF1ZXN0
LXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RTdGFydGVkQ2FsbGJhY2spLCAwKTsKICNlbmRp
ZgotICAgIH0KIAogICAgIHJldHVybiBzZXNzaW9uOwogfQogCitTb3VwU2Vzc2lvbiogUmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKK3sKKyAgICBzdGF0aWMgU291cFNlc3Npb24qIHNl
c3Npb24gPSBjcmVhdGVTb3VwU2Vzc2lvbigpOworICAgIHJldHVybiBzZXNzaW9uOworfQorCitT
b3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKK3sKKyAgICAvLyBGSVhNRTogSGFuZGxlIGlk
ZW50aWZpZXJCYXNlCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBjcmVhdGVTb3VwU2Vzc2lv
bigpOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05f
RkVBVFVSRShjcmVhdGVQcml2YXRlQnJvd3NpbmdDb29raWVKYXIoKSkpOworICAgIHJldHVybiBz
ZXNzaW9uOworfQorCiB1aW50NjRfdCBSZXNvdXJjZUhhbmRsZTo6Z2V0U291cFJlcXVlc3RJbml0
aWF0aW5nUGFnZUlEKFNvdXBSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIHVpbnQ2NF90KiBpbml0
aWF0aW5nUGFnZUlEUHRyID0gc3RhdGljX2Nhc3Q8dWludDY0X3QqPihnX29iamVjdF9nZXRfZGF0
YShHX09CSkVDVChyZXF1ZXN0KSwgZ1NvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREtleSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBlZjRhODJmNmU1ZDA3ZmNmN2Q5ODc2NTg2MDU0NWU5
ZjIxZGVhMzZhLi40Njg1NTg5YzBkNmU2NDVmM2QwNjU2YzhkZWIxOTRmNjhlNGFlZTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzA0LDcgKzMwNCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2ViUGFnZUdyb3VwUHJveHkqIHBh
Z2VHcm91CiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdl
YlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKIHsKICAgICAvLyBGSVhN
RSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlzIHRlc3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsg
d2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTUyNzQ+LgotI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKKyNpZiBQ
TEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIGlmIChlbmFi
bGVkKQogICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IGI0MDI5ZGNhZjExNTIxYjBmY2M1MzRjNGE0NWVm
M2Y4NTNjODk4YTkuLmNlNzdlNDdhMTY4ZGIyOTBjNDQ2Njc0NTM5MTk1YTI2ODUwY2IzNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAgSW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwxMCArMzAsNDggQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKIAorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2YXRlU2Vzc2lvbjsKK3N0YXRpYyBTdHJpbmcqIGlkZW50
aWZpZXJCYXNlOworCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVC
cm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJiBiYXNlKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBkZWxldGUgaWRlbnRpZmllckJh
c2U7CisKKyAgICBpZGVudGlmaWVyQmFzZSA9IG5ldyBTdHJpbmcoYmFzZSk7Cit9CisKK3ZvaWQg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChwcml2YXRlU2Vzc2lv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGJhc2U7CisgICAgaWYgKCFpZGVudGlm
aWVyQmFzZSkKKyAgICAgICAgYmFzZSA9ICJQcm9jZXNzTmFtZSI7IC8vIERvbid0IGhhcmQtY29k
ZSB0aGUgaWRlbnRpZmllciBiYXNlLgorICAgIGVsc2UKKyAgICAgICAgYmFzZSA9ICppZGVudGlm
aWVyQmFzZTsKKworICAgIHByaXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
cmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGJhc2UpLmxlYWtQdHIoKTsKK30KKwordm9pZCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGRlbGV0ZSBwcml2YXRlU2Vz
c2lvbjsKKyAgICBwcml2YXRlU2Vzc2lvbiA9IDA7Cit9CisKIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogICAgIDog
RnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZS0+Y29yZUZyYW1lKCkpCiAgICAgLCBtX2luaXRp
YXRpbmdQYWdlSUQoMCkKQEAgLTQzLDYgKzgyLDEwIEBAIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogCiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9u
KCkgY29uc3QKIHsKKyAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYmIGZy
YW1lKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuICpwcml2YXRlU2Vzc2lvbjsKKyAgICB9CisKICAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggY2EyMmIyYzQzOWY5NDMxMzZhYzg3
YjViOWEwZGJhYjZkMjNhMDdlZS4uODY3ZDM4ZGQ5ZDI0ZDg3NTMyYjc5Mjc0YzMxYzNmZTU2N2Ew
YWQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
CkBAIC00MSw2ICs0MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyB2
b2lkIHNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3Qg
U3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
OworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisKIHBy
aXZhdGU6CiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTkwNDE1
YzU4MDYxMzllNmUwZDFlMTVlMDZlM2I3NDA4ZDBiOTU2NC4uM2ViMjcyMmE2YzQ2MDliZDA2ZDhl
YzhlY2U0YTkwMWU2NjFmNjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50Lmgi
CiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIK
KyNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKQEAgLTI0NDIsNyArMjQ0Mywx
NCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2Vz
U3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9jYWxTdG9yYWdlRW5hYmxl
ZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZEtleSgp
KSk7Ci0gICAgc2V0dGluZ3MtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5
KCkpKTsKKyAgICBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQgPSBzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSk7
CisgICAgc2V0dGluZ3MtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCk7CisjaWYgVVNFKFNPVVApCisgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQp
CisgICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKTsKKyAgICBlbHNlCisgICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisjZW5kaWYKICAgICBzZXR0aW5ncy0+
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdz
LT5zZXRKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZEtleSgpKSk7
CiAgICAgc2V0dGluZ3MtPnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnRleHRBcmVhc0FyZVJlc2l6YWJsZUtleSgpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzM2QzMGNmMDVh
ZDNhOTEwNzdhZjc1ZTYwMTBjZTVlYTFjNjU3ZDViLi5jMGNiNGYyNTBkMjExNTMxOTEzZWRjMzdh
ODhjZjE1YzNjYTc4NGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKQEAgLTM0Miw2ICszNDIsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZQogCiAjaWYgUExB
VEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQogICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UocGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKKyNlbGlmIFVTRShTT1VQKQorICAgIC8v
IEZJWE1FOiBEb24ndCBoYXJkLWNvZGUgdGhlIGlkZW50aWZpZXIgYmFzZS4KKyAgICBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50
aWZpZXJCYXNlKCJQcm9jZXNzTmFtZSIpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQpAQCAtNDUzLDcgKzQ1Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJk
QWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogCiB2b2lk
IFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewotI2lmIFBMQVRG
T1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5F
VFdPUkspIHx8IFVTRShTT1VQKQogICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206640</attachid>
            <date>2013-07-14 22:48:26 -0700</date>
            <delta_ts>2013-07-14 22:56:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130715144712.patch</filename>
            <type>text/plain</type>
            <size>19752</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1NmUzNzJlNTRjYjI2
MjQyZjkzNjFjNzczMWIwMGM2ZjQ4NmJjYy4uZGQ2MjRlZDlhMzQ1NWFlYjExNTdkZjFiNjk3MjNi
MmE1NDE4ZDk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm8gdXNlIHRoZSBkaXNrIGNhY2hlIGZlYXR1cmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHByaXZhdGUgYnJv
d3NpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjppc1By
aXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICBNb3ZlIGlzUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpIG91dCBvZiBQTEFURk9STShNQUMpIGd1YXJkIGFuZCBtYWtlIGl0CisgICAgICAgIGNy
b3NzLXBsYXRmb3JtLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25TdHViLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgSW5pdGlhbGl6ZSBtX2lzUHJpdmF0
ZSB0byBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aDoKKyAgICAgICAgQWRkIGEgZmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgcHJpdmF0ZSBicm93
c2luZyBzZXNzaW9uIGZvciBzb3VwLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUHJpdmF0ZUJyb3dz
aW5nQ29va2llSmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFy
U291cC5oOgorICAgICAgICBBZGQgYSBtZXRob2QgdG8gY3JlYXRlIGEgbm9uLXBlcnNpc3RlbnQg
Y29va2llIGphciBmb3IgcHJpdmF0ZSBicm93c2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAg
ICAgSW5pdGlhbGl6ZSBtX2lzUHJpdmF0ZSB0byBmYWxzZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIEltcGxlbWVudCB0aGUgbWV0aG9kIGJ5IGludm9raW5nIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3Vw
U2Vzc2lvbik6CisgICAgICAgIEV4dHJhY3QgY29tbW9uIHNvdXAgc2Vzc2lvbiBjcmVhdGlvbiBj
b2RlIHNvIHRoYXQgYm90aCBkZWZhdWx0U2Vzc2lvbgorICAgICAgICBhbmQgY3JlYXRlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbiBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlIGEgc291cAor
ICAgICAgICBzZXNzaW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1
bHRTZXNzaW9uKToKKyAgICAgICAgQ2hhbmdlIHRvIHVzZSBjcmVhdGVTb3VwU2Vzc2lvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgQ3JlYXRlIGEgc2Vzc2lvbiB3aGljaCB1c2VzIGEgbm9uLXBlcnNpc3Rl
bnQgY29va2llIGphci4KKwogMjAxMy0wNy0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBNYWMgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE1MjYxNS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlMzZmMzBiYTEwODJhMTIxMjdhZDc5NzJhMWRlOGJjYjQyMzliNjE1Li5kODVl
Mzk2N2RmMzUwOGQ3YzY1YjU0YjIxMDdiZGQxMzNjZTNlMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTMtMDctMTQgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5l
dD4KKworICAgICAgICBbV0syXVtTb3VwXSBBZGQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg2NTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHBy
aXZhdGUgYnJvd3NpbmcgaW4gV0syIGJ5IGltcGxlbWVudGluZyBwcml2YXRlIGJyb3dzaW5nCisg
ICAgICAgIHJlbGF0ZWQgbWV0aG9kcyBpbiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgQWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydCBtZXRob2RzLiBDb3BpZWQgZnJvbSB0aGUg
TWFjIHBvcnQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNl
dFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVz
dHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICBJbnZva2UgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbiB3aGVuCisgICAgICAgIHBy
aXZhdGUgYnJvd3NpbmcgaXMgZW5hYmxlZCBpbiB0aGUgc2V0dGluZ3MuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBJbml0aWFsaXplIHRoZSBwcml2YXRlIGJyb3dz
aW5nIHNlc3Npb24gc3RvcmFnZSBpZGVudGlmaWVyIGJhc2UuCisgICAgICAgIEN1cnJlbnRseSwg
dGhlIGlkZW50aWZpZXIgaXMgaGFyZC1jb2RlZCB0byAiUHJvY2Vzc05hbWUiIGFuZCBub3QgdXNl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgIEFkZCBVU0UoU09VUCkgZ3VhcmQuCisKIDIwMTMtMDctMTAgIFJvZ2Vy
IEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBQbHVnaW5zIHRoYXQgZG9u
J3Qgc3VwcG9ydCBzbmFwc2hvdHRpbmcgc2hvdWxkIG5vdCBhbGwgYXV0b3N0YXJ0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKaW5kZXggMDMzMjQ5YTA2MWQ4OWY5MDg5ODI5MWYwY2RiMTZkMDdkYzA2YzBiYi4uZDAx
OWIzMzQ4ZTllOWVkMTExNzk2YmRiM2Q5ODcxODI1OTQxZTc1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBA
IC01MCwxMSArNTAsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc3dpdGNoVG9OZXdU
ZXN0aW5nU2Vzc2lvbigpOwogCisgICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBj
b25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQorCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0Uo
Q0ZORVRXT1JLKQogICAgIC8vIE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlv
biBkZWZhdWx0IHNob3VsZCBiZSB1c2VkLgogICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxh
dGZvcm1TZXNzaW9uKCkgeyByZXR1cm4gbV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KICAgICBS
ZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSgpIGNvbnN0Owot
ICAgIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc1By
aXZhdGU7IH0KICNlbGlmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0U291cFNlc3Npb24oU291cFNl
c3Npb24qIHNlc3Npb24pIHsgbV9zZXNzaW9uID0gc2Vzc2lvbjsgfQogICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbjsgfQpAQCAtNjksMTMgKzcw
LDEzIEBAIHByaXZhdGU6CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFJldGFpblB0cjxDRlVS
TFN0b3JhZ2VTZXNzaW9uUmVmPik7CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CiAgICAg
UmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IG1fcGxhdGZvcm1TZXNzaW9uOwotICAg
IGJvb2wgbV9pc1ByaXZhdGU7CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNl
c3Npb24oU291cFNlc3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOwogI2Vsc2UK
ICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgorICAgIGJv
b2wgbV9pc1ByaXZhdGU7CiB9OwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZORVRXT1JL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25TdHViLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5kZXggYmY4NDBiZGRlNzU5M2VjODViNDI1NDJi
MjhhMzcyN2RjODJiNDczZC4uODY4ODQ5MTMzYzk4Nzg5MDExNWZmNTE2ZTY5NTY5NzZiNWU0YjVh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25TdHViLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24oTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkK
KyAgICAsIG1faXNQcml2YXRlKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggYmI0ZmU1YmFiMzM0MmUxZjc4
M2U2NTczNzVmZDE4MmMxZjdkOTk4Yy4uN2Y4OWE0ZjAzZDEzNzFjOWM2MmVmNGMzZDA0Nzc4NTNh
NDhhNjA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGxl
ZE9yQ2xpZW50bGVzcygpOwogICAgIHZvaWQgZW5zdXJlUmVhZEJ1ZmZlcigpOwogICAgIHN0YXRp
YyBTb3VwU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24oKTsKKyAgICBzdGF0aWMgU291cFNlc3Npb24q
IGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGlj
IHVpbnQ2NF90IGdldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCopOwog
ICAgIHN0YXRpYyB2b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0
cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmlu
ZyYgaG9zdCwgR1Rsc0NlcnRpZmljYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggMDMyOTM0YmQxN2Q4
NzkxZTFhYmFjZmNlNmI3YmVjNDczZTNiNjcxNS4uZTUyNzY1MzZhY2I4OTk1YzMxMGI3Mzc0ODgy
OTFmM2NkYTM5MWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtNTYsNiArNTYsMTUgQEAgU291cENvb2tp
ZUphciogc291cENvb2tpZUphcigpCiAgICAgcmV0dXJuIGphcjsKIH0KIAorU291cENvb2tpZUph
ciogY3JlYXRlUHJpdmF0ZUJyb3dzaW5nQ29va2llSmFyKCkKK3sKKyAgICBTb3VwQ29va2llSmFy
KiBqYXIgPSBzb3VwX2Nvb2tpZV9qYXJfbmV3KCk7CisKKyAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0
X2FjY2VwdF9wb2xpY3koamFyLCBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZ
KTsKKworICAgIHJldHVybiBqYXI7Cit9CisKIHZvaWQgc2V0U291cENvb2tpZUphcihTb3VwQ29v
a2llSmFyKiBqYXIpCiB7CiAgICAgZGVmYXVsdENvb2tpZUphcigpID0gamFyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKaW5k
ZXggMjg5MzBjZTA0YzgwYWE0NmMyYmY1YTQ5ZGQyOGNjMGI4M2UxZWM4YS4uYjk0OWVmOGZhMWIw
M2QxMTM5Njg4ZDFmMDRiOWFiMTk5NDQxOWNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oCkBAIC0zNCw2ICszNCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNvdXBDb29raWVKYXIqIHNvdXBDb29raWVKYXIoKTsKIHZv
aWQgc2V0U291cENvb2tpZUphcihTb3VwQ29va2llSmFyKik7CiAKK1NvdXBDb29raWVKYXIqIGNy
ZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcigpOworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGRkNTZlMmI4OWY1MWNkNzdjY2IyMDI3M2Y3
YTJjNWQzOGViZmVhZDAuLmJjMDY3Yjc1ZjUxMGMxMWU2ZDAzZDgxNDJlM2JmMWU4MjFjZWNlNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMwLDExICszMCwxMyBA
QAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAg
OiBtX3Nlc3Npb24oc2Vzc2lvbikKKyAgICAsIG1faXNQcml2YXRlKGZhbHNlKQogewogfQogCkBA
IC01OCwxMCArNjAsMTQgQEAgUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlRGVmYXVsdFNlc3Npb24oY28KICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNl
c3Npb24oKSkpOwogfQogCi1QYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmlu
ZyYpCitQYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
ckJhc2UpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7
CisgICAgU3RyaW5nIGlkZW50aWZpZXIgPSBtYWtlU3RyaW5nKGlkZW50aWZpZXJCYXNlLCAiLlBy
aXZhdGVCcm93c2luZyIpOworCisgICAgT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gc2Vz
c2lvbiA9IGFkb3B0UHRyKG5ldyBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oaWRlbnRpZmllckJhc2UpKSk7CisgICAgc2Vz
c2lvbi0+bV9pc1ByaXZhdGUgPSB0cnVlOworCisgICAgcmV0dXJuIHNlc3Npb24ucmVsZWFzZSgp
OwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vz
c2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDhlZmFhNjdiNzVhZDgzZjIyYTdmMDdl
ODgwNjNhM2M0ZWEzYzhkY2YuLjMzMTIxZThjZjQ5MTVlODRhMWNiMGE2MTU3Y2NhNjRiOGUwZGYy
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0xMzcwLDkgKzEzNzAsOCBAQCBzdGF0aWMg
dm9pZCBhdXRoZW50aWNhdGVDYWxsYmFjayhTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3Nh
Z2UqIHNvdXBNZXNzYWdlLAogICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNlc3Npb24sIHNvdXBNZXNzYWdlLCBzb3Vw
QXV0aCwgcmV0cnlpbmcsIGhhbmRsZS5nZXQoKSkpOwogfQogCi1Tb3VwU2Vzc2lvbiogUmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKK3N0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291
cFNlc3Npb24oKQogewotICAgIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CiAgICAg
Ly8gVmFsdWVzIHRha2VuIGZyb20gaHR0cDovL3d3dy5icm93c2Vyc2NvcGUub3JnLyAgZm9sbG93
aW5nCiAgICAgLy8gdGhlIHJ1bGUgIkRvIFdoYXQgRXZlcnkgT3RoZXIgTW9kZXJuIEJyb3dzZXIg
SXMgRG9pbmciLiBUaGV5IHNlZW0KICAgICAvLyB0byBzaWduaWZpY2FudGx5IGltcHJvdmUgcGFn
ZSBsb2FkaW5nIHRpbWUgY29tcGFyZWQgdG8gc291cCdzCkBAIC0xMzgwLDI2ICsxMzc5LDM4IEBA
IFNvdXBTZXNzaW9uKiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKQogICAgIHN0YXRp
YyBjb25zdCBpbnQgbWF4Q29ubmVjdGlvbnMgPSAzNTsKICAgICBzdGF0aWMgY29uc3QgaW50IG1h
eENvbm5lY3Rpb25zUGVySG9zdCA9IDY7CiAKLSAgICBpZiAoIXNlc3Npb24pIHsKLSAgICAgICAg
c2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0
KHNlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TLCBt
YXhDb25uZWN0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09O
TlNfUEVSX0hPU1QsIG1heENvbm5lY3Rpb25zUGVySG9zdCwKLSAgICAgICAgICAgICAgICAgICAg
IFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNP
REVSLAotICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZ
UEUsIFNPVVBfVFlQRV9DT05URU5UX1NOSUZGRVIsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQ
X1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0RF
RkFVTFQsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fVVNFX1RIUkVBRF9DT05U
RVhULCBUUlVFLAotICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICAgICAgIGdfc2lnbmFs
X2Nvbm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRl
Q2FsbGJhY2spLCAwKTsKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9h
c3luY19uZXcoKTsKKyAgICBnX29iamVjdF9zZXQoc2Vzc2lvbiwKKyAgICAgICAgICAgICAgICAg
U09VUF9TRVNTSU9OX01BWF9DT05OUywgbWF4Q29ubmVjdGlvbnMsCisgICAgICAgICAgICAgICAg
IFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIG1heENvbm5lY3Rpb25zUGVySG9zdCwK
KyAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBf
VFlQRV9DT05URU5UX0RFQ09ERVIsCisgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERf
RkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSLAorICAgICAgICAgICAg
ICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JF
U09MVkVSX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9VU0VfVEhSRUFE
X0NPTlRFWFQsIFRSVUUsCisgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGdfc2lnbmFsX2Nv
bm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2Fs
bGJhY2spLCAwKTsKIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgICAgICBnX3NpZ25hbF9j
b25uZWN0KHNlc3Npb24sICJyZXF1ZXN0LXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RTdGFy
dGVkQ2FsbGJhY2spLCAwKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJyZXF1ZXN0
LXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RTdGFydGVkQ2FsbGJhY2spLCAwKTsKICNlbmRp
ZgotICAgIH0KIAogICAgIHJldHVybiBzZXNzaW9uOwogfQogCitTb3VwU2Vzc2lvbiogUmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKK3sKKyAgICBzdGF0aWMgU291cFNlc3Npb24qIHNl
c3Npb24gPSBjcmVhdGVTb3VwU2Vzc2lvbigpOworICAgIHJldHVybiBzZXNzaW9uOworfQorCitT
b3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKK3sKKyAgICAvLyBGSVhNRTogSGFuZGxlIGlk
ZW50aWZpZXJCYXNlCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBjcmVhdGVTb3VwU2Vzc2lv
bigpOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05f
RkVBVFVSRShjcmVhdGVQcml2YXRlQnJvd3NpbmdDb29raWVKYXIoKSkpOworICAgIHJldHVybiBz
ZXNzaW9uOworfQorCiB1aW50NjRfdCBSZXNvdXJjZUhhbmRsZTo6Z2V0U291cFJlcXVlc3RJbml0
aWF0aW5nUGFnZUlEKFNvdXBSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIHVpbnQ2NF90KiBpbml0
aWF0aW5nUGFnZUlEUHRyID0gc3RhdGljX2Nhc3Q8dWludDY0X3QqPihnX29iamVjdF9nZXRfZGF0
YShHX09CSkVDVChyZXF1ZXN0KSwgZ1NvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREtleSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBlZjRhODJmNmU1ZDA3ZmNmN2Q5ODc2NTg2MDU0NWU5
ZjIxZGVhMzZhLi40Njg1NTg5YzBkNmU2NDVmM2QwNjU2YzhkZWIxOTRmNjhlNGFlZTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzA0LDcgKzMwNCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2ViUGFnZUdyb3VwUHJveHkqIHBh
Z2VHcm91CiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdl
YlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKIHsKICAgICAvLyBGSVhN
RSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlzIHRlc3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsg
d2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTUyNzQ+LgotI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKKyNpZiBQ
TEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIGlmIChlbmFi
bGVkKQogICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IGI0MDI5ZGNhZjExNTIxYjBmY2M1MzRjNGE0NWVm
M2Y4NTNjODk4YTkuLmRlNTA4MDFjMTU1Njk4YmFiYTJjY2ZiY2ViNWE3MmNhOTQ2MWUyM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAgSW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwxMCArMzAsNDggQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKIAorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2YXRlU2Vzc2lvbjsKK3N0YXRpYyBTdHJpbmcqIGlkZW50
aWZpZXJCYXNlOworCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVC
cm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJiBiYXNlKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBkZWxldGUgaWRlbnRpZmllckJh
c2U7CisKKyAgICBpZGVudGlmaWVyQmFzZSA9IG5ldyBTdHJpbmcoYmFzZSk7Cit9CisKK3ZvaWQg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChwcml2YXRlU2Vzc2lv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGJhc2U7CisgICAgaWYgKCFpZGVudGlm
aWVyQmFzZSkKKyAgICAgICAgYmFzZSA9ICJQcm9jZXNzTmFtZSI7IC8vIERvbid0IGhhcmQtY29k
ZSB0aGUgaWRlbnRpZmllciBiYXNlLgorICAgIGVsc2UKKyAgICAgICAgYmFzZSA9ICppZGVudGlm
aWVyQmFzZTsKKworICAgIHByaXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
cmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGJhc2UpLmxlYWtQdHIoKTsKK30KKwordm9pZCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGRlbGV0ZSBwcml2YXRlU2Vz
c2lvbjsKKyAgICBwcml2YXRlU2Vzc2lvbiA9IDA7Cit9CisKIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogICAgIDog
RnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZS0+Y29yZUZyYW1lKCkpCiAgICAgLCBtX2luaXRp
YXRpbmdQYWdlSUQoMCkKQEAgLTQzLDYgKzgyLDkgQEAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJhbWUpCiAKIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24o
KSBjb25zdAogeworICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkgJiYgZnJh
bWUoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm4gKnByaXZhdGVTZXNzaW9uOworCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IGNhMjJiMmM0MzlmOTQzMTM2YWM4N2I1YjlhMGRi
YWI2ZDIzYTA3ZWUuLjg2N2QzOGRkOWQyNGQ4NzUzMmI3OTI3NGMzMWMzZmU1NjdhMGFkOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNDEs
NiArNDEsMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgdm9pZCBzZXRQ
cml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYp
OworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKyAgICBz
dGF0aWMgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworCiBwcml2YXRlOgog
ICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE5MDQxNWM1ODA2MTM5
ZTZlMGQxZTE1ZTA2ZTNiNzQwOGQwYjk1NjQuLjNlYjI3MjJhNmM0NjA5YmQwNmQ4ZWM4ZWNlNGE5
MDFlNjYxZjY2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1
ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVk
ZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCkBAIC0yNDQyLDcgKzI0NDMsMTQgQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Onhzc0F1ZGl0b3JFbmFibGVkS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXkoKSkpOwotICAg
IHNldHRpbmdzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSk7Cisg
ICAgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpOworICAgIHNl
dHRpbmdzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQp
OworI2lmIFVTRShTT1VQKQorICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorICAgICAg
ICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KCk7CisgICAgZWxzZQorICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworI2VuZGlmCiAgICAgc2V0dGluZ3MtPnNldERldmVs
b3BlckV4dHJhc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2
YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWRLZXkoKSkpOwogICAgIHNl
dHRpbmdzLT5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0QXJlYXNBcmVSZXNpemFibGVLZXkoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzNkMzBjZjA1YWQzYTkxMDc3
YWY3NWU2MDEwY2U1ZWExYzY1N2Q1Yi4uYzBjYjRmMjUwZDIxMTUzMTkxM2VkYzM3YTg4Y2YxNWMz
Y2E3ODRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0z
NDIsNiArMzQyLDkgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUKIAogI2lmIFBMQVRGT1JNKE1B
QykgfHwgVVNFKENGTkVUV09SSykKICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRQ
cml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKHBhcmFtZXRlcnMudWlQ
cm9jZXNzQnVuZGxlSWRlbnRpZmllcik7CisjZWxpZiBVU0UoU09VUCkKKyAgICAvLyBGSVhNRTog
RG9uJ3QgaGFyZC1jb2RlIHRoZSBpZGVudGlmaWVyIGJhc2UuCisgICAgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFz
ZSgiUHJvY2Vzc05hbWUiKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
QEAgLTQ1Myw3ICs0NTYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01v
ZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKIAogdm9pZCBXZWJQcm9j
ZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKLSNpZiBQTEFURk9STShNQUMp
IHx8IFVTRShDRk5FVFdPUkspCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8
fCBVU0UoU09VUCkKICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCk7CiAjZW5kaWYKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206641</attachid>
            <date>2013-07-14 22:56:53 -0700</date>
            <delta_ts>2013-07-15 15:33:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130715145540.patch</filename>
            <type>text/plain</type>
            <size>19753</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1NmUzNzJlNTRjYjI2
MjQyZjkzNjFjNzczMWIwMGM2ZjQ4NmJjYy4uNmFmNTIxMjVlMzQwZGFmZTdhYjc2MzkyZGI5MzY5
M2NkZGY2YjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm90IHVzZSB0aGUgZGlzayBjYWNoZSBmZWF0dXJl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyBwcml2YXRlIGJy
b3dzaW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgTW92ZSBpc1ByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKSBvdXQgb2YgUExBVEZPUk0oTUFDKSBndWFyZCBhbmQgbWFrZSBpdAorICAgICAgICBj
cm9zcy1wbGF0Zm9ybS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uU3R1Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIEluaXRpYWxpemUgbV9pc1ByaXZh
dGUgdG8gZmFsc2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
Lmg6CisgICAgICAgIEFkZCBhIGZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIHByaXZhdGUgYnJv
d3Npbmcgc2Vzc2lvbiBmb3Igc291cC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVCcm93
c2luZ0Nvb2tpZUphcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUph
clNvdXAuaDoKKyAgICAgICAgQWRkIGEgbWV0aG9kIHRvIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50
IGNvb2tpZSBqYXIgZm9yIHByaXZhdGUgYnJvd3NpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAg
ICAgIEluaXRpYWxpemUgbV9pc1ByaXZhdGUgdG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAg
ICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBieSBpbnZva2luZyBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbi4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291
cFNlc3Npb24pOgorICAgICAgICBFeHRyYWN0IGNvbW1vbiBzb3VwIHNlc3Npb24gY3JlYXRpb24g
Y29kZSBzbyB0aGF0IGJvdGggZGVmYXVsdFNlc3Npb24KKyAgICAgICAgYW5kIGNyZWF0ZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24gY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHNvdXAK
KyAgICAgICAgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZh
dWx0U2Vzc2lvbik6CisgICAgICAgIENoYW5nZSB0byB1c2UgY3JlYXRlU291cFNlc3Npb24uCisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgIENyZWF0ZSBhIHNlc3Npb24gd2hpY2ggdXNlcyBhIG5vbi1wZXJzaXN0
ZW50IGNvb2tpZSBqYXIuCisKIDIwMTMtMDctMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWFjIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIxNTI2MTUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZTM2ZjMwYmExMDgyYTEyMTI3YWQ3OTcyYTFkZThiY2I0MjM5YjYxNS4uZDg1
ZTM5NjdkZjM1MDhkN2M2NWI1NGIyMTA3YmRkMTMzY2UzZTFkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM2IEBACisyMDEzLTA3LTE0ICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5u
ZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0gQWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBw
cml2YXRlIGJyb3dzaW5nIGluIFdLMiBieSBpbXBsZW1lbnRpbmcgcHJpdmF0ZSBicm93c2luZwor
ICAgICAgICByZWxhdGVkIG1ldGhvZHMgaW4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCk6CisgICAgICAgIEFkZCBVU0UoU09VUCkgZ3VhcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIEFkZCBwcml2YXRlIGJyb3dzaW5nIHN1cHBvcnQgbWV0aG9kcy4gQ29waWVkIGZyb20gdGhl
IE1hYyBwb3J0LgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpz
ZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgSW52b2tlIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gd2hlbgorICAgICAgICBw
cml2YXRlIGJyb3dzaW5nIGlzIGVuYWJsZWQgaW4gdGhlIHNldHRpbmdzLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUgcHJpdmF0ZSBicm93
c2luZyBzZXNzaW9uIHN0b3JhZ2UgaWRlbnRpZmllciBiYXNlLgorICAgICAgICBDdXJyZW50bHks
IHRoZSBpZGVudGlmaWVyIGlzIGhhcmQtY29kZWQgdG8gIlByb2Nlc3NOYW1lIiBhbmQgbm90IHVz
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICBBZGQgVVNFKFNPVVApIGd1YXJkLgorCiAyMDEzLTA3LTEwICBSb2dl
ciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGx1Z2lucyB0aGF0IGRv
bid0IHN1cHBvcnQgc25hcHNob3R0aW5nIHNob3VsZCBub3QgYWxsIGF1dG9zdGFydC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oCmluZGV4IDAzMzI0OWEwNjFkODlmOTA4OTgyOTFmMGNkYjE2ZDA3ZGMwNmMwYmIuLmQw
MTliMzM0OGU5ZTllZDExMTc5NmJkYjNkOTg3MTgyNTk0MWU3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApA
QCAtNTAsMTEgKzUwLDEyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24oKTsKIAorICAgIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1ByaXZhdGU7IH0KKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNF
KENGTkVUV09SSykKICAgICAvLyBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2FzZSBhIEZvdW5kYXRp
b24gZGVmYXVsdCBzaG91bGQgYmUgdXNlZC4KICAgICBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHBs
YXRmb3JtU2Vzc2lvbigpIHsgcmV0dXJuIG1fcGxhdGZvcm1TZXNzaW9uLmdldCgpOyB9CiAgICAg
UmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2UoKSBjb25zdDsK
LSAgICBib29sIGlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNQ
cml2YXRlOyB9CiAjZWxpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldFNvdXBTZXNzaW9uKFNvdXBT
ZXNzaW9uKiBzZXNzaW9uKSB7IG1fc2Vzc2lvbiA9IHNlc3Npb247IH0KICAgICBTb3VwU2Vzc2lv
biogc291cFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb247IH0KQEAgLTY5LDEzICs3
MCwxMyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihSZXRhaW5QdHI8Q0ZV
UkxTdG9yYWdlU2Vzc2lvblJlZj4pOwogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwogICAg
IFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBtX3BsYXRmb3JtU2Vzc2lvbjsKLSAg
ICBib29sIG1faXNQcml2YXRlOwogI2VsaWYgVVNFKFNPVVApCiAgICAgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKFNvdXBTZXNzaW9uKik7CiAgICAgU291cFNlc3Npb24qIG1fc2Vzc2lvbjsKICNlbHNl
CiAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKKyAgICBi
b29sIG1faXNQcml2YXRlOwogfTsKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENGTkVUV09S
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCmluZGV4IGJmODQwYmRkZTc1OTNlYzg1YjQyNTQy
YjI4YTM3MjdkYzgyYjQ3M2QuLjg2ODg0OTEzM2M5ODc4OTAxMTVmZjUxNmU2OTU2OTc2YjVlNGI1
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQp
CisgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IGJiNGZlNWJhYjMzNDJlMWY3
ODNlNjU3Mzc1ZmQxODJjMWY3ZDk5OGMuLjdmODlhNGYwM2QxMzcxYzljNjJlZjRjM2QwNDc3ODUz
YTQ4YTYwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKQEAgLTE2OSw2ICsxNjksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5jZWxs
ZWRPckNsaWVudGxlc3MoKTsKICAgICB2b2lkIGVuc3VyZVJlYWRCdWZmZXIoKTsKICAgICBzdGF0
aWMgU291cFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uKCk7CisgICAgc3RhdGljIFNvdXBTZXNzaW9u
KiBjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRp
YyB1aW50NjRfdCBnZXRTb3VwUmVxdWVzdEluaXRpYXRpbmdQYWdlSUQoU291cFJlcXVlc3QqKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBT
dHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJp
bmcmIGhvc3QsIEdUbHNDZXJ0aWZpY2F0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCmluZGV4IDAzMjkzNGJkMTdk
ODc5MWUxYWJhY2ZjZTZiN2JlYzQ3M2UzYjY3MTUuLmU1Mjc2NTM2YWNiODk5NWMzMTBiNzM3NDg4
MjkxZjNjZGEzOTFlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVKYXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKQEAgLTU2LDYgKzU2LDE1IEBAIFNvdXBDb29r
aWVKYXIqIHNvdXBDb29raWVKYXIoKQogICAgIHJldHVybiBqYXI7CiB9CiAKK1NvdXBDb29raWVK
YXIqIGNyZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcigpCit7CisgICAgU291cENvb2tpZUph
ciogamFyID0gc291cF9jb29raWVfamFyX25ldygpOworCisgICAgc291cF9jb29raWVfamFyX3Nl
dF9hY2NlcHRfcG9saWN5KGphciwgU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9OT19USElSRF9QQVJU
WSk7CisKKyAgICByZXR1cm4gamFyOworfQorCiB2b2lkIHNldFNvdXBDb29raWVKYXIoU291cENv
b2tpZUphciogamFyKQogewogICAgIGRlZmF1bHRDb29raWVKYXIoKSA9IGphcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oCmlu
ZGV4IDI4OTMwY2UwNGM4MGFhNDZjMmJmNWE0OWRkMjhjYzBiODNlMWVjOGEuLmI5NDllZjhmYTFi
MDNkMTEzOTY4OGQxZjA0YjlhYjE5OTQ0MTljYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaApAQCAtMzQsNiArMzQsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTb3VwQ29va2llSmFyKiBzb3VwQ29va2llSmFyKCk7CiB2
b2lkIHNldFNvdXBDb29raWVKYXIoU291cENvb2tpZUphciopOwogCitTb3VwQ29va2llSmFyKiBj
cmVhdGVQcml2YXRlQnJvd3NpbmdDb29raWVKYXIoKTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCBkZDU2ZTJiODlmNTFjZDc3Y2NiMjAyNzNm
N2EyYzVkMzhlYmZlYWQwLi5iYzA2N2I3NWY1MTBjMTFlNmQwM2Q4MTQyZTNiZjFlODIxY2VjZTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0zMCwxMSArMzAsMTMg
QEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNzaW9uKiBzZXNzaW9uKQogICAg
IDogbV9zZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkKIHsKIH0KIApA
QCAtNTgsMTAgKzYwLDE0IEBAIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZURlZmF1bHRTZXNzaW9uKGNvCiAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRT
ZXNzaW9uKCkpKTsKIH0KIAotUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihjb25zdCBTdHJp
bmcmKQorUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXJCYXNlKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRy
OworICAgIFN0cmluZyBpZGVudGlmaWVyID0gbWFrZVN0cmluZyhpZGVudGlmaWVyQmFzZSwgIi5Q
cml2YXRlQnJvd3NpbmciKTsKKworICAgIE93blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHNl
c3Npb24gPSBhZG9wdFB0cihuZXcgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFJlc291cmNlSGFuZGxl
OjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKGlkZW50aWZpZXJCYXNlKSkpOworICAgIHNl
c3Npb24tPm1faXNQcml2YXRlID0gdHJ1ZTsKKworICAgIHJldHVybiBzZXNzaW9uLnJlbGVhc2Uo
KTsKIH0KIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nl
c3Npb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA4ZWZhYTY3Yjc1YWQ4M2YyMmE3ZjA3
ZTg4MDYzYTNjNGVhM2M4ZGNmLi4zMzEyMWU4Y2Y0OTE1ZTg0YTFjYjBhNjE1N2NjYTY0YjhlMGRm
MmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMTM3MCw5ICsxMzcwLDggQEAgc3RhdGlj
IHZvaWQgYXV0aGVudGljYXRlQ2FsbGJhY2soU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNz
YWdlKiBzb3VwTWVzc2FnZSwKICAgICBoYW5kbGUtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShzZXNzaW9uLCBzb3VwTWVzc2FnZSwgc291
cEF1dGgsIHJldHJ5aW5nLCBoYW5kbGUuZ2V0KCkpKTsKIH0KIAotU291cFNlc3Npb24qIFJlc291
cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpCitzdGF0aWMgU291cFNlc3Npb24qIGNyZWF0ZVNv
dXBTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgU291cFNlc3Npb24qIHNlc3Npb24gPSAwOwogICAg
IC8vIFZhbHVlcyB0YWtlbiBmcm9tIGh0dHA6Ly93d3cuYnJvd3NlcnNjb3BlLm9yZy8gIGZvbGxv
d2luZwogICAgIC8vIHRoZSBydWxlICJEbyBXaGF0IEV2ZXJ5IE90aGVyIE1vZGVybiBCcm93c2Vy
IElzIERvaW5nIi4gVGhleSBzZWVtCiAgICAgLy8gdG8gc2lnbmlmaWNhbnRseSBpbXByb3ZlIHBh
Z2UgbG9hZGluZyB0aW1lIGNvbXBhcmVkIHRvIHNvdXAncwpAQCAtMTM4MCwyNiArMTM3OSwzOCBA
QCBTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKICAgICBzdGF0
aWMgY29uc3QgaW50IG1heENvbm5lY3Rpb25zID0gMzU7CiAgICAgc3RhdGljIGNvbnN0IGludCBt
YXhDb25uZWN0aW9uc1Blckhvc3QgPSA2OwogCi0gICAgaWYgKCFzZXNzaW9uKSB7Ci0gICAgICAg
IHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3KCk7Ci0gICAgICAgIGdfb2JqZWN0X3Nl
dChzZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX01BWF9DT05OUywg
bWF4Q29ubmVjdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NP
Tk5TX1BFUl9IT1NULCBtYXhDb25uZWN0aW9uc1Blckhvc3QsCi0gICAgICAgICAgICAgICAgICAg
ICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX0NPTlRFTlRfREVD
T0RFUiwKLSAgICAgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRV9CWV9U
WVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSLAotICAgICAgICAgICAgICAgICAgICAgU09V
UF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9E
RUZBVUxULAotICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX1VTRV9USFJFQURfQ09O
VEVYVCwgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAgICAgICBnX3NpZ25h
bF9jb25uZWN0KHNlc3Npb24sICJhdXRoZW50aWNhdGUiLCBHX0NBTExCQUNLKGF1dGhlbnRpY2F0
ZUNhbGxiYWNrKSwgMCk7CisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBzb3VwX3Nlc3Npb25f
YXN5bmNfbmV3KCk7CisgICAgZ19vYmplY3Rfc2V0KHNlc3Npb24sCisgICAgICAgICAgICAgICAg
IFNPVVBfU0VTU0lPTl9NQVhfQ09OTlMsIG1heENvbm5lY3Rpb25zLAorICAgICAgICAgICAgICAg
ICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TX1BFUl9IT1NULCBtYXhDb25uZWN0aW9uc1Blckhvc3Qs
CisgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRV9CWV9UWVBFLCBTT1VQ
X1RZUEVfQ09OVEVOVF9ERUNPREVSLAorICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fQURE
X0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX0NPTlRFTlRfU05JRkZFUiwKKyAgICAgICAgICAg
ICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9QUk9YWV9S
RVNPTFZFUl9ERUZBVUxULAorICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fVVNFX1RIUkVB
RF9DT05URVhULCBUUlVFLAorICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KHNlc3Npb24sICJhdXRoZW50aWNhdGUiLCBHX0NBTExCQUNLKGF1dGhlbnRpY2F0ZUNh
bGxiYWNrKSwgMCk7CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICAgICAgZ19zaWduYWxf
Y29ubmVjdChzZXNzaW9uLCAicmVxdWVzdC1zdGFydGVkIiwgR19DQUxMQkFDSyhyZXF1ZXN0U3Rh
cnRlZENhbGxiYWNrKSwgMCk7CisgICAgZ19zaWduYWxfY29ubmVjdChzZXNzaW9uLCAicmVxdWVz
dC1zdGFydGVkIiwgR19DQUxMQkFDSyhyZXF1ZXN0U3RhcnRlZENhbGxiYWNrKSwgMCk7CiAjZW5k
aWYKLSAgICB9CiAKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAorU291cFNlc3Npb24qIFJlc291
cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpCit7CisgICAgc3RhdGljIFNvdXBTZXNzaW9uKiBz
ZXNzaW9uID0gY3JlYXRlU291cFNlc3Npb24oKTsKKyAgICByZXR1cm4gc2Vzc2lvbjsKK30KKwor
U291cFNlc3Npb24qIFJlc291cmNlSGFuZGxlOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UpCit7CisgICAgLy8gRklYTUU6IEhhbmRsZSBp
ZGVudGlmaWVyQmFzZQorICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gY3JlYXRlU291cFNlc3Np
b24oKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9O
X0ZFQVRVUkUoY3JlYXRlUHJpdmF0ZUJyb3dzaW5nQ29va2llSmFyKCkpKTsKKyAgICByZXR1cm4g
c2Vzc2lvbjsKK30KKwogdWludDY0X3QgUmVzb3VyY2VIYW5kbGU6OmdldFNvdXBSZXF1ZXN0SW5p
dGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCogcmVxdWVzdCkKIHsKICAgICB1aW50NjRfdCogaW5p
dGlhdGluZ1BhZ2VJRFB0ciA9IHN0YXRpY19jYXN0PHVpbnQ2NF90Kj4oZ19vYmplY3RfZ2V0X2Rh
dGEoR19PQkpFQ1QocmVxdWVzdCksIGdTb3VwUmVxdWVzdEluaXRpYXRpbmdQYWdlSURLZXkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZWY0YTgyZjZlNWQwN2ZjZjdkOTg3NjU4NjA1NDVl
OWYyMWRlYTM2YS4uNDY4NTU4OWMwZDZlNjQ1ZjNkMDY1NmM4ZGViMTk0ZjY4ZTRhZWUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlR3JvdQogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChX
ZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpCiB7CiAgICAgLy8gRklY
TUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0ZXN0LW9ubHkgZnVuY3Rpb24gZG9lc24ndCB3b3Jr
IHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE1Mjc0Pi4KLSNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCisjaWYg
UExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBpZiAoZW5h
YmxlZCkKICAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCBiNDAyOWRjYWYxMTUyMWIwZmNjNTM0YzRhNDVl
ZjNmODUzYzg5OGE5Li5kZTUwODAxYzE1NTY5OGJhYmEyY2NmYmNlYjVhNzJjYTk0NjFlMjNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICog
Q29weXJpZ2h0IChDKSAyMDEzIENvbXBhbnkgMTAwIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjksMTAgKzMwLDQ4IEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNp
bmNsdWRlICJXZWJQYWdlLmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RhdGljIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiogcHJpdmF0ZVNlc3Npb247CitzdGF0aWMgU3RyaW5nKiBpZGVu
dGlmaWVyQmFzZTsKKwordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRQcml2YXRl
QnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYgYmFzZSkK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgZGVsZXRlIGlkZW50aWZpZXJC
YXNlOworCisgICAgaWRlbnRpZmllckJhc2UgPSBuZXcgU3RyaW5nKGJhc2UpOworfQorCit2b2lk
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAocHJpdmF0ZVNlc3Np
b24pCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBiYXNlOworICAgIGlmICghaWRlbnRp
ZmllckJhc2UpCisgICAgICAgIGJhc2UgPSAiUHJvY2Vzc05hbWUiOyAvLyBEb24ndCBoYXJkLWNv
ZGUgdGhlIGlkZW50aWZpZXIgYmFzZS4KKyAgICBlbHNlCisgICAgICAgIGJhc2UgPSAqaWRlbnRp
ZmllckJhc2U7CisKKyAgICBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihiYXNlKS5sZWFrUHRyKCk7Cit9CisKK3ZvaWQg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBkZWxldGUgcHJpdmF0ZVNl
c3Npb247CisgICAgcHJpdmF0ZVNlc3Npb24gPSAwOworfQorCiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKiBmcmFtZSkKICAgICA6
IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUtPmNvcmVGcmFtZSgpKQogICAgICwgbV9pbml0
aWF0aW5nUGFnZUlEKDApCkBAIC00Myw2ICs4Miw5IEBAIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogCiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9u
KCkgY29uc3QKIHsKKyAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYmIGZy
YW1lKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuICpwcml2YXRlU2Vzc2lvbjsKKwogICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBjYTIyYjJjNDM5Zjk0MzEzNmFjODdiNWI5YTBk
YmFiNmQyM2EwN2VlLi44NjdkMzhkZDlkMjRkODc1MzJiNzkyNzRjMzFjM2ZlNTY3YTBhZDk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTQx
LDYgKzQxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAgICAgfQogCisgICAgc3RhdGljIHZvaWQgc2V0
UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcm
KTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAg
c3RhdGljIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKwogcHJpdmF0ZToK
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhOTA0MTVjNTgwNjEz
OWU2ZTBkMWUxNWUwNmUzYjc0MDhkMGI5NTY0Li4zZWIyNzIyYTZjNDYwOWJkMDZkOGVjOGVjZTRh
OTAxZTY2MWY2NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNs
dWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1
ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVu
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgpAQCAtMjQ0Miw3ICsyNDQzLDE0IEBAIHZv
aWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUpCiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkp
KTsKICAgICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgpKSk7CiAgICAg
c2V0dGluZ3MtPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAg
ICBzZXR0aW5ncy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkpOwor
ICAgIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKTsKKyAgICBz
ZXR0aW5ncy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFibGVk
KTsKKyNpZiBVU0UoU09VUCkKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAg
ICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bigpOworICAgIGVsc2UKKyAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJv
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKyNlbmRpZgogICAgIHNldHRpbmdzLT5zZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEph
dmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6dGV4dEFyZWFzQXJlUmVzaXphYmxlS2V5KCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDMzZDMwY2YwNWFkM2E5MTA3
N2FmNzVlNjAxMGNlNWVhMWM2NTdkNWIuLmMwY2I0ZjI1MGQyMTE1MzE5MTNlZGMzN2E4OGNmMTVj
M2NhNzg0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
MzQyLDYgKzM0Miw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1lCiAKICNpZiBQTEFURk9STShN
QUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0
UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShwYXJhbWV0ZXJzLnVp
UHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOworI2VsaWYgVVNFKFNPVVApCisgICAgLy8gRklYTUU6
IERvbid0IGhhcmQtY29kZSB0aGUgaWRlbnRpZmllciBiYXNlLgorICAgIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJh
c2UoIlByb2Nlc3NOYW1lIik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CkBAIC00NTMsNyArNDU2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpmdWxsS2V5Ym9hcmRBY2Nlc3NN
b2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAKIHZvaWQgV2ViUHJv
Y2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7Ci0jaWYgUExBVEZPUk0oTUFD
KSB8fCBVU0UoQ0ZORVRXT1JLKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykg
fHwgVVNFKFNPVVApCiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206692</attachid>
            <date>2013-07-15 15:33:29 -0700</date>
            <delta_ts>2013-07-15 16:32:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130716073244.patch</filename>
            <type>text/plain</type>
            <size>17969</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1NmUzNzJlNTRjYjI2
MjQyZjkzNjFjNzczMWIwMGM2ZjQ4NmJjYy4uYzljMjE5Zjc0OWFmZmFhMjYwYjBmYmEzZDJhYmVm
MjkwNjQ0Njk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm90IHVzZSB0aGUgZGlzayBjYWNoZSBmZWF0dXJl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyBwcml2YXRlIGJy
b3dzaW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZCB0byBp
c1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBhbmQgbV9pc1ByaXZhdGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIEFkZCBhIGZhY3Rvcnkg
bWV0aG9kIHRvIGNyZWF0ZSBhIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbiBmb3Igc291cC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcik6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaDoKKyAgICAgICAgQWRkIGEgbWV0
aG9kIHRvIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIgZm9yIHByaXZhdGUgYnJv
d3NpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIEluaXRpYWxpemUgbV9pc1ByaXZhdGUg
dG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBi
eSBpbnZva2luZyBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbi4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291cFNlc3Npb24pOgorICAgICAgICBFeHRyYWN0
IGNvbW1vbiBzb3VwIHNlc3Npb24gY3JlYXRpb24gY29kZSBzbyB0aGF0IGJvdGggZGVmYXVsdFNl
c3Npb24KKyAgICAgICAgYW5kIGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gY2FuIHVzZSB0
aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHNvdXAKKyAgICAgICAgc2Vzc2lvbi4KKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIENoYW5n
ZSB0byB1c2UgY3JlYXRlU291cFNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIENyZWF0ZSBhIHNl
c3Npb24gd2hpY2ggdXNlcyBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIuCisKIDIwMTMtMDct
MTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFjIGJ1aWxk
IGZpeCBhdHRlbXB0IGFmdGVyIHIxNTI2MTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTM2ZjMwYmExMDgyYTEy
MTI3YWQ3OTcyYTFkZThiY2I0MjM5YjYxNS4uOTViZDJkY2I3OGNiMzNjZDk1OTNkMTUzZDgwZjAz
MzVhZDA0NTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGluIFdLMiBieSBp
bXBsZW1lbnRpbmcgcHJpdmF0ZSBicm93c2luZworICAgICAgICByZWxhdGVkIG1ldGhvZHMgaW4g
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIEFkZCBVU0UoU09VUCkg
Z3VhcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgIEFkZCBwcml2YXRlIGJyb3dzaW5nIHN1
cHBvcnQgbWV0aG9kcy4gQ29waWVkIGZyb20gdGhlIE1hYyBwb3J0LgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIENoZWNrIGlmIHRoZSBmcmFtZSBl
bmFibGVzIHByaXZhdGUgYnJvd3NpbmcgYW5kIHJldHVybiB0aGUgcHJpdmF0ZQorICAgICAgICBi
cm93c2luZyBzZXNzaW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKToKKyAgICAgICAgSW52b2tlIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gd2hlbgorICAgICAgICBwcml2YXRlIGJyb3dzaW5nIGlz
IGVuYWJsZWQgaW4gdGhlIHNldHRpbmdzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24pOgorICAgICAgICBBZGQgVVNFKFNPVVApIGd1YXJkLgorCiAyMDEzLTA3LTEwICBS
b2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGx1Z2lucyB0aGF0
IGRvbid0IHN1cHBvcnQgc25hcHNob3R0aW5nIHNob3VsZCBub3QgYWxsIGF1dG9zdGFydC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oCmluZGV4IDAzMzI0OWEwNjFkODlmOTA4OTgyOTFmMGNkYjE2ZDA3ZGMwNmMwYmIu
LmY3ZDljZGVhMjFiZDUzZDRiYmZiYjQzMjA0MzhhMmE1Mzg3ZDQ3YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aApAQCAtNDYsMTUgKzQ2LDE4IEBAIGNsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBjcmVh
dGVEZWZhdWx0U2Vzc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0gU3RyaW5nKCkp
OwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gY3JlYXRlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlKTsKKyAgICBz
dGF0aWMgUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IGNyZWF0ZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKIAog
ICAgIHN0YXRpYyB2b2lkIHN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAorI2lmIFBMQVRG
T1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCisgICAgYm9vbCBpc1ByaXZh
dGVCcm93c2luZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQorI2VuZGlm
CisKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgLy8gTWF5IGJlIG51
bGwsIGluIHdoaWNoIGNhc2UgYSBGb3VuZGF0aW9uIGRlZmF1bHQgc2hvdWxkIGJlIHVzZWQuCiAg
ICAgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwbGF0Zm9ybVNlc3Npb24oKSB7IHJldHVybiBtX3Bs
YXRmb3JtU2Vzc2lvbi5nZXQoKTsgfQogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdl
UmVmPiBjb29raWVTdG9yYWdlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQogI2VsaWYgVVNFKFNPVVApCiAg
ICAgdm9pZCBzZXRTb3VwU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Npb24g
PSBzZXNzaW9uOyB9CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zZXNzaW9uOyB9CkBAIC02OSwxMyArNzIsMTYgQEAgcHJpdmF0ZToKICAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24oUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+KTsKICAgICBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKICAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lv
blJlZj4gbV9wbGF0Zm9ybVNlc3Npb247Ci0gICAgYm9vbCBtX2lzUHJpdmF0ZTsKICNlbGlmIFVT
RShTT1VQKQogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTb3VwU2Vzc2lvbiopOwogICAgIFNv
dXBTZXNzaW9uKiBtX3Nlc3Npb247CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4
dD4gbV9jb250ZXh0OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdP
UkspIHx8IFVTRShTT1VQKQorICAgIGJvb2wgbV9pc1ByaXZhdGU7CisjZW5kaWYKIH07CiAKICNp
ZiBQTEFURk9STShXSU4pICYmIFVTRShDRk5FVFdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggYmI0ZmU1YmFiMzM0MmUxZjc4
M2U2NTczNzVmZDE4MmMxZjdkOTk4Yy4uMzA4YTM2OTgyODFiZmU4ODQ2OWFmOGY3ZThmMDY4YjU4
NTgzN2Q2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGxl
ZE9yQ2xpZW50bGVzcygpOwogICAgIHZvaWQgZW5zdXJlUmVhZEJ1ZmZlcigpOwogICAgIHN0YXRp
YyBTb3VwU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24oKTsKKyAgICBzdGF0aWMgU291cFNlc3Npb24q
IGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICAgICBzdGF0aWMgdWludDY0X3QgZ2V0
U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlEKFNvdXBSZXF1ZXN0Kik7CiAgICAgc3RhdGljIHZv
aWQgc2V0SG9zdEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJik7CiAgICAg
c3RhdGljIHZvaWQgc2V0Q2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBHVGxz
Q2VydGlmaWNhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVKYXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVKYXJTb3VwLmNwcAppbmRleCAwMzI5MzRiZDE3ZDg3OTFlMWFiYWNmY2U2
YjdiZWM0NzNlM2I2NzE1Li5lNTI3NjUzNmFjYjg5OTVjMzEwYjczNzQ4ODI5MWYzY2RhMzkxZTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2ll
SmFyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCkBAIC01Niw2ICs1NiwxNSBAQCBTb3VwQ29va2llSmFyKiBzb3VwQ29v
a2llSmFyKCkKICAgICByZXR1cm4gamFyOwogfQogCitTb3VwQ29va2llSmFyKiBjcmVhdGVQcml2
YXRlQnJvd3NpbmdDb29raWVKYXIoKQoreworICAgIFNvdXBDb29raWVKYXIqIGphciA9IHNvdXBf
Y29va2llX2phcl9uZXcoKTsKKworICAgIHNvdXBfY29va2llX2phcl9zZXRfYWNjZXB0X3BvbGlj
eShqYXIsIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFkpOworCisgICAgcmV0
dXJuIGphcjsKK30KKwogdm9pZCBzZXRTb3VwQ29va2llSmFyKFNvdXBDb29raWVKYXIqIGphcikK
IHsKICAgICBkZWZhdWx0Q29va2llSmFyKCkgPSBqYXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaAppbmRleCAyODkzMGNlMDRj
ODBhYTQ2YzJiZjVhNDlkZDI4Y2MwYjgzZTFlYzhhLi5iOTQ5ZWY4ZmExYjAzZDExMzk2ODhkMWYw
NGI5YWIxOTk0NDE5Y2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvQ29va2llSmFyU291cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKQEAgLTM0LDYgKzM0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogU291cENvb2tpZUphciogc291cENvb2tpZUphcigpOwogdm9pZCBzZXRTb3VwQ29v
a2llSmFyKFNvdXBDb29raWVKYXIqKTsKIAorU291cENvb2tpZUphciogY3JlYXRlUHJpdmF0ZUJy
b3dzaW5nQ29va2llSmFyKCk7CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uU291cC5jcHAKaW5kZXggZGQ1NmUyYjg5ZjUxY2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFk
MC4uYjI3ZDQwYTZmZmMwYzYxNmQ1NTNjYjIxNzBiNGI3NTYzOGMzNWI2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICA6IG1fc2Vzc2lvbihz
ZXNzaW9uKQorICAgICwgbV9pc1ByaXZhdGUoZmFsc2UpCiB7CiB9CiAKQEAgLTYwLDggKzYyLDEw
IEBAIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmNyZWF0ZURlZmF1bHRTZXNzaW9uKGNvCiAKIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uID0g
YWRvcHRQdHIobmV3IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpKSk7CisgICAgc2Vzc2lvbi0+bV9pc1ByaXZhdGUgPSB0
cnVlOworCisgICAgcmV0dXJuIHNlc3Npb24ucmVsZWFzZSgpOwogfQogCiB2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCmluZGV4IDhlZmFhNjdiNzVhZDgzZjIyYTdmMDdlODgwNjNhM2M0ZWEzYzhkY2YuLmI0
OWZiOTU3YzE4MDcwYWQwZTYwYmRlODQ5YzBkYjY2NDVmYjFhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCkBAIC0xMzcwLDkgKzEzNzAsOCBAQCBzdGF0aWMgdm9pZCBhdXRoZW50aWNhdGVDYWxs
YmFjayhTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLAogICAg
IGhhbmRsZS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHNlc3Npb24sIHNvdXBNZXNzYWdlLCBzb3VwQXV0aCwgcmV0cnlpbmcsIGhhbmRs
ZS5nZXQoKSkpOwogfQogCi1Tb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNz
aW9uKCkKK3N0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291cFNlc3Npb24oKQogewotICAgIHN0
YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CiAgICAgLy8gVmFsdWVzIHRha2VuIGZyb20g
aHR0cDovL3d3dy5icm93c2Vyc2NvcGUub3JnLyAgZm9sbG93aW5nCiAgICAgLy8gdGhlIHJ1bGUg
IkRvIFdoYXQgRXZlcnkgT3RoZXIgTW9kZXJuIEJyb3dzZXIgSXMgRG9pbmciLiBUaGV5IHNlZW0K
ICAgICAvLyB0byBzaWduaWZpY2FudGx5IGltcHJvdmUgcGFnZSBsb2FkaW5nIHRpbWUgY29tcGFy
ZWQgdG8gc291cCdzCkBAIC0xMzgwLDI2ICsxMzc5LDM3IEBAIFNvdXBTZXNzaW9uKiBSZXNvdXJj
ZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKQogICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4Q29ubmVj
dGlvbnMgPSAzNTsKICAgICBzdGF0aWMgY29uc3QgaW50IG1heENvbm5lY3Rpb25zUGVySG9zdCA9
IDY7CiAKLSAgICBpZiAoIXNlc3Npb24pIHsKLSAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lv
bl9hc3luY19uZXcoKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KHNlc3Npb24sCi0gICAgICAgICAg
ICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TLCBtYXhDb25uZWN0aW9ucywKLSAgICAg
ICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIG1heENvbm5l
Y3Rpb25zUGVySG9zdCwKLSAgICAgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVB
VFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNPREVSLAotICAgICAgICAgICAgICAg
ICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9DT05URU5U
X1NOSUZGRVIsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVf
QllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0RFRkFVTFQsCi0gICAgICAgICAgICAg
ICAgICAgICBTT1VQX1NFU1NJT05fVVNFX1RIUkVBRF9DT05URVhULCBUUlVFLAotICAgICAgICAg
ICAgICAgICAgICAgTlVMTCk7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImF1
dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2FsbGJhY2spLCAwKTsKKyAgICBT
b3VwU2Vzc2lvbiogc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKKyAgICBnX29i
amVjdF9zZXQoc2Vzc2lvbiwKKyAgICAgICAgU09VUF9TRVNTSU9OX01BWF9DT05OUywgbWF4Q29u
bmVjdGlvbnMsCisgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIG1heENv
bm5lY3Rpb25zUGVySG9zdCwKKyAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZ
UEUsIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIsCisgICAgICAgIFNPVVBfU0VTU0lPTl9BRERf
RkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSLAorICAgICAgICBTT1VQ
X1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0RF
RkFVTFQsCisgICAgICAgIFNPVVBfU0VTU0lPTl9VU0VfVEhSRUFEX0NPTlRFWFQsIFRSVUUsCisg
ICAgICAgIDApOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0ZSIs
IEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2FsbGJhY2spLCAwKTsKIAogI2lmIEVOQUJMRShXRUJf
VElNSU5HKQotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJyZXF1ZXN0LXN0YXJ0
ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RTdGFydGVkQ2FsbGJhY2spLCAwKTsKKyAgICBnX3NpZ25h
bF9jb25uZWN0KHNlc3Npb24sICJyZXF1ZXN0LXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RT
dGFydGVkQ2FsbGJhY2spLCAwKTsKICNlbmRpZgotICAgIH0KIAogICAgIHJldHVybiBzZXNzaW9u
OwogfQogCitTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKK3sK
KyAgICBzdGF0aWMgU291cFNlc3Npb24qIHNlc3Npb24gPSBjcmVhdGVTb3VwU2Vzc2lvbigpOwor
ICAgIHJldHVybiBzZXNzaW9uOworfQorCitTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gY3JlYXRlU291cFNlc3Npb24oKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vz
c2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUoY3JlYXRlUHJpdmF0ZUJyb3dzaW5nQ29va2llSmFy
KCkpKTsKKyAgICByZXR1cm4gc2Vzc2lvbjsKK30KKwogdWludDY0X3QgUmVzb3VyY2VIYW5kbGU6
OmdldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCogcmVxdWVzdCkKIHsK
ICAgICB1aW50NjRfdCogaW5pdGlhdGluZ1BhZ2VJRFB0ciA9IHN0YXRpY19jYXN0PHVpbnQ2NF90
Kj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QocmVxdWVzdCksIGdTb3VwUmVxdWVzdEluaXRp
YXRpbmdQYWdlSURLZXkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZWY0YTgyZjZlNWQw
N2ZjZjdkOTg3NjU4NjA1NDVlOWYyMWRlYTM2YS4uNDY4NTU4OWMwZDZlNjQ1ZjNkMDY1NmM4ZGVi
MTk0ZjY4ZTRhZWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMwNCw3ICszMDQsNyBA
QCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKFdl
YlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdQogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJs
ZWQpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0ZXN0LW9ubHkgZnVu
Y3Rpb24gZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KLSNpZiBQTEFURk9STShNQUMpIHx8IFVT
RShDRk5FVFdPUkspCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0Uo
U09VUCkKICAgICBpZiAoZW5hYmxlZCkKICAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCBiNDAyOWRjYWYx
MTUyMWIwZmNjNTM0YzRhNDVlZjNmODUzYzg5OGE5Li5jOGZiM2UwMWVmYjgzZWM1YTcyODU0Mzc1
NWQ0ZWU3MTdjZTE4Yjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MiBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEzIENvbXBhbnkgMTAwIEluYy4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTEgKzI5LDMyIEBACiAKICNpbmNs
dWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogcHJpdmF0ZVNlc3Npb247CisK
K3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChwcml2YXRl
U2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdmF0ZVNlc3Npb24gPSBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKS5sZWFrUHRyKCk7
Cit9CisKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBkZWxl
dGUgcHJpdmF0ZVNlc3Npb247CisgICAgcHJpdmF0ZVNlc3Npb24gPSAwOworfQorCiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKiBm
cmFtZSkKICAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUtPmNvcmVGcmFtZSgpKQog
ICAgICwgbV9pbml0aWF0aW5nUGFnZUlEKDApCkBAIC00Myw2ICs2NSw5IEBAIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1l
KQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKKyAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0
aW5ncygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKKwogICAgIHJldHVybiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBjYTIyYjJjNDM5Zjk0MzEz
NmFjODdiNWI5YTBkYmFiNmQyM2EwN2VlLi5kNzU1ZmE5YWRhZDg5MWMwMjMzNzE2MWQwZjc4M2I4
ZWVhMWYwYTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTQxLDYgKzQxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAKKyAgICBzdGF0
aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZvaWQg
ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKwogcHJpdmF0ZToKICAgICBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhOTA0MTVjNTgwNjEzOWU2ZTBkMWUxNWUw
NmUzYjc0MDhkMGI5NTY0Li4zZWIyNzIyYTZjNDYwOWJkMDZkOGVjOGVjZTRhOTAxZTY2MWY2NjQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVu
dENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJH
ZW9sb2NhdGlvbkNsaWVudC5oIgpAQCAtMjQ0Miw3ICsyNDQzLDE0IEBAIHZvaWQgV2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAg
c2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0
aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBzZXR0aW5ncy0+
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkpOworICAgIGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKTsKKyAgICBzZXR0aW5ncy0+c2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKKyNpZiBVU0Uo
U09VUCkKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworICAgIGVs
c2UKKyAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oKTsKKyNlbmRpZgogICAgIHNldHRpbmdzLT5zZXREZXZlbG9wZXJFeHRyYXNF
bmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFeHBl
cmltZW50c0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0
VGV4dEFyZWFzQXJlUmVzaXphYmxlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6dGV4dEFyZWFzQXJlUmVzaXphYmxlS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDMzZDMwY2YwNWFkM2E5MTA3N2FmNzVlNjAxMGNl
NWVhMWM2NTdkNWIuLmY5MTQ4YmM1YTIyN2FkNTUxMmY2ZTUzNzc2MWJhMDA3OTk4N2YyZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDUzLDcgKzQ1Myw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBm
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogCiB2b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oKQogewotI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09S
SykKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAg
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206701</attachid>
            <date>2013-07-15 16:32:36 -0700</date>
            <delta_ts>2013-07-16 00:21:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130716083153.patch</filename>
            <type>text/plain</type>
            <size>17972</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1NmUzNzJlNTRjYjI2
MjQyZjkzNjFjNzczMWIwMGM2ZjQ4NmJjYy4uYzljMjE5Zjc0OWFmZmFhMjYwYjBmYmEzZDJhYmVm
MjkwNjQ0Njk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm90IHVzZSB0aGUgZGlzayBjYWNoZSBmZWF0dXJl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyBwcml2YXRlIGJy
b3dzaW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZCB0byBp
c1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBhbmQgbV9pc1ByaXZhdGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIEFkZCBhIGZhY3Rvcnkg
bWV0aG9kIHRvIGNyZWF0ZSBhIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbiBmb3Igc291cC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcik6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaDoKKyAgICAgICAgQWRkIGEgbWV0
aG9kIHRvIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIgZm9yIHByaXZhdGUgYnJv
d3NpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIEluaXRpYWxpemUgbV9pc1ByaXZhdGUg
dG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBi
eSBpbnZva2luZyBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbi4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291cFNlc3Npb24pOgorICAgICAgICBFeHRyYWN0
IGNvbW1vbiBzb3VwIHNlc3Npb24gY3JlYXRpb24gY29kZSBzbyB0aGF0IGJvdGggZGVmYXVsdFNl
c3Npb24KKyAgICAgICAgYW5kIGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gY2FuIHVzZSB0
aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHNvdXAKKyAgICAgICAgc2Vzc2lvbi4KKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIENoYW5n
ZSB0byB1c2UgY3JlYXRlU291cFNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIENyZWF0ZSBhIHNl
c3Npb24gd2hpY2ggdXNlcyBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIuCisKIDIwMTMtMDct
MTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFjIGJ1aWxk
IGZpeCBhdHRlbXB0IGFmdGVyIHIxNTI2MTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTM2ZjMwYmExMDgyYTEy
MTI3YWQ3OTcyYTFkZThiY2I0MjM5YjYxNS4uOTViZDJkY2I3OGNiMzNjZDk1OTNkMTUzZDgwZjAz
MzVhZDA0NTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGluIFdLMiBieSBp
bXBsZW1lbnRpbmcgcHJpdmF0ZSBicm93c2luZworICAgICAgICByZWxhdGVkIG1ldGhvZHMgaW4g
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIEFkZCBVU0UoU09VUCkg
Z3VhcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgIEFkZCBwcml2YXRlIGJyb3dzaW5nIHN1
cHBvcnQgbWV0aG9kcy4gQ29waWVkIGZyb20gdGhlIE1hYyBwb3J0LgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIENoZWNrIGlmIHRoZSBmcmFtZSBl
bmFibGVzIHByaXZhdGUgYnJvd3NpbmcgYW5kIHJldHVybiB0aGUgcHJpdmF0ZQorICAgICAgICBi
cm93c2luZyBzZXNzaW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKToKKyAgICAgICAgSW52b2tlIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gd2hlbgorICAgICAgICBwcml2YXRlIGJyb3dzaW5nIGlz
IGVuYWJsZWQgaW4gdGhlIHNldHRpbmdzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24pOgorICAgICAgICBBZGQgVVNFKFNPVVApIGd1YXJkLgorCiAyMDEzLTA3LTEwICBS
b2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGx1Z2lucyB0aGF0
IGRvbid0IHN1cHBvcnQgc25hcHNob3R0aW5nIHNob3VsZCBub3QgYWxsIGF1dG9zdGFydC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oCmluZGV4IDAzMzI0OWEwNjFkODlmOTA4OTgyOTFmMGNkYjE2ZDA3ZGMwNmMwYmIu
LmY3ZDljZGVhMjFiZDUzZDRiYmZiYjQzMjA0MzhhMmE1Mzg3ZDQ3YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aApAQCAtNDYsMTUgKzQ2LDE4IEBAIGNsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBjcmVh
dGVEZWZhdWx0U2Vzc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0gU3RyaW5nKCkp
OwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gY3JlYXRlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlKTsKKyAgICBz
dGF0aWMgUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IGNyZWF0ZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKIAog
ICAgIHN0YXRpYyB2b2lkIHN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAorI2lmIFBMQVRG
T1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCisgICAgYm9vbCBpc1ByaXZh
dGVCcm93c2luZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQorI2VuZGlm
CisKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgLy8gTWF5IGJlIG51
bGwsIGluIHdoaWNoIGNhc2UgYSBGb3VuZGF0aW9uIGRlZmF1bHQgc2hvdWxkIGJlIHVzZWQuCiAg
ICAgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwbGF0Zm9ybVNlc3Npb24oKSB7IHJldHVybiBtX3Bs
YXRmb3JtU2Vzc2lvbi5nZXQoKTsgfQogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdl
UmVmPiBjb29raWVTdG9yYWdlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQogI2VsaWYgVVNFKFNPVVApCiAg
ICAgdm9pZCBzZXRTb3VwU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Npb24g
PSBzZXNzaW9uOyB9CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zZXNzaW9uOyB9CkBAIC02OSwxMyArNzIsMTYgQEAgcHJpdmF0ZToKICAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24oUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+KTsKICAgICBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKICAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lv
blJlZj4gbV9wbGF0Zm9ybVNlc3Npb247Ci0gICAgYm9vbCBtX2lzUHJpdmF0ZTsKICNlbGlmIFVT
RShTT1VQKQogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTb3VwU2Vzc2lvbiopOwogICAgIFNv
dXBTZXNzaW9uKiBtX3Nlc3Npb247CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4
dD4gbV9jb250ZXh0OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdP
UkspIHx8IFVTRShTT1VQKQorICAgIGJvb2wgbV9pc1ByaXZhdGU7CisjZW5kaWYKIH07CiAKICNp
ZiBQTEFURk9STShXSU4pICYmIFVTRShDRk5FVFdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggYmI0ZmU1YmFiMzM0MmUxZjc4
M2U2NTczNzVmZDE4MmMxZjdkOTk4Yy4uMzA4YTM2OTgyODFiZmU4ODQ2OWFmOGY3ZThmMDY4YjU4
NTgzN2Q2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGxl
ZE9yQ2xpZW50bGVzcygpOwogICAgIHZvaWQgZW5zdXJlUmVhZEJ1ZmZlcigpOwogICAgIHN0YXRp
YyBTb3VwU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24oKTsKKyAgICBzdGF0aWMgU291cFNlc3Npb24q
IGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICAgICBzdGF0aWMgdWludDY0X3QgZ2V0
U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlEKFNvdXBSZXF1ZXN0Kik7CiAgICAgc3RhdGljIHZv
aWQgc2V0SG9zdEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJik7CiAgICAg
c3RhdGljIHZvaWQgc2V0Q2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBHVGxz
Q2VydGlmaWNhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVKYXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVKYXJTb3VwLmNwcAppbmRleCAwMzI5MzRiZDE3ZDg3OTFlMWFiYWNmY2U2
YjdiZWM0NzNlM2I2NzE1Li5lNTI3NjUzNmFjYjg5OTVjMzEwYjczNzQ4ODI5MWYzY2RhMzkxZTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2ll
SmFyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCkBAIC01Niw2ICs1NiwxNSBAQCBTb3VwQ29va2llSmFyKiBzb3VwQ29v
a2llSmFyKCkKICAgICByZXR1cm4gamFyOwogfQogCitTb3VwQ29va2llSmFyKiBjcmVhdGVQcml2
YXRlQnJvd3NpbmdDb29raWVKYXIoKQoreworICAgIFNvdXBDb29raWVKYXIqIGphciA9IHNvdXBf
Y29va2llX2phcl9uZXcoKTsKKworICAgIHNvdXBfY29va2llX2phcl9zZXRfYWNjZXB0X3BvbGlj
eShqYXIsIFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFkpOworCisgICAgcmV0
dXJuIGphcjsKK30KKwogdm9pZCBzZXRTb3VwQ29va2llSmFyKFNvdXBDb29raWVKYXIqIGphcikK
IHsKICAgICBkZWZhdWx0Q29va2llSmFyKCkgPSBqYXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaAppbmRleCAyODkzMGNlMDRj
ODBhYTQ2YzJiZjVhNDlkZDI4Y2MwYjgzZTFlYzhhLi5iOTQ5ZWY4ZmExYjAzZDExMzk2ODhkMWYw
NGI5YWIxOTk0NDE5Y2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvQ29va2llSmFyU291cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKQEAgLTM0LDYgKzM0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogU291cENvb2tpZUphciogc291cENvb2tpZUphcigpOwogdm9pZCBzZXRTb3VwQ29v
a2llSmFyKFNvdXBDb29raWVKYXIqKTsKIAorU291cENvb2tpZUphciogY3JlYXRlUHJpdmF0ZUJy
b3dzaW5nQ29va2llSmFyKCk7CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uU291cC5jcHAKaW5kZXggZGQ1NmUyYjg5ZjUxY2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFk
MC4uYjI3ZDQwYTZmZmMwYzYxNmQ1NTNjYjIxNzBiNGI3NTYzOGMzNWI2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICA6IG1fc2Vzc2lvbihz
ZXNzaW9uKQorICAgICwgbV9pc1ByaXZhdGUoZmFsc2UpCiB7CiB9CiAKQEAgLTYwLDggKzYyLDEw
IEBAIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmNyZWF0ZURlZmF1bHRTZXNzaW9uKGNvCiAKIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBzZXNzaW9uID0g
YWRvcHRQdHIobmV3IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpKSk7CisgICAgc2Vzc2lvbi0+bV9pc1ByaXZhdGUgPSB0
cnVlOworCisgICAgcmV0dXJuIHNlc3Npb24ucmVsZWFzZSgpOwogfQogCiB2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCmluZGV4IDhlZmFhNjdiNzVhZDgzZjIyYTdmMDdlODgwNjNhM2M0ZWEzYzhkY2YuLmQw
YmJiMWMxNjgzNTg4YzNhYzc1NWMyZTcxNDUzYTQwY2FlODUxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCkBAIC0xMzcwLDkgKzEzNzAsOCBAQCBzdGF0aWMgdm9pZCBhdXRoZW50aWNhdGVDYWxs
YmFjayhTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLAogICAg
IGhhbmRsZS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHNlc3Npb24sIHNvdXBNZXNzYWdlLCBzb3VwQXV0aCwgcmV0cnlpbmcsIGhhbmRs
ZS5nZXQoKSkpOwogfQogCi1Tb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNz
aW9uKCkKK3N0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291cFNlc3Npb24oKQogewotICAgIHN0
YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CiAgICAgLy8gVmFsdWVzIHRha2VuIGZyb20g
aHR0cDovL3d3dy5icm93c2Vyc2NvcGUub3JnLyAgZm9sbG93aW5nCiAgICAgLy8gdGhlIHJ1bGUg
IkRvIFdoYXQgRXZlcnkgT3RoZXIgTW9kZXJuIEJyb3dzZXIgSXMgRG9pbmciLiBUaGV5IHNlZW0K
ICAgICAvLyB0byBzaWduaWZpY2FudGx5IGltcHJvdmUgcGFnZSBsb2FkaW5nIHRpbWUgY29tcGFy
ZWQgdG8gc291cCdzCkBAIC0xMzgwLDI2ICsxMzc5LDM3IEBAIFNvdXBTZXNzaW9uKiBSZXNvdXJj
ZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKQogICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4Q29ubmVj
dGlvbnMgPSAzNTsKICAgICBzdGF0aWMgY29uc3QgaW50IG1heENvbm5lY3Rpb25zUGVySG9zdCA9
IDY7CiAKLSAgICBpZiAoIXNlc3Npb24pIHsKLSAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lv
bl9hc3luY19uZXcoKTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KHNlc3Npb24sCi0gICAgICAgICAg
ICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TLCBtYXhDb25uZWN0aW9ucywKLSAgICAg
ICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIG1heENvbm5l
Y3Rpb25zUGVySG9zdCwKLSAgICAgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVB
VFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNPREVSLAotICAgICAgICAgICAgICAg
ICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9DT05URU5U
X1NOSUZGRVIsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVf
QllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0RFRkFVTFQsCi0gICAgICAgICAgICAg
ICAgICAgICBTT1VQX1NFU1NJT05fVVNFX1RIUkVBRF9DT05URVhULCBUUlVFLAotICAgICAgICAg
ICAgICAgICAgICAgTlVMTCk7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImF1
dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2FsbGJhY2spLCAwKTsKKyAgICBT
b3VwU2Vzc2lvbiogc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKKyAgICBnX29i
amVjdF9zZXQoc2Vzc2lvbiwKKyAgICAgICAgU09VUF9TRVNTSU9OX01BWF9DT05OUywgbWF4Q29u
bmVjdGlvbnMsCisgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIG1heENv
bm5lY3Rpb25zUGVySG9zdCwKKyAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZ
UEUsIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIsCisgICAgICAgIFNPVVBfU0VTU0lPTl9BRERf
RkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSLAorICAgICAgICBTT1VQ
X1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0RF
RkFVTFQsCisgICAgICAgIFNPVVBfU0VTU0lPTl9VU0VfVEhSRUFEX0NPTlRFWFQsIFRSVUUsCisg
ICAgICAgIE5VTEwpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImF1dGhlbnRpY2F0
ZSIsIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2FsbGJhY2spLCAwKTsKIAogI2lmIEVOQUJMRShX
RUJfVElNSU5HKQotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJyZXF1ZXN0LXN0
YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVlc3RTdGFydGVkQ2FsbGJhY2spLCAwKTsKKyAgICBnX3Np
Z25hbF9jb25uZWN0KHNlc3Npb24sICJyZXF1ZXN0LXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlcXVl
c3RTdGFydGVkQ2FsbGJhY2spLCAwKTsKICNlbmRpZgotICAgIH0KIAogICAgIHJldHVybiBzZXNz
aW9uOwogfQogCitTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkK
K3sKKyAgICBzdGF0aWMgU291cFNlc3Npb24qIHNlc3Npb24gPSBjcmVhdGVTb3VwU2Vzc2lvbigp
OworICAgIHJldHVybiBzZXNzaW9uOworfQorCitTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIFNvdXBTZXNzaW9uKiBzZXNz
aW9uID0gY3JlYXRlU291cFNlc3Npb24oKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUo
c2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUoY3JlYXRlUHJpdmF0ZUJyb3dzaW5nQ29va2ll
SmFyKCkpKTsKKyAgICByZXR1cm4gc2Vzc2lvbjsKK30KKwogdWludDY0X3QgUmVzb3VyY2VIYW5k
bGU6OmdldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCogcmVxdWVzdCkK
IHsKICAgICB1aW50NjRfdCogaW5pdGlhdGluZ1BhZ2VJRFB0ciA9IHN0YXRpY19jYXN0PHVpbnQ2
NF90Kj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QocmVxdWVzdCksIGdTb3VwUmVxdWVzdElu
aXRpYXRpbmdQYWdlSURLZXkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZWY0YTgyZjZl
NWQwN2ZjZjdkOTg3NjU4NjA1NDVlOWYyMWRlYTM2YS4uNDY4NTU4OWMwZDZlNjQ1ZjNkMDY1NmM4
ZGViMTk0ZjY4ZTRhZWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMwNCw3ICszMDQs
NyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
KFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdQogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVu
YWJsZWQpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0ZXN0LW9ubHkg
ZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KLSNpZiBQTEFURk9STShNQUMpIHx8
IFVTRShDRk5FVFdPUkspCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBV
U0UoU09VUCkKICAgICBpZiAoZW5hYmxlZCkKICAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwogICAgIGVsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCBiNDAyOWRj
YWYxMTUyMWIwZmNjNTM0YzRhNDVlZjNmODUzYzg5OGE5Li5jOGZiM2UwMWVmYjgzZWM1YTcyODU0
Mzc1NWQ0ZWU3MTdjZTE4Yjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMiBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEzIENvbXBhbnkgMTAwIEluYy4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTEgKzI5LDMyIEBACiAKICNp
bmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1NldHRpbmdzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogcHJpdmF0ZVNlc3Npb247
CisKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChwcml2
YXRlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdmF0ZVNlc3Npb24gPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKS5sZWFrUHRy
KCk7Cit9CisKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBk
ZWxldGUgcHJpdmF0ZVNlc3Npb247CisgICAgcHJpdmF0ZVNlc3Npb24gPSAwOworfQorCiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1l
KiBmcmFtZSkKICAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUtPmNvcmVGcmFtZSgp
KQogICAgICwgbV9pbml0aWF0aW5nUGFnZUlEKDApCkBAIC00Myw2ICs2NSw5IEBAIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZy
YW1lKQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKKyAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKKwogICAgIHJldHVybiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBjYTIyYjJjNDM5Zjk0
MzEzNmFjODdiNWI5YTBkYmFiNmQyM2EwN2VlLi5kNzU1ZmE5YWRhZDg5MWMwMjMzNzE2MWQwZjc4
M2I4ZWVhMWYwYTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKQEAgLTQxLDYgKzQxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZv
aWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKwogcHJpdmF0ZToKICAgICBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhOTA0MTVjNTgwNjEzOWU2ZTBkMWUx
NWUwNmUzYjc0MDhkMGI5NTY0Li4zZWIyNzIyYTZjNDYwOWJkMDZkOGVjOGVjZTRhOTAxZTY2MWY2
NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJF
dmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJHZW9sb2NhdGlvbkNsaWVudC5oIgpAQCAtMjQ0Miw3ICsyNDQzLDE0IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAg
ICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Mt
PnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBzZXR0aW5n
cy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkpOworICAgIGJvb2wg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKTsKKyAgICBzZXR0aW5ncy0+
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKKyNpZiBV
U0UoU09VUCkKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworICAg
IGVsc2UKKyAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oKTsKKyNlbmRpZgogICAgIHNldHRpbmdzLT5zZXREZXZlbG9wZXJFeHRy
YXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRF
eHBlcmltZW50c0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpqYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+
c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6dGV4dEFyZWFzQXJlUmVzaXphYmxlS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDMzZDMwY2YwNWFkM2E5MTA3N2FmNzVlNjAx
MGNlNWVhMWM2NTdkNWIuLmY5MTQ4YmM1YTIyN2FkNTUxMmY2ZTUzNzc2MWJhMDA3OTk4N2YyZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDUzLDcgKzQ1
Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9v
bCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogCiB2b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewotI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVU
V09SSykKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQog
ICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oKTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206733</attachid>
            <date>2013-07-16 00:21:40 -0700</date>
            <delta_ts>2013-07-24 16:48:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130716162110.patch</filename>
            <type>text/plain</type>
            <size>15921</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1NmUzNzJlNTRjYjI2
MjQyZjkzNjFjNzczMWIwMGM2ZjQ4NmJjYy4uYzljMjE5Zjc0OWFmZmFhMjYwYjBmYmEzZDJhYmVm
MjkwNjQ0Njk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm90IHVzZSB0aGUgZGlzayBjYWNoZSBmZWF0dXJl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyBwcml2YXRlIGJy
b3dzaW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZCB0byBp
c1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBhbmQgbV9pc1ByaXZhdGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIEFkZCBhIGZhY3Rvcnkg
bWV0aG9kIHRvIGNyZWF0ZSBhIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbiBmb3Igc291cC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcik6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaDoKKyAgICAgICAgQWRkIGEgbWV0
aG9kIHRvIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIgZm9yIHByaXZhdGUgYnJv
d3NpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIEluaXRpYWxpemUgbV9pc1ByaXZhdGUg
dG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBi
eSBpbnZva2luZyBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbi4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291cFNlc3Npb24pOgorICAgICAgICBFeHRyYWN0
IGNvbW1vbiBzb3VwIHNlc3Npb24gY3JlYXRpb24gY29kZSBzbyB0aGF0IGJvdGggZGVmYXVsdFNl
c3Npb24KKyAgICAgICAgYW5kIGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gY2FuIHVzZSB0
aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHNvdXAKKyAgICAgICAgc2Vzc2lvbi4KKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIENoYW5n
ZSB0byB1c2UgY3JlYXRlU291cFNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIENyZWF0ZSBhIHNl
c3Npb24gd2hpY2ggdXNlcyBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIuCisKIDIwMTMtMDct
MTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFjIGJ1aWxk
IGZpeCBhdHRlbXB0IGFmdGVyIHIxNTI2MTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTM2ZjMwYmExMDgyYTEy
MTI3YWQ3OTcyYTFkZThiY2I0MjM5YjYxNS4uZmI1MGE5YjAyMDU4NzA4MmRkY2VmMmUwMTUyOGUx
MTgxNjc3ZTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGluIFdLMiBieSBp
bXBsZW1lbnRpbmcgcHJpdmF0ZSBicm93c2luZworICAgICAgICByZWxhdGVkIG1ldGhvZHMgaW4g
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIEFkZCBVU0UoU09VUCkg
Z3VhcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgIEFkZCBwcml2YXRlIGJyb3dzaW5nIHN1
cHBvcnQgbWV0aG9kcy4gQ29waWVkIGZyb20gdGhlIE1hYyBwb3J0LgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIENoZWNrIGlmIHRoZSBmcmFtZSBl
bmFibGVzIHByaXZhdGUgYnJvd3NpbmcgYW5kIHJldHVybiB0aGUgcHJpdmF0ZQorICAgICAgICBi
cm93c2luZyBzZXNzaW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZC4KKwogMjAxMy0w
Ny0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFBsdWdp
bnMgdGhhdCBkb24ndCBzdXBwb3J0IHNuYXBzaG90dGluZyBzaG91bGQgbm90IGFsbCBhdXRvc3Rh
cnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaAppbmRleCAwMzMyNDlhMDYxZDg5ZjkwODk4MjkxZjBjZGIxNmQwN2Rj
MDZjMGJiLi5mN2Q5Y2RlYTIxYmQ1M2Q0YmJmYmI0MzIwNDM4YTJhNTM4N2Q0N2E1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmgKQEAgLTQ2LDE1ICs0NiwxOCBAQCBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb24g
ewogcHVibGljOgogICAgIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIGRlZmF1bHRTdG9y
YWdlU2Vzc2lvbigpOwogICAgIHN0YXRpYyBQYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4gY3JlYXRlRGVmYXVsdFNlc3Npb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0
cmluZygpKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IGNy
ZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSk7
CisgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBjcmVhdGVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmco
KSk7CiAKICAgICBzdGF0aWMgdm9pZCBzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKKyNp
ZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQorICAgIGJvb2wg
aXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc1ByaXZhdGU7IH0K
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQogICAgIC8vIE1h
eSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlvbiBkZWZhdWx0IHNob3VsZCBiZSB1
c2VkLgogICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxhdGZvcm1TZXNzaW9uKCkgeyByZXR1
cm4gbV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2ll
U3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSgpIGNvbnN0OwotICAgIGJvb2wgaXNQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc1ByaXZhdGU7IH0KICNlbGlmIFVTRShT
T1VQKQogICAgIHZvaWQgc2V0U291cFNlc3Npb24oU291cFNlc3Npb24qIHNlc3Npb24pIHsgbV9z
ZXNzaW9uID0gc2Vzc2lvbjsgfQogICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbjsgfQpAQCAtNjksMTMgKzcyLDE2IEBAIHByaXZhdGU6CiAgICAg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPik7
CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CiAgICAgUmV0YWluUHRyPENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY+IG1fcGxhdGZvcm1TZXNzaW9uOwotICAgIGJvb2wgbV9pc1ByaXZhdGU7CiAj
ZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qKTsK
ICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOwogI2Vsc2UKICAgICBSZWZQdHI8TmV0d29ya2lu
Z0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0Uo
Q0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKKyAgICBib29sIG1faXNQcml2YXRlOworI2VuZGlmCiB9
OwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZORVRXT1JLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IGJiNGZlNWJhYjMz
NDJlMWY3ODNlNjU3Mzc1ZmQxODJjMWY3ZDk5OGMuLjMwOGEzNjk4MjgxYmZlODg0NjlhZjhmN2U4
ZjA2OGI1ODU4MzdkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmgKQEAgLTE2OSw2ICsxNjksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
YW5jZWxsZWRPckNsaWVudGxlc3MoKTsKICAgICB2b2lkIGVuc3VyZVJlYWRCdWZmZXIoKTsKICAg
ICBzdGF0aWMgU291cFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uKCk7CisgICAgc3RhdGljIFNvdXBT
ZXNzaW9uKiBjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAgICAgc3RhdGljIHVpbnQ2
NF90IGdldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCopOwogICAgIHN0
YXRpYyB2b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYp
OwogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9z
dCwgR1Rsc0NlcnRpZmljYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggMDMyOTM0YmQxN2Q4NzkxZTFh
YmFjZmNlNmI3YmVjNDczZTNiNjcxNS4uZTUyNzY1MzZhY2I4OTk1YzMxMGI3Mzc0ODgyOTFmM2Nk
YTM5MWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtNTYsNiArNTYsMTUgQEAgU291cENvb2tpZUphciog
c291cENvb2tpZUphcigpCiAgICAgcmV0dXJuIGphcjsKIH0KIAorU291cENvb2tpZUphciogY3Jl
YXRlUHJpdmF0ZUJyb3dzaW5nQ29va2llSmFyKCkKK3sKKyAgICBTb3VwQ29va2llSmFyKiBqYXIg
PSBzb3VwX2Nvb2tpZV9qYXJfbmV3KCk7CisKKyAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0X2FjY2Vw
dF9wb2xpY3koamFyLCBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZKTsKKwor
ICAgIHJldHVybiBqYXI7Cit9CisKIHZvaWQgc2V0U291cENvb2tpZUphcihTb3VwQ29va2llSmFy
KiBqYXIpCiB7CiAgICAgZGVmYXVsdENvb2tpZUphcigpID0gamFyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKaW5kZXggMjg5
MzBjZTA0YzgwYWE0NmMyYmY1YTQ5ZGQyOGNjMGI4M2UxZWM4YS4uYjk0OWVmOGZhMWIwM2QxMTM5
Njg4ZDFmMDRiOWFiMTk5NDQxOWNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oCkBAIC0zNCw2ICszNCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFNvdXBDb29raWVKYXIqIHNvdXBDb29raWVKYXIoKTsKIHZvaWQgc2V0
U291cENvb2tpZUphcihTb3VwQ29va2llSmFyKik7CiAKK1NvdXBDb29raWVKYXIqIGNyZWF0ZVBy
aXZhdGVCcm93c2luZ0Nvb2tpZUphcigpOworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGRkNTZlMmI4OWY1MWNkNzdjY2IyMDI3M2Y3YTJjNWQz
OGViZmVhZDAuLmIyN2Q0MGE2ZmZjMGM2MTZkNTUzY2IyMTcwYjRiNzU2MzhjMzViNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMwLDExICszMCwxMyBAQAogI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAgOiBtX3Nl
c3Npb24oc2Vzc2lvbikKKyAgICAsIG1faXNQcml2YXRlKGZhbHNlKQogewogfQogCkBAIC02MCw4
ICs2MiwxMCBAQCBQYXNzT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpjcmVhdGVEZWZhdWx0U2Vzc2lvbihjbwogCiBQYXNzT3duUHRyPE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gc2Vz
c2lvbiA9IGFkb3B0UHRyKG5ldyBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSkpOworICAgIHNlc3Npb24tPm1faXNQcml2
YXRlID0gdHJ1ZTsKKworICAgIHJldHVybiBzZXNzaW9uLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAppbmRleCA4ZWZhYTY3Yjc1YWQ4M2YyMmE3ZjA3ZTg4MDYzYTNjNGVhM2M4
ZGNmLi5kMGJiYjFjMTY4MzU4OGMzYWM3NTVjMmU3MTQ1M2E0MGNhZTg1MTUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcApAQCAtMTM3MCw5ICsxMzcwLDggQEAgc3RhdGljIHZvaWQgYXV0aGVudGlj
YXRlQ2FsbGJhY2soU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSwKICAgICBoYW5kbGUtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShzZXNzaW9uLCBzb3VwTWVzc2FnZSwgc291cEF1dGgsIHJldHJ5aW5n
LCBoYW5kbGUuZ2V0KCkpKTsKIH0KIAotU291cFNlc3Npb24qIFJlc291cmNlSGFuZGxlOjpkZWZh
dWx0U2Vzc2lvbigpCitzdGF0aWMgU291cFNlc3Npb24qIGNyZWF0ZVNvdXBTZXNzaW9uKCkKIHsK
LSAgICBzdGF0aWMgU291cFNlc3Npb24qIHNlc3Npb24gPSAwOwogICAgIC8vIFZhbHVlcyB0YWtl
biBmcm9tIGh0dHA6Ly93d3cuYnJvd3NlcnNjb3BlLm9yZy8gIGZvbGxvd2luZwogICAgIC8vIHRo
ZSBydWxlICJEbyBXaGF0IEV2ZXJ5IE90aGVyIE1vZGVybiBCcm93c2VyIElzIERvaW5nIi4gVGhl
eSBzZWVtCiAgICAgLy8gdG8gc2lnbmlmaWNhbnRseSBpbXByb3ZlIHBhZ2UgbG9hZGluZyB0aW1l
IGNvbXBhcmVkIHRvIHNvdXAncwpAQCAtMTM4MCwyNiArMTM3OSwzNyBAQCBTb3VwU2Vzc2lvbiog
UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkKICAgICBzdGF0aWMgY29uc3QgaW50IG1h
eENvbm5lY3Rpb25zID0gMzU7CiAgICAgc3RhdGljIGNvbnN0IGludCBtYXhDb25uZWN0aW9uc1Bl
ckhvc3QgPSA2OwogCi0gICAgaWYgKCFzZXNzaW9uKSB7Ci0gICAgICAgIHNlc3Npb24gPSBzb3Vw
X3Nlc3Npb25fYXN5bmNfbmV3KCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLAotICAg
ICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX01BWF9DT05OUywgbWF4Q29ubmVjdGlvbnMs
Ci0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TX1BFUl9IT1NULCBt
YXhDb25uZWN0aW9uc1Blckhvc3QsCi0gICAgICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05f
QUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX0NPTlRFTlRfREVDT0RFUiwKLSAgICAgICAg
ICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVf
Q09OVEVOVF9TTklGRkVSLAotICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX0FERF9G
RUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9ERUZBVUxULAotICAgICAg
ICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX1VTRV9USFJFQURfQ09OVEVYVCwgVFJVRSwKLSAg
ICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Np
b24sICJhdXRoZW50aWNhdGUiLCBHX0NBTExCQUNLKGF1dGhlbnRpY2F0ZUNhbGxiYWNrKSwgMCk7
CisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3KCk7Cisg
ICAgZ19vYmplY3Rfc2V0KHNlc3Npb24sCisgICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09OTlMs
IG1heENvbm5lY3Rpb25zLAorICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TX1BFUl9IT1NU
LCBtYXhDb25uZWN0aW9uc1Blckhvc3QsCisgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVS
RV9CWV9UWVBFLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNPREVSLAorICAgICAgICBTT1VQX1NFU1NJ
T05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX0NPTlRFTlRfU05JRkZFUiwKKyAgICAg
ICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9QUk9YWV9SRVNP
TFZFUl9ERUZBVUxULAorICAgICAgICBTT1VQX1NFU1NJT05fVVNFX1RIUkVBRF9DT05URVhULCBU
UlVFLAorICAgICAgICBOVUxMKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJhdXRo
ZW50aWNhdGUiLCBHX0NBTExCQUNLKGF1dGhlbnRpY2F0ZUNhbGxiYWNrKSwgMCk7CiAKICNpZiBF
TkFCTEUoV0VCX1RJTUlORykKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChzZXNzaW9uLCAicmVx
dWVzdC1zdGFydGVkIiwgR19DQUxMQkFDSyhyZXF1ZXN0U3RhcnRlZENhbGxiYWNrKSwgMCk7Cisg
ICAgZ19zaWduYWxfY29ubmVjdChzZXNzaW9uLCAicmVxdWVzdC1zdGFydGVkIiwgR19DQUxMQkFD
SyhyZXF1ZXN0U3RhcnRlZENhbGxiYWNrKSwgMCk7CiAjZW5kaWYKLSAgICB9CiAKICAgICByZXR1
cm4gc2Vzc2lvbjsKIH0KIAorU291cFNlc3Npb24qIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpCit7CisgICAgc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gY3JlYXRlU291cFNl
c3Npb24oKTsKKyAgICByZXR1cm4gc2Vzc2lvbjsKK30KKworU291cFNlc3Npb24qIFJlc291cmNl
SGFuZGxlOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBTb3VwU2Vzc2lv
biogc2Vzc2lvbiA9IGNyZWF0ZVNvdXBTZXNzaW9uKCk7CisgICAgc291cF9zZXNzaW9uX2FkZF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKGNyZWF0ZVByaXZhdGVCcm93c2lu
Z0Nvb2tpZUphcigpKSk7CisgICAgcmV0dXJuIHNlc3Npb247Cit9CisKIHVpbnQ2NF90IFJlc291
cmNlSGFuZGxlOjpnZXRTb3VwUmVxdWVzdEluaXRpYXRpbmdQYWdlSUQoU291cFJlcXVlc3QqIHJl
cXVlc3QpCiB7CiAgICAgdWludDY0X3QqIGluaXRpYXRpbmdQYWdlSURQdHIgPSBzdGF0aWNfY2Fz
dDx1aW50NjRfdCo+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKHJlcXVlc3QpLCBnU291cFJl
cXVlc3RJbml0aWF0aW5nUGFnZUlES2V5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGVm
NGE4MmY2ZTVkMDdmY2Y3ZDk4NzY1ODYwNTQ1ZTlmMjFkZWEzNmEuLjQ2ODU1ODljMGQ2ZTY0NWYz
ZDA2NTZjOGRlYjE5NGY2OGU0YWVlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zMDQs
NyArMzA0LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3UKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwg
Ym9vbCBlbmFibGVkKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFRoaXMgdGVz
dC1vbmx5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aXRoIE5ldHdvcmtQcm9jZXNzLCA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTI3ND4uCi0jaWYgUExBVEZPUk0o
TUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09S
SykgfHwgVVNFKFNPVVApCiAgICAgaWYgKGVuYWJsZWQpCiAgICAgICAgIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICAgICBlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXgg
YjQwMjlkY2FmMTE1MjFiMGZjYzUzNGM0YTQ1ZWYzZjg1M2M4OThhOS4uYzhmYjNlMDFlZmI4M2Vj
NWE3Mjg1NDM3NTVkNGVlNzE3Y2UxOGI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEw
MCBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDExICsyOSwzMiBA
QAogCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVT
ZXNzaW9uOworCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBp
ZiAocHJpdmF0ZVNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXZhdGVTZXNzaW9u
ID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCku
bGVha1B0cigpOworfQorCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
CisgICAgZGVsZXRlIHByaXZhdGVTZXNzaW9uOworICAgIHByaXZhdGVTZXNzaW9uID0gMDsKK30K
KwogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChX
ZWJGcmFtZSogZnJhbWUpCiAgICAgOiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lLT5jb3Jl
RnJhbWUoKSkKICAgICAsIG1faW5pdGlhdGluZ1BhZ2VJRCgwKQpAQCAtNDMsNiArNjUsOSBAQCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZy
YW1lKiBmcmFtZSkKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CisgICAgaWYgKGZyYW1lKCkgJiYgZnJh
bWUoKS0+c2V0dGluZ3MoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKCkpCisgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb247CisKICAgICByZXR1cm4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggY2EyMmIy
YzQzOWY5NDMxMzZhYzg3YjViOWEwZGJhYjZkMjNhMDdlZS4uZDc1NWZhOWFkYWQ4OTFjMDIzMzcx
NjFkMGY3ODNiOGVlYTFmMGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oCkBAIC00MSw2ICs0MSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAgICAgfQog
CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisKIHByaXZhdGU6CiAg
ICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSopOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzM2QzMGNmMDVhZDNhOTEwNzdhZjc1ZTYw
MTBjZTVlYTFjNjU3ZDViLi5mOTE0OGJjNWEyMjdhZDU1MTJmNmU1Mzc3NjFiYTAwNzk5ODdmMmZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1Myw3ICs0
NTMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJv
b2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKIAogdm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKLSNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5F
VFdPUkspCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkK
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCk7CiAjZW5kaWYKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207420</attachid>
            <date>2013-07-24 16:48:32 -0700</date>
            <delta_ts>2013-07-25 06:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118657-20130725084820.patch</filename>
            <type>text/plain</type>
            <size>15910</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTYzZDZlYmNkNGRjNWI5
MjJlNGM3YzY1ZGNkMmFlYTY4ZWY0YmFhMC4uMzRlNzVjZTU3NTA5MGI4ODA5NDE0OTczYjYyNWQ2
NzZjMDE3MTBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA3LTE0ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1dLMl1bU291cF0g
QWRkIHByaXZhdGUgYnJvd3Npbmcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBwcml2YXRlIGJyb3dzaW5nIGJ5IGFkZGluZyBh
IG1ldGhvZCB0byBjcmVhdGUgYSBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHNvdXAgc2Vzc2lv
bi4gVGhpcyBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdXNlcyBhCisgICAgICAgIG5vbi1wZXJz
aXN0ZW50IGNvb2tpZSBqYXIgYW5kIGRvZXMgbm90IHVzZSB0aGUgZGlzayBjYWNoZSBmZWF0dXJl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyBwcml2YXRlIGJy
b3dzaW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgQWRkIFVTRShTT1VQKSBndWFyZCB0byBp
c1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBhbmQgbV9pc1ByaXZhdGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIEFkZCBhIGZhY3Rvcnkg
bWV0aG9kIHRvIGNyZWF0ZSBhIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbiBmb3Igc291cC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVCcm93c2luZ0Nvb2tpZUphcik6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaDoKKyAgICAgICAgQWRkIGEgbWV0
aG9kIHRvIGNyZWF0ZSBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIgZm9yIHByaXZhdGUgYnJv
d3NpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIEluaXRpYWxpemUgbV9pc1ByaXZhdGUg
dG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBi
eSBpbnZva2luZyBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbi4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291cFNlc3Npb24pOgorICAgICAgICBFeHRyYWN0
IGNvbW1vbiBzb3VwIHNlc3Npb24gY3JlYXRpb24gY29kZSBzbyB0aGF0IGJvdGggZGVmYXVsdFNl
c3Npb24KKyAgICAgICAgYW5kIGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gY2FuIHVzZSB0
aGlzIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHNvdXAKKyAgICAgICAgc2Vzc2lvbi4KKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIENoYW5n
ZSB0byB1c2UgY3JlYXRlU291cFNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIENyZWF0ZSBhIHNl
c3Npb24gd2hpY2ggdXNlcyBhIG5vbi1wZXJzaXN0ZW50IGNvb2tpZSBqYXIuCisKIDIwMTMtMDct
MjQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjE1MjMzNSk6IE1hYyBQcm8gdGl0bGUgb2NjbHVkZWQgaW4gTW9iaWxlU2FmYXJp
OyBjYW4ndCBzY3JvbGwgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJmYTk1NWEwYzk3N2NlMDRlMTVhYjk5
Y2YzYWVhMDIyY2Y1OTRlZmIuLjE3ODc3NzY5MWZkZmQ1ODMzMmZhM2ZiMjgxN2U5OWY0NjMyMGY3
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMy0wNy0xNCAgS3dhbmcgWXVsIFNl
byAgPHNreXVsQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtXSzJdW1NvdXBdIEFkZCBwcml2
YXRlIGJyb3dzaW5nIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExODY1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgcHJpdmF0ZSBicm93c2luZyBpbiBXSzIgYnkgaW1wbGVtZW50
aW5nIHByaXZhdGUgYnJvd3NpbmcKKyAgICAgICAgcmVsYXRlZCBtZXRob2RzIGluIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICBBZGQgVVNFKFNPVVApIGd1YXJkLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuY3BwOgorICAgICAgICBBZGQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0IG1l
dGhvZHMuIENvcGllZCBmcm9tIHRoZSBNYWMgcG9ydC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICBDaGVjayBpZiB0aGUgZnJhbWUgZW5hYmxlcyBw
cml2YXRlIGJyb3dzaW5nIGFuZCByZXR1cm4gdGhlIHByaXZhdGUKKyAgICAgICAgYnJvd3Npbmcg
c2Vzc2lvbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbik6CisgICAgICAgIEFkZCBVU0UoU09VUCkgZ3VhcmQuCisKIDIwMTMtMDctMjQgIEt3
YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbV0syXVtTb3Vw
XSBBZGQgZW50cnkgcG9pbnQgZm9yIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXgg
NDEyOGNhYTZmNDAwMzNjM2NmNDAzYTYwMDZmNWVjMDA1MDk0NmVhZS4uM2YxM2Q1ZDk5YjI1YjQ3
NzI1NmE5MmQ2NDVhMDg5NzA5NWVkZmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC00NSwxNSArNDUs
MTggQEAgY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShOZXR3b3JrU3RvcmFnZVNlc3Npb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBkZWZhdWx0U3RvcmFnZVNl
c3Npb24oKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IGNy
ZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSk7
CisgICAgc3RhdGljIFBhc3NPd25QdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBjcmVhdGVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmco
KSk7CiAKICAgICBzdGF0aWMgdm9pZCBzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKKyNp
ZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQorICAgIGJvb2wg
aXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc1ByaXZhdGU7IH0K
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQogICAgIC8vIE1h
eSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlvbiBkZWZhdWx0IHNob3VsZCBiZSB1
c2VkLgogICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxhdGZvcm1TZXNzaW9uKCkgeyByZXR1
cm4gbV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2ll
U3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSgpIGNvbnN0OwotICAgIGJvb2wgaXNQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc1ByaXZhdGU7IH0KICNlbGlmIFVTRShT
T1VQKQogICAgIHZvaWQgc2V0U291cFNlc3Npb24oU291cFNlc3Npb24qIHNlc3Npb24pIHsgbV9z
ZXNzaW9uID0gc2Vzc2lvbjsgfQogICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbjsgfQpAQCAtNjgsMTMgKzcxLDE2IEBAIHByaXZhdGU6CiAgICAg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPik7
CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CiAgICAgUmV0YWluUHRyPENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY+IG1fcGxhdGZvcm1TZXNzaW9uOwotICAgIGJvb2wgbV9pc1ByaXZhdGU7CiAj
ZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qKTsK
ICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOwogI2Vsc2UKICAgICBSZWZQdHI8TmV0d29ya2lu
Z0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0Uo
Q0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKKyAgICBib29sIG1faXNQcml2YXRlOworI2VuZGlmCiB9
OwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZORVRXT1JLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDk5Njg3MDQ4ZDVk
MjhjZmY5MTgyMzczY2FjZjNmNjNkNWZmMDcwMDYuLjI5YTdmMTQ1OWFiM2Y3NjNhM2MzOGI5MDky
NjExYmI4NTQ2YjhkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
YW5jZWxsZWRPckNsaWVudGxlc3MoKTsKICAgICB2b2lkIGVuc3VyZVJlYWRCdWZmZXIoKTsKICAg
ICBzdGF0aWMgU291cFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uKCk7CisgICAgc3RhdGljIFNvdXBT
ZXNzaW9uKiBjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAgICAgc3RhdGljIHVpbnQ2
NF90IGdldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJRChTb3VwUmVxdWVzdCopOwogICAgIHN0
YXRpYyB2b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYp
OwogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9z
dCwgR1Rsc0NlcnRpZmljYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggMDMyOTM0YmQxN2Q4NzkxZTFh
YmFjZmNlNmI3YmVjNDczZTNiNjcxNS4uZTUyNzY1MzZhY2I4OTk1YzMxMGI3Mzc0ODgyOTFmM2Nk
YTM5MWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtNTYsNiArNTYsMTUgQEAgU291cENvb2tpZUphciog
c291cENvb2tpZUphcigpCiAgICAgcmV0dXJuIGphcjsKIH0KIAorU291cENvb2tpZUphciogY3Jl
YXRlUHJpdmF0ZUJyb3dzaW5nQ29va2llSmFyKCkKK3sKKyAgICBTb3VwQ29va2llSmFyKiBqYXIg
PSBzb3VwX2Nvb2tpZV9qYXJfbmV3KCk7CisKKyAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0X2FjY2Vw
dF9wb2xpY3koamFyLCBTT1VQX0NPT0tJRV9KQVJfQUNDRVBUX05PX1RISVJEX1BBUlRZKTsKKwor
ICAgIHJldHVybiBqYXI7Cit9CisKIHZvaWQgc2V0U291cENvb2tpZUphcihTb3VwQ29va2llSmFy
KiBqYXIpCiB7CiAgICAgZGVmYXVsdENvb2tpZUphcigpID0gamFyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmgKaW5kZXggMjg5
MzBjZTA0YzgwYWE0NmMyYmY1YTQ5ZGQyOGNjMGI4M2UxZWM4YS4uYjk0OWVmOGZhMWIwM2QxMTM5
Njg4ZDFmMDRiOWFiMTk5NDQxOWNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5oCkBAIC0zNCw2ICszNCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFNvdXBDb29raWVKYXIqIHNvdXBDb29raWVKYXIoKTsKIHZvaWQgc2V0
U291cENvb2tpZUphcihTb3VwQ29va2llSmFyKik7CiAKK1NvdXBDb29raWVKYXIqIGNyZWF0ZVBy
aXZhdGVCcm93c2luZ0Nvb2tpZUphcigpOworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDI2Y2FlNzYyMGIwMTYyZjBjMmM3MThlZmVjNWYzMzIy
OTI5OWQ4ZmIuLjg2OGU4MDI1MjE2MTI4MjE3OTZmNTIxYTRjMzY1ODk1OGM0YWRjYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMwLDExICszMCwxMyBAQAogI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAgOiBtX3Nl
c3Npb24oc2Vzc2lvbikKKyAgICAsIG1faXNQcml2YXRlKGZhbHNlKQogewogfQogCkBAIC01NCw4
ICs1NiwxMCBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkKIAogUGFzc093blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Np
b24+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihj
b25zdCBTdHJpbmcmKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBu
dWxscHRyOworICAgIE93blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IHNlc3Npb24gPSBhZG9w
dFB0cihuZXcgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFJlc291cmNlSGFuZGxlOjpjcmVhdGVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKCkpKTsKKyAgICBzZXNzaW9uLT5tX2lzUHJpdmF0ZSA9IHRydWU7
CisKKyAgICByZXR1cm4gc2Vzc2lvbi5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAKaW5kZXggNmZlNDY5MDdiZDMzZGIxMmZkZTU1MTA2M2FhMWVhMmNkNzgwODk1OS4uMWIxOTZm
MDUzZWRjOWYzYzYyNjkzNzg3YWM5YTVhOGUxMjg5NDc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAKQEAgLTEzNjYsOSArMTM2Niw4IEBAIHN0YXRpYyB2b2lkIGF1dGhlbnRpY2F0ZUNhbGxiYWNr
KFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsCiAgICAgaGFu
ZGxlLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFs
bGVuZ2Uoc2Vzc2lvbiwgc291cE1lc3NhZ2UsIHNvdXBBdXRoLCByZXRyeWluZywgaGFuZGxlLmdl
dCgpKSk7CiB9CiAKLVNvdXBTZXNzaW9uKiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24o
KQorc3RhdGljIFNvdXBTZXNzaW9uKiBjcmVhdGVTb3VwU2Vzc2lvbigpCiB7Ci0gICAgc3RhdGlj
IFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gMDsKICAgICAvLyBWYWx1ZXMgdGFrZW4gZnJvbSBodHRw
Oi8vd3d3LmJyb3dzZXJzY29wZS5vcmcvICBmb2xsb3dpbmcKICAgICAvLyB0aGUgcnVsZSAiRG8g
V2hhdCBFdmVyeSBPdGhlciBNb2Rlcm4gQnJvd3NlciBJcyBEb2luZyIuIFRoZXkgc2VlbQogICAg
IC8vIHRvIHNpZ25pZmljYW50bHkgaW1wcm92ZSBwYWdlIGxvYWRpbmcgdGltZSBjb21wYXJlZCB0
byBzb3VwJ3MKQEAgLTEzNzYsMjYgKzEzNzUsMzcgQEAgU291cFNlc3Npb24qIFJlc291cmNlSGFu
ZGxlOjpkZWZhdWx0U2Vzc2lvbigpCiAgICAgc3RhdGljIGNvbnN0IGludCBtYXhDb25uZWN0aW9u
cyA9IDM1OwogICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4Q29ubmVjdGlvbnNQZXJIb3N0ID0gNjsK
IAotICAgIGlmICghc2Vzc2lvbikgewotICAgICAgICBzZXNzaW9uID0gc291cF9zZXNzaW9uX2Fz
eW5jX25ldygpOwotICAgICAgICBnX29iamVjdF9zZXQoc2Vzc2lvbiwKLSAgICAgICAgICAgICAg
ICAgICAgIFNPVVBfU0VTU0lPTl9NQVhfQ09OTlMsIG1heENvbm5lY3Rpb25zLAotICAgICAgICAg
ICAgICAgICAgICAgU09VUF9TRVNTSU9OX01BWF9DT05OU19QRVJfSE9TVCwgbWF4Q29ubmVjdGlv
bnNQZXJIb3N0LAotICAgICAgICAgICAgICAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJF
X0JZX1RZUEUsIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIsCi0gICAgICAgICAgICAgICAgICAg
ICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwgU09VUF9UWVBFX0NPTlRFTlRfU05J
RkZFUiwKLSAgICAgICAgICAgICAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRV9CWV9U
WVBFLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfREVGQVVMVCwKLSAgICAgICAgICAgICAgICAg
ICAgIFNPVVBfU0VTU0lPTl9VU0VfVEhSRUFEX0NPTlRFWFQsIFRSVUUsCi0gICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChzZXNzaW9uLCAiYXV0aGVu
dGljYXRlIiwgR19DQUxMQkFDSyhhdXRoZW50aWNhdGVDYWxsYmFjayksIDApOworICAgIFNvdXBT
ZXNzaW9uKiBzZXNzaW9uID0gc291cF9zZXNzaW9uX2FzeW5jX25ldygpOworICAgIGdfb2JqZWN0
X3NldChzZXNzaW9uLAorICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TLCBtYXhDb25uZWN0
aW9ucywKKyAgICAgICAgU09VUF9TRVNTSU9OX01BWF9DT05OU19QRVJfSE9TVCwgbWF4Q29ubmVj
dGlvbnNQZXJIb3N0LAorICAgICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwg
U09VUF9UWVBFX0NPTlRFTlRfREVDT0RFUiwKKyAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFU
VVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9DT05URU5UX1NOSUZGRVIsCisgICAgICAgIFNPVVBfU0VT
U0lPTl9BRERfRkVBVFVSRV9CWV9UWVBFLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfREVGQVVM
VCwKKyAgICAgICAgU09VUF9TRVNTSU9OX1VTRV9USFJFQURfQ09OVEVYVCwgVFJVRSwKKyAgICAg
ICAgTlVMTCk7CisgICAgZ19zaWduYWxfY29ubmVjdChzZXNzaW9uLCAiYXV0aGVudGljYXRlIiwg
R19DQUxMQkFDSyhhdXRoZW50aWNhdGVDYWxsYmFjayksIDApOwogCiAjaWYgRU5BQkxFKFdFQl9U
SU1JTkcpCi0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgInJlcXVlc3Qtc3RhcnRl
ZCIsIEdfQ0FMTEJBQ0socmVxdWVzdFN0YXJ0ZWRDYWxsYmFjayksIDApOworICAgIGdfc2lnbmFs
X2Nvbm5lY3Qoc2Vzc2lvbiwgInJlcXVlc3Qtc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVxdWVzdFN0
YXJ0ZWRDYWxsYmFjayksIDApOwogI2VuZGlmCi0gICAgfQogCiAgICAgcmV0dXJuIHNlc3Npb247
CiB9CiAKK1NvdXBTZXNzaW9uKiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKQorewor
ICAgIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGNyZWF0ZVNvdXBTZXNzaW9uKCk7Cisg
ICAgcmV0dXJuIHNlc3Npb247Cit9CisKK1NvdXBTZXNzaW9uKiBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit7CisgICAgU291cFNlc3Npb24qIHNlc3Npb24g
PSBjcmVhdGVTb3VwU2Vzc2lvbigpOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNz
aW9uLCBTT1VQX1NFU1NJT05fRkVBVFVSRShjcmVhdGVQcml2YXRlQnJvd3NpbmdDb29raWVKYXIo
KSkpOworICAgIHJldHVybiBzZXNzaW9uOworfQorCiB1aW50NjRfdCBSZXNvdXJjZUhhbmRsZTo6
Z2V0U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlEKFNvdXBSZXF1ZXN0KiByZXF1ZXN0KQogewog
ICAgIHVpbnQ2NF90KiBpbml0aWF0aW5nUGFnZUlEUHRyID0gc3RhdGljX2Nhc3Q8dWludDY0X3Qq
PihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChyZXF1ZXN0KSwgZ1NvdXBSZXF1ZXN0SW5pdGlh
dGluZ1BhZ2VJREtleSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBlZjRhODJmNmU1ZDA3
ZmNmN2Q5ODc2NTg2MDU0NWU5ZjIxZGVhMzZhLi40Njg1NTg5YzBkNmU2NDVmM2QwNjU2YzhkZWIx
OTRmNjhlNGFlZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzA0LDcgKzMwNCw3IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2Vi
UGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91CiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxl
ZCkKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlzIHRlc3Qtb25seSBmdW5j
dGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNzQ+LgotI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNF
KENGTkVUV09SSykKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShT
T1VQKQogICAgIGlmIChlbmFibGVkKQogICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IGI0MDI5ZGNhZjEx
NTIxYjBmY2M1MzRjNGE0NWVmM2Y4NTNjODk4YTkuLmM4ZmIzZTAxZWZiODNlYzVhNzI4NTQzNzU1
ZDRlZTcxN2NlMThiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEy
IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAgSW5jLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMSArMjksMzIgQEAKIAogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCitzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBwcml2YXRlU2Vzc2lvbjsKKwor
dm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKHByaXZhdGVT
ZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLmxlYWtQdHIoKTsK
K30KKwordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGRlbGV0
ZSBwcml2YXRlU2Vzc2lvbjsKKyAgICBwcml2YXRlU2Vzc2lvbiA9IDA7Cit9CisKIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZy
YW1lKQogICAgIDogRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZS0+Y29yZUZyYW1lKCkpCiAg
ICAgLCBtX2luaXRpYXRpbmdQYWdlSUQoMCkKQEAgLTQzLDYgKzY1LDkgQEAgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChXZWJGcmFtZSogZnJhbWUp
CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3Rv
cmFnZVNlc3Npb24oKSBjb25zdAogeworICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRp
bmdzKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm4gKnByaXZhdGVTZXNzaW9uOworCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IGNhMjJiMmM0MzlmOTQzMTM2
YWM4N2I1YjlhMGRiYWI2ZDIzYTA3ZWUuLmQ3NTVmYTlhZGFkODkxYzAyMzM3MTYxZDBmNzgzYjhl
ZWExZjBhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaApAQCAtNDEsNiArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwogICAgIH0KIAorICAgIHN0YXRp
YyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKyAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworCiBwcml2YXRlOgogICAgIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggMzNkMzBjZjA1YWQzYTkxMDc3YWY3NWU2MDEwY2U1ZWExYzY1
N2Q1Yi4uZjkxNDhiYzVhMjI3YWQ1NTEyZjZlNTM3NzYxYmEwMDc5OTg3ZjJmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NTMsNyArNDUzLDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpmdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXli
b2FyZEFjY2Vzc0VuYWJsZWQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQorI2lm
IFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykgfHwgVVNFKFNPVVApCiAgICAgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwogI2Vu
ZGlmCiB9Cg==
</data>
<flag name="review"
          id="229206"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>