<?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>101935</bug_id>
          
          <creation_ts>2012-11-12 06:54:55 -0800</creation_ts>
          <short_desc>Add initiator to CachedResourceRequest.</short_desc>
          <delta_ts>2012-11-27 02:10:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>102111</dependson>
          <blocked>102064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Marja Hölttä">marja</reporter>
          <assigned_to name="Marja Hölttä">marja</assigned_to>
          <cc>abarth</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>oliver</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764371</commentid>
    <comment_count>0</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-12 06:54:55 -0800</bug_when>
    <thetext>This is needed for bug 92761 and for bug 84883.

This differs from simonjam&apos;s approach in bug 101300: We don&apos;t store a CachedResourceRequest anywhere, so it doesn&apos;t store references to the initiator objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764378</commentid>
    <comment_count>1</comment_count>
      <attachid>173641</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-12 07:03:41 -0800</bug_when>
    <thetext>Created attachment 173641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764388</commentid>
    <comment_count>2</comment_count>
      <attachid>173641</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-12 07:14:23 -0800</bug_when>
    <thetext>Comment on attachment 173641
Patch

What are you gonna do about CachedResourceRequests created by the ThreadableLoader?

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Motivation: at least one embedder needs to know which elements request a

uh, which embedder might that be?

&gt; Source/WebCore/css/CSSFontFaceSrcValue.cpp:100
&gt; +        request.setInitiator(&quot;css&quot;, document);

should stuff like &quot;css&quot; be an AtomicString (see e.g. dom/EventNames.h)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764657</commentid>
    <comment_count>3</comment_count>
      <attachid>173641</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 12:20:07 -0800</bug_when>
    <thetext>Comment on attachment 173641
Patch

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

&gt; Source/WebCore/css/CSSImageValue.h:70
&gt; +    RefPtr&lt;Element&gt; m_initiatorElement;

Are we worried about the amount of extra storage this requires?  A document might have many CSSImageValues...

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:146
&gt; +    RefPtr&lt;Document&gt; m_document;

I don&apos;t understand why you made these changes.  It seems like we already had document in preload().  There doesn&apos;t seem to be a reason to ref the document here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764658</commentid>
    <comment_count>4</comment_count>
      <attachid>173641</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 12:21:27 -0800</bug_when>
    <thetext>Comment on attachment 173641
Patch

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

Should we add an ASSERT somewhere that we always set an initiator?

&gt; Source/WebCore/loader/cache/CachedResourceRequest.h:74
&gt; +    RefPtr&lt;Element&gt; m_initiatorElement;
&gt; +    RefPtr&lt;Document&gt; m_initiatorDocument;

Can both of these be non-0 at the same time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764660</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 12:23:03 -0800</bug_when>
    <thetext>I think this generally looks fine.  The comments above are all somewhat minor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765613</commentid>
    <comment_count>6</comment_count>
      <attachid>173895</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 08:08:50 -0800</bug_when>
    <thetext>Created attachment 173895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765616</commentid>
    <comment_count>7</comment_count>
      <attachid>173897</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 08:11:42 -0800</bug_when>
    <thetext>Created attachment 173897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765622</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 08:16:15 -0800</bug_when>
    <thetext>Attachment 173897 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/platform/ThreadGlobalData.h:44:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 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>765624</commentid>
    <comment_count>9</comment_count>
      <attachid>173900</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 08:19:55 -0800</bug_when>
    <thetext>Created attachment 173900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765631</commentid>
    <comment_count>10</comment_count>
      <attachid>173641</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 08:29:00 -0800</bug_when>
    <thetext>Comment on attachment 173641
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Motivation: at least one embedder needs to know which elements request a
&gt; 
&gt; uh, which embedder might that be?

Changed to &quot;Chromium needs to know&quot;.

&gt;&gt; Source/WebCore/css/CSSFontFaceSrcValue.cpp:100
&gt;&gt; +        request.setInitiator(&quot;css&quot;, document);
&gt; 
&gt; should stuff like &quot;css&quot; be an AtomicString (see e.g. dom/EventNames.h)

Done.

&gt;&gt; Source/WebCore/css/CSSImageValue.h:70
&gt;&gt; +    RefPtr&lt;Element&gt; m_initiatorElement;
&gt; 
&gt; Are we worried about the amount of extra storage this requires?  A document might have many CSSImageValues...

Removed m_initiatorElement here; passing it to CSSImageValue::cachedImage as a parameter instead. (CSSCrossFaderValue &amp; CSSCursorImageValue pass 0.)

&gt;&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:146
&gt;&gt; +    RefPtr&lt;Document&gt; m_document;
&gt; 
&gt; I don&apos;t understand why you made these changes.  It seems like we already had document in preload().  There doesn&apos;t seem to be a reason to ref the document here.

Yes, this was wrong -&gt; cancelled the changes to add m_document.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequest.h:74
&gt;&gt; +    RefPtr&lt;Document&gt; m_initiatorDocument;
&gt; 
&gt; Can both of these be non-0 at the same time?

There are asserts in the setInitiator functions which make sure that setInitiator (either version) is called only once, and that only one of these will be non-0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765634</commentid>
    <comment_count>11</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 08:31:01 -0800</bug_when>
    <thetext>Thanks for comments!

abarth, can you have a look at the new patch?

I created a meta bug, bug 102064 for tracking the different phases of this work. I can split this CL further if you&apos;d like..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765690</commentid>
    <comment_count>12</comment_count>
      <attachid>173900</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 09:28:48 -0800</bug_when>
    <thetext>Comment on attachment 173900
Patch

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

This looks good.  Some nits below.  My main concern here is about maintenance.  We want to make sure this code is well-tested so that the initiator doesn&apos;t become copy pasta.  I appreciate that you&apos;ve broken this work up into small patches, but I would like to get to the point where we can test these changes sooner rather than later.  :)

&gt; Source/WebCore/ChangeLog:5
&gt; +

You should leave the Reviewed by NODBODY (OPPS!) line in the ChangeLog entry.  The bots use that to know where to insert the name of the person who actually reviewed the patch.

&gt; Source/WebCore/css/CSSCursorImageValue.cpp:142
&gt; -    return CSSImageValue::cachedImage(loader, url());
&gt; +    return CSSImageValue::cachedImage(loader, url(), 0);

In these cases, we won&apos;t have initiators?  Is that a problem?

&gt; Source/WebCore/css/CSSImageValue.cpp:92
&gt; +            request.setInitiator(cachedResourceRequestInitiators().css, loader-&gt;document());

Oh, I see.  It defaults to the document.  In that case, I might add a default argument of 0 so that the callers don&apos;t have this funny 0 hanging around.

&gt; Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp:57
&gt; +        request.setInitiator(&quot;css&quot;, loader-&gt;document());

&quot;css&quot; -&gt; cachedResourceRequestInitiators().css

&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:73
&gt; +void CachedResourceRequest::setInitiator(AtomicString name, PassRefPtr&lt;Document&gt; document)

AtomicString -&gt; const AtomicString&amp; (that avoid churning the reference count)

&gt; Source/WebCore/platform/ThreadGlobalData.cpp:32
&gt; +#include &quot;CachedResourceRequestInitiators.h&quot;
&gt;  #include &quot;DOMImplementation.h&quot;
&gt;  #include &quot;EventNames.h&quot;

Technically these are all layering violations, but I&apos;m not sure we have a plan for solving this problem without this layering violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765728</commentid>
    <comment_count>13</comment_count>
      <attachid>173917</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 10:01:58 -0800</bug_when>
    <thetext>Created attachment 173917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765738</commentid>
    <comment_count>14</comment_count>
      <attachid>173900</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 10:07:16 -0800</bug_when>
    <thetext>Comment on attachment 173900
Patch

Thanks for comments; the new patch set addresses them.

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

&gt;&gt; Source/WebCore/ChangeLog:5
&gt;&gt; +
&gt; 
&gt; You should leave the Reviewed by NODBODY (OPPS!) line in the ChangeLog entry.  The bots use that to know where to insert the name of the person who actually reviewed the patch.

Done (oops).

&gt;&gt; Source/WebCore/css/CSSImageValue.cpp:92
&gt;&gt; +            request.setInitiator(cachedResourceRequestInitiators().css, loader-&gt;document());
&gt; 
&gt; Oh, I see.  It defaults to the document.  In that case, I might add a default argument of 0 so that the callers don&apos;t have this funny 0 hanging around.

Done.

&gt;&gt; Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp:57
&gt;&gt; +        request.setInitiator(&quot;css&quot;, loader-&gt;document());
&gt; 
&gt; &quot;css&quot; -&gt; cachedResourceRequestInitiators().css

Done.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:73
&gt;&gt; +void CachedResourceRequest::setInitiator(AtomicString name, PassRefPtr&lt;Document&gt; document)
&gt; 
&gt; AtomicString -&gt; const AtomicString&amp; (that avoid churning the reference count)

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765741</commentid>
    <comment_count>15</comment_count>
      <attachid>173917</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 10:09:23 -0800</bug_when>
    <thetext>Comment on attachment 173917
Patch

Thanks for iterating on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765807</commentid>
    <comment_count>16</comment_count>
      <attachid>173917</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 10:53:07 -0800</bug_when>
    <thetext>Comment on attachment 173917
Patch

Clearing flags on attachment: 173917

Committed r134442: &lt;http://trac.webkit.org/changeset/134442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765808</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 10:53:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765844</commentid>
    <comment_count>18</comment_count>
      <attachid>173917</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-13 11:25:28 -0800</bug_when>
    <thetext>Comment on attachment 173917
Patch

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

Architecturally, I’m surprised that tag names are a suitable way to represent the initiator.

&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiators.h:34
&gt; +class CachedResourceRequestInitiators {

I don’t understand why this class is named “initiators”. Do objects of this class represent multiple “initiators”? Could you explain further?

&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiators.h:38
&gt; +public:
&gt; +    AtomicString css;
&gt; +    AtomicString icon;

Normally a class with public data members would be defined as a “struct” rather than “class” in WebKit.

If these data members are initialized in the constructor then maybe they should be const AtomicString instead of AtomicString?

&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiators.h:44
&gt; +inline CachedResourceRequestInitiators&amp; cachedResourceRequestInitiators()

Why does this return a non-const references? I don’t understand why this object is both global and mutable. This seems a different approach than what we’ve done for other global string constants such as HTML attribute names, and I don’t understand the reason for a different idiom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765854</commentid>
    <comment_count>19</comment_count>
      <attachid>173917</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 11:37:16 -0800</bug_when>
    <thetext>Comment on attachment 173917
Patch

If you&apos;d like me to do the changes below, I could create a follow-up patch tomorrow (UTC...).

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

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiators.h:34
&gt;&gt; +class CachedResourceRequestInitiators {
&gt; 
&gt; I don’t understand why this class is named “initiators”. Do objects of this class represent multiple “initiators”? Could you explain further?

It could&apos;ve also been called CachedResourceRequestInitiatorNames (like EventNames), but it&apos;s quite long.. Do you mean the plural (why not CachedResourceRequestInitiator instead of CachedResourceRequestInitiators) or the name in general?

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiators.h:38
&gt;&gt; +    AtomicString icon;
&gt; 
&gt; Normally a class with public data members would be defined as a “struct” rather than “class” in WebKit.
&gt; 
&gt; If these data members are initialized in the constructor then maybe they should be const AtomicString instead of AtomicString?

Copied from EventNames, but I can change them to be const AtomicString.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiators.h:44
&gt;&gt; +inline CachedResourceRequestInitiators&amp; cachedResourceRequestInitiators()
&gt; 
&gt; Why does this return a non-const references? I don’t understand why this object is both global and mutable. This seems a different approach than what we’ve done for other global string constants such as HTML attribute names, and I don’t understand the reason for a different idiom.

Also copied from EventNames, but I can change this, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765862</commentid>
    <comment_count>20</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-11-13 11:42:51 -0800</bug_when>
    <thetext>I think this patch has broken the world. CachedResourceRequestInitiators.h doesn&apos;t appear to be where it&apos;s expected to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765867</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 11:45:19 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; I think this patch has broken the world. CachedResourceRequestInitiators.h doesn&apos;t appear to be where it&apos;s expected to be.

rolling out now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765871</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 11:46:24 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 102111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765882</commentid>
    <comment_count>23</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-11-13 11:53:48 -0800</bug_when>
    <thetext>Okay, problems in the xcode project:
CachedScript.cpp was dropped from the project
CachedResourceRequestInitiators.{h,cpp} -- I have no idea what happened here, occasionally the hashes are identical, occasionally they mismatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765887</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 11:55:12 -0800</bug_when>
    <thetext>&gt; Okay, problems in the xcode project:

It&apos;s probably worth rolling out anyway given that there are some comments above about the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765896</commentid>
    <comment_count>25</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-13 12:00:18 -0800</bug_when>
    <thetext>Most probably the error is because of my manual xcodeproj additions -&gt; will fix that in the new version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766777</commentid>
    <comment_count>26</comment_count>
      <attachid>174135</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-14 05:23:02 -0800</bug_when>
    <thetext>Created attachment 174135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766985</commentid>
    <comment_count>27</comment_count>
      <attachid>174182</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-14 09:52:15 -0800</bug_when>
    <thetext>Created attachment 174182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766987</commentid>
    <comment_count>28</comment_count>
      <attachid>174182</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-14 09:54:29 -0800</bug_when>
    <thetext>Comment on attachment 174182
Patch

This patch fixes the xcode build.

Also, changed the CachedResourceRequestInitiators according to Darin&apos;s suggestions: it&apos;s a struct now, ThreadGlobalData returns a const reference, and the AtomicStrings are const. (Kept the name the same; not sure what do to there.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767024</commentid>
    <comment_count>29</comment_count>
      <attachid>174182</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-14 10:28:57 -0800</bug_when>
    <thetext>Comment on attachment 174182
Patch

Attachment 174182 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14846055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767664</commentid>
    <comment_count>30</comment_count>
      <attachid>174182</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-14 20:24:19 -0800</bug_when>
    <thetext>Comment on attachment 174182
Patch

Attachment 174182 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14832627</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768068</commentid>
    <comment_count>31</comment_count>
      <attachid>174440</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-15 07:49:51 -0800</bug_when>
    <thetext>Created attachment 174440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769084</commentid>
    <comment_count>32</comment_count>
      <attachid>174440</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-16 03:43:31 -0800</bug_when>
    <thetext>Comment on attachment 174440
Patch

The bots are green now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769105</commentid>
    <comment_count>33</comment_count>
      <attachid>174440</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 04:22:33 -0800</bug_when>
    <thetext>Comment on attachment 174440
Patch

Clearing flags on attachment: 174440

Committed r134930: &lt;http://trac.webkit.org/changeset/134930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769106</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 04:22:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772170</commentid>
    <comment_count>35</comment_count>
      <attachid>174440</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-20 14:19:05 -0800</bug_when>
    <thetext>Comment on attachment 174440
Patch

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

&gt; Source/WebCore/css/CSSImageValue.cpp:90
&gt; +            request.setInitiator(initiatorElement);

For Resource Timing, the spec says the initiator should be &quot;css&quot; here. Do you need it to be the element instead for some reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776513</commentid>
    <comment_count>36</comment_count>
      <attachid>174440</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-11-27 02:10:43 -0800</bug_when>
    <thetext>Comment on attachment 174440
Patch

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

&gt;&gt; Source/WebCore/css/CSSImageValue.cpp:90
&gt;&gt; +            request.setInitiator(initiatorElement);
&gt; 
&gt; For Resource Timing, the spec says the initiator should be &quot;css&quot; here. Do you need it to be the element instead for some reason?

Afaics not. This behavior was just copied from your patch (bug 101300).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173641</attachid>
            <date>2012-11-12 07:03:41 -0800</date>
            <delta_ts>2012-11-13 08:29:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121112160143.patch</filename>
            <type>text/plain</type>
            <size>31727</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTM5Yzc1NWI3NGFmZTcy
OWFkMzVhYWIyMDIwMDkzYWVmZjcxMjNiZi4uZDIyZmVlYzA3MWM5NThiOGNkMTYxYjdjZDYwZDdk
OTUyZmQ0MjdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDEyLTExLTEyICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaW5pdGlhdG9y
IHRvIENhY2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdGl2YXRpb246IGF0IGxlYXN0IG9uZSBlbWJlZGRlciBuZWVk
cyB0byBrbm93IHdoaWNoIGVsZW1lbnRzIHJlcXVlc3QgYQorICAgICAgICByZXNvdXJjZSAoc3Vj
aCBhcyBhbiBpbWFnZSBvciBhIHNjcmlwdCkgKGJ1ZyA5Mjc2MSkuIEluIGFkZGl0aW9uLCBmb3IK
KyAgICAgICAgZXhwb3NpbmcgcmVzb3VyY2UgdGltaW5nIGluZm9ybWF0aW9uIChidWcgODQ4ODMp
IHdlIG5lZWQgdG8gc3RvcmUgdGhlCisgICAgICAgIGluaXRpYXRvciwgYW5kIHRoaXMgaXMgdGhl
IGZpcnN0IHN0ZXAgdG93YXJkcyBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHM6IE5vIHZpc2li
bGUgY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9u
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlVmFsdWU6OmNhY2hlZElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlVmFsdWU6OnNldEluaXRpYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDU1NJbWFnZVZhbHVlKToKKyAgICAgICAgKiBjc3MvU3R5
bGVSdWxlSW1wb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVx
dWVzdFN0eWxlU2hlZXQpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQp
OgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKToKKyAgICAgICAgKiBkb20v
U2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1
ZXN0U2NyaXB0KToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2Fk
U2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5lcjo6ZW1pdFJ1
bGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmg6CisgICAgICAg
IChDU1NQcmVsb2FkU2Nhbm5lcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWxvYWRUYXNrOjpQcmVsb2FkVGFzayk6
CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJlbG9hZCk6CisgICAgICAgIChQcmVs
b2FkVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NU
b2tlbik6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cHJlbG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVyKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Ojp+Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yRWxlbWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldE9wdGlvbnMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpkZWZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERlZmVyKToKKyAgICAgICAgKENhY2hl
ZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpzdGFydExvYWRpbmcpOgorICAgICAgICAq
IHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdl
RWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFj
ZVVyaUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50
Ojpsb2FkRm9udCk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisKIDIwMTItMTEt
MDkgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9udGgv
d2VlayBwaWNrZXIgc2hvdWxkIHN1Ym1pdCBtb250aC93ZWVrIHN0cmluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDM2OTA3ODkzMzZkMGI4NDQ4MTUy
NzNiMDEzMjI1ZjY5ZGFhZDY4N2YuLmZhZWQ3NGRjYTkxNTgyMWQzY2Q4OTJmNGE2NzBlZWMzOWVm
ZmY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAg
LTk3LDYgKzk3LDcgQEAgQ2FjaGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9u
dChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFtX2NhY2hlZEZvbnQpIHsKICAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50
LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cigiY3NzIiwgZG9jdW1lbnQpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgfQogICAgIHJl
dHVybiBtX2NhY2hlZEZvbnQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHAKaW5kZXggZjdkNDAxZjVjZjY3NDkwMjE4ODYwM2QyMDhkZTJkNjNiOWM2Y2FlMC4uOTU4
NTZhZjY2Mzg2ZmQ0ZmMzYzQ0NGFiMWNiNmI1YjYyNWNkYzg2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAtMTEwLDYgKzExMCw3IEBAIFN0eWxlQ2FjaGVkSW1h
Z2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9h
ZGVyKiBsb2FkCiAgICAgICAgIC8vIGFuZCBhbnkgQ1NTIHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY5OAogICAgICAgICBJbWFnZVdpdGhTY2Fs
ZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxlRmFjdG9yKCk7CiAgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cigiY3NzIiwgZG9jdW1lbnQpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsK
ICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0OjpjcmVhdGUoY2Fj
aGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKICAgICAgICAgICAgIG1f
YWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
Y3BwCmluZGV4IDZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0ZjcuLmE5YWRi
OWNlYzY2OWVhNTMyMTNlNWU2ZjljNjg0MDhiZDRlZDQ1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VWYWx1ZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGlu
Z0ltYWdlLmgiCkBAIC04NCw2ICs4NSwxMCBAQCBTdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZh
bHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdAogICAg
ICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHVybCkpKTsKKyAgICAgICAgaWYgKG1faW5pdGlhdG9yRWxlbWVudCkKKyAgICAgICAgICAg
IHJlcXVlc3Quc2V0SW5pdGlhdG9yKG1faW5pdGlhdG9yRWxlbWVudC5yZWxlYXNlKCkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcigiY3NzIiwgbG9hZGVy
LT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZElt
YWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAg
ICAgICAgbV9pbWFnZSA9IFN0eWxlQ2FjaGVkSW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQo
KSk7CiAgICAgfQpAQCAtMTM0LDQgKzEzOSw5IEBAIHZvaWQgQ1NTSW1hZ2VWYWx1ZTo6cmVwb3J0
RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluCiAg
ICAgLy8gTm8gbmVlZCB0byByZXBvcnQgbV9pbWFnZSBhcyBpdCBpcyBjb3VudGVkIGFzIHBhcnQg
b2YgUmVuZGVyQXJlbmEuCiB9CiAKK3ZvaWQgQ1NTSW1hZ2VWYWx1ZTo6c2V0SW5pdGlhdG9yKFBh
c3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBtX2luaXRpYXRvckVsZW1lbnQgPSBl
bGVtZW50OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
VmFsdWUuaAppbmRleCA4YzgyZjJjNjdkYjQzM2E3NTE3MzNjOTY3MWRlOWI5MTUxZTdhOThjLi5l
MWMxYTg4Yzg2ODk3NGE2ZjY4MmYzODNmZmRjYTE2ZWQ4Y2IxMzcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU3R5bGVD
YWNoZWRJbWFnZTsKIGNsYXNzIFN0eWxlSW1hZ2U7CiAKQEAgLTUwLDYgKzUxLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCByZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OwogCisgICAgdm9pZCBzZXRJbml0aWF0b3IoUGFzc1JlZlB0cjxFbGVtZW50Pik7
CisKIHByb3RlY3RlZDoKICAgICBDU1NJbWFnZVZhbHVlKENsYXNzVHlwZSwgY29uc3QgU3RyaW5n
JiB1cmwpOwogCkBAIC02NCw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdXJsOwog
ICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogICAgIGJvb2wgbV9hY2Nlc3NlZEltYWdl
OworICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxl
SW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4
IGVlYzM1MDc3MWM0Nzk0MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUuLmY1MTEzN2UzMzIxZTYx
ODg2OTk3Njc2YjRiYmFkOGI1ODkxY2Q1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJ
bXBvcnQuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVl
c3RTdHlsZVNoZWV0KCkKICAgICB9CiAKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkp
OworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKCJjc3MiLCBkb2N1bWVudCk7CiAgICAgaWYgKG1f
cGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKQogICAgICAgICBtX2NhY2hlZFNo
ZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1
ZXN0KTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
U1ZHRG9jdW1lbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9j
dW1lbnRWYWx1ZS5jcHAKaW5kZXggNjdlODRlM2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2Nm
YzhiYS4uNWEzMzhmZTkyODNhYWZhZDE5OGExNGRkNDQ5MzM4YWU0YWJlMmJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtNTQs
NiArNTQsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6
bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgICAgICBtX2xvYWRSZXF1ZXN0
ZWQgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAg
ICAgICByZXF1ZXN0LnNldEluaXRpYXRvcigiY3NzIiwgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAg
ICAgICAgbV9kb2N1bWVudCA9IGxvYWRlci0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5k
ZXggZmEwNDE5MGMzZGM4ZTNhZGI0MzFhYjAzYThmZDFhMWUxODAwNGJhOS4uZjUwZTZlMTZkYWE4
YTkyZTIyYjFiMjE0NjI5MzQyMmZlZDMwZmM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC02MSw2ICs2MSw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVy
KiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVy
KiBsb2FkCiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0cnVlOwogCiAgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcigi
Y3NzIiwgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gY2FjaGVkU2hhZGVyID0gbG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJl
cXVlc3QpKQogICAgICAgICAgICAgbV9zaGFkZXIgPSBTdHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRl
KGNhY2hlZFNoYWRlci5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IGNmZGQxYTQzNjk4MGQxYjAwMjYyYzExOGNjMjY5ZjczYzJjYzMyMjAuLjRmYTU1
OWU4ZmI4MmI1Y2QyODQ3YjNkYTAyMDc5MzZhNTE3MTU3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKQEAgLTI2Niw2ICsyNjYsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJl
cXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAgICAgICAgICAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwg
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxz
KTsKICAgICAgICAgfQogICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQoc2NyaXB0Q2hhcnNldCgp
KTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoZWxlbWVudCgpKTsKIAogICAgICAgICBt
X2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAppbmRleCA4NWNk
ZjM4YjEyNWQ3NjNmODY0MDM1MDQ5MjZmMTZkNzUxMjI2OGQ3Li5hYTczZGFhNGQ5OWFjMDBkZTUz
YTBlMjE2MTM3Y2Y1NjgzNGVlNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1l
bnQuY3BwCkBAIC03Miw4ICs3MiwxMSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6Y29sbGVjdFN0
eWxlRm9yQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlLCBTdHlsZQogewogICAg
IGlmIChhdHRyaWJ1dGUubmFtZSgpID09IGJhY2tncm91bmRBdHRyKSB7CiAgICAgICAgIFN0cmlu
ZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlLnZhbHVl
KCkpOwotICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBzdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIENTU0ltYWdl
VmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpLnN0cmluZygpKSkpOwor
ICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NJbWFn
ZVZhbHVlPiBpbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKHVybCkuc3RyaW5nKCkpOworICAgICAgICAgICAgaW1hZ2VWYWx1ZS0+c2V0SW5p
dGlhdG9yKHRoaXMpOworICAgICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBpbWFnZVZhbHVlLnJlbGVhc2UoKSkpOworICAg
ICAgICB9CiAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IG1hcmdpbndpZHRoQXR0
ciB8fCBhdHRyaWJ1dGUubmFtZSgpID09IGxlZnRtYXJnaW5BdHRyKSB7CiAgICAgICAgIGFkZEhU
TUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBhdHRyaWJ1dGUu
dmFsdWUoKSk7CiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eU1hcmdpbkxlZnQsIGF0dHJpYnV0ZS52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcAppbmRleCA3Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNmNDRi
NDMzLi40YTNkY2ZjNGFjZmY4ZmFiY2M0YWE2YmQ4NzZiY2U0MjhkOGU0NGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yMjIsNiArMjIyLDcgQEAgdm9pZCBI
VE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRo
YXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cg
cHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tp
bmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBwcmlvcml0
eSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2NhY2hl
ZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0
eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcApp
bmRleCAyOWYxY2NkNDY4YmFkZDhkZTVjM2IxOWU3MmYyZDg1MmNkMzAwODkzLi44MmZkZmM2NWM5
ODExZWE4YTEwMjY0NjAyNmFlMGFlOTFjNGQ3YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xOTYsNyArMTk2LDcgQEAgdm9p
ZCBDU1NQcmVsb2FkU2Nhbm5lcjo6ZW1pdFJ1bGUoKQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZSgiaW1wb3J0IiwgbV9ydWxlLmNoYXJhY3RlcnMoKSwgbV9ydWxlLmxlbmd0aCgpKSkgewogICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBwYXJzZUNTU1N0cmluZ09yVVJMKG1fcnVsZVZhbHVlLmNoYXJh
Y3RlcnMoKSwgbV9ydWxlVmFsdWUubGVuZ3RoKCkpOwogICAgICAgICBpZiAoIXZhbHVlLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV9kb2N1bWVudC0+
Y29tcGxldGVVUkwodmFsdWUpKTsKKyAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2RvY3VtZW50LT5jb21wbGV0ZVVSTCh2YWx1ZSkpKTsK
ICAgICAgICAgICAgIG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnByZWxvYWQo
Q2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIFN0cmluZygpLCBtX3NjYW5u
aW5nQm9keSk7CiAgICAgICAgIH0KICAgICAgICAgbV9zdGF0ZSA9IEluaXRpYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAppbmRleCBjM2RiYjgw
MGVkZDhlYTEwYWIyNGViM2MxMjNiN2NhOThmMmNiNDI3Li5iMTZhNjI5MjVlMTA2MTVhOTI0M2M5
MjRiY2VlN2EwY2MwZDFkMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9DU1NQcmVsb2FkU2Nhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSFRNTFRva2VuOwogY2xh
c3MgQ1NTUHJlbG9hZFNjYW5uZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENTU1ByZWxv
YWRTY2FubmVyKTsKIHB1YmxpYzoKLSAgICBDU1NQcmVsb2FkU2Nhbm5lcihEb2N1bWVudCopOwor
ICAgIGV4cGxpY2l0IENTU1ByZWxvYWRTY2FubmVyKERvY3VtZW50Kik7CiAKICAgICB2b2lkIHJl
c2V0KCk7CiAgICAgdm9pZCBzY2FuKGNvbnN0IEhUTUxUb2tlbiYsIGJvb2wgc2Nhbm5pbmdCb2R5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nh
bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIu
Y3BwCmluZGV4IGE3NWI1MmUzNTUwNmFhMzBlNWU5YmYzMDlmMDIwZDg3MTkxY2NmZjQuLjgxZDU2
OWU4Y2VkN2ZkMzM0ZDhiYTlkZjRmYTBkMGE5YzdiNjc1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcApAQCAtNDUsOCArNDUsOSBA
QCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBjbGFzcyBQcmVsb2FkVGFzayB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgUHJlbG9hZFRhc2soY29uc3QgSFRNTFRva2VuJiB0b2tlbikKKyAg
ICBQcmVsb2FkVGFzayhjb25zdCBIVE1MVG9rZW4mIHRva2VuLCBEb2N1bWVudCogZG9jdW1lbnQp
CiAgICAgICAgIDogbV90YWdOYW1lKHRva2VuLm5hbWUoKS5kYXRhKCksIHRva2VuLm5hbWUoKS5z
aXplKCkpCisgICAgICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAgICAgLCBtX2xpbmtJ
c1N0eWxlU2hlZXQoZmFsc2UpCiAgICAgICAgICwgbV9saW5rTWVkaWFBdHRyaWJ1dGVJc1NjcmVl
bih0cnVlKQogICAgICAgICAsIG1faW5wdXRJc0ltYWdlKGZhbHNlKQpAQCAtMTIxLDEzICsxMjIs
MTQgQEAgcHVibGljOgogICAgICAgICBtX3VybFRvTG9hZCA9IHN0cmlwTGVhZGluZ0FuZFRyYWls
aW5nSFRNTFNwYWNlcyhhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgfQogCi0gICAgdm9pZCBwcmVsb2Fk
KERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBzY2FubmluZ0JvZHksIGNvbnN0IEtVUkwmIGJhc2VV
UkwpCisgICAgdm9pZCBwcmVsb2FkKGJvb2wgc2Nhbm5pbmdCb2R5LCBjb25zdCBLVVJMJiBiYXNl
VVJMKQogICAgIHsKICAgICAgICAgaWYgKG1fdXJsVG9Mb2FkLmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwobV91cmxUb0xvYWQs
IGJhc2VVUkwpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VM
b2FkZXIgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOworICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9kb2N1bWVudC0+Y29t
cGxldGVVUkwobV91cmxUb0xvYWQsIGJhc2VVUkwpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5p
dGlhdG9yKHRhZ05hbWUoKSwgbV9kb2N1bWVudC5nZXQoKSk7CiAgICAgICAgIGlmIChtX3RhZ05h
bWUgPT0gc2NyaXB0VGFnKQogICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPnByZWxv
YWQoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBzY2FubmluZ0Jv
ZHkpOwogICAgICAgICBlbHNlIGlmIChtX3RhZ05hbWUgPT0gaW1nVGFnIHx8IChtX3RhZ05hbWUg
PT0gaW5wdXRUYWcgJiYgbV9pbnB1dElzSW1hZ2UpKQpAQCAtMTQxLDYgKzE0Myw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV90YWdOYW1lOworICAgIFJlZlB0cjxE
b2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBTdHJpbmcgbV91cmxUb0xvYWQ7CiAgICAgU3RyaW5n
IG1fY2hhcnNldDsKICAgICBTdHJpbmcgbV9iYXNlRWxlbWVudEhyZWY7CkBAIC0xOTAsNyArMTkz
LDcgQEAgdm9pZCBIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbigpCiAgICAgaWYgKG1f
dG9rZW4udHlwZSgpICE9IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgUHJlbG9hZFRhc2sgdGFzayhtX3Rva2VuKTsKKyAgICBQcmVsb2FkVGFzayB0YXNr
KG1fdG9rZW4sIG1fZG9jdW1lbnQpOwogICAgIG1fdG9rZW5pemVyLT51cGRhdGVTdGF0ZUZvcih0
YXNrLnRhZ05hbWUoKSwgbV9kb2N1bWVudC0+ZnJhbWUoKSk7CiAKICAgICBpZiAodGFzay50YWdO
YW1lKCkgPT0gYm9keVRhZykKQEAgLTIwMiw3ICsyMDUsNyBAQCB2b2lkIEhUTUxQcmVsb2FkU2Nh
bm5lcjo6cHJvY2Vzc1Rva2VuKCkKICAgICBpZiAodGFzay50YWdOYW1lKCkgPT0gYmFzZVRhZykK
ICAgICAgICAgdXBkYXRlUHJlZGljdGVkQmFzZUVsZW1lbnRVUkwoS1VSTChtX2RvY3VtZW50LT51
cmwoKSwgdGFzay5iYXNlRWxlbWVudEhyZWYoKSkpOwogCi0gICAgdGFzay5wcmVsb2FkKG1fZG9j
dW1lbnQsIHNjYW5uaW5nQm9keSgpLCBtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMLmlzRW1wdHko
KSA/IG1fZG9jdW1lbnQtPmJhc2VVUkwoKSA6IG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwpOwor
ICAgIHRhc2sucHJlbG9hZChzY2FubmluZ0JvZHkoKSwgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVS
TC5pc0VtcHR5KCkgPyBtX2RvY3VtZW50LT5iYXNlVVJMKCkgOiBtX3ByZWRpY3RlZEJhc2VFbGVt
ZW50VVJMKTsKIH0KIAogYm9vbCBIVE1MUHJlbG9hZFNjYW5uZXI6OnNjYW5uaW5nQm9keSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBjMTJiZTJmZjlkNDU1
NzRlNDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiLi5lMjI0N2QyNTRjN2Y4NjA5ZWY2ZWEyYTk3NzNi
NWY5ZjdkMWI2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTE3
OSw2ICsxNzksNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAgICBpZiAo
IWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRy
KS5pc0VtcHR5KCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpKTsK
KyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2xpZW50KCktPnNvdXJjZUVsZW1lbnQoKSk7
CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgpLT5zb3VyY2VFbGVt
ZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAg
ICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZDRjYmEw
NTkxMzE5MDBlMTkwY2NmNThlNmZlMGQxNmQ4ZDA3NTU1Ni4uODNhNWExY2U2NzRjYzcyYzVmMTEw
MDk2Y2IzNDhhYjA4MjVlNGQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
SW1hZ2UoQ2FjaGVkUmVzb3UKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAg
fQotICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcik7CisgICAgcmVx
dWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LnVybCgpKSA/IENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJyZWRCeUNsaWVudCA6IENhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlcik7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCBy
ZXF1ZXN0KS5nZXQoKSk7CiB9CiAKQEAgLTQ1OCw3ICs0NTgsNyBAQCBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJj
ZShDYWNoZQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJlc291cmNlLT5zZXRMb2FkUHJpb3Jp
dHkocmVxdWVzdC5wcmlvcml0eSgpKTsKLSAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3Vy
Y2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIE5vRGVmZXIgPT0gcmVxdWVzdC5kZWZlcigpKSB7Cisg
ICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5vRGVmZXIgPT0gcmVxdWVzdC5kZWZlcigpKSB7CiAgICAg
ICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIHJlcXVlc3Qub3B0aW9ucygpKTsKIAogICAgICAgICAv
LyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1cHBvcnQgaW1t
ZWRpYXRlIGZhaWx1cmUuCkBAIC01MTAsNyArNTEwLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVk
UmUKICAgICByZXR1cm4gcmVzb3VyY2U7CiB9CiAKLUNhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZh
bGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhdGlv
blBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIERl
ZmVyT3B0aW9uIGRlZmVyKSBjb25zdAorQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlv
blBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpEZWZlck9wdGlvbiBkZWZlcikgY29uc3QKIHsKICAgICBpZiAoIWV4aXN0
aW5nUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBMb2FkOwpAQCAtNTM5LDcgKzUzOSw3IEBAIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmRldGVybWluZVJldmFsaWRhCiAKICAgICAvLyBEbyBub3QgbG9hZCBmcm9tIGNhY2hlIGlm
IGltYWdlcyBhcmUgbm90IGVuYWJsZWQuIFRoZSBsb2FkIGZvciB0aGlzIGltYWdlIHdpbGwgYmUg
YmxvY2tlZAogICAgIC8vIGluIENhY2hlZEltYWdlOjpsb2FkLgotICAgIGlmIChEZWZlcnJlZEJ5
Q2xpZW50ID09IGRlZmVyKQorICAgIGlmIChDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVycmVk
QnlDbGllbnQgPT0gZGVmZXIpCiAgICAgICAgIHJldHVybiBSZWxvYWQ7CiAgICAgCiAgICAgLy8g
RG9uJ3QgcmVsb2FkIHJlc291cmNlcyB3aGlsZSBwYXN0aW5nLgpAQCAtNzY0LDggKzc2NCw4IEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlY3JlbWVudFJlcXVlc3RDb3VudChjb25zdCBD
YWNoZWRSZXNvdXJjZSogcmVzKQogICAgIC0tbV9yZXF1ZXN0Q291bnQ7CiAgICAgQVNTRVJUKG1f
cmVxdWVzdENvdW50ID4gLTEpOwogfQotICAgIAotdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJvbUJvZHkpCisKK3Zv
aWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQs
IGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KQogewogICAgIC8vIEZJWE1FOiBSaXAgdGhpcyBvdXQg
d2hlbiB3ZSBhcmUgc3VyZSBpdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IChldmVuIGZvciBtb2Jp
bGUpLgogICAgIFVOVVNFRF9QQVJBTShyZWZlcmVuY2VkRnJvbUJvZHkpOwpAQCAtNzgwLDEyICs3
ODAsMTIgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZChDYWNoZWRSZXNvdXJj
ZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHIKICAgICAgICAgaWYgKCFoYXNSZW5kZXJp
bmcgJiYgIWNhbkJsb2NrUGFyc2VyKSB7CiAgICAgICAgICAgICAvLyBEb24ndCBwcmVsb2FkIHN1
YnJlc291cmNlcyB0aGF0IGNhbid0IGJsb2NrIHRoZSBwYXJzZXIgYmVmb3JlIHdlIGhhdmUgc29t
ZXRoaW5nIHRvIGRyYXcuCiAgICAgICAgICAgICAvLyBUaGlzIGhlbHBzIHByZXZlbnQgcHJlbG9h
ZHMgZnJvbSBkZWxheWluZyBmaXJzdCBkaXNwbGF5IHdoZW4gYmFuZHdpZHRoIGlzIGxpbWl0ZWQu
Ci0gICAgICAgICAgICBQZW5kaW5nUHJlbG9hZCBwZW5kaW5nUHJlbG9hZCA9IHsgdHlwZSwgcmVx
dWVzdCwgY2hhcnNldCB9OworICAgICAgICAgICAgUGVuZGluZ1ByZWxvYWQgcGVuZGluZ1ByZWxv
YWQgPSB7IHR5cGUsIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQgfTsKICAgICAg
ICAgICAgIG1fcGVuZGluZ1ByZWxvYWRzLmFwcGVuZChwZW5kaW5nUHJlbG9hZCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmVxdWVzdFByZWxvYWQodHlwZSwg
cmVxdWVzdCwgY2hhcnNldCk7CisgICAgcmVxdWVzdFByZWxvYWQodHlwZSwgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNl
TG9hZGVyOjpjaGVja0ZvclBlbmRpbmdQcmVsb2FkcygpIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCBlMmUyYWU0OTcyNWM1
OTEyZWMxYzUwN2ZiNTg3OTg0MzQ4NWI2YTk1Li5jNWIyMzY1MGRlYTMxYjJlMGQxYzlkYjEyYWZl
NDNjMTc4MzBmNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMjYsOSArMjYsMTAgQEAKICNpZm5kZWYgQ2FjaGVkUmVz
b3VyY2VMb2FkZXJfaAogI2RlZmluZSBDYWNoZWRSZXNvdXJjZUxvYWRlcl9oCiAKKyNpbmNsdWRl
ICJDYWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9y
aXR5LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTQ0
LDcgKzQ1LDYgQEAgY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBDYWNoZWRGb250Owog
Y2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZTsKLWNsYXNzIENhY2hl
ZFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNoYWRl
cjsKIGNsYXNzIENhY2hlZFRleHRUcmFjazsKQEAgLTY5LDcgKzY5LDYgQEAgZnJpZW5kIGNsYXNz
IEltYWdlTG9hZGVyOwogZnJpZW5kIGNsYXNzIFJlc291cmNlQ2FjaGVWYWxpZGF0aW9uU3VwcHJl
c3NvcjsKIAogcHVibGljOgotICAgIGVudW0gRGVmZXJPcHRpb24geyBOb0RlZmVyLCBEZWZlcnJl
ZEJ5Q2xpZW50IH07CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+
IGNyZWF0ZShEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudExvYWRlcikpOyB9CiAgICAgfkNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7CiAKQEAgLTEzMSw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1ByZWxvYWRlZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykgY29uc3Q7CiAgICAgdm9pZCBj
bGVhclByZWxvYWRzKCk7CiAgICAgdm9pZCBjbGVhclBlbmRpbmdQcmVsb2FkcygpOwotICAgIHZv
aWQgcHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSk7CisgICAgdm9pZCBwcmVs
b2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KTsKICAgICB2b2lkIGNoZWNr
Rm9yUGVuZGluZ1ByZWxvYWRzKCk7CiAgICAgdm9pZCBwcmludFByZWxvYWRTdGF0cygpOwogICAg
IGJvb2wgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgS1VSTCYsIGJvb2wg
Zm9yUHJlbG9hZCA9IGZhbHNlKTsKQEAgLTE0OSw3ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAKICAgICBlbnVtIFJldmFsaWRhdGlvblBvbGljeSB7
IFVzZSwgUmV2YWxpZGF0ZSwgUmVsb2FkLCBMb2FkIH07Ci0gICAgUmV2YWxpZGF0aW9uUG9saWN5
IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3Vy
Y2VSZXF1ZXN0JiwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNv
dXJjZSwgRGVmZXJPcHRpb24pIGNvbnN0OworICAgIFJldmFsaWRhdGlvblBvbGljeSBkZXRlcm1p
bmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVz
dCYsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJPcHRpb24pIGNvbnN0OwogICAgIAogICAgIHZvaWQg
bm90aWZ5TG9hZGVkRnJvbU1lbW9yeUNhY2hlKENhY2hlZFJlc291cmNlKik7CiAgICAgYm9vbCBj
aGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgS1VSTCYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmNwcAppbmRleCA2YWRkMzliOTZjYWNmNGRlYjNiNGYzODIxY2VmYjYyNThjNWVj
OWYyLi5hMGIyOGRmMDgwNmI3NDQ5OWMzNTI1YmUxOWNkMWM0ODMzZWNjZjFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCkBAIC0zNCw3ICszOCw3IEBA
IENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKICAgICAsIG1fcHJpb3JpdHko
cHJpb3JpdHkpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCi0gICAgLCBtX2RlZmVyKENhY2hl
ZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwgbV9kZWZlcihOb0RlZmVyKQogewogfQog
CkBAIC00Myw3ICs0Nyw3IEBAIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBtX29wdGlv
bnMob3B0aW9ucykKICAgICAsIG1fcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkKQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9kZWZlcihDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Tm9EZWZlcikKKyAgICAsIG1fZGVmZXIoTm9EZWZlcikKIHsKIH0KIApAQCAt
NTIsOCArNTYsNDggQEAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAsIG1fb3B0aW9ucyhD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQogICAg
ICwgbV9wcmlvcml0eShwcmlvcml0eSkKICAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAs
IG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCisgICAgLCBtX2RlZmVyKE5v
RGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6fkNhY2hlZFJlc291cmNlUmVx
dWVzdCgpCit7Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3Io
UGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQoreworICAgIEFTU0VSVCghbV9pbml0aWF0b3JF
bGVtZW50ICYmICFtX2luaXRpYXRvckRvY3VtZW50KTsKKyAgICBtX2luaXRpYXRvckVsZW1lbnQg
PSBlbGVtZW50OworfQorCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9y
KEF0b21pY1N0cmluZyBuYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCkKK3sKKyAg
ICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiAhbV9pbml0aWF0b3JEb2N1bWVudCk7Cisg
ICAgbV9pbml0aWF0b3JOYW1lID0gbmFtZTsKKyAgICBtX2luaXRpYXRvckRvY3VtZW50ID0gZG9j
dW1lbnQ7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUoKSBjb25zdAoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAg
ICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFtZSgpOworICAgIGlmICghbV9p
bml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsK
KworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwgKCJy
ZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1
cm4gZGVmYXVsdE5hbWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnQ+IENhY2hlZFJlc291cmNl
UmVxdWVzdDo6aW5pdGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1l
bnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAg
cmV0dXJuIG1faW5pdGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkKIHsKKyAgICByZXR1cm4gbV9p
bml0aWF0b3JFbGVtZW50OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggY2IwNDNkZmUzOWZlNGNlZDU1MDgy
MTk0YmUzZjEwZGYwMGY5MWJmNC4uN2Y2ODdiYmZlYjUzNTA1MDUwMWM4MzZhNzQ1ZTA3M2RlOGRj
NmI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaApAQCAtMjYsMjcgKzI2LDQyIEBACiAjaWZuZGVmIENhY2hlZFJlc291cmNl
UmVxdWVzdF9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKLSNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5Lmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIENh
Y2hlZFJlc291cmNlUmVxdWVzdCB7CiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5v
RGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBT
dHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVz
b2x2ZWQpOwogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIH5D
YWNoZWRSZXNvdXJjZVJlcXVlc3QoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291
cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2hhcnNldDsgfQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQp
IHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQgc2V0T3B0
aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0g
b3B0aW9uczsgfQogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZm9yUHJlbG9hZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQp
IHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQotICAgIENhY2hlZFJlc291cmNlTG9hZGVy
OjpEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAgICB2b2lk
IHNldERlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2Rl
ZmVyID0gZGVmZXI7IH0KKyAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVmZXI7IH0KKyAgICB2b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIg
PSBkZWZlcjsgfQorICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOwor
ICAgIHZvaWQgc2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyBuYW1lLCBQYXNzUmVmUHRyPERvY3Vt
ZW50Pik7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGluaXRpYXRvck5hbWUoKSBjb25zdDsKKyAg
ICBQYXNzUmVmUHRyPERvY3VtZW50PiBpbml0aWF0b3JEb2N1bWVudCgpOworICAgIFBhc3NSZWZQ
dHI8RWxlbWVudD4gaW5pdGlhdG9yRWxlbWVudCgpOwogCiBwcml2YXRlOgogICAgIFJlc291cmNl
UmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKQEAgLTU0LDcgKzY5LDEwIEBAIHByaXZhdGU6CiAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKICAgICBSZXNvdXJjZUxvYWRQcmlv
cml0eSBtX3ByaW9yaXR5OwogICAgIGJvb2wgbV9mb3JQcmVsb2FkOwotICAgIENhY2hlZFJlc291
cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBtX2RlZmVyOworICAgIERlZmVyT3B0aW9uIG1fZGVmZXI7
CisgICAgUmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVudDsKKyAgICBSZWZQdHI8RG9j
dW1lbnQ+IG1faW5pdGlhdG9yRG9jdW1lbnQ7CisgICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9y
TmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4Yzg3MGYx
NjQyNTU3Zjc0NS4uZmRjNDk4NWM3Njk0NTdlZGY4MGUwMGZiNTI3N2Y3MWRhZTZlNTdkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTY2LDYgKzY2LDcg
QEAgdm9pZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIHJlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zh
dmljb24pOwogI2VuZGlmCiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0
UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOworICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9yKCJpY29uIiwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAKICAgICBtX3Jlc291cmNlID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291
cmNlKHJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKaW5kZXggODdmZjBkNjgxMjc0NDYwZWE3OTc4YWZlODdmYTI3Mzk2
ODg1N2ViYS4uZWFmZWExYTg2YTEyMjJlZDgzZDE0YTUzZGFiYmNkYmYyMjM0ZmI3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC04Miw2ICs4Miw3IEBAIHZv
aWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKIHZvaWQgU1ZH
RkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKIHsKICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qob3duZXJEb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChocmVmKCkpKSk7CisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAg
bV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVl
c3RJbWFnZShyZXF1ZXN0KTsKIAogICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCBjMzRmZWQ4N2Q0N2VmOGZm
MWYxYTY1ZTI3YWY1ZjZjZGQzNzQ4YThiLi4zYjJkNDk1Yjk2NTA5ODAyMTcyMjczZjc1MjJkZTQx
YzU0YzcwZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50
LmNwcApAQCAtOTgsNiArOTgsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZv
bnQoKQogICAgIGlmICghaHJlZi5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKKyAgICAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkg
ewogICAgICAgICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3MjQ0YTZj
NjgxNjU0NzQ3Ni4uZjFlMWMwMzI0MDUzNDhjMzU5MGMzN2JlNGJiNGNhMjAyZWUwNjVkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjU2LDYgKzI1Niw3IEBAIHZvaWQg
U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKICAgICAgICAgICAgIEtVUkwgdXJsID0gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwo
aHJlZigpKTsKICAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsK
ICAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QodXJsLnN0cmluZygpKSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0
b3IodGhpcyk7CiAgICAgICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVudCA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAg
ICAgICAgICAgICAgICBpZiAobV9jYWNoZWREb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAg
bV9jYWNoZWREb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173895</attachid>
            <date>2012-11-13 08:08:50 -0800</date>
            <delta_ts>2012-11-13 08:11:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121113170650.patch</filename>
            <type>text/plain</type>
            <size>50155</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUyYjA3M2NiNjU0OWY3
YmU0MTYwN2E1ZTNmOTZhMmRkYjRhMmM0My4uYzcwNGM3ZDZkOWQ2MGI1NzMyZmQ2ZWY1ZWE3MTIy
YzU5ZjIwNzkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTExLTEzICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaW5pdGlhdG9y
IHRvIENhY2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTkzNQorCisgICAgICAgIE1vdGl2YXRpb246IGF0IGxlYXN0
IG9uZSBlbWJlZGRlciBuZWVkcyB0byBrbm93IHdoaWNoIGVsZW1lbnRzIHJlcXVlc3QgYQorICAg
ICAgICByZXNvdXJjZSAoc3VjaCBhcyBhbiBpbWFnZSBvciBhIHNjcmlwdCkgKGJ1ZyA5Mjc2MSku
IEluIGFkZGl0aW9uLCBmb3IKKyAgICAgICAgZXhwb3NpbmcgcmVzb3VyY2UgdGltaW5nIGluZm9y
bWF0aW9uIChidWcgODQ4ODMpIHdlIG5lZWQgdG8gc3RvcmUgdGhlCisgICAgICAgIGluaXRpYXRv
ciwgYW5kIHRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgdG93YXJkcyBpdC4KKworICAgICAgICBObyBu
ZXcgdGVzdHM6IE5vIHZpc2libGUgY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NDdXJz
b3JJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6
OmNhY2hlZEltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAg
ICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFn
ZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAg
ICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KENTU0ltYWdlVmFsdWUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2UpOgorICAgICAgICAq
IGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1w
b3J0OjpyZXF1ZXN0U3R5bGVTaGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3Vt
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZTo6bG9hZCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAg
ICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1l
bnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVs
b2FkU2Nhbm5lci5oOgorICAgICAgICAoQ1NTUHJlbG9hZFNjYW5uZXIpOgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVs
b2FkVGFzazo6cHJlbG9hZCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnByZWxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdDo6fkNhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvckVsZW1lbnQpOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRPcHRpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGVmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZlcik6CisgICAgICAgIChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6c3Rh
cnRMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycyk6CisgICAgICAgIChUaHJlYWRHbG9iYWxEYXRhKToKKyAgICAgICAgKiBzdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1l
bnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9h
ZEZvbnQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorCiAyMDEyLTExLTEzICBD
c2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBFbmFi
bGUgTXV0YXRpb24gb2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGIwZmE0OTkyM2Iz
ZjNkZGQ3MzM2YmI4ZmU4MzdmODI2OWI3ZDU1NC4uMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhiZTUx
OTVmOGFjMzk2NDhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2ODEsNiArMTY4MSw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAogICAgIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAogICAgIGxvYWRl
ci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDI0NGMwZjc0NTgwZDdmMTU5YzBlMDI1ZTg4NGViNWMwMTY1ODQzMzUuLmVkYmIxNTU2
YzFhN2Y3NzZiZjYzNjFjZjIxZjRmMDBjOGM3MDFlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMzgyNCw2ICszODI0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCisJU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRl
eCA1ZGQ4MWVkMmY4Nzk3OTAxOTJkZjdiOTE4MWJlZjczY2QzOGRjNmZkLi4wOThmMGMyNmYwMzg3
YzFiOWI4MWQ3OGQ4ZjYxZGM0OWVmMGVlMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgyMiw2ICs4MjIs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgXAog
ICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIFwKKyAgICBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAogICAgIGxvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwK
ICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCkBAIC0xOTU0LDYgKzE5
NTUsOCBAQCBIRUFERVJTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmggXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggXAogICAg
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmggXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwKICAg
ICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggXAogICAgIGxvYWRlci9Gb3JtU3Rh
dGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWZhYjI1NGJkYzM2N2I2YWUxYTQ2MWEwMDFiZTEx
NmY2MzUxODg4MC4uNTk4MjMxMTZkNGU5ZTlhY2RhN2U2Mjk0ZGExZmU3Y2VhYzc3MDU4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjA5LDYgKzIwOSw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNo
ZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRD
bGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAt
MzAyNiw2ICszMDI3LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDA3ODlmNWZlMDVhMzljYTA5NGZk
NjExNmU3YWRmZmU3NzIyZmI4ZjAuLmE3OTE3MTQxZmNlMGMwMzIyYjEyMWNjOTBlNzhiNDk0ZDlm
MTA0YWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yODE3MCw2ICsyODE3MCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGI1MDFlOWI3OWY3OTA1YzM3Mzg4N2Q0M2U2NjZmZmZiZWY4NjhkNzIuLmRiNGY3MGZjNTNi
ZDc0MWE4MWY1MzFjZTc2M2ZhNDUxMjRlN2IzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MzksNiArMTgzOSw4IEBACiAJ
CTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTBFOTQzMTEzM0M4OUYwMEI0Q0Ix
MCAvKiBKU0RPTVdyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2NUZFQTg2OTA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUZFQTg2ODA5ODMzQURF
MDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87IH07CiAJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAv
KiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTVB
OTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2Q0NF
RTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTZBOTZDQ0VF
NTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VFNTBD
OEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovOyB9OwogCQk2
RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4NTAw
QTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2MzM5
OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIzMDYg
LyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07CkBAIC05MDc2LDYgKzkwNzgsOCBA
QAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxv
Y2tFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1h
Z2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2
QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHBhdGgg
PSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIx
QzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
cmFwaGljc0NvbnRleHQzRENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUz
RkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI1OSw2ICsx
OTI2Myw4IEBACiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNl
TG9hZGVyLmggKi8sCiAJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgKi8sCiAJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdC5oICovLAorCQkJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAvKiwKKwkJCQk2QzYzODg5M0E5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIC8qLAogCQkJ
CUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJD
QjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUz
RTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNTcwLDYgKzIy
NTc2LDcgQEAKIAkJCQlFNDdCNEJFODBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTA4MUUzRTAzQ0ZGODBD
MTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNo
ZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAv
KiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJF
NDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjE2Niw2ICsyNjE3Myw3IEBACiAJCQkJRTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hl
ZFJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQw
MDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzIzMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAzOEJF
NDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCAx
MjY3MzRmZmNiZDY3NDkyMTQ5YTgwYjkxZjRkN2ZmN2QxYmZjMDIyLi41NWQ4MzFjMDhlZGE3Zjhh
YmY3NDA1YTVmMjU0MGE3ODVhNzY2NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIENhY2hlZEltYWdlKiBjYWNoZWRJ
bWFnZUZvckNTU1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKSB7Ci0gICAg
ICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIHN0eWxlQ2FjaGVkSW1hZ2UgPSBzdGF0aWNfY2FzdDxDU1NJ
bWFnZVZhbHVlKj4odmFsdWUpLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlcik7Cisg
ICAgICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIHN0eWxlQ2FjaGVkSW1hZ2UgPSBzdGF0aWNfY2FzdDxD
U1NJbWFnZVZhbHVlKj4odmFsdWUpLT5jYWNoZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciwg
MCk7CiAgICAgICAgIGlmICghc3R5bGVDYWNoZWRJbWFnZSkKICAgICAgICAgICAgIHJldHVybiAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMGZh
YTgxM2IxZWJlMTI3ZjI1YzNiNmM1NjQ3NTc2YjU1N2JmZjRiMi4uMWJjYTk3NGNkMjI5NmU5M2M1
ZDY2NmFjOWFlYTJjMTUyY2YzZDc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcApAQCAtMTM1LDExICsxMzUsMTEgQEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKICAgICBpZiAoaXNTVkdDdXJzb3JJZGVudGlmaWVyKHVybCgpKSAmJiBsb2FkZXIgJiYgbG9h
ZGVyLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgZmFpbCBpZiB0
aGUgPGN1cnNvcj4gZWxlbWVudCBpcyBpbiBhIHNoYWRvdyBET00gKGJ1ZyA1OTgyNykKICAgICAg
ICAgaWYgKFNWR0N1cnNvckVsZW1lbnQqIGN1cnNvckVsZW1lbnQgPSByZXNvdXJjZVJlZmVyZW5j
ZWRCeUN1cnNvckVsZW1lbnQodXJsKCksIGxvYWRlci0+ZG9jdW1lbnQoKSkpCi0gICAgICAgICAg
ICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UobG9hZGVyLCBjdXJzb3JFbGVtZW50
LT5ocmVmKCkpOworICAgICAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdl
KGxvYWRlciwgY3Vyc29yRWxlbWVudC0+aHJlZigpLCBjdXJzb3JFbGVtZW50KTsKICAgICB9CiAj
ZW5kaWYKIAotICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIHVy
bCgpKTsKKyAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UobG9hZGVyLCB1cmwo
KSwgMCk7CiB9CiAKICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU3JjVmFsdWUuY3BwCmluZGV4IDM2OTA3ODkzMzZkMGI4NDQ4MTUyNzNiMDEzMjI1ZjY5ZGFh
ZDY4N2YuLjA3NzgyYWMyMTlkMjYxNTQzNDY2YjU5M2I4YTY5Zjc2MjY1OTJkM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtOTcs
NiArOTgsNyBAQCBDYWNoZWRGb250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERv
Y3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIW1fY2FjaGVkRm9udCkgewogICAgICAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKG1fcmVzb3VyY2UpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIGRvY3VtZW50KTsKICAgICAgICAg
bV9jYWNoZWRGb250ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RG
b250KHJlcXVlc3QpOwogICAgIH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGY3ZDQwMWY1Y2Y2NzQ5MDIx
ODg2MDNkMjA4ZGUyZDYzYjljNmNhZTAuLmViYzc0YzcxN2RkNGMyNDJhMzMyMzViYzE0ZmU1YWE5
OGM1OTNhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2VTZXQu
aCIKQEAgLTExMCw2ICsxMTEsNyBAQCBTdHlsZUNhY2hlZEltYWdlU2V0KiBDU1NJbWFnZVNldFZh
bHVlOjpjYWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAogICAgICAgICAv
LyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VG
b3JTY2FsZUZhY3RvcigpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFn
ZVVSTCkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2Uo
cmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0
OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKICAg
ICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlVmFsdWUuY3BwCmluZGV4IDZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0
MTA0ZjcuLjk1N2EyMjEzY2RkMWQyZjEzM2NjMDdjYzQzMjkwMWJiZWE2ZTNhNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCkBAIC02OSwxNCArNzEsMTQgQEAg
U3R5bGVJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkT3JQZW5kaW5nSW1hZ2UoKQogICAgIHJl
dHVybiBtX2ltYWdlLmdldCgpOwogfQogCi1TdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVl
OjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQorU3R5bGVDYWNoZWRJ
bWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxv
YWRlciwgRWxlbWVudCogaW5pdGlhdG9yRWxlbWVudCkKIHsKICAgICBpZiAoaXNDdXJzb3JJbWFn
ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NDdXJzb3JJbWFnZVZhbHVl
Kj4odGhpcyktPmNhY2hlZEltYWdlKGxvYWRlcik7Ci0gICAgcmV0dXJuIGNhY2hlZEltYWdlKGxv
YWRlciwgbV91cmwpOworICAgIHJldHVybiBjYWNoZWRJbWFnZShsb2FkZXIsIG1fdXJsLCBpbml0
aWF0b3JFbGVtZW50KTsKIH0KIAotU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2Fj
aGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgU3RyaW5nJiB1cmwp
CitTdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNv
dXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBTdHJpbmcmIHVybCwgRWxlbWVudCogaW5pdGlhdG9y
RWxlbWVudCkKIHsKICAgICBBU1NFUlQobG9hZGVyKTsKIApAQCAtODQsNiArODYsMTAgQEAgU3R5
bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGxvYWRlciwgY29uc3QKICAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAog
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9h
ZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKSk7CisgICAgICAgIGlmIChpbml0aWF0
b3JFbGVtZW50KQorICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoaW5pdGlhdG9yRWxl
bWVudCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIGxvYWRlci0+ZG9jdW1lbnQoKSk7
CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1h
Z2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1hZ2Ug
PSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCmluZGV4IDhjODJmMmM2N2RiNDMzYTc1MTczM2M5Njcx
ZGU5YjkxNTFlN2E5OGMuLjE1NjVjNTg1M2M3NWZlNjkzMTQ1MjBiMWI5MTY1NGVhZWUxMDhiZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaApAQCAtMjcsNiArMjcsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBTdHlsZUNhY2hlZEltYWdlOwogY2xhc3MgU3R5bGVJbWFnZTsKIApAQCAtMzYs
NyArMzcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTSW1hZ2VWYWx1ZT4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBTdHlsZUltYWdlKiBpbWFnZSkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IENTU0ltYWdlVmFsdWUodXJsLCBpbWFnZSkpOyB9CiAgICAgfkNTU0ltYWdlVmFs
dWUoKTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNl
TG9hZGVyKik7CisgICAgU3R5bGVDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqLCBFbGVtZW50KiBpbml0aWF0b3JFbGVtZW50KTsKICAgICAvLyBSZXR1cm5zIGEg
U3R5bGVDYWNoZWRJbWFnZSBpZiB0aGUgaW1hZ2UgaXMgY2FjaGVkIGFscmVhZHksIG90aGVyd2lz
ZSBhIFN0eWxlUGVuZGluZ0ltYWdlLgogICAgIFN0eWxlSW1hZ2UqIGNhY2hlZE9yUGVuZGluZ0lt
YWdlKCk7CiAKQEAgLTUzLDcgKzU0LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIENTU0lt
YWdlVmFsdWUoQ2xhc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKLSAgICBTdHlsZUNhY2hl
ZEltYWdlKiBjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFN0cmluZyYg
dXJsKTsKKyAgICBTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxv
YWRlciosIGNvbnN0IFN0cmluZyYgdXJsLCBFbGVtZW50KiBpbml0aWF0b3JFbGVtZW50KTsKICAg
ICBTdHJpbmcgY2FjaGVkSW1hZ2VVUkwoKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVkSW1hZ2UoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGU3OWM5ODNjZjJkNzJhZTdl
MjY1OTE2Zjk5N2I0MjI0ZTJhMjc2MjMuLjBiOTFhMzdhY2VmOWZjM2I1ZjAzYTdlZjYwYTQ5ZDdj
M2FhY2ZjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTUwNTQsNyAr
NTA1NCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRp
bmdJbWFnZShTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGluCiAKICAgICBpZiAocGVuZGluZ0ltYWdl
LT5jc3NJbWFnZVZhbHVlKCkpIHsKICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9
IHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICByZXR1cm4gaW1hZ2VWYWx1
ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm4gaW1h
Z2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIG1fZWxlbWVudCk7CiAg
ICAgfQogCiAgICAgaWYgKHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0
MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUuLjMxNDZlYzNjZDBhNDBkOWRhN2E3YWZkY2VhMjFi
NzUzZTZiMWU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
dHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNyw2ICsxMTgsNyBAQCB2b2lkIFN0eWxlUnVsZUlt
cG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQoKQogICAgIH0KIAogICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQt
PmNoYXJzZXQoKSk7CisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hl
ZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJl
c291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3Bw
CmluZGV4IDY3ZTg0ZTNjOWI5ODNhYmIwODI0MTIwNzU5ZTM4ODgwNTNjZmM4YmEuLjVhMzM4ZmU5
MjgzYWFmYWQxOThhMTRkZDQ0OTMzOGFlNGFiZTJiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgQ2Fj
aGVkU1ZHRG9jdW1lbnQqIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQoQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICAgICAgbV9sb2FkUmVxdWVzdGVkID0gdHJ1ZTsKIAog
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9h
ZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKKyAgICAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IoImNzcyIsIGxvYWRlci0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fZG9jdW1l
bnQgPSBsb2FkZXItPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCmluZGV4IGZhMDQxOTBjM2Rj
OGUzYWRiNDMxYWIwM2E4ZmQxYTFlMTgwMDRiYTkuLjM1MTg3ZjgyMDQwZTE2MDMzNjlkNmEyZGIy
Y2U1ZTg4NjFjMzljMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NT
aGFkZXJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZh
bHVlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKICNpbmNs
dWRlICJTdHlsZVBlbmRpbmdTaGFkZXIuaCIKQEAgLTYxLDYgKzYyLDcgQEAgU3R5bGVDYWNoZWRT
aGFkZXIqIFdlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGxvYWQKICAgICAgICAgbV9hY2Nlc3NlZFNoYWRlciA9IHRydWU7CiAKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIGxvYWRlci0+ZG9jdW1l
bnQoKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IGNh
Y2hlZFNoYWRlciA9IGxvYWRlci0+cmVxdWVzdFNoYWRlcihyZXF1ZXN0KSkKICAgICAgICAgICAg
IG1fc2hhZGVyID0gU3R5bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZShjYWNoZWRTaGFkZXIuZ2V0KCkp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBjZmRkMWE0MzY5
ODBkMWIwMDI2MmMxMThjYzI2OWY3M2MyY2MzMjIwLi40ZmE1NTllOGZiODJiNWNkMjg0N2IzZGEw
MjA3OTM2YTUxNzE1NzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0y
NjYsNiArMjY2LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0
cmluZyYgc291cmNlVXJsKQogICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRy
b2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KICAgICAg
ICAgcmVxdWVzdC5zZXRDaGFyc2V0KHNjcmlwdENoYXJzZXQoKSk7CisgICAgICAgIHJlcXVlc3Qu
c2V0SW5pdGlhdG9yKGVsZW1lbnQoKSk7CiAKICAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQo
cmVxdWVzdCk7CiAgICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggN2M5NmIxOWIxMzg3ODE5ZTIwMmY1NDg5
ZTJjNjIwOWIzZjQ0YjQzMy4uNGEzZGNmYzRhY2ZmOGZhYmNjNGFhNmJkODc2YmNlNDI4ZDhlNDRm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjIyLDYgKzIy
Miw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKICAgICAgICAgLy8gTG9hZCBz
dHlsZXNoZWV0cyB0aGF0IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGltbWVkaWF0
ZWx5IHdpdGggbG93IHByaW9yaXR5LgogICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlv
cml0eSA9IGJsb2NraW5nID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDogUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSwgY2hh
cnNldCwgcHJpb3JpdHkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAg
ICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAKICAgICAgICAgaWYgKG1f
Y2FjaGVkU2hlZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQ
cmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2Fk
U2Nhbm5lci5jcHAKaW5kZXggMjlmMWNjZDQ2OGJhZGQ4ZGU1YzNiMTllNzJmMmQ4NTJjZDMwMDg5
My4uMTUwY2U4YTEwYWZiOTJlOTY4M2NhMWVlMTAzNTkxNDJjYjRjZDZmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcApAQCAtMzAsNiAr
MzAsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhU
TUxUb2tlbi5oIgpAQCAtMTk2LDcgKzE5OCw4IEBAIHZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6OmVt
aXRSdWxlKCkKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoImltcG9ydCIsIG1fcnVsZS5jaGFy
YWN0ZXJzKCksIG1fcnVsZS5sZW5ndGgoKSkpIHsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gcGFy
c2VDU1NTdHJpbmdPclVSTChtX3J1bGVWYWx1ZS5jaGFyYWN0ZXJzKCksIG1fcnVsZVZhbHVlLmxl
bmd0aCgpKTsKICAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KG1fZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHZhbHVlKSk7Cisg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
bV9kb2N1bWVudC0+Y29tcGxldGVVUkwodmFsdWUpKSk7CisgICAgICAgICAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBtX2RvY3Vt
ZW50KTsKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnBy
ZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIFN0cmluZygpLCBt
X3NjYW5uaW5nQm9keSk7CiAgICAgICAgIH0KICAgICAgICAgbV9zdGF0ZSA9IEluaXRpYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAppbmRleCBj
M2RiYjgwMGVkZDhlYTEwYWIyNGViM2MxMjNiN2NhOThmMmNiNDI3Li5iMTZhNjI5MjVlMTA2MTVh
OTI0M2M5MjRiY2VlN2EwY2MwZDFkMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0NTU1ByZWxvYWRTY2FubmVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSFRNTFRva2Vu
OwogY2xhc3MgQ1NTUHJlbG9hZFNjYW5uZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENT
U1ByZWxvYWRTY2FubmVyKTsKIHB1YmxpYzoKLSAgICBDU1NQcmVsb2FkU2Nhbm5lcihEb2N1bWVu
dCopOworICAgIGV4cGxpY2l0IENTU1ByZWxvYWRTY2FubmVyKERvY3VtZW50Kik7CiAKICAgICB2
b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBzY2FuKGNvbnN0IEhUTUxUb2tlbiYsIGJvb2wgc2Nhbm5p
bmdCb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVs
b2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNj
YW5uZXIuY3BwCmluZGV4IDIzMDM4YmQwYmNlYTA4ZDllMjVlZWNmY2RmNTRjNDhmYzE0YjAzN2Eu
Ljk2NTRjOGQ4ZGMwZDZhN2NlYmNiMTQyY2IzYjEyZDlmMmEyNWQwNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcApAQCAtMTI3LDcg
KzEyNyw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBDYWNoZWRS
ZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudC0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBkb2N1bWVu
dC0+Y29tcGxldGVVUkwobV91cmxUb0xvYWQsIGJhc2VVUkwpOworICAgICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KG1fdXJsVG9Mb2FkLCBiYXNlVVJMKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0
YWdOYW1lKCksIGRvY3VtZW50KTsKICAgICAgICAgaWYgKG1fdGFnTmFtZSA9PSBzY3JpcHRUYWcp
CiAgICAgICAgICAgICBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cHJlbG9hZChDYWNoZWRSZXNvdXJj
ZTo6U2NyaXB0LCByZXF1ZXN0LCBtX2NoYXJzZXQsIHNjYW5uaW5nQm9keSk7CiAgICAgICAgIGVs
c2UgaWYgKG1fdGFnTmFtZSA9PSBpbWdUYWcgfHwgKG1fdGFnTmFtZSA9PSBpbnB1dFRhZyAmJiBt
X2lucHV0SXNJbWFnZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBj
MTJiZTJmZjlkNDU1NzRlNDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiLi5lMjI0N2QyNTRjN2Y4NjA5
ZWY2ZWEyYTk3NzNiNWY5ZjdkMWI2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKQEAgLTE3OSw2ICsxNzksNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxl
bWVudCgpCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0g
MDsKICAgICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRN
TFNwYWNlcyhhdHRyKS5pc0VtcHR5KCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVS
SShhdHRyKSkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2xpZW50KCktPnNvdXJj
ZUVsZW1lbnQoKSk7CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgp
LT5zb3VyY2VFbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdp
bkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggZDRjYmEwNTkxMzE5MDBlMTkwY2NmNThlNmZlMGQxNmQ4ZDA3NTU1Ni4uODNhNWExY2U2
NzRjYzcyYzVmMTEwMDk2Y2IzNDhhYjA4MjVlNGQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNjQsNyArMTY0
LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3UKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZl
cik7CisgICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLnVybCgpKSA/IENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJyZWRCeUNs
aWVudCA6IENhY2hlZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlcik7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFn
ZVJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKQEAgLTQ1OCw3ICs0NTgsNyBAQCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJlc291cmNlLT5z
ZXRMb2FkUHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKLSAgICBpZiAoKHBvbGljeSAhPSBV
c2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIE5vRGVmZXIgPT0gcmVxdWVzdC5k
ZWZlcigpKSB7CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRz
TG9hZCgpKSAmJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5vRGVmZXIgPT0gcmVxdWVzdC5kZWZl
cigpKSB7CiAgICAgICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIHJlcXVlc3Qub3B0aW9ucygpKTsK
IAogICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRv
IHN1cHBvcnQgaW1tZWRpYXRlIGZhaWx1cmUuCkBAIC01MTAsNyArNTEwLDcgQEAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVz
b3VyY2UoQ2FjaGVkUmUKICAgICByZXR1cm4gcmVzb3VyY2U7CiB9CiAKLUNhY2hlZFJlc291cmNl
TG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWlu
ZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5n
UmVzb3VyY2UsIERlZmVyT3B0aW9uIGRlZmVyKSBjb25zdAorQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OlJldmFsaWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxp
ZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJj
ZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlck9wdGlvbiBkZWZlcikgY29uc3QKIHsKICAg
ICBpZiAoIWV4aXN0aW5nUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBMb2FkOwpAQCAtNTM5LDcg
KzUzOSw3IEBAIENhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhCiAKICAgICAvLyBEbyBub3QgbG9hZCBm
cm9tIGNhY2hlIGlmIGltYWdlcyBhcmUgbm90IGVuYWJsZWQuIFRoZSBsb2FkIGZvciB0aGlzIGlt
YWdlIHdpbGwgYmUgYmxvY2tlZAogICAgIC8vIGluIENhY2hlZEltYWdlOjpsb2FkLgotICAgIGlm
IChEZWZlcnJlZEJ5Q2xpZW50ID09IGRlZmVyKQorICAgIGlmIChDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OkRlZmVycmVkQnlDbGllbnQgPT0gZGVmZXIpCiAgICAgICAgIHJldHVybiBSZWxvYWQ7CiAg
ICAgCiAgICAgLy8gRG9uJ3QgcmVsb2FkIHJlc291cmNlcyB3aGlsZSBwYXN0aW5nLgpAQCAtNzY0
LDggKzc2NCw4IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlY3JlbWVudFJlcXVlc3RD
b3VudChjb25zdCBDYWNoZWRSZXNvdXJjZSogcmVzKQogICAgIC0tbV9yZXF1ZXN0Q291bnQ7CiAg
ICAgQVNTRVJUKG1fcmVxdWVzdENvdW50ID4gLTEpOwogfQotICAgIAotdm9pZCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJv
bUJvZHkpCisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KQogewogICAgIC8vIEZJWE1FOiBS
aXAgdGhpcyBvdXQgd2hlbiB3ZSBhcmUgc3VyZSBpdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IChl
dmVuIGZvciBtb2JpbGUpLgogICAgIFVOVVNFRF9QQVJBTShyZWZlcmVuY2VkRnJvbUJvZHkpOwpA
QCAtNzgwLDEyICs3ODAsMTIgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZChD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHIKICAgICAgICAgaWYg
KCFoYXNSZW5kZXJpbmcgJiYgIWNhbkJsb2NrUGFyc2VyKSB7CiAgICAgICAgICAgICAvLyBEb24n
dCBwcmVsb2FkIHN1YnJlc291cmNlcyB0aGF0IGNhbid0IGJsb2NrIHRoZSBwYXJzZXIgYmVmb3Jl
IHdlIGhhdmUgc29tZXRoaW5nIHRvIGRyYXcuCiAgICAgICAgICAgICAvLyBUaGlzIGhlbHBzIHBy
ZXZlbnQgcHJlbG9hZHMgZnJvbSBkZWxheWluZyBmaXJzdCBkaXNwbGF5IHdoZW4gYmFuZHdpZHRo
IGlzIGxpbWl0ZWQuCi0gICAgICAgICAgICBQZW5kaW5nUHJlbG9hZCBwZW5kaW5nUHJlbG9hZCA9
IHsgdHlwZSwgcmVxdWVzdCwgY2hhcnNldCB9OworICAgICAgICAgICAgUGVuZGluZ1ByZWxvYWQg
cGVuZGluZ1ByZWxvYWQgPSB7IHR5cGUsIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJz
ZXQgfTsKICAgICAgICAgICAgIG1fcGVuZGluZ1ByZWxvYWRzLmFwcGVuZChwZW5kaW5nUHJlbG9h
ZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmVxdWVzdFBy
ZWxvYWQodHlwZSwgcmVxdWVzdCwgY2hhcnNldCk7CisgICAgcmVxdWVzdFByZWxvYWQodHlwZSwg
cmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOwogfQogCiB2b2lkIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0ZvclBlbmRpbmdQcmVsb2FkcygpIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCBl
MmUyYWU0OTcyNWM1OTEyZWMxYzUwN2ZiNTg3OTg0MzQ4NWI2YTk1Li5jNWIyMzY1MGRlYTMxYjJl
MGQxYzlkYjEyYWZlNDNjMTc4MzBmNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMjYsOSArMjYsMTAgQEAKICNpZm5k
ZWYgQ2FjaGVkUmVzb3VyY2VMb2FkZXJfaAogI2RlZmluZSBDYWNoZWRSZXNvdXJjZUxvYWRlcl9o
CiAKKyNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJDYWNoZVBvbGlj
eS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZFByaW9yaXR5LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KQEAgLTQ0LDcgKzQ1LDYgQEAgY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBD
YWNoZWRGb250OwogY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZTsK
LWNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNz
IENhY2hlZFNoYWRlcjsKIGNsYXNzIENhY2hlZFRleHRUcmFjazsKQEAgLTY5LDcgKzY5LDYgQEAg
ZnJpZW5kIGNsYXNzIEltYWdlTG9hZGVyOwogZnJpZW5kIGNsYXNzIFJlc291cmNlQ2FjaGVWYWxp
ZGF0aW9uU3VwcHJlc3NvcjsKIAogcHVibGljOgotICAgIGVudW0gRGVmZXJPcHRpb24geyBOb0Rl
ZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkUmVz
b3VyY2VMb2FkZXI+IGNyZWF0ZShEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudExvYWRlcikpOyB9
CiAgICAgfkNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAKQEAgLTEzMSw3ICsxMzAsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc1ByZWxvYWRlZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykgY29uc3Q7
CiAgICAgdm9pZCBjbGVhclByZWxvYWRzKCk7CiAgICAgdm9pZCBjbGVhclBlbmRpbmdQcmVsb2Fk
cygpOwotICAgIHZvaWQgcHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSk7Cisg
ICAgdm9pZCBwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KTsKICAg
ICB2b2lkIGNoZWNrRm9yUGVuZGluZ1ByZWxvYWRzKCk7CiAgICAgdm9pZCBwcmludFByZWxvYWRT
dGF0cygpOwogICAgIGJvb2wgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3Qg
S1VSTCYsIGJvb2wgZm9yUHJlbG9hZCA9IGZhbHNlKTsKQEAgLTE0OSw3ICsxNDgsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAKICAgICBlbnVtIFJldmFsaWRh
dGlvblBvbGljeSB7IFVzZSwgUmV2YWxpZGF0ZSwgUmVsb2FkLCBMb2FkIH07Ci0gICAgUmV2YWxp
ZGF0aW9uUG9saWN5IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6
VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSog
ZXhpc3RpbmdSZXNvdXJjZSwgRGVmZXJPcHRpb24pIGNvbnN0OworICAgIFJldmFsaWRhdGlvblBv
bGljeSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJl
c291cmNlUmVxdWVzdCYsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5n
UmVzb3VyY2UsIENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJPcHRpb24pIGNvbnN0OwogICAg
IAogICAgIHZvaWQgbm90aWZ5TG9hZGVkRnJvbU1lbW9yeUNhY2hlKENhY2hlZFJlc291cmNlKik7
CiAgICAgYm9vbCBjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29u
c3QgS1VSTCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRleCA2YWRkMzliOTZjYWNmNGRlYjNiNGYzODIx
Y2VmYjYyNThjNWVjOWYyLi5mODdhMDQwYzBhYTRmMzY5ZGEzNjc5YTQ3MjQwOTg0ZjQ5MGU2YjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmNwcApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50Lmgi
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCkBAIC0z
NCw3ICszOCw3IEBAIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBtX29wdGlvbnMoQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKICAgICAs
IG1fcHJpb3JpdHkocHJpb3JpdHkpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCi0gICAgLCBt
X2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwgbV9kZWZlcihOb0Rl
ZmVyKQogewogfQogCkBAIC00Myw3ICs0Nyw3IEBAIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1CiAg
ICAgLCBtX29wdGlvbnMob3B0aW9ucykKICAgICAsIG1fcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJp
b3JpdHlVbnJlc29sdmVkKQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9kZWZl
cihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKKyAgICAsIG1fZGVmZXIoTm9EZWZlcikK
IHsKIH0KIApAQCAtNTIsOCArNTYsNDggQEAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAs
IG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0
aW9ucygpKQogICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKICAgICAsIG1fZm9yUHJlbG9hZChm
YWxzZSkKLSAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCisgICAg
LCBtX2RlZmVyKE5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6fkNhY2hl
ZFJlc291cmNlUmVxdWVzdCgpCit7Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpz
ZXRJbml0aWF0b3IoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQogeworICAgIEFTU0VSVCgh
bV9pbml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRpYXRvckRvY3VtZW50KTsKKyAgICBtX2luaXRp
YXRvckVsZW1lbnQgPSBlbGVtZW50OwogfQogCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6
c2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyBuYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50PiBkb2N1
bWVudCkKK3sKKyAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiAhbV9pbml0aWF0b3JE
b2N1bWVudCk7CisgICAgbV9pbml0aWF0b3JOYW1lID0gbmFtZTsKKyAgICBtX2luaXRpYXRvckRv
Y3VtZW50ID0gZG9jdW1lbnQ7CiB9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lKCkgY29uc3QKK3sKKyAgICBpZiAobV9pbml0aWF0b3JF
bGVtZW50KQorICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVtZW50LT5sb2NhbE5hbWUoKTsK
KyAgICBpZiAoIW1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX2lu
aXRpYXRvck5hbWU7CisKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGVm
YXVsdE5hbWUsICgicmVzb3VyY2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgcmV0dXJuIGRlZmF1bHROYW1lOworfQorCitQYXNzUmVmUHRyPERvY3VtZW50PiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvckRvY3VtZW50KCkKK3sKKyAgICBpZiAobV9p
bml0aWF0b3JFbGVtZW50KQorICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVtZW50LT5kb2N1
bWVudCgpOworICAgIHJldHVybiBtX2luaXRpYXRvckRvY3VtZW50OworfQorCitQYXNzUmVmUHRy
PEVsZW1lbnQ+IENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yRWxlbWVudCgpCit7Cisg
ICAgcmV0dXJuIG1faW5pdGlhdG9yRWxlbWVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5oCmluZGV4IGNiMDQzZGZlMzlmZTRjZWQ1NTA4MjE5NGJlM2YxMGRmMDBmOTFiZjQuLjc0
ZDgzOGIzMzNlMWVmOTEyYzNmNGRhZjZmYTIwNDk4OGNhNzE3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTI2LDI3
ICsyNiw0MSBAQAogI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAogI2RlZmluZSBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RfaAogCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9h
ZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OwogCiBjbGFzcyBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgewogcHVibGljOgorICAgIGVudW0gRGVmZXJPcHRpb24geyBO
b0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07CisKICAgICBleHBsaWNpdCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0ID0g
U3RyaW5nKCksIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAgICB+
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KCk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNv
dXJjZVJlcXVlc3Q7IH0KICAgICBjb25zdCBTdHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVy
biBtX2NoYXJzZXQ7IH0KICAgICB2b2lkIHNldENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0
KSB7IG1fY2hhcnNldCA9IGNoYXJzZXQ7IH0KICAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKyAgICB2b2lkIHNldE9w
dGlvbnMoY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKSB7IG1fb3B0aW9ucyA9
IG9wdGlvbnM7IH0KICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpb3JpdHk7IH0KICAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJldHVy
biBtX2ZvclByZWxvYWQ7IH0KICAgICB2b2lkIHNldEZvclByZWxvYWQoYm9vbCBmb3JQcmVsb2Fk
KSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0KLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9Ci0gICAgdm9p
ZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIpIHsgbV9k
ZWZlciA9IGRlZmVyOyB9CisgICAgRGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBt
X2RlZmVyOyB9CisgICAgdm9pZCBzZXREZWZlcihEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVy
ID0gZGVmZXI7IH0KKyAgICB2b2lkIHNldEluaXRpYXRvcihQYXNzUmVmUHRyPEVsZW1lbnQ+KTsK
KyAgICB2b2lkIHNldEluaXRpYXRvcihBdG9taWNTdHJpbmcgbmFtZSwgUGFzc1JlZlB0cjxEb2N1
bWVudD4pOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFtZSgpIGNvbnN0Owor
ICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGluaXRpYXRvckRvY3VtZW50KCk7CisgICAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBpbml0aWF0b3JFbGVtZW50KCk7CiAKIHByaXZhdGU6CiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpAQCAtNTQsNyArNjgsMTAgQEAgcHJpdmF0ZToK
ICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJlc291cmNlTG9hZFBy
aW9yaXR5IG1fcHJpb3JpdHk7CiAgICAgYm9vbCBtX2ZvclByZWxvYWQ7Ci0gICAgQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIG1fZGVmZXI7CisgICAgRGVmZXJPcHRpb24gbV9kZWZl
cjsKKyAgICBSZWZQdHI8RWxlbWVudD4gbV9pbml0aWF0b3JFbGVtZW50OworICAgIFJlZlB0cjxE
b2N1bWVudD4gbV9pbml0aWF0b3JEb2N1bWVudDsKKyAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0
b3JOYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MzE0NWMyY2UyMTRkZTMxZmQ1MjZjM2U0N2MzN2MzM2M2
Yzg2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQorICAgIDogY3NzKCJjc3Mi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQorICAgICwgaWNvbigiaWNvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNTRkNjg3
NDAxYTczMTFiODkzNmIzZDkyMTI0ZWM0ZGNjY2RhNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzX2gKKyNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yc19oCisKKyNpbmNs
dWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEF0
b21pY1N0cmluZyBjc3M7CisgICAgQXRvbWljU3RyaW5nIGljb247Citwcml2YXRlOgorICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKTsKKyAgICBmcmllbmQgY2xhc3MgVGhyZWFk
R2xvYmFsRGF0YTsKK307CisKK2lubGluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
JiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkKK3sKKyAgICByZXR1cm4gdGhyZWFk
R2xvYmFsRGF0YSgpLmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkxvYWRlci5jcHAKaW5kZXggOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4Yzg3MGYxNjQyNTU3
Zjc0NS4uZTA3MTA4ZTRjZDJkZTRjZGY4YmU4MDg2ZmQxZGQ2MjA5Zjg0NDQyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNjYsNiArNjcs
NyBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgcmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCkuc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElz
RmF2aWNvbik7CiAjZW5kaWYKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CisgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmljb24sIG1fZnJhbWUtPmRv
Y3VtZW50KCkpOwogCiAgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0KTsKICAgICBpZiAo
bV9yZXNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEds
b2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKaW5kZXggZGE4NDZmOGRiYzJiNmUxZWYzNzAzZmQ4M2Q4NmEwZTU0ODFhOTIwYy4uYmMxZDY1
ZTI2NjIzNWZlYTBlNWQxZTYwYzhjNmRhMTkzMzQyYTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ291
bnRlcnMuaCIKQEAgLTU5LDcgKzYwLDggQEAgVGhyZWFkR2xvYmFsRGF0YSogVGhyZWFkR2xvYmFs
RGF0YTo6c3RhdGljRGF0YTsKICNlbmRpZgogCiBUaHJlYWRHbG9iYWxEYXRhOjpUaHJlYWRHbG9i
YWxEYXRhKCkKLSAgICA6IG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZlbnROYW1lcykpCisg
ICAgOiBtX2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoYWRvcHRQdHIobmV3IENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpKQorICAgICwgbV9ldmVudE5hbWVzKGFkb3B0UHRy
KG5ldyBFdmVudE5hbWVzKSkKICAgICAsIG1fdGhyZWFkVGltZXJzKGFkb3B0UHRyKG5ldyBUaHJl
YWRUaW1lcnMpKQogICAgICwgbV94bWxUeXBlUmVnRXhwKGFkb3B0UHRyKG5ldyBYTUxNSU1FVHlw
ZVJlZ0V4cCkpCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFk
R2xvYmFsRGF0YS5oCmluZGV4IDQyZjA1YWZlMzg5M2Y3M2Q5ZDdlZmY0ODUyYjllZjE4ZmQ5YWQ2
NjIuLjI3YjJlZGQ0YTVkOWQ4MDc1MDQxZTU5Y2Y1Yzk5M2NlOWVkMWYwNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKQEAgLTQxLDYgKzQxLDcgQEAgdXNp
bmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAgY2xh
c3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsKICAgICBjbGFzcyBFdmVudE5hbWVz
OwogICAgIGNsYXNzIFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM7CiAgICAgY2xhc3MgVGhy
ZWFkVGltZXJzOwpAQCAtNTYsNiArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IH5UaHJlYWRHbG9iYWxEYXRhKCk7CiAgICAgICAgIHZvaWQgZGVzdHJveSgpOyAvLyBjYWxsZWQg
b24gd29ya2VycyB0byBjbGVhbiB1cCB0aGUgVGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgdGhlIHRo
cmVhZCBleGl0cy4KIAorICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzJiBj
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkgeyByZXR1cm4gKm1fY2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9yczsgfQogICAgICAgICBFdmVudE5hbWVzJiBldmVudE5hbWVzKCkg
eyByZXR1cm4gKm1fZXZlbnROYW1lczsgfQogICAgICAgICBUaHJlYWRUaW1lcnMmIHRocmVhZFRp
bWVycygpIHsgcmV0dXJuICptX3RocmVhZFRpbWVyczsgfQogICAgICAgICBYTUxNSU1FVHlwZVJl
Z0V4cCYgeG1sVHlwZVJlZ0V4cCgpIHsgcmV0dXJuICptX3htbFR5cGVSZWdFeHA7IH0KQEAgLTcz
LDYgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICBwcml2YXRlOgor
ICAgICAgICBPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycz4gbV9jYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwogICAgICAgICBPd25QdHI8RXZlbnROYW1lcz4gbV9l
dmVudE5hbWVzOwogICAgICAgICBPd25QdHI8VGhyZWFkVGltZXJzPiBtX3RocmVhZFRpbWVyczsK
ICAgICAgICAgT3duUHRyPFhNTE1JTUVUeXBlUmVnRXhwPiBtX3htbFR5cGVSZWdFeHA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4N2ZmMGQ2ODEyNzQ0NjBl
YTc5NzhhZmU4N2ZhMjczOTY4ODU3ZWJhLi5lYWZlYTFhODZhMTIyMmVkODNkMTRhNTNkYWJiY2Ri
ZjIyMzRmYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAg
LTgyLDYgKzgyLDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVy
ZW5jZXMoKQogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UoKQog
ewogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChvd25l
ckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpKTsKKyAgICByZXF1ZXN0LnNldEluaXRp
YXRvcih0aGlzKTsKICAgICBtX2NhY2hlZEltYWdlID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCiAgICAgaWYgKG1fY2FjaGVkSW1h
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4
IGMzNGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNkZDM3NDhhOGIuLjNiMmQ0OTViOTY1MDk4
MDIxNzIyNzNmNzUyMmRlNDFjNTRjNzBmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHZvaWQgU1ZHRm9udEZhY2VV
cmlFbGVtZW50Ojpsb2FkRm9udCgpCiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAg
IENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkpOwor
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgbV9jYWNoZWRGb250
ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgICAgICBp
ZiAobV9jYWNoZWRGb250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVudCh0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA2MDQ2ZWM2MWI3NGZj
MTJlYjEzYWMyMDcyNDRhNmM2ODE2NTQ3NDc2Li5mMWUxYzAzMjQwNTM0OGMzNTkwYzM3YmU0YmI0
Y2EyMDJlZTA2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yNTYs
NiArMjU2LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTChocmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFnbWVu
dElkZW50aWZpZXIoKSkgewogICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3Vt
ZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNWR0RvY3Vt
ZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50KQogICAg
ICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173897</attachid>
            <date>2012-11-13 08:11:42 -0800</date>
            <delta_ts>2012-11-13 08:19:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121113170943.patch</filename>
            <type>text/plain</type>
            <size>50142</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUyYjA3M2NiNjU0OWY3
YmU0MTYwN2E1ZTNmOTZhMmRkYjRhMmM0My4uNzkwY2Y1Nzc0YWMyOWFkNjkyNTEzYThiMWFjNjE5
ZTVhMTg1ZDRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTExLTEzICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaW5pdGlhdG9y
IHRvIENhY2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTkzNQorCisgICAgICAgIE1vdGl2YXRpb246IENocm9taXVt
IG5lZWRzIHRvIGtub3cgd2hpY2ggZWxlbWVudHMgcmVxdWVzdCBhCisgICAgICAgIHJlc291cmNl
IChzdWNoIGFzIGFuIGltYWdlIG9yIGEgc2NyaXB0KSAoYnVnIDkyNzYxKS4gSW4gYWRkaXRpb24s
CisgICAgICAgIGZvciBleHBvc2luZyByZXNvdXJjZSB0aW1pbmcgaW5mb3JtYXRpb24gKGJ1ZyA4
NDg4Mykgd2UgbmVlZCB0bworICAgICAgICBzdG9yZSB0aGUgaW5pdGlhdG9yLCBhbmQgdGhpcyBp
cyB0aGUgZmlyc3Qgc3RlcCB0b3dhcmRzIGl0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogTm8g
dmlzaWJsZSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2Fj
aGVkSW1hZ2VGb3JDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Up
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNh
Y2hlZEltYWdlU2V0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6CisgICAgICAgICogY3NzL0NT
U0ltYWdlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ1NTSW1hZ2VWYWx1
ZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFnZSk6CisgICAgICAgICogY3NzL1N0eWxlUnVs
ZUltcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RT
dHlsZVNoZWV0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcik6CisgICAgICAgICogZG9tL1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNj
cmlwdCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5l
cjo6ZW1pdFJ1bGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmg6
CisgICAgICAgIChDU1NQcmVsb2FkU2Nhbm5lcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWxvYWRUYXNrOjpwcmVs
b2FkKToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp+Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6c2V0SW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6aW5pdGlhdG9yTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6OmluaXRpYXRvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6aW5pdGlhdG9yRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldE9wdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpkZWZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlUmVx
dWVzdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycyk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpzdGFydExvYWRpbmcpOgor
ICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRHbG9iYWxEYXRhOjpjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKToK
KyAgICAgICAgKFRocmVhZEdsb2JhbERhdGEpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdElt
YWdlUmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAg
ICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisKIDIwMTItMTEtMTMgIENzYWJhIE9zenRyb2dv
bsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIEVuYWJsZSBNdXRhdGlvbiBv
YnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkYjBmYTQ5OTIzYjNmM2RkZDczMzZiYjhm
ZTgzN2Y4MjY5YjdkNTU0Li4zMDcwNzJiZjdlNDM4YzhjMzg2YjQ4OGJlNTE5NWY4YWMzOTY0OGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY4MSw2ICsxNjgxLDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAog
ICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjQ0YzBm
NzQ1ODBkN2YxNTljMGUwMjVlODg0ZWI1YzAxNjU4NDMzNS4uZWRiYjE1NTZjMWE3Zjc3NmJmNjM2
MWNmMjFmNGYwMGM4YzcwMWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0z
ODI0LDYgKzM4MjQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAog
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmggXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDVkZDgxZWQyZjg3
OTc5MDE5MmRmN2I5MTgxYmVmNzNjZDM4ZGM2ZmQuLjA5OGYwYzI2ZjAzODdjMWI5YjgxZDc4ZDhm
NjFkYzQ5ZWYwZWUxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODIyLDYgKzgyMiw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBcCiAg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgXAogICAgIGxvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIFwKQEAgLTE5NTQsNiArMTk1NSw4IEBAIEhFQURF
UlMgKz0gXAogICAgIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBcCiAgICAgbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCBcCiAgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmggXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCBcCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggXAogICAgIGxvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaCBcCiAgICAgbG9hZGVyL0Zvcm1TdGF0ZS5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBlZmFiMjU0YmRjMzY3YjZhZTFhNDYxYTAwMWJlMTE2ZjYzNTE4ODgwLi41
OTgyMzExNmQ0ZTllOWFjZGE3ZTYyOTRkYTFmZTdjZWFjNzcwNTgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0yMDksNiArMjA5LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCcsCkBAIC0zMDI2LDYgKzMwMjcs
NyBAQAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAn
LAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKKyAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5j
cHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMDc4OWY1ZmUwNWEzOWNhMDk0ZmQ2MTE2ZTdhZGZmZTc3
MjJmYjhmMC4uYTc5MTcxNDFmY2UwYzAzMjJiMTIxY2M5MGU3OGI0OTRkOWYxMDRhZiAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MTcwLDYg
KzI4MTcwLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
Llxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNh
Y2hlXENhY2hlZFNjcmlwdC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjUwMWU5Yjc5
Zjc5MDVjMzczODg3ZDQzZTY2NmZmZmJlZjg2OGQ3Mi4uZGI0ZjcwZmM1M2JkNzQxYTgxZjUzMWNl
NzYzZmE0NTEyNGU3YjNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTgzOSw2ICsxODM5LDggQEAKIAkJNjVFMEU5NDQxMTMz
Qzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3Jh
cHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTY1RkVBODY5MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQ
YWdlLmNwcCAqLzsgfTsKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdl
UHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjM0
ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0
NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8q
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZFMjFDNkMwMTEyNjMz
ODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3Jh
cGhpY3NDb250ZXh0M0QuY3BwICovOyB9OwogCQk2RTIxQzZDMjExMjYzMzk5MDBBN0JFMDIgLyog
R3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAgKi87IH07CiAJCTZFM0ZBRDM4MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVTM1RDLmNwcCAqLzsgfTsKQEAgLTkwNzYsNiArOTA3OCw4IEBACiAJCTY1RjgwNjk3
MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCbG9ja0V4Y2VwdGlvbnMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2VQdHIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgcGF0aCA9IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM2
Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUw
MEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENH
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQw
MDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjU5LDYgKzE5MjYzLDggQEAKIAkJ
CQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLywK
IAkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLywKIAkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmggKi8sCisJCQkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwIC8qLAorCQkJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAv
KiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggLyosCiAJCQkJQkNCMTZDMEEwOTc5
QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgKi8sCiAJCQkJQkNCMTZDMEIwOTc5QzNC
RDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oICovLAogCQkJCTUwMzhCRTNFMTQ3MkFEOTgwMDk1
RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovLApAQCAtMjI1NzAsNiArMjI1NzYsNyBAQAogCQkJ
CUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNl
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDgxRTNFMDNDRkY4MEMxNkVGOEI0OEIgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzYzODg5NUE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNCMTZDMjQwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNENTMzNjQwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDM4QkU0MTE0NzJBRDk4MDA5
NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MTY2LDYgKzI2MTcz
LDcgQEAKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwODFFM0MzM0NFNTgw
QzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5
NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRD
NzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmluZGV4IDEyNjczNGZmY2JkNjc0
OTIxNDlhODBiOTFmNGQ3ZmY3ZDFiZmMwMjIuLjU1ZDgzMWMwOGVkYTdmOGFiZjc0MDVhNWYyNTQw
YTc4NWE3NjY0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApA
QCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUoQ1NTVmFsdWUqIHZhbHVlLCBDYWNoZWRSZXNvdXJjZUxvYWRlcgogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKLSAgICAgICAgU3R5bGVDYWNo
ZWRJbWFnZSogc3R5bGVDYWNoZWRJbWFnZSA9IHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2
YWx1ZSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgU3R5bGVD
YWNoZWRJbWFnZSogc3R5bGVDYWNoZWRJbWFnZSA9IHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUq
Pih2YWx1ZSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyLCAwKTsKICAgICAgICAg
aWYgKCFzdHlsZUNhY2hlZEltYWdlKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcAppbmRleCAwZmFhODEzYjFlYmUxMjdm
MjVjM2I2YzU2NDc1NzZiNTU3YmZmNGIyLi4xYmNhOTc0Y2QyMjk2ZTkzYzVkNjY2YWM5YWVhMmMx
NTJjZjNkNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
CkBAIC0xMzUsMTEgKzEzNSwxMSBAQCBTdHlsZUNhY2hlZEltYWdlKiBDU1NDdXJzb3JJbWFnZVZh
bHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmIChp
c1NWR0N1cnNvcklkZW50aWZpZXIodXJsKCkpICYmIGxvYWRlciAmJiBsb2FkZXItPmRvY3VtZW50
KCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBmYWlsIGlmIHRoZSA8Y3Vyc29yPiBl
bGVtZW50IGlzIGluIGEgc2hhZG93IERPTSAoYnVnIDU5ODI3KQogICAgICAgICBpZiAoU1ZHQ3Vy
c29yRWxlbWVudCogY3Vyc29yRWxlbWVudCA9IHJlc291cmNlUmVmZXJlbmNlZEJ5Q3Vyc29yRWxl
bWVudCh1cmwoKSwgbG9hZGVyLT5kb2N1bWVudCgpKSkKLSAgICAgICAgICAgIHJldHVybiBDU1NJ
bWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIGN1cnNvckVsZW1lbnQtPmhyZWYoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UobG9hZGVyLCBjdXJz
b3JFbGVtZW50LT5ocmVmKCksIGN1cnNvckVsZW1lbnQpOwogICAgIH0KICNlbmRpZgogCi0gICAg
cmV0dXJuIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKGxvYWRlciwgdXJsKCkpOworICAgIHJl
dHVybiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIHVybCgpLCAwKTsKIH0KIAog
I2lmIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5j
cHAKaW5kZXggMzY5MDc4OTMzNmQwYjg0NDgxNTI3M2IwMTMyMjVmNjlkYWFkNjg3Zi4uMDc3ODJh
YzIxOWQyNjE1NDM0NjZiNTkzYjhhNjlmNzYyNjU5MmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNh
Y2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgiCkBAIC05Nyw2ICs5OCw3IEBAIENh
Y2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7CiAgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9y
ZXNvdXJjZSkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwogICAgICAgICBtX2NhY2hlZEZvbnQg
PSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7
CiAgICAgfQogICAgIHJldHVybiBtX2NhY2hlZEZvbnQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggZjdkNDAxZjVjZjY3NDkwMjE4ODYwM2QyMDhkZTJk
NjNiOWM2Y2FlMC4uZWJjNzRjNzE3ZGQ0YzI0MmEzMzIzNWJjMTRmZTVhYTk4YzU5M2E3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZVNldC5oIgpAQCAtMTEwLDYg
KzExMSw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZElt
YWdlU2V0KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgICAgIC8vIGFuZCBhbnkgQ1NT
IHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY5
OAogICAgICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOworICAg
ICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
KCkuY3NzLCBkb2N1bWVudCk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkgewog
ICAgICAgICAgICAgbV9pbWFnZVNldCA9IFN0eWxlQ2FjaGVkSW1hZ2VTZXQ6OmNyZWF0ZShjYWNo
ZWRJbWFnZS5nZXQoKSwgaW1hZ2Uuc2NhbGVGYWN0b3IsIHRoaXMpOwogICAgICAgICAgICAgbV9h
Y2Nlc3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5j
cHAKaW5kZXggNmI3M2Q0NjMxYTBmMDAyNGYyZWM2ZjNjNjQ4NTgxNjQ5ODQxMDRmNy4uOTU3YTIy
MTNjZGQxZDJmMTMzY2MwN2NjNDMyOTAxYmJlYTZlM2E1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVZhbHVlLmNwcApAQCAtMjcsNyArMjcsOSBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQZW5kaW5nSW1hZ2UuaCIKQEAgLTY5LDE0ICs3MSwxNCBAQCBTdHlsZUltYWdlKiBD
U1NJbWFnZVZhbHVlOjpjYWNoZWRPclBlbmRpbmdJbWFnZSgpCiAgICAgcmV0dXJuIG1faW1hZ2Uu
Z2V0KCk7CiB9CiAKLVN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCitTdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFn
ZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBFbGVtZW50
KiBpbml0aWF0b3JFbGVtZW50KQogewogICAgIGlmIChpc0N1cnNvckltYWdlVmFsdWUoKSkKICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0N1cnNvckltYWdlVmFsdWUqPih0aGlzKS0+Y2Fj
aGVkSW1hZ2UobG9hZGVyKTsKLSAgICByZXR1cm4gY2FjaGVkSW1hZ2UobG9hZGVyLCBtX3VybCk7
CisgICAgcmV0dXJuIGNhY2hlZEltYWdlKGxvYWRlciwgbV91cmwsIGluaXRpYXRvckVsZW1lbnQp
OwogfQogCi1TdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNo
ZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBTdHJpbmcmIHVybCkKK1N0eWxlQ2FjaGVk
SW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBs
b2FkZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBFbGVtZW50KiBpbml0aWF0b3JFbGVtZW50KQogewog
ICAgIEFTU0VSVChsb2FkZXIpOwogCkBAIC04NCw2ICs4NiwxMCBAQCBTdHlsZUNhY2hlZEltYWdl
KiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVy
LCBjb25zdAogICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwogCiAgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKHVybCkpKTsKKyAgICAgICAgaWYgKGluaXRpYXRvckVsZW1lbnQpCisg
ICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihpbml0aWF0b3JFbGVtZW50KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYg
KENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+
cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAgICAgICAgbV9pbWFnZSA9IFN0eWxlQ2FjaGVk
SW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVZhbHVlLmgKaW5kZXggOGM4MmYyYzY3ZGI0MzNhNzUxNzMzYzk2NzFkZTliOTE1MWU3YTk4
Yy4uMTU2NWM1ODUzYzc1ZmU2OTMxNDUyMGIxYjkxNjU0ZWFlZTEwOGJkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOworY2xhc3MgRWxlbWVudDsKIGNsYXNzIFN0
eWxlQ2FjaGVkSW1hZ2U7CiBjbGFzcyBTdHlsZUltYWdlOwogCkBAIC0zNiw3ICszNyw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB1cmwsIFN0eWxlSW1hZ2UqIGltYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NT
SW1hZ2VWYWx1ZSh1cmwsIGltYWdlKSk7IH0KICAgICB+Q1NTSW1hZ2VWYWx1ZSgpOwogCi0gICAg
U3R5bGVDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKyAg
ICBTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciosIEVs
ZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpOwogICAgIC8vIFJldHVybnMgYSBTdHlsZUNhY2hlZElt
YWdlIGlmIHRoZSBpbWFnZSBpcyBjYWNoZWQgYWxyZWFkeSwgb3RoZXJ3aXNlIGEgU3R5bGVQZW5k
aW5nSW1hZ2UuCiAgICAgU3R5bGVJbWFnZSogY2FjaGVkT3JQZW5kaW5nSW1hZ2UoKTsKIApAQCAt
NTMsNyArNTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VWYWx1ZShDbGFz
c1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsKTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hl
ZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIFN0
eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3Qg
U3RyaW5nJiB1cmwsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpOwogICAgIFN0cmluZyBjYWNo
ZWRJbWFnZVVSTCgpOwogICAgIHZvaWQgY2xlYXJDYWNoZWRJbWFnZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZTc5Yzk4M2NmMmQ3MmFlN2UyNjU5MTZmOTk3YjQy
MjRlMmEyNzYyMy4uMGI5MWEzN2FjZWY5ZmMzYjVmMDNhN2VmNjBhNDlkN2MzYWFjZmM1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNTA1NCw3ICs1MDU0LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZUltYWdlPiBTdHlsZVJlc29sdmVyOjpsb2FkUGVuZGluZ0ltYWdlKFN0eWxl
UGVuZGluZ0ltYWdlKiBwZW5kaW4KIAogICAgIGlmIChwZW5kaW5nSW1hZ2UtPmNzc0ltYWdlVmFs
dWUoKSkgewogICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gcGVuZGluZ0ltYWdl
LT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBpbWFnZVZhbHVlLT5jYWNoZWRJbWFn
ZShjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIHJldHVybiBpbWFnZVZhbHVlLT5jYWNo
ZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciwgbV9lbGVtZW50KTsKICAgICB9CiAKICAgICBp
ZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKaW5kZXggZWVjMzUwNzcxYzQ3OTQyZTg2NTc3MzA3ZWMy
NDAzMmQyNmMwNGY4NS4uMzE0NmVjM2NkMGE0MGQ5ZGE3YTdhZmRjZWEyMWI3NTNlNmIxZTc2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250
ZW50cy5oIgpAQCAtMTE3LDYgKzExOCw3IEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0
U3R5bGVTaGVldCgpCiAgICAgfQogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsK
KyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
KCkuY3NzLCBkb2N1bWVudCk7CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5
bGVTaGVldCgpKQogICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKaW5kZXggNjdlODRl
M2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYS4uNWEzMzhmZTkyODNhYWZhZDE5OGEx
NGRkNDQ5MzM4YWU0YWJlMmJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtNTQsNiArNTQsNyBAQCBDYWNoZWRTVkdEb2N1bWVu
dCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciog
bG9hZGVyKQogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCiAgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcigi
Y3NzIiwgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9kb2N1bWVudCA9IGxvYWRlci0+
cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggZmEwNDE5MGMzZGM4ZTNhZGI0MzFhYjAz
YThmZDFhMWUxODAwNGJhOS4uMzUxODdmODIwNDBlMTYwMzM2OWQ2YTJkYjJjZTVlODg2MWMzOWMz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1ZGUgIlN0eWxlUGVu
ZGluZ1NoYWRlci5oIgpAQCAtNjEsNiArNjIsNyBAQCBTdHlsZUNhY2hlZFNoYWRlciogV2ViS2l0
Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAog
ICAgICAgICBtX2FjY2Vzc2VkU2hhZGVyID0gdHJ1ZTsKIAogICAgICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAg
ICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gY2FjaGVkU2hhZGVyID0g
bG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJlcXVlc3QpKQogICAgICAgICAgICAgbV9zaGFkZXIgPSBT
dHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKGNhY2hlZFNoYWRlci5nZXQoKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGNmZGQxYTQzNjk4MGQxYjAwMjYyYzEx
OGNjMjY5ZjczYzJjYzMyMjAuLjRmYTU1OWU4ZmI4MmI1Y2QyODQ3YjNkYTAyMDc5MzZhNTE3MTU3
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI2Niw2ICsyNjYsNyBA
QCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VV
cmwpCiAgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11
dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgfQogICAgICAgICByZXF1ZXN0LnNl
dENoYXJzZXQoc2NyaXB0Q2hhcnNldCgpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3Io
ZWxlbWVudCgpKTsKIAogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAg
ICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcAppbmRleCA3Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNmNDRi
NDMzLi40YTNkY2ZjNGFjZmY4ZmFiY2M0YWE2YmQ4NzZiY2U0MjhkOGU0NGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yMjIsNiArMjIyLDcgQEAgdm9pZCBI
VE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRo
YXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cg
cHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tp
bmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBwcmlvcml0
eSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2NhY2hl
ZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0
eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcApp
bmRleCAyOWYxY2NkNDY4YmFkZDhkZTVjM2IxOWU3MmYyZDg1MmNkMzAwODkzLi4xNTBjZThhMTBh
ZmI5MmU5NjgzY2ExZWUxMDM1OTE0MmNiNGNkNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNp
bmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCkBA
IC0xOTYsNyArMTk4LDggQEAgdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6ZW1pdFJ1bGUoKQogICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSgiaW1wb3J0IiwgbV9ydWxlLmNoYXJhY3RlcnMoKSwgbV9y
dWxlLmxlbmd0aCgpKSkgewogICAgICAgICBTdHJpbmcgdmFsdWUgPSBwYXJzZUNTU1N0cmluZ09y
VVJMKG1fcnVsZVZhbHVlLmNoYXJhY3RlcnMoKSwgbV9ydWxlVmFsdWUubGVuZ3RoKCkpOwogICAg
ICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QobV9kb2N1bWVudC0+Y29tcGxldGVVUkwodmFsdWUpKTsKKyAgICAgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2RvY3VtZW50LT5j
b21wbGV0ZVVSTCh2YWx1ZSkpKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIG1fZG9jdW1lbnQpOwogICAgICAg
ICAgICAgbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cHJlbG9hZChDYWNoZWRS
ZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCwgU3RyaW5nKCksIG1fc2Nhbm5pbmdCb2R5
KTsKICAgICAgICAgfQogICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oCmluZGV4IGMzZGJiODAwZWRkOGVh
MTBhYjI0ZWIzYzEyM2I3Y2E5OGYyY2I0MjcuLmIxNmE2MjkyNWUxMDYxNWE5MjQzYzkyNGJjZWU3
YTBjYzBkMWQzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1By
ZWxvYWRTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9h
ZFNjYW5uZXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBIVE1MVG9rZW47CiBjbGFzcyBDU1NQ
cmVsb2FkU2Nhbm5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ1NTUHJlbG9hZFNjYW5u
ZXIpOwogcHVibGljOgotICAgIENTU1ByZWxvYWRTY2FubmVyKERvY3VtZW50Kik7CisgICAgZXhw
bGljaXQgQ1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQqKTsKIAogICAgIHZvaWQgcmVzZXQoKTsK
ICAgICB2b2lkIHNjYW4oY29uc3QgSFRNTFRva2VuJiwgYm9vbCBzY2FubmluZ0JvZHkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5k
ZXggMjMwMzhiZDBiY2VhMDhkOWUyNWVlY2ZjZGY1NGM0OGZjMTRiMDM3YS4uOTY1NGM4ZDhkYzBk
NmE3Y2ViY2IxNDJjYjNiMTJkOWYyYTI1ZDA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xMjcsNyArMTI3LDggQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVy
KiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IGRvY3VtZW50LT5jb21wbGV0ZVVS
TChtX3VybFRvTG9hZCwgYmFzZVVSTCk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV91cmxUb0xvYWQs
IGJhc2VVUkwpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRhZ05hbWUoKSwgZG9j
dW1lbnQpOwogICAgICAgICBpZiAobV90YWdOYW1lID09IHNjcmlwdFRhZykKICAgICAgICAgICAg
IGNhY2hlZFJlc291cmNlTG9hZGVyLT5wcmVsb2FkKENhY2hlZFJlc291cmNlOjpTY3JpcHQsIHJl
cXVlc3QsIG1fY2hhcnNldCwgc2Nhbm5pbmdCb2R5KTsKICAgICAgICAgZWxzZSBpZiAobV90YWdO
YW1lID09IGltZ1RhZyB8fCAobV90YWdOYW1lID09IGlucHV0VGFnICYmIG1faW5wdXRJc0ltYWdl
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGMxMmJlMmZmOWQ0NTU3
NGU0MWQ0ZjQ3MDhjYjk2YmI0ZDVhN2VjNGIuLmUyMjQ3ZDI1NGM3Zjg2MDllZjZlYTJhOTc3M2I1
ZjlmN2QxYjY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMTc5
LDYgKzE3OSw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSAwOwogICAgIGlmICgh
YXR0ci5pc051bGwoKSAmJiAhc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHIp
LmlzRW1wdHkoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSkpOwor
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjbGllbnQoKS0+c291cmNlRWxlbWVudCgpKTsK
IAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gY2xpZW50KCktPnNvdXJjZUVsZW1l
bnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAg
ICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBkNGNiYTA1
OTEzMTkwMGUxOTBjY2Y1OGU2ZmUwZDE2ZDhkMDc1NTU2Li44M2E1YTFjZTY3NGNjNzJjNWYxMTAw
OTZjYjM0OGFiMDgyNWU0ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJ
bWFnZShDYWNoZWRSZXNvdQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKTsKKyAgICByZXF1
ZXN0LnNldERlZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkpID8gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlcnJlZEJ5Q2xpZW50IDogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OjpOb0RlZmVyKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
SW1hZ2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJl
cXVlc3QpLmdldCgpKTsKIH0KIApAQCAtNDU4LDcgKzQ1OCw3IEBAIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
KENhY2hlCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcmVzb3VyY2UtPnNldExvYWRQcmlvcml0
eShyZXF1ZXN0LnByaW9yaXR5KCkpOwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJj
ZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKKyAg
ICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKICAgICAg
ICAgcmVzb3VyY2UtPmxvYWQodGhpcywgcmVxdWVzdC5vcHRpb25zKCkpOwogCiAgICAgICAgIC8v
IFdlIGRvbid0IHN1cHBvcnQgaW1tZWRpYXRlIGxvYWRzLCBidXQgd2UgZG8gc3VwcG9ydCBpbW1l
ZGlhdGUgZmFpbHVyZS4KQEAgLTUxMCw3ICs1MTAsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNvdXJjZShDYWNoZWRS
ZQogICAgIHJldHVybiByZXNvdXJjZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OlJldmFs
aWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9u
UG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgRGVm
ZXJPcHRpb24gZGVmZXIpIGNvbnN0CitDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9u
UG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3ko
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291cmNlLCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OkRlZmVyT3B0aW9uIGRlZmVyKSBjb25zdAogewogICAgIGlmICghZXhpc3Rp
bmdSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIExvYWQ7CkBAIC01MzksNyArNTM5LDcgQEAgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6ZGV0ZXJtaW5lUmV2YWxpZGEKIAogICAgIC8vIERvIG5vdCBsb2FkIGZyb20gY2FjaGUgaWYg
aW1hZ2VzIGFyZSBub3QgZW5hYmxlZC4gVGhlIGxvYWQgZm9yIHRoaXMgaW1hZ2Ugd2lsbCBiZSBi
bG9ja2VkCiAgICAgLy8gaW4gQ2FjaGVkSW1hZ2U6OmxvYWQuCi0gICAgaWYgKERlZmVycmVkQnlD
bGllbnQgPT0gZGVmZXIpCisgICAgaWYgKENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJyZWRC
eUNsaWVudCA9PSBkZWZlcikKICAgICAgICAgcmV0dXJuIFJlbG9hZDsKICAgICAKICAgICAvLyBE
b24ndCByZWxvYWQgcmVzb3VyY2VzIHdoaWxlIHBhc3RpbmcuCkBAIC03NjQsOCArNzY0LDggQEAg
dm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVjcmVtZW50UmVxdWVzdENvdW50KGNvbnN0IENh
Y2hlZFJlc291cmNlKiByZXMpCiAgICAgLS1tX3JlcXVlc3RDb3VudDsKICAgICBBU1NFUlQobV9y
ZXF1ZXN0Q291bnQgPiAtMSk7CiB9Ci0gICAgCi12b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpw
cmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSkKKwordm9p
ZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBl
LCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
Ym9vbCByZWZlcmVuY2VkRnJvbUJvZHkpCiB7CiAgICAgLy8gRklYTUU6IFJpcCB0aGlzIG91dCB3
aGVuIHdlIGFyZSBzdXJlIGl0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkgKGV2ZW4gZm9yIG1vYmls
ZSkuCiAgICAgVU5VU0VEX1BBUkFNKHJlZmVyZW5jZWRGcm9tQm9keSk7CkBAIC03ODAsMTIgKzc4
MCwxMiBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcgogICAgICAgICBpZiAoIWhhc1JlbmRlcmlu
ZyAmJiAhY2FuQmxvY2tQYXJzZXIpIHsKICAgICAgICAgICAgIC8vIERvbid0IHByZWxvYWQgc3Vi
cmVzb3VyY2VzIHRoYXQgY2FuJ3QgYmxvY2sgdGhlIHBhcnNlciBiZWZvcmUgd2UgaGF2ZSBzb21l
dGhpbmcgdG8gZHJhdy4KICAgICAgICAgICAgIC8vIFRoaXMgaGVscHMgcHJldmVudCBwcmVsb2Fk
cyBmcm9tIGRlbGF5aW5nIGZpcnN0IGRpc3BsYXkgd2hlbiBiYW5kd2lkdGggaXMgbGltaXRlZC4K
LSAgICAgICAgICAgIFBlbmRpbmdQcmVsb2FkIHBlbmRpbmdQcmVsb2FkID0geyB0eXBlLCByZXF1
ZXN0LCBjaGFyc2V0IH07CisgICAgICAgICAgICBQZW5kaW5nUHJlbG9hZCBwZW5kaW5nUHJlbG9h
ZCA9IHsgdHlwZSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgY2hhcnNldCB9OwogICAgICAg
ICAgICAgbV9wZW5kaW5nUHJlbG9hZHMuYXBwZW5kKHBlbmRpbmdQcmVsb2FkKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICByZXF1ZXN0UHJlbG9hZCh0eXBlLCBy
ZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICByZXF1ZXN0UHJlbG9hZCh0eXBlLCByZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKSwgY2hhcnNldCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNoZWNrRm9yUGVuZGluZ1ByZWxvYWRzKCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IGUyZTJhZTQ5NzI1YzU5
MTJlYzFjNTA3ZmI1ODc5ODQzNDg1YjZhOTUuLmM1YjIzNjUwZGVhMzFiMmUwZDFjOWRiMTJhZmU0
M2MxNzgzMGY3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0yNiw5ICsyNiwxMCBAQAogI2lmbmRlZiBDYWNoZWRSZXNv
dXJjZUxvYWRlcl9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlTG9hZGVyX2gKIAorI2luY2x1ZGUg
IkNhY2hlUG9saWN5LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgpAQCAtNDQs
NyArNDUsNiBAQCBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBj
bGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOwotY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVy
OwogY2xhc3MgQ2FjaGVkVGV4dFRyYWNrOwpAQCAtNjksNyArNjksNiBAQCBmcmllbmQgY2xhc3Mg
SW1hZ2VMb2FkZXI7CiBmcmllbmQgY2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVz
c29yOwogCiBwdWJsaWM6Ci0gICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVk
QnlDbGllbnQgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IENhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKIApAQCAtMTMxLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdDsKICAgICB2b2lkIGNs
ZWFyUHJlbG9hZHMoKTsKICAgICB2b2lkIGNsZWFyUGVuZGluZ1ByZWxvYWRzKCk7Ci0gICAgdm9p
ZCBwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KTsKKyAgICB2b2lkIHByZWxv
YWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJvbUJvZHkpOwogICAgIHZvaWQgY2hlY2tG
b3JQZW5kaW5nUHJlbG9hZHMoKTsKICAgICB2b2lkIHByaW50UHJlbG9hZFN0YXRzKCk7CiAgICAg
Ym9vbCBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJiwgYm9vbCBm
b3JQcmVsb2FkID0gZmFsc2UpOwpAQCAtMTQ5LDcgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKIAogICAgIGVudW0gUmV2YWxpZGF0aW9uUG9saWN5IHsg
VXNlLCBSZXZhbGlkYXRlLCBSZWxvYWQsIExvYWQgfTsKLSAgICBSZXZhbGlkYXRpb25Qb2xpY3kg
ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291
cmNlLCBEZWZlck9wdGlvbikgY29uc3Q7CisgICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWlu
ZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlck9wdGlvbikgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBu
b3RpZnlMb2FkZWRGcm9tTWVtb3J5Q2FjaGUoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBib29sIGNo
ZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCmluZGV4IDZhZGQzOWI5NmNhY2Y0ZGViM2I0ZjM4MjFjZWZiNjI1OGM1ZWM5
ZjIuLmY4N2EwNDBjMGFhNGYzNjlkYTM2NzlhNDcyNDA5ODRmNDkwZTZiNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3Bw
CkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKQEAgLTM0LDcgKzM4LDcgQEAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQogICAgICwgbV9wcmlvcml0eShw
cmlvcml0eSkKICAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIoQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCisgICAgLCBtX2RlZmVyKE5vRGVmZXIpCiB7CiB9CiAK
QEAgLTQzLDcgKzQ3LDcgQEAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAsIG1fb3B0aW9u
cyhvcHRpb25zKQogICAgICwgbV9wcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2
ZWQpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCi0gICAgLCBtX2RlZmVyKENhY2hlZFJlc291
cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwgbV9kZWZlcihOb0RlZmVyKQogewogfQogCkBAIC01
Miw4ICs1Niw0OCBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9vcHRpb25zKENh
Y2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCiAgICAg
LCBtX3ByaW9yaXR5KHByaW9yaXR5KQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwg
bV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKKyAgICAsIG1fZGVmZXIoTm9E
ZWZlcikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp+Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KCkKK3sKK30KKwordm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcihQ
YXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCiB7CisgICAgQVNTRVJUKCFtX2luaXRpYXRvckVs
ZW1lbnQgJiYgIW1faW5pdGlhdG9yRG9jdW1lbnQpOworICAgIG1faW5pdGlhdG9yRWxlbWVudCA9
IGVsZW1lbnQ7CiB9CiAKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3Io
QXRvbWljU3RyaW5nIG5hbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50KQoreworICAg
IEFTU0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRpYXRvckRvY3VtZW50KTsKKyAg
ICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOworICAgIG1faW5pdGlhdG9yRG9jdW1lbnQgPSBkb2N1
bWVudDsKIH0KKworY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUoKSBjb25zdAoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAg
ICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFtZSgpOworICAgIGlmICghbV9p
bml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsK
KworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwgKCJy
ZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1
cm4gZGVmYXVsdE5hbWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnQ+IENhY2hlZFJlc291cmNl
UmVxdWVzdDo6aW5pdGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1l
bnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAg
cmV0dXJuIG1faW5pdGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gbV9p
bml0aWF0b3JFbGVtZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXgg
Y2IwNDNkZmUzOWZlNGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJmNC4uNzRkODM4YjMzM2UxZWY5
MTJjM2Y0ZGFmNmZhMjA0OTg4Y2E3MTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMjYsMjcgKzI2LDQxIEBACiAj
aWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlUmVx
dWVzdF9oCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZFByaW9yaXR5LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFJlc291cmNl
UmVxdWVzdCB7CiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVy
cmVkQnlDbGllbnQgfTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwogICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIH5DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsg
fQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsg
fQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0
ID0gY2hhcnNldDsgfQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQog
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9wcmlv
cml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yUHJlbG9h
ZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsgbV9mb3JQcmVs
b2FkID0gZm9yUHJlbG9hZDsgfQotICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlv
biBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAgICB2b2lkIHNldERlZmVyKENh
Y2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7
IH0KKyAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAg
ICB2b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQor
ICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0
SW5pdGlhdG9yKEF0b21pY1N0cmluZyBuYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50Pik7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0
cjxEb2N1bWVudD4gaW5pdGlhdG9yRG9jdW1lbnQoKTsKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGluaXRpYXRvckVsZW1lbnQoKTsKIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9y
ZXNvdXJjZVJlcXVlc3Q7CkBAIC01NCw3ICs2OCwxMCBAQCBwcml2YXRlOgogICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlv
cml0eTsKICAgICBib29sIG1fZm9yUHJlbG9hZDsKLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
RGVmZXJPcHRpb24gbV9kZWZlcjsKKyAgICBEZWZlck9wdGlvbiBtX2RlZmVyOworICAgIFJlZlB0
cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7CisgICAgUmVmUHRyPERvY3VtZW50PiBtX2lu
aXRpYXRvckRvY3VtZW50OworICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDYzMTQ1YzJjZTIxNGRlMzFmZDUyNmMzZTQ3YzM3YzMzYzZjODY3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpCisgICAgOiBjc3MoImNzcyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCisgICAgLCBpY29uKCJpY29uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM1NGQ2ODc0MDFhNzMxMWI4OTM2
YjNkOTIxMjRlYzRkY2NjZGE2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnNfaAorI2RlZmlu
ZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzX2gKKworI2luY2x1ZGUgIlRocmVhZEds
b2JhbERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQXRvbWljU3RyaW5nIGNz
czsKKyAgICBBdG9taWNTdHJpbmcgaWNvbjsKK3ByaXZhdGU6CisgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpOworICAgIGZyaWVuZCBjbGFzcyBUaHJlYWRHbG9iYWxEYXRhOwor
fTsKKworaW5saW5lIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKQoreworICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCku
Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNw
cAppbmRleCA4YzlkMGNlY2JmY2QxMmI3ZWFhMWM0YThjODcwZjE2NDI1NTdmNzQ1Li5lMDcxMDhl
NGNkMmRlNGNkZjhiZTgwODZmZDFkZDYyMDlmODQ0NDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uTG9hZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hl
ZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC02Niw2ICs2Nyw3IEBAIHZvaWQgSWNv
bkxvYWRlcjo6c3RhcnRMb2FkaW5nKCkKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVl
c3QoKS5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKICNl
bmRpZgogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFByaW9yaXR5KFJl
c291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuaWNvbiwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAK
ICAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAppbmRleCBkYTg0
NmY4ZGJjMmI2ZTFlZjM3MDNmZDgzZDg2YTBlNTQ4MWE5MjBjLi5iYzFkNjVlMjY2MjM1ZmVhMGU1
ZDFlNjBjOGM2ZGExOTMzNDJhMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJl
YWRHbG9iYWxEYXRhLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgpAQCAt
NTksNyArNjAsOCBAQCBUaHJlYWRHbG9iYWxEYXRhKiBUaHJlYWRHbG9iYWxEYXRhOjpzdGF0aWNE
YXRhOwogI2VuZGlmCiAKIFRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEoKQotICAg
IDogbV9ldmVudE5hbWVzKGFkb3B0UHRyKG5ldyBFdmVudE5hbWVzKSkKKyAgICA6IG1fY2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyhhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycykpCisgICAgLCBtX2V2ZW50TmFtZXMoYWRvcHRQdHIobmV3IEV2ZW50TmFt
ZXMpKQogICAgICwgbV90aHJlYWRUaW1lcnMoYWRvcHRQdHIobmV3IFRocmVhZFRpbWVycykpCiAg
ICAgLCBtX3htbFR5cGVSZWdFeHAoYWRvcHRQdHIobmV3IFhNTE1JTUVUeXBlUmVnRXhwKSkKICNp
Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgK
aW5kZXggNDJmMDVhZmUzODkzZjczZDlkN2VmZjQ4NTJiOWVmMThmZDlhZDY2Mi4uMjdiMmVkZDRh
NWQ5ZDgwNzUwNDFlNTljZjVjOTkzY2U5ZWQxZjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtNDEsNiArNDEsNyBAQCB1c2luZyBXVEY6OlRocmVh
ZFNwZWNpZmljOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBjbGFzcyBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzOwogICAgIGNsYXNzIEV2ZW50TmFtZXM7CiAgICAgY2xhc3Mg
VGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVyczsKICAgICBjbGFzcyBUaHJlYWRUaW1lcnM7CkBA
IC01Niw2ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgflRocmVhZEdsb2Jh
bERhdGEoKTsKICAgICAgICAgdm9pZCBkZXN0cm95KCk7IC8vIGNhbGxlZCBvbiB3b3JrZXJzIHRv
IGNsZWFuIHVwIHRoZSBUaHJlYWRHbG9iYWxEYXRhIGJlZm9yZSB0aGUgdGhyZWFkIGV4aXRzLgog
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMoKSB7IHJldHVybiAqbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzOyB9CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50TmFtZXMoKSB7IHJldHVybiAqbV9l
dmVudE5hbWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYgdGhyZWFkVGltZXJzKCkgeyByZXR1
cm4gKm1fdGhyZWFkVGltZXJzOyB9CiAgICAgICAgIFhNTE1JTUVUeXBlUmVnRXhwJiB4bWxUeXBl
UmVnRXhwKCkgeyByZXR1cm4gKm1feG1sVHlwZVJlZ0V4cDsgfQpAQCAtNzMsNiArNzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6CisgICAgICAgIE93blB0
cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzPiBtX2NhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnM7CiAgICAgICAgIE93blB0cjxFdmVudE5hbWVzPiBtX2V2ZW50TmFtZXM7CiAg
ICAgICAgIE93blB0cjxUaHJlYWRUaW1lcnM+IG1fdGhyZWFkVGltZXJzOwogICAgICAgICBPd25Q
dHI8WE1MTUlNRVR5cGVSZWdFeHA+IG1feG1sVHlwZVJlZ0V4cDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDg3ZmYwZDY4MTI3NDQ2MGVhNzk3OGFmZTg3ZmEy
NzM5Njg4NTdlYmEuLmVhZmVhMWE4NmExMjIyZWQ4M2QxNGE1M2RhYmJjZGJmMjIzNGZiNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtODIsNiArODIsNyBA
QCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiB2b2lk
IFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpCiB7CiAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwoaHJlZigpKSkpOworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwog
ICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggYzM0ZmVkODdkNDdl
ZjhmZjFmMWE2NWUyN2FmNWY2Y2RkMzc0OGE4Yi4uM2IyZDQ5NWI5NjUwOTgwMjE3MjI3M2Y3NTIy
ZGU0MWM1NGM3MGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxl
bWVudC5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6Omxv
YWRGb250KCkKICAgICBpZiAoIWhyZWYuaXNOdWxsKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7CisgICAgICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBjYWNoZWRSZXNv
dXJjZUxvYWRlci0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2NhY2hlZEZv
bnQpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRm9udC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDYwNDZlYzYxYjc0ZmMxMmViMTNhYzIwNzI0
NGE2YzY4MTY1NDc0NzYuLmYxZTFjMDMyNDA1MzQ4YzM1OTBjMzdiZTRiYjRjYTIwMmVlMDY1ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTI1Niw2ICsyNTYsNyBAQCB2
b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiAgICAgICAgICAgICBLVVJMIHVybCA9IGRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigp
KSB7CiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0KHVybC5zdHJpbmcoKSkpOworICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5p
dGlhdG9yKHRoaXMpOwogICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQgPSBkb2N1bWVu
dCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7
CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQpCiAgICAgICAgICAgICAgICAg
ICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173900</attachid>
            <date>2012-11-13 08:19:55 -0800</date>
            <delta_ts>2012-11-13 10:07:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121113171755.patch</filename>
            <type>text/plain</type>
            <size>50138</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUyYjA3M2NiNjU0OWY3
YmU0MTYwN2E1ZTNmOTZhMmRkYjRhMmM0My4uNzkwY2Y1Nzc0YWMyOWFkNjkyNTEzYThiMWFjNjE5
ZTVhMTg1ZDRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTExLTEzICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaW5pdGlhdG9y
IHRvIENhY2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTkzNQorCisgICAgICAgIE1vdGl2YXRpb246IENocm9taXVt
IG5lZWRzIHRvIGtub3cgd2hpY2ggZWxlbWVudHMgcmVxdWVzdCBhCisgICAgICAgIHJlc291cmNl
IChzdWNoIGFzIGFuIGltYWdlIG9yIGEgc2NyaXB0KSAoYnVnIDkyNzYxKS4gSW4gYWRkaXRpb24s
CisgICAgICAgIGZvciBleHBvc2luZyByZXNvdXJjZSB0aW1pbmcgaW5mb3JtYXRpb24gKGJ1ZyA4
NDg4Mykgd2UgbmVlZCB0bworICAgICAgICBzdG9yZSB0aGUgaW5pdGlhdG9yLCBhbmQgdGhpcyBp
cyB0aGUgZmlyc3Qgc3RlcCB0b3dhcmRzIGl0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogTm8g
dmlzaWJsZSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2Fj
aGVkSW1hZ2VGb3JDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Up
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNh
Y2hlZEltYWdlU2V0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6CisgICAgICAgICogY3NzL0NT
U0ltYWdlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ1NTSW1hZ2VWYWx1
ZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFnZSk6CisgICAgICAgICogY3NzL1N0eWxlUnVs
ZUltcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RT
dHlsZVNoZWV0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcik6CisgICAgICAgICogZG9tL1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNj
cmlwdCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5l
cjo6ZW1pdFJ1bGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmg6
CisgICAgICAgIChDU1NQcmVsb2FkU2Nhbm5lcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWxvYWRUYXNrOjpwcmVs
b2FkKToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp+Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6c2V0SW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6aW5pdGlhdG9yTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6OmluaXRpYXRvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6aW5pdGlhdG9yRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldE9wdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpkZWZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlUmVx
dWVzdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycyk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpzdGFydExvYWRpbmcpOgor
ICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRHbG9iYWxEYXRhOjpjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKToK
KyAgICAgICAgKFRocmVhZEdsb2JhbERhdGEpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdElt
YWdlUmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAg
ICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisKIDIwMTItMTEtMTMgIENzYWJhIE9zenRyb2dv
bsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIEVuYWJsZSBNdXRhdGlvbiBv
YnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkYjBmYTQ5OTIzYjNmM2RkZDczMzZiYjhm
ZTgzN2Y4MjY5YjdkNTU0Li4zMDcwNzJiZjdlNDM4YzhjMzg2YjQ4OGJlNTE5NWY4YWMzOTY0OGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY4MSw2ICsxNjgxLDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAog
ICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjQ0YzBm
NzQ1ODBkN2YxNTljMGUwMjVlODg0ZWI1YzAxNjU4NDMzNS4uZWRiYjE1NTZjMWE3Zjc3NmJmNjM2
MWNmMjFmNGYwMGM4YzcwMWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0z
ODI0LDYgKzM4MjQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAog
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmggXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDVkZDgxZWQyZjg3
OTc5MDE5MmRmN2I5MTgxYmVmNzNjZDM4ZGM2ZmQuLjA5OGYwYzI2ZjAzODdjMWI5YjgxZDc4ZDhm
NjFkYzQ5ZWYwZWUxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODIyLDYgKzgyMiw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBcCiAg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgXAogICAgIGxvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIFwKQEAgLTE5NTQsNiArMTk1NSw4IEBAIEhFQURF
UlMgKz0gXAogICAgIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBcCiAgICAgbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCBcCiAgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmggXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCBcCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggXAogICAgIGxvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaCBcCiAgICAgbG9hZGVyL0Zvcm1TdGF0ZS5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBlZmFiMjU0YmRjMzY3YjZhZTFhNDYxYTAwMWJlMTE2ZjYzNTE4ODgwLi41
OTgyMzExNmQ0ZTllOWFjZGE3ZTYyOTRkYTFmZTdjZWFjNzcwNTgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0yMDksNiArMjA5LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCcsCkBAIC0zMDI2LDYgKzMwMjcs
NyBAQAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAn
LAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKKyAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5j
cHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMDc4OWY1ZmUwNWEzOWNhMDk0ZmQ2MTE2ZTdhZGZmZTc3
MjJmYjhmMC4uYTc5MTcxNDFmY2UwYzAzMjJiMTIxY2M5MGU3OGI0OTRkOWYxMDRhZiAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MTcwLDYg
KzI4MTcwLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
Llxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNh
Y2hlXENhY2hlZFNjcmlwdC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjUwMWU5Yjc5
Zjc5MDVjMzczODg3ZDQzZTY2NmZmZmJlZjg2OGQ3Mi4uZGI0ZjcwZmM1M2JkNzQxYTgxZjUzMWNl
NzYzZmE0NTEyNGU3YjNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTgzOSw2ICsxODM5LDggQEAKIAkJNjVFMEU5NDQxMTMz
Qzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3Jh
cHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTY1RkVBODY5MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQ
YWdlLmNwcCAqLzsgfTsKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdl
UHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjM0
ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0
NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8q
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZFMjFDNkMwMTEyNjMz
ODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3Jh
cGhpY3NDb250ZXh0M0QuY3BwICovOyB9OwogCQk2RTIxQzZDMjExMjYzMzk5MDBBN0JFMDIgLyog
R3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAgKi87IH07CiAJCTZFM0ZBRDM4MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVTM1RDLmNwcCAqLzsgfTsKQEAgLTkwNzYsNiArOTA3OCw4IEBACiAJCTY1RjgwNjk3
MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCbG9ja0V4Y2VwdGlvbnMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2VQdHIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgcGF0aCA9IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM2
Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUw
MEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENH
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQw
MDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjU5LDYgKzE5MjYzLDggQEAKIAkJ
CQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLywK
IAkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLywKIAkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmggKi8sCisJCQkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwIC8qLAorCQkJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAv
KiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggLyosCiAJCQkJQkNCMTZDMEEwOTc5
QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgKi8sCiAJCQkJQkNCMTZDMEIwOTc5QzNC
RDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oICovLAogCQkJCTUwMzhCRTNFMTQ3MkFEOTgwMDk1
RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovLApAQCAtMjI1NzAsNiArMjI1NzYsNyBAQAogCQkJ
CUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNl
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDgxRTNFMDNDRkY4MEMxNkVGOEI0OEIgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzYzODg5NUE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNCMTZDMjQwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNENTMzNjQwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDM4QkU0MTE0NzJBRDk4MDA5
NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MTY2LDYgKzI2MTcz
LDcgQEAKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwODFFM0MzM0NFNTgw
QzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5
NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRD
NzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmluZGV4IDEyNjczNGZmY2JkNjc0
OTIxNDlhODBiOTFmNGQ3ZmY3ZDFiZmMwMjIuLjU1ZDgzMWMwOGVkYTdmOGFiZjc0MDVhNWYyNTQw
YTc4NWE3NjY0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApA
QCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUoQ1NTVmFsdWUqIHZhbHVlLCBDYWNoZWRSZXNvdXJjZUxvYWRlcgogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKLSAgICAgICAgU3R5bGVDYWNo
ZWRJbWFnZSogc3R5bGVDYWNoZWRJbWFnZSA9IHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPih2
YWx1ZSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgU3R5bGVD
YWNoZWRJbWFnZSogc3R5bGVDYWNoZWRJbWFnZSA9IHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUq
Pih2YWx1ZSktPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyLCAwKTsKICAgICAgICAg
aWYgKCFzdHlsZUNhY2hlZEltYWdlKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcAppbmRleCAwZmFhODEzYjFlYmUxMjdm
MjVjM2I2YzU2NDc1NzZiNTU3YmZmNGIyLi4xYmNhOTc0Y2QyMjk2ZTkzYzVkNjY2YWM5YWVhMmMx
NTJjZjNkNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
CkBAIC0xMzUsMTEgKzEzNSwxMSBAQCBTdHlsZUNhY2hlZEltYWdlKiBDU1NDdXJzb3JJbWFnZVZh
bHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmIChp
c1NWR0N1cnNvcklkZW50aWZpZXIodXJsKCkpICYmIGxvYWRlciAmJiBsb2FkZXItPmRvY3VtZW50
KCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBmYWlsIGlmIHRoZSA8Y3Vyc29yPiBl
bGVtZW50IGlzIGluIGEgc2hhZG93IERPTSAoYnVnIDU5ODI3KQogICAgICAgICBpZiAoU1ZHQ3Vy
c29yRWxlbWVudCogY3Vyc29yRWxlbWVudCA9IHJlc291cmNlUmVmZXJlbmNlZEJ5Q3Vyc29yRWxl
bWVudCh1cmwoKSwgbG9hZGVyLT5kb2N1bWVudCgpKSkKLSAgICAgICAgICAgIHJldHVybiBDU1NJ
bWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIGN1cnNvckVsZW1lbnQtPmhyZWYoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UobG9hZGVyLCBjdXJz
b3JFbGVtZW50LT5ocmVmKCksIGN1cnNvckVsZW1lbnQpOwogICAgIH0KICNlbmRpZgogCi0gICAg
cmV0dXJuIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKGxvYWRlciwgdXJsKCkpOworICAgIHJl
dHVybiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIHVybCgpLCAwKTsKIH0KIAog
I2lmIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5j
cHAKaW5kZXggMzY5MDc4OTMzNmQwYjg0NDgxNTI3M2IwMTMyMjVmNjlkYWFkNjg3Zi4uMDc3ODJh
YzIxOWQyNjE1NDM0NjZiNTkzYjhhNjlmNzYyNjU5MmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNh
Y2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgiCkBAIC05Nyw2ICs5OCw3IEBAIENh
Y2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7CiAgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9y
ZXNvdXJjZSkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwogICAgICAgICBtX2NhY2hlZEZvbnQg
PSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7
CiAgICAgfQogICAgIHJldHVybiBtX2NhY2hlZEZvbnQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggZjdkNDAxZjVjZjY3NDkwMjE4ODYwM2QyMDhkZTJk
NjNiOWM2Y2FlMC4uZWJjNzRjNzE3ZGQ0YzI0MmEzMzIzNWJjMTRmZTVhYTk4YzU5M2E3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZVNldC5oIgpAQCAtMTEwLDYg
KzExMSw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZElt
YWdlU2V0KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgICAgIC8vIGFuZCBhbnkgQ1NT
IHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY5
OAogICAgICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxlRmFjdG9y
KCk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOworICAg
ICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
KCkuY3NzLCBkb2N1bWVudCk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkgewog
ICAgICAgICAgICAgbV9pbWFnZVNldCA9IFN0eWxlQ2FjaGVkSW1hZ2VTZXQ6OmNyZWF0ZShjYWNo
ZWRJbWFnZS5nZXQoKSwgaW1hZ2Uuc2NhbGVGYWN0b3IsIHRoaXMpOwogICAgICAgICAgICAgbV9h
Y2Nlc3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5j
cHAKaW5kZXggNmI3M2Q0NjMxYTBmMDAyNGYyZWM2ZjNjNjQ4NTgxNjQ5ODQxMDRmNy4uOTU3YTIy
MTNjZGQxZDJmMTMzY2MwN2NjNDMyOTAxYmJlYTZlM2E1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVZhbHVlLmNwcApAQCAtMjcsNyArMjcsOSBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQZW5kaW5nSW1hZ2UuaCIKQEAgLTY5LDE0ICs3MSwxNCBAQCBTdHlsZUltYWdlKiBD
U1NJbWFnZVZhbHVlOjpjYWNoZWRPclBlbmRpbmdJbWFnZSgpCiAgICAgcmV0dXJuIG1faW1hZ2Uu
Z2V0KCk7CiB9CiAKLVN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCitTdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFn
ZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBFbGVtZW50
KiBpbml0aWF0b3JFbGVtZW50KQogewogICAgIGlmIChpc0N1cnNvckltYWdlVmFsdWUoKSkKICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0N1cnNvckltYWdlVmFsdWUqPih0aGlzKS0+Y2Fj
aGVkSW1hZ2UobG9hZGVyKTsKLSAgICByZXR1cm4gY2FjaGVkSW1hZ2UobG9hZGVyLCBtX3VybCk7
CisgICAgcmV0dXJuIGNhY2hlZEltYWdlKGxvYWRlciwgbV91cmwsIGluaXRpYXRvckVsZW1lbnQp
OwogfQogCi1TdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNo
ZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBTdHJpbmcmIHVybCkKK1N0eWxlQ2FjaGVk
SW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBs
b2FkZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBFbGVtZW50KiBpbml0aWF0b3JFbGVtZW50KQogewog
ICAgIEFTU0VSVChsb2FkZXIpOwogCkBAIC04NCw2ICs4NiwxMCBAQCBTdHlsZUNhY2hlZEltYWdl
KiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVy
LCBjb25zdAogICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwogCiAgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKHVybCkpKTsKKyAgICAgICAgaWYgKGluaXRpYXRvckVsZW1lbnQpCisg
ICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihpbml0aWF0b3JFbGVtZW50KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgaWYg
KENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+
cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAgICAgICAgbV9pbWFnZSA9IFN0eWxlQ2FjaGVk
SW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVZhbHVlLmgKaW5kZXggOGM4MmYyYzY3ZGI0MzNhNzUxNzMzYzk2NzFkZTliOTE1MWU3YTk4
Yy4uMTU2NWM1ODUzYzc1ZmU2OTMxNDUyMGIxYjkxNjU0ZWFlZTEwOGJkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOworY2xhc3MgRWxlbWVudDsKIGNsYXNzIFN0
eWxlQ2FjaGVkSW1hZ2U7CiBjbGFzcyBTdHlsZUltYWdlOwogCkBAIC0zNiw3ICszNyw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NJbWFnZVZhbHVlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB1cmwsIFN0eWxlSW1hZ2UqIGltYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NT
SW1hZ2VWYWx1ZSh1cmwsIGltYWdlKSk7IH0KICAgICB+Q1NTSW1hZ2VWYWx1ZSgpOwogCi0gICAg
U3R5bGVDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKyAg
ICBTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciosIEVs
ZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpOwogICAgIC8vIFJldHVybnMgYSBTdHlsZUNhY2hlZElt
YWdlIGlmIHRoZSBpbWFnZSBpcyBjYWNoZWQgYWxyZWFkeSwgb3RoZXJ3aXNlIGEgU3R5bGVQZW5k
aW5nSW1hZ2UuCiAgICAgU3R5bGVJbWFnZSogY2FjaGVkT3JQZW5kaW5nSW1hZ2UoKTsKIApAQCAt
NTMsNyArNTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VWYWx1ZShDbGFz
c1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsKTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hl
ZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIFN0
eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3Qg
U3RyaW5nJiB1cmwsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpOwogICAgIFN0cmluZyBjYWNo
ZWRJbWFnZVVSTCgpOwogICAgIHZvaWQgY2xlYXJDYWNoZWRJbWFnZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZTc5Yzk4M2NmMmQ3MmFlN2UyNjU5MTZmOTk3YjQy
MjRlMmEyNzYyMy4uMGI5MWEzN2FjZWY5ZmMzYjVmMDNhN2VmNjBhNDlkN2MzYWFjZmM1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNTA1NCw3ICs1MDU0LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZUltYWdlPiBTdHlsZVJlc29sdmVyOjpsb2FkUGVuZGluZ0ltYWdlKFN0eWxl
UGVuZGluZ0ltYWdlKiBwZW5kaW4KIAogICAgIGlmIChwZW5kaW5nSW1hZ2UtPmNzc0ltYWdlVmFs
dWUoKSkgewogICAgICAgICBDU1NJbWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gcGVuZGluZ0ltYWdl
LT5jc3NJbWFnZVZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBpbWFnZVZhbHVlLT5jYWNoZWRJbWFn
ZShjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgICAgIHJldHVybiBpbWFnZVZhbHVlLT5jYWNo
ZWRJbWFnZShjYWNoZWRSZXNvdXJjZUxvYWRlciwgbV9lbGVtZW50KTsKICAgICB9CiAKICAgICBp
ZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZUdlbmVyYXRvclZhbHVlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKaW5kZXggZWVjMzUwNzcxYzQ3OTQyZTg2NTc3MzA3ZWMy
NDAzMmQyNmMwNGY4NS4uMzE0NmVjM2NkMGE0MGQ5ZGE3YTdhZmRjZWEyMWI3NTNlNmIxZTc2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250
ZW50cy5oIgpAQCAtMTE3LDYgKzExOCw3IEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0
U3R5bGVTaGVldCgpCiAgICAgfQogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsK
KyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
KCkuY3NzLCBkb2N1bWVudCk7CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5
bGVTaGVldCgpKQogICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKaW5kZXggNjdlODRl
M2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYS4uNWEzMzhmZTkyODNhYWZhZDE5OGEx
NGRkNDQ5MzM4YWU0YWJlMmJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtNTQsNiArNTQsNyBAQCBDYWNoZWRTVkdEb2N1bWVu
dCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciog
bG9hZGVyKQogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCiAgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcigi
Y3NzIiwgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9kb2N1bWVudCA9IGxvYWRlci0+
cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggZmEwNDE5MGMzZGM4ZTNhZGI0MzFhYjAz
YThmZDFhMWUxODAwNGJhOS4uMzUxODdmODIwNDBlMTYwMzM2OWQ2YTJkYjJjZTVlODg2MWMzOWMz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1ZGUgIlN0eWxlUGVu
ZGluZ1NoYWRlci5oIgpAQCAtNjEsNiArNjIsNyBAQCBTdHlsZUNhY2hlZFNoYWRlciogV2ViS2l0
Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAog
ICAgICAgICBtX2FjY2Vzc2VkU2hhZGVyID0gdHJ1ZTsKIAogICAgICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgbG9hZGVyLT5kb2N1bWVudCgpKTsKICAgICAg
ICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gY2FjaGVkU2hhZGVyID0g
bG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJlcXVlc3QpKQogICAgICAgICAgICAgbV9zaGFkZXIgPSBT
dHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKGNhY2hlZFNoYWRlci5nZXQoKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGNmZGQxYTQzNjk4MGQxYjAwMjYyYzEx
OGNjMjY5ZjczYzJjYzMyMjAuLjRmYTU1OWU4ZmI4MmI1Y2QyODQ3YjNkYTAyMDc5MzZhNTE3MTU3
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI2Niw2ICsyNjYsNyBA
QCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VV
cmwpCiAgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11
dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgfQogICAgICAgICByZXF1ZXN0LnNl
dENoYXJzZXQoc2NyaXB0Q2hhcnNldCgpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3Io
ZWxlbWVudCgpKTsKIAogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAg
ICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcAppbmRleCA3Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNmNDRi
NDMzLi40YTNkY2ZjNGFjZmY4ZmFiY2M0YWE2YmQ4NzZiY2U0MjhkOGU0NGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yMjIsNiArMjIyLDcgQEAgdm9pZCBI
VE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRo
YXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cg
cHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tp
bmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBwcmlvcml0
eSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2NhY2hl
ZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0
eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcApp
bmRleCAyOWYxY2NkNDY4YmFkZDhkZTVjM2IxOWU3MmYyZDg1MmNkMzAwODkzLi4xNTBjZThhMTBh
ZmI5MmU5NjgzY2ExZWUxMDM1OTE0MmNiNGNkNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNp
bmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCkBA
IC0xOTYsNyArMTk4LDggQEAgdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6ZW1pdFJ1bGUoKQogICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSgiaW1wb3J0IiwgbV9ydWxlLmNoYXJhY3RlcnMoKSwgbV9y
dWxlLmxlbmd0aCgpKSkgewogICAgICAgICBTdHJpbmcgdmFsdWUgPSBwYXJzZUNTU1N0cmluZ09y
VVJMKG1fcnVsZVZhbHVlLmNoYXJhY3RlcnMoKSwgbV9ydWxlVmFsdWUubGVuZ3RoKCkpOwogICAg
ICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QobV9kb2N1bWVudC0+Y29tcGxldGVVUkwodmFsdWUpKTsKKyAgICAgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2RvY3VtZW50LT5j
b21wbGV0ZVVSTCh2YWx1ZSkpKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIG1fZG9jdW1lbnQpOwogICAgICAg
ICAgICAgbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cHJlbG9hZChDYWNoZWRS
ZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCwgU3RyaW5nKCksIG1fc2Nhbm5pbmdCb2R5
KTsKICAgICAgICAgfQogICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oCmluZGV4IGMzZGJiODAwZWRkOGVh
MTBhYjI0ZWIzYzEyM2I3Y2E5OGYyY2I0MjcuLmIxNmE2MjkyNWUxMDYxNWE5MjQzYzkyNGJjZWU3
YTBjYzBkMWQzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1By
ZWxvYWRTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9h
ZFNjYW5uZXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBIVE1MVG9rZW47CiBjbGFzcyBDU1NQ
cmVsb2FkU2Nhbm5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ1NTUHJlbG9hZFNjYW5u
ZXIpOwogcHVibGljOgotICAgIENTU1ByZWxvYWRTY2FubmVyKERvY3VtZW50Kik7CisgICAgZXhw
bGljaXQgQ1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQqKTsKIAogICAgIHZvaWQgcmVzZXQoKTsK
ICAgICB2b2lkIHNjYW4oY29uc3QgSFRNTFRva2VuJiwgYm9vbCBzY2FubmluZ0JvZHkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5k
ZXggMjMwMzhiZDBiY2VhMDhkOWUyNWVlY2ZjZGY1NGM0OGZjMTRiMDM3YS4uOTY1NGM4ZDhkYzBk
NmE3Y2ViY2IxNDJjYjNiMTJkOWYyYTI1ZDA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xMjcsNyArMTI3LDggQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVy
KiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IGRvY3VtZW50LT5jb21wbGV0ZVVS
TChtX3VybFRvTG9hZCwgYmFzZVVSTCk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV91cmxUb0xvYWQs
IGJhc2VVUkwpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRhZ05hbWUoKSwgZG9j
dW1lbnQpOwogICAgICAgICBpZiAobV90YWdOYW1lID09IHNjcmlwdFRhZykKICAgICAgICAgICAg
IGNhY2hlZFJlc291cmNlTG9hZGVyLT5wcmVsb2FkKENhY2hlZFJlc291cmNlOjpTY3JpcHQsIHJl
cXVlc3QsIG1fY2hhcnNldCwgc2Nhbm5pbmdCb2R5KTsKICAgICAgICAgZWxzZSBpZiAobV90YWdO
YW1lID09IGltZ1RhZyB8fCAobV90YWdOYW1lID09IGlucHV0VGFnICYmIG1faW5wdXRJc0ltYWdl
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGMxMmJlMmZmOWQ0NTU3
NGU0MWQ0ZjQ3MDhjYjk2YmI0ZDVhN2VjNGIuLmUyMjQ3ZDI1NGM3Zjg2MDllZjZlYTJhOTc3M2I1
ZjlmN2QxYjY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMTc5
LDYgKzE3OSw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSAwOwogICAgIGlmICgh
YXR0ci5pc051bGwoKSAmJiAhc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHIp
LmlzRW1wdHkoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSkpOwor
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjbGllbnQoKS0+c291cmNlRWxlbWVudCgpKTsK
IAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gY2xpZW50KCktPnNvdXJjZUVsZW1l
bnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAg
ICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBkNGNiYTA1
OTEzMTkwMGUxOTBjY2Y1OGU2ZmUwZDE2ZDhkMDc1NTU2Li44M2E1YTFjZTY3NGNjNzJjNWYxMTAw
OTZjYjM0OGFiMDgyNWU0ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJ
bWFnZShDYWNoZWRSZXNvdQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKTsKKyAgICByZXF1
ZXN0LnNldERlZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkpID8gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlcnJlZEJ5Q2xpZW50IDogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OjpOb0RlZmVyKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
SW1hZ2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJl
cXVlc3QpLmdldCgpKTsKIH0KIApAQCAtNDU4LDcgKzQ1OCw3IEBAIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
KENhY2hlCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcmVzb3VyY2UtPnNldExvYWRQcmlvcml0
eShyZXF1ZXN0LnByaW9yaXR5KCkpOwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJj
ZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKKyAg
ICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKICAgICAg
ICAgcmVzb3VyY2UtPmxvYWQodGhpcywgcmVxdWVzdC5vcHRpb25zKCkpOwogCiAgICAgICAgIC8v
IFdlIGRvbid0IHN1cHBvcnQgaW1tZWRpYXRlIGxvYWRzLCBidXQgd2UgZG8gc3VwcG9ydCBpbW1l
ZGlhdGUgZmFpbHVyZS4KQEAgLTUxMCw3ICs1MTAsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNvdXJjZShDYWNoZWRS
ZQogICAgIHJldHVybiByZXNvdXJjZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OlJldmFs
aWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9u
UG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgRGVm
ZXJPcHRpb24gZGVmZXIpIGNvbnN0CitDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9u
UG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3ko
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291cmNlLCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OkRlZmVyT3B0aW9uIGRlZmVyKSBjb25zdAogewogICAgIGlmICghZXhpc3Rp
bmdSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIExvYWQ7CkBAIC01MzksNyArNTM5LDcgQEAgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6ZGV0ZXJtaW5lUmV2YWxpZGEKIAogICAgIC8vIERvIG5vdCBsb2FkIGZyb20gY2FjaGUgaWYg
aW1hZ2VzIGFyZSBub3QgZW5hYmxlZC4gVGhlIGxvYWQgZm9yIHRoaXMgaW1hZ2Ugd2lsbCBiZSBi
bG9ja2VkCiAgICAgLy8gaW4gQ2FjaGVkSW1hZ2U6OmxvYWQuCi0gICAgaWYgKERlZmVycmVkQnlD
bGllbnQgPT0gZGVmZXIpCisgICAgaWYgKENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJyZWRC
eUNsaWVudCA9PSBkZWZlcikKICAgICAgICAgcmV0dXJuIFJlbG9hZDsKICAgICAKICAgICAvLyBE
b24ndCByZWxvYWQgcmVzb3VyY2VzIHdoaWxlIHBhc3RpbmcuCkBAIC03NjQsOCArNzY0LDggQEAg
dm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVjcmVtZW50UmVxdWVzdENvdW50KGNvbnN0IENh
Y2hlZFJlc291cmNlKiByZXMpCiAgICAgLS1tX3JlcXVlc3RDb3VudDsKICAgICBBU1NFUlQobV9y
ZXF1ZXN0Q291bnQgPiAtMSk7CiB9Ci0gICAgCi12b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpw
cmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSkKKwordm9p
ZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBl
LCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
Ym9vbCByZWZlcmVuY2VkRnJvbUJvZHkpCiB7CiAgICAgLy8gRklYTUU6IFJpcCB0aGlzIG91dCB3
aGVuIHdlIGFyZSBzdXJlIGl0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkgKGV2ZW4gZm9yIG1vYmls
ZSkuCiAgICAgVU5VU0VEX1BBUkFNKHJlZmVyZW5jZWRGcm9tQm9keSk7CkBAIC03ODAsMTIgKzc4
MCwxMiBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcgogICAgICAgICBpZiAoIWhhc1JlbmRlcmlu
ZyAmJiAhY2FuQmxvY2tQYXJzZXIpIHsKICAgICAgICAgICAgIC8vIERvbid0IHByZWxvYWQgc3Vi
cmVzb3VyY2VzIHRoYXQgY2FuJ3QgYmxvY2sgdGhlIHBhcnNlciBiZWZvcmUgd2UgaGF2ZSBzb21l
dGhpbmcgdG8gZHJhdy4KICAgICAgICAgICAgIC8vIFRoaXMgaGVscHMgcHJldmVudCBwcmVsb2Fk
cyBmcm9tIGRlbGF5aW5nIGZpcnN0IGRpc3BsYXkgd2hlbiBiYW5kd2lkdGggaXMgbGltaXRlZC4K
LSAgICAgICAgICAgIFBlbmRpbmdQcmVsb2FkIHBlbmRpbmdQcmVsb2FkID0geyB0eXBlLCByZXF1
ZXN0LCBjaGFyc2V0IH07CisgICAgICAgICAgICBQZW5kaW5nUHJlbG9hZCBwZW5kaW5nUHJlbG9h
ZCA9IHsgdHlwZSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgY2hhcnNldCB9OwogICAgICAg
ICAgICAgbV9wZW5kaW5nUHJlbG9hZHMuYXBwZW5kKHBlbmRpbmdQcmVsb2FkKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICByZXF1ZXN0UHJlbG9hZCh0eXBlLCBy
ZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICByZXF1ZXN0UHJlbG9hZCh0eXBlLCByZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKSwgY2hhcnNldCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNoZWNrRm9yUGVuZGluZ1ByZWxvYWRzKCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IGUyZTJhZTQ5NzI1YzU5
MTJlYzFjNTA3ZmI1ODc5ODQzNDg1YjZhOTUuLmM1YjIzNjUwZGVhMzFiMmUwZDFjOWRiMTJhZmU0
M2MxNzgzMGY3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0yNiw5ICsyNiwxMCBAQAogI2lmbmRlZiBDYWNoZWRSZXNv
dXJjZUxvYWRlcl9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlTG9hZGVyX2gKIAorI2luY2x1ZGUg
IkNhY2hlUG9saWN5LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgpAQCAtNDQs
NyArNDUsNiBAQCBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBj
bGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOwotY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVy
OwogY2xhc3MgQ2FjaGVkVGV4dFRyYWNrOwpAQCAtNjksNyArNjksNiBAQCBmcmllbmQgY2xhc3Mg
SW1hZ2VMb2FkZXI7CiBmcmllbmQgY2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVz
c29yOwogCiBwdWJsaWM6Ci0gICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVk
QnlDbGllbnQgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IENhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKIApAQCAtMTMxLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdDsKICAgICB2b2lkIGNs
ZWFyUHJlbG9hZHMoKTsKICAgICB2b2lkIGNsZWFyUGVuZGluZ1ByZWxvYWRzKCk7Ci0gICAgdm9p
ZCBwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KTsKKyAgICB2b2lkIHByZWxv
YWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJvbUJvZHkpOwogICAgIHZvaWQgY2hlY2tG
b3JQZW5kaW5nUHJlbG9hZHMoKTsKICAgICB2b2lkIHByaW50UHJlbG9hZFN0YXRzKCk7CiAgICAg
Ym9vbCBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJiwgYm9vbCBm
b3JQcmVsb2FkID0gZmFsc2UpOwpAQCAtMTQ5LDcgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKIAogICAgIGVudW0gUmV2YWxpZGF0aW9uUG9saWN5IHsg
VXNlLCBSZXZhbGlkYXRlLCBSZWxvYWQsIExvYWQgfTsKLSAgICBSZXZhbGlkYXRpb25Qb2xpY3kg
ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291
cmNlLCBEZWZlck9wdGlvbikgY29uc3Q7CisgICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWlu
ZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlck9wdGlvbikgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBu
b3RpZnlMb2FkZWRGcm9tTWVtb3J5Q2FjaGUoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBib29sIGNo
ZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCmluZGV4IDZhZGQzOWI5NmNhY2Y0ZGViM2I0ZjM4MjFjZWZiNjI1OGM1ZWM5
ZjIuLmY4N2EwNDBjMGFhNGYzNjlkYTM2NzlhNDcyNDA5ODRmNDkwZTZiNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3Bw
CkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKQEAgLTM0LDcgKzM4LDcgQEAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQogICAgICwgbV9wcmlvcml0eShw
cmlvcml0eSkKICAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIoQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCisgICAgLCBtX2RlZmVyKE5vRGVmZXIpCiB7CiB9CiAK
QEAgLTQzLDcgKzQ3LDcgQEAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAsIG1fb3B0aW9u
cyhvcHRpb25zKQogICAgICwgbV9wcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2
ZWQpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCi0gICAgLCBtX2RlZmVyKENhY2hlZFJlc291
cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwgbV9kZWZlcihOb0RlZmVyKQogewogfQogCkBAIC01
Miw4ICs1Niw0OCBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9vcHRpb25zKENh
Y2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCiAgICAg
LCBtX3ByaW9yaXR5KHByaW9yaXR5KQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwg
bV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKKyAgICAsIG1fZGVmZXIoTm9E
ZWZlcikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp+Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KCkKK3sKK30KKwordm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcihQ
YXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCiB7CisgICAgQVNTRVJUKCFtX2luaXRpYXRvckVs
ZW1lbnQgJiYgIW1faW5pdGlhdG9yRG9jdW1lbnQpOworICAgIG1faW5pdGlhdG9yRWxlbWVudCA9
IGVsZW1lbnQ7CiB9CiAKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3Io
QXRvbWljU3RyaW5nIG5hbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50KQoreworICAg
IEFTU0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRpYXRvckRvY3VtZW50KTsKKyAg
ICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOworICAgIG1faW5pdGlhdG9yRG9jdW1lbnQgPSBkb2N1
bWVudDsKIH0KKworY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUoKSBjb25zdAoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAg
ICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFtZSgpOworICAgIGlmICghbV9p
bml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsK
KworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwgKCJy
ZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1
cm4gZGVmYXVsdE5hbWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnQ+IENhY2hlZFJlc291cmNl
UmVxdWVzdDo6aW5pdGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1l
bnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAg
cmV0dXJuIG1faW5pdGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gbV9p
bml0aWF0b3JFbGVtZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXgg
Y2IwNDNkZmUzOWZlNGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJmNC4uNzRkODM4YjMzM2UxZWY5
MTJjM2Y0ZGFmNmZhMjA0OTg4Y2E3MTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMjYsMjcgKzI2LDQxIEBACiAj
aWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlUmVx
dWVzdF9oCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZFByaW9yaXR5LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFJlc291cmNl
UmVxdWVzdCB7CiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVy
cmVkQnlDbGllbnQgfTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwogICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIH5DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsg
fQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsg
fQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0
ID0gY2hhcnNldDsgfQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQog
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9wcmlv
cml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yUHJlbG9h
ZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsgbV9mb3JQcmVs
b2FkID0gZm9yUHJlbG9hZDsgfQotICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlv
biBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAgICB2b2lkIHNldERlZmVyKENh
Y2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7
IH0KKyAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAg
ICB2b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQor
ICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0
SW5pdGlhdG9yKEF0b21pY1N0cmluZyBuYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50Pik7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0
cjxEb2N1bWVudD4gaW5pdGlhdG9yRG9jdW1lbnQoKTsKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGluaXRpYXRvckVsZW1lbnQoKTsKIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9y
ZXNvdXJjZVJlcXVlc3Q7CkBAIC01NCw3ICs2OCwxMCBAQCBwcml2YXRlOgogICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlv
cml0eTsKICAgICBib29sIG1fZm9yUHJlbG9hZDsKLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
RGVmZXJPcHRpb24gbV9kZWZlcjsKKyAgICBEZWZlck9wdGlvbiBtX2RlZmVyOworICAgIFJlZlB0
cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7CisgICAgUmVmUHRyPERvY3VtZW50PiBtX2lu
aXRpYXRvckRvY3VtZW50OworICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDYzMTQ1YzJjZTIxNGRlMzFmZDUyNmMzZTQ3YzM3YzMzYzZjODY3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpCisgICAgOiBjc3MoImNzcyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCisgICAgLCBpY29uKCJpY29uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM1NGQ2ODc0MDFhNzMxMWI4OTM2
YjNkOTIxMjRlYzRkY2NjZGE2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnNfaAorI2RlZmlu
ZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzX2gKKworI2luY2x1ZGUgIlRocmVhZEds
b2JhbERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQXRvbWljU3RyaW5nIGNz
czsKKyAgICBBdG9taWNTdHJpbmcgaWNvbjsKK3ByaXZhdGU6CisgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpOworICAgIGZyaWVuZCBjbGFzcyBUaHJlYWRHbG9iYWxEYXRhOwor
fTsKKworaW5saW5lIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKQoreworICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCku
Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNw
cAppbmRleCA4YzlkMGNlY2JmY2QxMmI3ZWFhMWM0YThjODcwZjE2NDI1NTdmNzQ1Li5lMDcxMDhl
NGNkMmRlNGNkZjhiZTgwODZmZDFkZDYyMDlmODQ0NDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uTG9hZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hl
ZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC02Niw2ICs2Nyw3IEBAIHZvaWQgSWNv
bkxvYWRlcjo6c3RhcnRMb2FkaW5nKCkKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVl
c3QoKS5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKICNl
bmRpZgogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFByaW9yaXR5KFJl
c291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuaWNvbiwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAK
ICAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAppbmRleCBkYTg0
NmY4ZGJjMmI2ZTFlZjM3MDNmZDgzZDg2YTBlNTQ4MWE5MjBjLi5iYzFkNjVlMjY2MjM1ZmVhMGU1
ZDFlNjBjOGM2ZGExOTMzNDJhMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJl
YWRHbG9iYWxEYXRhLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgpAQCAt
NTksNyArNjAsOCBAQCBUaHJlYWRHbG9iYWxEYXRhKiBUaHJlYWRHbG9iYWxEYXRhOjpzdGF0aWNE
YXRhOwogI2VuZGlmCiAKIFRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEoKQotICAg
IDogbV9ldmVudE5hbWVzKGFkb3B0UHRyKG5ldyBFdmVudE5hbWVzKSkKKyAgICA6IG1fY2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyhhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycykpCisgICAgLCBtX2V2ZW50TmFtZXMoYWRvcHRQdHIobmV3IEV2ZW50TmFt
ZXMpKQogICAgICwgbV90aHJlYWRUaW1lcnMoYWRvcHRQdHIobmV3IFRocmVhZFRpbWVycykpCiAg
ICAgLCBtX3htbFR5cGVSZWdFeHAoYWRvcHRQdHIobmV3IFhNTE1JTUVUeXBlUmVnRXhwKSkKICNp
Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgK
aW5kZXggNDJmMDVhZmUzODkzZjczZDlkN2VmZjQ4NTJiOWVmMThmZDlhZDY2Mi4uN2UwNTQyNTll
MGNlZjg3NmIxN2FlZThhYTQyMDEyMmVmODQ5YzI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtNDEsNiArNDEsNyBAQCB1c2luZyBXVEY6OlRocmVh
ZFNwZWNpZmljOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnM7CiAgICAgY2xhc3MgRXZlbnROYW1lczsKICAgICBjbGFzcyBUaHJl
YWRMb2NhbEluc3BlY3RvckNvdW50ZXJzOwogICAgIGNsYXNzIFRocmVhZFRpbWVyczsKQEAgLTU2
LDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+VGhyZWFkR2xvYmFsRGF0
YSgpOwogICAgICAgICB2b2lkIGRlc3Ryb3koKTsgLy8gY2FsbGVkIG9uIHdvcmtlcnMgdG8gY2xl
YW4gdXAgdGhlIFRocmVhZEdsb2JhbERhdGEgYmVmb3JlIHRoZSB0aHJlYWQgZXhpdHMuCiAKKyAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyYgY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycygpIHsgcmV0dXJuICptX2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnM7IH0KICAgICAgICAgRXZlbnROYW1lcyYgZXZlbnROYW1lcygpIHsgcmV0dXJuICptX2V2ZW50
TmFtZXM7IH0KICAgICAgICAgVGhyZWFkVGltZXJzJiB0aHJlYWRUaW1lcnMoKSB7IHJldHVybiAq
bV90aHJlYWRUaW1lcnM7IH0KICAgICAgICAgWE1MTUlNRVR5cGVSZWdFeHAmIHhtbFR5cGVSZWdF
eHAoKSB7IHJldHVybiAqbV94bWxUeXBlUmVnRXhwOyB9CkBAIC03Myw2ICs3NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgT3duUHRyPENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM+IG1fY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9yczsKICAgICAgICAgT3duUHRyPEV2ZW50TmFtZXM+IG1fZXZlbnROYW1lczsKICAgICAg
ICAgT3duUHRyPFRocmVhZFRpbWVycz4gbV90aHJlYWRUaW1lcnM7CiAgICAgICAgIE93blB0cjxY
TUxNSU1FVHlwZVJlZ0V4cD4gbV94bWxUeXBlUmVnRXhwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKaW5kZXggODdmZjBkNjgxMjc0NDYwZWE3OTc4YWZlODdmYTI3Mzk2
ODg1N2ViYS4uZWFmZWExYTg2YTEyMjJlZDgzZDE0YTUzZGFiYmNkYmYyMjM0ZmI3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC04Miw2ICs4Miw3IEBAIHZv
aWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKIHZvaWQgU1ZH
RkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKIHsKICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qob3duZXJEb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChocmVmKCkpKSk7CisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAg
bV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVl
c3RJbWFnZShyZXF1ZXN0KTsKIAogICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCBjMzRmZWQ4N2Q0N2VmOGZm
MWYxYTY1ZTI3YWY1ZjZjZGQzNzQ4YThiLi4zYjJkNDk1Yjk2NTA5ODAyMTcyMjczZjc1MjJkZTQx
YzU0YzcwZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50
LmNwcApAQCAtOTgsNiArOTgsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZv
bnQoKQogICAgIGlmICghaHJlZi5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKKyAgICAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkg
ewogICAgICAgICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3MjQ0YTZj
NjgxNjU0NzQ3Ni4uZjFlMWMwMzI0MDUzNDhjMzU5MGMzN2JlNGJiNGNhMjAyZWUwNjVkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjU2LDYgKzI1Niw3IEBAIHZvaWQg
U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKICAgICAgICAgICAgIEtVUkwgdXJsID0gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwo
aHJlZigpKTsKICAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsK
ICAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QodXJsLnN0cmluZygpKSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0
b3IodGhpcyk7CiAgICAgICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVudCA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAg
ICAgICAgICAgICAgICBpZiAobV9jYWNoZWREb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAg
bV9jYWNoZWREb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173917</attachid>
            <date>2012-11-13 10:01:58 -0800</date>
            <delta_ts>2012-11-14 05:22:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121113185958.patch</filename>
            <type>text/plain</type>
            <size>49593</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY5MWJjOWU0OGFiNmUx
OTBkODUzM2I5MDk3YmQ5Y2Y1YzMxZjdhYi4uOTc4ZGM1YzAzMWZjYjE4ZjA1NmE0MzM2MWMyOWE5
N2U5MDQ1YTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxMi0xMS0xMyAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGluaXRpYXRv
ciB0byBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE5MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3RpdmF0aW9uOiBDaHJvbWl1bSBuZWVkcyB0byBrbm93IHdo
aWNoIGVsZW1lbnRzIHJlcXVlc3QgYQorICAgICAgICByZXNvdXJjZSAoc3VjaCBhcyBhbiBpbWFn
ZSBvciBhIHNjcmlwdCkgKGJ1ZyA5Mjc2MSkuIEluIGFkZGl0aW9uLAorICAgICAgICBmb3IgZXhw
b3NpbmcgcmVzb3VyY2UgdGltaW5nIGluZm9ybWF0aW9uIChidWcgODQ4ODMpIHdlIG5lZWQgdG8K
KyAgICAgICAgc3RvcmUgdGhlIGluaXRpYXRvciwgYW5kIHRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
dG93YXJkcyBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHM6IE5vIHZpc2libGUgY2hhbmdlIGlu
IGJlaGF2aW9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmNhY2hlZEltYWdlKToKKyAgICAgICAgKiBjc3Mv
Q1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNy
Y1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6Cisg
ICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENTU0ltYWdlVmFsdWUpOgorICAgICAgICAqIGNz
cy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Omxv
YWRQZW5kaW5nSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCk6CisgICAg
ICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAgICogY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZh
bHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oOgorICAgICAgICAoQ1NTUHJl
bG9hZFNjYW5uZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJlbG9hZCk6CisgICAgICAgICog
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1
cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0
ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6fkNhY2hlZFJlc291cmNlUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRv
cik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JE
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRp
YXRvckVsZW1lbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdDo6ZGVmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpzZXREZWZlcik6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERh
dGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFs
RGF0YTo6Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgIChUaHJlYWRH
bG9iYWxEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKToKKyAg
ICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorCiAyMDEyLTExLTEzICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDM5MS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggZGIwZmE0OTkyM2IzZjNkZGQ3MzM2YmI4ZmU4MzdmODI2OWI3
ZDU1NC4uMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhiZTUxOTVmOGFjMzk2NDhhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE2ODEsNiArMTY4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwCiAgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKICAgICBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDI0NGMwZjc0NTgwZDdmMTU5
YzBlMDI1ZTg4NGViNWMwMTY1ODQzMzUuLmVkYmIxNTU2YzFhN2Y3NzZiZjYzNjFjZjIxZjRmMDBj
OGM3MDFlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzgyNCw2ICszODI0
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1ZGQ4MWVkMmY4Nzk3OTAxOTJkZjdi
OTE4MWJlZjczY2QzOGRjNmZkLi4wOThmMGMyNmYwMzg3YzFiOWI4MWQ3OGQ4ZjYxZGM0OWVmMGVl
MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgyMiw2ICs4MjIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBs
b2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAgXAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIFwK
ICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcCBcCkBAIC0xOTU0LDYgKzE5NTUsOCBAQCBIRUFERVJTICs9IFwKICAg
ICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggXAogICAgIGxvYWRlci9Dcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgg
XAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAog
ICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmggXAogICAgIGxvYWRlci9Gb3JtU3RhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggNjk0ZGZkMDU5NzU2YjUzNWQzOTViZGYyMGE4MGE0NGI4MGRlNGE2NC4uYWU5MDZiMDlkOTU1
MTc4OGI2NDkyNmFhNjJlOGQ2YTMxYWVhYmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA5LDYg
KzIwOSw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxl
LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAorICAg
ICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgn
LAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAtMzAyNiw2ICszMDI3LDcgQEAKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwJywKICAgICAgICAg
ICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwJywKICAgICAgICAgICAg
ICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDc3Yzg1ZTUxMjM0MDFlN2U4ODNiNGVkMDJkYjk2MTU0Y2I5YzhhNTMuLjRl
YWMzMmMzMmUxNGFiMDM3MTQ1NDhkYWI5ZGFiOGU2YTIxZWJmNDUgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODE3MCw2ICsyODE3MCwxNCBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNh
Y2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRT
Y3JpcHQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI1MDFlOWI3OWY3OTA1YzM3Mzg4
N2Q0M2U2NjZmZmZiZWY4NjhkNzIuLmRiNGY3MGZjNTNiZDc0MWE4MWY1MzFjZTc2M2ZhNDUxMjRl
N2IzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE4MzksNiArMTgzOSw4IEBACiAJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0Ix
MCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUZFQTg2OTA5
ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87
IH07CiAJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBE
NDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwICovOyB9OwogCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIg
LyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4
dDNELmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29u
dGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICov
OyB9OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5jcHAgKi87IH07CkBAIC05MDc2LDYgKzkwNzgsOCBAQAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4
QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4
NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0
ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODk0QTk2Q0NF
RTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyog
R3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRENHLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8q
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI1OSw2ICsxOTI2Myw4IEBACiAJCQkJQkNCMTZDMTEw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJNTA4MUUz
REYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCiAJCQkJ
NTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAor
CQkJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcCAvKiwKKwkJCQk2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIC8qLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2Fj
aGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNTcwLDYgKzIyNTc2LDcgQEAKIAkJCQlFNDdCNEJFODBF
NzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZD
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDQjE2QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE2Niw2ICsyNjE3Myw3IEBACiAJCQkJ
RTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZDNjM4ODk2
QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDQjE2QzIzMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3Jp
cHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJD
MjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMGZhYTgxM2IxZWJlMTI3ZjI1YzNi
NmM1NjQ3NTc2YjU1N2JmZjRiMi4uZWVmMGE0NzhiZGEwYjY5YTQ3MmQwN2I4YzgyNGY4MzM5ZDlm
YjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAt
MTM1LDcgKzEzNSw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0N1cnNvckltYWdlVmFsdWU6OmNh
Y2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiAgICAgaWYgKGlzU1ZHQ3Vy
c29ySWRlbnRpZmllcih1cmwoKSkgJiYgbG9hZGVyICYmIGxvYWRlci0+ZG9jdW1lbnQoKSkgewog
ICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGZhaWwgaWYgdGhlIDxjdXJzb3I+IGVsZW1lbnQg
aXMgaW4gYSBzaGFkb3cgRE9NIChidWcgNTk4MjcpCiAgICAgICAgIGlmIChTVkdDdXJzb3JFbGVt
ZW50KiBjdXJzb3JFbGVtZW50ID0gcmVzb3VyY2VSZWZlcmVuY2VkQnlDdXJzb3JFbGVtZW50KHVy
bCgpLCBsb2FkZXItPmRvY3VtZW50KCkpKQotICAgICAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFs
dWU6OmNhY2hlZEltYWdlKGxvYWRlciwgY3Vyc29yRWxlbWVudC0+aHJlZigpKTsKKyAgICAgICAg
ICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIGN1cnNvckVsZW1l
bnQtPmhyZWYoKSwgY3Vyc29yRWxlbWVudCk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAzNjkwNzg5MzM2ZDBiODQ0ODE1
MjczYjAxMzIyNWY2OWRhYWQ2ODdmLi4wNzc4MmFjMjE5ZDI2MTU0MzQ2NmI1OTNiOGE2OWY3NjI2
NTkyZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUg
Ik5vZGUuaCIKQEAgLTk3LDYgKzk4LDcgQEAgQ2FjaGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1
ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFtX2NhY2hlZEZv
bnQpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSkpOworICAgICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBkb2N1
bWVudCk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICB9CiAgICAgcmV0dXJuIG1fY2FjaGVk
Rm9udC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCBm
N2Q0MDFmNWNmNjc0OTAyMTg4NjAzZDIwOGRlMmQ2M2I5YzZjYWUwLi5lYmM3NGM3MTdkZDRjMjQy
YTMzMjM1YmMxNGZlNWFhOThjNTkzYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTdHls
ZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMTAsNiArMTExLDcgQEAgU3R5bGVDYWNoZWRJbWFnZVNl
dCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGxvYWQKICAgICAgICAgLy8gYW5kIGFueSBDU1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjk4CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGlt
YWdlID0gYmVzdEltYWdlRm9yU2NhbGVGYWN0b3IoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIGRvY3VtZW50KTsKICAgICAgICAg
aWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRl
ci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKSB7CiAgICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5
bGVDYWNoZWRJbWFnZVNldDo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZh
Y3RvciwgdGhpcyk7CiAgICAgICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA2YjczZDQ2MzFhMGYwMDI0ZjJl
YzZmM2M2NDg1ODE2NDk4NDEwNGY3Li45NTdhMjIxM2NkZDFkMmYxMzNjYzA3Y2M0MzI5MDFiYmVh
NmUzYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC0yNyw3ICsyNyw5
IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUg
IlN0eWxlQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJTdHlsZVBlbmRpbmdJbWFnZS5oIgpAQCAt
NjksMTQgKzcxLDE0IEBAIFN0eWxlSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZE9yUGVuZGlu
Z0ltYWdlKCkKICAgICByZXR1cm4gbV9pbWFnZS5nZXQoKTsKIH0KIAotU3R5bGVDYWNoZWRJbWFn
ZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKK1N0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJl
c291cmNlTG9hZGVyKiBsb2FkZXIsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpCiB7CiAgICAg
aWYgKGlzQ3Vyc29ySW1hZ2VWYWx1ZSgpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NT
Q3Vyc29ySW1hZ2VWYWx1ZSo+KHRoaXMpLT5jYWNoZWRJbWFnZShsb2FkZXIpOwotICAgIHJldHVy
biBjYWNoZWRJbWFnZShsb2FkZXIsIG1fdXJsKTsKKyAgICByZXR1cm4gY2FjaGVkSW1hZ2UobG9h
ZGVyLCBtX3VybCwgaW5pdGlhdG9yRWxlbWVudCk7CiB9CiAKLVN0eWxlQ2FjaGVkSW1hZ2UqIENT
U0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNv
bnN0IFN0cmluZyYgdXJsKQorU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVk
SW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgU3RyaW5nJiB1cmwsIEVs
ZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGxvYWRlcik7CiAKQEAgLTg0
LDYgKzg2LDEwIEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgICAgIG1fYWNjZXNzZWRJ
bWFnZSA9IHRydWU7CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSkpOworICAg
ICAgICBpZiAoaW5pdGlhdG9yRWxlbWVudCkKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9yKGluaXRpYXRvckVsZW1lbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2Fk
ZXItPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
SW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCiAgICAg
ICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJbWFnZTo6Y3JlYXRlKGNhY2hlZEltYWdlLmdl
dCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAppbmRleCA4YzgyZjJjNjdk
YjQzM2E3NTE3MzNjOTY3MWRlOWI5MTUxZTdhOThjLi41Y2Y1YTFmNTlkNTY2MmFmOTE3NjAwYjhj
ZDIzZjdjMjc5MTA1MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKQEAgLTI3LDYg
KzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU3R5bGVDYWNoZWRJbWFnZTsKIGNsYXNzIFN0eWxl
SW1hZ2U7CiAKQEAgLTM2LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENTU0ltYWdlVmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgU3R5bGVJbWFnZSogaW1h
Z2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NJbWFnZVZhbHVlKHVybCwgaW1hZ2UpKTsgfQog
ICAgIH5DU1NJbWFnZVZhbHVlKCk7CiAKLSAgICBTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFn
ZShDYWNoZWRSZXNvdXJjZUxvYWRlciopOworICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgRWxlbWVudCogaW5pdGlhdG9yRWxlbWVudCA9IDAp
OwogICAgIC8vIFJldHVybnMgYSBTdHlsZUNhY2hlZEltYWdlIGlmIHRoZSBpbWFnZSBpcyBjYWNo
ZWQgYWxyZWFkeSwgb3RoZXJ3aXNlIGEgU3R5bGVQZW5kaW5nSW1hZ2UuCiAgICAgU3R5bGVJbWFn
ZSogY2FjaGVkT3JQZW5kaW5nSW1hZ2UoKTsKIApAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiBw
cm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VWYWx1ZShDbGFzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJs
KTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9h
ZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGlu
aXRpYXRvckVsZW1lbnQgPSAwKTsKICAgICBTdHJpbmcgY2FjaGVkSW1hZ2VVUkwoKTsKICAgICB2
b2lkIGNsZWFyQ2FjaGVkSW1hZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IDEyYzYwNDY5MTdmZDAzOTM0YmI0OTMxNzRkZmVjMTZmZDcyMGVmMTEuLjk5ZTljNzAw
ZjNjOGI0ZmE0NTQ2YzczNTIzMGU1Y2FhMjRiMzg5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTUwNTMsNyArNTA1Myw3IEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFnZShTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGlu
CiAKICAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZhbHVlKCkpIHsKICAgICAgICAgQ1NT
SW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpOwot
ICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIsIG1fZWxlbWVudCk7CiAgICAgfQogCiAgICAgaWYgKHBlbmRpbmdJbWFnZS0+Y3Nz
SW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQu
Y3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUuLjMxNDZl
YzNjZDBhNDBkOWRhN2E3YWZkY2VhMjFiNzUzZTZiMWU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNyw2ICsx
MTgsNyBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQoKQogICAgIH0K
IAogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNV
UkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CisgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwog
ICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKICAgICAgICAg
bV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxl
U2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCmluZGV4IDY3ZTg0ZTNjOWI5ODNhYmIwODI0MTIwNzU5
ZTM4ODgwNTNjZmM4YmEuLjZmZTk0OGQ0YTdlNTE2YzAzNjA4MzdkNDM0YTZlMjdhYjA0NjQ5NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
IApAQCAtNTQsNiArNTUsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgICAgICBtX2xv
YWRSZXF1ZXN0ZWQgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJs
KSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50KCkpOwogICAgICAgICBtX2RvY3VtZW50
ID0gbG9hZGVyLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAppbmRleCBmYTA0MTkwYzNkYzhl
M2FkYjQzMWFiMDNhOGZkMWExZTE4MDA0YmE5Li4zNTE4N2Y4MjA0MGUxNjAzMzY5ZDZhMmRiMmNl
NWU4ODYxYzM5YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1
ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCkBAIC02MSw2ICs2Miw3IEBAIFN0eWxlQ2FjaGVkU2hh
ZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9h
ZGVyKiBsb2FkCiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0cnVlOwogCiAgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50
KCkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNo
ZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBt
X3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggY2ZkZDFhNDM2OTgw
ZDFiMDAyNjJjMTE4Y2MyNjlmNzNjMmNjMzIyMC4uNGZhNTU5ZThmYjgyYjVjZDI4NDdiM2RhMDIw
NzkzNmE1MTcxNTcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjY2
LDYgKzI2Niw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVybCkKICAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9s
KHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAgICAgICAg
IHJlcXVlc3Quc2V0Q2hhcnNldChzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcihlbGVtZW50KCkpOwogCiAgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVt
ZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJl
cXVlc3QpOwogICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUy
YzYyMDliM2Y0NGI0MzMuLjRhM2RjZmM0YWNmZjhmYWJjYzRhYTZiZDg3NmJjZTQyOGQ4ZTQ0ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTIyMiw2ICsyMjIs
NyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIC8vIExvYWQgc3R5
bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgdGhlIHJlbmRlcmluZyBpbW1lZGlhdGVs
eSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3Jp
dHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCA6IFJlc291cmNl
TG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSksIGNoYXJz
ZXQsIHByaW9yaXR5KTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2Nh
Y2hlZFNoZWV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJl
bG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNj
YW5uZXIuY3BwCmluZGV4IDI5ZjFjY2Q0NjhiYWRkOGRlNWMzYjE5ZTcyZjJkODUyY2QzMDA4OTMu
LjE1MGNlOGExMGFmYjkyZTk2ODNjYTFlZTEwMzU5MTQyY2I0Y2Q2ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTMwLDYgKzMw
LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1M
VG9rZW4uaCIKQEAgLTE5Niw3ICsxOTgsOCBAQCB2b2lkIENTU1ByZWxvYWRTY2FubmVyOjplbWl0
UnVsZSgpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCJpbXBvcnQiLCBtX3J1bGUuY2hhcmFj
dGVycygpLCBtX3J1bGUubGVuZ3RoKCkpKSB7CiAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHBhcnNl
Q1NTU3RyaW5nT3JVUkwobV9ydWxlVmFsdWUuY2hhcmFjdGVycygpLCBtX3J1bGVWYWx1ZS5sZW5n
dGgoKSk7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChtX2RvY3VtZW50LT5jb21wbGV0ZVVSTCh2YWx1ZSkpOworICAg
ICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1f
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHZhbHVlKSkpOworICAgICAgICAgICAgcmVxdWVzdC5zZXRJ
bml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgbV9kb2N1bWVu
dCk7CiAgICAgICAgICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5wcmVs
b2FkKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgbV9z
Y2FubmluZ0JvZHkpOwogICAgICAgICB9CiAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmgKaW5kZXggYzNk
YmI4MDBlZGQ4ZWExMGFiMjRlYjNjMTIzYjdjYTk4ZjJjYjQyNy4uYjE2YTYyOTI1ZTEwNjE1YTky
NDNjOTI0YmNlZTdhMGNjMGQxZDMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9DU1NQcmVsb2FkU2Nhbm5lci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEhUTUxUb2tlbjsK
IGNsYXNzIENTU1ByZWxvYWRTY2FubmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDU1NQ
cmVsb2FkU2Nhbm5lcik7CiBwdWJsaWM6Ci0gICAgQ1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQq
KTsKKyAgICBleHBsaWNpdCBDU1NQcmVsb2FkU2Nhbm5lcihEb2N1bWVudCopOwogCiAgICAgdm9p
ZCByZXNldCgpOwogICAgIHZvaWQgc2Nhbihjb25zdCBIVE1MVG9rZW4mLCBib29sIHNjYW5uaW5n
Qm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2Fu
bmVyLmNwcAppbmRleCAyMzAzOGJkMGJjZWEwOGQ5ZTI1ZWVjZmNkZjU0YzQ4ZmMxNGIwMzdhLi45
NjU0YzhkOGRjMGQ2YTdjZWJjYjE0MmNiM2IxMmQ5ZjJhMjVkMDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTEyNyw3ICsx
MjcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZG9jdW1lbnQt
PmNvbXBsZXRlVVJMKG1fdXJsVG9Mb2FkLCBiYXNlVVJMKTsKKyAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCht
X3VybFRvTG9hZCwgYmFzZVVSTCkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGFn
TmFtZSgpLCBkb2N1bWVudCk7CiAgICAgICAgIGlmIChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnKQog
ICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6
OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBzY2FubmluZ0JvZHkpOwogICAgICAgICBlbHNl
IGlmIChtX3RhZ05hbWUgPT0gaW1nVGFnIHx8IChtX3RhZ05hbWUgPT0gaW5wdXRUYWcgJiYgbV9p
bnB1dElzSW1hZ2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzEy
YmUyZmY5ZDQ1NTc0ZTQxZDRmNDcwOGNiOTZiYjRkNWE3ZWM0Yi4uZTIyNDdkMjU0YzdmODYwOWVm
NmVhMmE5NzczYjVmOWY3ZDFiNjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwCkBAIC0xNzksNiArMTc5LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBuZXdJbWFnZSA9IDA7
CiAgICAgaWYgKCFhdHRyLmlzTnVsbCgpICYmICFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxT
cGFjZXMoYXR0cikuaXNFbXB0eSgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkko
YXR0cikpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNsaWVudCgpLT5zb3VyY2VF
bGVtZW50KCkpOwogCiAgICAgICAgIFN0cmluZyBjcm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+
c291cmNlRWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5B
dHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGQ0Y2JhMDU5MTMxOTAwZTE5MGNjZjU4ZTZmZTBkMTZkOGQwNzU1NTYuLjgzYTVhMWNlNjc0
Y2M3MmM1ZjExMDA5NmNiMzQ4YWIwODI1ZTRkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMTY0LDcgKzE2NCw3
IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQogICAgIH0KLSAgICByZXF1ZXN0LnNldERlZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8gRGVmZXJyZWRCeUNsaWVudCA6IE5vRGVmZXIp
OworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSkgPyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGll
bnQgOiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5vRGVmZXIpOwogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VS
ZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCkBAIC00NTgsNyArNDU4LDcgQEAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICByZXNvdXJjZS0+c2V0
TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7Ci0gICAgaWYgKChwb2xpY3kgIT0gVXNl
IHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IHJlcXVlc3QuZGVm
ZXIoKSkgeworICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xv
YWQoKSkgJiYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIo
KSkgewogICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAK
ICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBz
dXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgpAQCAtNTEwLDcgKzUxMCw3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291
cmNlKENhY2hlZFJlCiAgICAgcmV0dXJuIHJlc291cmNlOwogfQogCi1DYWNoZWRSZXNvdXJjZUxv
YWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVS
ZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBib29sIGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jl
c291cmNlLCBEZWZlck9wdGlvbiBkZWZlcikgY29uc3QKK0NhY2hlZFJlc291cmNlTG9hZGVyOjpS
ZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRh
dGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2Us
IENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJPcHRpb24gZGVmZXIpIGNvbnN0CiB7CiAgICAg
aWYgKCFleGlzdGluZ1Jlc291cmNlKQogICAgICAgICByZXR1cm4gTG9hZDsKQEAgLTUzOSw3ICs1
MzksNyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogCiAgICAgLy8gRG8gbm90IGxvYWQgZnJv
bSBjYWNoZSBpZiBpbWFnZXMgYXJlIG5vdCBlbmFibGVkLiBUaGUgbG9hZCBmb3IgdGhpcyBpbWFn
ZSB3aWxsIGJlIGJsb2NrZWQKICAgICAvLyBpbiBDYWNoZWRJbWFnZTo6bG9hZC4KLSAgICBpZiAo
RGVmZXJyZWRCeUNsaWVudCA9PSBkZWZlcikKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpEZWZlcnJlZEJ5Q2xpZW50ID09IGRlZmVyKQogICAgICAgICByZXR1cm4gUmVsb2FkOwogICAg
IAogICAgIC8vIERvbid0IHJlbG9hZCByZXNvdXJjZXMgd2hpbGUgcGFzdGluZy4KQEAgLTc2NCw4
ICs3NjQsOCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWNyZW1lbnRSZXF1ZXN0Q291
bnQoY29uc3QgQ2FjaGVkUmVzb3VyY2UqIHJlcykKICAgICAtLW1fcmVxdWVzdENvdW50OwogICAg
IEFTU0VSVChtX3JlcXVlc3RDb3VudCA+IC0xKTsKIH0KLSAgICAKLXZvaWQgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21C
b2R5KQorCit2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSkKIHsKICAgICAvLyBGSVhNRTogUmlw
IHRoaXMgb3V0IHdoZW4gd2UgYXJlIHN1cmUgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSAoZXZl
biBmb3IgbW9iaWxlKS4KICAgICBVTlVTRURfUEFSQU0ocmVmZXJlbmNlZEZyb21Cb2R5KTsKQEAg
LTc4MCwxMiArNzgwLDEyIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByCiAgICAgICAgIGlmICgh
aGFzUmVuZGVyaW5nICYmICFjYW5CbG9ja1BhcnNlcikgewogICAgICAgICAgICAgLy8gRG9uJ3Qg
cHJlbG9hZCBzdWJyZXNvdXJjZXMgdGhhdCBjYW4ndCBibG9jayB0aGUgcGFyc2VyIGJlZm9yZSB3
ZSBoYXZlIHNvbWV0aGluZyB0byBkcmF3LgogICAgICAgICAgICAgLy8gVGhpcyBoZWxwcyBwcmV2
ZW50IHByZWxvYWRzIGZyb20gZGVsYXlpbmcgZmlyc3QgZGlzcGxheSB3aGVuIGJhbmR3aWR0aCBp
cyBsaW1pdGVkLgotICAgICAgICAgICAgUGVuZGluZ1ByZWxvYWQgcGVuZGluZ1ByZWxvYWQgPSB7
IHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQgfTsKKyAgICAgICAgICAgIFBlbmRpbmdQcmVsb2FkIHBl
bmRpbmdQcmVsb2FkID0geyB0eXBlLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0
IH07CiAgICAgICAgICAgICBtX3BlbmRpbmdQcmVsb2Fkcy5hcHBlbmQocGVuZGluZ1ByZWxvYWQp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIHJlcXVlc3RQcmVs
b2FkKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQpOworICAgIHJlcXVlc3RQcmVsb2FkKHR5cGUsIHJl
cXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0KTsKIH0KIAogdm9pZCBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5kaW5nUHJlbG9hZHMoKSAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggZTJl
MmFlNDk3MjVjNTkxMmVjMWM1MDdmYjU4Nzk4NDM0ODViNmE5NS4uYzViMjM2NTBkZWEzMWIyZTBk
MWM5ZGIxMmFmZTQzYzE3ODMwZjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTI2LDkgKzI2LDEwIEBACiAjaWZuZGVm
IENhY2hlZFJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VMb2FkZXJfaAog
CisjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiQ2FjaGVQb2xpY3ku
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CkBAIC00NCw3ICs0NSw2IEBAIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50OwogY2xhc3MgQ2Fj
aGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2U7Ci1j
bGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBD
YWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0VHJhY2s7CkBAIC02OSw3ICs2OSw2IEBAIGZy
aWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRh
dGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKLSAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZl
ciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291
cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQog
ICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwogCkBAIC0xMzEsNyArMTMwLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNQcmVsb2FkZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0Owog
ICAgIHZvaWQgY2xlYXJQcmVsb2FkcygpOwogICAgIHZvaWQgY2xlYXJQZW5kaW5nUHJlbG9hZHMo
KTsKLSAgICB2b2lkIHByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJvbUJvZHkpOworICAg
IHZvaWQgcHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSk7CiAgICAg
dm9pZCBjaGVja0ZvclBlbmRpbmdQcmVsb2FkcygpOwogICAgIHZvaWQgcHJpbnRQcmVsb2FkU3Rh
dHMoKTsKICAgICBib29sIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtV
UkwmLCBib29sIGZvclByZWxvYWQgPSBmYWxzZSk7CkBAIC0xNDksNyArMTQ4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwogCiAgICAgZW51bSBSZXZhbGlkYXRp
b25Qb2xpY3kgeyBVc2UsIFJldmFsaWRhdGUsIFJlbG9hZCwgTG9hZCB9OwotICAgIFJldmFsaWRh
dGlvblBvbGljeSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5
cGUsIFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4
aXN0aW5nUmVzb3VyY2UsIERlZmVyT3B0aW9uKSBjb25zdDsKKyAgICBSZXZhbGlkYXRpb25Qb2xp
Y3kgZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jl
c291cmNlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVyT3B0aW9uKSBjb25zdDsKICAgICAK
ICAgICB2b2lkIG5vdGlmeUxvYWRlZEZyb21NZW1vcnlDYWNoZShDYWNoZWRSZXNvdXJjZSopOwog
ICAgIGJvb2wgY2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0
IEtVUkwmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNl
ZmI2MjU4YzVlYzlmMi4uN2JlNzM0OWRiOTVmYjc1MDJmMDM2ZDVmZjI1Y2FhODNmMWU1Y2VjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAKQEAgLTI2LDYgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQpAQCAtMzQs
NyArMzgsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9vcHRpb25zKENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCiAgICAgLCBt
X3ByaW9yaXR5KHByaW9yaXR5KQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9k
ZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKKyAgICAsIG1fZGVmZXIoTm9EZWZl
cikKIHsKIH0KIApAQCAtNDMsNyArNDcsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAg
ICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9y
aXR5VW5yZXNvbHZlZCkKICAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIo
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCisgICAgLCBtX2RlZmVyKE5vRGVmZXIpCiB7
CiB9CiAKQEAgLTUyLDggKzU2LDQ4IEBAIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBt
X29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKSkKICAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFs
c2UpCi0gICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwg
bV9kZWZlcihOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6On5DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QoKQoreworfQorCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIHsKKyAgICBBU1NFUlQoIW1f
aW5pdGlhdG9yRWxlbWVudCAmJiAhbV9pbml0aWF0b3JEb2N1bWVudCk7CisgICAgbV9pbml0aWF0
b3JFbGVtZW50ID0gZWxlbWVudDsKIH0KIAordm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNl
dEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+
IGRvY3VtZW50KQoreworICAgIEFTU0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRp
YXRvckRvY3VtZW50KTsKKyAgICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOworICAgIG1faW5pdGlh
dG9yRG9jdW1lbnQgPSBkb2N1bWVudDsKIH0KKworY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25zdAoreworICAgIGlmIChtX2luaXRp
YXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFt
ZSgpOworICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG1faW5pdGlhdG9yTmFtZTsKKworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBkZWZhdWx0TmFtZSwgKCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICByZXR1cm4gZGVmYXVsdE5hbWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1l
bnQ+IENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlm
IChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQt
PmRvY3VtZW50KCk7CisgICAgcmV0dXJuIG1faW5pdGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NS
ZWZQdHI8RWxlbWVudD4gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkK
K3sKKyAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVtZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKaW5kZXggY2IwNDNkZmUzOWZlNGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJm
NC4uNGFhMzBkNDUzMTMxZjI2MjY3MDU3N2ZlYmNmNzA2NDk0YzJlNzNhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAt
MjYsMjcgKzI2LDQxIEBACiAjaWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5l
IENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNs
YXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlv
biB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJl
c291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0
eVVucmVzb2x2ZWQpOwogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOwor
ICAgIH5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2hhcnNldDsgfQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNo
YXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQg
c2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRp
b25zID0gb3B0aW9uczsgfQogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29u
c3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yUHJlbG9hZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclBy
ZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQotICAgIENhY2hlZFJlc291cmNl
TG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAg
ICB2b2lkIHNldERlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikg
eyBtX2RlZmVyID0gZGVmZXI7IH0KKyAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVmZXI7IH0KKyAgICB2b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1f
ZGVmZXIgPSBkZWZlcjsgfQorICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVu
dD4pOworICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgUGFz
c1JlZlB0cjxEb2N1bWVudD4pOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFt
ZSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGluaXRpYXRvckRvY3VtZW50KCk7
CisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBpbml0aWF0b3JFbGVtZW50KCk7CiAKIHByaXZhdGU6
CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpAQCAtNTQsNyArNjgsMTAg
QEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJl
c291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7CiAgICAgYm9vbCBtX2ZvclByZWxvYWQ7Ci0g
ICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIG1fZGVmZXI7CisgICAgRGVmZXJP
cHRpb24gbV9kZWZlcjsKKyAgICBSZWZQdHI8RWxlbWVudD4gbV9pbml0aWF0b3JFbGVtZW50Owor
ICAgIFJlZlB0cjxEb2N1bWVudD4gbV9pbml0aWF0b3JEb2N1bWVudDsKKyAgICBBdG9taWNTdHJp
bmcgbV9pbml0aWF0b3JOYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MzE0NWMyY2UyMTRkZTMxZmQ1MjZj
M2U0N2MzN2MzM2M2Yzg2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQorICAg
IDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQorICAgICwg
aWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMzNTRkNjg3NDAxYTczMTFiODkzNmIzZDkyMTI0ZWM0ZGNjY2RhNjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzX2gKKyNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
c19oCisKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIEF0b21pY1N0cmluZyBjc3M7CisgICAgQXRvbWljU3RyaW5nIGljb247Citwcml2
YXRlOgorICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKTsKKyAgICBmcmllbmQg
Y2xhc3MgVGhyZWFkR2xvYmFsRGF0YTsKK307CisKK2lubGluZSBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzJiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkKK3sKKyAgICBy
ZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4
Yzg3MGYxNjQyNTU3Zjc0NS4uZTA3MTA4ZTRjZDJkZTRjZGY4YmU4MDg2ZmQxZGQ2MjA5Zjg0NDQy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpA
QCAtNjYsNiArNjcsNyBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgcmVx
dWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzRmF2aWNvbik7CiAjZW5kaWYKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CisgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmljb24s
IG1fZnJhbWUtPmRvY3VtZW50KCkpOwogCiAgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0
KTsKICAgICBpZiAobV9yZXNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFk
R2xvYmFsRGF0YS5jcHAKaW5kZXggZGE4NDZmOGRiYzJiNmUxZWYzNzAzZmQ4M2Q4NmEwZTU0ODFh
OTIwYy4uYmMxZDY1ZTI2NjIzNWZlYTBlNWQxZTYwYzhjNmRhMTkzMzQyYTM4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ291bnRlcnMuaCIKQEAgLTU5LDcgKzYwLDggQEAgVGhyZWFkR2xvYmFsRGF0YSog
VGhyZWFkR2xvYmFsRGF0YTo6c3RhdGljRGF0YTsKICNlbmRpZgogCiBUaHJlYWRHbG9iYWxEYXRh
OjpUaHJlYWRHbG9iYWxEYXRhKCkKLSAgICA6IG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZl
bnROYW1lcykpCisgICAgOiBtX2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoYWRvcHRQ
dHIobmV3IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpKQorICAgICwgbV9ldmVudE5h
bWVzKGFkb3B0UHRyKG5ldyBFdmVudE5hbWVzKSkKICAgICAsIG1fdGhyZWFkVGltZXJzKGFkb3B0
UHRyKG5ldyBUaHJlYWRUaW1lcnMpKQogICAgICwgbV94bWxUeXBlUmVnRXhwKGFkb3B0UHRyKG5l
dyBYTUxNSU1FVHlwZVJlZ0V4cCkpCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCmluZGV4IDQyZjA1YWZlMzg5M2Y3M2Q5ZDdlZmY0ODUy
YjllZjE4ZmQ5YWQ2NjIuLjdlMDU0MjU5ZTBjZWY4NzZiMTdhZWU4YWE0MjAxMjJlZjg0OWMyNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKQEAgLTQxLDYg
KzQxLDcgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwogICAgIGNsYXNzIEV2
ZW50TmFtZXM7CiAgICAgY2xhc3MgVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVyczsKICAgICBj
bGFzcyBUaHJlYWRUaW1lcnM7CkBAIC01Niw2ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgflRocmVhZEdsb2JhbERhdGEoKTsKICAgICAgICAgdm9pZCBkZXN0cm95KCk7IC8v
IGNhbGxlZCBvbiB3b3JrZXJzIHRvIGNsZWFuIHVwIHRoZSBUaHJlYWRHbG9iYWxEYXRhIGJlZm9y
ZSB0aGUgdGhyZWFkIGV4aXRzLgogCisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMmIGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKSB7IHJldHVybiAqbV9jYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOyB9CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50
TmFtZXMoKSB7IHJldHVybiAqbV9ldmVudE5hbWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYg
dGhyZWFkVGltZXJzKCkgeyByZXR1cm4gKm1fdGhyZWFkVGltZXJzOyB9CiAgICAgICAgIFhNTE1J
TUVUeXBlUmVnRXhwJiB4bWxUeXBlUmVnRXhwKCkgeyByZXR1cm4gKm1feG1sVHlwZVJlZ0V4cDsg
fQpAQCAtNzMsNiArNzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHBy
aXZhdGU6CisgICAgICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzPiBt
X2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM7CiAgICAgICAgIE93blB0cjxFdmVudE5h
bWVzPiBtX2V2ZW50TmFtZXM7CiAgICAgICAgIE93blB0cjxUaHJlYWRUaW1lcnM+IG1fdGhyZWFk
VGltZXJzOwogICAgICAgICBPd25QdHI8WE1MTUlNRVR5cGVSZWdFeHA+IG1feG1sVHlwZVJlZ0V4
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDg3ZmYwZDY4
MTI3NDQ2MGVhNzk3OGFmZTg3ZmEyNzM5Njg4NTdlYmEuLmVhZmVhMWE4NmExMjIyZWQ4M2QxNGE1
M2RhYmJjZGJmMjIzNGZiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcApAQCAtODIsNiArODIsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291
cmNlUmVmZXJlbmNlcygpCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNv
dXJjZSgpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOworICAgIHJlcXVlc3Qu
c2V0SW5pdGlhdG9yKHRoaXMpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9j
YWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVy
aUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHAKaW5kZXggYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2Y2RkMzc0OGE4Yi4uM2IyZDQ5
NWI5NjUwOTgwMjE3MjI3M2Y3NTIyZGU0MWM1NGM3MGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBTVkdG
b250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KCkKICAgICBpZiAoIWhyZWYuaXNOdWxsKCkpIHsK
ICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhy
ZWYpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2Nh
Y2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAg
ICAgICAgIGlmIChtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRm9udC0+YWRk
Q2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDYwNDZl
YzYxYjc0ZmMxMmViMTNhYzIwNzI0NGE2YzY4MTY1NDc0NzYuLmYxZTFjMDMyNDA1MzQ4YzM1OTBj
MzdiZTRiYjRjYTIwMmVlMDY1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
QEAgLTI1Niw2ICsyNTYsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgICAgICBLVVJMIHVybCA9
IGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAodXJsLmhh
c0ZyYWdtZW50SWRlbnRpZmllcigpKSB7CiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVybC5zdHJpbmcoKSkpOworICAgICAgICAg
ICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICAgICAgICAgIG1fY2Fj
aGVkRG9jdW1lbnQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1l
bnQpCiAgICAgICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlz
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174135</attachid>
            <date>2012-11-14 05:23:02 -0800</date>
            <delta_ts>2012-11-14 09:52:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121114142101.patch</filename>
            <type>text/plain</type>
            <size>49593</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY5MWJjOWU0OGFiNmUx
OTBkODUzM2I5MDk3YmQ5Y2Y1YzMxZjdhYi4uOTc4ZGM1YzAzMWZjYjE4ZjA1NmE0MzM2MWMyOWE5
N2U5MDQ1YTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxMi0xMS0xMyAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGluaXRpYXRv
ciB0byBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE5MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3RpdmF0aW9uOiBDaHJvbWl1bSBuZWVkcyB0byBrbm93IHdo
aWNoIGVsZW1lbnRzIHJlcXVlc3QgYQorICAgICAgICByZXNvdXJjZSAoc3VjaCBhcyBhbiBpbWFn
ZSBvciBhIHNjcmlwdCkgKGJ1ZyA5Mjc2MSkuIEluIGFkZGl0aW9uLAorICAgICAgICBmb3IgZXhw
b3NpbmcgcmVzb3VyY2UgdGltaW5nIGluZm9ybWF0aW9uIChidWcgODQ4ODMpIHdlIG5lZWQgdG8K
KyAgICAgICAgc3RvcmUgdGhlIGluaXRpYXRvciwgYW5kIHRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
dG93YXJkcyBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHM6IE5vIHZpc2libGUgY2hhbmdlIGlu
IGJlaGF2aW9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZEltYWdlRm9yQ1NTVmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmNhY2hlZEltYWdlKToKKyAgICAgICAgKiBjc3Mv
Q1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNy
Y1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6Cisg
ICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENTU0ltYWdlVmFsdWUpOgorICAgICAgICAqIGNz
cy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Omxv
YWRQZW5kaW5nSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCk6CisgICAg
ICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAgICogY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZh
bHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oOgorICAgICAgICAoQ1NTUHJl
bG9hZFNjYW5uZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJlbG9hZCk6CisgICAgICAgICog
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1
cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0
ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6fkNhY2hlZFJlc291cmNlUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRv
cik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JE
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRp
YXRvckVsZW1lbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdDo6ZGVmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpzZXREZWZlcik6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzKToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERh
dGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFs
RGF0YTo6Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgIChUaHJlYWRH
bG9iYWxEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKToKKyAg
ICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorCiAyMDEyLTExLTEzICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDM5MS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggZGIwZmE0OTkyM2IzZjNkZGQ3MzM2YmI4ZmU4MzdmODI2OWI3
ZDU1NC4uMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhiZTUxOTVmOGFjMzk2NDhhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE2ODEsNiArMTY4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwCiAgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKICAgICBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDI0NGMwZjc0NTgwZDdmMTU5
YzBlMDI1ZTg4NGViNWMwMTY1ODQzMzUuLmVkYmIxNTU2YzFhN2Y3NzZiZjYzNjFjZjIxZjRmMDBj
OGM3MDFlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzgyNCw2ICszODI0
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1ZGQ4MWVkMmY4Nzk3OTAxOTJkZjdi
OTE4MWJlZjczY2QzOGRjNmZkLi4wOThmMGMyNmYwMzg3YzFiOWI4MWQ3OGQ4ZjYxZGM0OWVmMGVl
MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgyMiw2ICs4MjIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBs
b2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAgXAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIFwK
ICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcCBcCkBAIC0xOTU0LDYgKzE5NTUsOCBAQCBIRUFERVJTICs9IFwKICAg
ICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggXAogICAgIGxvYWRlci9Dcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgg
XAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAog
ICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmggXAogICAgIGxvYWRlci9Gb3JtU3RhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggNjk0ZGZkMDU5NzU2YjUzNWQzOTViZGYyMGE4MGE0NGI4MGRlNGE2NC4uYWU5MDZiMDlkOTU1
MTc4OGI2NDkyNmFhNjJlOGQ2YTMxYWVhYmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA5LDYg
KzIwOSw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxl
LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAorICAg
ICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgn
LAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAtMzAyNiw2ICszMDI3LDcgQEAKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwJywKICAgICAgICAg
ICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwJywKICAgICAgICAgICAg
ICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDc3Yzg1ZTUxMjM0MDFlN2U4ODNiNGVkMDJkYjk2MTU0Y2I5YzhhNTMuLjRl
YWMzMmMzMmUxNGFiMDM3MTQ1NDhkYWI5ZGFiOGU2YTIxZWJmNDUgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODE3MCw2ICsyODE3MCwxNCBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNh
Y2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRT
Y3JpcHQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI1MDFlOWI3OWY3OTA1YzM3Mzg4
N2Q0M2U2NjZmZmZiZWY4NjhkNzIuLmRiNGY3MGZjNTNiZDc0MWE4MWY1MzFjZTc2M2ZhNDUxMjRl
N2IzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE4MzksNiArMTgzOSw4IEBACiAJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0Ix
MCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUZFQTg2OTA5
ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87
IH07CiAJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBE
NDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwICovOyB9OwogCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIg
LyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4
dDNELmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29u
dGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICov
OyB9OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5jcHAgKi87IH07CkBAIC05MDc2LDYgKzkwNzgsOCBAQAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4
QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4
NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0
ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODk0QTk2Q0NF
RTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyog
R3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRENHLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8q
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI1OSw2ICsxOTI2Myw4IEBACiAJCQkJQkNCMTZDMTEw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJNTA4MUUz
REYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCiAJCQkJ
NTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAor
CQkJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcCAvKiwKKwkJCQk2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIC8qLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2Fj
aGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNTcwLDYgKzIyNTc2LDcgQEAKIAkJCQlFNDdCNEJFODBF
NzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZD
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDQjE2QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE2Niw2ICsyNjE3Myw3IEBACiAJCQkJ
RTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZDNjM4ODk2
QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDQjE2QzIzMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3Jp
cHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJD
MjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMGZhYTgxM2IxZWJlMTI3ZjI1YzNi
NmM1NjQ3NTc2YjU1N2JmZjRiMi4uZWVmMGE0NzhiZGEwYjY5YTQ3MmQwN2I4YzgyNGY4MzM5ZDlm
YjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAt
MTM1LDcgKzEzNSw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0N1cnNvckltYWdlVmFsdWU6OmNh
Y2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiAgICAgaWYgKGlzU1ZHQ3Vy
c29ySWRlbnRpZmllcih1cmwoKSkgJiYgbG9hZGVyICYmIGxvYWRlci0+ZG9jdW1lbnQoKSkgewog
ICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGZhaWwgaWYgdGhlIDxjdXJzb3I+IGVsZW1lbnQg
aXMgaW4gYSBzaGFkb3cgRE9NIChidWcgNTk4MjcpCiAgICAgICAgIGlmIChTVkdDdXJzb3JFbGVt
ZW50KiBjdXJzb3JFbGVtZW50ID0gcmVzb3VyY2VSZWZlcmVuY2VkQnlDdXJzb3JFbGVtZW50KHVy
bCgpLCBsb2FkZXItPmRvY3VtZW50KCkpKQotICAgICAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFs
dWU6OmNhY2hlZEltYWdlKGxvYWRlciwgY3Vyc29yRWxlbWVudC0+aHJlZigpKTsKKyAgICAgICAg
ICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShsb2FkZXIsIGN1cnNvckVsZW1l
bnQtPmhyZWYoKSwgY3Vyc29yRWxlbWVudCk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAzNjkwNzg5MzM2ZDBiODQ0ODE1
MjczYjAxMzIyNWY2OWRhYWQ2ODdmLi4wNzc4MmFjMjE5ZDI2MTU0MzQ2NmI1OTNiOGE2OWY3NjI2
NTkyZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUg
Ik5vZGUuaCIKQEAgLTk3LDYgKzk4LDcgQEAgQ2FjaGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1
ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFtX2NhY2hlZEZv
bnQpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSkpOworICAgICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBkb2N1
bWVudCk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICB9CiAgICAgcmV0dXJuIG1fY2FjaGVk
Rm9udC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCBm
N2Q0MDFmNWNmNjc0OTAyMTg4NjAzZDIwOGRlMmQ2M2I5YzZjYWUwLi5lYmM3NGM3MTdkZDRjMjQy
YTMzMjM1YmMxNGZlNWFhOThjNTkzYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTdHls
ZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMTAsNiArMTExLDcgQEAgU3R5bGVDYWNoZWRJbWFnZVNl
dCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGxvYWQKICAgICAgICAgLy8gYW5kIGFueSBDU1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjk4CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGlt
YWdlID0gYmVzdEltYWdlRm9yU2NhbGVGYWN0b3IoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MsIGRvY3VtZW50KTsKICAgICAgICAg
aWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRl
ci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKSB7CiAgICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5
bGVDYWNoZWRJbWFnZVNldDo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZh
Y3RvciwgdGhpcyk7CiAgICAgICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA2YjczZDQ2MzFhMGYwMDI0ZjJl
YzZmM2M2NDg1ODE2NDk4NDEwNGY3Li45NTdhMjIxM2NkZDFkMmYxMzNjYzA3Y2M0MzI5MDFiYmVh
NmUzYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC0yNyw3ICsyNyw5
IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUg
IlN0eWxlQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJTdHlsZVBlbmRpbmdJbWFnZS5oIgpAQCAt
NjksMTQgKzcxLDE0IEBAIFN0eWxlSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZE9yUGVuZGlu
Z0ltYWdlKCkKICAgICByZXR1cm4gbV9pbWFnZS5nZXQoKTsKIH0KIAotU3R5bGVDYWNoZWRJbWFn
ZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKK1N0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJl
c291cmNlTG9hZGVyKiBsb2FkZXIsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpCiB7CiAgICAg
aWYgKGlzQ3Vyc29ySW1hZ2VWYWx1ZSgpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NT
Q3Vyc29ySW1hZ2VWYWx1ZSo+KHRoaXMpLT5jYWNoZWRJbWFnZShsb2FkZXIpOwotICAgIHJldHVy
biBjYWNoZWRJbWFnZShsb2FkZXIsIG1fdXJsKTsKKyAgICByZXR1cm4gY2FjaGVkSW1hZ2UobG9h
ZGVyLCBtX3VybCwgaW5pdGlhdG9yRWxlbWVudCk7CiB9CiAKLVN0eWxlQ2FjaGVkSW1hZ2UqIENT
U0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNv
bnN0IFN0cmluZyYgdXJsKQorU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVk
SW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgU3RyaW5nJiB1cmwsIEVs
ZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGxvYWRlcik7CiAKQEAgLTg0
LDYgKzg2LDEwIEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdl
KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgICAgIG1fYWNjZXNzZWRJ
bWFnZSA9IHRydWU7CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSkpOworICAg
ICAgICBpZiAoaW5pdGlhdG9yRWxlbWVudCkKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9yKGluaXRpYXRvckVsZW1lbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2Fk
ZXItPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
SW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCiAgICAg
ICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJbWFnZTo6Y3JlYXRlKGNhY2hlZEltYWdlLmdl
dCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAppbmRleCA4YzgyZjJjNjdk
YjQzM2E3NTE3MzNjOTY3MWRlOWI5MTUxZTdhOThjLi41Y2Y1YTFmNTlkNTY2MmFmOTE3NjAwYjhj
ZDIzZjdjMjc5MTA1MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKQEAgLTI3LDYg
KzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU3R5bGVDYWNoZWRJbWFnZTsKIGNsYXNzIFN0eWxl
SW1hZ2U7CiAKQEAgLTM2LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENTU0ltYWdlVmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgU3R5bGVJbWFnZSogaW1h
Z2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NJbWFnZVZhbHVlKHVybCwgaW1hZ2UpKTsgfQog
ICAgIH5DU1NJbWFnZVZhbHVlKCk7CiAKLSAgICBTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFn
ZShDYWNoZWRSZXNvdXJjZUxvYWRlciopOworICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgRWxlbWVudCogaW5pdGlhdG9yRWxlbWVudCA9IDAp
OwogICAgIC8vIFJldHVybnMgYSBTdHlsZUNhY2hlZEltYWdlIGlmIHRoZSBpbWFnZSBpcyBjYWNo
ZWQgYWxyZWFkeSwgb3RoZXJ3aXNlIGEgU3R5bGVQZW5kaW5nSW1hZ2UuCiAgICAgU3R5bGVJbWFn
ZSogY2FjaGVkT3JQZW5kaW5nSW1hZ2UoKTsKIApAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiBw
cm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VWYWx1ZShDbGFzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJs
KTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9h
ZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGlu
aXRpYXRvckVsZW1lbnQgPSAwKTsKICAgICBTdHJpbmcgY2FjaGVkSW1hZ2VVUkwoKTsKICAgICB2
b2lkIGNsZWFyQ2FjaGVkSW1hZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IDEyYzYwNDY5MTdmZDAzOTM0YmI0OTMxNzRkZmVjMTZmZDcyMGVmMTEuLjk5ZTljNzAw
ZjNjOGI0ZmE0NTQ2YzczNTIzMGU1Y2FhMjRiMzg5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTUwNTMsNyArNTA1Myw3IEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFnZShTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGlu
CiAKICAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJbWFnZVZhbHVlKCkpIHsKICAgICAgICAgQ1NT
SW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpOwot
ICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIsIG1fZWxlbWVudCk7CiAgICAgfQogCiAgICAgaWYgKHBlbmRpbmdJbWFnZS0+Y3Nz
SW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQu
Y3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUuLjMxNDZl
YzNjZDBhNDBkOWRhN2E3YWZkY2VhMjFiNzUzZTZiMWU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNyw2ICsx
MTgsNyBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQoKQogICAgIH0K
IAogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNV
UkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CisgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwog
ICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKICAgICAgICAg
bV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxl
U2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCmluZGV4IDY3ZTg0ZTNjOWI5ODNhYmIwODI0MTIwNzU5
ZTM4ODgwNTNjZmM4YmEuLjZmZTk0OGQ0YTdlNTE2YzAzNjA4MzdkNDM0YTZlMjdhYjA0NjQ5NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
IApAQCAtNTQsNiArNTUsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgICAgICBtX2xv
YWRSZXF1ZXN0ZWQgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJs
KSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50KCkpOwogICAgICAgICBtX2RvY3VtZW50
ID0gbG9hZGVyLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAppbmRleCBmYTA0MTkwYzNkYzhl
M2FkYjQzMWFiMDNhOGZkMWExZTE4MDA0YmE5Li4zNTE4N2Y4MjA0MGUxNjAzMzY5ZDZhMmRiMmNl
NWU4ODYxYzM5YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1
ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCkBAIC02MSw2ICs2Miw3IEBAIFN0eWxlQ2FjaGVkU2hh
ZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9h
ZGVyKiBsb2FkCiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0cnVlOwogCiAgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50
KCkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNo
ZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBt
X3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggY2ZkZDFhNDM2OTgw
ZDFiMDAyNjJjMTE4Y2MyNjlmNzNjMmNjMzIyMC4uNGZhNTU5ZThmYjgyYjVjZDI4NDdiM2RhMDIw
NzkzNmE1MTcxNTcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjY2
LDYgKzI2Niw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVybCkKICAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9s
KHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAgICAgICAg
IHJlcXVlc3Quc2V0Q2hhcnNldChzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcihlbGVtZW50KCkpOwogCiAgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVt
ZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJl
cXVlc3QpOwogICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUy
YzYyMDliM2Y0NGI0MzMuLjRhM2RjZmM0YWNmZjhmYWJjYzRhYTZiZDg3NmJjZTQyOGQ4ZTQ0ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTIyMiw2ICsyMjIs
NyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIC8vIExvYWQgc3R5
bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgdGhlIHJlbmRlcmluZyBpbW1lZGlhdGVs
eSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3Jp
dHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCA6IFJlc291cmNl
TG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSksIGNoYXJz
ZXQsIHByaW9yaXR5KTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2Nh
Y2hlZFNoZWV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJl
bG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNj
YW5uZXIuY3BwCmluZGV4IDI5ZjFjY2Q0NjhiYWRkOGRlNWMzYjE5ZTcyZjJkODUyY2QzMDA4OTMu
LjE1MGNlOGExMGFmYjkyZTk2ODNjYTFlZTEwMzU5MTQyY2I0Y2Q2ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTMwLDYgKzMw
LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1M
VG9rZW4uaCIKQEAgLTE5Niw3ICsxOTgsOCBAQCB2b2lkIENTU1ByZWxvYWRTY2FubmVyOjplbWl0
UnVsZSgpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCJpbXBvcnQiLCBtX3J1bGUuY2hhcmFj
dGVycygpLCBtX3J1bGUubGVuZ3RoKCkpKSB7CiAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHBhcnNl
Q1NTU3RyaW5nT3JVUkwobV9ydWxlVmFsdWUuY2hhcmFjdGVycygpLCBtX3J1bGVWYWx1ZS5sZW5n
dGgoKSk7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChtX2RvY3VtZW50LT5jb21wbGV0ZVVSTCh2YWx1ZSkpOworICAg
ICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1f
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHZhbHVlKSkpOworICAgICAgICAgICAgcmVxdWVzdC5zZXRJ
bml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgbV9kb2N1bWVu
dCk7CiAgICAgICAgICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5wcmVs
b2FkKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgbV9z
Y2FubmluZ0JvZHkpOwogICAgICAgICB9CiAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmgKaW5kZXggYzNk
YmI4MDBlZGQ4ZWExMGFiMjRlYjNjMTIzYjdjYTk4ZjJjYjQyNy4uYjE2YTYyOTI1ZTEwNjE1YTky
NDNjOTI0YmNlZTdhMGNjMGQxZDMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9DU1NQcmVsb2FkU2Nhbm5lci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEhUTUxUb2tlbjsK
IGNsYXNzIENTU1ByZWxvYWRTY2FubmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDU1NQ
cmVsb2FkU2Nhbm5lcik7CiBwdWJsaWM6Ci0gICAgQ1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQq
KTsKKyAgICBleHBsaWNpdCBDU1NQcmVsb2FkU2Nhbm5lcihEb2N1bWVudCopOwogCiAgICAgdm9p
ZCByZXNldCgpOwogICAgIHZvaWQgc2Nhbihjb25zdCBIVE1MVG9rZW4mLCBib29sIHNjYW5uaW5n
Qm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2Fu
bmVyLmNwcAppbmRleCAyMzAzOGJkMGJjZWEwOGQ5ZTI1ZWVjZmNkZjU0YzQ4ZmMxNGIwMzdhLi45
NjU0YzhkOGRjMGQ2YTdjZWJjYjE0MmNiM2IxMmQ5ZjJhMjVkMDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTEyNyw3ICsx
MjcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZG9jdW1lbnQt
PmNvbXBsZXRlVVJMKG1fdXJsVG9Mb2FkLCBiYXNlVVJMKTsKKyAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCht
X3VybFRvTG9hZCwgYmFzZVVSTCkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGFn
TmFtZSgpLCBkb2N1bWVudCk7CiAgICAgICAgIGlmIChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnKQog
ICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6
OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBzY2FubmluZ0JvZHkpOwogICAgICAgICBlbHNl
IGlmIChtX3RhZ05hbWUgPT0gaW1nVGFnIHx8IChtX3RhZ05hbWUgPT0gaW5wdXRUYWcgJiYgbV9p
bnB1dElzSW1hZ2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzEy
YmUyZmY5ZDQ1NTc0ZTQxZDRmNDcwOGNiOTZiYjRkNWE3ZWM0Yi4uZTIyNDdkMjU0YzdmODYwOWVm
NmVhMmE5NzczYjVmOWY3ZDFiNjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwCkBAIC0xNzksNiArMTc5LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBuZXdJbWFnZSA9IDA7
CiAgICAgaWYgKCFhdHRyLmlzTnVsbCgpICYmICFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxT
cGFjZXMoYXR0cikuaXNFbXB0eSgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkko
YXR0cikpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNsaWVudCgpLT5zb3VyY2VF
bGVtZW50KCkpOwogCiAgICAgICAgIFN0cmluZyBjcm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+
c291cmNlRWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5B
dHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGQ0Y2JhMDU5MTMxOTAwZTE5MGNjZjU4ZTZmZTBkMTZkOGQwNzU1NTYuLjgzYTVhMWNlNjc0
Y2M3MmM1ZjExMDA5NmNiMzQ4YWIwODI1ZTRkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMTY0LDcgKzE2NCw3
IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQogICAgIH0KLSAgICByZXF1ZXN0LnNldERlZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8gRGVmZXJyZWRCeUNsaWVudCA6IE5vRGVmZXIp
OworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSkgPyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGll
bnQgOiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5vRGVmZXIpOwogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VS
ZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCkBAIC00NTgsNyArNDU4LDcgQEAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICByZXNvdXJjZS0+c2V0
TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7Ci0gICAgaWYgKChwb2xpY3kgIT0gVXNl
IHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IHJlcXVlc3QuZGVm
ZXIoKSkgeworICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xv
YWQoKSkgJiYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIo
KSkgewogICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAK
ICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBz
dXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgpAQCAtNTEwLDcgKzUxMCw3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291
cmNlKENhY2hlZFJlCiAgICAgcmV0dXJuIHJlc291cmNlOwogfQogCi1DYWNoZWRSZXNvdXJjZUxv
YWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVS
ZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBib29sIGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jl
c291cmNlLCBEZWZlck9wdGlvbiBkZWZlcikgY29uc3QKK0NhY2hlZFJlc291cmNlTG9hZGVyOjpS
ZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRh
dGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2Us
IENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJPcHRpb24gZGVmZXIpIGNvbnN0CiB7CiAgICAg
aWYgKCFleGlzdGluZ1Jlc291cmNlKQogICAgICAgICByZXR1cm4gTG9hZDsKQEAgLTUzOSw3ICs1
MzksNyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJl
c291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogCiAgICAgLy8gRG8gbm90IGxvYWQgZnJv
bSBjYWNoZSBpZiBpbWFnZXMgYXJlIG5vdCBlbmFibGVkLiBUaGUgbG9hZCBmb3IgdGhpcyBpbWFn
ZSB3aWxsIGJlIGJsb2NrZWQKICAgICAvLyBpbiBDYWNoZWRJbWFnZTo6bG9hZC4KLSAgICBpZiAo
RGVmZXJyZWRCeUNsaWVudCA9PSBkZWZlcikKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpEZWZlcnJlZEJ5Q2xpZW50ID09IGRlZmVyKQogICAgICAgICByZXR1cm4gUmVsb2FkOwogICAg
IAogICAgIC8vIERvbid0IHJlbG9hZCByZXNvdXJjZXMgd2hpbGUgcGFzdGluZy4KQEAgLTc2NCw4
ICs3NjQsOCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWNyZW1lbnRSZXF1ZXN0Q291
bnQoY29uc3QgQ2FjaGVkUmVzb3VyY2UqIHJlcykKICAgICAtLW1fcmVxdWVzdENvdW50OwogICAg
IEFTU0VSVChtX3JlcXVlc3RDb3VudCA+IC0xKTsKIH0KLSAgICAKLXZvaWQgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21C
b2R5KQorCit2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSkKIHsKICAgICAvLyBGSVhNRTogUmlw
IHRoaXMgb3V0IHdoZW4gd2UgYXJlIHN1cmUgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSAoZXZl
biBmb3IgbW9iaWxlKS4KICAgICBVTlVTRURfUEFSQU0ocmVmZXJlbmNlZEZyb21Cb2R5KTsKQEAg
LTc4MCwxMiArNzgwLDEyIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByCiAgICAgICAgIGlmICgh
aGFzUmVuZGVyaW5nICYmICFjYW5CbG9ja1BhcnNlcikgewogICAgICAgICAgICAgLy8gRG9uJ3Qg
cHJlbG9hZCBzdWJyZXNvdXJjZXMgdGhhdCBjYW4ndCBibG9jayB0aGUgcGFyc2VyIGJlZm9yZSB3
ZSBoYXZlIHNvbWV0aGluZyB0byBkcmF3LgogICAgICAgICAgICAgLy8gVGhpcyBoZWxwcyBwcmV2
ZW50IHByZWxvYWRzIGZyb20gZGVsYXlpbmcgZmlyc3QgZGlzcGxheSB3aGVuIGJhbmR3aWR0aCBp
cyBsaW1pdGVkLgotICAgICAgICAgICAgUGVuZGluZ1ByZWxvYWQgcGVuZGluZ1ByZWxvYWQgPSB7
IHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQgfTsKKyAgICAgICAgICAgIFBlbmRpbmdQcmVsb2FkIHBl
bmRpbmdQcmVsb2FkID0geyB0eXBlLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0
IH07CiAgICAgICAgICAgICBtX3BlbmRpbmdQcmVsb2Fkcy5hcHBlbmQocGVuZGluZ1ByZWxvYWQp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIHJlcXVlc3RQcmVs
b2FkKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQpOworICAgIHJlcXVlc3RQcmVsb2FkKHR5cGUsIHJl
cXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0KTsKIH0KIAogdm9pZCBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5kaW5nUHJlbG9hZHMoKSAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggZTJl
MmFlNDk3MjVjNTkxMmVjMWM1MDdmYjU4Nzk4NDM0ODViNmE5NS4uYzViMjM2NTBkZWEzMWIyZTBk
MWM5ZGIxMmFmZTQzYzE3ODMwZjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTI2LDkgKzI2LDEwIEBACiAjaWZuZGVm
IENhY2hlZFJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VMb2FkZXJfaAog
CisjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiQ2FjaGVQb2xpY3ku
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CkBAIC00NCw3ICs0NSw2IEBAIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50OwogY2xhc3MgQ2Fj
aGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2U7Ci1j
bGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBD
YWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0VHJhY2s7CkBAIC02OSw3ICs2OSw2IEBAIGZy
aWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRh
dGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKLSAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZl
ciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291
cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQog
ICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwogCkBAIC0xMzEsNyArMTMwLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNQcmVsb2FkZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0Owog
ICAgIHZvaWQgY2xlYXJQcmVsb2FkcygpOwogICAgIHZvaWQgY2xlYXJQZW5kaW5nUHJlbG9hZHMo
KTsKLSAgICB2b2lkIHByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJvbUJvZHkpOworICAg
IHZvaWQgcHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9tQm9keSk7CiAgICAg
dm9pZCBjaGVja0ZvclBlbmRpbmdQcmVsb2FkcygpOwogICAgIHZvaWQgcHJpbnRQcmVsb2FkU3Rh
dHMoKTsKICAgICBib29sIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtV
UkwmLCBib29sIGZvclByZWxvYWQgPSBmYWxzZSk7CkBAIC0xNDksNyArMTQ4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwogCiAgICAgZW51bSBSZXZhbGlkYXRp
b25Qb2xpY3kgeyBVc2UsIFJldmFsaWRhdGUsIFJlbG9hZCwgTG9hZCB9OwotICAgIFJldmFsaWRh
dGlvblBvbGljeSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5
cGUsIFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4
aXN0aW5nUmVzb3VyY2UsIERlZmVyT3B0aW9uKSBjb25zdDsKKyAgICBSZXZhbGlkYXRpb25Qb2xp
Y3kgZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGZvclByZWxvYWQsIENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jl
c291cmNlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVyT3B0aW9uKSBjb25zdDsKICAgICAK
ICAgICB2b2lkIG5vdGlmeUxvYWRlZEZyb21NZW1vcnlDYWNoZShDYWNoZWRSZXNvdXJjZSopOwog
ICAgIGJvb2wgY2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0
IEtVUkwmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNl
ZmI2MjU4YzVlYzlmMi4uN2JlNzM0OWRiOTVmYjc1MDJmMDM2ZDVmZjI1Y2FhODNmMWU1Y2VjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAKQEAgLTI2LDYgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQpAQCAtMzQs
NyArMzgsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9vcHRpb25zKENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCiAgICAgLCBt
X3ByaW9yaXR5KHByaW9yaXR5KQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9k
ZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKKyAgICAsIG1fZGVmZXIoTm9EZWZl
cikKIHsKIH0KIApAQCAtNDMsNyArNDcsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAg
ICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9y
aXR5VW5yZXNvbHZlZCkKICAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIo
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCisgICAgLCBtX2RlZmVyKE5vRGVmZXIpCiB7
CiB9CiAKQEAgLTUyLDggKzU2LDQ4IEBAIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBt
X29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKSkKICAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFs
c2UpCi0gICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwg
bV9kZWZlcihOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6On5DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QoKQoreworfQorCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIHsKKyAgICBBU1NFUlQoIW1f
aW5pdGlhdG9yRWxlbWVudCAmJiAhbV9pbml0aWF0b3JEb2N1bWVudCk7CisgICAgbV9pbml0aWF0
b3JFbGVtZW50ID0gZWxlbWVudDsKIH0KIAordm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNl
dEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+
IGRvY3VtZW50KQoreworICAgIEFTU0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRp
YXRvckRvY3VtZW50KTsKKyAgICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOworICAgIG1faW5pdGlh
dG9yRG9jdW1lbnQgPSBkb2N1bWVudDsKIH0KKworY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25zdAoreworICAgIGlmIChtX2luaXRp
YXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFt
ZSgpOworICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG1faW5pdGlhdG9yTmFtZTsKKworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBkZWZhdWx0TmFtZSwgKCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICByZXR1cm4gZGVmYXVsdE5hbWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1l
bnQ+IENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlm
IChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQt
PmRvY3VtZW50KCk7CisgICAgcmV0dXJuIG1faW5pdGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NS
ZWZQdHI8RWxlbWVudD4gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkK
K3sKKyAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVtZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKaW5kZXggY2IwNDNkZmUzOWZlNGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJm
NC4uNGFhMzBkNDUzMTMxZjI2MjY3MDU3N2ZlYmNmNzA2NDk0YzJlNzNhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAt
MjYsMjcgKzI2LDQxIEBACiAjaWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5l
IENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNs
YXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlv
biB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJl
c291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0
eVVucmVzb2x2ZWQpOwogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOwor
ICAgIH5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2hhcnNldDsgfQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNo
YXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQg
c2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRp
b25zID0gb3B0aW9uczsgfQogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29u
c3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yUHJlbG9hZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclBy
ZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQotICAgIENhY2hlZFJlc291cmNl
TG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAg
ICB2b2lkIHNldERlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikg
eyBtX2RlZmVyID0gZGVmZXI7IH0KKyAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVmZXI7IH0KKyAgICB2b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1f
ZGVmZXIgPSBkZWZlcjsgfQorICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVu
dD4pOworICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgUGFz
c1JlZlB0cjxEb2N1bWVudD4pOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFt
ZSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGluaXRpYXRvckRvY3VtZW50KCk7
CisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBpbml0aWF0b3JFbGVtZW50KCk7CiAKIHByaXZhdGU6
CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpAQCAtNTQsNyArNjgsMTAg
QEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJl
c291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7CiAgICAgYm9vbCBtX2ZvclByZWxvYWQ7Ci0g
ICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIG1fZGVmZXI7CisgICAgRGVmZXJP
cHRpb24gbV9kZWZlcjsKKyAgICBSZWZQdHI8RWxlbWVudD4gbV9pbml0aWF0b3JFbGVtZW50Owor
ICAgIFJlZlB0cjxEb2N1bWVudD4gbV9pbml0aWF0b3JEb2N1bWVudDsKKyAgICBBdG9taWNTdHJp
bmcgbV9pbml0aWF0b3JOYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MzE0NWMyY2UyMTRkZTMxZmQ1MjZj
M2U0N2MzN2MzM2M2Yzg2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQorICAg
IDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQorICAgICwg
aWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMzNTRkNjg3NDAxYTczMTFiODkzNmIzZDkyMTI0ZWM0ZGNjY2RhNjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzX2gKKyNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
c19oCisKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIEF0b21pY1N0cmluZyBjc3M7CisgICAgQXRvbWljU3RyaW5nIGljb247Citwcml2
YXRlOgorICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKTsKKyAgICBmcmllbmQg
Y2xhc3MgVGhyZWFkR2xvYmFsRGF0YTsKK307CisKK2lubGluZSBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzJiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkKK3sKKyAgICBy
ZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4
Yzg3MGYxNjQyNTU3Zjc0NS4uZTA3MTA4ZTRjZDJkZTRjZGY4YmU4MDg2ZmQxZGQ2MjA5Zjg0NDQy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpA
QCAtNjYsNiArNjcsNyBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgcmVx
dWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzRmF2aWNvbik7CiAjZW5kaWYKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CisgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmljb24s
IG1fZnJhbWUtPmRvY3VtZW50KCkpOwogCiAgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0
KTsKICAgICBpZiAobV9yZXNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFk
R2xvYmFsRGF0YS5jcHAKaW5kZXggZGE4NDZmOGRiYzJiNmUxZWYzNzAzZmQ4M2Q4NmEwZTU0ODFh
OTIwYy4uYmMxZDY1ZTI2NjIzNWZlYTBlNWQxZTYwYzhjNmRhMTkzMzQyYTM4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ291bnRlcnMuaCIKQEAgLTU5LDcgKzYwLDggQEAgVGhyZWFkR2xvYmFsRGF0YSog
VGhyZWFkR2xvYmFsRGF0YTo6c3RhdGljRGF0YTsKICNlbmRpZgogCiBUaHJlYWRHbG9iYWxEYXRh
OjpUaHJlYWRHbG9iYWxEYXRhKCkKLSAgICA6IG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZl
bnROYW1lcykpCisgICAgOiBtX2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoYWRvcHRQ
dHIobmV3IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpKQorICAgICwgbV9ldmVudE5h
bWVzKGFkb3B0UHRyKG5ldyBFdmVudE5hbWVzKSkKICAgICAsIG1fdGhyZWFkVGltZXJzKGFkb3B0
UHRyKG5ldyBUaHJlYWRUaW1lcnMpKQogICAgICwgbV94bWxUeXBlUmVnRXhwKGFkb3B0UHRyKG5l
dyBYTUxNSU1FVHlwZVJlZ0V4cCkpCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCmluZGV4IDQyZjA1YWZlMzg5M2Y3M2Q5ZDdlZmY0ODUy
YjllZjE4ZmQ5YWQ2NjIuLjdlMDU0MjU5ZTBjZWY4NzZiMTdhZWU4YWE0MjAxMjJlZjg0OWMyNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKQEAgLTQxLDYg
KzQxLDcgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwogICAgIGNsYXNzIEV2
ZW50TmFtZXM7CiAgICAgY2xhc3MgVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVyczsKICAgICBj
bGFzcyBUaHJlYWRUaW1lcnM7CkBAIC01Niw2ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgflRocmVhZEdsb2JhbERhdGEoKTsKICAgICAgICAgdm9pZCBkZXN0cm95KCk7IC8v
IGNhbGxlZCBvbiB3b3JrZXJzIHRvIGNsZWFuIHVwIHRoZSBUaHJlYWRHbG9iYWxEYXRhIGJlZm9y
ZSB0aGUgdGhyZWFkIGV4aXRzLgogCisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMmIGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKSB7IHJldHVybiAqbV9jYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOyB9CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50
TmFtZXMoKSB7IHJldHVybiAqbV9ldmVudE5hbWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYg
dGhyZWFkVGltZXJzKCkgeyByZXR1cm4gKm1fdGhyZWFkVGltZXJzOyB9CiAgICAgICAgIFhNTE1J
TUVUeXBlUmVnRXhwJiB4bWxUeXBlUmVnRXhwKCkgeyByZXR1cm4gKm1feG1sVHlwZVJlZ0V4cDsg
fQpAQCAtNzMsNiArNzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHBy
aXZhdGU6CisgICAgICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzPiBt
X2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM7CiAgICAgICAgIE93blB0cjxFdmVudE5h
bWVzPiBtX2V2ZW50TmFtZXM7CiAgICAgICAgIE93blB0cjxUaHJlYWRUaW1lcnM+IG1fdGhyZWFk
VGltZXJzOwogICAgICAgICBPd25QdHI8WE1MTUlNRVR5cGVSZWdFeHA+IG1feG1sVHlwZVJlZ0V4
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDg3ZmYwZDY4
MTI3NDQ2MGVhNzk3OGFmZTg3ZmEyNzM5Njg4NTdlYmEuLmVhZmVhMWE4NmExMjIyZWQ4M2QxNGE1
M2RhYmJjZGJmMjIzNGZiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcApAQCAtODIsNiArODIsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291
cmNlUmVmZXJlbmNlcygpCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNv
dXJjZSgpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOworICAgIHJlcXVlc3Qu
c2V0SW5pdGlhdG9yKHRoaXMpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9j
YWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVy
aUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHAKaW5kZXggYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2Y2RkMzc0OGE4Yi4uM2IyZDQ5
NWI5NjUwOTgwMjE3MjI3M2Y3NTIyZGU0MWM1NGM3MGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBTVkdG
b250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KCkKICAgICBpZiAoIWhyZWYuaXNOdWxsKCkpIHsK
ICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhy
ZWYpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2Nh
Y2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAg
ICAgICAgIGlmIChtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRm9udC0+YWRk
Q2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDYwNDZl
YzYxYjc0ZmMxMmViMTNhYzIwNzI0NGE2YzY4MTY1NDc0NzYuLmYxZTFjMDMyNDA1MzQ4YzM1OTBj
MzdiZTRiYjRjYTIwMmVlMDY1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
QEAgLTI1Niw2ICsyNTYsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgICAgICBLVVJMIHVybCA9
IGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAodXJsLmhh
c0ZyYWdtZW50SWRlbnRpZmllcigpKSB7CiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVybC5zdHJpbmcoKSkpOworICAgICAgICAg
ICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICAgICAgICAgIG1fY2Fj
aGVkRG9jdW1lbnQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1l
bnQpCiAgICAgICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlz
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174182</attachid>
            <date>2012-11-14 09:52:15 -0800</date>
            <delta_ts>2012-11-15 07:49:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121114185014.patch</filename>
            <type>text/plain</type>
            <size>49522</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY5MWJjOWU0OGFiNmUx
OTBkODUzM2I5MDk3YmQ5Y2Y1YzMxZjdhYi4uOTlmYWQyNzI5NTRhOGI1NWYyZWZmMjcwOTcwNjFk
MGMxZWJlYzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTExLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaW5pdGlhdG9y
IHRvIENhY2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCisKKyAgICAgICAgTW90aXZhdGlvbjogQ2hyb21pdW0gbmVlZHMgdG8ga25vdyB3aGljaCBl
bGVtZW50cyByZXF1ZXN0IGEKKyAgICAgICAgcmVzb3VyY2UgKHN1Y2ggYXMgYW4gaW1hZ2Ugb3Ig
YSBzY3JpcHQpIChidWcgOTI3NjEpLiBJbiBhZGRpdGlvbiwKKyAgICAgICAgZm9yIGV4cG9zaW5n
IHJlc291cmNlIHRpbWluZyBpbmZvcm1hdGlvbiAoYnVnIDg0ODgzKSB3ZSBuZWVkIHRvCisgICAg
ICAgIHN0b3JlIHRoZSBpbml0aWF0b3IsIGFuZCB0aGlzIGlzIHRoZSBmaXJzdCBzdGVwIHRvd2Fy
ZHMgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBObyB2aXNpYmxlIGNoYW5nZSBpbiBiZWhh
dmlvci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmNh
Y2hlZEltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAg
KiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNl
dFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENT
U0ltYWdlVmFsdWUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2UpOgorICAgICAgICAqIGNz
cy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0
OjpyZXF1ZXN0U3R5bGVTaGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6
bG9hZCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6
OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJl
bG9hZFNjYW5uZXI6OmVtaXRSdWxlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2Fk
U2Nhbm5lci5oOgorICAgICAgICAoQ1NTUHJlbG9hZFNjYW5uZXIpOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2Fk
VGFzazo6cHJlbG9hZCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnByZWxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6fkNhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvckVsZW1lbnQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRPcHRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGVmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZlcik6CisgICAgICAgIChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9p
Y29uL0ljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6c3RhcnRM
b2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycyk6CisgICAgICAgIChUaHJlYWRHbG9iYWxEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6
OnJlcXVlc3RJbWFnZVJlc291cmNlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZv
bnQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorCiAyMDEyLTExLTEzICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEzNDM5MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGIwZmE0OTky
M2IzZjNkZGQ3MzM2YmI4ZmU4MzdmODI2OWI3ZDU1NC4uMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhi
ZTUxOTVmOGFjMzk2NDhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2ODEsNiArMTY4MSw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAogICAg
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAogICAgIGxv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDI0NGMwZjc0NTgwZDdmMTU5YzBlMDI1ZTg4NGViNWMwMTY1ODQzMzUuLmVkYmIx
NTU2YzFhN2Y3NzZiZjYzNjFjZjIxZjRmMDBjOGM3MDFlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMzgyNCw2ICszODI0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCisJU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA1ZGQ4MWVkMmY4Nzk3OTAxOTJkZjdiOTE4MWJlZjczY2QzOGRjNmZkLi4wOThmMGMyNmYw
Mzg3YzFiOWI4MWQ3OGQ4ZjYxZGM0OWVmMGVlMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgyMiw2ICs4
MjIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
XAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIFwKKyAgICBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAogICAgIGxvYWRl
ci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
IFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCkBAIC0xOTU0LDYg
KzE5NTUsOCBAQCBIRUFERVJTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sLmggXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggXAog
ICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwK
ICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggXAogICAgIGxvYWRlci9Gb3Jt
U3RhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjk0ZGZkMDU5NzU2YjUzNWQzOTViZGYyMGE4
MGE0NGI4MGRlNGE2NC4uYWU5MDZiMDlkOTU1MTc4OGI2NDkyNmFhNjJlOGQ2YTMxYWVhYmIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA5LDYgKzIwOSw3IEBACiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hl
ZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApA
QCAtMzAyNiw2ICszMDI3LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc3Yzg1ZTUxMjM0MDFlN2U4
ODNiNGVkMDJkYjk2MTU0Y2I5YzhhNTMuLjRlYWMzMmMzMmUxNGFiMDM3MTQ1NDhkYWI5ZGFiOGU2
YTIxZWJmNDUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yODE3MCw2ICsyODE3MCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGI1MDFlOWI3OWY3OTA1YzM3Mzg4N2Q0M2U2NjZmZmZiZWY4NjhkNzIuLjQ0MTlhNjFi
ODNlYmVhMzc3M2NhN2E0YmNmZmFiMDllOGZlNjQzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MzksNiArMTgzOSw4IEBA
CiAJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTBFOTQzMTEzM0M4OUYwMEI0
Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2NUZFQTg2OTA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUZFQTg2ODA5ODMz
QURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87IH07CiAJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0
MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4
OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2
Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTZBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VF
NTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovOyB9Owog
CQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4
NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2
MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8q
IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIz
MDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyog
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07CkBAIC05MDc2LDYgKzkwNzgs
OCBAQAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZl
SW1hZ2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdl
UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODkzQTk2Q0NFRTUwQzhD
OTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgcGF0aCA9IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3Jh
cGhpY3NDb250ZXh0M0RDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHQzRENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI1OSw2
ICsxOTI2Myw4IEBACiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlTG9hZGVyLmggKi8sCiAJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAgKi8sCiAJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5oICovLAorCQkJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAv
KiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLywKKwkJCQk2QzYzODg5M0E5
NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovLAog
CQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJ
CUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4
QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNTcwLDYg
KzIyNTc2LDcgQEAKIAkJCQlFNDdCNEJFODBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTA4MUUzRTAzQ0ZG
ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2
OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAz
OEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNjE2Niw2ICsyNjE3Myw3IEBACiAJCQkJRTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENh
Y2hlZFJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzIzMDk3
OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAz
OEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAK
aW5kZXggMGZhYTgxM2IxZWJlMTI3ZjI1YzNiNmM1NjQ3NTc2YjU1N2JmZjRiMi4uZWVmMGE0Nzhi
ZGEwYjY5YTQ3MmQwN2I4YzgyNGY4MzM5ZDlmYjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIFN0eWxlQ2FjaGVkSW1h
Z2UqIENTU0N1cnNvckltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAgICAgaWYgKGlzU1ZHQ3Vyc29ySWRlbnRpZmllcih1cmwoKSkgJiYgbG9hZGVy
ICYmIGxvYWRlci0+ZG9jdW1lbnQoKSkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGZh
aWwgaWYgdGhlIDxjdXJzb3I+IGVsZW1lbnQgaXMgaW4gYSBzaGFkb3cgRE9NIChidWcgNTk4Mjcp
CiAgICAgICAgIGlmIChTVkdDdXJzb3JFbGVtZW50KiBjdXJzb3JFbGVtZW50ID0gcmVzb3VyY2VS
ZWZlcmVuY2VkQnlDdXJzb3JFbGVtZW50KHVybCgpLCBsb2FkZXItPmRvY3VtZW50KCkpKQotICAg
ICAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKGxvYWRlciwgY3Vyc29y
RWxlbWVudC0+aHJlZigpKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjYWNo
ZWRJbWFnZShsb2FkZXIsIGN1cnNvckVsZW1lbnQtPmhyZWYoKSwgY3Vyc29yRWxlbWVudCk7CiAg
ICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cAppbmRleCAzNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmLi4wNzc4MmFj
MjE5ZDI2MTU0MzQ2NmI1OTNiOGE2OWY3NjI2NTkyZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ2Fj
aGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk3LDYgKzk4LDcgQEAgQ2Fj
aGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1l
bnQpCiB7CiAgICAgaWYgKCFtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jl
c291cmNlKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCkuY3NzLCBkb2N1bWVudCk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9
IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsK
ICAgICB9CiAgICAgcmV0dXJuIG1fY2FjaGVkRm9udC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCBmN2Q0MDFmNWNmNjc0OTAyMTg4NjAzZDIwOGRlMmQ2
M2I5YzZjYWUwLi5lYmM3NGM3MTdkZDRjMjQyYTMzMjM1YmMxNGZlNWFhOThjNTkzYTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMTAsNiAr
MTExLDcgQEAgU3R5bGVDYWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1h
Z2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWQKICAgICAgICAgLy8gYW5kIGFueSBDU1Mg
dHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjk4
CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVzdEltYWdlRm9yU2NhbGVGYWN0b3Io
KTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CisgICAg
ICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMo
KS5jc3MsIGRvY3VtZW50KTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKSB7CiAg
ICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5bGVDYWNoZWRJbWFnZVNldDo6Y3JlYXRlKGNhY2hl
ZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZhY3RvciwgdGhpcyk7CiAgICAgICAgICAgICBtX2Fj
Y2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAppbmRleCA2YjczZDQ2MzFhMGYwMDI0ZjJlYzZmM2M2NDg1ODE2NDk4NDEwNGY3Li45NTdhMjIx
M2NkZDFkMmYxMzNjYzA3Y2M0MzI5MDFiYmVhNmUzYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlVmFsdWUuY3BwCkBAIC0yNyw3ICsyNyw5IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZVBlbmRpbmdJbWFnZS5oIgpAQCAtNjksMTQgKzcxLDE0IEBAIFN0eWxlSW1hZ2UqIENT
U0ltYWdlVmFsdWU6OmNhY2hlZE9yUGVuZGluZ0ltYWdlKCkKICAgICByZXR1cm4gbV9pbWFnZS5n
ZXQoKTsKIH0KIAotU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Uo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKK1N0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdl
VmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIEVsZW1lbnQq
IGluaXRpYXRvckVsZW1lbnQpCiB7CiAgICAgaWYgKGlzQ3Vyc29ySW1hZ2VWYWx1ZSgpKQogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZSo+KHRoaXMpLT5jYWNo
ZWRJbWFnZShsb2FkZXIpOwotICAgIHJldHVybiBjYWNoZWRJbWFnZShsb2FkZXIsIG1fdXJsKTsK
KyAgICByZXR1cm4gY2FjaGVkSW1hZ2UobG9hZGVyLCBtX3VybCwgaW5pdGlhdG9yRWxlbWVudCk7
CiB9CiAKLVN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hl
ZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFN0cmluZyYgdXJsKQorU3R5bGVDYWNoZWRJ
bWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxv
YWRlciwgY29uc3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpCiB7CiAg
ICAgQVNTRVJUKGxvYWRlcik7CiAKQEAgLTg0LDYgKzg2LDEwIEBAIFN0eWxlQ2FjaGVkSW1hZ2Uq
IENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIs
IGNvbnN0CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwodXJsKSkpOworICAgICAgICBpZiAoaW5pdGlhdG9yRWxlbWVudCkKKyAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGluaXRpYXRvckVsZW1lbnQpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCiAgICAgICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJ
bWFnZTo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlVmFsdWUuaAppbmRleCA4YzgyZjJjNjdkYjQzM2E3NTE3MzNjOTY3MWRlOWI5MTUxZTdhOThj
Li41Y2Y1YTFmNTlkNTY2MmFmOTE3NjAwYjhjZDIzZjdjMjc5MTA1MmU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU3R5
bGVDYWNoZWRJbWFnZTsKIGNsYXNzIFN0eWxlSW1hZ2U7CiAKQEAgLTM2LDcgKzM3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHVybCwgU3R5bGVJbWFnZSogaW1hZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NJ
bWFnZVZhbHVlKHVybCwgaW1hZ2UpKTsgfQogICAgIH5DU1NJbWFnZVZhbHVlKCk7CiAKLSAgICBT
dHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciopOworICAg
IFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgRWxl
bWVudCogaW5pdGlhdG9yRWxlbWVudCA9IDApOwogICAgIC8vIFJldHVybnMgYSBTdHlsZUNhY2hl
ZEltYWdlIGlmIHRoZSBpbWFnZSBpcyBjYWNoZWQgYWxyZWFkeSwgb3RoZXJ3aXNlIGEgU3R5bGVQ
ZW5kaW5nSW1hZ2UuCiAgICAgU3R5bGVJbWFnZSogY2FjaGVkT3JQZW5kaW5nSW1hZ2UoKTsKIApA
QCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VWYWx1ZShD
bGFzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsKTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNh
Y2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAg
IFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29u
c3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQgPSAwKTsKICAgICBTdHJp
bmcgY2FjaGVkSW1hZ2VVUkwoKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVkSW1hZ2UoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDEyYzYwNDY5MTdmZDAzOTM0YmI0OTMx
NzRkZmVjMTZmZDcyMGVmMTEuLjk5ZTljNzAwZjNjOGI0ZmE0NTQ2YzczNTIzMGU1Y2FhMjRiMzg5
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTUwNTMsNyArNTA1Myw3
IEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFn
ZShTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGluCiAKICAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJ
bWFnZVZhbHVlKCkpIHsKICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRp
bmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2Fj
aGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1
ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIG1fZWxlbWVudCk7CiAgICAgfQog
CiAgICAgaWYgKHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0MmU4NjU3
NzMwN2VjMjQwMzJkMjZjMDRmODUuLjMxNDZlYzNjZDBhNDBkOWRhN2E3YWZkY2VhMjFiNzUzZTZi
MWU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHlsZVNo
ZWV0Q29udGVudHMuaCIKQEAgLTExNyw2ICsxMTgsNyBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6
cmVxdWVzdFN0eWxlU2hlZXQoKQogICAgIH0KIAogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJz
ZXQoKSk7CisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlz
VXNlclN0eWxlU2hlZXQoKSkKICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCmluZGV4
IDY3ZTg0ZTNjOWI5ODNhYmIwODI0MTIwNzU5ZTM4ODgwNTNjZmM4YmEuLjZmZTk0OGQ0YTdlNTE2
YzAzNjA4MzdkNDM0YTZlMjdhYjA0NjQ5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAtNTQsNiArNTUsNyBAQCBDYWNoZWRTVkdE
b2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZGVyKQogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCiAgICAgICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRp
YXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3Vt
ZW50KCkpOwogICAgICAgICBtX2RvY3VtZW50ID0gbG9hZGVyLT5yZXF1ZXN0U1ZHRG9jdW1lbnQo
cmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZh
bHVlLmNwcAppbmRleCBmYTA0MTkwYzNkYzhlM2FkYjQzMWFiMDNhOGZkMWExZTE4MDA0YmE5Li4z
NTE4N2Y4MjA0MGUxNjAzMzY5ZDZhMmRiMmNlNWU4ODYxYzM5YzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlN0
eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCkBAIC02
MSw2ICs2Miw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2Fj
aGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgICAgIG1fYWNjZXNzZWRT
aGFkZXIgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwor
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFk
ZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpj
cmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKaW5kZXggY2ZkZDFhNDM2OTgwZDFiMDAyNjJjMTE4Y2MyNjlmNzNjMmNjMzIyMC4u
NGZhNTU5ZThmYjgyYjVjZDI4NDdiM2RhMDIwNzkzNmE1MTcxNTcxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjY2LDYgKzI2Niw3IEBAIGJvb2wgU2NyaXB0RWxlbWVu
dDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKICAgICAgICAgICAgIHVw
ZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVu
dGlhbHMpOwogICAgICAgICB9CiAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChzY3JpcHRDaGFy
c2V0KCkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihlbGVtZW50KCkpOwogCiAgICAg
ICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwogICAgICAgICBtX2lzRXh0ZXJuYWxT
Y3JpcHQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4
IDdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUyYzYyMDliM2Y0NGI0MzMuLjRhM2RjZmM0YWNmZjhm
YWJjYzRhYTZiZDg3NmJjZTQyOGQ4ZTQ0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAKQEAgLTIyMiw2ICsyMjIsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJv
Y2VzcygpCiAgICAgICAgIC8vIExvYWQgc3R5bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBm
b3IgdGhlIHJlbmRlcmluZyBpbW1lZGlhdGVseSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFBy
aW9yaXR5VW5yZXNvbHZlZCA6IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKG1fdXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgp
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsK
ICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDI5ZjFjY2Q0NjhiYWRk
OGRlNWMzYjE5ZTcyZjJkODUyY2QzMDA4OTMuLjE1MGNlOGExMGFmYjkyZTk2ODNjYTFlZTEwMzU5
MTQyY2I0Y2Q2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1By
ZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVs
b2FkU2Nhbm5lci5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZENTU1N0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKQEAgLTE5Niw3ICsxOTgsOCBAQCB2
b2lkIENTU1ByZWxvYWRTY2FubmVyOjplbWl0UnVsZSgpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKCJpbXBvcnQiLCBtX3J1bGUuY2hhcmFjdGVycygpLCBtX3J1bGUubGVuZ3RoKCkpKSB7CiAg
ICAgICAgIFN0cmluZyB2YWx1ZSA9IHBhcnNlQ1NTU3RyaW5nT3JVUkwobV9ydWxlVmFsdWUuY2hh
cmFjdGVycygpLCBtX3J1bGVWYWx1ZS5sZW5ndGgoKSk7CiAgICAgICAgIGlmICghdmFsdWUuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX2RvY3VtZW50
LT5jb21wbGV0ZVVSTCh2YWx1ZSkpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHZhbHVlKSkp
OworICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycygpLmNzcywgbV9kb2N1bWVudCk7CiAgICAgICAgICAgICBtX2RvY3VtZW50LT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5wcmVsb2FkKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNo
ZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgbV9zY2FubmluZ0JvZHkpOwogICAgICAgICB9CiAgICAg
ICAgIG1fc3RhdGUgPSBJbml0aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmgKaW5kZXggYzNkYmI4MDBlZGQ4ZWExMGFiMjRlYjNjMTIzYjdjYTk4
ZjJjYjQyNy4uYjE2YTYyOTI1ZTEwNjE1YTkyNDNjOTI0YmNlZTdhMGNjMGQxZDMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIEhUTUxUb2tlbjsKIGNsYXNzIENTU1ByZWxvYWRTY2FubmVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDU1NQcmVsb2FkU2Nhbm5lcik7CiBwdWJsaWM6Ci0gICAg
Q1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBDU1NQcmVsb2FkU2Nh
bm5lcihEb2N1bWVudCopOwogCiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc2Nhbihjb25z
dCBIVE1MVG9rZW4mLCBib29sIHNjYW5uaW5nQm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAyMzAzOGJkMGJjZWEwOGQ5
ZTI1ZWVjZmNkZjU0YzQ4ZmMxNGIwMzdhLi45NjU0YzhkOGRjMGQ2YTdjZWJjYjE0MmNiM2IxMmQ5
ZjJhMjVkMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJl
bG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVs
b2FkU2Nhbm5lci5jcHAKQEAgLTEyNyw3ICsxMjcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9h
ZGVyID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0ID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fdXJsVG9Mb2FkLCBiYXNl
VVJMKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3VybFRvTG9hZCwgYmFzZVVSTCkpKTsKKyAgICAg
ICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGFnTmFtZSgpLCBkb2N1bWVudCk7CiAgICAgICAgIGlm
IChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnKQogICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBz
Y2FubmluZ0JvZHkpOwogICAgICAgICBlbHNlIGlmIChtX3RhZ05hbWUgPT0gaW1nVGFnIHx8ICht
X3RhZ05hbWUgPT0gaW5wdXRUYWcgJiYgbV9pbnB1dElzSW1hZ2UpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzEyYmUyZmY5ZDQ1NTc0ZTQxZDRmNDcwOGNiOTZiYjRk
NWE3ZWM0Yi4uZTIyNDdkMjU0YzdmODYwOWVmNmVhMmE5NzczYjVmOWY3ZDFiNjk1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0xNzksNiArMTc5LDcgQEAgdm9pZCBJ
bWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBuZXdJbWFnZSA9IDA7CiAgICAgaWYgKCFhdHRyLmlzTnVsbCgpICYmICFz
dHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0cikuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0
SW5pdGlhdG9yKGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCkpOwogCiAgICAgICAgIFN0cmluZyBj
cm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+c291cmNlRWxlbWVudCgpLT5mYXN0R2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdp
bk1vZGUuaXNOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ0Y2JhMDU5MTMxOTAwZTE5MGNjZjU4ZTZm
ZTBkMTZkOGQwNzU1NTYuLjgzYTVhMWNlNjc0Y2M3MmM1ZjExMDA5NmNiMzQ4YWIwODI1ZTRkNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291CiAg
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KLSAgICByZXF1ZXN0LnNldERl
ZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8g
RGVmZXJyZWRCeUNsaWVudCA6IE5vRGVmZXIpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50
RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGllbnQgOiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5v
RGVmZXIpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQog
CkBAIC00NTgsNyArNDU4LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHko
KSk7Ci0gICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgp
KSAmJiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgeworICAgIGlmICgocG9saWN5ICE9IFVz
ZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgewogICAgICAgICByZXNvdXJjZS0+bG9hZCh0
aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBp
bW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgpAQCAt
NTEwLDcgKzUxMCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlCiAgICAgcmV0dXJuIHJlc291
cmNlOwogfQogCi1DYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGZvclByZWxvYWQs
IENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291cmNlLCBEZWZlck9wdGlvbiBkZWZlcikgY29u
c3QKK0NhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlw
ZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVk
UmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJP
cHRpb24gZGVmZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFleGlzdGluZ1Jlc291cmNlKQogICAgICAg
ICByZXR1cm4gTG9hZDsKQEAgLTUzOSw3ICs1MzksNyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlk
YQogCiAgICAgLy8gRG8gbm90IGxvYWQgZnJvbSBjYWNoZSBpZiBpbWFnZXMgYXJlIG5vdCBlbmFi
bGVkLiBUaGUgbG9hZCBmb3IgdGhpcyBpbWFnZSB3aWxsIGJlIGJsb2NrZWQKICAgICAvLyBpbiBD
YWNoZWRJbWFnZTo6bG9hZC4KLSAgICBpZiAoRGVmZXJyZWRCeUNsaWVudCA9PSBkZWZlcikKKyAg
ICBpZiAoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlcnJlZEJ5Q2xpZW50ID09IGRlZmVyKQog
ICAgICAgICByZXR1cm4gUmVsb2FkOwogICAgIAogICAgIC8vIERvbid0IHJlbG9hZCByZXNvdXJj
ZXMgd2hpbGUgcGFzdGluZy4KQEAgLTc2NCw4ICs3NjQsOCBAQCB2b2lkIENhY2hlZFJlc291cmNl
TG9hZGVyOjpkZWNyZW1lbnRSZXF1ZXN0Q291bnQoY29uc3QgQ2FjaGVkUmVzb3VyY2UqIHJlcykK
ICAgICAtLW1fcmVxdWVzdENvdW50OwogICAgIEFTU0VSVChtX3JlcXVlc3RDb3VudCA+IC0xKTsK
IH0KLSAgICAKLXZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KQorCit2b2lkIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9t
Qm9keSkKIHsKICAgICAvLyBGSVhNRTogUmlwIHRoaXMgb3V0IHdoZW4gd2UgYXJlIHN1cmUgaXQg
aXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSAoZXZlbiBmb3IgbW9iaWxlKS4KICAgICBVTlVTRURfUEFS
QU0ocmVmZXJlbmNlZEZyb21Cb2R5KTsKQEAgLTc4MCwxMiArNzgwLDEyIEBAIHZvaWQgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXF1ZXN0JiByCiAgICAgICAgIGlmICghaGFzUmVuZGVyaW5nICYmICFjYW5CbG9ja1BhcnNl
cikgewogICAgICAgICAgICAgLy8gRG9uJ3QgcHJlbG9hZCBzdWJyZXNvdXJjZXMgdGhhdCBjYW4n
dCBibG9jayB0aGUgcGFyc2VyIGJlZm9yZSB3ZSBoYXZlIHNvbWV0aGluZyB0byBkcmF3LgogICAg
ICAgICAgICAgLy8gVGhpcyBoZWxwcyBwcmV2ZW50IHByZWxvYWRzIGZyb20gZGVsYXlpbmcgZmly
c3QgZGlzcGxheSB3aGVuIGJhbmR3aWR0aCBpcyBsaW1pdGVkLgotICAgICAgICAgICAgUGVuZGlu
Z1ByZWxvYWQgcGVuZGluZ1ByZWxvYWQgPSB7IHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQgfTsKKyAg
ICAgICAgICAgIFBlbmRpbmdQcmVsb2FkIHBlbmRpbmdQcmVsb2FkID0geyB0eXBlLCByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0IH07CiAgICAgICAgICAgICBtX3BlbmRpbmdQcmVs
b2Fkcy5hcHBlbmQocGVuZGluZ1ByZWxvYWQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJlcXVlc3RQcmVsb2FkKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQpOwor
ICAgIHJlcXVlc3RQcmVsb2FkKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCBjaGFyc2V0KTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5k
aW5nUHJlbG9hZHMoKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKaW5kZXggZTJlMmFlNDk3MjVjNTkxMmVjMWM1MDdmYjU4Nzk4NDM0
ODViNmE5NS4uYzViMjM2NTBkZWEzMWIyZTBkMWM5ZGIxMmFmZTQzYzE3ODMwZjc0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
QEAgLTI2LDkgKzI2LDEwIEBACiAjaWZuZGVmIENhY2hlZFJlc291cmNlTG9hZGVyX2gKICNkZWZp
bmUgQ2FjaGVkUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCi0jaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CkBAIC00NCw3ICs0NSw2IEBAIGNsYXNzIENh
Y2hlZFNWR0RvY3VtZW50OwogY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwog
Y2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2U7Ci1jbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBj
bGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0
VHJhY2s7CkBAIC02OSw3ICs2OSw2IEBAIGZyaWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVu
ZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKLSAg
ICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VM
b2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwog
CkBAIC0xMzEsNyArMTMwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQcmVsb2FkZWQoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJQcmVsb2FkcygpOwogICAg
IHZvaWQgY2xlYXJQZW5kaW5nUHJlbG9hZHMoKTsKLSAgICB2b2lkIHByZWxvYWQoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgYm9v
bCByZWZlcmVuY2VkRnJvbUJvZHkpOworICAgIHZvaWQgcHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6
VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29s
IHJlZmVyZW5jZWRGcm9tQm9keSk7CiAgICAgdm9pZCBjaGVja0ZvclBlbmRpbmdQcmVsb2Fkcygp
OwogICAgIHZvaWQgcHJpbnRQcmVsb2FkU3RhdHMoKTsKICAgICBib29sIGNhblJlcXVlc3QoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtVUkwmLCBib29sIGZvclByZWxvYWQgPSBmYWxzZSk7
CkBAIC0xNDksNyArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQpOwogCiAgICAgZW51bSBSZXZhbGlkYXRpb25Qb2xpY3kgeyBVc2UsIFJldmFsaWRhdGUsIFJl
bG9hZCwgTG9hZCB9OwotICAgIFJldmFsaWRhdGlvblBvbGljeSBkZXRlcm1pbmVSZXZhbGlkYXRp
b25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZm9y
UHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIERlZmVyT3B0aW9uKSBj
b25zdDsKKyAgICBSZXZhbGlkYXRpb25Qb2xpY3kgZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5
KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGZvclByZWxvYWQs
IENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291cmNlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6
OkRlZmVyT3B0aW9uKSBjb25zdDsKICAgICAKICAgICB2b2lkIG5vdGlmeUxvYWRlZEZyb21NZW1v
cnlDYWNoZShDYWNoZWRSZXNvdXJjZSopOwogICAgIGJvb2wgY2hlY2tJbnNlY3VyZUNvbnRlbnQo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtVUkwmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXgg
NmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNlZmI2MjU4YzVlYzlmMi4uN2JlNzM0OWRiOTVmYjc1
MDJmMDM2ZDVmZjI1Y2FhODNmMWU1Y2VjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTI2LDYgKzI2LDEwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9h
ZFByaW9yaXR5IHByaW9yaXR5KQpAQCAtMzQsNyArMzgsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdQogICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCkpCiAgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQogICAgICwgbV9m
b3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9E
ZWZlcikKKyAgICAsIG1fZGVmZXIoTm9EZWZlcikKIHsKIH0KIApAQCAtNDMsNyArNDcsNyBAQCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBt
X3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkKICAgICAsIG1fZm9yUHJl
bG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIp
CisgICAgLCBtX2RlZmVyKE5vRGVmZXIpCiB7CiB9CiAKQEAgLTUyLDggKzU2LDQ4IEBAIENhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKICAgICAsIG1fcHJpb3JpdHkocHJpb3Jp
dHkpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCi0gICAgLCBtX2RlZmVyKENhY2hlZFJlc291
cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwgbV9kZWZlcihOb0RlZmVyKQoreworfQorCitDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6On5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKQoreworfQorCit2b2lk
IENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCkKIHsKKyAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiAhbV9pbml0aWF0
b3JEb2N1bWVudCk7CisgICAgbV9pbml0aWF0b3JFbGVtZW50ID0gZWxlbWVudDsKIH0KIAordm9p
ZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50KQoreworICAgIEFTU0VSVCghbV9p
bml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRpYXRvckRvY3VtZW50KTsKKyAgICBtX2luaXRpYXRv
ck5hbWUgPSBuYW1lOworICAgIG1faW5pdGlhdG9yRG9jdW1lbnQgPSBkb2N1bWVudDsKIH0KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUo
KSBjb25zdAoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBt
X2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFtZSgpOworICAgIGlmICghbV9pbml0aWF0b3JOYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsKKworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwgKCJyZXNvdXJjZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1cm4gZGVmYXVsdE5h
bWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnQ+IENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAg
IHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgcmV0dXJuIG1faW5p
dGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVt
ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggY2IwNDNkZmUzOWZl
NGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJmNC4uNGFhMzBkNDUzMTMxZjI2MjY3MDU3N2ZlYmNm
NzA2NDk0YzJlNzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMjYsMjcgKzI2LDQxIEBACiAjaWZuZGVmIENhY2hl
ZFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKLSNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFBy
aW9yaXR5LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CiBw
dWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQg
fTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJp
b3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwogICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIH5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKTsK
IAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJu
IG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0
IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsgfQogICAgIHZvaWQg
c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsg
fQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQogICAgIFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAg
IGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yUHJlbG9hZDsgfQogICAgIHZv
aWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJl
bG9hZDsgfQotICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAgICB2b2lkIHNldERlZmVyKENhY2hlZFJlc291cmNl
TG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7IH0KKyAgICBEZWZl
ck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAgICB2b2lkIHNldERl
ZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQorICAgIHZvaWQgc2V0
SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudD4pOworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFtZSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IGluaXRpYXRvckRvY3VtZW50KCk7CisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBpbml0
aWF0b3JFbGVtZW50KCk7CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3Vy
Y2VSZXF1ZXN0OwpAQCAtNTQsNyArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7
CiAgICAgYm9vbCBtX2ZvclByZWxvYWQ7Ci0gICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVy
T3B0aW9uIG1fZGVmZXI7CisgICAgRGVmZXJPcHRpb24gbV9kZWZlcjsKKyAgICBSZWZQdHI8RWxl
bWVudD4gbV9pbml0aWF0b3JFbGVtZW50OworICAgIFJlZlB0cjxEb2N1bWVudD4gbV9pbml0aWF0
b3JEb2N1bWVudDsKKyAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JOYW1lOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ2MzE0NWMyY2UyMTRkZTMxZmQ1MjZjM2U0N2MzN2MzM2M2Yzg2NzkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKQorICAgIDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKQorICAgICwgaWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MmM1ZDg5ZjIyY2MxZWYxYzAxZjI1MTNk
ZThlY2JmOWYxMzlhODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzX2gKKyNkZWZpbmUgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yc19oCisKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RydWN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMgeworICAg
IGNvbnN0IEF0b21pY1N0cmluZyBjc3M7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGljb247Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHJpdmF0ZToKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCk7CisgICAgZnJpZW5kIGNsYXNzIFRocmVhZEdsb2JhbERhdGE7Cit9
OworCitpbmxpbmUgY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyYgY2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpCit7CisgICAgcmV0dXJuIHRocmVhZEdsb2JhbERh
dGEoKS5jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwCmluZGV4IDhjOWQwY2VjYmZjZDEyYjdlYWExYzRhOGM4NzBmMTY0MjU1N2Y3NDUuLmUw
NzEwOGU0Y2QyZGU0Y2RmOGJlODA4NmZkMWRkNjIwOWY4NDQ0MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
Q2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTY2LDYgKzY3LDcgQEAgdm9p
ZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24p
OwogI2VuZGlmCiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3Jp
dHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5pY29uLCBtX2ZyYW1lLT5kb2N1bWVudCgp
KTsKIAogICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3Vy
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCmluZGV4
IGRhODQ2ZjhkYmMyYjZlMWVmMzcwM2ZkODNkODZhMGU1NDgxYTkyMGMuLmJjMWQ2NWUyNjYyMzVm
ZWEwZTVkMWU2MGM4YzZkYTE5MzM0MmEzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RocmVhZEdsb2JhbERhdGEuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogCisjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvdW50ZXJzLmgi
CkBAIC01OSw3ICs2MCw4IEBAIFRocmVhZEdsb2JhbERhdGEqIFRocmVhZEdsb2JhbERhdGE6OnN0
YXRpY0RhdGE7CiAjZW5kaWYKIAogVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSgp
Ci0gICAgOiBtX2V2ZW50TmFtZXMoYWRvcHRQdHIobmV3IEV2ZW50TmFtZXMpKQorICAgIDogbV9j
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzKSkKKyAgICAsIG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZl
bnROYW1lcykpCiAgICAgLCBtX3RocmVhZFRpbWVycyhhZG9wdFB0cihuZXcgVGhyZWFkVGltZXJz
KSkKICAgICAsIG1feG1sVHlwZVJlZ0V4cChhZG9wdFB0cihuZXcgWE1MTUlNRVR5cGVSZWdFeHAp
KQogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERh
dGEuaAppbmRleCA0MmYwNWFmZTM4OTNmNzNkOWQ3ZWZmNDg1MmI5ZWYxOGZkOWFkNjYyLi5lZWYy
MmY2NjJlNTU4NGM3MWY5YzcxMWVlMWQxNjEwYTI3NDE1M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCkBAIC00MSw2ICs0MSw3IEBAIHVzaW5nIFdURjo6
VGhyZWFkU3BlY2lmaWM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsKICAgICBjbGFzcyBFdmVudE5hbWVzOwogICAgIGNsYXNz
IFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM7CiAgICAgY2xhc3MgVGhyZWFkVGltZXJzOwpA
QCAtNTYsNiArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5UaHJlYWRHbG9i
YWxEYXRhKCk7CiAgICAgICAgIHZvaWQgZGVzdHJveSgpOyAvLyBjYWxsZWQgb24gd29ya2VycyB0
byBjbGVhbiB1cCB0aGUgVGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgdGhlIHRocmVhZCBleGl0cy4K
IAorICAgICAgICBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzJiBjYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkgeyByZXR1cm4gKm1fY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9yczsgfQogICAgICAgICBFdmVudE5hbWVzJiBldmVudE5hbWVzKCkgeyByZXR1
cm4gKm1fZXZlbnROYW1lczsgfQogICAgICAgICBUaHJlYWRUaW1lcnMmIHRocmVhZFRpbWVycygp
IHsgcmV0dXJuICptX3RocmVhZFRpbWVyczsgfQogICAgICAgICBYTUxNSU1FVHlwZVJlZ0V4cCYg
eG1sVHlwZVJlZ0V4cCgpIHsgcmV0dXJuICptX3htbFR5cGVSZWdFeHA7IH0KQEAgLTczLDYgKzc1
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICBwcml2YXRlOgorICAgICAg
ICBPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycz4gbV9jYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzOwogICAgICAgICBPd25QdHI8RXZlbnROYW1lcz4gbV9ldmVudE5h
bWVzOwogICAgICAgICBPd25QdHI8VGhyZWFkVGltZXJzPiBtX3RocmVhZFRpbWVyczsKICAgICAg
ICAgT3duUHRyPFhNTE1JTUVUeXBlUmVnRXhwPiBtX3htbFR5cGVSZWdFeHA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4N2ZmMGQ2ODEyNzQ0NjBlYTc5Nzhh
ZmU4N2ZhMjczOTY4ODU3ZWJhLi5lYWZlYTFhODZhMTIyMmVkODNkMTRhNTNkYWJiY2RiZjIyMzRm
Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTgyLDYg
KzgyLDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMo
KQogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UoKQogewogICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChvd25lckRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpKTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0
aGlzKTsKICAgICBtX2NhY2hlZEltYWdlID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCiAgICAgaWYgKG1fY2FjaGVkSW1hZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGMzNGZl
ZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNkZDM3NDhhOGIuLjNiMmQ0OTViOTY1MDk4MDIxNzIy
NzNmNzUyMmRlNDFjNTRjNzBmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZVVyaUVsZW1lbnQuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVt
ZW50Ojpsb2FkRm9udCgpCiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hl
ZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkpOworICAgICAg
ICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gY2Fj
aGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgICAgICBpZiAobV9j
YWNoZWRGb250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVudCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA2MDQ2ZWM2MWI3NGZjMTJlYjEz
YWMyMDcyNDRhNmM2ODE2NTQ3NDc2Li5mMWUxYzAzMjQwNTM0OGMzNTkwYzM3YmU0YmI0Y2EyMDJl
ZTA2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yNTYsNiArMjU2
LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChocmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFnbWVudElkZW50
aWZpZXIoKSkgewogICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50ID0g
ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNWR0RvY3VtZW50KHJl
cXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50KQogICAgICAgICAg
ICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174440</attachid>
            <date>2012-11-15 07:49:51 -0800</date>
            <delta_ts>2012-11-27 02:10:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101935-20121115164748.patch</filename>
            <type>text/plain</type>
            <size>49531</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY5MWJjOWU0OGFiNmUx
OTBkODUzM2I5MDk3YmQ5Y2Y1YzMxZjdhYi4uOTlmYWQyNzI5NTRhOGI1NWYyZWZmMjcwOTcwNjFk
MGMxZWJlYzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTExLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaW5pdGlhdG9y
IHRvIENhY2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCisKKyAgICAgICAgTW90aXZhdGlvbjogQ2hyb21pdW0gbmVlZHMgdG8ga25vdyB3aGljaCBl
bGVtZW50cyByZXF1ZXN0IGEKKyAgICAgICAgcmVzb3VyY2UgKHN1Y2ggYXMgYW4gaW1hZ2Ugb3Ig
YSBzY3JpcHQpIChidWcgOTI3NjEpLiBJbiBhZGRpdGlvbiwKKyAgICAgICAgZm9yIGV4cG9zaW5n
IHJlc291cmNlIHRpbWluZyBpbmZvcm1hdGlvbiAoYnVnIDg0ODgzKSB3ZSBuZWVkIHRvCisgICAg
ICAgIHN0b3JlIHRoZSBpbml0aWF0b3IsIGFuZCB0aGlzIGlzIHRoZSBmaXJzdCBzdGVwIHRvd2Fy
ZHMgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBObyB2aXNpYmxlIGNoYW5nZSBpbiBiZWhh
dmlvci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmNh
Y2hlZEltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAg
KiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNl
dFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENT
U0ltYWdlVmFsdWUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2UpOgorICAgICAgICAqIGNz
cy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0
OjpyZXF1ZXN0U3R5bGVTaGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6
bG9hZCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6
OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJl
bG9hZFNjYW5uZXI6OmVtaXRSdWxlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2Fk
U2Nhbm5lci5oOgorICAgICAgICAoQ1NTUHJlbG9hZFNjYW5uZXIpOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2Fk
VGFzazo6cHJlbG9hZCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnByZWxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6fkNhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvckVsZW1lbnQpOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRPcHRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGVmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZlcik6CisgICAgICAgIChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOgorICAgICAgICAqIGxvYWRlci9p
Y29uL0ljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6c3RhcnRM
b2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycyk6CisgICAgICAgIChUaHJlYWRHbG9iYWxEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6
OnJlcXVlc3RJbWFnZVJlc291cmNlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZv
bnQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorCiAyMDEyLTExLTEzICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEzNDM5MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGIwZmE0OTky
M2IzZjNkZGQ3MzM2YmI4ZmU4MzdmODI2OWI3ZDU1NC4uMzA3MDcyYmY3ZTQzOGM4YzM4NmI0ODhi
ZTUxOTVmOGFjMzk2NDhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2ODEsNiArMTY4MSw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAogICAg
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAogICAgIGxv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDI0NGMwZjc0NTgwZDdmMTU5YzBlMDI1ZTg4NGViNWMwMTY1ODQzMzUuLmVkYmIx
NTU2YzFhN2Y3NzZiZjYzNjFjZjIxZjRmMDBjOGM3MDFlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMzgyNCw2ICszODI0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCisJU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA1ZGQ4MWVkMmY4Nzk3OTAxOTJkZjdiOTE4MWJlZjczY2QzOGRjNmZkLi4wOThmMGMyNmYw
Mzg3YzFiOWI4MWQ3OGQ4ZjYxZGM0OWVmMGVlMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgyMiw2ICs4
MjIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
XAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIFwKKyAgICBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAogICAgIGxvYWRl
ci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
IFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCkBAIC0xOTU0LDYg
KzE5NTUsOCBAQCBIRUFERVJTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sLmggXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggXAog
ICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAogICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwK
ICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggXAogICAgIGxvYWRlci9Gb3Jt
U3RhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjk0ZGZkMDU5NzU2YjUzNWQzOTViZGYyMGE4
MGE0NGI4MGRlNGE2NC4uYWU5MDZiMDlkOTU1MTc4OGI2NDkyNmFhNjJlOGQ2YTMxYWVhYmIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA5LDYgKzIwOSw3IEBACiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hl
ZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApA
QCAtMzAyNiw2ICszMDI3LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc3Yzg1ZTUxMjM0MDFlN2U4
ODNiNGVkMDJkYjk2MTU0Y2I5YzhhNTMuLjRlYWMzMmMzMmUxNGFiMDM3MTQ1NDhkYWI5ZGFiOGU2
YTIxZWJmNDUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yODE3MCw2ICsyODE3MCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGI1MDFlOWI3OWY3OTA1YzM3Mzg4N2Q0M2U2NjZmZmZiZWY4NjhkNzIuLjQ0MTlhNjFi
ODNlYmVhMzc3M2NhN2E0YmNmZmFiMDllOGZlNjQzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MzksNiArMTgzOSw4IEBA
CiAJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTBFOTQzMTEzM0M4OUYwMEI0
Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2NUZFQTg2OTA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUZFQTg2ODA5ODMz
QURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87IH07CiAJCTZCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0
MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4
OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2
Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkM2Mzg4OTZBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VF
NTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovOyB9Owog
CQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4
NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2
MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8q
IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIz
MDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyog
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07CkBAIC05MDc2LDYgKzkwNzgs
OCBAQAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZl
SW1hZ2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdl
UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODkzQTk2Q0NFRTUwQzhD
OTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgcGF0aCA9IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3Jh
cGhpY3NDb250ZXh0M0RDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHQzRENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI1OSw2
ICsxOTI2Myw4IEBACiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlTG9hZGVyLmggKi8sCiAJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAgKi8sCiAJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5oICovLAorCQkJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAv
KiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLywKKwkJCQk2QzYzODg5M0E5
NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovLAog
CQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJ
CUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4
QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNTcwLDYg
KzIyNTc2LDcgQEAKIAkJCQlFNDdCNEJFODBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTA4MUUzRTAzQ0ZG
ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2
OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAz
OEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNjE2Niw2ICsyNjE3Myw3IEBACiAJCQkJRTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENh
Y2hlZFJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzIzMDk3
OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAz
OEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAK
aW5kZXggMGZhYTgxM2IxZWJlMTI3ZjI1YzNiNmM1NjQ3NTc2YjU1N2JmZjRiMi4uZWVmMGE0Nzhi
ZGEwYjY5YTQ3MmQwN2I4YzgyNGY4MzM5ZDlmYjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIFN0eWxlQ2FjaGVkSW1h
Z2UqIENTU0N1cnNvckltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAgICAgaWYgKGlzU1ZHQ3Vyc29ySWRlbnRpZmllcih1cmwoKSkgJiYgbG9hZGVy
ICYmIGxvYWRlci0+ZG9jdW1lbnQoKSkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGZh
aWwgaWYgdGhlIDxjdXJzb3I+IGVsZW1lbnQgaXMgaW4gYSBzaGFkb3cgRE9NIChidWcgNTk4Mjcp
CiAgICAgICAgIGlmIChTVkdDdXJzb3JFbGVtZW50KiBjdXJzb3JFbGVtZW50ID0gcmVzb3VyY2VS
ZWZlcmVuY2VkQnlDdXJzb3JFbGVtZW50KHVybCgpLCBsb2FkZXItPmRvY3VtZW50KCkpKQotICAg
ICAgICAgICAgcmV0dXJuIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKGxvYWRlciwgY3Vyc29y
RWxlbWVudC0+aHJlZigpKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NJbWFnZVZhbHVlOjpjYWNo
ZWRJbWFnZShsb2FkZXIsIGN1cnNvckVsZW1lbnQtPmhyZWYoKSwgY3Vyc29yRWxlbWVudCk7CiAg
ICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cAppbmRleCAzNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmLi4wNzc4MmFj
MjE5ZDI2MTU0MzQ2NmI1OTNiOGE2OWY3NjI2NTkyZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ2Fj
aGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk3LDYgKzk4LDcgQEAgQ2Fj
aGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1l
bnQpCiB7CiAgICAgaWYgKCFtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jl
c291cmNlKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCkuY3NzLCBkb2N1bWVudCk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9
IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsK
ICAgICB9CiAgICAgcmV0dXJuIG1fY2FjaGVkRm9udC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCBmN2Q0MDFmNWNmNjc0OTAyMTg4NjAzZDIwOGRlMmQ2
M2I5YzZjYWUwLi5lYmM3NGM3MTdkZDRjMjQyYTMzMjM1YmMxNGZlNWFhOThjNTkzYTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMTAsNiAr
MTExLDcgQEAgU3R5bGVDYWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1h
Z2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWQKICAgICAgICAgLy8gYW5kIGFueSBDU1Mg
dHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjk4
CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVzdEltYWdlRm9yU2NhbGVGYWN0b3Io
KTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CisgICAg
ICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMo
KS5jc3MsIGRvY3VtZW50KTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKSB7CiAg
ICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5bGVDYWNoZWRJbWFnZVNldDo6Y3JlYXRlKGNhY2hl
ZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZhY3RvciwgdGhpcyk7CiAgICAgICAgICAgICBtX2Fj
Y2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAppbmRleCA2YjczZDQ2MzFhMGYwMDI0ZjJlYzZmM2M2NDg1ODE2NDk4NDEwNGY3Li45NTdhMjIx
M2NkZDFkMmYxMzNjYzA3Y2M0MzI5MDFiYmVhNmUzYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlVmFsdWUuY3BwCkBAIC0yNyw3ICsyNyw5IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZVBlbmRpbmdJbWFnZS5oIgpAQCAtNjksMTQgKzcxLDE0IEBAIFN0eWxlSW1hZ2UqIENT
U0ltYWdlVmFsdWU6OmNhY2hlZE9yUGVuZGluZ0ltYWdlKCkKICAgICByZXR1cm4gbV9pbWFnZS5n
ZXQoKTsKIH0KIAotU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Uo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKK1N0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdl
VmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIEVsZW1lbnQq
IGluaXRpYXRvckVsZW1lbnQpCiB7CiAgICAgaWYgKGlzQ3Vyc29ySW1hZ2VWYWx1ZSgpKQogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZSo+KHRoaXMpLT5jYWNo
ZWRJbWFnZShsb2FkZXIpOwotICAgIHJldHVybiBjYWNoZWRJbWFnZShsb2FkZXIsIG1fdXJsKTsK
KyAgICByZXR1cm4gY2FjaGVkSW1hZ2UobG9hZGVyLCBtX3VybCwgaW5pdGlhdG9yRWxlbWVudCk7
CiB9CiAKLVN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hl
ZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFN0cmluZyYgdXJsKQorU3R5bGVDYWNoZWRJ
bWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxv
YWRlciwgY29uc3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQpCiB7CiAg
ICAgQVNTRVJUKGxvYWRlcik7CiAKQEAgLTg0LDYgKzg2LDEwIEBAIFN0eWxlQ2FjaGVkSW1hZ2Uq
IENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIs
IGNvbnN0CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwodXJsKSkpOworICAgICAgICBpZiAoaW5pdGlhdG9yRWxlbWVudCkKKyAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGluaXRpYXRvckVsZW1lbnQpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCiAgICAgICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJ
bWFnZTo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlVmFsdWUuaAppbmRleCA4YzgyZjJjNjdkYjQzM2E3NTE3MzNjOTY3MWRlOWI5MTUxZTdhOThj
Li41Y2Y1YTFmNTlkNTY2MmFmOTE3NjAwYjhjZDIzZjdjMjc5MTA1MmU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU3R5
bGVDYWNoZWRJbWFnZTsKIGNsYXNzIFN0eWxlSW1hZ2U7CiAKQEAgLTM2LDcgKzM3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ltYWdlVmFsdWU+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHVybCwgU3R5bGVJbWFnZSogaW1hZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NJ
bWFnZVZhbHVlKHVybCwgaW1hZ2UpKTsgfQogICAgIH5DU1NJbWFnZVZhbHVlKCk7CiAKLSAgICBT
dHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciopOworICAg
IFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgRWxl
bWVudCogaW5pdGlhdG9yRWxlbWVudCA9IDApOwogICAgIC8vIFJldHVybnMgYSBTdHlsZUNhY2hl
ZEltYWdlIGlmIHRoZSBpbWFnZSBpcyBjYWNoZWQgYWxyZWFkeSwgb3RoZXJ3aXNlIGEgU3R5bGVQ
ZW5kaW5nSW1hZ2UuCiAgICAgU3R5bGVJbWFnZSogY2FjaGVkT3JQZW5kaW5nSW1hZ2UoKTsKIApA
QCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VWYWx1ZShD
bGFzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsKTsKIAotICAgIFN0eWxlQ2FjaGVkSW1hZ2UqIGNh
Y2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAg
IFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29u
c3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGluaXRpYXRvckVsZW1lbnQgPSAwKTsKICAgICBTdHJp
bmcgY2FjaGVkSW1hZ2VVUkwoKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVkSW1hZ2UoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDEyYzYwNDY5MTdmZDAzOTM0YmI0OTMx
NzRkZmVjMTZmZDcyMGVmMTEuLjk5ZTljNzAwZjNjOGI0ZmE0NTQ2YzczNTIzMGU1Y2FhMjRiMzg5
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTUwNTMsNyArNTA1Myw3
IEBAIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFn
ZShTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGluCiAKICAgICBpZiAocGVuZGluZ0ltYWdlLT5jc3NJ
bWFnZVZhbHVlKCkpIHsKICAgICAgICAgQ1NTSW1hZ2VWYWx1ZSogaW1hZ2VWYWx1ZSA9IHBlbmRp
bmdJbWFnZS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICByZXR1cm4gaW1hZ2VWYWx1ZS0+Y2Fj
aGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICByZXR1cm4gaW1hZ2VWYWx1
ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIG1fZWxlbWVudCk7CiAgICAgfQog
CiAgICAgaWYgKHBlbmRpbmdJbWFnZS0+Y3NzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IGVlYzM1MDc3MWM0Nzk0MmU4NjU3
NzMwN2VjMjQwMzJkMjZjMDRmODUuLjMxNDZlYzNjZDBhNDBkOWRhN2E3YWZkY2VhMjFiNzUzZTZi
MWU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHlsZVNo
ZWV0Q29udGVudHMuaCIKQEAgLTExNyw2ICsxMTgsNyBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6
cmVxdWVzdFN0eWxlU2hlZXQoKQogICAgIH0KIAogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJz
ZXQoKSk7CisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycygpLmNzcywgZG9jdW1lbnQpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlz
VXNlclN0eWxlU2hlZXQoKSkKICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCmluZGV4
IDY3ZTg0ZTNjOWI5ODNhYmIwODI0MTIwNzU5ZTM4ODgwNTNjZmM4YmEuLjZmZTk0OGQ0YTdlNTE2
YzAzNjA4MzdkNDM0YTZlMjdhYjA0NjQ5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAtNTQsNiArNTUsNyBAQCBDYWNoZWRTVkdE
b2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZGVyKQogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCiAgICAgICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRp
YXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzLCBsb2FkZXItPmRvY3Vt
ZW50KCkpOwogICAgICAgICBtX2RvY3VtZW50ID0gbG9hZGVyLT5yZXF1ZXN0U1ZHRG9jdW1lbnQo
cmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZh
bHVlLmNwcAppbmRleCBmYTA0MTkwYzNkYzhlM2FkYjQzMWFiMDNhOGZkMWExZTE4MDA0YmE5Li4z
NTE4N2Y4MjA0MGUxNjAzMzY5ZDZhMmRiMmNlNWU4ODYxYzM5YzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlN0
eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCkBAIC02
MSw2ICs2Miw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2Fj
aGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgICAgIG1fYWNjZXNzZWRT
aGFkZXIgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwor
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzKCkuY3NzLCBsb2FkZXItPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFk
ZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpj
cmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKaW5kZXggY2ZkZDFhNDM2OTgwZDFiMDAyNjJjMTE4Y2MyNjlmNzNjMmNjMzIyMC4u
NGZhNTU5ZThmYjgyYjVjZDI4NDdiM2RhMDIwNzkzNmE1MTcxNTcxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjY2LDYgKzI2Niw3IEBAIGJvb2wgU2NyaXB0RWxlbWVu
dDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKICAgICAgICAgICAgIHVw
ZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVu
dGlhbHMpOwogICAgICAgICB9CiAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChzY3JpcHRDaGFy
c2V0KCkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihlbGVtZW50KCkpOwogCiAgICAg
ICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwogICAgICAgICBtX2lzRXh0ZXJuYWxT
Y3JpcHQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4
IDdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUyYzYyMDliM2Y0NGI0MzMuLjRhM2RjZmM0YWNmZjhm
YWJjYzRhYTZiZDg3NmJjZTQyOGQ4ZTQ0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAKQEAgLTIyMiw2ICsyMjIsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJv
Y2VzcygpCiAgICAgICAgIC8vIExvYWQgc3R5bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBm
b3IgdGhlIHJlbmRlcmluZyBpbW1lZGlhdGVseSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFBy
aW9yaXR5VW5yZXNvbHZlZCA6IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKG1fdXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgp
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsK
ICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDI5ZjFjY2Q0NjhiYWRk
OGRlNWMzYjE5ZTcyZjJkODUyY2QzMDA4OTMuLjE1MGNlOGExMGFmYjkyZTk2ODNjYTFlZTEwMzU5
MTQyY2I0Y2Q2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1By
ZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVs
b2FkU2Nhbm5lci5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZENTU1N0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKQEAgLTE5Niw3ICsxOTgsOCBAQCB2
b2lkIENTU1ByZWxvYWRTY2FubmVyOjplbWl0UnVsZSgpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKCJpbXBvcnQiLCBtX3J1bGUuY2hhcmFjdGVycygpLCBtX3J1bGUubGVuZ3RoKCkpKSB7CiAg
ICAgICAgIFN0cmluZyB2YWx1ZSA9IHBhcnNlQ1NTU3RyaW5nT3JVUkwobV9ydWxlVmFsdWUuY2hh
cmFjdGVycygpLCBtX3J1bGVWYWx1ZS5sZW5ndGgoKSk7CiAgICAgICAgIGlmICghdmFsdWUuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX2RvY3VtZW50
LT5jb21wbGV0ZVVSTCh2YWx1ZSkpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHZhbHVlKSkp
OworICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycygpLmNzcywgbV9kb2N1bWVudCk7CiAgICAgICAgICAgICBtX2RvY3VtZW50LT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5wcmVsb2FkKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNo
ZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgbV9zY2FubmluZ0JvZHkpOwogICAgICAgICB9CiAgICAg
ICAgIG1fc3RhdGUgPSBJbml0aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmgKaW5kZXggYzNkYmI4MDBlZGQ4ZWExMGFiMjRlYjNjMTIzYjdjYTk4
ZjJjYjQyNy4uYjE2YTYyOTI1ZTEwNjE1YTkyNDNjOTI0YmNlZTdhMGNjMGQxZDMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIEhUTUxUb2tlbjsKIGNsYXNzIENTU1ByZWxvYWRTY2FubmVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDU1NQcmVsb2FkU2Nhbm5lcik7CiBwdWJsaWM6Ci0gICAg
Q1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBDU1NQcmVsb2FkU2Nh
bm5lcihEb2N1bWVudCopOwogCiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc2Nhbihjb25z
dCBIVE1MVG9rZW4mLCBib29sIHNjYW5uaW5nQm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAyMzAzOGJkMGJjZWEwOGQ5
ZTI1ZWVjZmNkZjU0YzQ4ZmMxNGIwMzdhLi45NjU0YzhkOGRjMGQ2YTdjZWJjYjE0MmNiM2IxMmQ5
ZjJhMjVkMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJl
bG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVs
b2FkU2Nhbm5lci5jcHAKQEAgLTEyNyw3ICsxMjcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9h
ZGVyID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0ID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fdXJsVG9Mb2FkLCBiYXNl
VVJMKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3VybFRvTG9hZCwgYmFzZVVSTCkpKTsKKyAgICAg
ICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGFnTmFtZSgpLCBkb2N1bWVudCk7CiAgICAgICAgIGlm
IChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnKQogICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBz
Y2FubmluZ0JvZHkpOwogICAgICAgICBlbHNlIGlmIChtX3RhZ05hbWUgPT0gaW1nVGFnIHx8ICht
X3RhZ05hbWUgPT0gaW5wdXRUYWcgJiYgbV9pbnB1dElzSW1hZ2UpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzEyYmUyZmY5ZDQ1NTc0ZTQxZDRmNDcwOGNiOTZiYjRk
NWE3ZWM0Yi4uZTIyNDdkMjU0YzdmODYwOWVmNmVhMmE5NzczYjVmOWY3ZDFiNjk1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0xNzksNiArMTc5LDcgQEAgdm9pZCBJ
bWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBuZXdJbWFnZSA9IDA7CiAgICAgaWYgKCFhdHRyLmlzTnVsbCgpICYmICFz
dHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0cikuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0
SW5pdGlhdG9yKGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCkpOwogCiAgICAgICAgIFN0cmluZyBj
cm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+c291cmNlRWxlbWVudCgpLT5mYXN0R2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdp
bk1vZGUuaXNOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ0Y2JhMDU5MTMxOTAwZTE5MGNjZjU4ZTZm
ZTBkMTZkOGQwNzU1NTYuLjgzYTVhMWNlNjc0Y2M3MmM1ZjExMDA5NmNiMzQ4YWIwODI1ZTRkNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291CiAg
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KLSAgICByZXF1ZXN0LnNldERl
ZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8g
RGVmZXJyZWRCeUNsaWVudCA6IE5vRGVmZXIpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50
RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGllbnQgOiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5v
RGVmZXIpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQog
CkBAIC00NTgsNyArNDU4LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHko
KSk7Ci0gICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgp
KSAmJiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgeworICAgIGlmICgocG9saWN5ICE9IFVz
ZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgewogICAgICAgICByZXNvdXJjZS0+bG9hZCh0
aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBp
bW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgpAQCAt
NTEwLDcgKzUxMCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlCiAgICAgcmV0dXJuIHJlc291
cmNlOwogfQogCi1DYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGZvclByZWxvYWQs
IENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291cmNlLCBEZWZlck9wdGlvbiBkZWZlcikgY29u
c3QKK0NhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlw
ZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgZm9yUHJlbG9hZCwgQ2FjaGVk
UmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIENhY2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJP
cHRpb24gZGVmZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFleGlzdGluZ1Jlc291cmNlKQogICAgICAg
ICByZXR1cm4gTG9hZDsKQEAgLTUzOSw3ICs1MzksNyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlk
YQogCiAgICAgLy8gRG8gbm90IGxvYWQgZnJvbSBjYWNoZSBpZiBpbWFnZXMgYXJlIG5vdCBlbmFi
bGVkLiBUaGUgbG9hZCBmb3IgdGhpcyBpbWFnZSB3aWxsIGJlIGJsb2NrZWQKICAgICAvLyBpbiBD
YWNoZWRJbWFnZTo6bG9hZC4KLSAgICBpZiAoRGVmZXJyZWRCeUNsaWVudCA9PSBkZWZlcikKKyAg
ICBpZiAoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlcnJlZEJ5Q2xpZW50ID09IGRlZmVyKQog
ICAgICAgICByZXR1cm4gUmVsb2FkOwogICAgIAogICAgIC8vIERvbid0IHJlbG9hZCByZXNvdXJj
ZXMgd2hpbGUgcGFzdGluZy4KQEAgLTc2NCw4ICs3NjQsOCBAQCB2b2lkIENhY2hlZFJlc291cmNl
TG9hZGVyOjpkZWNyZW1lbnRSZXF1ZXN0Q291bnQoY29uc3QgQ2FjaGVkUmVzb3VyY2UqIHJlcykK
ICAgICAtLW1fcmVxdWVzdENvdW50OwogICAgIEFTU0VSVChtX3JlcXVlc3RDb3VudCA+IC0xKTsK
IH0KLSAgICAKLXZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIGJvb2wgcmVmZXJlbmNlZEZyb21Cb2R5KQorCit2b2lkIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29sIHJlZmVyZW5jZWRGcm9t
Qm9keSkKIHsKICAgICAvLyBGSVhNRTogUmlwIHRoaXMgb3V0IHdoZW4gd2UgYXJlIHN1cmUgaXQg
aXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSAoZXZlbiBmb3IgbW9iaWxlKS4KICAgICBVTlVTRURfUEFS
QU0ocmVmZXJlbmNlZEZyb21Cb2R5KTsKQEAgLTc4MCwxMiArNzgwLDEyIEBAIHZvaWQgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXF1ZXN0JiByCiAgICAgICAgIGlmICghaGFzUmVuZGVyaW5nICYmICFjYW5CbG9ja1BhcnNl
cikgewogICAgICAgICAgICAgLy8gRG9uJ3QgcHJlbG9hZCBzdWJyZXNvdXJjZXMgdGhhdCBjYW4n
dCBibG9jayB0aGUgcGFyc2VyIGJlZm9yZSB3ZSBoYXZlIHNvbWV0aGluZyB0byBkcmF3LgogICAg
ICAgICAgICAgLy8gVGhpcyBoZWxwcyBwcmV2ZW50IHByZWxvYWRzIGZyb20gZGVsYXlpbmcgZmly
c3QgZGlzcGxheSB3aGVuIGJhbmR3aWR0aCBpcyBsaW1pdGVkLgotICAgICAgICAgICAgUGVuZGlu
Z1ByZWxvYWQgcGVuZGluZ1ByZWxvYWQgPSB7IHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQgfTsKKyAg
ICAgICAgICAgIFBlbmRpbmdQcmVsb2FkIHBlbmRpbmdQcmVsb2FkID0geyB0eXBlLCByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0IH07CiAgICAgICAgICAgICBtX3BlbmRpbmdQcmVs
b2Fkcy5hcHBlbmQocGVuZGluZ1ByZWxvYWQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJlcXVlc3RQcmVsb2FkKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQpOwor
ICAgIHJlcXVlc3RQcmVsb2FkKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCBjaGFyc2V0KTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5k
aW5nUHJlbG9hZHMoKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKaW5kZXggZTJlMmFlNDk3MjVjNTkxMmVjMWM1MDdmYjU4Nzk4NDM0
ODViNmE5NS4uYzViMjM2NTBkZWEzMWIyZTBkMWM5ZGIxMmFmZTQzYzE3ODMwZjc0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
QEAgLTI2LDkgKzI2LDEwIEBACiAjaWZuZGVmIENhY2hlZFJlc291cmNlTG9hZGVyX2gKICNkZWZp
bmUgQ2FjaGVkUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCi0jaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CkBAIC00NCw3ICs0NSw2IEBAIGNsYXNzIENh
Y2hlZFNWR0RvY3VtZW50OwogY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwog
Y2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2U7Ci1jbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBj
bGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0
VHJhY2s7CkBAIC02OSw3ICs2OSw2IEBAIGZyaWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVu
ZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKLSAg
ICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VM
b2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwog
CkBAIC0xMzEsNyArMTMwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQcmVsb2FkZWQoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJQcmVsb2FkcygpOwogICAg
IHZvaWQgY2xlYXJQZW5kaW5nUHJlbG9hZHMoKTsKLSAgICB2b2lkIHByZWxvYWQoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgYm9v
bCByZWZlcmVuY2VkRnJvbUJvZHkpOworICAgIHZvaWQgcHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6
VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBib29s
IHJlZmVyZW5jZWRGcm9tQm9keSk7CiAgICAgdm9pZCBjaGVja0ZvclBlbmRpbmdQcmVsb2Fkcygp
OwogICAgIHZvaWQgcHJpbnRQcmVsb2FkU3RhdHMoKTsKICAgICBib29sIGNhblJlcXVlc3QoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtVUkwmLCBib29sIGZvclByZWxvYWQgPSBmYWxzZSk7
CkBAIC0xNDksNyArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQpOwogCiAgICAgZW51bSBSZXZhbGlkYXRpb25Qb2xpY3kgeyBVc2UsIFJldmFsaWRhdGUsIFJl
bG9hZCwgTG9hZCB9OwotICAgIFJldmFsaWRhdGlvblBvbGljeSBkZXRlcm1pbmVSZXZhbGlkYXRp
b25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZm9y
UHJlbG9hZCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIERlZmVyT3B0aW9uKSBj
b25zdDsKKyAgICBSZXZhbGlkYXRpb25Qb2xpY3kgZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5
KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGZvclByZWxvYWQs
IENhY2hlZFJlc291cmNlKiBleGlzdGluZ1Jlc291cmNlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6
OkRlZmVyT3B0aW9uKSBjb25zdDsKICAgICAKICAgICB2b2lkIG5vdGlmeUxvYWRlZEZyb21NZW1v
cnlDYWNoZShDYWNoZWRSZXNvdXJjZSopOwogICAgIGJvb2wgY2hlY2tJbnNlY3VyZUNvbnRlbnQo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtVUkwmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXgg
NmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNlZmI2MjU4YzVlYzlmMi4uN2JlNzM0OWRiOTVmYjc1
MDJmMDM2ZDVmZjI1Y2FhODNmMWU1Y2VjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTI2LDYgKzI2LDEwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9h
ZFByaW9yaXR5IHByaW9yaXR5KQpAQCAtMzQsNyArMzgsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdQogICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCkpCiAgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQogICAgICwgbV9m
b3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9E
ZWZlcikKKyAgICAsIG1fZGVmZXIoTm9EZWZlcikKIHsKIH0KIApAQCAtNDMsNyArNDcsNyBAQCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBt
X3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkKICAgICAsIG1fZm9yUHJl
bG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIp
CisgICAgLCBtX2RlZmVyKE5vRGVmZXIpCiB7CiB9CiAKQEAgLTUyLDggKzU2LDQ4IEBAIENhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1CiAgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKICAgICAsIG1fcHJpb3JpdHkocHJpb3Jp
dHkpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCi0gICAgLCBtX2RlZmVyKENhY2hlZFJlc291
cmNlTG9hZGVyOjpOb0RlZmVyKQorICAgICwgbV9kZWZlcihOb0RlZmVyKQoreworfQorCitDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6On5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKQoreworfQorCit2b2lk
IENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCkKIHsKKyAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiAhbV9pbml0aWF0
b3JEb2N1bWVudCk7CisgICAgbV9pbml0aWF0b3JFbGVtZW50ID0gZWxlbWVudDsKIH0KIAordm9p
ZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50KQoreworICAgIEFTU0VSVCghbV9p
bml0aWF0b3JFbGVtZW50ICYmICFtX2luaXRpYXRvckRvY3VtZW50KTsKKyAgICBtX2luaXRpYXRv
ck5hbWUgPSBuYW1lOworICAgIG1faW5pdGlhdG9yRG9jdW1lbnQgPSBkb2N1bWVudDsKIH0KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUo
KSBjb25zdAoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBt
X2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFtZSgpOworICAgIGlmICghbV9pbml0aWF0b3JOYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsKKworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwgKCJyZXNvdXJjZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1cm4gZGVmYXVsdE5h
bWU7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnQ+IENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yRG9jdW1lbnQoKQoreworICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAg
IHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgcmV0dXJuIG1faW5p
dGlhdG9yRG9jdW1lbnQ7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Ojppbml0aWF0b3JFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVt
ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggY2IwNDNkZmUzOWZl
NGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJmNC4uNGFhMzBkNDUzMTMxZjI2MjY3MDU3N2ZlYmNm
NzA2NDk0YzJlNzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMjYsMjcgKzI2LDQxIEBACiAjaWZuZGVmIENhY2hl
ZFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCiAKLSNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFBy
aW9yaXR5LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CiBw
dWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQg
fTsKKwogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJp
b3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwogICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIH5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKTsK
IAogICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJu
IG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0
IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsgfQogICAgIHZvaWQg
c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsg
fQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQogICAgIFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAg
IGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yUHJlbG9hZDsgfQogICAgIHZv
aWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJl
bG9hZDsgfQotICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAgICB2b2lkIHNldERlZmVyKENhY2hlZFJlc291cmNl
TG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7IH0KKyAgICBEZWZl
ck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAgICB2b2lkIHNldERl
ZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQorICAgIHZvaWQgc2V0
SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudD4pOworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFtZSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IGluaXRpYXRvckRvY3VtZW50KCk7CisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBpbml0
aWF0b3JFbGVtZW50KCk7CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3Vy
Y2VSZXF1ZXN0OwpAQCAtNTQsNyArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7
CiAgICAgYm9vbCBtX2ZvclByZWxvYWQ7Ci0gICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVy
T3B0aW9uIG1fZGVmZXI7CisgICAgRGVmZXJPcHRpb24gbV9kZWZlcjsKKyAgICBSZWZQdHI8RWxl
bWVudD4gbV9pbml0aWF0b3JFbGVtZW50OworICAgIFJlZlB0cjxEb2N1bWVudD4gbV9pbml0aWF0
b3JEb2N1bWVudDsKKyAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JOYW1lOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ2MzE0NWMyY2UyMTRkZTMxZmQ1MjZjM2U0N2MzN2MzM2M2Yzg2NzkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKQorICAgIDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKQorICAgICwgaWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MmM1ZDg5ZjIyY2MxZWYxYzAxZjI1MTNk
ZThlY2JmOWYxMzlhODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzX2gKKyNkZWZpbmUgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yc19oCisKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RydWN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMgeworICAg
IGNvbnN0IEF0b21pY1N0cmluZyBjc3M7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGljb247Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHJpdmF0ZToKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCk7CisgICAgZnJpZW5kIGNsYXNzIFRocmVhZEdsb2JhbERhdGE7Cit9
OworCitpbmxpbmUgY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyYgY2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpCit7CisgICAgcmV0dXJuIHRocmVhZEdsb2JhbERh
dGEoKS5jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwCmluZGV4IDhjOWQwY2VjYmZjZDEyYjdlYWExYzRhOGM4NzBmMTY0MjU1N2Y3NDUuLmUw
NzEwOGU0Y2QyZGU0Y2RmOGJlODA4NmZkMWRkNjIwOWY4NDQ0MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
Q2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTY2LDYgKzY3LDcgQEAgdm9p
ZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24p
OwogI2VuZGlmCiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3Jp
dHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5pY29uLCBtX2ZyYW1lLT5kb2N1bWVudCgp
KTsKIAogICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3Vy
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCmluZGV4
IGRhODQ2ZjhkYmMyYjZlMWVmMzcwM2ZkODNkODZhMGU1NDgxYTkyMGMuLmJjMWQ2NWUyNjYyMzVm
ZWEwZTVkMWU2MGM4YzZkYTE5MzM0MmEzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RocmVhZEdsb2JhbERhdGEuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogCisjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvdW50ZXJzLmgi
CkBAIC01OSw3ICs2MCw4IEBAIFRocmVhZEdsb2JhbERhdGEqIFRocmVhZEdsb2JhbERhdGE6OnN0
YXRpY0RhdGE7CiAjZW5kaWYKIAogVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSgp
Ci0gICAgOiBtX2V2ZW50TmFtZXMoYWRvcHRQdHIobmV3IEV2ZW50TmFtZXMpKQorICAgIDogbV9j
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzKSkKKyAgICAsIG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZl
bnROYW1lcykpCiAgICAgLCBtX3RocmVhZFRpbWVycyhhZG9wdFB0cihuZXcgVGhyZWFkVGltZXJz
KSkKICAgICAsIG1feG1sVHlwZVJlZ0V4cChhZG9wdFB0cihuZXcgWE1MTUlNRVR5cGVSZWdFeHAp
KQogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERh
dGEuaAppbmRleCA0MmYwNWFmZTM4OTNmNzNkOWQ3ZWZmNDg1MmI5ZWYxOGZkOWFkNjYyLi5kOWFl
NjQ2ZjU1YTQ1ZmM1YWUzNWZlNjYwMDM3ZWJjNWI2ZmJiZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBUaHJlYWRUaW1lcnM7CiAgICAgY2xhc3MgWE1MTUlNRVR5cGVS
ZWdFeHA7CiAKKyAgICBzdHJ1Y3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsKICAg
ICBzdHJ1Y3QgSUNVQ29udmVydGVyV3JhcHBlcjsKICAgICBzdHJ1Y3QgVEVDQ29udmVydGVyV3Jh
cHBlcjsKIApAQCAtNTYsNiArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5U
aHJlYWRHbG9iYWxEYXRhKCk7CiAgICAgICAgIHZvaWQgZGVzdHJveSgpOyAvLyBjYWxsZWQgb24g
d29ya2VycyB0byBjbGVhbiB1cCB0aGUgVGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgdGhlIHRocmVh
ZCBleGl0cy4KIAorICAgICAgICBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
JiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkgeyByZXR1cm4gKm1fY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsgfQogICAgICAgICBFdmVudE5hbWVzJiBldmVudE5hbWVz
KCkgeyByZXR1cm4gKm1fZXZlbnROYW1lczsgfQogICAgICAgICBUaHJlYWRUaW1lcnMmIHRocmVh
ZFRpbWVycygpIHsgcmV0dXJuICptX3RocmVhZFRpbWVyczsgfQogICAgICAgICBYTUxNSU1FVHlw
ZVJlZ0V4cCYgeG1sVHlwZVJlZ0V4cCgpIHsgcmV0dXJuICptX3htbFR5cGVSZWdFeHA7IH0KQEAg
LTczLDYgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICBwcml2YXRl
OgorICAgICAgICBPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycz4gbV9jYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwogICAgICAgICBPd25QdHI8RXZlbnROYW1lcz4g
bV9ldmVudE5hbWVzOwogICAgICAgICBPd25QdHI8VGhyZWFkVGltZXJzPiBtX3RocmVhZFRpbWVy
czsKICAgICAgICAgT3duUHRyPFhNTE1JTUVUeXBlUmVnRXhwPiBtX3htbFR5cGVSZWdFeHA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4N2ZmMGQ2ODEyNzQ0
NjBlYTc5NzhhZmU4N2ZhMjczOTY4ODU3ZWJhLi5lYWZlYTFhODZhMTIyMmVkODNkMTRhNTNkYWJi
Y2RiZjIyMzRmYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAK
QEAgLTgyLDYgKzgyLDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJl
ZmVyZW5jZXMoKQogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2Uo
KQogewogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChv
d25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpKTsKKyAgICByZXF1ZXN0LnNldElu
aXRpYXRvcih0aGlzKTsKICAgICBtX2NhY2hlZEltYWdlID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCiAgICAgaWYgKG1fY2FjaGVk
SW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmlu
ZGV4IGMzNGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNkZDM3NDhhOGIuLjNiMmQ0OTViOTY1
MDk4MDIxNzIyNzNmNzUyMmRlNDFjNTRjNzBmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHZvaWQgU1ZHRm9udEZh
Y2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAg
ICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50
KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkp
OworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgbV9jYWNoZWRG
b250ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgICAg
ICBpZiAobV9jYWNoZWRGb250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVu
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA2MDQ2ZWM2MWI3
NGZjMTJlYjEzYWMyMDcyNDRhNmM2ODE2NTQ3NDc2Li5mMWUxYzAzMjQwNTM0OGMzNTkwYzM3YmU0
YmI0Y2EyMDJlZTA2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0y
NTYsNiArMjU2LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1
bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFn
bWVudElkZW50aWZpZXIoKSkgewogICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgICAgICAgICBtX2NhY2hlZERv
Y3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNWR0Rv
Y3VtZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50KQog
ICAgICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>