<?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>91015</bug_id>
          
          <creation_ts>2012-07-11 14:18:12 -0700</creation_ts>
          <short_desc>Remove BUILDING_ON / TARGETING macros in favor of system availability macros</short_desc>
          <delta_ts>2012-07-11 22:56:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>91051</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          <cc>abarth</cc>
    
    <cc>avi</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>mark</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>tasak</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>667053</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 14:18:12 -0700</bug_when>
    <thetext>As proposed on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667093</commentid>
    <comment_count>1</comment_count>
      <attachid>151789</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 14:57:21 -0700</bug_when>
    <thetext>Created attachment 151789
Part 1 - Scripted replacement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667094</commentid>
    <comment_count>2</comment_count>
      <attachid>151790</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 14:58:17 -0700</bug_when>
    <thetext>Created attachment 151790
Part 2 - Fix the few cases that wanted to check what SDK we&apos;re building against</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667095</commentid>
    <comment_count>3</comment_count>
      <attachid>151791</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 14:58:43 -0700</bug_when>
    <thetext>Created attachment 151791
Part 3 - Remove the macros</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667115</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-11 15:13:45 -0700</bug_when>
    <thetext>FWIW, I know close to nothing about Chromium Mac&apos;s build process.  Adding some people who do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667119</commentid>
    <comment_count>5</comment_count>
      <attachid>151789</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-11 15:17:21 -0700</bug_when>
    <thetext>Comment on attachment 151789
Part 1 - Scripted replacement

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

R=me

&gt; Source/WebCore/platform/mac/ScrollElasticityController.mm:75
&gt; -#if defined(BUILDING_ON_LEOPARD) || defined(BULDING_ON_SNOW_LEOPARD) || \
&gt; -    defined(BUILDING_ON_LION) || PLATFORM(CHROMIUM)
&gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED == 1050 || defined(BULDING_ON_SNOW_LEOPARD) || \
&gt; +    __MAC_OS_X_VERSION_MIN_REQUIRED == 1070 || PLATFORM(CHROMIUM)

Might be good to remove the misspelled form of SNOW_LEOPARD.  This could become __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1050

&gt; Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm:47
&gt; -#define HAVE_MEDIA_CONTROL (!defined(BUILDING_ON_LEOPARD))
&gt; +#define HAVE_MEDIA_CONTROL __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1060

It feels like having parentheses around this would be good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667130</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 15:26:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 151789 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151789&amp;action=review
&gt; 
&gt; R=me
&gt; 
&gt; &gt; Source/WebCore/platform/mac/ScrollElasticityController.mm:75
&gt; &gt; -#if defined(BUILDING_ON_LEOPARD) || defined(BULDING_ON_SNOW_LEOPARD) || \
&gt; &gt; -    defined(BUILDING_ON_LION) || PLATFORM(CHROMIUM)
&gt; &gt; +#if __MAC_OS_X_VERSION_MIN_REQUIRED == 1050 || defined(BULDING_ON_SNOW_LEOPARD) || \
&gt; &gt; +    __MAC_OS_X_VERSION_MIN_REQUIRED == 1070 || PLATFORM(CHROMIUM)
&gt; 
&gt; Might be good to remove the misspelled form of SNOW_LEOPARD.  This could become __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1050

It&apos;d actually be &lt;= 1070.
&gt; 
&gt; &gt; Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm:47
&gt; &gt; -#define HAVE_MEDIA_CONTROL (!defined(BUILDING_ON_LEOPARD))
&gt; &gt; +#define HAVE_MEDIA_CONTROL __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1060
&gt; 
&gt; It feels like having parentheses around this would be good.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667162</commentid>
    <comment_count>7</comment_count>
      <attachid>151789</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-11 15:51:23 -0700</bug_when>
    <thetext>Comment on attachment 151789
Part 1 - Scripted replacement

Attachment 151789 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13182574</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667173</commentid>
    <comment_count>8</comment_count>
      <attachid>151791</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-11 15:57:49 -0700</bug_when>
    <thetext>Comment on attachment 151791
Part 3 - Remove the macros

Attachment 151791 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13200464</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667175</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 15:59:37 -0700</bug_when>
    <thetext>Qt seems to build with -Wundef, so throws warnings when __MAC_OS_X_VERSION_MIN_REQUIRED is used on non-Mac platforms:

RenderLayerCompositor.cpp:1756:5: error: &quot;__MAC_OS_X_VERSION_MIN_REQUIRED&quot; is not defined

I think this test against __MAC_OS_X_VERSION_MIN_REQUIRED should first test PLATFORM(MAC):
-#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080
+#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080

If this isn&apos;t the only instance where this causes a problem then this could be solved in a more brute-force manner by doing something like the following at the end of Platform.h:

+#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
+#define __MAC_OS_X_VERSION_MIN_REQUIRED 0
+#endif
+
+#ifndef __MAC_OS_X_VERSION_MAX_ALLOWED
+#define __MAC_OS_X_VERSION_MAX_ALLOWED 0
+#endif


I&apos;ll upload a new patch with the first approach in a moment to see if it is sufficient to make Qt happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667177</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 16:02:13 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Qt seems to build with -Wundef, so throws warnings when __MAC_OS_X_VERSION_MIN_REQUIRED is used on non-Mac platforms:
&gt; 
&gt; RenderLayerCompositor.cpp:1756:5: error: &quot;__MAC_OS_X_VERSION_MIN_REQUIRED&quot; is not defined
&gt; 
&gt; I think this test against __MAC_OS_X_VERSION_MIN_REQUIRED should first test PLATFORM(MAC):
&gt; -#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080
&gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080

Actually, that&apos;ll want to be:

#if !PLATFORM(MAC) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080

Otherwise it&apos;ll disable the block for non-Mac platforms where it previously would have been enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667180</commentid>
    <comment_count>11</comment_count>
      <attachid>151789</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-11 16:03:41 -0700</bug_when>
    <thetext>Comment on attachment 151789
Part 1 - Scripted replacement

Attachment 151789 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13198547</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667182</commentid>
    <comment_count>12</comment_count>
      <attachid>151811</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 16:05:32 -0700</bug_when>
    <thetext>Created attachment 151811
Part 1 - Scripted replacement (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667246</commentid>
    <comment_count>13</comment_count>
      <attachid>151811</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-11 17:37:41 -0700</bug_when>
    <thetext>Comment on attachment 151811
Part 1 - Scripted replacement (v2)

Attachment 151811 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13202495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667247</commentid>
    <comment_count>14</comment_count>
      <attachid>151811</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-11 17:40:17 -0700</bug_when>
    <thetext>Comment on attachment 151811
Part 1 - Scripted replacement (v2)

Attachment 151811 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13202497</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667261</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2012-07-11 17:50:27 -0700</bug_when>
    <thetext>Bottom line up front: Chromium is fine with this change. I posted my comments on the overall approach to the webkit-dev thread at http://lists.webkit.org/pipermail/webkit-dev/2012-July/021425.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667273</commentid>
    <comment_count>16</comment_count>
      <attachid>151828</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 18:11:26 -0700</bug_when>
    <thetext>Created attachment 151828
Part 1 - Scripted replacement (v3)

One more shot at fixing Qt by adding some extra checks for PLATFORM(MAC) in OS version checks in cross-platform files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667321</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 19:09:00 -0700</bug_when>
    <thetext>Landed in r122400 through r122402.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667370</commentid>
    <comment_count>18</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-11 20:50:06 -0700</bug_when>
    <thetext>Hello, 

I looked at src/third_party/WebKit/Source/WTF/wtf/Platform.h and I think,

BUILDING_ON_LEOPARD will be replaced with &quot;MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_6&quot;.
BUILDING_ON_SNOW_LEOPARD  will be replaced with &quot;MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_7&quot;.
BUILDING_ON_LION  will be replaced with &quot;MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_8&quot;.

And

TARGETING_LEOPARD  will be replaced with &quot;MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_6&quot;.
TARGETING_SNOW_LEOPARD  will be replaced with &quot;MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_7&quot;.
TARGETING_LION  will be replaced with &quot;MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_8&quot;.

However, talking about HyphenationCF.cpp, 
&quot;#if !defined(BUILDING_ON_LEOPARD) &amp;&amp; !defined(BUILDING_ON_SNOW_LEOPARD) &quot; was replaced with &quot;#if !PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1070&quot;.

I think, __MAC_OS_X_VERSION_MIN_REQUIRED is not correct, should be  __MAC_OS_X_VERSION_MAX_ALLOWED.

Would you check the patch again?

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667375</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-07-11 20:56:06 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Hello, 
&gt; 
&gt; I looked at src/third_party/WebKit/Source/WTF/wtf/Platform.h and I think,
&gt; 
&gt; BUILDING_ON_LEOPARD will be replaced with &quot;MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_6&quot;.
&gt; BUILDING_ON_SNOW_LEOPARD  will be replaced with &quot;MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_7&quot;.
&gt; BUILDING_ON_LION  will be replaced with &quot;MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_8&quot;.
&gt; 
&gt; And
&gt; 
&gt; TARGETING_LEOPARD  will be replaced with &quot;MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_6&quot;.
&gt; TARGETING_SNOW_LEOPARD  will be replaced with &quot;MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_7&quot;.
&gt; TARGETING_LION  will be replaced with &quot;MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_8&quot;.
&gt; 
&gt; However, talking about HyphenationCF.cpp, 
&gt; &quot;#if !defined(BUILDING_ON_LEOPARD) &amp;&amp; !defined(BUILDING_ON_SNOW_LEOPARD) &quot; was replaced with &quot;#if !PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1070&quot;.
&gt; 
&gt; I think, __MAC_OS_X_VERSION_MIN_REQUIRED is not correct, should be  __MAC_OS_X_VERSION_MAX_ALLOWED.
&gt; 
&gt; Would you check the patch again?
&gt; 

Almost everywhere in WebKit that was using BUILDING_ON should have been using TARGETING instead. If you look at the patch you&apos;ll see that almost all instances of BUILDING_ON were replaced with comparisons against __MAC_OS_X_VERSION_MIN_REQUIRED in order to correct that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667423</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-11 22:56:53 -0700</bug_when>
    <thetext>It broke the Qt Mac build. I filed a new bug on it: https://bugs.webkit.org/show_bug.cgi?id=91051</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151789</attachid>
            <date>2012-07-11 14:57:21 -0700</date>
            <delta_ts>2012-07-11 16:05:32 -0700</delta_ts>
            <desc>Part 1 - Scripted replacement</desc>
            <filename>0001-http-webkit.org-b-91015-Remove-BUILDING_ON-TARGETING.patch</filename>
            <type>text/plain</type>
            <size>232313</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSA5YTljMzE0MjRiMjcxNWU1OGNjYmYzNWY5ZDI1YTgxN2Q4ZWEyNmU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogVHVl
LCAxMCBKdWwgMjAxMiAxNjo1MjoyNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSA8aHR0cDov
L3dlYmtpdC5vcmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8KIFRBUkdFVElORyBtYWNy
b3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKClRoaXMgcmVtb3ZhbCB3
YXMgaGFuZGxlZCBieSBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1hY3Jv
cyBpbiB0byB0aGUgZXF1aXZhbGVudCBjaGVja3MKdXNpbmcgdGhlIHN5c3RlbSBhdmFpbGFiaWxp
dHkgbWFjcm9zLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToK
CiogV2ViQ29yZS5leHAuaW46CiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgoq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CiogYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbToKKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CiogbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHA6CiogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oOgoq
IHBhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CiogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwOgoqIHBhZ2UvbWFjL1NldHRpbmdzTWFjLm1tOgoqIHBsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwOgoqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CiogcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
Lmg6CiogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgoqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CiogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5j
cHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwOgoqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmg6CiogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VDRy5jcHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6
CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CiogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgoqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tOgoqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW06CiogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YU1hYy5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaDoK
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CiogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKiBwbGF0Zm9ybS9tYWMvQ3Vyc29y
TWFjLm1tOgoqIHBsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHA6CiogcGxhdGZv
cm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmg6CiogcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9j
b2xEZWZpbml0aW9ucy5oOgoqIHBsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLmg6CiogcGxhdGZv
cm0vbWFjL0hUTUxDb252ZXJ0ZXIubW06CiogcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFu
ZGxlck1hYy5tbToKKiBwbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaDoKKiBwbGF0
Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW06CiogcGxhdGZvcm0vbWFjL1BvcHVw
TWVudU1hYy5tbToKKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CiogcGxhdGZv
cm0vbWFjL1Njcm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tOgoqIHBsYXRmb3JtL21hYy9TaGFy
ZWRUaW1lck1hYy5tbToKKiBwbGF0Zm9ybS9tYWMvU3VkZGVuVGVybWluYXRpb24ubW06CiogcGxh
dGZvcm0vbWFjL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tOgoqIHBsYXRmb3JtL21hYy9XZWJD
b3JlTlNDZWxsRXh0cmFzLmg6CiogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aDoKKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbToKKiBwbGF0Zm9ybS9t
YWMvV2ViRm9udENhY2hlLm1tOgoqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyLm1tOgoqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250
cm9sbGVyLm1tOgoqIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oOgoqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNw
cDoKKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwOgoqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CiogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3RDRk5ldC5jcHA6CiogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVDRk5ldC5jcHA6CiogcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVudGljYXRpb25NYWMu
bW06CiogcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbToKKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZVJlcXVlc3RNYWMubW06CiogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVS
TFJlc3BvbnNlLm1tOgoqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmg6CiogcGxhdGZvcm0v
dGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcDoKKiBwbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlv
bk1hYy5tbToKKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06
CgpTb3VyY2UvV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5
Lm1tOgoKU291cmNlL1dlYktpdC9tYWM6CgoqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENv
bnRleHRNZW51RGVsZWdhdGUubW06CiogTWlzYy9XZWJLaXRFcnJvcnMubToKKiBNaXNjL1dlYk5T
Q29udHJvbEV4dHJhcy5tOgoqIE1pc2MvV2ViTlNGaWxlTWFuYWdlckV4dHJhcy5tbToKKiBQbHVn
aW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW06CiogUGx1Z2lucy9XZWJC
YXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgoqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW06CiogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW06CiogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgoqIFdlYlZpZXcv
V2ViQ2xpcFZpZXcubW06CiogV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW06Ciog
V2ViVmlldy9XZWJGcmFtZVZpZXcubW06CiogV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxl
ci5tbToKKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgoqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRl
cm5hbC5oOgoqIFdlYlZpZXcvV2ViUERGRG9jdW1lbnRFeHRyYXMubW06CiogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbToKKiBXZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaDoKKiBXZWJWaWV3
L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaDoKKiBXZWJWaWV3L1dlYlZpZXcubW06CiogV2ViVmll
dy9XZWJWaWV3UHJpdmF0ZS5oOgoKU291cmNlL1dlYktpdDI6CgoqIFNoYXJlZC9EaWN0aW9uYXJ5
UG9wdXBJbmZvLmNwcDoKKiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oOgoqIFNoYXJlZC9t
YWMvUGFzdGVib2FyZFR5cGVzLm1tOgoqIFNoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tOgoq
IFVJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tOgoqIFVJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tOgoqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKiBV
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5o
OgoqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFj
dG9yLm1tOgoqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuY3Bw
OgoqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaDoKKiBVSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKiBVSVByb2Nlc3MvUGx1
Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgoqIFVJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW06CiogVUlQ
cm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgoqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1hYy5tbToKKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToK
KiBXZWJLaXQyUHJlZml4Lmg6CiogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
QnJvd3NlckZ1bmNzLmNwcDoKKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlU2FuZGJveEZ1bmN0aW9ucy5tbToKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHA6CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaDoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2Uu
bW06CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgoqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Ciog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgoqIFdlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW46CiogV2ViUHJvY2Vzcy9tYWMvS2V5Y2hhaW5JdGVtU2hpbU1l
dGhvZHMubW06CiogV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tOgoqIFdlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW06CiogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01h
aW5NYWMubW06CiogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW06CgpTb3VyY2UvV1RG
OgoKKiB3dGYvQXNzZXJ0aW9ucy5jcHA6Ciogd3RmL0Zhc3RNYWxsb2MuY3BwOgoqIHd0Zi9QbGF0
Zm9ybS5oOgoqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6Ciogd3RmL3VuaWNvZGUvaWN1L0Nv
bGxhdG9ySUNVLmNwcDoKClRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9jZi9XZWJBcmNoaXZlRHVt
cFN1cHBvcnQuY3BwOgoqIER1bXBSZW5kZXJUcmVlL21hYy9DaGVja2VkTWFsbG9jLmNwcDoKKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CiogRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tOgoqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29u
dHJvbGxlci5tOgoqIFRlc3RXZWJLaXRBUEkvbWFjL0luamVjdGVkQnVuZGxlQ29udHJvbGxlck1h
Yy5tbToKKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY3RpdmF0ZUZvbnRz
Lm1tOgoqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxl
TWFjLm1tOgotLS0KIFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNSArKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrLS0KIFNvdXJjZS9XVEYvd3RmL1RocmVh
ZGluZ1B0aHJlYWRzLmNwcCAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgODggKysrKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlMaXN0LmggICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlLmggIHwgICAgMiArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbSAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9FZGl0b3JNYWMubW0gICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwICAgICAgIHwgICAxOCArKy0tCiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmggICAgICAgICB8ICAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggICAgICAgIHwgICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICAgICAgfCAgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbSAgICAgICAgICAgICB8
ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwICAg
ICAgIHwgICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcCAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9CdXNNYWMubW0gICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYWRpZW50LmggICAgICAgIHwgICAgMiArLQogLi4uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSAgICAgfCAgICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcCAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIHwgICAgMiArLQogLi4uL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gfCAgIDE0ICsrLS0KIC4uLi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0gIHwgICAgOCArLQog
Li4uL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCAgICAgfCAgICA4
ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCB8
ICAgMTIgKy0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3Bw
ICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFD
Ry5oICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VDRy5jcHAgICAgfCAgICAyICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZVNvdXJjZUNHLmNwcCB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BhdGhDRy5jcHAgICAgIHwgICAgNCArLQogLi4uL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGFDb2NvYS5tbSAgICAgICAgfCAgIDEwICstLQogLi4uL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgICAgfCAgICAyICstCiAuLi4vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgICAgICAgICB8ICAgIDIgKy0KIC4uLi9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gIHwgICAgNCArLQog
Li4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbSAgfCAgICA0
ICstCiAuLi4vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwICAgICAgICB8
ICAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
ICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRN
YWMubW0gICAgfCAgICAyICstCiAuLi4vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0Lm1tICAgICAgICB8ICAgMTQgKystLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1w
bGVGb250RGF0YU1hYy5tbSAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvV2ViTGF5ZXIuaCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSAgIHwgICAgMiArLQogLi4uL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgICAgfCAgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tICAgICAgICAgICB8ICAgNTIgKysrKysrLS0t
LS0tCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuY3BwICB8
ICAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxl
ci5oIHwgICAgNiArLQogLi4uL3BsYXRmb3JtL21hYy9FbXB0eVByb3RvY29sRGVmaW5pdGlvbnMu
aCAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZl
cnRlci5oICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1M
Q29udmVydGVyLm1tICAgICAgIHwgICAgNiArLQogLi4uL3BsYXRmb3JtL21hYy9NZW1vcnlQcmVz
c3VyZUhhbmRsZXJNYWMubW0gICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaCB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gICAgICAgIHwgICAgNiArLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSAgICAgICAgfCAgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gICB8ICAgIDIgKy0KIC4u
Li9wbGF0Zm9ybS9tYWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW0gICAgIHwgICAgNiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tICAgICAgfCAg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3VkZGVuVGVybWluYXRpb24ubW0g
ICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9tYWMvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0g
ICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVOU0Nl
bGxFeHRyYXMuaCAgfCAgICAyICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oICB8ICAgMjAgKystLS0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIHwgICAxNiArKy0tCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViRm9udENhY2hlLm1tICAgICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9t
YWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSAgIHwgICAgNCArLQogLi4uL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tICAgfCAgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuaCAgICAgICB8ICAgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCAgIHwgICAg
MiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9ETlNDRk5ldC5jcHAgICAg
fCAgICA0ICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcCAg
ICAgICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXF1ZXN0LmggIHwgICAgMiArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Q0ZOZXQuY3BwICAgfCAgICA0ICstCiAuLi4vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5k
bGVDRk5ldC5jcHAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL21hYy9B
dXRoZW50aWNhdGlvbk1hYy5tbSAgICAgIHwgICAgMiArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsv
bWFjL0Nvb2tpZVN0b3JhZ2VNYWMubW0gICAgICAgfCAgICAyICstCiAuLi4vcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gICAgICB8ICAgIDQgKy0KIC4uLi9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0gICAgIHwgICAgNiArLQogLi4uL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbSAgICAgfCAgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oICAgICAgICB8ICAgIDYg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAgIHwg
ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVuYXRpb25NYWMu
bW0gfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tICAgICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiAuLi4vY2hyb21pdW0vc3JjL21hYy9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5tbSAgICAgICB8ICAgIDggKy0KIFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMyArKysrKysrKwogLi4uL1dl
YkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tICAgICAgICAgICAgICAgfCAgICA0ICstCiBT
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdEVycm9ycy5tICAgICAgICAgICAgICB8ICAgIDIg
Ky0KIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNDb250cm9sRXh0cmFzLm0gICAgICAgIHwg
ICAgMiArLQogU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1t
ICAgfCAgICAyICstCiAuLi4vUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tICB8ICAgIDIgKy0KIC4uLi9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcubW0gfCAgICA2ICstCiAuLi4vV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0gICB8ICAgIDQgKy0KIC4uLi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSAgIHwgICAxNCArKy0tCiAuLi4vbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tICAgICB8ICAgIDQgKy0KIC4uLi9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tICAgICAgIHwgICAxNiArKy0tCiBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tICAgICAgICAgICB8ICAgIDYgKy0K
IC4uLi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tIHwgICAg
NCArLQogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gICAgICAgICAg
fCAgICAyICstCiAuLi4vV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tICB8ICAgMTIgKy0tCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
ICAgICAgICAgICB8ICAgNDQgKysrKystLS0tLQogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlld0ludGVybmFsLmggICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlBERkRvY3VtZW50RXh0cmFzLm1tICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmggICAgfCAgICAyICstCiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaCB8ICAgIDIgKy0KIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSAgICAgICAgICAgICAgIHwgICA0NiAr
KysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggICAg
ICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA0NiArKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlv
bmFyeVBvcHVwSW5mby5jcHAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmggICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMubW0gICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tIHwgICAgNCArLQogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gfCAgICA4ICst
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gICAgICAgICB8ICAg
MjggKysrLS0tLQogLi4uL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCAg
ICAgICAgfCAgICA0ICstCiAuLi4vbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rv
ci5tbSAgICAgICB8ICAgIDQgKy0KIC4uLi9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJs
ZXMuY3BwICAgICAgICAgIHwgICAgNCArLQogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52
aXJvbm1lbnRWYXJpYWJsZXMuaCAgfCAgICAyICstCiAuLi4vVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gICB8ICAgIDggKy0KIC4uLi9VSVByb2Nlc3MvUGx1Z2lu
cy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIHwgICAgNCArLQogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgIDEyICstLQogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAgICA0ICstCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgIDIgKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0gICAgIHwgICAg
NiArLQogLi4uL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSAg
fCAgIDEyICstLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1t
ICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94
eU1hYy5tbSAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaCAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiArLQogLi4uL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVC
cm93c2VyRnVuY3MuY3BwICAgICAgfCAgICA0ICstCiAuLi4vTmV0c2NhcGUvbWFjL05ldHNjYXBl
U2FuZGJveEZ1bmN0aW9ucy5tbSAgICAgICB8ICAgIDYgKy0KIC4uLi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgIHwgICAgMiArLQogLi4uL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggICAgfCAgICAyICstCiAuLi4vV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSAgICAgICB8ICAgMTQgKystLQogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAgICAyICst
CiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8ICAg
IDIgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IHwgICAgMiArLQogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tICAgfCAgICA2ICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluICB8ICAgIDIgKy0KIC4uLi9XZWJQcm9jZXNzL21hYy9LZXljaGFpbkl0ZW1TaGlt
TWV0aG9kcy5tbSAgICAgIHwgICAgNCArLQogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvU2Vj
SXRlbVNoaW1NZXRob2RzLm1tICAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L21hYy9XZWJQcm9jZXNzTWFjLm1tICAgICB8ICAgMTAgKy0tCiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbSB8ICAgIDggKy0KIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tICAgIHwgICAgOCArLQogVG9vbHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrCiBU
b29scy9EdW1wUmVuZGVyVHJlZS9jZi9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwICB8ICAgIDYg
Ky0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9DaGVja2VkTWFsbG9jLmNwcCAgICAgICAgIHwg
ICAgNiArLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tICAgICAg
ICAgfCAgICA2ICstCiAuLi4vbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tICAgICAg
ICAgICAgICB8ICAgIDQgKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0gIHwgICAgNiArLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1
dENvbnRyb2xsZXIubSAgICAgfCAgICAyICstCiAuLi4vbWFjL0luamVjdGVkQnVuZGxlQ29udHJv
bGxlck1hYy5tbSAgICAgICAgICAgICB8ICAgIDIgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9tYWMv
QWN0aXZhdGVGb250cy5tbSAgICAgICAgICAgIHwgICAgMiArLQogLi4uL0luamVjdGVkQnVuZGxl
L21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbSAgICAgICAgfCAgICAyICstCiAxNTggZmlsZXMgY2hh
bmdlZCwgNjUyIGluc2VydGlvbnMoKyksIDQ0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxZDgxMGMu
LmE5YTg1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDctMTEgIE1hcmsgUm93ZSAgPG1y
b3dlQGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85MTAxNT4gUmVt
b3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZvciBvZiBzeXN0ZW0gYXZh
aWxhYmlsaXR5IG1hY3JvcworCisgICAgICAgIFRoaXMgcmVtb3ZhbCB3YXMgaGFuZGxlZCBieSBh
IHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1hY3JvcyBpbiB0byB0aGUgZXF1
aXZhbGVudCBjaGVja3MKKyAgICAgICAgdXNpbmcgdGhlIHN5c3RlbSBhdmFpbGFiaWxpdHkgbWFj
cm9zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL0Fzc2VydGlvbnMuY3BwOgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNwcDoKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
OgorICAgICAgICAqIHd0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHA6CisKIDIwMTItMDct
MTEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
LVd0YXV0b2xvZ2ljYWwtY29tcGFyZSBhbmQgLVdzaWduLWNvbXBhcmUgd2FybmluZyBmbGFncwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmNwcAppbmRleCA4ZmU4YTM4Li5hZTI0YzRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmNwcApAQCAtODgsNyArODgsNyBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9jb21tb24o
Y29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAKICAgICAgICAgQ0ZTdHJpbmdHZXRD
U3RyaW5nKHN0ciwgYnVmZmVyLCBsZW5ndGgsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7CiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAg
ICAgICAgIGFzbF9sb2coMCwgMCwgQVNMX0xFVkVMX05PVElDRSwgIiVzIiwgYnVmZmVyKTsKICNl
bmRpZgogICAgICAgICBmcHV0cyhidWZmZXIsIHN0ZGVycik7CkBAIC05OSw3ICs5OSw3IEBAIHN0
YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX2NvbW1vbihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xp
c3QgYXJncykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICB2YV9saXN0IGNvcHlPZkFy
Z3M7CiAgICAgdmFfY29weShjb3B5T2ZBcmdzLCBhcmdzKTsKICAgICBhc2xfdmxvZygwLCAwLCBB
U0xfTEVWRUxfTk9USUNFLCBmb3JtYXQsIGNvcHlPZkFyZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvRmFzdE1hbGxvYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcApp
bmRleCBjYzg1MjFjLi5mNDBhZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFs
bG9jLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcApAQCAtNDY1NCwxMCAr
NDY1NCwxMCBAQCBleHRlcm4gIkMiIHsKIG1hbGxvY19pbnRyb3NwZWN0aW9uX3QganNjb3JlX2Zh
c3RtYWxsb2NfaW50cm9zcGVjdGlvbiA9IHsgJkZhc3RNYWxsb2Nab25lOjplbnVtZXJhdGUsICZG
YXN0TWFsbG9jWm9uZTo6Z29vZFNpemUsICZGYXN0TWFsbG9jWm9uZTo6Y2hlY2ssICZGYXN0TWFs
bG9jWm9uZTo6cHJpbnQsCiAgICAgJkZhc3RNYWxsb2Nab25lOjpsb2csICZGYXN0TWFsbG9jWm9u
ZTo6Zm9yY2VMb2NrLCAmRmFzdE1hbGxvY1pvbmU6OmZvcmNlVW5sb2NrLCAmRmFzdE1hbGxvY1pv
bmU6OnN0YXRpc3RpY3MKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IE9T
KElPUykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAgfHwgT1Mo
SU9TKQogICAgICwgMCAvLyB6b25lX2xvY2tlZCB3aWxsIG5vdCBiZSBjYWxsZWQgb24gdGhlIHpv
bmUgdW5sZXNzIGl0IGFkdmVydGlzZXMgaXRzZWxmIGFzIHZlcnNpb24gZml2ZSBvciBoaWdoZXIu
CiAjZW5kaWYKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IE9TKElPUykKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAgfHwgT1MoSU9TKQogICAgICwgMCwgMCwgMCwgMCAvLyBU
aGVzZSBtZW1iZXJzIHdpbGwgbm90IGJlIHVzZWQgdW5sZXNzIHRoZSB6b25lIGFkdmVydGlzZXMg
aXRzZWxmIGFzIHZlcnNpb24gc2V2ZW4gb3IgaGlnaGVyLgogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmlu
ZGV4IDkxOWY4NzIuLjdjNzYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtNTMzLDcgKzUzMyw3IEBACiAj
aWYgQ1BVKFg4Nl82NCkKICNkZWZpbmUgV1RGX1VTRV9QTFVHSU5fSE9TVF9QUk9DRVNTIDEKICNl
bmRpZgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNkZWZpbmUgRU5BQkxFX0dFU1RVUkVf
RVZFTlRTIDEKICNkZWZpbmUgRU5BQkxFX1JVQkJFUl9CQU5ESU5HIDEKICNkZWZpbmUgV1RGX1VT
RV9TQ1JPTExCQVJfUEFJTlRFUiAxCkBAIC01NTYsNyArNTU2LDcgQEAKICNpZiBkZWZpbmVkKEVO
QUJMRV9WSURFTykKICNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDEKICNlbmRpZgotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICNkZWZp
bmUgSEFWRV9MQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIgMQogI2VuZGlmCiAjZGVmaW5l
IFdURl9VU0VfQVBQS0lUIDEKQEAgLTcwNCw3ICs3MDQsNyBAQAogI2RlZmluZSBIQVZFX1NZU19U
SU1FQl9IIDEKICNkZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFIDEKIAotI2lmbmRlZiBUQVJHRVRJ
TkdfTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
CiAjZGVmaW5lIEhBVkVfRElTUEFUQ0hfSCAxCiAjZGVmaW5lIEhBVkVfSE9TVEVEX0NPUkVfQU5J
TUFUSU9OIDEKQEAgLTEwNDAsNyArMTA0MCw3IEBACiAjZGVmaW5lIEVOQUJMRV9QTFVHSU5fUEFD
S0FHRV9TSU1QTEVfSEFTSCAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDgwCiAjZGVmaW5lIEVOQUJMRV9USFJFQURFRF9TQ1JPTExJTkcgMQogI2VuZGlmCiAKQEAg
LTExMDIsMTEgKzExMDIsMTEgQEAKICNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA3MAogI2RlZmluZSBXVEZfVVNFX0FWRk9VTkRBVElPTiAxCiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAjZGVmaW5lIFdURl9VU0VfQ09SRU1FRElB
IDEKICNlbmRpZgogCkBAIC0xMTE4LDcgKzExMTgsNyBAQAogI2RlZmluZSBXVEZfVVNFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAjZGVm
aW5lIEhBVkVfSU5WRVJURURfV0hFRUxfRVZFTlRTIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmdQdGhyZWFkcy5jcHAKaW5kZXggNTEwMTczZC4uMmNmYTg3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1B0aHJlYWRzLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgPHN5cy90aW1l
Lmg+CiAjZW5kaWYKIAotI2lmIE9TKE1BQ19PU19YKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKQorI2lmIE9TKE1BQ19PU19YKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNjAKICNpbmNsdWRlIDxvYmpjL29iamMtYXV0by5oPgogI2VuZGlmCiAKQEAgLTIy
OCw3ICsyMjgsNyBAQCB2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoY29uc3Qg
Y2hhciogdGhyZWFkTmFtZSkKICAgICBVTlVTRURfUEFSQU0odGhyZWFkTmFtZSk7CiAjZW5kaWYK
IAotI2lmIE9TKE1BQ19PU19YKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lm
IE9TKE1BQ19PU19YKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAK
ICAgICAvLyBBbGwgdGhyZWFkcyB0aGF0IHBvdGVudGlhbGx5IHVzZSBBUElzIGFib3ZlIHRoZSBC
U0QgbGF5ZXIgbXVzdCBiZSByZWdpc3RlcmVkIHdpdGggdGhlIE9iamVjdGl2ZS1DCiAgICAgLy8g
Z2FyYmFnZSBjb2xsZWN0b3IgaW4gY2FzZSBBUEkgaW1wbGVtZW50YXRpb25zIHVzZSBnYXJiYWdl
LWNvbGxlY3RlZCBtZW1vcnkuCiAgICAgb2JqY19yZWdpc3RlclRocmVhZFdpdGhDb2xsZWN0b3Io
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAppbmRleCBlNTA3
YTIwLi44MjA2NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xs
YXRvcklDVS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIFBhc3NPd25QdHI8Q29sbGF0b3I+IENvbGxhdG9yOjp1c2Vy
RGVmYXVsdCgpCiB7CiAjaWYgT1MoREFSV0lOKSAmJiBVU0UoQ0YpCiAgICAgLy8gTWFjIE9TIFgg
ZG9lc24ndCBzZXQgVU5JWCBsb2NhbGUgdG8gbWF0Y2ggdXNlci1zZWxlY3RlZCBvbmUsIHNvIElD
VSBkZWZhdWx0IGRvZXNuJ3Qgd29yay4KLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhT1MoSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2
MCAmJiAhT1MoSU9TKQogICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2FsZShB
ZG9wdENGLCBDRkxvY2FsZUNvcHlDdXJyZW50KCkpOwogICAgIENGU3RyaW5nUmVmIGNvbGxhdGlv
bk9yZGVyID0gKENGU3RyaW5nUmVmKUNGTG9jYWxlR2V0VmFsdWUoY3VycmVudExvY2FsZS5nZXQo
KSwga0NGTG9jYWxlQ29sbGF0b3JJZGVudGlmaWVyKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMx
YTY0NC4uODIxNDFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTA3LTExICBN
YXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBtYWNyb3MgaW4gZmF2b3Ig
b2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKKworICAgICAgICBUaGlzIHJlbW92YWwgd2Fz
IGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xhdGVzIHRoZSByZWxldmFudCBtYWNyb3Mg
aW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCisgICAgICAgIHVzaW5nIHRoZSBzeXN0ZW0gYXZh
aWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxpc3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06
CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAqIGxvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuaDoKKyAgICAgICAgKiBwYWdlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAgICAgICAq
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXR0
aW5nc01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyRGF0YUNHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckRhdGFDRy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRy
b2xsZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENh
Y2hlTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5t
bToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1t
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRGlzcGxh
eVNsZWVwRGlzYWJsZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBE
aXNhYmxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FbXB0eVByb3RvY29sRGVmaW5pdGlv
bnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL05TU2Ny
b2xsZXJJbXBEZXRhaWxzLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N1ZGRl
blRlcm1pbmF0aW9uLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1dlYkZvbnRDYWNoZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2Vi
VmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL0NyZWRlbnRpYWwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9ETlNDRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0F1dGhlbnRpY2F0aW9uTWFjLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMubW06CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L1RleHRDaGVja2luZy5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRp
b25DRi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVuYXRpb25NYWMubW06
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tOgorCiAyMDEyLTA3LTExICBIdWFuZyBEb25nc3VuZyAgPGx1eHRl
bGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIEJpdG1hcEltYWdlOjpmcmFtZUlzQ29tcGxl
dGVBdEluZGV4KCkgbXVzdCByZXR1cm4gZmFsc2UgaWYgSW1hZ2VEZWNvZGVyIGlzIG5vdCBpbml0
aWFsaXplZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOTFjNDhhYy4uYThmZTJhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTE5ODksMjMgKzE5ODksMjMgQEAgX19aTjdXZWJDb3JlN0ludFNp
emVDMUVSSzdfTlNTaXplCiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjdfTlNTaXplRXYKICNlbmRp
ZgogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFQTEFURk9STShJ
T1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwICYmICFQTEFU
Rk9STShJT1MpCiBfd2tHZXROU0V2ZW50TW9tZW50dW1QaGFzZQogI2VuZGlmCiAKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IFBMQVRGT1JNKElPUykKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAgfHwgUExBVEZPUk0oSU9TKQogX3dr
Q0FMYXllckVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jawogX3drQ0ZVUkxSZXF1ZXN0
QWxsb3dBbGxQb3N0Q2FjaGluZwogX3drQ0dQYXRoQWRkUm91bmRlZFJlY3QKIF93a0NyZWF0ZUNU
VHlwZXNldHRlcldpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zCiAjZW5kaWYKIAotI2lmICgh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IFBMQVRGT1JNKElPUykpICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKQorI2lmIChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAgfHwgUExBVEZPUk0oSU9TKSkgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1Ip
CiBfd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlCiBfd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1h
Z2UKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAh
UExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MCAmJiAhUExBVEZPUk0oSU9TKQogX3drQVZBc3NldFJlc29sdmVkVVJMCiBfd2tDb3B5RGVmYXVs
dFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUKIF93a0NyZWF0ZVZNUHJlc3N1cmVEaXNwYXRjaE9u
TWFpblF1ZXVlCkBAIC0yMDE0LDcgKzIwMTQsNyBAQCBfd2tFeGVjdXRhYmxlV2FzTGlua2VkT25P
ckJlZm9yZVNub3dMZW9wYXJkCiBfd2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUKICNlbmRpZgog
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogX3drRXhlY3V0YWJsZVdhc0xp
bmtlZE9uT3JCZWZvcmVMaW9uCiBfd2tGaWx0ZXJBZGREYXRhCiBfd2tGaWx0ZXJDcmVhdGVJbnN0
YW5jZQpAQCAtMjA3Myw3ICsyMDczLDcgQEAgX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTQ2
c2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZUVSS04KIF9fWk43
V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyMWN1cnJlbnRTdG9yYWdlU2Vzc2lvbkV2CiBfX1pON1dl
YkNvcmUxNFJlc291cmNlSGFuZGxlMjlwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkV2CiBf
X1pON1dlYkNvcmUyNmN1cnJlbnRDRkhUVFBDb29raWVTdG9yYWdlRXYKLSNpZiBkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID09IDEwNjAKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyNHNldERlZmF1bHRTdG9y
YWdlU2Vzc2lvbkVQMjFfX0NGVVJMU3RvcmFnZVNlc3Npb24KICNlbHNlCiBfX1pON1dlYkNvcmUx
NFJlc291cmNlSGFuZGxlMjRzZXREZWZhdWx0U3RvcmFnZVNlc3Npb25FUEsyMV9fQ0ZVUkxTdG9y
YWdlU2Vzc2lvbgpAQCAtMjU0Myw3ICsyNTQzLDcgQEAgX19aTks3V2ViQ29yZTRLVVJMN2lzVmFs
aWRFdgogX19aTks3V2ViQ29yZTRLVVJMMjJwcm90b2NvbElzSW5IVFRQRmFtaWx5RXYKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xJT04pCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwODAKIF9fWk43V2ViQ29yZTI3QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVy
MTVhZGRBbHRlcm5hdGl2ZXNFUktOM1dURjlSZXRhaW5QdHJJMThOU1RleHRBbHRlcm5hdGl2ZXNF
RQogX19aTjdXZWJDb3JlMjdBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIyMmFsdGVybmF0aXZl
c0ZvckNvbnRleHRFeQogX19aTjdXZWJDb3JlMjdBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI1
Y2xlYXJFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdC5oCmluZGV4IGRlNWU5NmQuLjAyYmI1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpZm5k
ZWYgQWNjZXNzaWJpbGl0eUxpc3RfaAogI2RlZmluZSBBY2Nlc3NpYmlsaXR5TGlzdF9oCiAKLSNp
ZiBQTEFURk9STShNQUMpICYmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogI2Rl
ZmluZSBBQ0NFU1NJQklMSVRZX0xJU1RTIDAKICNlbHNlCiAjZGVmaW5lIEFDQ0VTU0lCSUxJVFlf
TElTVFMgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlLmgKaW5kZXggMjE4MTRmMi4uYTk1MDgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC0zMiw3ICszMiw3IEBACiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PT0gMTA1MAogI2RlZmluZSBBQ0NFU1NJQklMSVRZX1RBQkxFUyAwCiAjZWxzZQogI2RlZmluZSBB
Q0NFU1NJQklMSVRZX1RBQkxFUyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBhY2JjMjVmLi5jNzVlOGMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0KQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICAgICAg
ICAgICAgICBtYWNOb3RpZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZE5vdGlmaWNhdGlvbjsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBBWEF1dG9jb3JyZWN0aW9uT2NjdXJlZDoKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgICAgICBt
YWNOb3RpZmljYXRpb24gPSBAIkFYQXV0b2NvcnJlY3Rpb25PY2N1cnJlZCI7CiAgICAgICAgICAg
ICBicmVhazsKICNlbHNlCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlm
aWMKICAgICAgICAgY2FzZSBBWFJvd0NvdW50Q2hhbmdlZDoKICAgICAgICAgICAgIG1hY05vdGlm
aWNhdGlvbiA9IE5TQWNjZXNzaWJpbGl0eVJvd0NvdW50Q2hhbmdlZE5vdGlmaWNhdGlvbjsKICAg
ICAgICAgICAgIGJyZWFrOwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgIGNhc2UgQVhSb3dFeHBh
bmRlZDoKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IE5TQWNjZXNzaWJpbGl0eVJvd0V4
cGFuZGVkTm90aWZpY2F0aW9uOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggYzQyYzYyMy4uYTc4NjZhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtODEsNyArODEsNyBAQCB2b2lkIEVkaXRv
cjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93
UGxhaW5UZXh0KQogICAgIGJvb2wgY2hvb3NlUGxhaW5UZXh0OwogICAgIAogICAgIG1fZnJhbWUt
PmVkaXRvcigpLT5jbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChOU0dlbmVyYWxQYm9h
cmQpOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsIHJh
bmdlLCBhbGxvd1BsYWluVGV4dCwgY2hvb3NlUGxhaW5UZXh0KTsKICAgICBpZiAoZnJhZ21lbnQg
JiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rp
b25QYXN0ZWQpKQogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVw
bGFjZVdpdGhQYXN0ZWJvYXJkKHBhc3RlYm9hcmQpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDhiMjIwNGQuLmQwZmYyM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBACiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JN
KElPUykKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIApAQCAt
NzYsNyArNzYsNyBAQCBNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFt
ZSogZnJhbWUpCiAgICAgLCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KGZhbHNlKQogICAgICwg
bV93YWl0aW5nRm9yQ29udGVudFBvbGljeShmYWxzZSkKICAgICAsIG1fdGltZU9mTGFzdERhdGFS
ZWNlaXZlZCgwLjApCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwODAgJiYgIVBMQVRGT1JNKElPUykKICAgICAsIG1fZmlsdGVyKDApCiAjZW5kaWYKIHsK
QEAgLTg0LDcgKzg0LDcgQEAgTWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIo
RnJhbWUqIGZyYW1lKQogCiBNYWluUmVzb3VyY2VMb2FkZXI6On5NYWluUmVzb3VyY2VMb2FkZXIo
KQogewotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgw
ICYmICFQTEFURk9STShJT1MpCiAgICAgQVNTRVJUKCFtX2ZpbHRlcik7CiAjZW5kaWYKIH0KQEAg
LTEzNCw3ICsxMzQsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIC8vIGxpa2UgY2FsbGluZyBET01XaW5kb3c6OnBy
aW50KCksIGR1cmluZyB3aGljaCBhIGhhbGYtY2FuY2VsZWQgbG9hZCBjb3VsZCB0cnkgdG8gZmlu
aXNoLgogICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQ
TEFURk9STShJT1MpCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFz
ZShtX2ZpbHRlcik7CiAgICAgICAgIG1fZmlsdGVyID0gMDsKQEAgLTQxMyw3ICs0MTMsNyBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHIpCiAgICAgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElP
TikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChyLnVy
bCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgd2tGaWx0ZXJJc01hbmFnZWRTZXNzaW9uKCkpCiAg
ICAgICAgIG1fZmlsdGVyID0gd2tGaWx0ZXJDcmVhdGVJbnN0YW5jZShyLm5zVVJMUmVzcG9uc2Uo
KSk7CiAjZW5kaWYKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nCiAg
ICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAg
IGlmIChtX2ZpbHRlcikgewogICAgICAgICBBU1NFUlQoIXdrRmlsdGVyV2FzQmxvY2tlZChtX2Zp
bHRlcikpOwogICAgICAgICBjb25zdCBjaGFyKiBibG9ja2VkRGF0YSA9IHdrRmlsdGVyQWRkRGF0
YShtX2ZpbHRlciwgZGF0YSwgJmxlbmd0aCk7CkBAIC00NjksNyArNDY5LDcgQEAgdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5n
dGgsIGxvbmcgbG9uZwogCiAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEs
IGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CiAKLSNpZiBQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQog
ICAgIGlmIChXZWJGaWx0ZXJFdmFsdWF0b3IgKmZpbHRlciA9IG1fZmlsdGVyKSB7CiAgICAgICAg
IC8vIElmIHdlIGdvdCBoZXJlLCBpdCBtZWFucyB3ZSBrbm93IGlmIHdlIHdlcmUgYmxvY2tlZCBv
ciBub3QuIElmIHdlIHdlcmUgYmxvY2tlZCwgd2UncmUKICAgICAgICAgLy8gZG9uZSBsb2FkaW5n
IHRoZSBwYWdlIGFsdG9nZXRoZXIuIEVpdGhlciB3YXksIHdlIGRvbid0IG5lZWQgdGhlIGZpbHRl
ciBhbnltb3JlLgpAQCAtNDk2LDcgKzQ5Niw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogICAgIFJlZlB0cjxNYWluUmVzb3Vy
Y2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBkbCA9
IGRvY3VtZW50TG9hZGVyKCk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBM
QVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChtX2ZpbHRlcikgewog
ICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBjb25zdCBjaGFyKiBkYXRhID0gd2tGaWx0ZXJE
YXRhQ29tcGxldGUobV9maWx0ZXIsICZsZW5ndGgpOwpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKQog
CiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKIHsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykK
KyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICB3a0Zp
bHRlclJlbGVhc2UobV9maWx0ZXIpOwogICAgICAgICBtX2ZpbHRlciA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKaW5kZXggZjAwNWRkYy4uNjA5ZGE1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaApAQCAtMzQsNyAr
MzQsNyBAQAogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwICYmICFQTEFURk9STShJT1MpCiBPQkpDX0NMQVNTIFdlYkZpbHRlckV2YWx1YXRvcjsKICNl
bmRpZgogCkBAIC0xMTIsNyArMTEyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBi
b29sIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3k7CiAgICAgICAgIGRvdWJsZSBtX3RpbWVPZkxh
c3REYXRhUmVjZWl2ZWQ7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRG
T1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAgICAgICBXZWJGaWx0ZXJFdmFsdWF0
b3IgKm1fZmlsdGVyOwogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0FsdGVy
bmF0aXZlVGV4dENsaWVudC5oCmluZGV4IDY3MjQ1ZTYuLmNkNzQ3YjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaApAQCAtMzEsMTAgKzMxLDEwIEBACiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xJT04pCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwODAKIC8vIFNvbWUgcGxhdGZvcm1zIHByb3ZpZGUgVUkgZm9yIHN1Z2dlc3Rpbmcg
YWx0ZXJuYXRpdmUgZGljdGF0aW9uIHRleHQuCiAjZGVmaW5lIFdURl9VU0VfRElDVEFUSU9OX0FM
VEVSTkFUSVZFUyAxCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5k
ZXggNmUxODhmZC4uM2E4YThkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcApAQCAtNzAzLDcgKzcwMyw3IEBAIHN0YXRpYyBib29sIHNlbGVjdGlv
bkNvbnRhaW5zUG9zc2libGVXb3JkKEZyYW1lKiBmcmFtZSkKIH0KIAogI2lmIFBMQVRGT1JNKE1B
QykKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICNkZWZpbmUgSU5DTFVERV9TUE9UTElHSFRf
Q09OVEVYVF9NRU5VX0lURU0gMQogI2Vsc2UKICNkZWZpbmUgSU5DTFVERV9TUE9UTElHSFRfQ09O
VEVYVF9NRU5VX0lURU0gMApAQCAtOTM0LDcgKzkzNCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEln
bm9yZUdyYW1tYXJJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAgICAgICAgICAgICAgICAg
ICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAg
ICAgICAgICAgICAgICAgICAgaGF2ZUNvbnRleHRNZW51SXRlbXNGb3JNaXNzcGVsbGluZ09yR3Jh
bW1lciA9IHRydWU7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDYwCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgLy8gSWYgdGhlIHN0cmluZyB3YXMgYXV0b2NvcnJlY3RlZCwgZ2VuZXJhdGUgYSBjb250ZXh0
dWFsIG1lbnUgaXRlbSBhbGxvd2luZyBpdCB0byBiZSBjaGFuZ2VkIGJhY2suCiAgICAgICAgICAg
ICAgICAgICAgIFN0cmluZyByZXBsYWNlZFN0cmluZyA9IG1faGl0VGVzdFJlc3VsdC5yZXBsYWNl
ZFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2V0dGluZ3NN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbQppbmRleCAyM2I3
OTI1Li43ZDBkZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5n
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbQpAQCAt
NjksNyArNjksNyBAQCB2b2lkIFNldHRpbmdzOjppbml0aWFsaXplRGVmYXVsdEZvbnRGYW1pbGll
cygpCiAgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwgVVND
UklQVF9IQU5HVUwpOwogICAgIHNldFNlcmlmRm9udEZhbWlseSgiQXBwbGUgU0QgR290aGljIE5l
byIsIFVTQ1JJUFRfSEFOR1VMKTsKICNlbmRpZgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBzZXRGaXhlZEZvbnRGYW1pbHkoIkFw
cGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBUX0hBTkdVTCk7CiAgICAgc2V0U2Fuc1NlcmlmRm9u
dEZhbWlseSgiQXBwbGUgU0QgR290aGljIE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKICNlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDljNGJk
ZjMuLjhjODJhNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcApAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgU3RyaW5nIGZvcm1hdExvY2FsaXplZFN0
cmluZyhTdHJpbmcgZm9ybWF0LCAuLi4pCiAjZW5kaWYKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyBTdHJpbmcg
dHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkK
IHsKICAgICBpZiAob3JpZ2luYWwuaXNFbXB0eSgpKQpAQCAtMjQ0LDcgKzI0NCw3IEBAIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogewotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBzZWFyY2hQcm92aWRlck5hbWUoQWRvcHRDRiwgd2tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVy
RGlzcGxheU5hbWUoKSk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29u
dGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVkIiksIHNlYXJjaFByb3Zp
ZGVyTmFtZS5nZXQoKSk7CiAjZWxzZQpAQCAtMjU0LDcgKzI1NCw3IEBAIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1Vw
SW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCiB7Ci0jaWYgZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKICAgICBVTlVT
RURfUEFSQU0oc2VsZWN0ZWRTdHJpbmcpOwogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29r
IFVwIGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBp
dGVtIik7CiAjZWxzZQpAQCAtNzU1LDcgKzc1NSw3IEBAIFN0cmluZyBodG1sU2VsZWN0TXVsdGlw
bGVJdGVtcyhzaXplX3QgY291bnQpCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZp
bGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQogewogI2lmIFVTRShDRikKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA2MAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmlsZW5hbWVDRlN0cmluZyhB
ZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVDRlN0cmluZygpKTsKICAgICBSZXRhaW5QdHI8Q0ZMb2Nh
bGVSZWY+IGxvY2FsZShBZG9wdENGLCBDRkxvY2FsZUNvcHlDdXJyZW50KCkpOwogICAgIFJldGFp
blB0cjxDRk51bWJlckZvcm1hdHRlclJlZj4gZm9ybWF0dGVyKEFkb3B0Q0YsIENGTnVtYmVyRm9y
bWF0dGVyQ3JlYXRlKDAsIGxvY2FsZS5nZXQoKSwga0NGTnVtYmVyRm9ybWF0dGVyRGVjaW1hbFN0
eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcAppbmRleCAxNWU2ODA4Li5kMTExOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKQogewogfQogCi0jaWYg
IVBMQVRGT1JNKE1BQykgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IFBM
QVRGT1JNKElPUykKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID09IDEwNjAgfHwgUExBVEZPUk0oSU9TKQogdm9pZCBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6Omluc3RhbGwoKSB7IH0KIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnVuaW5z
dGFsbCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvQnVzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
QnVzTWFjLm1tCmluZGV4IGI0N2Y5NTMuLjM1YTA0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNNYWMubW0KQEAgLTQ5LDcgKzQ5LDcgQEAgUGFz
c093blB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNo
YXIqIG5hbWUsIGZsb2F0IHNhbXAKICAgICAKICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVu
ZGxlIGJ1bmRsZUZvckNsYXNzOltXZWJDb3JlQXVkaW9CdW5kbGVDbGFzcyBjbGFzc11dOwogICAg
IE5TVVJMICphdWRpb0ZpbGVVUkwgPSBbYnVuZGxlIFVSTEZvclJlc291cmNlOltOU1N0cmluZyBz
dHJpbmdXaXRoVVRGOFN0cmluZzpuYW1lXSB3aXRoRXh0ZW5zaW9uOkAid2F2IiBzdWJkaXJlY3Rv
cnk6QCJhdWRpbyJdOwotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogICAgIE5TRGF0YVJlYWRp
bmdPcHRpb25zIG9wdGlvbnMgPSBOU0RhdGFSZWFkaW5nTWFwcGVkOwogI2Vsc2UKICAgICBOU0Rh
dGFSZWFkaW5nT3B0aW9ucyBvcHRpb25zID0gTlNEYXRhUmVhZGluZ01hcHBlZElmU2FmZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCmluZGV4IDVlMzZmZjMu
LjI3NDQ0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YWRpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQu
aApAQCAtMzksNyArMzksNyBAQAogCiB0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQqIENHQ29udGV4
dFJlZjsKIAotI2RlZmluZSBVU0VfQ0dfU0hBRElORyBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpCisjZGVmaW5lIFVTRV9DR19TSEFESU5HIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA1MAogCiAjaWYgVVNFX0NHX1NIQURJTkcKIHR5cGVkZWYgc3RydWN0IENHU2hhZGlu
ZyogQ0dTaGFkaW5nUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYTI2MTQxZC4uNThk
NzkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNv
bnN0IFN0cmluZyYgdXJsKQogCiAgICAgW29wdGlvbnMuZ2V0KCkgc2V0T2JqZWN0OltOU051bWJl
ciBudW1iZXJXaXRoSW50OkFWQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbkZvcmJpZFJlbW90ZVJl
ZmVyZW5jZVRvTG9jYWwgfCBBVkFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25Gb3JiaWRMb2NhbFJl
ZmVyZW5jZVRvUmVtb3RlXSBmb3JLZXk6QVZVUkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uc0tl
eV07CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDgwCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IGhlYWRlckZpZWxkcyhB
ZG9wdE5TLCBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKIAogICAgIFN0cmlu
ZyByZWZlcnJlciA9IHBsYXllcigpLT5yZWZlcnJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZGU0
MDcyNS4uYTY3MDgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgc3RhdGlj
IGJvb2wgYW5pbWF0aW9uSGFzU3RlcHNUaW1pbmdGdW5jdGlvbihjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWVMaXN0LAogc3RhdGljIGlubGluZSBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRG
aWx0ZXJBbmltYXRpb25zKCkKIHsKIC8vIDxyZGFyOi8vcHJvYmxlbS8xMDkwNzI1MT4gLSBXZWJL
aXQyIGRvZXNuJ3Qgc3VwcG9ydCBDQSBhbmltYXRpb25zIG9mIENJIGZpbHRlcnMgb24gTGlvbiBh
bmQgYmVsb3cKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDgwCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAg
LTE4ODMsNyArMTg4Myw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1B
bmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAgICAgaW50IG51bUFu
aW1hdGlvbnMgPSBpc01hdHJpeEFuaW1hdGlvbiA/IDEgOiBvcGVyYXRpb25zLT5zaXplKCk7CiAK
ICAgICBib29sIHJldmVyc2VBbmltYXRpb25MaXN0ID0gdHJ1ZTsKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFQTEFURk9STShXSU4pCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwICYmICFQTEFURk9STShXSU4pCiAgICAgICAgIC8v
IE9sZCB2ZXJzaW9ucyBvZiBDb3JlIEFuaW1hdGlvbiBhcHBseSBhbmltYXRpb25zIGluIHJldmVy
c2Ugb3JkZXIgKDxyZGFyOi8vcHJvYmxlbS83MDk1NjM4Pikgc28gd2UgbmVlZCB0byBmbGlwIHRo
ZSBsaXN0LgogICAgICAgICAvLyB0byBiZSBub24tYWRkaXRpdmUuIEZvciBiaW5hcnkgY29tcGF0
aWJpbGl0eSwgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBDb3JlIEFuaW1hdGlvbiBwcmVzZXJ2ZXMg
dGhpcyBiZWhhdmlvciBmb3IgYXBwbGljYXRpb25zIGxpbmtlZAogICAgICAgICAvLyBvbiBvciBi
ZWZvcmUgU25vdyBMZW9wYXJkLgpAQCAtMjM5Miw3ICsyMzkyLDcgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lk
dGgpCiBGbG9hdFNpemUgR3JhcGhpY3NMYXllckNBOjpjb25zdHJhaW5lZFNpemUoKSBjb25zdAog
ewogICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNpemUgPSBtX3NpemU7Ci0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA9PSAxMDYwCiAgICAgZmxvYXQgdGlsZUNvbHVtbnMgPSBjZWlsZihtX3NpemUud2lkdGgo
KSAvIGtUaWxlZExheWVyVGlsZVNpemUpOwogICAgIGZsb2F0IHRpbGVSb3dzID0gY2VpbGYobV9z
aXplLmhlaWdodCgpIC8ga1RpbGVkTGF5ZXJUaWxlU2l6ZSk7CiAgICAgZG91YmxlIG51bVRpbGVz
ID0gdGlsZUNvbHVtbnMgKiB0aWxlUm93czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggMDAyYjdhMC4uNjdlMjRj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmlu
dFRyZWUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICB2b2lkIHN5bmNocm9ub3VzbHlEaXNw
bGF5VGlsZXNJblJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0KaW5kZXggM2E3YWM3OC4uODQwYmM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVy
TWFjLm1tCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBkb3VibGUgbWVkaWFUaW1lVG9DdXJyZW50
VGltZShDRlRpbWVJbnRlcnZhbCB0KQogCiBAZW5kCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiBAaW50ZXJmYWNlIENBVGlsZWRMYXllcihHcmFwaGljc0xheWVyQ0FQcml2YXRlKQogLSAo
dm9pZClkaXNwbGF5SW5SZWN0OihDR1JlY3QpciBsZXZlbE9mRGV0YWlsOihpbnQpbG9kIG9wdGlv
bnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAtIChCT09MKWNhbkRyYXdDb25jdXJyZW50bHk7CkBA
IC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKENG
VGltZUludGVydmFsIHQpCiAKIEBpbnRlcmZhY2UgQ0FMYXllcihQcml2YXRlKQogLSAodm9pZClz
ZXRDb250ZW50c0NoYW5nZWQ7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogLSAodm9pZClz
ZXRBY2NlbGVyYXRlc0RyYXdpbmc6KEJPT0wpZmxhZzsKIC0gKEJPT0wpYWNjZWxlcmF0ZXNEcmF3
aW5nOwogI2VuZGlmCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNl
dE1hc2tzVG9Cb3VuZHMoYm9vbCB2YWx1ZSkKIAogYm9vbCBQbGF0Zm9ybUNBTGF5ZXI6OmFjY2Vs
ZXJhdGVzRHJhd2luZygpIGNvbnN0CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAg
IHJldHVybiBbbV9sYXllci5nZXQoKSBhY2NlbGVyYXRlc0RyYXdpbmddOwogI2Vsc2UKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC01NjMsNyArNTYzLDcgQEAgYm9vbCBQbGF0Zm9ybUNBTGF5ZXI6OmFj
Y2VsZXJhdGVzRHJhd2luZygpIGNvbnN0CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRBY2Nl
bGVyYXRlc0RyYXdpbmcoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcpCiB7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX2xh
eWVyLmdldCgpIHNldEFjY2VsZXJhdGVzRHJhd2luZzphY2NlbGVyYXRlc0RyYXdpbmddOwogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTkxMCw3ICs5MTAsNyBAQCB2b2lkIFBsYXRm
b3JtQ0FMYXllcjo6c2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKIAogZmxvYXQg
UGxhdGZvcm1DQUxheWVyOjpjb250ZW50c1NjYWxlKCkgY29uc3QKIHsKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDcwCiAgICAgcmV0dXJuIFttX2xheWVyLmdldCgpIGNvbnRlbnRzU2NhbGVdOwog
I2Vsc2UKICAgICByZXR1cm4gMTsKQEAgLTkxOSw3ICs5MTksNyBAQCBmbG9hdCBQbGF0Zm9ybUNB
TGF5ZXI6OmNvbnRlbnRzU2NhbGUoKSBjb25zdAogCiB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0
Q29udGVudHNTY2FsZShmbG9hdCB2YWx1ZSkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0
Q29udGVudHNTY2FsZTp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwpAQCAt
OTM3LDcgKzkzNyw3IEBAIFRpbGVkQmFja2luZyogUGxhdGZvcm1DQUxheWVyOjp0aWxlZEJhY2tp
bmcoKQogICAgIHJldHVybiBbdGlsZUNhY2hlTGF5ZXIgdGlsZWRCYWNraW5nXTsKIH0KIAotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzeW5jaHJvbm91
c2x5RGlzcGxheVRpbGVzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAo
bV9sYXllclR5cGUgIT0gTGF5ZXJUeXBlV2ViVGlsZWRMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tCmluZGV4IDU5ZDhi
MWYuLjY1NjgyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1RpbGVDYWNoZS5tbQpAQCAtMzYsNyArMzYsNyBAQAogCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogQGludGVyZmFjZSBDQUxheWVy
IChXZWJDQUxheWVyRGV0YWlscykKIC0gKHZvaWQpc2V0QWNjZWxlcmF0ZXNEcmF3aW5nOihCT09M
KWZsYWc7CiBAZW5kCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnNldFNjYWxl
KENHRmxvYXQgc2NhbGUpCiAgICAgaWYgKG1fc2NhbGUgPT0gc2NhbGUgJiYgbV9kZXZpY2VTY2Fs
ZUZhY3RvciA9PSBkZXZpY2VTY2FsZUZhY3RvcikKICAgICAgICAgcmV0dXJuOwogCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFZlY3RvcjxGbG9hdFJlY3Q+IGRpcnR5UmVjdHM7CiAK
ICAgICBtX2RldmljZVNjYWxlRmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xODIsNyAr
MTgyLDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnNldFNjYWxlKENHRmxvYXQgc2NhbGUpCiAKIHZvaWQg
VGlsZUNhY2hlOjpzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcp
CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJh
d2luZyA9PSBhY2NlbGVyYXRlc0RyYXdpbmcpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDAxLDcg
KzQwMSw3IEBAIFJldGFpblB0cjxXZWJUaWxlTGF5ZXI+IFRpbGVDYWNoZTo6Y3JlYXRlVGlsZUxh
eWVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0KQogICAgIFtsYXllci5nZXQoKSBzZXROYW1lOkAi
VGlsZSJdOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgW2xheWVy
LmdldCgpIHNldENvbnRlbnRzU2NhbGU6bV9kZXZpY2VTY2FsZUZhY3Rvcl07CiAgICAgW2xheWVy
LmdldCgpIHNldEFjY2VsZXJhdGVzRHJhd2luZzptX2FjY2VsZXJhdGVzRHJhd2luZ107CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcAppbmRleCA3NDg5NDY4Li45NzIzNzQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCkBAIC01NCwxMiArNTQsMTIgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIC8vIEJ1aWxk
aW5nIG9uIDEwLjYgb3IgbGF0ZXI6IGtDR0ludGVycG9sYXRpb25NZWRpdW0gaXMgZGVmaW5lZCBp
biB0aGUgQ0dJbnRlcnBvbGF0aW9uUXVhbGl0eSBlbnVtLgogI2RlZmluZSBIQVZFX0NHX0lOVEVS
UE9MQVRJT05fTUVESVVNIDEKICNlbmRpZgogCi0jaWZuZGVmIFRBUkdFVElOR19MRU9QQVJECisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAvLyBUYXJnZXRpbmcg
MTAuNiBvciBsYXRlcjogdXNlIGtDR0ludGVycG9sYXRpb25NZWRpdW0uCiAjZGVmaW5lIFdURl9V
U0VfQ0dfSU5URVJQT0xBVElPTl9NRURJVU0gMQogI2VuZGlmCkBAIC0xMTgxLDcgKzExODEsNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxvYXRTaXpl
JiBvZmZzZXQsIGZsb2F0IGJsdXIsIGNvbgogICAgIGJsdXJSYWRpdXMgPSBtaW4oYmx1clJhZGl1
cywgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KDEwMDAuMCkpOwogCiAKLSNpZiBkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA3MAogICAgIGlmICghaXNBY2Nl
bGVyYXRlZENvbnRleHQoKSkgewogICAgICAgICAvLyBXb3JrIGFyb3VuZCA8cmRhcjovL3Byb2Js
ZW0vNTUzOTM4OD4gYnkgZW5zdXJpbmcgdGhhdCB0aGUgb2Zmc2V0cyB3aWxsIGdldCB0cnVuY2F0
ZWQKICAgICAgICAgLy8gdG8gdGhlIGRlc2lyZWQgaW50ZWdlci4gQWxzbyBzZWU6IDxyZGFyOi8v
cHJvYmxlbS8xMDA1NjI3Nz4KQEAgLTE1OTgsNyArMTU5OCw3IEBAIEludGVycG9sYXRpb25RdWFs
aXR5IEdyYXBoaWNzQ29udGV4dDo6aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0CiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QWxsb3dzRm9udFNtb290aGluZyhib29sIGFsbG93c0Zv
bnRTbW9vdGhpbmcpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGFsbG93c0ZvbnRTbW9vdGhpbmcpOwot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9y
bUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRTZXRBbGxvd3NGb250U21vb3RoaW5nKGNvbnRleHQs
IGFsbG93c0ZvbnRTbW9vdGhpbmcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IDgxOTgyYTEuLmU1
MWM1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSA8SU9TdXJmYWNl
L0lPU3VyZmFjZS5oPgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDcwCiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjZW5kaWYKIApAQCAtMTgzLDcgKzE4Myw3IEBAIEltYWdlQnVmZmVy
OjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UKICAgICBtX2NvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAg
IG1fY29udGV4dC0+dHJhbnNsYXRlKDAsIC1zaXplLmhlaWdodCgpKTsKICAgICBtX2NvbnRleHQt
PnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KGFjY2VsZXJhdGVSZW5kZXJpbmcpOwotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID09IDEwNzAKICAgICBtX2RhdGEubV9sYXN0Rmx1c2hUaW1lID0gY3VycmVudFRpbWVNUygpOwog
I2VuZGlmCiAgICAgc3VjY2VzcyA9IHRydWU7CkBAIC0xOTUsNyArMTk1LDcgQEAgSW1hZ2VCdWZm
ZXI6On5JbWFnZUJ1ZmZlcigpCiAKIEdyYXBoaWNzQ29udGV4dCogSW1hZ2VCdWZmZXI6OmNvbnRl
eHQoKSBjb25zdAogewotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNzAKICAgICAvLyBGb3JjZSBhIGZsdXNoIGlm
IGxhc3QgZmx1c2ggd2FzIG1vcmUgdGhhbiAyMG1zIGFnbwogICAgIGlmIChtX2NvbnRleHQtPmlz
QWNjZWxlcmF0ZWRDb250ZXh0KCkpIHsKICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lID0gY3Vy
cmVudFRpbWVNUygpIC0gbV9kYXRhLm1fbGFzdEZsdXNoVGltZTsKQEAgLTI1MCw3ICsyNTAsNyBA
QCBOYXRpdmVJbWFnZVB0ciBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZUNvcHkgY29weUJlaGF2aW9yKSBjb25zdAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgZWxzZSB7CiAgICAgICAgIGltYWdlID0gd2tJT1N1cmZhY2VDb250ZXh0
Q3JlYXRlSW1hZ2UoY29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKSk7Ci0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA3MAogICAgICAgICBtX2RhdGEubV9sYXN0Rmx1c2hUaW1lID0gY3VycmVudFRpbWVNUygpOwog
I2VuZGlmCiAgICAgfQpAQCAtMzEwLDcgKzMxMCw3IEBAIFBhc3NSZWZQdHI8VWludDhDbGFtcGVk
QXJyYXk+IEltYWdlQnVmZmVyOjpnZXRVbm11bHRpcGxpZWRJbWFnZURhdGEoY29uc3QgSW50UmVj
CiB7CiAgICAgaWYgKG1fY29udGV4dC0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSkgewogICAgICAg
ICBDR0NvbnRleHRGbHVzaChjb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpKTsKLSNpZiBkZWZp
bmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA9PSAxMDcwCiAgICAgICAgIG1fZGF0YS5tX2xhc3RGbHVzaFRpbWUgPSBjdXJyZW50VGltZU1T
KCk7CiAjZW5kaWYKICAgICB9CkBAIC0zMjEsNyArMzIxLDcgQEAgUGFzc1JlZlB0cjxVaW50OENs
YW1wZWRBcnJheT4gSW1hZ2VCdWZmZXI6OmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEoY29uc3Qg
SW50UmUKIHsKICAgICBpZiAobV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKSB7CiAg
ICAgICAgIENHQ29udGV4dEZsdXNoKGNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCkpOwotI2lm
IGRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID09IDEwNzAKICAgICAgICAgbV9kYXRhLm1fbGFzdEZsdXNoVGltZSA9IGN1cnJlbnRU
aW1lTVMoKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcAppbmRleCA1ZTNhZTc4Li42
NDlkOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckRhdGFDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCkBAIC02Miw3ICs2Miw3IEBAIEltYWdlQnVmZmVy
RGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmKQogCiAjaWYgVVNFKEFDQ0VMRVJB
VEUpCiAKLSNpZm5kZWYgVEFSR0VUSU5HX1NOT1dfTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSAxMDcwCiBzdGF0aWMgYm9vbCBoYXZlVkltYWdlUm91bmRpbmdF
cnJvckZpeCgpIHsgcmV0dXJuIHRydWU7IH0KICNlbHNlCiAvLyBUaGUgdkltYWdlIHVucHJlbXVs
dGlwbHkgcm91dGluZSBoYWQgYSByb3VuZGluZyBidWcgYmVmb3JlIDEwLjYuNyA8cmRhcjovL3By
b2JsZW0vODYzMTU0OD4KQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIGJvb2wgaGF2ZVZJbWFnZVJv
dW5kaW5nRXJyb3JGaXgoKQogICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IChHZXN0YWx0KGdlc3Rh
bHRTeXN0ZW1WZXJzaW9uLCAmdmVyc2lvbikgPT0gbm9FcnIgJiYgdmVyc2lvbiA+IDB4MTA2Nik7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLSNlbmRpZiAvLyBUQVJHRVRJTkdfU05PV19MRU9QQVJE
CisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwNzAKIAogI2lm
IFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpCiBzdGF0aWMgdm9pZCBjb252ZXJ0
U2NhbmxpbmUodm9pZCogZGF0YSwgc2l6ZV90IHRpbGVOdW1iZXIsIGJvb2wgcHJlbXVsdGlwbHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckRhdGFDRy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJEYXRhQ0cuaAppbmRleCA2MjMzYzZjLi5lYWJlMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBVU0UoQ0EpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkpCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzApCiAjZGVmaW5lIFdURl9VU0VfSU9TVVJGQUNF
X0NBTlZBU19CQUNLSU5HX1NUT1JFIDEKICNlbmRpZgogCkBAIC01NCw3ICs1NCw3IEBAIHB1Ymxp
YzoKICAgICBDaGVja2VkPHVuc2lnbmVkLCBSZWNvcmRPdmVyZmxvdz4gbV9ieXRlc1BlclJvdzsK
ICAgICBDR0NvbG9yU3BhY2VSZWYgbV9jb2xvclNwYWNlOwogICAgIFJldGFpblB0cjxJT1N1cmZh
Y2VSZWY+IG1fc3VyZmFjZTsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDcwCiAgICAgbXV0YWJsZSBkb3VibGUg
bV9sYXN0Rmx1c2hUaW1lOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKaW5kZXggZmVkOTExYS4uOTk3ZjRiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTI2OSw3
ICsyNjksNyBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGN0eHQs
IGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAgICAgLy8gRklYTUU6IFdlIGNhbm5v
dCB1c2UgQ0dDb250ZXh0RHJhd1RpbGVkSW1hZ2Ugd2l0aCBzY2FsZWQgdGlsZXMgb24gTGVvcGFy
ZCwgYmVjYXVzZSBpdCBzdWZmZXJzIGZyb20gcm91bmRpbmcgZXJyb3JzLiAgU25vdyBMZW9wYXJk
IGlzIG9rLgogICAgIGZsb2F0IHNjYWxlZFRpbGVXaWR0aCA9IHRpbGVSZWN0LndpZHRoKCkgKiBu
YXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHBhdHRlcm5UcmFuc2Zvcm0uYSgpKTsKICAgICBmbG9hdCB3
ID0gQ0dJbWFnZUdldFdpZHRoKHRpbGVJbWFnZSk7Ci0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFS
RAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIGlmICh3
ID09IHNpemUoKS53aWR0aCgpICYmIGggPT0gc2l6ZSgpLmhlaWdodCgpICYmIHNjYWxlZFRpbGVX
aWR0aCA9PSB0aWxlUmVjdC53aWR0aCgpICYmIHNjYWxlZFRpbGVIZWlnaHQgPT0gdGlsZVJlY3Qu
aGVpZ2h0KCkpCiAjZWxzZQogICAgIGlmICh3ID09IHNpemUoKS53aWR0aCgpICYmIGggPT0gc2l6
ZSgpLmhlaWdodCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZVNvdXJjZUNHLmNwcAppbmRleCA0MzM1MzY1Li41NWJkNWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNw
cApAQCAtODUsNyArODUsNyBAQCBJbWFnZVNvdXJjZTo6fkltYWdlU291cmNlKCkKIAogdm9pZCBJ
bWFnZVNvdXJjZTo6Y2xlYXIoYm9vbCBkZXN0cm95QWxsRnJhbWVzLCBzaXplX3QsIFNoYXJlZEJ1
ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NjAKICAgICAvLyBSZWNlbnQgdmVyc2lvbnMgb2YgSW1hZ2VJTyBkaXNjYXJkIHByZXZpb3VzbHkg
ZGVjb2RlZCBpbWFnZSBmcmFtZXMgaWYgdGhlIGNsaWVudAogICAgIC8vIGFwcGxpY2F0aW9uIG5v
IGxvbmdlciBob2xkcyByZWZlcmVuY2VzIHRvIHRoZW0sIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byB0
aHJvdyBhd2F5CiAgICAgLy8gdGhlIGRlY29kZXIgdW5sZXNzIHdlJ3JlIGV4cGxpY2l0bHkgYXNr
ZWQgdG8gZGVzdHJveSBhbGwgb2YgdGhlIGZyYW1lcy4KQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0
aWMgQ0ZEaWN0aW9uYXJ5UmVmIGltYWdlU291cmNlT3B0aW9ucyhJbWFnZVNvdXJjZTo6U2hvdWxk
U2tpcE1ldGFkYXRhIHNraXBNZQogICAgIGlmICghb3B0aW9ucykgewogICAgICAgICBjb25zdCB1
bnNpZ25lZCBudW1PcHRpb25zID0gMzsKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTElPTikg
fHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA8PSAxMDcwCiAgICAgICAgIC8vIExpb24gYW5kIFNub3cgTGVvcGFy
ZCBvbmx5IHJldHVybiBPcmllbnRhdGlvbiB3aGVuIGtDR0ltYWdlU291cmNlU2tpcE1ldGFEYXRh
IGlzIGZhbHNlLAogICAgICAgICAvLyBhbmQgaW5jb3JyZWN0bHkgcmV0dXJuIGNhY2hlZCBtZXRh
ZGF0YSBpZiBhbiBpbWFnZSBpcyBxdWVyaWVkIG9uY2Ugd2l0aCBrQ0dJbWFnZVNvdXJjZVNraXBN
ZXRhRGF0YSB0cnVlCiAgICAgICAgIC8vIGFuZCB0aGVuIHN1YnNlcXVlbnRseSB3aXRoIGtDR0lt
YWdlU291cmNlU2tpcE1ldGFEYXRhIGZhbHNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAKaW5kZXggNmNjOTM3OC4uNmM0ZWIxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCkBAIC0xNzUsNyAr
MTc1LDcgQEAgRmxvYXRSZWN0IFBhdGg6OmJvdW5kaW5nUmVjdCgpIGNvbnN0CiAgICAgLy8gZG9l
cyBub3QsIGJ1dCBvbmx5IGV4aXN0cyBvbiAxMC42IGFuZCBhYm92ZS4KIAogICAgIENHUmVjdCBi
b3VuZCA9IENHUmVjdFplcm87Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBib3VuZCA9IENH
UGF0aEdldFBhdGhCb3VuZGluZ0JveChtX3BhdGgpOwogI2Vsc2UKICAgICBib3VuZCA9IENHUGF0
aEdldEJvdW5kaW5nQm94KG1fcGF0aCk7CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBQYXRoOjph
ZGRBcmNUbyhjb25zdCBGbG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYgcDIsIGZsb2F0
IHJhZGl1cykKIAogdm9pZCBQYXRoOjpwbGF0Zm9ybUFkZFBhdGhGb3JSb3VuZGVkUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3Qg
RmxvYXRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0UmFk
aXVzLCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKQogewotI2lmIFBMQVRGT1JN
KE1BQykgJiYgKCFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBib29sIGVxdWFsV2lkdGhzID0gKHRvcExl
ZnRSYWRpdXMud2lkdGgoKSA9PSB0b3BSaWdodFJhZGl1cy53aWR0aCgpICYmIHRvcFJpZ2h0UmFk
aXVzLndpZHRoKCkgPT0gYm90dG9tTGVmdFJhZGl1cy53aWR0aCgpICYmIGJvdHRvbUxlZnRSYWRp
dXMud2lkdGgoKSA9PSBib3R0b21SaWdodFJhZGl1cy53aWR0aCgpKTsKICAgICBib29sIGVxdWFs
SGVpZ2h0cyA9ICh0b3BMZWZ0UmFkaXVzLmhlaWdodCgpID09IGJvdHRvbUxlZnRSYWRpdXMuaGVp
Z2h0KCkgJiYgYm90dG9tTGVmdFJhZGl1cy5oZWlnaHQoKSA9PSB0b3BSaWdodFJhZGl1cy5oZWln
aHQoKSAmJiB0b3BSaWdodFJhZGl1cy5oZWlnaHQoKSA9PSBib3R0b21SaWdodFJhZGl1cy5oZWln
aHQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQppbmRleCBmMzBiMTgxLi41MTY4
NjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250UGxhdGZvcm1EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCkBAIC01OSwxMyArNTksMTMgQEAg
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgZmxvYXQg
c2l6ZSwgYm9vbCBpc1ByaW50ZXJGb24KICAgICBDR0ZvbnRSZWYgY2dGb250ID0gMDsKICAgICBs
b2FkRm9udChuc0ZvbnQsIHNpemUsIG1fZm9udCwgY2dGb250KTsKICAgICAKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8g
RklYTUU6IENocm9taXVtOiBUaGUgZm9sbG93aW5nIGNvZGUgaXNuJ3QgY29ycmVjdCBmb3IgdGhl
IENocm9taXVtIHBvcnQgc2luY2UgdGhlIHNhbmRib3ggbWlnaHQKICAgICAvLyBoYXZlIGJsb2Nr
ZWQgZm9udCBsb2FkaW5nLCBpbiB3aGljaCBjYXNlIHdlJ2xsIG9ubHkgaGF2ZSB0aGUgcmVhbCBs
b2FkZWQgZm9udCBmaWxlIGFmdGVyIHRoZSBjYWxsIHRvIGxvYWRGb250KCkuCiAgICAgewogICAg
ICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyB0cmFpdHMgPSBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0
cyh0b0NURm9udFJlZihtX2ZvbnQpKTsKICAgICAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHRy
YWl0cyAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0OwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JN
KElPUykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBM
QVRGT1JNKElPUykKICAgICAgICAgbV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2UgPSB0cmFpdHMg
JiBrQ1RGb250Q29tcG9zaXRlVHJhaXQ7CiAjZW5kaWYKICAgICB9CkBAIC0xNTAsMTEgKzE1MCwx
MSBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQogI2VuZGlm
CiAgICAgCiAgICAgbV9jZ0ZvbnQuYWRvcHRDRihjZ0ZvbnQpOwotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICB7CiAgICAgICAg
IENURm9udFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKHRv
Q1RGb250UmVmKG1fZm9udCkpOwogICAgICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gdHJhaXRz
ICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICBtX2lzQ29tcG9zaXRlRm9udFJl
ZmVyZW5jZSA9IHRyYWl0cyAmIGtDVEZvbnRDb21wb3NpdGVUcmFpdDsKICNlbmRpZgogICAgIH0K
QEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgYm9vbCBjYW5TZXRDYXNjYWRlTGlzdEZvckN1c3Rv
bUZvbnQoKQogICAgIH0KIAogICAgIHJldHVybiBzeXN0ZW1WZXJzaW9uID49IDB4MTA2MDsKLSNl
bGlmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjZWxpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBmMmI4NmIyLi5jYzE3MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTYyNCw3ICsxNjI0LDcgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QK
IAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzRnVsbHNjcmVlbigp
IGNvbnN0CiB7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2Js
ZW0vNzM4OTk0NT4KICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcAppbmRleCBhOTMyNGQzLi5mZTMyMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVy
LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNp
bmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCi0jaWYgZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogLy8gVW5kZWZpbmVkIHdoZW4gY29tcGlsaW5nIGFnYWlucyB0aGUgMTAuNSBTREsuCiAj
ZGVmaW5lIGtDVFZlcnNpb25OdW1iZXIxMF82IDB4MDAwMzAwMDAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJv
bGxlckNvcmVUZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCmluZGV4IGU1MzA0NTMuLjk3MTc4YWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4
dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KQEAgLTM5LDcgKzM5LDcg
QEAKICNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4dC5oPgogI2VuZGlmCiAKLSNpZiBkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA9PSAxMDUwCiAvLyBUaGUgZm9sbG93aW5nIHN5bWJvbHMgYXJlIFNQSSBpbiAxMC41LgogZXh0
ZXJuICJDIiB7CiB2b2lkIENUUnVuR2V0QWR2YW5jZXMoQ1RSdW5SZWYgcnVuLCBDRlJhbmdlIHJh
bmdlLCBDR1NpemUgYnVmZmVyW10pOwpAQCAtMjE4LDcgKzIxOCw3IEBAIHZvaWQgQ29tcGxleFRl
eHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVyc0NvcmVUZXh0
KGNvbnN0IFVDCiAgICAgICAgIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgbHRyVHlwZXNldHRlck9w
dGlvbnMgPSBDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3B0aW9uS2V5
cywgbHRyT3B0aW9uVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKG9wdGlvbktleXMpLCAma0NGQ29w
eVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKTsKICAgICAgICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBydGxUeXBlc2V0dGVyT3B0
aW9ucyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcHRpb25LZXlz
LCBydGxPcHRpb25WYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgob3B0aW9uS2V5cyksICZrQ0ZDb3B5
U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgICAgICBQcm92aWRlckluZm8gaW5mbyA9IHsgY3AsIGxlbmd0aCwg
c3RyaW5nQXR0cmlidXRlcy5nZXQoKSB9OwogICAgICAgICBSZXRhaW5QdHI8Q1RUeXBlc2V0dGVy
UmVmPiB0eXBlc2V0dGVyKEFkb3B0Q0YsIHdrQ3JlYXRlQ1RUeXBlc2V0dGVyV2l0aFVuaUNoYXJQ
cm92aWRlckFuZE9wdGlvbnMoJnByb3ZpZGVTdHJpbmdBbmRBdHRyaWJ1dGVzLCAwLCAmaW5mbywg
bV9ydW4ubHRyKCkgPyBsdHJUeXBlc2V0dGVyT3B0aW9ucyA6IHJ0bFR5cGVzZXR0ZXJPcHRpb25z
KSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q2FjaGVNYWMubW0KaW5kZXggOTFkZDQyNi4uNDllODA5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCkBAIC01
Miw3ICs1Miw3IEBAIHN0YXRpYyB2b2lkIGludmFsaWRhdGVGb250Q2FjaGUodm9pZCopCiAgICAg
Zm9udENhY2hlKCktPmludmFsaWRhdGUoKTsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBz
dGF0aWMgdm9pZCBmb250Q2FjaGVSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uQ2Fs
bGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1Jl
ZiBuYW1lLCBjb25zdCB2b2lkICosIENGRGljdGlvbmFyeVJlZikKIHsKICAgICBBU1NFUlRfVU5V
U0VEKG9ic2VydmVyLCBvYnNlcnZlciA9PSBmb250Q2FjaGUoKSk7CkBAIC02OSw3ICs2OSw3IEBA
IHN0YXRpYyB2b2lkIGZvbnRDYWNoZUFUU05vdGlmaWNhdGlvbkNhbGxiYWNrKEFUU0ZvbnROb3Rp
ZmljYXRpb25JbmZvUmVmLCB2b2lkKikKIHZvaWQgRm9udENhY2hlOjpwbGF0Zm9ybUluaXQoKQog
ewogICAgIHdrU2V0VXBGb250Q2FjaGUoKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIENG
Tm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2Nh
bENlbnRlcigpLCB0aGlzLCBmb250Q2FjaGVSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0
aW9uQ2FsbGJhY2ssIGtDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJlZEZvbnRzQ2hhbmdlZE5vdGlmaWNh
dGlvbiwgMCwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JEZWxpdmVySW1tZWRpYXRl
bHkpOwogI2Vsc2UKICAgICAvLyBrQ1RGb250TWFuYWdlclJlZ2lzdGVyZWRGb250c0NoYW5nZWRO
b3RpZmljYXRpb24gZG9lcyBub3QgZXhpc3Qgb24gTGVvcGFyZCBhbmQgZWFybGllci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCBjZmRkZjM2Li5iMTkyNjg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAKIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkKIHsKLSNpZmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9
PSAxMDUwCiAgICAgaWYgKG1fYXRzQ29udGFpbmVyKQogICAgICAgICBBVFNGb250RGVhY3RpdmF0
ZShtX2F0c0NvbnRhaW5lciwgTlVMTCwga0FUU09wdGlvbkZsYWdzRGVmYXVsdCk7CiAjZW5kaWYK
QEAgLTExOSw3ICsxMTksNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQogCiAgICAgUmV0YWluUHRyPENH
Rm9udFJlZj4gY2dGb250UmVmOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBSZXRhaW5QdHI8Q0ZE
YXRhUmVmPiBidWZmZXJEYXRhKEFkb3B0Q0YsIGJ1ZmZlci0+Y3JlYXRlQ0ZEYXRhKCkpOwogICAg
IFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3ZpZGVyKEFkb3B0Q0YsIENHRGF0
YVByb3ZpZGVyQ3JlYXRlV2l0aENGRGF0YShidWZmZXJEYXRhLmdldCgpKSk7CiAKQEAgLTE1Nyw3
ICsxNTcsNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKiBjcmVhdGVGb250Q3VzdG9tUGxhdGZv
cm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQogICAgICAgICBBVFNGb250RGVhY3RpdmF0ZShj
b250YWluZXJSZWYsIE5VTEwsIGtBVFNPcHRpb25GbGFnc0RlZmF1bHQpOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9Ci0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNl
bmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAogICAgIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEqIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEgPSBuZXcgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShjb250YWluZXJSZWYsIGNnRm9udFJlZi5sZWFrUmVmKCkpOwogI2lm
IFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KaW5kZXggNGFmYjVmYi4uODRkMGMzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KQEAgLTcxLDcg
KzcxLDcgQEAgc3RhdGljIGJvb2wgaGFzQnJva2VuQ1RGb250R2V0VmVydGljYWxUcmFuc2xhdGlv
bnNGb3JHbHlwaHMoKQogICAgICAgICBpc0NhY2hlZCA9IHRydWU7CiAgICAgfQogICAgIHJldHVy
biByZXN1bHQ7Ci0jZWxpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbGlm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIHZv
aWQgc2hvd0dseXBoc1dpdGhBZHZhbmNlcyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3Qg
U2ltcGxlRm9udERhdGEKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBDR0NvbnRleHRTaG93
R2x5cGhzV2l0aEFkdmFuY2VzKGNvbnRleHQsIGdseXBocywgYWR2YW5jZXMsIGNvdW50KTsKICAg
ICB9Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgIGVsc2UgewogICAgICAgICBpZiAoIWNvdW50KQogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dy
YXBoaWNzQ29udGV4dE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9HcmFwaGljc0NvbnRleHRNYWMubW0KaW5kZXggZTA4NTkxZC4uMjk2NjZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3ND
b250ZXh0TWFjLm1tCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHcK
ICAgICAgICAgICAgIHBhdHRlcm5Db2xvciA9IGdyYW1tYXJQYXR0ZXJuQ29sb3IuZ2V0KCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgICAgIC8vIFRvIHN1cHBvcnQgY29ycmVjdGlvbiBwYW5lbC4KICAgICAg
ICAgY2FzZSBEb2N1bWVudE1hcmtlckF1dG9jb3JyZWN0aW9uUmVwbGFjZW1lbnRMaW5lU3R5bGU6
CiAgICAgICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJEaWN0YXRpb25BbHRlcm5hdGl2ZXNMaW5lU3R5
bGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggY2QxNjFhMy4uMmU4NDlhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWUoY29uc3QgU3RyaW5nJiB1cmwp
CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbW92aWVBdHRyaWJ1dGVzID0gY29tbW9uTW92aWVB
dHRyaWJ1dGVzKCk7ICAgIAogICAgIFttb3ZpZUF0dHJpYnV0ZXMgc2V0VmFsdWU6Y29jb2FVUkwg
Zm9yS2V5OlFUTW92aWVVUkxBdHRyaWJ1dGVdOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAg
ICBDRkRpY3Rpb25hcnlSZWYgcHJveHlTZXR0aW5ncyA9IENGTmV0d29ya0NvcHlTeXN0ZW1Qcm94
eVNldHRpbmdzKCk7CiAgICAgQ0ZBcnJheVJlZiBwcm94aWVzRm9yVVJMID0gQ0ZOZXR3b3JrQ29w
eVByb3hpZXNGb3JVUkwoKENGVVJMUmVmKWNvY29hVVJMLCBwcm94eVNldHRpbmdzKTsKICAgICBC
T09MIHdpbGxVc2VQcm94eSA9IFlFUzsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllKE5TVVJMICp1cmwsIE5TRGljdGlvbmFyeSAq
bW92aWVBdHRyaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZWN0b3I6QHNlbGVjdG9yKGRpZEVuZDopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5hbWU6UVRNb3ZpZURpZEVuZE5vdGlmaWNhdGlvbiAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0Om1fcXRN
b3ZpZS5nZXQoKV07Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6
QHNlbGVjdG9yKGxheWVySG9zdENoYW5nZWQ6KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5hbWU6QCJXZWJLaXRMYXllckhvc3RDaGFuZ2VkIgpAQCAt
ODc2LDcgKzg3Niw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Omhhc0F1ZGlvKCkg
Y29uc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3QKIHsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAg
ICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzczODk5NDU+CkBAIC05MDMsNyArOTAzLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wg
Y2xvc2VkQ2FwdGlvbnNWaXNpYmwKICAgICBpZiAobWV0YURhdGFBdmFpbGFibGUoKSkgewogICAg
ICAgICB3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMobV9xdE1vdmllLmdldCgpLCBjbG9z
ZWRDYXB0aW9uc1Zpc2libGUpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAg
aWYgKGNsb3NlZENhcHRpb25zVmlzaWJsZSAmJiBtX3F0VmlkZW9MYXllcikgewogICAgICAgICAv
LyBDYXB0aW9ucyB3aWxsIGJlIHJlbmRlcmVkIHVwc2lkZSBkb3duIHVubGVzcyB3ZSBmbGFnIHRo
ZSBtb3ZpZSBhcyBmbGlwcGVkIChhZ2FpbikuIFNlZSA8cmRhcjovLzc0MDg0NDA+LgogICAgICAg
ICBbbV9xdFZpZGVvTGF5ZXIuZ2V0KCkgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107CkBAIC0xMDAx
LDcgKzEwMDEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjYWNoZU1vdmllU2Nh
bGUoKQogICAgIE5TU2l6ZSBpbml0aWFsU2l6ZSA9IE5TWmVyb1NpemU7CiAgICAgTlNTaXplIG5h
dHVyYWxTaXplID0gW1ttX3F0TW92aWUuZ2V0KCkgYXR0cmlidXRlRm9yS2V5OlFUTW92aWVOYXR1
cmFsU2l6ZUF0dHJpYnV0ZV0gc2l6ZVZhbHVlXTsKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgLy8g
UVRNb3ZpZUN1cnJlbnRTaXplQXR0cmlidXRlIGlzIG5vdCBhbGxvd2VkIHdpdGggaW5zdGFuY2Vz
IG9mIFFUTW92aWUgdGhhdCBoYXZlIGJlZW4gCiAgICAgLy8gb3BlbmVkIHdpdGggUVRNb3ZpZU9w
ZW5Gb3JQbGF5YmFja0F0dHJpYnV0ZSwgc28gYXNrIGZvciB0aGUgZGlzcGxheSB0cmFuc2Zvcm0g
YXR0cmlidXRlIGluc3RlYWQuCiAgICAgTlNBZmZpbmVUcmFuc2Zvcm0gKmRpc3BsYXlUcmFuc2Zv
cm0gPSBbbV9xdE1vdmllLmdldCgpIGF0dHJpYnV0ZUZvcktleTpAIlFUTW92aWVQcmVmZXJyZWRU
cmFuc2Zvcm1BdHRyaWJ1dGUiXTsKQEAgLTEyMzYsNyArMTIzNiw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OmRpZEVuZCgpCiB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCi0jaWYgZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA9PSAxMDYwCiBzdGF0aWMgYm9vbCBsYXllcklzRGVzY2VuZGVudE9mKFBsYXRmb3JtTGF5ZXIq
IGNoaWxkLCBQbGF0Zm9ybUxheWVyKiBkZXNjZW5kZW50KQogewogICAgIGlmICghY2hpbGQgfHwg
IWRlc2NlbmRlbnQpCkBAIC0xMjUzLDcgKzEyNTMsNyBAQCBzdGF0aWMgYm9vbCBsYXllcklzRGVz
Y2VuZGVudE9mKFBsYXRmb3JtTGF5ZXIqIGNoaWxkLCBQbGF0Zm9ybUxheWVyKiBkZXNjZW5kZW50
KQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpsYXllckhvc3RDaGFuZ2VkKFBsYXRm
b3JtTGF5ZXIqIHJvb3RMYXllcikKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAgICBp
ZiAoIXJvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KaW5kZXgg
ZDVkNTU2MC4uYTY5NTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQpAQCAtODIsNyArODIsNyBAQCBz
dGF0aWMgTlNTdHJpbmcgKndlYkZhbGxiYWNrRm9udEZhbWlseSh2b2lkKQogfQogCiAjaWYgIUVS
Uk9SX0RJU0FCTEVECi0jaWYgZGVmaW5lZChfX0xQNjRfXykgfHwgKCFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkpCisjaWYg
ZGVmaW5lZChfX0xQNjRfXykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiBzdGF0aWMgTlNTdHJpbmcqIHBhdGhGcm9tRm9udChOU0ZvbnQqKQogewogICAgIC8vIEZN
R2V0QVRTRm9udFJlZkZyb21Gb250IGlzIG5vdCBhdmFpbGFibGUuIEFzIHBhdGhGcm9tRm9udCBp
cyBvbmx5IHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywKQEAgLTIzMyw3ICsyMzMsNyBAQCB2
b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIE5TU3RyaW5nICpmYW1pbHlO
YW1lID0gW21fcGxhdGZvcm1EYXRhLmZvbnQoKSBmYW1pbHlOYW1lXTsKICAgICBpZiAoW2ZhbWls
eU5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiVGltZXMiXSB8fCBbZmFtaWx5TmFtZSBpc0VxdWFsVG9T
dHJpbmc6QCJIZWx2ZXRpY2EiXSB8fCBbZmFtaWx5TmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJDb3Vy
aWVyIl0pCiAgICAgICAgIGFzY2VudCArPSBmbG9vcmYoKChhc2NlbnQgKyBkZXNjZW50KSAqIDAu
MTVmKSArIDAuNWYpOwotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBlbHNlIGlmIChbZmFtaWx5
TmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJHZWV6YSBQcm8iXSkgewogICAgICAgICAvLyBHZWV6YSBQ
cm8gaGFzIGdseXBocyB0aGF0IGRyYXcgc2xpZ2h0bHkgYWJvdmUgdGhlIGFzY2VudCBvciBmYXIg
YmVsb3cgdGhlIGRlc2NlbnQuIEFkanVzdAogICAgICAgICAvLyB0aG9zZSB2ZXJ0aWNhbCBtZXRy
aWNzIHRvIGJldHRlciBtYXRjaCByZWFsaXR5LCBzbyB0aGF0IGRpYWNyaXRpY3MgYXQgdGhlIGJv
dHRvbSBvZiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1dlYkxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvV2ViTGF5ZXIuaAppbmRleCBiYjBmNDQ0Li4wZDI0MzYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUGxhdGZvcm1DQUxheWVyQ2xpZW50OwogfQog
Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogQGludGVyZmFjZSBDQUxheWVyKFdlYkxheWVySW50ZXJu
YWwpCiAtIChDR0FmZmluZVRyYW5zZm9ybSljb250ZW50c1RyYW5zZm9ybTsKIC0gKHZvaWQpc2V0
Q29udGVudHNUcmFuc2Zvcm06KENHQWZmaW5lVHJhbnNmb3JtKXQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KaW5kZXggOTdlOWYyOC4uZTAw
YTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dl
YkxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJM
YXllci5tbQpAQCAtODQsNyArODQsNyBAQCB2b2lkIGRyYXdMYXllckNvbnRlbnRzKENHQ29udGV4
dFJlZiBjb250ZXh0LCBDQUxheWVyICpsYXllciwgV2ViQ29yZTo6UGxhdGZvcm1DQQogICAgIEFm
ZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7CiAgICAg
VGhlbWVNYWM6OnNldEZvY3VzUmluZ0NsaXBSZWN0KHRyYW5zZm9ybS5tYXBSZWN0KGNsaXBCb3Vu
ZHMpKTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBfX2Jsb2NrIEdyYXBoaWNz
Q29udGV4dCogY3R4ID0gJmdyYXBoaWNzQ29udGV4dDsKIAogICAgIHdrQ0FMYXllckVudW1lcmF0
ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jayhsYXllciwgY29udGV4dCwgXihDR1JlY3QgcmVjdCl7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAppbmRleCA2NzUzNDQ0Li5kODEz
YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKQEAgLTI4NCw3ICsy
ODQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKEdDM0RjbGFtcGYgZGVw
dGgpCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpzeXN0ZW1BbGxvd3NNdWx0aXNhbXBsaW5nT25B
VElDYXJkcygpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oTUFDKQotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICByZXR1cm4gdHJ1ZTsK
ICNlbHNlCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGQyMDg1MzMuLmFjMjRiODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtODUsNyArODUsNyBAQCB2b2lkIEN1cnNv
cjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ3Vyc29yOjpIYW5kOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IFtOU0N1cnNv
ciBwb2ludGluZ0hhbmRDdXJzb3JdOwogI2Vsc2UKICAgICAgICAgLy8gVGhlIHBvaW50aW5nSGFu
ZEN1cnNvciBmcm9tIE5TQ3Vyc29yIGRvZXMgbm90IGhhdmUgYSBzaGFkb3cgb24KQEAgLTk5LDcg
Kzk5LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6V2FpdDoKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSB3a0N1cnNvcigiQnVzeUJ1dENsaWNrYWJsZSIpOwogI2Vsc2UKICAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJ3YWl0Q3Vyc29yIiwgNywgNyk7
CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkg
Y29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6SGVscDoKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiSGVscCIpOwogICAgICAgICBpZiAobV9w
bGF0Zm9ybUN1cnNvcikKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTE3LDcgKzExNyw3IEBAIHZv
aWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKICAgICBjYXNlIEN1cnNv
cjo6TW92ZToKICAgICBjYXNlIEN1cnNvcjo6TWlkZGxlUGFubmluZzoKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiTW92ZSIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJtb3ZlQ3Vyc29yIiwgNywgNyk7CkBAIC0x
MjYsNyArMTI2LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QK
IAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpFYXN0UGFu
bmluZzoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplRWFz
dCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29y
KCJlYXN0UmVzaXplQ3Vyc29yIiwgMTQsIDcpOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgQ3Vy
c29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9y
dGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoUGFubmluZzoKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGgiKTsKICNlbHNlCiAgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhSZXNpemVDdXJzb3Ii
LCA3LCAxKTsKQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IoKSBjb25zdAogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoRWFzdFJlc2l6ZToKICAgICBj
YXNlIEN1cnNvcjo6Tm9ydGhFYXN0UGFubmluZzoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0Iik7CiAjZWxzZQogICAgICAgICBtX3BsYXRm
b3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm5vcnRoRWFzdFJlc2l6ZUN1cnNvciIsIDE0
LCAxKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJz
b3IoKSBjb25zdAogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoV2VzdFJlc2l6ZToKICAgICBjYXNl
IEN1cnNvcjo6Tm9ydGhXZXN0UGFubmluZzoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSB3a0N1cnNvcigiUmVzaXplTm9ydGh3ZXN0Iik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm5vcnRoV2VzdFJlc2l6ZUN1cnNvciIsIDAsIDAp
OwpAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigp
IGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6U291dGhSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6
OlNvdXRoUGFubmluZzoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigi
UmVzaXplU291dGgiKTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVO
YW1lZEN1cnNvcigic291dGhSZXNpemVDdXJzb3IiLCA3LCAxNCk7CkBAIC0xNzEsNyArMTcxLDcg
QEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNhc2Ug
Q3Vyc29yOjpTb3V0aEVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFBhbm5p
bmc6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRo
ZWFzdCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vy
c29yKCJzb3V0aEVhc3RSZXNpemVDdXJzb3IiLCAxNCwgMTQpOwpAQCAtMTgwLDcgKzE4MCw3IEBA
IHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKICAgICBjYXNlIEN1
cnNvcjo6U291dGhXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFdlc3RQYW5uaW5n
OgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aHdl
c3QiKTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNv
cigic291dGhXZXN0UmVzaXplQ3Vyc29yIiwgMSwgMTQpOwpAQCAtMTg4LDcgKzE4OCw3IEBAIHZv
aWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDdXJzb3I6Oldlc3RSZXNpemU6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gd2tDdXJzb3IoIlJlc2l6ZVdlc3QiKTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigid2VzdFJlc2l6ZUN1cnNvciIsIDEsIDcpOwpAQCAt
MTk2LDcgKzE5Niw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5vcnRoU291dGhSZXNpemU6Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZU5vcnRoU291dGgi
KTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigi
bm9ydGhTb3V0aFJlc2l6ZUN1cnNvciIsIDcsIDcpOwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQg
Q3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6
RWFzdFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6Oldlc3RQYW5uaW5nOgotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0V2VzdCIpOwogI2Vsc2UK
ICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJlYXN0V2VzdFJl
c2l6ZUN1cnNvciIsIDcsIDcpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1
cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJz
b3I6Ok5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZToKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhlYXN0U291dGh3ZXN0Iik7CiAjZWxzZQogICAgICAg
ICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm5vcnRoRWFzdFNvdXRoV2Vz
dFJlc2l6ZUN1cnNvciIsIDcsIDcpOwpAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgQ3Vyc29yOjpl
bnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBD
dXJzb3I6Ok5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZToKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGh3ZXN0U291dGhlYXN0Iik7CiAjZWxzZQogICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm5vcnRoV2VzdFNvdXRo
RWFzdFJlc2l6ZUN1cnNvciIsIDcsIDcpOwpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgQ3Vyc29y
OjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz
ZSBDdXJzb3I6OlZlcnRpY2FsVGV4dDoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBb
TlNDdXJzb3IgSUJlYW1DdXJzb3JGb3JWZXJ0aWNhbExheW91dF07CiAjZWxzZQogICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoInZlcnRpY2FsVGV4dEN1cnNvciIs
IDcsIDcpOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1
cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNlbGw6Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkNlbGwiKTsKICAgICAgICAg
aWYgKG1fcGxhdGZvcm1DdXJzb3IpCiAgICAgICAgICAgICBicmVhazsKQEAgLTI1NCw3ICsyNTQs
NyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpDb250ZXh0TWVudToKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA2MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gW05TQ3Vyc29yIGNvbnRleHR1YWxNZW51
Q3Vyc29yXTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1
cnNvcigiY29udGV4dE1lbnVDdXJzb3IiLCAzLCAyKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lk
IEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ3Vyc29yOjpBbGlhczoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3
a0N1cnNvcigiTWFrZUFsaWFzIik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
Y3JlYXRlTmFtZWRDdXJzb3IoImFsaWFzQ3Vyc29yIiwgMTEsIDMpOwpAQCAtMjcwLDcgKzI3MCw3
IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OlByb2dyZXNzOgotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9y
bUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CiAjZWxzZQogICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoInByb2dyZXNzQ3Vyc29yIiwgMywg
Mik7CkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29y
KCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9Ecm9wOgotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBbTlNDdXJzb3Ig
b3BlcmF0aW9uTm90QWxsb3dlZEN1cnNvcl07CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm5vRHJvcEN1cnNvciIsIDMsIDEpOwpAQCAtMjg2LDcg
KzI4Niw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNvcHk6Ci0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NjAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IFtOU0N1cnNvciBkcmFnQ29weUN1cnNvcl07
CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoImNv
cHlDdXJzb3IiLCAzLCAyKTsKQEAgLTI5OCw3ICsyOTgsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJl
UGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpOb3RBbGxvd2VkOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSBbTlNDdXJzb3Igb3BlcmF0aW9uTm90QWxsb3dlZEN1cnNvcl07CiAjZWxzZQogICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm5vdEFsbG93ZWRDdXJz
b3IiLCAxMSwgMTEpOwpAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0
Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Olpv
b21JbjoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiWm9vbUluIik7
CiAgICAgICAgIGlmIChtX3BsYXRmb3JtQ3Vyc29yKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0z
MTUsNyArMzE1LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbU91dDoKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiWm9vbU91dCIpOwogICAgICAgICBpZiAobV9w
bGF0Zm9ybUN1cnNvcikKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAKaW5kZXggMTA3MzA4Ny4u
NDEyMjYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlT
bGVlcERpc2FibGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGlzcGxh
eVNsZWVwRGlzYWJsZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8SU9LaXQvcHdy
X21ndC9JT1BNTGliLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi0jaWZkZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2VuZGlmCiAKQEAgLTM5LDExICsz
OSwxMSBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHN5c3RlbUFjdGl2aXR5SW50ZXJ2YWwgPSAxOwog
CiBEaXNwbGF5U2xlZXBEaXNhYmxlcjo6RGlzcGxheVNsZWVwRGlzYWJsZXIoY29uc3QgY2hhciog
cmVhc29uKQogICAgIDogbV9kaXNhYmxlRGlzcGxheVNsZWVwQXNzZXJ0aW9uKDApCi0jaWZkZWYg
QlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PT0gMTA1MAogICAgICwgbV9zeXN0ZW1BY3Rpdml0eVRpbWVyKHRoaXMsICZEaXNwbGF5U2xlZXBE
aXNhYmxlcjo6c3lzdGVtQWN0aXZpdHlUaW1lckZpcmVkKQogI2VuZGlmCiB7Ci0jaWZuZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNjAKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlYXNvbkNGKEFkb3B0Q0YsIENGU3Ry
aW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmVhc29uLCBrQ0ZTdHJp
bmdFbmNvZGluZ1VURjgpKTsKICAgICBJT1BNQXNzZXJ0aW9uQ3JlYXRlV2l0aE5hbWUoa0lPUE1B
c3NlcnRpb25UeXBlTm9EaXNwbGF5U2xlZXAsIGtJT1BNQXNzZXJ0aW9uTGV2ZWxPbiwgcmVhc29u
Q0YuZ2V0KCksICZtX2Rpc2FibGVEaXNwbGF5U2xlZXBBc3NlcnRpb24pOwogI2Vsc2UKQEAgLTU4
LDcgKzU4LDcgQEAgRGlzcGxheVNsZWVwRGlzYWJsZXI6On5EaXNwbGF5U2xlZXBEaXNhYmxlcigp
CiAgICAgSU9QTUFzc2VydGlvblJlbGVhc2UobV9kaXNhYmxlRGlzcGxheVNsZWVwQXNzZXJ0aW9u
KTsKIH0KICAgICAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiB2b2lkIERpc3BsYXlTbGVlcERpc2FibGVyOjpz
eXN0ZW1BY3Rpdml0eVRpbWVyRmlyZWQoVGltZXI8RGlzcGxheVNsZWVwRGlzYWJsZXI+KikKIHsK
ICAgICBVcGRhdGVTeXN0ZW1BY3Rpdml0eShPdmVyYWxsQWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmgKaW5kZXggMmU0NjZkYzEu
LmJkZmJkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5
U2xlZXBEaXNhYmxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5
U2xlZXBEaXNhYmxlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotI2lmZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICNp
bmNsdWRlICJUaW1lci5oIgogI2VuZGlmCiAKQEAgLTQ0LDEyICs0NCwxMiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIERpc3BsYXlTbGVlcERpc2FibGVyKGNvbnN0IGNoYXIqIHJlYXNvbik7CiAK
LSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA9PSAxMDUwCiAgICAgdm9pZCBzeXN0ZW1BY3Rpdml0eVRpbWVyRmlyZWQoVGltZXI8
RGlzcGxheVNsZWVwRGlzYWJsZXI+Kik7CiAjZW5kaWYKICAgICAKICAgICB1aW50MzJfdCBtX2Rp
c2FibGVEaXNwbGF5U2xlZXBBc3NlcnRpb247Ci0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIFRpbWVyPERp
c3BsYXlTbGVlcERpc2FibGVyPiBtX3N5c3RlbUFjdGl2aXR5VGltZXI7CiAjZW5kaWYKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERlZmlu
aXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERlZmlu
aXRpb25zLmgKaW5kZXggYzExYjA1Zi4uZmU2MzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaApAQCAtMjksNyAr
MjksNyBAQAogQHByb3RvY29sIE5BTUUgPE5TT2JqZWN0PiBcCiBAZW5kCiAKLSNpZmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDUwCiAKIEVNUFRZX1BST1RPQ09MKE5TVGFibGVWaWV3RGF0YVNvdXJjZSkKIEVNUFRZX1BST1RP
Q09MKE5TVGFibGVWaWV3RGVsZWdhdGUpCkBAIC0zOCw3ICszOCw3IEBAIEVNUFRZX1BST1RPQ09M
KE5TQW5pbWF0aW9uRGVsZWdhdGUpCiAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIAogRU1QVFlfUFJPVE9DT0woTlNV
UkxDb25uZWN0aW9uRGVsZWdhdGUpCiBFTVBUWV9QUk9UT0NPTChOU1VSTERvd25sb2FkRGVsZWdh
dGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIuaAppbmRleCBl
YTFiODVkLi42NmVjY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
SFRNTENvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29u
dmVydGVyLmgKQEAgLTc5LDcgKzc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH0gX2Zs
YWdzOwogfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIC0gKGlkKWluaXQ7CiAtIChpZClpbml0
V2l0aERPTVJhbmdlOihET01SYW5nZSAqKWRvbVJhbmdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tCmluZGV4IDIyZGI4MWMuLmZhOWYwMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tCkBAIC01MCw3ICs1
MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBzdGF0aWMgTlNGaWxlV3JhcHBlciAq
ZmlsZVdyYXBwZXJGb3JVUkwoRG9jdW1lbnRMb2FkZXIgKiwgTlNVUkwgKik7CiBzdGF0aWMgTlNG
aWxlV3JhcHBlciAqZmlsZVdyYXBwZXJGb3JFbGVtZW50KEVsZW1lbnQqKTsKIAotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAKIC8vIEFkZGl0aW9uYWwgY29udHJvbCBVbmljb2RlIGNoYXJhY3RlcnMKIGNvbnN0
IHVuaWNoYXIgV2ViTmV4dExpbmVDaGFyYWN0ZXIgPSAweDAwODU7CkBAIC0xMDAsNyArMTAwLDcg
QEAgc3RhdGljIE5TRm9udCAqV2ViRGVmYXVsdEZvbnQoKQogCiBAaW1wbGVtZW50YXRpb24gV2Vi
SFRNTENvbnZlcnRlcgogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAogc3RhdGljIE5TRm9udCAqX2ZvbnRG
b3JOYW1lQW5kU2l6ZShOU1N0cmluZyAqZm9udE5hbWUsIENHRmxvYXQgc2l6ZSwgTlNNdXRhYmxl
RGljdGlvbmFyeSAqY2FjaGUpCiB7CkBAIC0xNjU3LDcgKzE2NTcsNyBAQCBzdGF0aWMgTlNJbnRl
Z2VyIF9jb2xDb21wYXJlKGlkIGJsb2NrMSwgaWQgYmxvY2syLCB2b2lkICopCiAgICAgcmV0dXJu
ICgwID09IF9lcnJvckNvZGUpID8gW1tfYXR0clN0ciByZXRhaW5dIGF1dG9yZWxlYXNlXSA6IG5p
bDsKIH0KIAotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjZW5kaWYg
Ly8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAKIC8vIFRoaXMgZnVu
Y3Rpb24gdXNlcyBUZXh0SXRlcmF0b3IsIHdoaWNoIG1ha2VzIG9mZnNldHMgaW4gaXRzIHJlc3Vs
dCBjb21wYXRpYmxlIHdpdGggSFRNTCBlZGl0aW5nLgogKyAoTlNBdHRyaWJ1dGVkU3RyaW5nICop
ZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2U6KFJhbmdlKilyYW5nZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZW1vcnlQcmVzc3VyZUhhbmRsZXJNYWMu
bW0KaW5kZXggOGQxZDEwZi4uYzA2Mjg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tCkBAIC0zMyw3ICszMyw3
IEBACiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQgPHd0Zi9GYXN0TWFsbG9j
Lmg+CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFQTEFURk9STShJT1MpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwICYmICFQTEFURk9STShJT1MpCiAjaW1wb3J0ICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxub3RpZnkuaD4KICNlbmRpZgpAQCAt
NDIsNyArNDIsNyBAQCB1c2luZyBzdGQ6Om1heDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogCiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBkaXNwYXRjaF9zb3VyY2VfdCBfY2FjaGVf
ZXZlbnRfc291cmNlID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9OU1Njcm9sbGVySW1wRGV0YWlscy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05T
U2Nyb2xsZXJJbXBEZXRhaWxzLmgKaW5kZXggMGM5NTZjNi4uMWUxYzZjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmgKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogLy8gUHVibGljIEFQSXMgbm90IGF2
YWlsYWJsZSBvbiB2ZXJzaW9ucyBvZiBNYWMgb24gd2hpY2ggd2UgYnVpbGQKLSNpZiAoZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiBlbnVtIHsK
ICAgICBOU1Njcm9sbGVyU3R5bGVMZWdhY3kgICAgICAgPSAwLAogICAgIE5TU2Nyb2xsZXJTdHls
ZU92ZXJsYXkgICAgICA9IDEKQEAgLTQ0LDcgKzQ0LDcgQEAgZW51bSB7CiB0eXBlZGVmIE5TSW50
ZWdlciBOU1Njcm9sbGVyS25vYlN0eWxlOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiBAaW50ZXJmYWNlIE5TU2Ny
b2xsZXIoTlNPYmplY3QpCiArIChOU1Njcm9sbGVyU3R5bGUpcHJlZmVycmVkU2Nyb2xsZXJTdHls
ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCBmMGViZjVjLi4yZWM1MjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1vbWVu
dHVtUGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICB1aW50MzJfdCBwaGFzZSA9
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAoW2V2ZW50IG1vbWVu
dHVtUGhhc2VdICYgTlNFdmVudFBoYXNlQmVnYW4pCiAgICAgICAgIHBoYXNlIHw9IFBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlQmVnYW47CiAgICAgaWYgKFtldmVudCBtb21lbnR1bVBoYXNlXSAmIE5T
RXZlbnRQaGFzZVN0YXRpb25hcnkpCkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIFBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlIG1vbWVudHVtUGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIAog
c3RhdGljIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA3MAogICAgIHVpbnQzMl90IHBoYXNlID0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VO
b25lOyAKICAgICBpZiAoW2V2ZW50IHBoYXNlXSAmIE5TRXZlbnRQaGFzZUJlZ2FuKQogICAgICAg
ICBwaGFzZSB8PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuOwpAQCAtMjAxLDcgKzIwMSw3
IEBAIHN0YXRpYyBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZUZvckV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogICAgICAgICBwaGFzZSB8PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkOwog
ICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNlQ2FuY2VsbGVkKQogICAgICAgICBw
aGFzZSB8PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNhbmNlbGxlZDsKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MAogICAgIGlmIChbZXZlbnQgbW9tZW50dW1QaGFzZV0gJiBOU0V2ZW50UGhhc2VNYXlCZWdp
bikKICAgICAgICAgcGhhc2UgfD0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VNYXlCZWdpbjsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KaW5kZXgg
ODU1Nzg0NC4uYzBmMTk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBN
ZW51TWFjLm1tCkBAIC03NSwxMCArNzUsMTAgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KCkKICAgICBpZiAoIWNsaWVudCgpLT5zaG91bGRQb3BPdmVyKCkpCiAgICAgICAgIFttX3BvcHVw
LmdldCgpIGFkZEl0ZW1XaXRoVGl0bGU6QCIiXTsKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgVGV4
dERpcmVjdGlvbiBtZW51VGV4dERpcmVjdGlvbiA9IGNsaWVudCgpLT5tZW51U3R5bGUoKS50ZXh0
RGlyZWN0aW9uKCk7CiAgICAgW21fcG9wdXAuZ2V0KCkgc2V0VXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbjptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1VzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0
VG9MZWZ0XTsKLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2VuZGlm
IC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiAgICAgQVNTRVJU
KGNsaWVudCgpKTsKICAgICBpbnQgc2l6ZSA9IGNsaWVudCgpLT5saXN0U2l6ZSgpOwpAQCAtOTgs
NyArOTgsNyBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAg
IFthdHRyaWJ1dGVzIHNldE9iamVjdDpmb250IGZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXTsK
ICAgICAgICAgICAgIH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0eWxlKEFkb3B0TlMsIFtbTlNQYXJh
Z3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7CiAgICAgICAg
ICAgICBbcGFyYWdyYXBoU3R5bGUuZ2V0KCkgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9u
ID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07CiAg
ICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRl
eHREaXJlY3Rpb24oKSA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5T
V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUG9w
dXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2Jq
ZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9u
QXR0cmlidXRlTmFtZV07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBbYXR0cmlidXRlcyBz
ZXRPYmplY3Q6cGFyYWdyYXBoU3R5bGUuZ2V0KCkgZm9yS2V5Ok5TUGFyYWdyYXBoU3R5bGVBdHRy
aWJ1dGVOYW1lXTsKLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2Vu
ZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiAgICAgICAg
ICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHN0eWxpbmcgdGhlIGZvcmVncm91bmQgYW5k
IGJhY2tncm91bmQgY29sb3JzLgogICAgICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8g
Y3VzdG9taXplIHRleHQgY29sb3Igd2hlbiBhbiBpdGVtIGlzIGhpZ2hsaWdodGVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDk2
ODhjMGEuLjYwMGRlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0KQEAgLTYzNSw3ICs2MzUsNyBAQCBTY3JvbGxBbmltYXRvck1hYzo6
flNjcm9sbEFuaW1hdG9yTWFjKCkKIAogc3RhdGljIGJvb2wgc2Nyb2xsQW5pbWF0aW9uRW5hYmxl
ZEZvclN5c3RlbSgpCiB7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8
IGRlZmluZWQoQlVJTERJTkdfT05fTElPTikgfHwgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDcwIHx8IFBMQVRGT1JNKENIUk9NSVVN
KQogICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29s
Rm9yS2V5OkAiQXBwbGVTY3JvbGxBbmltYXRpb25FbmFibGVkIl07CiAjZWxzZQogICAgIHJldHVy
biBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiTlNT
Y3JvbGxBbmltYXRpb25FbmFibGVkIl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW0KaW5kZXggN2E3NTM4NC4u
Y2Y3M2VjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEVs
YXN0aWNpdHlDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbQpAQCAtMzMsNyArMzMsNyBAQAogCiAjaWYgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogQGludGVyZmFjZSBOU1Byb2Nl
c3NJbmZvIChTY3JvbGxBbmltYXRvck1hY0V4dCkKIC0gKE5TVGltZUludGVydmFsKXN5c3RlbVVw
dGltZTsKIEBlbmQKQEAgLTcxLDggKzcxLDggQEAgc3RhdGljIGNvbnN0IGZsb2F0IHNjcm9sbFZl
bG9jaXR5WmVyb2luZ1RpbWVvdXQgPSAwLjEwZjsKIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJi
YW5kRGlyZWN0aW9uTG9ja1N0cmV0Y2hSYXRpbyA9IDE7CiBzdGF0aWMgY29uc3QgZmxvYXQgcnVi
YmVyYmFuZE1pbmltdW1SZXF1aXJlZERlbHRhQmVmb3JlU3RyZXRjaCA9IDEwOwogCi0jaWYgZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVTERJTkdfT05fU05PV19MRU9Q
QVJEKSB8fCBcCi0gICAgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBQTEFURk9STShDSFJP
TUlVTSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAgfHwgZGVm
aW5lZChCVUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgXAorICAgIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPT0gMTA3MCB8fCBQTEFURk9STShDSFJPTUlVTSkKIHN0YXRpYyBjb25z
dCBmbG9hdCBydWJiZXJiYW5kU3RpZmZuZXNzID0gMjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgcnVi
YmVyYmFuZEFtcGxpdHVkZSA9IDAuMzFmOwogc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRQ
ZXJpb2QgPSAxLjZmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1No
YXJlZFRpbWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVy
TWFjLm1tCmluZGV4IGQ3YzUwMWQuLjE4OTgzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0KQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxz
dGRpby5oPgogCiAvLyBPbiBTbm93IExlb3BhcmQgYW5kIG5ld2VyIHdlJ2xsIGFzayBJT0tpdCB0
byBkZWxpdmVyIG5vdGlmaWNhdGlvbnMgb24gYSBxdWV1ZS4KLSNpZmRlZiBCVUlMRElOR19PTl9M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjZGVm
aW5lIElPS0lUX1dJVEhPVVRfTElCRElTUEFUQ0ggMQogI2VuZGlmCiAKQEAgLTQ2LDcgKzQ2LDcg
QEAgc3RhdGljIENGUnVuTG9vcFRpbWVyUmVmIHNoYXJlZFRpbWVyOwogc3RhdGljIHZvaWQgKCpz
aGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pKCk7CiBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVu
TG9vcFRpbWVyUmVmLCB2b2lkKik7CiAKLSNpZiAhZGVmaW5lZChJT0tJVF9XSVRIT1VUX0xJQkRJ
U1BBVENIKSAmJiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5l
ZChJT0tJVF9XSVRIT1VUX0xJQkRJU1BBVENIKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID09IDEwNjAKIGV4dGVybiAiQyIgdm9pZCBJT05vdGlmaWNhdGlvblBvcnRTZXREaXNw
YXRjaFF1ZXVlKElPTm90aWZpY2F0aW9uUG9ydFJlZiBub3RpZnksIGRpc3BhdGNoX3F1ZXVlX3Qg
cXVldWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TdWRkZW5UZXJtaW5hdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRk
ZW5UZXJtaW5hdGlvbi5tbQppbmRleCBmNjI0MTE2Li5jY2ZmNzhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3VkZGVuVGVybWluYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N1ZGRlblRlcm1pbmF0aW9uLm1tCkBAIC0yNiw3ICsyNiw3
IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlN1ZGRlblRlcm1pbmF0aW9uLmgiCiAK
LSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbQppbmRl
eCBmNjJkMTRhLi5jYzZlYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tCkBAIC00Miw3ICs0Miw3IEBACiAgICAg
W3NlbGYgc2V0QWNjZXB0c01vdXNlTW92ZWRFdmVudHM6WUVTXTsKICAgICBbc2VsZiBzZXRSZWxl
YXNlZFdoZW5DbG9zZWQ6Tk9dOwogICAgIFtzZWxmIHNldEhhc1NoYWRvdzpOT107Ci0jaWZuZGVm
IEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKICAgICBbc2VsZiBzZXRNb3ZhYmxlOk5PXTsKICNlbHNlCiAgICAgW3NlbGYgc2V0
TW92YWJsZUJ5V2luZG93QmFja2dyb3VuZDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYkNvcmVOU0NlbGxFeHRyYXMuaAppbmRleCAyNmJlNDYyLi43ODk0ZDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJh
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNDZWxsRXh0cmFz
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogCi0jZGVm
aW5lIEJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9EUkFXU19GT0NVU19SSU5HIChkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSB8
fCBQTEFURk9STShDSFJPTUlVTSkpCisjZGVmaW5lIEJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFN
RV9EUkFXU19GT0NVU19SSU5HIChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEw
NzAgfHwgUExBVEZPUk0oQ0hST01JVU0pKQogCiAjaWYgIUJVVFRPTl9DRUxMX0RSQVdfV0lUSF9G
UkFNRV9EUkFXU19GT0NVU19SSU5HCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IDkwOGRkOTUuLmVhN2MyMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaApAQCAtNTgsNyArNTgsNyBAQCB0eXBlZGVmIFVJbnQzMiBGTUZvbnQ7CiB0eXBlZGVm
IEZNRm9udCBBVFNVRm9udElEOwogdHlwZWRlZiBVSW50MTYgQVRTR2x5cGhSZWY7CiAKLSNpZiBQ
TEFURk9STShNQUMpICYmIFVTRShDQSkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykg
JiYgVVNFKENBKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHR5
cGVkZWYgc3RydWN0IF9fSU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7CiAjZW5kaWYKIApAQCAtMTA5
LDcgKzEwOSw3IEBAIGV4dGVybiAiQyIgewogLy8gSW4gYWxwaGFiZXRpY2FsIG9yZGVyLgogCiBl
eHRlcm4gdm9pZCAoKndrQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbikoTlNCdXR0
b25DZWxsICopOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKIGV4dGVybiB2b2lkICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWlu
Z0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENHQ29udGV4dFJlZiwgdm9pZCAoXmJsb2NrKShD
R1JlY3QgcmVjdCkpOwogI2VuZGlmCiAKQEAgLTIxNSw3ICsyMTUsNyBAQCBleHRlcm4gYm9vbCAo
KndrR2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0ZXJzKShDVEZvbnRSZWYsIGNvbnN0IFVuaUNo
YXJbXSwgQ0dHbAogCiBleHRlcm4gQk9PTCAoKndrVXNlU2hhcmVkTWVkaWFVSSkoKTsKIAotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
IGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRleDsKICNlbHNl
CiBleHRlcm4gQ0ZJbmRleCAoKndrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUluZGV4KShD
RlN0cmluZ1JlZiBzdHJpbmcsIENGSW5kZXggaW5kZXgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIGV4
dGVybiBpbnQgKCp3a0dldE5TRXZlbnRNb21lbnR1bVBoYXNlKShOU0V2ZW50ICopOwogCiBleHRl
cm4gQ1RMaW5lUmVmICgqd2tDcmVhdGVDVExpbmVXaXRoVW5pQ2hhclByb3ZpZGVyKShjb25zdCBV
bmlDaGFyKiAoKnByb3ZpZGUpKENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgqIGNoYXJDb3Vu
dCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZvaWQgKCpkaXNwb3NlKShj
b25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCopLCB2b2lkKik7CiAKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKIGV4dGVybiBDVFR5
cGVzZXR0ZXJSZWYgKCp3a0NyZWF0ZUNUVHlwZXNldHRlcldpdGhVbmlDaGFyUHJvdmlkZXJBbmRP
cHRpb25zKShjb25zdCBVbmlDaGFyKiAoKnByb3ZpZGUpKENGSW5kZXggc3RyaW5nSW5kZXgsIENG
SW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZv
aWQgKCpkaXNwb3NlKShjb25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCopLCB2b2lkKiwgQ0ZEaWN0
aW9uYXJ5UmVmIG9wdGlvbnMpOwogCkBAIC0yNjQsNyArMjY0LDcgQEAgZXh0ZXJuIENGVHlwZVJl
ZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShjb25zdCB2b2lkICpieXRlcywgc2l6ZV90IGxlbik7
CiBleHRlcm4gQk9PTCAoKndrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKShDRlR5cGVSZWYgdGV4
dE1hcmtlciwgdm9pZCAqYnl0ZXMsIHNpemVfdCBsZW5ndGgpOwogZXh0ZXJuIEFYVUlFbGVtZW50
UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7CiAKLSNpZiBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogdHlwZWRlZiBz
dHJ1Y3QgX19DRlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwogI2Vs
c2UKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZjsKQEAgLTI5NiwyNyArMjk2LDI3IEBAIGV4dGVybiB2b2lkICgqd2tTZXRS
ZXF1ZXN0U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIENGTXV0YWJsZVVS
TFJlCiAjZW5kaWYKIGV4dGVybiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVy
bFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CiAgICAgCi0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
I2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KIAogZXh0ZXJuIGRpc3BhdGNoX3NvdXJjZV90
ICgqd2tDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSkodm9pZCk7CiAKICNlbmRp
ZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MAogZXh0ZXJuIE5TU3RyaW5nICooKndrR2V0TWFjT1NYVmVyc2lvblN0cmluZykodm9pZCk7
CiBleHRlcm4gYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKSh2b2lk
KTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogZXh0ZXJuIHZvaWQgKCp3a0NHUGF0aEFkZFJvdW5kZWRSZWN0KShD
R011dGFibGVQYXRoUmVmIHBhdGgsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiBtYXRyaXgsIENH
UmVjdCByZWN0LCBDR0Zsb2F0IGNvcm5lcldpZHRoLCBDR0Zsb2F0IGNvcm5lckhlaWdodCk7CiAj
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiB2b2lkICgqd2tDRlVS
TFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVSTFJlcXVlc3RSZWYpOwogI2VuZGlmCiAK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiBleHRlcm4gQk9PTCAoKndrRmls
dGVySXNNYW5hZ2VkU2Vzc2lvbikodm9pZCk7CiBleHRlcm4gV2ViRmlsdGVyRXZhbHVhdG9yICoo
KndrRmlsdGVyQ3JlYXRlSW5zdGFuY2UpKE5TVVJMUmVzcG9uc2UgKik7CiBleHRlcm4gdm9pZCAo
KndrRmlsdGVyUmVsZWFzZSkoV2ViRmlsdGVyRXZhbHVhdG9yICopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCBj
MDg3YTVkLi42YTZjYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKIHZvaWQgKCp3a0FkdmFuY2VEZWZhdWx0QnV0dG9u
UHVsc2VBbmltYXRpb24pKE5TQnV0dG9uQ2VsbCAqKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiB2b2lkICgqd2tDQUxheWVyRW51
bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENHQ29udGV4dFJlZiBj
b250ZXh0LCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0KSk7CiAjZW5kaWYKIEJPT0wgKCp3a0NH
Q29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKShDR0NvbnRleHRSZWYpOwpAQCAtMTI1LDcgKzEy
NSw3IEBAIHZvaWQgKCp3a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZiwgQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlCiB2b2lkICgqd2tHZXRHbHlwaHNGb3JDaGFy
YWN0ZXJzKShDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3QpOwog
Ym9vbCAoKndrR2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0ZXJzKShDVEZvbnRSZWYsIGNvbnN0
IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3QpOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCogd2tHZXRIeXBoZW5h
dGlvbkxvY2F0aW9uQmVmb3JlSW5kZXg7CiAjZWxzZQogQ0ZJbmRleCAoKndrR2V0SHlwaGVuYXRp
b25Mb2NhdGlvbkJlZm9yZUluZGV4KShDRlN0cmluZ1JlZiBzdHJpbmcsIENGSW5kZXggaW5kZXgp
OwpAQCAtMTMzLDcgKzEzMyw3IEBAIGludCAoKndrR2V0TlNFdmVudE1vbWVudHVtUGhhc2UpKE5T
RXZlbnQgKik7CiAjZW5kaWYKIAogQ1RMaW5lUmVmICgqd2tDcmVhdGVDVExpbmVXaXRoVW5pQ2hh
clByb3ZpZGVyKShjb25zdCBVbmlDaGFyKiAoKnByb3ZpZGUpKENGSW5kZXggc3RyaW5nSW5kZXgs
IENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiks
IHZvaWQgKCpkaXNwb3NlKShjb25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCopLCB2b2lkKik7Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogQ1RUeXBlc2V0dGVyUmVmICgqd2tDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3Zp
ZGVyQW5kT3B0aW9ucykoY29uc3QgVW5pQ2hhciogKCpwcm92aWRlKShDRkluZGV4IHN0cmluZ0lu
ZGV4LCBDRkluZGV4KiBjaGFyQ291bnQsIENGRGljdGlvbmFyeVJlZiogYXR0cmlidXRlcywgdm9p
ZCopLCB2b2lkICgqZGlzcG9zZSkoY29uc3QgVW5pQ2hhciogY2hhcnMsIHZvaWQqKSwgdm9pZCos
IENGRGljdGlvbmFyeVJlZiBvcHRpb25zKTsKIAogQ0dDb250ZXh0UmVmICgqd2tJT1N1cmZhY2VD
b250ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgdW5zaWduZWQgd2lkdGgsIHVuc2ln
bmVkIGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpOwpAQCAtMTc4LDI0ICsxNzgs
MjQgQEAgQ0ZTdHJpbmdSZWYgKCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUp
KENGVVJMUmVzcG9uc2VSZWYpOwogdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShD
RlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7CiB2b2lkICgqd2tTZXRNZXRh
ZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0cmlu
ZyAqcGF0aCk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiBkaXNwYXRjaF9zb3VyY2VfdCAoKndrQ3JlYXRlVk1QcmVzc3VyZURp
c3BhdGNoT25NYWluUXVldWUpKHZvaWQpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiBOU1N0cmluZyAqKCp3a0dldE1h
Y09TWFZlcnNpb25TdHJpbmcpKHZvaWQpOwogYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9u
T3JCZWZvcmVMaW9uKSh2b2lkKTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCAoKndrQ0dQYXRoQWRkUm91
bmRlZFJlY3QpKENHTXV0YWJsZVBhdGhSZWYgcGF0aCwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0q
IG1hdHJpeCwgQ0dSZWN0IHJlY3QsIENHRmxvYXQgY29ybmVyV2lkdGgsIENHRmxvYXQgY29ybmVy
SGVpZ2h0KTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCAoKndr
Q0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKICNlbmRp
ZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogQk9PTCAoKndrRmlsdGVy
SXNNYW5hZ2VkU2Vzc2lvbikodm9pZCk7CiBXZWJGaWx0ZXJFdmFsdWF0b3IgKigqd2tGaWx0ZXJD
cmVhdGVJbnN0YW5jZSkoTlNVUkxSZXNwb25zZSAqKTsKIHZvaWQgKCp3a0ZpbHRlclJlbGVhc2Up
KFdlYkZpbHRlckV2YWx1YXRvciAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJGb250Q2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
Rm9udENhY2hlLm1tCmluZGV4IGJlNjY2Y2YuLjkzYzA3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJGb250Q2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYkZvbnRDYWNoZS5tbQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBC
T09MIGJldHRlckNob2ljZShOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlZFRyYWl0cywgaW50IGRlc2ly
ZWRXZWlnaHQsCiAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNTc4MTM3Mj4uCiBz
dGF0aWMgaW5saW5lIHZvaWQgZml4VXBXZWlnaHQoTlNJbnRlZ2VyJiB3ZWlnaHQsIE5TU3RyaW5n
ICpmb250TmFtZSkKIHsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFVOVVNFRF9QQVJBTSh3ZWlnaHQp
OwogICAgIFVOVVNFRF9QQVJBTShmb250TmFtZSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5t
bQppbmRleCA0N2M1MzkxLi5jZTM1ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpAQCAtNTMs
NyArNTMsNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihRVEtpdCwgUVRNb3ZpZVJhdGVEaWRDaGFuZ2VO
b3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVmaW5lIFFUTW92aWVSYXRlRGlkQ2hhbmdlTm90
aWZpY2F0aW9uIGdldFFUTW92aWVSYXRlRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkKIAogQGludGVy
ZmFjZSBXZWJWaWRlb0Z1bGxzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwotI2lmbmRlZiBCVUlMRElO
R19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYw
CiA8TlNBbmltYXRpb25EZWxlZ2F0ZT4KICNlbmRpZgogewpAQCAtMzM5LDcgKzMzOSw3IEBAIHN0
YXRpYyBOU1dpbmRvdyAqY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZy
YW1lLCBpbnQgbGV2ZWwpCiAtICh2b2lkKXVwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbHNjcmVlbgog
ewogICAgIC8vIE5TQXBwbGljYXRpb25QcmVzZW50YXRpb25PcHRpb25zIGlzIGF2YWlsYWJsZSBv
biA+IDEwLjYgb25seToKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIE5TQXBwbGljYXRpb25QcmVzZW50
YXRpb25PcHRpb25zIG9wdGlvbnMgPSBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9uRGVmYXVsdDsK
ICAgICBOU1NjcmVlbiogZnVsbHNjcmVlblNjcmVlbiA9IFtbc2VsZiB3aW5kb3ddIHNjcmVlbl07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxz
Y3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggNjMxODI4YS4u
ZmUyYWFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTQ0
LDEwICs0NCwxMCBAQCBzdGF0aWMgaW5saW5lIENHRmxvYXQgd2Via2l0X0NHRmxvb3IoQ0dGbG9h
dCB2YWx1ZSkKICAgICByZXR1cm4gZmxvb3IodmFsdWUpOwogfQogCi0jZGVmaW5lIEhBVkVfTUVE
SUFfQ09OVFJPTCAoIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCisjZGVmaW5lIEhBVkVf
TUVESUFfQ09OVFJPTCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAog
QGludGVyZmFjZSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyIChQcml2YXRl
KQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiA8TlNXaW5kb3dEZWxlZ2F0ZT4KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oCmluZGV4IGFhZTRk
NTIuLjAwYzExYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q3JlZGVudGlhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVu
dGlhbC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
Ci0jZGVmaW5lIENFUlRJRklDQVRFX0NSRURFTlRJQUxTX1NVUFBPUlRFRCAoKFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TKSkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCisj
ZGVmaW5lIENFUlRJRklDQVRFX0NSRURFTlRJQUxTX1NVUFBPUlRFRCAoKFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oSU9TKSkgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDYwKQogCiAjaWYgQ0VSVElGSUNBVEVfQ1JFREVOVElBTFNfU1VQUE9SVEVECiAjaW5jbHVkZSA8
U2VjdXJpdHkvU2VjQmFzZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IGRkY2EwZDIuLmZmNWYzOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTY3LDcgKzY3
LDcgQEAgdHlwZWRlZiBpbnQgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeTsKIHR5cGVk
ZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqIENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWY7CiAjZW5kaWYKIAotI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgKGRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
KQorI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8PSAxMDYwCiB0eXBlZGVmIHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24q
IENGVVJMU3RvcmFnZVNlc3Npb25SZWY7CiAjZWxpZiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMp
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL0ROU0NGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRE5T
Q0ZOZXQuY3BwCmluZGV4IDI4Yzk1ZGYuLmM0NjRjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRE5TQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvRE5TQ0ZOZXQuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29yay5oPgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDUwCiAjaW5jbHVkZSA8U3lzdGVtQ29uZmlndXJhdGlvbi9TeXN0ZW1Db25maWd1cmF0aW9uLmg+
CiAjZW5kaWYKIApAQCAtNTYsNyArNTYsNyBAQCBib29sIEROU1Jlc29sdmVRdWV1ZTo6cGxhdGZv
cm1Qcm94eUlzRW5hYmxlZEluU3lzdGVtUHJlZmVyZW5jZXMoKQogICAgIC8vIGFzIGl0IGRvZXNu
J3QgbmVjZXNzYXJpbHkgbG9vayB1cCB0aGUgYWN0dWFsIGV4dGVybmFsIElQLiBBbHNvLCBpZiBE
TlMgcmV0dXJucyBhIGZha2UgaW50ZXJuYWwgYWRkcmVzcywKICAgICAvLyBsb2NhbCBjYWNoZXMg
bWF5IGtlZXAgaXQgZXZlbiBhZnRlciByZS1jb25uZWN0aW5nIHRvIGFub3RoZXIgbmV0d29yay4K
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
cHJveHlTZXR0aW5ncyhBZG9wdENGLCBDRk5ldHdvcmtDb3B5U3lzdGVtUHJveHlTZXR0aW5ncygp
KTsKICNlbHNlCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gcHJveHlTZXR0aW5ncyhB
ZG9wdENGLCBTQ0R5bmFtaWNTdG9yZUNvcHlQcm94aWVzKDApKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwCmluZGV4
IDZiMGM4YjAuLmQ4MmRhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcApAQCAtMzcsNyArMzcsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiBzdGF0aWMgdm9pZCBwcm9j
ZXNzUHJveHlTZXJ2ZXJzKFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5U2VydmVycywgQ0ZBcnJh
eVJlZiBwcm94aWVzLCBDRlVSTFJlZiB1cmwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAppbmRleCA3MjUyMmQ5Li4zYmMx
Nzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0LmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NG
VVJMUmVxdWVzdCogQ0ZVUkxSZXF1ZXN0UmVmOwogCiBPQkpDX0NMQVNTIE5TVVJMUmVxdWVzdDsK
IAotI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgKGRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpKQorI2lmIFVTRShD
RlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDYwCiB0eXBlZGVmIHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY7CiAjZWxpZiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IDdjZTliNjAuLjUyMGQ2ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Q0ZOZXQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNl
dEhUVFBQaXBlbGluaW5nRW5hYmxlZChib29sIGZsYWcpCiAgICAgc19odHRwUGlwZWxpbmluZ0Vu
YWJsZWQgPSBmbGFnOwogfQogCi0jaWYgVVNFKENGTkVUV09SSykgfHwgUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjaWYgVVNFKENGTkVUV09SSykgfHwgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyBpbmxpbmUgYm9vbCBy
ZWFkQm9vbGVhblByZWZlcmVuY2UoQ0ZTdHJpbmdSZWYga2V5KQogewogICAgIEJvb2xlYW4ga2V5
RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQ7CkBAIC0yODEsNyArMjgxLDcgQEAgdW5zaWduZWQgaW5p
dGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgLy8gQWx3YXlz
IHNldCB0aGUgY29ubmVjdGlvbiBjb3VudCBwZXIgaG9zdCwgZXZlbiB3aGVuIHBpcGVsaW5pbmcu
CiAgICAgdW5zaWduZWQgbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0ID0gd2tJbml0
aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rp
b25Db3VudCk7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBVU0UoQ0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1
bmxpbWl0ZWRDb25uZWN0aW9uQ291bnQgPSAxMDAwMDsKIAogICAgIGlmICghUmVzb3VyY2VSZXF1
ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSAmJiByZWFkQm9vbGVhblByZWZlcmVuY2UoQ0ZT
VFIoIldlYktpdEVuYWJsZUhUVFBQaXBlbGluaW5nIikpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0
LmNwcAppbmRleCA5MDMzMzQwLi40ZmFiNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNw
cApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjaW5jbHVkZSA8U3lz
dGVtQ29uZmlndXJhdGlvbi9TeXN0ZW1Db25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIApAQCAtMTc2
LDcgKzE3Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZW1vdmVQQUNSdW5Mb29wU291
cmNlKCkKIAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNob29zZVByb3h5KCkKIHsKLSNpZm5k
ZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA2MAogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHByb3h5RGljdGlvbmFy
eShBZG9wdENGLCBDRk5ldHdvcmtDb3B5U3lzdGVtUHJveHlTZXR0aW5ncygpKTsKICNlbHNlCiAg
ICAgLy8gV2UgZG9uJ3QgbmVlZCBwcm94eSBpbmZvcm1hdGlvbiBvZnRlbiwgc28gdGhlcmUgaXMg
bm8gbmVlZCB0byBzZXQgdXAgYSBwZXJtYW5lbnQgZHluYW1pYyBzdG9yZSBzZXNzaW9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVudGljYXRp
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNh
dGlvbk1hYy5tbQppbmRleCA4MmM2NjBhLi5hN2YxYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbQpAQCAt
MTY1LDcgKzE2NSw3IEBAIE5TVVJMQ3JlZGVudGlhbCAqbWFjKGNvbnN0IENyZWRlbnRpYWwmIGNv
cmVDcmVkZW50aWFsKQogCiAjZWxzZQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogLy8gVGhlcmUgaXMgbm8g
Y29uc3RhbnQgaW4gaGVhZGVycywgYnV0IE5UTE0gaXMgc3VwcG9ydGVkLgogTlNTdHJpbmcgKiBj
b25zdCBOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTSA9IEAiTlNVUkxBdXRoZW50aWNhdGlv
bk1ldGhvZE5UTE0iOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbQppbmRleCAyNWI0ZDQ0Li5mZGFlNDNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVT
dG9yYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nv
b2tpZVN0b3JhZ2VNYWMubW0KQEAgLTc5LDcgKzc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB2b2lkIHNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgVVNFKENGVVJM
U1RPUkFHRVNFU1NJT05TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA2MCAmJiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCiAgICAgLy8gRG9uJ3QgY2FsbCB3a1Nl
dENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgd2hlbiBjb29raWUgc3RvcmFn
ZSBpcyBzZXQgdXAgdmlhIHNlc3Npb25zLgogICAgIC8vIFRoYXQgd291bGQgbWFrZSBOU1VSTENv
bm5lY3QgdXNlIGdsb2JhbCBwcml2YXRlIGJyb3dzaW5nIGNvb2tpZSBzdG9yYWdlIHJlZ2FyZGxl
c3Mgb2YgcmVxdWVzdCBzZXNzaW9uLgogICAgIC8vIFRoZSBnbG9iYWwgcHJpdmF0ZSBjb29raWUg
c3RvcmFnZSBoYXMgZGlmZmVyZW50IHNlbWFudGljcyAtIGl0IG1ha2VzIG5ldyBjb29raWVzIG5v
bi1wZXJzaXN0ZW50LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA0YWMzM2NjLi5mYWU0MWQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbQpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFs
CiAgICAgICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0OwogICAgIH0KIAotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDYwCiAgICAgQVNTRVJUKFtOU1VSTENvbm5lY3Rpb24gaW5zdGFuY2VzUmVzcG9u
ZFRvU2VsZWN0b3I6QHNlbGVjdG9yKF9pbml0V2l0aFJlcXVlc3Q6ZGVsZWdhdGU6dXNlc0NhY2hl
Om1heENvbnRlbnRMZW5ndGg6c3RhcnRJbW1lZGlhdGVseTpjb25uZWN0aW9uUHJvcGVydGllczop
XSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNTZXR0aW5nQ29ubmVjdGlvblByb3BlcnRpZXMg
PSB0cnVlOwogI2Vsc2UKQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bAogICAgIC8vIHdlIG1ha2Ugc3VyZSB0aGF0IGlzIGFjdHVhbGx5IHByZXNlbnQKICAgICBBU1NF
UlQoY2hhbGxlbmdlLm5zVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSk7CiAKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAv
LyBQcm94eSBhdXRoZW50aWNhdGlvbiBpcyBoYW5kbGVkIGJ5IENGTmV0d29yayBpbnRlcm5hbGx5
LiBXZSBjYW4gZ2V0IGhlcmUgaWYgdGhlIHVzZXIgY2FuY2VscwogICAgIC8vIENGTmV0d29yayBh
dXRoZW50aWNhdGlvbiBkaWFsb2csIGFuZCB3ZSBzaG91bGRuJ3QgYXNrIHRoZSBjbGllbnQgdG8g
ZGlzcGxheSBhbm90aGVyIG9uZSBpbiB0aGF0IGNhc2UuCiAgICAgaWYgKGNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKS5pc1Byb3h5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQppbmRleCAyNjJmZGI0
Li5hM2UxZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZVJlcXVlc3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUmVz
b3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpCiAgICAgICAgIG1faHR0cE1l
dGhvZCA9IG1ldGhvZDsKICAgICBtX2FsbG93Q29va2llcyA9IFttX25zUmVxdWVzdC5nZXQoKSBI
VFRQU2hvdWxkSGFuZGxlQ29va2llc107CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKFJlc291cmNlUmVxdWVzdDo6
aHR0cFBpcGVsaW5pbmdFbmFibGVkKCkpCiAgICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNl
TG9hZFByaW9yaXR5KHdrR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eShbbV9uc1JlcXVlc3QuZ2V0
KCkgX0NGVVJMUmVxdWVzdF0pKTsKICNlbmRpZgpAQCAtMTI5LDEzICsxMjksMTMgQEAgdm9pZCBS
ZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAgICAgICAgbnNSZXF1
ZXN0ID0gW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDp1cmwoKV07CiAK
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSkK
ICAgICAgICAgd2tTZXRIVFRQUGlwZWxpbmluZ1ByaW9yaXR5KFtuc1JlcXVlc3QgX0NGVVJMUmVx
dWVzdF0sIHRvSFRUUFBpcGVsaW5pbmdQcmlvcml0eShtX3ByaW9yaXR5KSk7CiAjZW5kaWYKIAog
ICAgIFtuc1JlcXVlc3Qgc2V0Q2FjaGVQb2xpY3k6KE5TVVJMUmVxdWVzdENhY2hlUG9saWN5KWNh
Y2hlUG9saWN5KCldOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICB3a0NGVVJMUmVx
dWVzdEFsbG93QWxsUG9zdENhY2hpbmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVVSTFJlc3BvbnNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVVSTFJlc3BvbnNlLm1tCmluZGV4IGJlMmUyNzY3Li45NWY3NTg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJl
c3BvbnNlLm1tCkBAIC00OTcsNyArNDk3LDcgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNz
YXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICAgICAgfQogICAgIH0KIAotI2lm
ZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID09IDEwNTAKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNTUzOTgy
ND4KICAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHJlc3VsdC5nZXQoKSwgQ0ZTVFIoInRleHQveG1s
IiksIDApID09IGtDRkNvbXBhcmVFcXVhbFRvKQogICAgICAgICByZXN1bHQgPSBDRlNUUigiYXBw
bGljYXRpb24veG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tp
bmcuaAppbmRleCAwNzQyY2IzLi5jN2FlODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTM5LDE4ICszOSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HIDEKIAotI2lmIFBMQVRGT1JN
KE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogI2RlZmluZSBXVEZf
VVNFX1VOSUZJRURfVEVYVF9DSEVDS0lORyAxCiAjZGVmaW5lIFdURl9VU0VfQVVUT01BVElDX1RF
WFRfUkVQTEFDRU1FTlQgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogLy8gU29tZSBwbGF0Zm9ybXMgcHJvdmlkZSBVSSBmb3Igc3VnZ2VzdGluZyBhdXRv
Y29ycmVjdGlvbi4KICNkZWZpbmUgV1RGX1VTRV9BVVRPQ09SUkVDVElPTl9QQU5FTCAxCiAvLyBT
b21lIHBsYXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3JyZWN0aW9uIG1hcmtlcnMgdG8g
cHJvdmlkZSB2aXN1YWwgY3VlLgogLy8gT24gc3VjaCBwbGF0Zm9ybSwgaWYgd29yZCB3aXRoIG1h
cmtlciBpcyBlZGl0ZWQsIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBtYXJrZXIuCiAjZGVmaW5lIFdU
Rl9VU0VfTUFSS0VSX1JFTU9WQUxfVVBPTl9FRElUSU5HIDEKLSNlbmRpZiAvLyAjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKIGVudW0gVGV4dENoZWNraW5n
VHlwZSB7CiAgICAgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nICAgID0gMSA8PCAxLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKaW5kZXgg
ZjE3MGI4YS4uYjVlZDkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiSHlwaGVuYXRpb24uaCIKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2luY2x1ZGUgIkF0b21pY1N0
cmluZ0tleWVkTVJVQ2FjaGUuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVLmgiCkBAIC03Niw0ICs3Niw0IEBAIHNpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0h5cGhlbmF0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVuYXRpb25NYWMubW0KaW5kZXggNGM4Njc2OC4uMGQx
MTlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVu
YXRpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVu
YXRpb25NYWMubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiSHlwaGVuYXRpb24uaCIKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwg
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA8PSAxMDYwCiAKICNpbXBvcnQgIkF0b21pY1N0cmluZ0tleWVkTVJVQ2Fj
aGUuaCIKICNpbXBvcnQgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKQEAgLTY3LDQg
KzY3LDQgQEAgc2l6ZV90IGxhc3RIeXBoZW5Mb2NhdGlvbihjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgc2l6ZV90IGxlbmd0aCwgc2l6ZV90IGJlZm9yZUkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDw9IDEwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggMWQ1Y2JkOC4uMDY5OTkxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwMTMsNyArMTAxMyw3
IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250YWluc1BhaW50ZWRDb250ZW50KCkgY29u
c3QKICAgICBpZiAocmVuZGVyZXIoKS0+aXNWaWRlbygpICYmIHRvUmVuZGVyVmlkZW8ocmVuZGVy
ZXIoKSktPnNob3VsZERpc3BsYXlWaWRlbygpKQogICAgICAgICByZXR1cm4gaGFzQm94RGVjb3Jh
dGlvbnNPckJhY2tncm91bmQocmVuZGVyZXIoKSk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMp
ICYmIFVTRShDQSkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNlbGlmIEVOQUJMRShX
RUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAoaXNBY2NlbGVy
YXRlZENhbnZhcyhyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuIGhhc0JveERlY29yYXRpb25z
T3JCYWNrZ3JvdW5kKHJlbmRlcmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAyNDNjZmYzLi5mMjFiN2YyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtMTc1Myw3ICsxNzUzLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVp
cmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXIKICAgICBpZiAo
QW5pbWF0aW9uQ29udHJvbGxlciogYW5pbUNvbnRyb2xsZXIgPSByZW5kZXJlci0+YW5pbWF0aW9u
KCkpIHsKICAgICAgICAgcmV0dXJuIChhbmltQ29udHJvbGxlci0+aXNSdW5uaW5nQW5pbWF0aW9u
T25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVydHlPcGFjaXR5KSAmJiBpbkNvbXBvc2l0aW5n
TW9kZSgpKQogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgICAgICAvLyA8cmRhcjov
L3Byb2JsZW0vMTA5MDcyNTE+IC0gV2ViS2l0MiBkb2Vzbid0IHN1cHBvcnQgQ0EgYW5pbWF0aW9u
cyBvZiBDSSBmaWx0ZXJzIG9uIExpb24gYW5kIGJlbG93CiAgICAgICAgICAgICB8fCBhbmltQ29u
dHJvbGxlci0+aXNSdW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVy
dHlXZWJraXRGaWx0ZXIpCiAjZW5kaWYgLy8gIVNOT1dfTEVPUEFSRCAmJiAhTElPTgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGUwOTQzN2QuLjZlZDRh
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTcz
NSw3ICs3MzUsNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRGaWVsZChSZW5kZXJP
YmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLAogewogICAgIExvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQpOwogCi0jaWYg
ZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKICAgICBi
b29sIHVzZU5TVGV4dEZpZWxkQ2VsbCA9IG8tPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKQogICAg
ICAgICAmJiBvLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kQ29sb3IpID09IENvbG9yOjp3aGl0ZQogICAgICAgICAmJiAhby0+c3R5bGUoKS0+aGFz
QmFja2dyb3VuZEltYWdlKCk7CkBAIC0yMTExLDcgKzIxMTEsNyBAQCBJbnRQb2ludCBSZW5kZXJU
aGVtZU1hYzo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiBtdXRl
QnV0dG9uQgogCiBib29sIFJlbmRlclRoZW1lTWFjOjpzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVu
Rm9jdXNlZCgpIGNvbnN0CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yMTgzLDcgKzIxODMsNyBAQCBOU1RleHRGaWVsZENlbGwqIFJlbmRlclRo
ZW1lTWFjOjp0ZXh0RmllbGQoKSBjb25zdAogICAgICAgICBbbV90ZXh0RmllbGQuZ2V0KCkgc2V0
QmV6ZWxlZDpZRVNdOwogICAgICAgICBbbV90ZXh0RmllbGQuZ2V0KCkgc2V0RWRpdGFibGU6WUVT
XTsKICAgICAgICAgW21fdGV4dEZpZWxkLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1Jp
bmdUeXBlRXh0ZXJpb3JdOwotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTElPTikgfHwgZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA8PSAxMDcwCiAgICAgICAgIFttX3RleHRGaWVsZC5nZXQoKSBzZXREcmF3c0JhY2tn
cm91bmQ6WUVTXTsKICAgICAgICAgW21fdGV4dEZpZWxkLmdldCgpIHNldEJhY2tncm91bmRDb2xv
cjpbTlNDb2xvciB3aGl0ZUNvbG9yXV07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA2Mjk5MTM5Li5lODVkZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRB
UkdFVElORyBtYWNyb3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKKwor
ICAgICAgICBUaGlzIHJlbW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xh
dGVzIHRoZSByZWxldmFudCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCisgICAg
ICAgIHVzaW5nIHRoZSBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9tYWMvV2ViSW5wdXRFdmVu
dEZhY3RvcnkubW06CisKIDIwMTItMDctMTEgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNaW5pbXVtIHNpemUgdXNlZCBmb3Igb2NjbHVz
aW9uIHRyYWNraW5nIHNob3VsZCBiZSBhIHNldHRpbmcgb24gQ0NMYXllclRyZWVIb3N0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3Rv
cnkubW0gYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3Rv
cnkubW0KaW5kZXggZjcxOWYyZC4uZjU0MWVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQpAQCAtMzQsNyArMzQs
NyBAQAogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlw
ZS5oPgogCi0jaWYgQlVJTERJTkdfT05fTEVPUEFSRCB8fCBCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIAogLy8gQWRk
aXRpb25hbCBMaW9uIEFQSXMuCiBlbnVtIHsKQEAgLTUzLDkgKzUzLDkgQEAgdHlwZWRlZiBOU1VJ
bnRlZ2VyIE5TRXZlbnRQaGFzZTsKIC0gKE5TRXZlbnRQaGFzZSltb21lbnR1bVBoYXNlOwogQGVu
ZAogCi0jZW5kaWYgIC8vIEJVSUxESU5HX09OX0xFT1BBUkQgfHwgQlVJTERJTkdfT05fU05PV19M
RU9QQVJECisjZW5kaWYgIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2
MAogCi0jaWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPT0gMTA1MAogCiAvLyBUaGVzZSBhcmUgbm90IGRlZmluZWQgaW4gdGhlIDEwLjUg
U0RLIGJ1dCBhcmUgZGVmaW5lZCBpbiBsYXRlciBTREtzIGluc2lkZQogLy8gYSBNQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNSAjaWZkZWYuCkBAIC02
NCw3ICs2NCw3IEBAIGVudW0gewogICAgIE5TRXZlbnRUeXBlRW5kR2VzdHVyZSAgICAgICA9IDIw
CiB9OwogCi0jZW5kaWYgIC8vIEJVSUxESU5HX09OX0xFT1BBUkQKKyNlbmRpZiAgLy8gX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggMjIwNmQyZi4uZTdlYTMyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM2IEBACisyMDEyLTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+
CisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19P
TiAvIFRBUkdFVElORyBtYWNyb3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNy
b3MKKworICAgICAgICBUaGlzIHJlbW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0
cmFuc2xhdGVzIHRoZSByZWxldmFudCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tz
CisgICAgICAgIHVzaW5nIHRoZSBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW06CisgICAgICAgICogTWlzYy9XZWJL
aXRFcnJvcnMubToKKyAgICAgICAgKiBNaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tOgorICAgICAg
ICAqIE1pc2MvV2ViTlNGaWxlTWFuYWdlckV4dHJhcy5tbToKKyAgICAgICAgKiBQbHVnaW5zL0hv
c3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICogUGx1Z2lucy9X
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIFdlYlZpZXcv
V2ViQ2xpcFZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1Zp
ZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZpZXcubW06CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUERGRG9jdW1lbnRFeHRyYXMubW06CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJlc291cmNlSW50ZXJu
YWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oOgorCiAyMDEyLTA3LTExICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgYW5kIC1Xc2lnbi1jb21wYXJl
IHdhcm5pbmcgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RlZmF1bHREZWxl
Z2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCmluZGV4
IGQzZWZmOTIuLjc0NjY2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RlZmF1bHRE
ZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5t
bQpAQCAtODksNyArODksNyBAQAogICAgICAgICAgICAgYWN0aW9uID0gQHNlbGVjdG9yKF9zZWFy
Y2hXaXRoU3BvdGxpZ2h0RnJvbU1lbnU6KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFdlYk1lbnVJdGVtVGFnU2VhcmNoV2ViOiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICAgICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiBzZWFyY2hQcm92aWRlck5hbWUoQWRvcHRDRiwgV0tDb3B5RGVmYXVsdFNl
YXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7CiAgICAgICAgICAgICB0aXRsZSA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklOR19JTlRFUk5BTCgiU2VhcmNoIHdpdGggJUAiLCAi
U2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlk
ZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCldOwogI2Vsc2UKQEAg
LTEzNiw3ICsxMzYsNyBAQAogICAgIH0KIH0KIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hU
X0NPTlRFWFRfTUVOVV9JVEVNIDEKICNlbHNlCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hUX0NP
TlRFWFRfTUVOVV9JVEVNIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
S2l0RXJyb3JzLm0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdEVycm9ycy5tCmluZGV4
IGIxYzZjOTcuLmZlM2RlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
S2l0RXJyb3JzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnMubQpA
QCAtMTE2LDcgKzExNiw3IEBAIC0gKGlkKV9pbml0V2l0aFBsdWdpbkVycm9yQ29kZTooaW50KWNv
ZGUKICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpsb2NhbGl6ZWREZXNjcmlwdGlvbiBmb3JL
ZXk6TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleV07CiAgICAgaWYgKGNvbnRlbnRVUkwpIHsKICAg
ICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpjb250ZW50VVJMIGZvcktleTpAIk5TRXJyb3JGYWls
aW5nVVJMS2V5Il07Ci0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0
Oltjb250ZW50VVJMIF93ZWJfdXNlclZpc2libGVTdHJpbmddIGZvcktleTpOU0Vycm9yRmFpbGlu
Z1VSTFN0cmluZ0tleV07CiAjZWxzZQogICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0Oltjb250
ZW50VVJMIF93ZWJfdXNlclZpc2libGVTdHJpbmddIGZvcktleTpOU1VSTEVycm9yRmFpbGluZ1VS
TFN0cmluZ0Vycm9yS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
TlNDb250cm9sRXh0cmFzLm0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TQ29udHJvbEV4
dHJhcy5tCmluZGV4IDZlZGY4NGYuLjgxYjVjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNDb250cm9sRXh0cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJOU0NvbnRyb2xFeHRyYXMubQpAQCAtNDYsNyArNDYsNyBAQCAtICh2b2lkKXNpemVUb0Zp
dEFuZEFkanVzdFdpbmRvd0hlaWdodAogICAgIE5TUmVjdCB3aW5kb3dGcmFtZSA9IFt3aW5kb3cg
ZnJhbWVdOwogCiAgICAgQ0dGbG9hdCBiYWNraW5nU2NhbGVGYWN0b3I7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGJhY2tp
bmdTY2FsZUZhY3RvciA9IFt3aW5kb3cgYmFja2luZ1NjYWxlRmFjdG9yXTsKICNlbHNlCiAgICAg
YmFja2luZ1NjYWxlRmFjdG9yID0gW3dpbmRvdyB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0KaW5kZXgg
ZmExNTAyMy4uZTdhODA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJO
U0ZpbGVNYW5hZ2VyRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNG
aWxlTWFuYWdlckV4dHJhcy5tbQpAQCAtMzYsNyArMzYsNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmZGVmIEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogZXh0
ZXJuICJDIiBEQURpc2tSZWYgREFEaXNrQ3JlYXRlRnJvbVZvbHVtZVBhdGgoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBEQVNlc3Npb25SZWYgc2Vzc2lvbiwgQ0ZVUkxSZWYgcGF0aCk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9z
dGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDE2NWEwMDYuLmUzOGFlOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTEyNSw3ICsxMjUsNyBAQCBleHRl
cm4gIkMiIHsKIAogICAgICAgICBpZiAoYWNjbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCAmJiBf
cHJveHktPnJlbmRlcmVyVHlwZSgpID09IFVzZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpIHsKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIFdlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldyBhbmQgV2ViTmV0c2NhcGVQbHVnaW5WaWV3LgotI2lmbmRl
ZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDYwCiAgICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGxheWVyIGlzbid0IGdvaW5nIHRv
IGJlIGluc2VydGVkIGludG8gYSB2aWV3LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGxheWVy
IGFuZCBmbGlwIGl0cyBnZW9tZXRyeQogICAgICAgICAgICAgLy8gaW4gb3JkZXIgdG8gZ2V0IHRo
ZSBjb29yZGluYXRlIHN5c3RlbSByaWdodC4KICAgICAgICAgICAgIFJldGFpblB0cjxDQUxheWVy
PiByZWFsUGx1Z2luTGF5ZXIoQWRvcHROUywgX3BsdWdpbkxheWVyLmxlYWtSZWYoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW0KaW5kZXggODVkN2FiYS4uMGYxMzAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTAyLDcgKzEw
Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIF9iYXNlVVJMLmFkb3B0TlMoW2Jh
c2VVUkwgY29weV0pOwogICAgIF9NSU1FVHlwZS5hZG9wdE5TKFtNSU1FIGNvcHldKTsKICAgICAK
LSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogICAgIC8vIEVuYWJsZSAia2lvc2sgbW9kZSIgd2hlbiBpbnN0YW50
aWF0aW5nIHRoZSBRVCBwbHVnLWluIGluc2lkZSBvZiBEYXNoYm9hcmQuIFNlZSA8cmRhcjovL3By
b2JsZW0vNjg3ODEwNT4KICAgICBpZiAoW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRl
bnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLmRhc2hib2FyZC5jbGllbnQiXSAm
JgogICAgICAgICBbX3BsdWdpblBhY2thZ2UuZ2V0KCkgYnVuZGxlSWRlbnRpZmllcl0gPT0gImNv
bS5hcHBsZS5RdWlja1RpbWUgUGx1Z2luLnBsdWdpbiIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNDI2NDA1Zi4uNGUx
YWFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0KQEAgLTEwOTksNyArMTA5OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRO
UFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAjZW5kaWYKICAgICAgICAgICAg
IGlmIChhY2NsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFRoaXMgY29kZSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gV2ViSG9zdGVkTmV0c2NhcGVQ
bHVnaW5WaWV3IGFuZCBXZWJOZXRzY2FwZVBsdWdpblZpZXcuCi0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAg
ICAgICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGxheWVyIGlzbid0IGdvaW5nIHRvIGJlIGluc2Vy
dGVkIGludG8gYSB2aWV3LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGxheWVyIGFuZCBmbGlw
IGl0cyBnZW9tZXRyeQogICAgICAgICAgICAgICAgIC8vIGluIG9yZGVyIHRvIGdldCB0aGUgY29v
cmRpbmF0ZSBzeXN0ZW0gcmlnaHQuCiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPENBTGF5ZXI+
IHJlYWxQbHVnaW5MYXllcihBZG9wdE5TLCBfcGx1Z2luTGF5ZXIubGVha1JlZigpKTsKQEAgLTIy
MzEsNyArMjIzMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0
JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIE5QTlVSTFZQcm94eTogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgICAgICBpZiAo
IXZhbHVlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkBAIC0yMzQxLDcg
KzIzNDEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIs
IE5QUmVjdCYgbnByKQogLy8gRm9yIG5vdywgd2UnbGwgZGlzdGluZ3Vpc2ggb2xkZXIgYnJva2Vu
IHZlcnNpb25zIG9mIFNpbHZlcmxpZ2h0IGJ5IGFza2luZyB0aGUgcGx1Zy1pbiBpZiBpdCByZXNv
bHZlZCBpdHMgZnVsbCBzY3JlZW4gYmFkbmVzcy4KIC0gKHZvaWQpX3dvcmthcm91bmRTaWx2ZXJs
aWdodEZ1bGxzY3JlZW5CdWc6KEJPT0wpaW5pdGlhbGl6ZWRQbHVnaW4KIHsKLSNpZm5kZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA2MAogICAgIEFTU0VSVChfaXNTaWx2ZXJsaWdodCk7CiAgICAgTlBCb29sIGlzRnVsbHNjcmVl
blBlcmZvcm1hbmNlSXNzdWVGaXhlZCA9IDA7CiAgICAgTlBQbHVnaW5GdW5jcyAqcGx1Z2luRnVu
Y3MgPSBbX3BsdWdpblBhY2thZ2UuZ2V0KCkgcGx1Z2luRnVuY3NdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDJlYTBk
NjYuLmVkNmZhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTgxOCw3ICs4MTgsNyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKIAogYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsK
LSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCiAgICAgcmV0dXJuIHRy
dWU7CkBAIC04MjcsNyArODI3LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVj
dEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogewotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpp
bmRleCBlZDgzZGE2Li42NDk3Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC03NCw3ICs3NCw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogQGlu
dGVyZmFjZSBOU1NwZWxsQ2hlY2tlciAoV2ViTlNTcGVsbENoZWNrZXJEZXRhaWxzKQogLSAoTlNT
dHJpbmcgKilsYW5ndWFnZUZvcldvcmRSYW5nZTooTlNSYW5nZSlyYW5nZSBpblN0cmluZzooTlNT
dHJpbmcgKilzdHJpbmcgb3J0aG9ncmFwaHk6KE5TT3J0aG9ncmFwaHkgKilvcnRob2dyYXBoeTsK
IEBlbmQKQEAgLTY5OCw3ICs2OTgsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENo
YW5nZUluVGV4dEFyZWEoRWxlbWVudCogZWxlbWVudCkKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihUZXh0Q2hlY2tpbmdUeXBlIHR5
cGUpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBwcmV2ZW50cyBlcmFzaW5nIHNwZWxsaW5nIG1hcmtl
cnMgb24gT1MgWCBMaW9uIG9yIGxhdGVyIHRvIG1hdGNoIEFwcEtpdCBvbiB0aGVzZSBNYWMgT1Mg
WCB2ZXJzaW9ucy4KLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgcmV0dXJuIHR5cGUgIT0gVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwogI2Vsc2UKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqIHRleHQsIGlu
dCBsZW5ndGgsIFZlY3RvcgogICAgIH0KIH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBzdGF0aWMgVmVj
dG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gY29yZShOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMsIFRl
eHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpCiB7CiAgICAgVmVjdG9yPFRleHRDaGVj
a2luZ1Jlc3VsdD4gcmVzdWx0czsKQEAgLTg1Miw3ICs4NTIsNyBAQCBzdGF0aWMgVmVjdG9yPFRl
eHRDaGVja2luZ1Jlc3VsdD4gY29yZShOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMsIFRleHRDaGVj
a2luZ1R5cAogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29u
c3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5n
VHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgTlNTdHJpbmcgKnRleHRTdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0
V2l0aENoYXJhY3RlcnNOb0NvcHk6Y29uc3RfY2FzdDxVQ2hhcio+KHRleHQpIGxlbmd0aDpsZW5n
dGggZnJlZVdoZW5Eb25lOk5PXTsKICAgICBOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMgPSBbW05T
U3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gY2hlY2tTdHJpbmc6dGV4dFN0cmluZyBy
YW5nZTpOU01ha2VSYW5nZSgwLCBbdGV4dFN0cmluZyBsZW5ndGhdKSB0eXBlczooY2hlY2tpbmdU
eXBlc3xOU1RleHRDaGVja2luZ1R5cGVPcnRob2dyYXBoeSkgb3B0aW9uczpuaWwgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIG9ydGhvZ3JhcGh5Ok5VTEwg
d29yZENvdW50Ok5VTExdOwogICAgIFt0ZXh0U3RyaW5nIHJlbGVhc2VdOwpAQCAtODk1LDcgKzg5
NSw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKIAogdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwg
Y29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgewogICAgIGd1
ZXNzZXMuY2xlYXIoKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgTlNTdHJpbmcqIGxhbmd1YWdlID0gbmlsOwogICAgIE5T
T3J0aG9ncmFwaHkqIG9ydGhvZ3JhcGh5ID0gbmlsOwogICAgIE5TU3BlbGxDaGVja2VyICpjaGVj
a2VyID0gW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl07CkBAIC05MjUsNyArOTI1
LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsK
IH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwCiBAaW50ZXJmYWNlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNw
b25kZXIgOiBOU09iamVjdAogewogICAgIFdlYkVkaXRvckNsaWVudCogX2NsaWVudDsKQEAgLTk2
NSw3ICs5NjUsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlkQ2hlY2tTdWNjZWVkKGludCBz
ZXF1ZW5jZSwgTlNBcnJheSogcmVzdWx0cykKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dD4gcmVxdWVzdCkKIHsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIEFTU0VSVCghbV90ZXh0Q2hlY2tp
bmdSZXF1ZXN0KTsKICAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QgPSByZXF1ZXN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCmluZGV4IGNhNzhlMzEuLjYzNjQ0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC02
NjgsNyArNjY4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaXJz
dExheW91dCgpCiAgICAgV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3ICpzY3JvbGxWaWV3ID0gW21f
d2ViRnJhbWUtPl9wcml2YXRlLT53ZWJGcmFtZVZpZXcgX3Njcm9sbFZpZXddOwogICAgIGlmIChb
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKSBkcmF3c0JhY2tncm91bmRdKQogICAgICAgICBb
c2Nyb2xsVmlldyBzZXREcmF3c0JhY2tncm91bmQ6WUVTXTsKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgW3Njcm9sbFZpZXcg
c2V0VmVydGljYWxTY3JvbGxFbGFzdGljaXR5Ok5TU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpY107
CiAgICAgW3Njcm9sbFZpZXcgc2V0SG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk6TlNTY3JvbGxF
bGFzdGljaXR5QXV0b21hdGljXTsKICNlbmRpZgpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpCiAKICAgICBXZWJE
eW5hbWljU2Nyb2xsQmFyc1ZpZXcgKnNjcm9sbFZpZXcgPSBbbV93ZWJGcmFtZS0+X3ByaXZhdGUt
PndlYkZyYW1lVmlldyBfc2Nyb2xsVmlld107CiAgICAgW3Njcm9sbFZpZXcgc2V0RHJhd3NCYWNr
Z3JvdW5kOk5PXTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgW3Njcm9sbFZpZXcgc2V0VmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5Ok5TU2Nyb2xsRWxhc3RpY2l0eU5vbmVdOwogICAgIFtzY3JvbGxWaWV3IHNldEhvcml6b250
YWxTY3JvbGxFbGFzdGljaXR5Ok5TU2Nyb2xsRWxhc3RpY2l0eU5vbmVdOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZh
Y2UubW0KaW5kZXggZDFmMmYxNS4uMTAyY2VmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNDMsNyArNDMs
NyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIElOSVQoQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbik7Ci0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
ICAgIElOSVQoQ0FMYXllckVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jayk7CiAjZW5k
aWYKICAgICBJTklUKENHQ29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKTsKQEAgLTExOSwxNCAr
MTE5LDE0IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklU
KEdldEdseXBoc0ZvckNoYXJhY3RlcnMpOwogICAgIElOSVQoR2V0VmVydGljYWxHbHlwaHNGb3JD
aGFyYWN0ZXJzKTsKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA8PSAxMDYwCiAgICAgSU5JVChHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5k
ZXgpOwogICAgIElOSVQoR2V0TlNFdmVudE1vbWVudHVtUGhhc2UpOwogI2VuZGlmCiAKICAgICBJ
TklUKENyZWF0ZUNUTGluZVdpdGhVbmlDaGFyUHJvdmlkZXIpOwogCi0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoSU9T
dXJmYWNlQ29udGV4dENyZWF0ZSk7CiAgICAgSU5JVChJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1h
Z2UpOwogICAgIElOSVQoQ3JlYXRlQ1RUeXBlc2V0dGVyV2l0aFVuaUNoYXJQcm92aWRlckFuZE9w
dGlvbnMpOwpAQCAtMTc0LDI0ICsxNzQsMjQgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVy
ZmFjZSh2b2lkKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN0
b3AgdXNpbmcgdGhpcyBmaWxlIGluIENocm9taXVtLgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoQ3JlYXRlVk1Q
cmVzc3VyZURpc3BhdGNoT25NYWluUXVldWUpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgSU5JVChHZXRNYWNP
U1hWZXJzaW9uU3RyaW5nKTsKICAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3Jl
TGlvbik7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBJTklUKENHUGF0aEFkZFJvdW5kZWRSZWN0KTsKICNl
bmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoQ0ZVUkxSZXF1ZXN0
QWxsb3dBbGxQb3N0Q2FjaGluZyk7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JN
KElPUykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBM
QVRGT1JNKElPUykKICAgICBJTklUKEZpbHRlcklzTWFuYWdlZFNlc3Npb24pOwogICAgIElOSVQo
RmlsdGVyQ3JlYXRlSW5zdGFuY2UpOwogICAgIElOSVQoRmlsdGVyUmVsZWFzZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQppbmRleCA3NDcwOWIwLi5kMDZmZWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KQEAgLTUyLDcgKzUyLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAtICh2b2lkKV9pbW1lZGlhdGVTY3JvbGxUb1Bv
aW50OihOU1BvaW50KW5ld09yaWdpbjsKIEBlbmQKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBAaW50ZXJm
YWNlIE5TV2luZG93IChXZWJOU1dpbmRvd0RldGFpbHMpCiAtICh2b2lkKV9kaXNhYmxlRGVsYXll
ZFdpbmRvd0Rpc3BsYXk7CiAtICh2b2lkKV9lbmFibGVEZWxheWVkV2luZG93RGlzcGxheTsKQEAg
LTEwNSwxMyArMTA1LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIF9pc1Nj
cm9sbGluZyA9IFlFUzsKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgW1tzZWxmIHdpbmRvd10gX2Rp
c2FibGVEZWxheWVkV2luZG93RGlzcGxheV07CiAjZW5kaWYKIAogICAgIFtzdXBlciBfaW1tZWRp
YXRlU2Nyb2xsVG9Qb2ludDpuZXdPcmlnaW5dOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBbW3Nl
bGYgd2luZG93XSBfZW5hYmxlRGVsYXllZFdpbmRvd0Rpc3BsYXldOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcu
bW0KaW5kZXggODAxMTA5NC4uODM5YjU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0KQEAgLTQxMyw3ICs0MTMsNyBA
QCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY01heFVwZGF0ZVNjcm9sbGJhcnNQYXNzID0gMjsKICAg
ICAvLyBUaGlzIGNhbGwgdXBkYXRlcyB0aGUgaW5pdGlhbCBwb3NpdGlvbiBjb3JyZWN0bHkuCiAg
ICAgW3NlbGYgYWRqdXN0Rm9yU2Nyb2xsT3JpZ2luQ2hhbmdlXTsKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA9PSAxMDUwCiAgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbc2VsZiBkb2N1bWVudFZp
ZXddOwogICAgIGlmIChbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNs
YXNzXV0pIHsKICAgICAgICAgV2ViSFRNTFZpZXcgKmh0bWxWaWV3ID0gKFdlYkhUTUxWaWV3ICop
ZG9jdW1lbnRWaWV3OwpAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBj
TWF4VXBkYXRlU2Nyb2xsYmFyc1Bhc3MgPSAyOwogICAgIEJPT0wgaXNDb250aW51b3VzOwogICAg
IFdLR2V0V2hlZWxFdmVudERlbHRhcyhldmVudCwgJmRlbHRhWCwgJmRlbHRhWSwgJmlzQ29udGlu
dW91cyk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDcwCiAgICAgTlNFdmVudFBoYXNlIG1vbWVudHVtUGhhc2UgPSBbZXZlbnQgbW9t
ZW50dW1QaGFzZV07CiAgICAgQk9PTCBpc0xhdGNoaW5nRXZlbnQgPSBtb21lbnR1bVBoYXNlICYg
TlNFdmVudFBoYXNlQmVnYW4gfHwgbW9tZW50dW1QaGFzZSAmIE5TRXZlbnRQaGFzZVN0YXRpb25h
cnk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRl
eCA3YTA5ZTRlLi5jOThlMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Vmlldy5tbQpAQCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zy
b21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC8v
IEZJWE1FOiBSZW1vdmUgdGhlIE5TQXBwS2l0VmVyc2lvbk51bWJlcldpdGhEZWZlcnJlZFdpbmRv
d0Rpc3BsYXlTdXBwb3J0IGNoZWNrIG9uY2UKIC8vIG9uY2UgQXBwS2l0J3MgRGVmZXJyZWQgV2lu
ZG93IERpc3BsYXkgc3VwcG9ydCBpcyBhdmFpbGFibGUuCi0jaWYgZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSB8fCAhZGVmaW5lZChOU0FwcEtpdFZlcnNpb25OdW1iZXJXaXRoRGVmZXJyZWRX
aW5kb3dEaXNwbGF5U3VwcG9ydCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID09IDEwNTAgfHwgIWRlZmluZWQoTlNBcHBLaXRWZXJzaW9uTnVtYmVyV2l0aERlZmVycmVkV2lu
ZG93RGlzcGxheVN1cHBvcnQpCiAgICAgICAgIC8vIENvcmVHcmFwaGljcyBkZWZlcnJlZCB1cGRh
dGVzIGFyZSBkaXNhYmxlZCBpZiBXZWJLaXRFbmFibGVDb2FsZXNjZWRVcGRhdGVzUHJlZmVyZW5j
ZUtleSBpcyBOTwogICAgICAgICAvLyBvciBoYXMgbm8gdmFsdWUuIEZvciBjb21wYXRpYmlsaXR5
IHdpdGggTWFjIE9TIFggMTAuNSBhbmQgbG93ZXIsIGRlZmVycmVkIHVwZGF0ZXMgYXJlIG9mZiBi
eSBkZWZhdWx0LgogICAgICAgICBpZiAoIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIGJvb2xGb3JLZXk6V2ViS2l0RW5hYmxlRGVmZXJyZWRVcGRhdGVzUHJlZmVyZW5jZUtl
eV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5D
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29u
dHJvbGxlci5tbQppbmRleCBhY2Q2OThhLi5mZWE4MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTcwLDcgKzcw
LDcgQEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbWVudCogZWxlbWVu
dCkKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5T
VGltZUludGVydmFsKWR1cmF0aW9uOwogQGVuZAogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIEBpbnRlcmZhY2UgTlNXaW5kb3coY29u
dmVydFJlY3RUb1NjcmVlbkZvckxlb3BhcmRBbmRTbm93TGVvcGFyZCkKIC0gKE5TUmVjdCljb252
ZXJ0UmVjdFRvU2NyZWVuOihOU1JlY3QpYVJlY3Q7CiBAZW5kCkBAIC0yNzMsMTQgKzI3MywxNCBA
QCBzdGF0aWMgSW50UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtZW50KiBlbGVtZW50KQog
ICAgICAgICBXS1dpbmRvd1NldENsaXBSZWN0KFtzZWxmIHdpbmRvd10sIHdpbmRvd0JvdW5kcyk7
CiAgICAgICAgIAogICAgICAgICBOU1dpbmRvdyAqd2ViV2luZG93ID0gW193ZWJWaWV3UGxhY2Vo
b2xkZXIuZ2V0KCkgd2luZG93XTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIC8vIEluIExpb24sIE5TV2luZG93IHdp
bGwgYW5pbWF0ZSBpbnRvIGFuZCBvdXQgb2Ygb3JkZXJPdXQgb3BlcmF0aW9ucy4gU3VwcHJlc3Mg
dGhhdAogICAgICAgICAvLyBiZWhhdmlvciBoZXJlLCBtYWtpbmcgc3VyZSB0byByZXNldCB0aGUg
YW5pbWF0aW9uIGJlaGF2aW9yIGFmdGVyd2FyZC4KICAgICAgICAgTlNXaW5kb3dBbmltYXRpb25C
ZWhhdmlvciBhbmltYXRpb25CZWhhdmlvciA9IFt3ZWJXaW5kb3cgYW5pbWF0aW9uQmVoYXZpb3Jd
OwogICAgICAgICBbd2ViV2luZG93IHNldEFuaW1hdGlvbkJlaGF2aW9yOk5TV2luZG93QW5pbWF0
aW9uQmVoYXZpb3JOb25lXTsKICNlbmRpZgogICAgICAgICBbd2ViV2luZG93IG9yZGVyT3V0OnNl
bGZdOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICAgICAgW3dlYldpbmRvdyBzZXRBbmltYXRpb25CZWhhdmlvcjphbmltYXRp
b25CZWhhdmlvcl07CiAjZW5kaWYKICAgICAgICAgCkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGlj
IEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbWVudCogZWxlbWVudCkKICAgICBbc2Vs
ZiBfdXBkYXRlTWVudUFuZERvY2tGb3JGdWxsU2NyZWVuXTsKICAgICAKICAgICBOU1dpbmRvdyog
d2ViV2luZG93ID0gW193ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCkgd2luZG93XTsKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
Ly8gSW4gTGlvbiwgTlNXaW5kb3cgd2lsbCBhbmltYXRlIGludG8gYW5kIG91dCBvZiBvcmRlck91
dCBvcGVyYXRpb25zLiBTdXBwcmVzcyB0aGF0CiAgICAgLy8gYmVoYXZpb3IgaGVyZSwgbWFraW5n
IHN1cmUgdG8gcmVzZXQgdGhlIGFuaW1hdGlvbiBiZWhhdmlvciBhZnRlcndhcmQuCiAgICAgTlNX
aW5kb3dBbmltYXRpb25CZWhhdmlvciBhbmltYXRpb25CZWhhdmlvciA9IFt3ZWJXaW5kb3cgYW5p
bWF0aW9uQmVoYXZpb3JdOwpAQCAtMzM4LDcgKzMzOCw3IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVl
blJlY3RPZkNvbnRlbnRzKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIFt3ZWJXaW5kb3cgc2V0
Q29sbGVjdGlvbkJlaGF2aW9yOmJlaGF2aW9yXTsKICAgICB9IGVsc2UKICAgICAgICAgW3dlYldp
bmRvdyBvcmRlcldpbmRvdzpOU1dpbmRvd0JlbG93IHJlbGF0aXZlVG86W1tzZWxmIHdpbmRvd10g
d2luZG93TnVtYmVyXV07Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFt3ZWJXaW5kb3cgc2V0QW5pbWF0aW9uQmVoYXZpb3I6
YW5pbWF0aW9uQmVoYXZpb3JdOwogI2VuZGlmCiAKQEAgLTQxNSw3ICs0MTUsNyBAQCBzdGF0aWMg
SW50UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtZW50KiBlbGVtZW50KQogLSAodm9pZClf
dXBkYXRlTWVudUFuZERvY2tGb3JGdWxsU2NyZWVuCiB7CiAgICAgLy8gTlNBcHBsaWNhdGlvblBy
ZXNlbnRhdGlvbk9wdGlvbnMgaXMgYXZhaWxhYmxlIG9uID4gMTAuNiBvbmx5OgotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgTlNBcHBsaWNhdGlvblByZXNlbnRhdGlvbk9wdGlvbnMgb3B0aW9ucyA9IE5T
QXBwbGljYXRpb25QcmVzZW50YXRpb25EZWZhdWx0OwogICAgIE5TU2NyZWVuKiBmdWxsc2NyZWVu
U2NyZWVuID0gW1tzZWxmIHdpbmRvd10gc2NyZWVuXTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDA0YTVhOTkuLjUwNWRiNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMjg1LDcgKzI4NSw3IEBAIGV4dGVy
biBOU1N0cmluZyAqTlNUZXh0SW5wdXRSZXBsYWNlbWVudFJhbmdlQXR0cmlidXRlTmFtZTsKIC0g
KHZvaWQpX2ludmFsaWRhdGVHU3RhdGVzRm9yVHJlZTsKIC0gKHZvaWQpX3Byb3BhZ2F0ZURpcnR5
UmVjdHNUb09wYXF1ZUFuY2VzdG9yczsKIC0gKHZvaWQpX3dpbmRvd0NoYW5nZWRLZXlTdGF0ZTsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogLSAodm9pZClfdXBkYXRlTGF5ZXJHZW9tZXRy
eUZyb21WaWV3OwogI2VuZGlmCiBAZW5kCkBAIC00MTEsNyArNDExLDcgQEAgc3RhdGljIENhY2hl
ZEltYWdlQ2xpZW50KiBwcm9taXNlZERhdGFDbGllbnQoKQogLSAodm9pZClfd2ViX2NsZWFyUHJp
bnRpbmdNb2RlUmVjdXJzaXZlOwogQGVuZAogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAogQGludGVyZmFj
ZSBXZWJIVE1MVmlldyAoV2ViSFRNTFZpZXdUZXh0Q2hlY2tpbmdJbnRlcm5hbCkKIC0gKHZvaWQp
b3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5lbDooaWQpc2VuZGVyOwpAQCAtNzk0LDcgKzc5NCw3
IEBAIHN0YXRpYyBOU1VSTCogdW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVs
YXRpdmVQYXJ0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3VicmVzb3VyY2VzOjBdKSkKICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogCi0jaWZkZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogICAgIGlmIChbdHlwZXMgY29udGFpbnNPYmplY3Q6TlNQSUNUUGJvYXJkVHlwZV0gJiYK
ICAgICAgICAgKGZyYWdtZW50ID0gW3NlbGYgX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2Fy
ZDpwYXN0ZWJvYXJkIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3JUeXBlOk5TUElDVFBib2FyZFR5cGUKQEAgLTg3NSw3ICs4NzUsNyBAQCBzdGF0
aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoTlNTdHJpbmcgKnJlbGF0aXZlUGFy
dCkKICAgICBET01SYW5nZSAqcmFuZ2UgPSBbc2VsZiBfc2VsZWN0ZWRSYW5nZV07CiAgICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSk7CiAgICAgCi0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIERPTURv
Y3VtZW50RnJhZ21lbnQgKmZyYWdtZW50ID0gW3NlbGYgX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFz
dGVib2FyZDpwYXN0ZWJvYXJkIGluQ29udGV4dDpyYW5nZSBhbGxvd1BsYWluVGV4dDphbGxvd1Bs
YWluVGV4dF07CiAgICAgaWYgKGZyYWdtZW50ICYmIFtzZWxmIF9zaG91bGRJbnNlcnRGcmFnbWVu
dDpmcmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBnaXZlbkFjdGlvbjpXZWJWaWV3SW5z
ZXJ0QWN0aW9uUGFzdGVkXSkKICAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+cGFzdGVBc0Zy
YWdtZW50KGNvcmUoZnJhZ21lbnQpLCBbc2VsZiBfY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9h
cmQ6cGFzdGVib2FyZF0sIGZhbHNlKTsKQEAgLTEyMzIsNyArMTIzMiw3IEBAIHN0YXRpYyBOU1VS
TCogdW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVsYXRpdmVQYXJ0KQogICAg
IH0KICAgICBfcHJpdmF0ZS0+bGFzdFNjcm9sbFBvc2l0aW9uID0gb3JpZ2luOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBbc2VsZiBfdXBkYXRlTGF5ZXJIb3N0aW5nVmlld1Bv
c2l0aW9uXTsKICNlbmRpZgogfQpAQCAtMTM4OSw3ICsxMzg5LDcgQEAgc3RhdGljIE5TVVJMKiB1
bmlxdWVVUkxXaXRoUmVsYXRpdmVQYXJ0KE5TU3RyaW5nICpyZWxhdGl2ZVBhcnQpCiAKIHN0YXRp
YyBCT09MIGlzUXVpY2tMb29rRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGNvbnN0IGlu
dCBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCA9IDk7CiAg
ICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU1N5c3RlbURlZmluZWQgJiYgW2V2ZW50IHN1YnR5
cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVhc2VkICYm
IFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwogI2Vsc2UKQEAgLTE2NTgsNyArMTY1OCw3IEBAIHN0
YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQog
ICAgIHN0YXRpYyBOU0FycmF5ICp0eXBlcyA9IG5pbDsKICAgICBpZiAoIXR5cGVzKSB7CiAgICAg
ICAgIHR5cGVzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6V2ViQXJjaGl2ZVBi
b2FyZFR5cGUsIE5TSFRNTFBib2FyZFR5cGUsIE5TRmlsZW5hbWVzUGJvYXJkVHlwZSwgTlNUSUZG
UGJvYXJkVHlwZSwgTlNQREZQYm9hcmRUeXBlLAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICAgICAgICAg
IE5TUElDVFBib2FyZFR5cGUsCiAjZW5kaWYKICAgICAgICAgICAgIE5TVVJMUGJvYXJkVHlwZSwg
TlNSVEZEUGJvYXJkVHlwZSwgTlNSVEZQYm9hcmRUeXBlLCBOU1N0cmluZ1Bib2FyZFR5cGUsIE5T
Q29sb3JQYm9hcmRUeXBlLCBrVVRUeXBlUE5HLCBuaWxdOwpAQCAtMjA0Nyw3ICsyMDQ3LDcgQEAg
c3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQp
CiAgICAgICAgIFtyZXNvdXJjZSByZWxlYXNlXTsKICAgICAgICAgcmV0dXJuIGZyYWdtZW50Owog
ICAgIH0KLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgaWYgKHBib2FyZFR5cGUgPT0gTlNQSUNUUGJvYXJk
VHlwZSkgewogICAgICAgICBXZWJSZXNvdXJjZSAqcmVzb3VyY2UgPSBbW1dlYlJlc291cmNlIGFs
bG9jXSBpbml0V2l0aERhdGE6W3Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6TlNQSUNUUGJvYXJkVHlw
ZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVVJMOnVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoQCJpbWFnZS5waWN0IikKQEAg
LTI2OTksNyArMjY5OSw3IEBAIFdFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQogICAgICAg
ICByZXR1cm4gWUVTOwogICAgIH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3Iob3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5lbDopKSB7CiAgICAgICAgIE5T
TWVudUl0ZW0gKm1lbnVJdGVtID0gKE5TTWVudUl0ZW0gKilpdGVtOwogICAgICAgICBpZiAoW21l
bnVJdGVtIGlzS2luZE9mQ2xhc3M6W05TTWVudUl0ZW0gY2xhc3NdXSkgewpAQCAtMjg1Miw3ICsy
ODUyLDcgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAgICAgICAgIHJldHVybjsK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIExlZ2FjeSBzY3Jv
bGxiYXJzIHJlcXVpcmUgdHJhY2tpbmcgdGhlIG1vdXNlIGF0IGFsbCB0aW1lcy4KICAgICBpZiAo
V0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAg
ICAgICAgIHJldHVybjsKQEAgLTMzOTEsNyArMzM5MSw3IEBAIHN0YXRpYyB2b2lkIHNldE1lbnVU
YXJnZXRzKE5TTWVudSogbWVudSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAoX3ByaXZhdGUtPnRyYWNraW5nQXJlYUZvck5vbktl
eVdpbmRvdykgewogICAgICAgICBbc2VsZiByZW1vdmVUcmFja2luZ0FyZWE6X3ByaXZhdGUtPnRy
YWNraW5nQXJlYUZvck5vbktleVdpbmRvd107CiAgICAgICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdB
cmVhRm9yTm9uS2V5V2luZG93IHJlbGVhc2VdOwpAQCAtMzQyNCw3ICszNDI0LDcgQEAgc3RhdGlj
IHZvaWQgc2V0TWVudVRhcmdldHMoTlNNZW51KiBtZW51KQogICAgICAgICBbX3ByaXZhdGUtPmNv
bXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107CiAg
ICAgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChXS1JlY29tbWVuZGVk
U2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkgewogICAgICAgICAvLyBM
ZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0
cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgogICAgICAgICAvLyBJdCdzIGVhc2llc3Qg
dG8gZG8gdGhpcyB3aXRoIGEgdHJhY2tpbmcgYXJlYSwgd2hpY2ggd2Ugd2lsbCByZW1vdmUgd2hl
biB0aGUgd2luZG93IGlzIGtleQpAQCAtNDg5OCw3ICs0ODk4LDcgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkK
IAogc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiB7Ci0j
aWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNjAKICAgICByZXR1cm4gWUVTOwogI2Vsc2UKICAgICBOU1VzZXJEZWZhdWx0
cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpAQCAt
NDkzNiw3ICs0OTM2LDcgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdz
RW5hYmxlZCgpCiAgICAgW3NlbGYgX2NoYW5nZUJhc2VXcml0aW5nRGlyZWN0aW9uVG86TlNXcml0
aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnRdOwogfQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFS
RAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogLSAodm9pZClj
aGFuZ2VCYXNlV3JpdGluZ0RpcmVjdGlvblRvTFRSOihpZClzZW5kZXIKIHsKICAgICBbc2VsZiBt
YWtlQmFzZVdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodDpzZW5kZXJdOwpAQCAtNTE1MSw3ICs1
MTUxLDcgQEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRT
Y3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQogfQogCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVP
UEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiAtICh2
b2lkKW9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFuZWw6KGlkKXNlbmRlcgogewpAQCAtNTI4Niw3
ICs1Mjg2LDcgQEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBL
aXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQogICAgIGlmIChmb250KQogICAgICAgICByZWN0
Lm9yaWdpbi55ICs9IFtmb250IGFzY2VuZGVyXTsKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgW3Nl
bGYgc2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1dGVkU3RyaW5nOmF0dHJTdHJpbmcgYXRQb2ludDpy
ZWN0Lm9yaWdpbl07CiAgICAgcmV0dXJuOwogI2VuZGlmCkBAIC01NDc2LDcgKzU0NzYsNyBAQCBz
dGF0aWMgQ0dQb2ludCBjb3JlR3JhcGhpY3NTY3JlZW5Qb2ludEZvckFwcEtpdFNjcmVlblBvaW50
KE5TUG9pbnQgcG9pbnQpCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykg
ewogICAgICAgICBOU1ZpZXcqIGhvc3RpbmdWaWV3ID0gW1tXZWJMYXllckhvc3RpbmdGbGlwcGVk
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbc2VsZiBib3VuZHNdXTsKLSNpZm5kZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2
MAogICAgICAgICBbaG9zdGluZ1ZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lkdGhT
aXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZSldOwogI2VuZGlmCiAgICAgICAgIFtzZWxmIGFk
ZFN1YnZpZXc6aG9zdGluZ1ZpZXddOwpAQCAtNTQ4OCw3ICs1NDg4LDcgQEAgc3RhdGljIENHUG9p
bnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBv
aW50KQogICAgIC8vIE1ha2UgYSBjb250YWluZXIgbGF5ZXIsIHdoaWNoIHdpbGwgZ2V0IHNpemVk
L3Bvc2l0aW9uZWQgYnkgQXBwS2l0IGFuZCBDQS4KICAgICBDQUxheWVyKiB2aWV3TGF5ZXIgPSBb
V2ViUm9vdExheWVyIGxheWVyXTsKIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICAvLyBUdXJuIG9mZiBk
ZWZhdWx0IGFuaW1hdGlvbnMuCiAgICAgTlNOdWxsICpudWxsVmFsdWUgPSBbTlNOdWxsIG51bGxd
OwogICAgIE5TRGljdGlvbmFyeSAqYWN0aW9ucyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdp
dGhPYmplY3RzQW5kS2V5czoKQEAgLTU1MjIsMTAgKzU1MjIsMTAgQEAgc3RhdGljIENHUG9pbnQg
Y29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50
KQogICAgIGlmIChbW3NlbGYgX3dlYlZpZXddIF9wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdO
b3RpZmljYXRpb25zXSkKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpfV2ViVmlld0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ05vdGlmaWNhdGlvbiBvYmplY3Q6W3NlbGYgX3dlYlZpZXddIHVzZXJJbmZvOm5pbF07
CiAgICAgCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIFt2aWV3TGF5ZXIgc2V0U3VibGF5ZXJUcmFuc2Zv
cm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZSgxLCAtMSwgMSldOyAvLyBzZXRHZW9tZXRyeUZsaXBw
ZWQ6IGRvZXNuJ3QgZXhpc3Qgb24gTGVvcGFyZC4KICAgICBbc2VsZiBfdXBkYXRlTGF5ZXJIb3N0
aW5nVmlld1Bvc2l0aW9uXTsKLSNlbGlmIChkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSkKKyNlbGlmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPD0gMTA3MAogICAgIC8vIERvIGdlb21ldHJ5IGZsaXBwaW5nIGhlcmUs
IHdoaWNoIGZsaXBzIGFsbCB0aGUgY29tcG9zaXRpbmcgbGF5ZXJzIHNvIHRoZXkgYXJlIHRvcC1k
b3duLgogICAgIFt2aWV3TGF5ZXIgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107CiAjZWxzZQpAQCAt
NTU0NCw3ICs1NTQ0LDcgQEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRG
b3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQogICAgIH0KIH0KIAotI2lmZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNTAKIC8vIFRoaXMgbWV0aG9kIGlzIG5lY2Vzc2FyeSBvbiBMZW9wYXJkIHRvIHdvcmsgYXJv
dW5kIDxyZGFyOi8vcHJvYmxlbS83MDY3ODkyPi4KIC0gKHZvaWQpX3VwZGF0ZUxheWVySG9zdGlu
Z1ZpZXdQb3NpdGlvbgogewpAQCAtNTU3Miw3ICs1NTcyLDcgQEAgc3RhdGljIENHUG9pbnQgY29y
ZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQog
ICAgIFtfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBfdXBkYXRlTGF5ZXJHZW9tZXRyeUZyb21W
aWV3XTsgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS83MDcxNjM2PgogICAgIFtf
cHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBzZXRGcmFtZTpsYXllclZpZXdGcmFtZV07CiB9Ci0j
ZW5kaWYgLy8gZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogCiAtICh2b2lkKWRyYXdMYXllcjooQ0FM
YXllciAqKWxheWVyIGluQ29udGV4dDooQ0dDb250ZXh0UmVmKWN0eAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaAppbmRleCBhNDE1M2FiLi4x
MzdhMTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50
ZXJuYWwuaApAQCAtNjYsNyArNjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAtIChCT09MKV93
ZWJfaXNEcmF3aW5nSW50b0xheWVyOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogLSAodm9pZClfdXBkYXRlTGF5ZXJIb3N0aW5nVmlld1Bvc2l0aW9uOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGRG9jdW1lbnRFeHRy
YXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERkRvY3VtZW50RXh0cmFzLm1t
CmluZGV4IDNlNzAxY2YuLjU5MmVkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUERGRG9jdW1lbnRFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQREZEb2N1bWVudEV4dHJhcy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8
UERGS2l0L1BERkRvY3VtZW50Lmg+CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgogCi0j
aWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPT0gMTA1MAogQGludGVyZmFjZSBQREZEb2N1bWVudCAoSW50ZXJuYWwpCiAtIChDR1BE
RkRvY3VtZW50UmVmKWRvY3VtZW50UmVmOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggOWMyODIzMC4uN2ViMmY5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zNDYsNyArMzQ2LDcgQEAg
c3RhdGljIFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAg
ICAgQCIwIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRQREZTY2FsZUZhY3RvclBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIEAiMCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0VXNlU2l0ZVNwZWNpZmljU3Bvb2ZpbmdQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3JdLCBXZWJL
aXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXksCi0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRv
bWF0aWNhbGx5SW5jbHVkZWRdLAogI2Vsc2UKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJ
bnQ6V2ViVGV4dERpcmVjdGlvblN1Ym1lbnVOZXZlckluY2x1ZGVkXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmgKaW5kZXggYmE4NDEwNS4uMzI0
NDJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUlu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVy
bmFsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQgIldlYlJlc291cmNlUHJpdmF0ZS5oIgog
I2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICNkZWZpbmUgTUFJ
TF9USFJFQURfV09SS0FST1VORCAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJTY3JpcHREZWJ1Z0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaAppbmRleCA1ODU3MDBmLi41MTgyZjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVs
ZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVs
ZWdhdGUuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID09IDEwNTAKIHR5cGVkZWYgaW50IFdlYlNvdXJjZUlkOwogI2Vsc2UK
IHR5cGVkZWYgaW50cHRyX3QgV2ViU291cmNlSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggYzM1Yjg3My4uZWVhMWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtNDYzLDcgKzQ2Myw3IEBAIE5TU3RyaW5nICpfV2ViVmlld0RpZFN0YXJ0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbiA9IEAiX1dlYlZpZXdEaWRTdGFyCiAKIHN0
YXRpYyBCT09MIGNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZDsKIHN0YXRpYyBCT09MIGdy
YW1tYXJDaGVja2luZ0VuYWJsZWQ7Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIHN0YXRpYyBCT09MIGF1dG9t
YXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZDsKIHN0YXRpYyBCT09MIGF1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkOwogc3RhdGljIEJPT0wgYXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVu
YWJsZWQ7CkBAIC01MTAsNyArNTEwLDcgQEAgc3RhdGljIENGTXV0YWJsZVNldFJlZiBhbGxXZWJW
aWV3c1NldDsKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZXcgKFdlYlByaXZhdGUpCiAKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAKIHN0
YXRpYyBOU1N0cmluZyAqY3JlYXRlTWFjT1NYVmVyc2lvblN0cmluZygpCiB7CkBAIC01NDUsNyAr
NTQ1LDcgQEAgc3RhdGljIE5TU3RyaW5nICpjcmVhdGVNYWNPU1hWZXJzaW9uU3RyaW5nKCkKICAg
ICByZXR1cm4gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlZCIsIG1ham9yXTsK
IH0KIAotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwODAKIAogc3RhdGljIE5TU3RyaW5nICpjcmVhdGVVc2VyVmlzaWJsZVdl
YktpdFZlcnNpb25TdHJpbmcoKQogewpAQCAtNjExLDcgKzYxMSw3IEBAIHN0YXRpYyB2b2lkIFdl
YktpdEluaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlUGF0aElmTmVjZXNzYXJ5KCkKIAogc3RhdGlj
IGJvb2wgcnVubmluZ0xlb3BhcmRNYWlsKCkKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0dXJu
IGFwcGxpY2F0aW9uSXNBcHBsZU1haWwoKTsKICNlbmRpZgogICAgIHJldHVybiBOTzsKQEAgLTYx
OSw3ICs2MTksNyBAQCBzdGF0aWMgYm9vbCBydW5uaW5nTGVvcGFyZE1haWwoKQogCiBzdGF0aWMg
Ym9vbCBjb3JlVmlkZW9IYXM3MjI4ODM2Rml4KCkKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgTlNC
dW5kbGUqIGNvcmVWaWRlb0ZyYW1ld29ya0J1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVXaXRoUGF0
aDpAIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVWaWRlby5mcmFtZXdvcmsiXTsKICAg
ICBkb3VibGUgdmVyc2lvbiA9IFtbY29yZVZpZGVvRnJhbWV3b3JrQnVuZGxlIG9iamVjdEZvcklu
Zm9EaWN0aW9uYXJ5S2V5OihOU1N0cmluZyAqKWtDRkJ1bmRsZVZlcnNpb25LZXldIGRvdWJsZVZh
bHVlXTsKICAgICByZXR1cm4gKHZlcnNpb24gPj0gNDgpOwpAQCAtNjQ3LDcgKzY0Nyw3IEBAIHN0
YXRpYyBib29sIHNob3VsZEVuYWJsZUxvYWREZWZlcnJpbmcoKQogICAgIFt0eXBlcyByZWxlYXNl
XTsKIH0KIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8PSAxMDYwCiAvLyBUaGlzIG1ldGhvZCBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIHdlIG5vIGxv
bmdlciB3YW50IHRvIGtlZXAgU2FmYXJpIDUuMC54IHdvcmtpbmcgd2l0aCBuaWdodGx5IGJ1aWxk
cy4KIC0gKEJPT0wpX3VzZXNEb2N1bWVudFZpZXdzCiB7CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCBz
dGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChbcHJl
ZmVyZW5jZXMgZnVsbFNjcmVlbkVuYWJsZWRdKTsKICNlbmRpZgotI2lmbmRlZiBCVUlMRElOR19P
Tl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAg
ICAgLy8gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSBpcyBhdmFpbGFibGUgZm9yIDEw
LjYgb3IgbGF0ZXIuCiAgICAgc2V0dGluZ3MtPnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKFtwcmVmZXJlbmNlcyBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZF0pOwog
I2VuZGlmCkBAIC0zMDQ2LDcgKzMwNDYsNyBAQCBzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IHRvU3RyaW5nVmVjdG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIGNvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIGJvb2xGb3JLZXk6V2ViQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkXTsKICAgICBn
cmFtbWFyQ2hlY2tpbmdFbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gYm9vbEZvcktleTpXZWJHcmFtbWFyQ2hlY2tpbmdFbmFibGVkXTsKIAotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0gW1tOU1VzZXJE
ZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNRdW90
ZVN1YnN0aXR1dGlvbkVuYWJsZWRdOwogICAgIGF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVk
ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJB
dXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZF07CiAgICAgYXV0b21hdGljRGFzaFN1YnN0aXR1
dGlvbkVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29s
Rm9yS2V5OldlYkF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkXTsKQEAgLTMwNTQsNyAr
MzA1NCw3IEBAIHN0YXRpYyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0
b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgYXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5h
YmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6
V2ViQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZF07CiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICBpZiAoIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktl
eTpXZWJBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkXSkKICAgICAgICAgYXV0b21hdGlj
VGV4dFJlcGxhY2VtZW50RW5hYmxlZCA9IFtOU1NwZWxsQ2hlY2tlciBpc0F1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudEVuYWJsZWRdOwogICAgIGlmICghW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYkF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVu
YWJsZWRdKQpAQCAtMzI2MSw3ICszMjYxLDcgQEAgc3RhdGljIGJvb2wgY2xpZW50TmVlZHNXZWJW
aWV3SW5pdFRocmVhZFdvcmthcm91bmQoKQogICAgIGlmIChbYnVuZGxlSWRlbnRpZmllciBfd2Vi
a2l0X2hhc0Nhc2VJbnNlbnNpdGl2ZVByZWZpeDpAImNvbS5hcHBsZS5BdXRvbWF0b3IuIl0pCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIC8vIE1haWwuCiAgICAg
aWYgKFtidW5kbGVJZGVudGlmaWVyIF93ZWJraXRfaXNDYXNlSW5zZW5zaXRpdmVFcXVhbFRvU3Ry
aW5nOkAiY29tLmFwcGxlLk1haWwiXSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00NTY0LDcg
KzQ1NjQsNyBAQCBzdGF0aWMgV2ViRnJhbWUgKmluY3JlbWVudEZyYW1lKFdlYkZyYW1lICpmcmFt
ZSwgV2ViRmluZE9wdGlvbnMgb3B0aW9ucyA9IDApCiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0
U3RhdGU6Y2hlY2tNYXJrID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIFlFUzsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIH0gZWxzZSBpZiAoYWN0aW9u
ID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbjopKSB7CiAgICAg
ICAgIEJPT0wgY2hlY2tNYXJrID0gW3NlbGYgaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVu
YWJsZWRdOwogICAgICAgICBpZiAoWyhOU09iamVjdCAqKWl0ZW0gaXNLaW5kT2ZDbGFzczpbTlNN
ZW51SXRlbSBjbGFzc11dKSB7CkBAIC00NzEzLDcgKzQ3MTMsNyBAQCBzdGF0aWMgQk9PTCBmaW5k
U3RyaW5nKE5TVmlldyA8V2ViRG9jdW1lbnRTZWFyY2hpbmc+ICpzZWFyY2hWaWV3LCBOU1N0cmlu
ZyAqc3RyaQogICAgIHJldHVybiBraXQoX3ByaXZhdGUtPnBhZ2UtPnJhbmdlT2ZTdHJpbmcoc3Ry
aW5nLCBjb3JlKHByZXZpb3VzUmFuZ2UpLCBjb3JlT3B0aW9ucyhvcHRpb25zKSkuZ2V0KCkpOwog
fQogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJ
TERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEw
NzAKIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBXZWJLaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIHN1cHBv
cnQgdmVyc2lvbnMgb2YgU2FmYXJpIHRoYXQgY2FsbCB0aGlzLgogLSAodm9pZClzZXRIb3ZlckZl
ZWRiYWNrU3VzcGVuZGVkOihCT09MKW5ld1ZhbHVlCiB7CkBAIC01NDAyLDcgKzU0MDIsNyBAQCBz
dGF0aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIGpzVmFsdQogICAgIGdyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBmbGFn
OwogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6Z3Jh
bW1hckNoZWNraW5nRW5hYmxlZCBmb3JLZXk6V2ViR3JhbW1hckNoZWNraW5nRW5hYmxlZF07ICAg
IAogICAgIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVs
bENoZWNrZXJdIHVwZGF0ZVBhbmVsc107CiAjZWxzZQogICAgIE5TU3BlbGxDaGVja2VyICpzcGVs
bENoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXTsKQEAgLTU0Mjks
NyArNTQyOSw3IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNW
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNWYWx1CiAKIC0gKEJPT0wpaXNBdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0dXJu
IE5POwogI2Vsc2UKICAgICByZXR1cm4gYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVk
OwpAQCAtNTQzOCw3ICs1NDM4LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFl
RGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAoQk9P
TClpc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkCiB7Ci0jaWZkZWYgQlVJTERJTkdfT05f
TEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAg
IHJldHVybiBOTzsKICNlbHNlCiAgICAgcmV0dXJuIGF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkOwpAQCAtNTQ0Nyw3ICs1NDQ3LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3Iq
IGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAo
Qk9PTClpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkCiB7Ci0jaWZkZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1
MAogICAgIHJldHVybiBOTzsKICNlbHNlCiAgICAgcmV0dXJuIGF1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb25FbmFibGVkOwpAQCAtNTQ1Niw3ICs1NDU2LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERl
c2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1Zh
bHUKIAogLSAoQk9PTClpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQKIHsKLSNpZmRl
ZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA9PSAxMDUwCiAgICAgcmV0dXJuIE5POwogI2Vsc2UKICAgICByZXR1cm4gYXV0b21hdGljVGV4
dFJlcGxhY2VtZW50RW5hYmxlZDsKQEAgLTU0NjUsMTQgKzU0NjUsMTQgQEAgc3RhdGljIE5TQXBw
bGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBqc1ZhbHUKIAogLSAoQk9PTClpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJs
ZWQKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0dXJuIE5POwogI2Vsc2UKICAgICByZXR1cm4g
YXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZDsKICNlbmRpZgogfQogCi0jaWZuZGVm
IEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKIAogLSAodm9pZClzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ6
KEJPT0wpZmxhZwogewpAQCAtNTY5OCw3ICs1Njk4LDcgQEAgc3RhdGljIFdlYkZyYW1lVmlldyAq
Y29udGFpbmluZ0ZyYW1lVmlldyhOU1ZpZXcgKnZpZXcpCiAKICAgICBOU1dpbmRvdyAqd2luZG93
ID0gW3NlbGYgd2luZG93XTsKICAgICBOU1dpbmRvdyAqaG9zdFdpbmRvdyA9IFtzZWxmIGhvc3RX
aW5kb3ddOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICBpZiAod2luZG93KQogICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNr
aW5nU2NhbGVGYWN0b3JdOwogICAgIGlmIChob3N0V2luZG93KQpAQCAtNjA1OSw3ICs2MDU5LDcg
QEAgc3RhdGljIGlubGluZSB1aW50NjRfdCByb3VuZFVwVG9Qb3dlck9mMih1aW50NjRfdCBudW0p
CiAgICAgaWYgKCFbc2VsZWN0ZWRTdHJpbmcgbGVuZ3RoXSkKICAgICAgICAgcmV0dXJuOwogCi0j
aWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNjAKICAgICBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gc2hvd1Nl
YXJjaFJlc3VsdHNGb3JRdWVyeVN0cmluZzpzZWxlY3RlZFN0cmluZ107CiAjZWxzZQogICAgICh2
b2lkKUhJU2VhcmNoV2luZG93U2hvdygoQ0ZTdHJpbmdSZWYpc2VsZWN0ZWRTdHJpbmcsIGtOaWxP
cHRpb25zKTsKQEAgLTY1NzksNyArNjU3OSw3IEBAIHZvaWQgV2ViSW5zdGFsbE1lbW9yeVByZXNz
dXJlSGFuZGxlcih2b2lkKQogICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmluc3RhbGwoKTsK
IH0KIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID09IDEwNTAKIAogc3RhdGljIElNUCBvcmlnaW5hbFJlY3Vyc2l2ZWx5UmVt
b3ZlTWFpbEF0dHJpYnV0ZXNJbXA7CiAKQEAgLTY2MDUsNyArNjYwNSw3IEBAIHN0YXRpYyB2b2lk
IHJlY3Vyc2l2ZWx5UmVtb3ZlTWFpbEF0dHJpYnV0ZXMoRE9NTm9kZSAqc2VsZiwgU0VMIHNlbGVj
dG9yLCBCT09MIGEsCiAKIHN0YXRpYyB2b2lkIHBhdGNoTWFpbFJlbW92ZUF0dHJpYnV0ZXNNZXRo
b2QoKQogewotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBpZiAoIVdLQXBwVmVyc2lvbkNoZWNrTGVzc1Ro
YW4oQCJjb20uYXBwbGUubWFpbCIsIC0xLCA0LjApKQogICAgICAgICByZXR1cm47CiAgICAgTWV0
aG9kIG1ldGhvZFRvUGF0Y2ggPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChvYmpjX2dldFJlcXVp
cmVkQ2xhc3MoIkRPTU5vZGUiKSwgQHNlbGVjdG9yKHJlY3Vyc2l2ZWx5UmVtb3ZlTWFpbEF0dHJp
YnV0ZXM6Y29udmVydE9iamVjdHNUb0ltYWdlczpjb252ZXJ0RWRpdGFibGVFbGVtZW50czopKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCBiN2IzYjFj
Li4wYTk4MDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5o
CkBAIC02NzcsNyArNjc3LDcgQEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEkuCiAt
IChCT09MKWlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ7CiAtIChCT09MKWlzQXV0
b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZDsKIC0gKEJPT0wpaXNBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb25FbmFibGVkOwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAtICh2b2lkKXNldEF1dG9tYXRp
Y1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZDooQk9PTClmbGFnOwogLSAodm9pZCl0b2dnbGVBdXRv
bWF0aWNRdW90ZVN1YnN0aXR1dGlvbjooaWQpc2VuZGVyOwogLSAodm9pZClzZXRBdXRvbWF0aWNM
aW5rRGV0ZWN0aW9uRW5hYmxlZDooQk9PTClmbGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY1MDk3ZDQuLjg4
MmM5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMi0wNy0xMSAgTWFyayBSb3dl
ICA8bXJvd2VAYXBwbGUuY29tPgorCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzkxMDE1
PiBSZW1vdmUgQlVJTERJTkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9yIG9mIHN5c3Rl
bSBhdmFpbGFiaWxpdHkgbWFjcm9zCisKKyAgICAgICAgVGhpcyByZW1vdmFsIHdhcyBoYW5kbGVk
IGJ5IGEgc2NyaXB0IHRoYXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGluIHRvIHRo
ZSBlcXVpdmFsZW50IGNoZWNrcworICAgICAgICB1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0
eSBtYWNyb3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHA6CisgICAgICAgICogU2hhcmVkL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1Bhc3RlYm9hcmRUeXBl
cy5tbToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9QREZWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWlj
TGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgICogV2ViS2l0MlByZWZpeC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRi
b3hGdW5jdGlvbnMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL0tl
eWNoYWluSXRlbVNoaW1NZXRob2RzLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1NlY0l0
ZW1TaGltTWV0aG9kcy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFj
Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tOgorCiAyMDEyLTA3LTExICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIC1XdGF1
dG9sb2dpY2FsLWNvbXBhcmUgYW5kIC1Xc2lnbi1jb21wYXJlIHdhcm5pbmcgZmxhZ3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAppbmRleCA2MzIyMWE1
Li4wZjlkMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBv
cHVwSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cElu
Zm8uY3BwCkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgRGljdGlvbmFyeVBvcHVwSW5mbzo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5l
bmNvZGUoZm9udEluZm8pOwogICAgIGVuY29kZXItPmVuY29kZUVudW0odHlwZSk7CiAKLSNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
ICAgIGJvb2wgaGFkT3B0aW9ucyA9IG9wdGlvbnM7CiAgICAgZW5jb2Rlci0+ZW5jb2RlQm9vbCho
YWRPcHRpb25zKTsKICAgICBpZiAoaGFkT3B0aW9ucykKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBE
aWN0aW9uYXJ5UG9wdXBJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBEaWN0aW9uYXJ5UG8KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bShyZXN1bHQudHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
ICAgIGJvb2wgaGFkT3B0aW9uczsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZUJvb2woaGFkT3B0
aW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGlj
dGlvbmFyeVBvcHVwSW5mby5oCmluZGV4IDM4MTRlY2UuLmJjZWMwNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1
Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW47
CiAgICAgRm9udEluZm8gZm9udEluZm87CiAgICAgVHlwZSB0eXBlOwotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gb3B0aW9uczsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGFzdGVib2FyZFR5cGVzLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMubW0KaW5kZXggMjZjYzZkYy4uMDkwZWIwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMubW0KQEAgLTQ0
LDcgKzQ0LDcgQEAgc3RhdGljIGlubGluZSBOU0FycmF5ICpyZXRhaW4oTlNBcnJheSAqYXJyYXkp
CiBOU0FycmF5KiBQYXN0ZWJvYXJkVHlwZXM6OmZvckVkaXRpbmcoKQogewogICAgIHN0YXRpYyBO
U0FycmF5ICp0eXBlcyA9IHJldGFpbihbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOldlYkFyY2hp
dmVQYm9hcmRUeXBlLCBOU0hUTUxQYm9hcmRUeXBlLCBOU0ZpbGVuYW1lc1Bib2FyZFR5cGUsIE5T
VElGRlBib2FyZFR5cGUsIE5TUERGUGJvYXJkVHlwZSwKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgICAg
IE5TUElDVFBib2FyZFR5cGUsCiAjZW5kaWYKICAgICAgICAgTlNVUkxQYm9hcmRUeXBlLCBOU1JU
RkRQYm9hcmRUeXBlLCBOU1JURlBib2FyZFR5cGUsIE5TU3RyaW5nUGJvYXJkVHlwZSwgTlNDb2xv
clBib2FyZFR5cGUsIGtVVFR5cGVQTkcsIG5pbF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCA3YzE4NTI0Li43NzJjMGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtMTk5LDcgKzE5OSw3
IEBAIHN0YXRpYyBOU1BvaW50IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAq
d2luZG93VmlldykKIAogc3RhdGljIFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBoYXNlRm9yRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHVpbnQz
Ml90IHBoYXNlID0gV2ViV2hlZWxFdmVudDo6UGhhc2VOb25lOyAKICAgICBpZiAoW2V2ZW50IHBo
YXNlXSAmIE5TRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50
OjpQaGFzZUJlZ2FuOwpAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBXZWJXaGVlbEV2ZW50OjpQ
aGFzZSBwaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBwaGFzZSB8PSBXZWJX
aGVlbEV2ZW50OjpQaGFzZUVuZGVkOwogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBo
YXNlQ2FuY2VsbGVkKQogICAgICAgICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUNhbmNl
bGxlZDsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVu
dFBoYXNlTWF5QmVnaW4pCiAgICAgICAgIHBoYXNlIHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlTWF5
QmVnaW47CiAjZW5kaWYKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgV2ViV2hlZWxFdmVudDo6
UGhhc2UgbW9tZW50dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVpbnQz
Ml90IHBoYXNlID0gV2ViV2hlZWxFdmVudDo6UGhhc2VOb25lOyAKIAotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICBpZiAoW2V2ZW50IG1vbWVudHVtUGhhc2VdICYgTlNFdmVudFBoYXNl
QmVnYW4pCiAgICAgICAgIHBoYXNlIHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW47CiAgICAg
aWYgKFtldmVudCBtb21lbnR1bVBoYXNlXSAmIE5TRXZlbnRQaGFzZVN0YXRpb25hcnkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QREZWaWV3Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVy
Lm1tCmluZGV4IDkxZmNmMzQuLjZhMDJmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tCkBAIC01MDQsNyArNTA0LDcg
QEAgYm9vbCBQREZWaWV3Q29udHJvbGxlcjo6Zm9yd2FyZFNjcm9sbFdoZWVsRXZlbnQoTlNFdmVu
dCAqd2hlZWxFdmVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmbmRlZiBCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKIHN0YXRpYyBJTVAgb2xkUERGVmlld1Njcm9sbFZpZXdfc2Nyb2xsV2hlZWw7CiAKIHN0YXRp
YyBXS1BERlZpZXcgKmZpbmRFbmNsb3NpbmdXS1BERlZpZXcoTlNWaWV3ICp2aWV3KQpAQCAtNTU3
LDcgKzU1Nyw3IEBAIE5TQnVuZGxlKiBQREZWaWV3Q29udHJvbGxlcjo6cGRmS2l0QnVuZGxlKCkK
ICAgICBpZiAoIVtwZGZLaXRCdW5kbGUgbG9hZF0pCiAgICAgICAgIExPR19FUlJPUigiQ291bGRu
J3QgbG9hZCBQREZLaXQuZnJhbWV3b3JrIik7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
aWYgKENsYXNzIHBkZlZpZXdTY3JvbGxWaWV3Q2xhc3MgPSBbcGRmS2l0QnVuZGxlIGNsYXNzTmFt
ZWQ6QCJQREZWaWV3U2Nyb2xsVmlldyJdKSB7CiAgICAgICAgIGlmIChNZXRob2Qgc2Nyb2xsV2hl
ZWwgPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChwZGZWaWV3U2Nyb2xsVmlld0NsYXNzLCBAc2Vs
ZWN0b3Ioc2Nyb2xsV2hlZWw6KSkpCiAgICAgICAgICAgICBvbGRQREZWaWV3U2Nyb2xsVmlld19z
Y3JvbGxXaGVlbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihzY3JvbGxXaGVlbCwgcmVpbnRl
cnByZXRfY2FzdDxJTVA+KFBERlZpZXdTY3JvbGxWaWV3X3Njcm9sbFdoZWVsKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4
IDQ1N2NlOTIuLmIzMTk0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC00NzIsNyArNDcyLDcgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiB0ZXh0LCBk
b3VibGUgc2NhbGUKIAogICAgIE5TUG9pbnQgdGV4dEJhc2VsaW5lT3JpZ2luID0gZGljdGlvbmFy
eVBvcHVwSW5mby5vcmlnaW47CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8g
Q29udmVydCB0byBzY3JlZW4gY29vcmRpbmF0ZXMuCiAgICAgdGV4dEJhc2VsaW5lT3JpZ2luID0g
W21fd2tWaWV3IGNvbnZlcnRQb2ludDp0ZXh0QmFzZWxpbmVPcmlnaW4gdG9WaWV3Om5pbF07CiAg
ICAgdGV4dEJhc2VsaW5lT3JpZ2luID0gW21fd2tWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2Ny
ZWVuOk5TTWFrZVJlY3QodGV4dEJhc2VsaW5lT3JpZ2luLngsIHRleHRCYXNlbGluZU9yaWdpbi55
LCAwLCAwKV0ub3JpZ2luOwpAQCAtNDg3LDcgKzQ4Nyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IFN0cmluZyYgdGV4dCwgZG91YmxlIHNj
YWxlCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpc21pc3NEaWN0aW9uYXJ5TG9va3VwUGFuZWwo
KQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBXS0hpZGVXb3JkRGVmaW5pdGlv
bldpbmRvdygpOwogI2VuZGlmCiB9CkBAIC01MTksNyArNTE5LDcgQEAgU3RyaW5nIFBhZ2VDbGll
bnRJbXBsOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihXZWJDb3JlOjpSZWFzb25Gb3JEaXNt
aXNzaW5nQWwKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNw
b25zZShBdXRvY29ycmVjdGlvblJlc3BvbnNlVHlwZSByZXNwb25zZVR5cGUsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpCiB7Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIE5TQ29ycmVjdGlvblJlc3BvbnNlIHJlc3Bv
bnNlID0gcmVzcG9uc2VUeXBlID09IEF1dG9jb3JyZWN0aW9uUmV2ZXJ0ZWQgPyBOU0NvcnJlY3Rp
b25SZXNwb25zZVJldmVydGVkIDogTlNDb3JyZWN0aW9uUmVzcG9uc2VFZGl0ZWQ7CiAgICAgQ29y
cmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKG1fd2tWaWV3LCByZXNw
b25zZSwgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKTsKICNlbmRpZgpAQCAtNTI3
LDcgKzUyNyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVz
cG9uc2UoQXV0b2NvcnJlY3Rpb25SZXNwb25zZVR5cGUgcmVzCiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkK
IHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgTlNBcnJheSAqdHJhY2tpbmdBcmVh
cyA9IFttX3drVmlldyB0cmFja2luZ0FyZWFzXTsKICAgICBOU1VJbnRlZ2VyIGNvdW50ID0gW3Ry
YWNraW5nQXJlYXMgY291bnRdOwogICAgIEFTU0VSVChjb3VudCA9PSAxKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBlODgzMjE1Li4yN2YyMzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMDQsNyAr
MTA0LDcgQEAKIEBlbmQKIAogQGludGVyZmFjZSBOU1dpbmRvdyAoV0tOU1dpbmRvd0RldGFpbHMp
Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAtIChOU1JlY3QpX2dyb3dCb3hSZWN0OwogLSAo
aWQpX2dyb3dCb3hPd25lcjsKIC0gKHZvaWQpX3NldFNob3dPcGFxdWVHcm93Qm94Rm9yT3duZXI6
KGlkKW93bmVyOwpAQCAtOTU3LDcgKzk1Nyw3IEBAIHN0YXRpYyB2b2lkIHNwZWFrU3RyaW5nKFdL
U3RyaW5nUmVmIHN0cmluZywgV0tFcnJvclJlZiBlcnJvciwgdm9pZCopCiAKIC0gKHZvaWQpZGlz
cGxheUlmTmVlZGVkCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmVtb3ZlIHRoaXMgY29kZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS85MzYyMDg1
PiBpcyByZXNvbHZlZC4gSW4gdGhlIG1lYW50aW1lLAogICAgIC8vIGl0IGlzIG5lY2Vzc2FyeSB0
byBkaXNhYmxlIHNjcmVuIHVwZGF0ZXMgc28gd2UgZ2V0IGEgY2hhbmNlIHRvIHJlZHJhdyB0aGUg
Y29ybmVycyBiZWZvcmUgdGhpcyAKICAgICAvLyBkaXNwbGF5IGlzIHZpc2libGUuCkBAIC05Njks
NyArOTY5LDcgQEAgc3RhdGljIHZvaWQgc3BlYWtTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nLCBX
S0Vycm9yUmVmIGVycm9yLCB2b2lkKikKIAogICAgIFtzdXBlciBkaXNwbGF5SWZOZWVkZWRdOwog
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChzaG91bGRNYXNrV2luZG93KSB7
CiAgICAgICAgIFt3aW5kb3cgX21hc2tSb3VuZGVkQm90dG9tQ29ybmVyczpfZGF0YS0+X3dpbmRv
d0JvdHRvbUNvcm5lckludGVyc2VjdGlvblJlY3RdOwogICAgICAgICBOU0VuYWJsZVNjcmVlblVw
ZGF0ZXMoKTsKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxp
bmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAg
ICAgX2RhdGEtPl9wYWdlLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEsIFtbZHJhZ2dpbmdJbmZvIGRy
YWdnaW5nUGFzdGVib2FyZF0gbmFtZV0pOwogICAgIAogICAgIFdlYkNvcmU6OkRyYWdTZXNzaW9u
IGRyYWdTZXNzaW9uID0gX2RhdGEtPl9wYWdlLT5kcmFnU2Vzc2lvbigpOwotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKICAgICBOU0ludGVnZXIgbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA9
IGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7CiAgICAgTlNEcmFnZ2luZ0Zv
cm1hdGlvbiBkcmFnZ2luZ0Zvcm1hdGlvbiA9IE5TRHJhZ2dpbmdGb3JtYXRpb25Ob25lOwogICAg
IGlmIChkcmFnU2Vzc2lvbi5tb3VzZUlzT3ZlckZpbGVJbnB1dCAmJiBudW1iZXJPZlZhbGlkSXRl
bXNGb3JEcm9wID4gMCkKQEAgLTE3NzgsNyArMTc3OCw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNh
bmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNh
bmRiCiB9CiAKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogLSAoQk9PTClfb3duc1dpbmRv
d0dyb3dCb3gKIHsKICAgICBOU1dpbmRvdyogd2luZG93ID0gW3NlbGYgd2luZG93XTsKQEAgLTE4
ODgsNyArMTg4OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9s
ZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW3NlbGYgcmVtb3Zl
V2luZG93T2JzZXJ2ZXJzXTsKICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6
d2luZG93XTsKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogICAgIGlmIChbY3VycmVudFdp
bmRvdyBfZ3Jvd0JveE93bmVyXSA9PSBzZWxmKQogICAgICAgICBbY3VycmVudFdpbmRvdyBfc2V0
U2hvd09wYXF1ZUdyb3dCb3hGb3JPd25lcjpuaWxdOwogI2VuZGlmCkBAIC0xOTI3LDcgKzE5Mjcs
NyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3Rv
cktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgICAgICAgICAgX2RhdGEtPl9lbmRHZXN0
dXJlTW9uaXRvciA9IG5pbDsKICAgICAgICAgfQogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgICAgICBXS0hpZGVXb3JkRGVmaW5pdGlvbldpbmRvdygpOwogI2VuZGlmCiAg
ICAgfQpAQCAtMjIwOSw3ICsyMjA5LDcgQEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5k
KENHQ29udGV4dFJlZiBjb250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKIC0gKGZs
b2F0KV9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcgogewogICAgIE5TV2luZG93ICp3aW5kb3cg
PSBbc2VsZiB3aW5kb3ddOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAod2lu
ZG93KQogICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0b3JdOwogICAgIHJl
dHVybiBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07CkBAIC0yMjM0
LDcgKzIyMzQsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZUJhY2tncm91bmQoQ0dDb250ZXh0UmVm
IGNvbnRleHQsIFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgSQogICAgIHJldHVybiBOTzsKIH0K
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
ODAKIC0gKHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBO
U1BvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6W2V2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddIGZyb21WaWV3Om5pbF07CkBAIC0yODY1LDcgKzI4NjUsNyBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5n
ICpwYXRoKQogCiAtICh2b2lkKV9kaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lCiB7Ci0j
aWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgW3NlbGYgX3VwZGF0ZUdyb3dCb3hGb3JXaW5k
b3dGcmFtZUNoYW5nZV07CiAjZW5kaWYKIH0KQEAgLTI5MDYsNyArMjkwNiw3IEBAIHN0YXRpYyBO
U1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAK
IC0gKHZvaWQpX2NhY2hlV2luZG93Qm90dG9tQ29ybmVyUmVjdAogewotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlbW92ZSB0aGlzIGNvZGUgd2hl
biA8cmRhcjovL3Byb2JsZW0vOTM2MjA4NT4gaXMgcmVzb2x2ZWQuIAogICAgIE5TV2luZG93ICp3
aW5kb3cgPSBbc2VsZiB3aW5kb3ddOwogICAgIGlmICghd2luZG93KQpAQCAtMjk2Nyw3ICsyOTY3
LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0
cmluZyAqcGF0aCkKIAogICAgIC8vIExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWdu
IGRldGFpbHMgdGhhdCByZWx5IG9uIHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCiAg
ICAgTlNUcmFja2luZ0FyZWFPcHRpb25zIG9wdGlvbnMgPSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8
IE5TVHJhY2tpbmdNb3VzZUVudGVyZWRBbmRFeGl0ZWQgfCBOU1RyYWNraW5nSW5WaXNpYmxlUmVj
dDsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKFdLUmVjb21tZW5kZWRTY3Jv
bGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5KQogICAgICAgICBvcHRpb25zIHw9
IE5TVHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAgZWxzZQpAQCAtMzAwOSw3ICszMDA5LDcgQEAg
c3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAq
cGF0aCkKICAgICByZXR1cm4gc2VsZjsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKIC0gKEJPT0wpd2FudHNVcGRhdGVMYXllcgog
ewogICAgIHJldHVybiBbc2VsZiBfc2hvdWxkVXNlVGlsZWREcmF3aW5nQXJlYV07CkBAIC0zMDk1
LDcgKzMwOTUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQ
YXRoKE5TU3RyaW5nICpwYXRoKQogCiArICh2b2lkKWhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdwog
ewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBXS0hpZGVXb3JkRGVmaW5pdGlvbldp
bmRvdygpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRF
eHRyYWN0b3IuaAppbmRleCAzMTFlNTkwLi4wMGI3M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJh
Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1p
Y0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYg
RHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yX2gKICNkZWZpbmUgRHluYW1pY0xpbmtl
ckVudmlyb25tZW50RXh0cmFjdG9yX2gKIAotI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2luY2x1
ZGUgPG1hY2gvbWFjaGluZS5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjEs
NiArNjEsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8v
IEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPT0gMTA2MAogCiAjZW5kaWYgLy8gRHluYW1pY0xpbmtlckVudmlyb25tZW50
RXh0cmFjdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0
b3IubW0KaW5kZXggYmZjMjcwYy4uNmYzNTI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3Iu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlu
a2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCIK
IAotI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2luY2x1ZGUgIkVudmlyb25tZW50VmFyaWFibGVz
LmgiCiAjaW5jbHVkZSA8bWFjaC1vL2xvYWRlci5oPgpAQCAtMjAxLDQgKzIwMSw0IEBAIHZvaWQg
RHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yOjpnZXRFeHRyYWN0ZWRFbnZpcm9ubWVu
dFZhcmlhYmxlcyhFbnZpcm9uCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8g
QlVJTERJTkdfT05fU05PV19MRU9QQVJECisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuY3BwCmluZGV4IDcyOTc5
ZjguLmJlMGY5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuY3BwCkBAIC0xMzYsNyArMTM2
LDcgQEAgdm9pZCBFbnZpcm9ubWVudFZhcmlhYmxlczo6Y29weUVudmlyb25tZW50VmFyaWFibGVz
KCkKICAgICBtX2Vudmlyb25tZW50UG9pbnRlciA9IG1fZW52aXJvbm1lbnRWYXJpYWJsZXMuZGF0
YSgpOwogfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiBjb25zdCBjaGFyKiBFbnZp
cm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKQogewpA
QCAtMTQ4LDYgKzE0OCw2IEBAIGNvbnN0IGNoYXIqIEVudmlyb25tZW50VmFyaWFibGVzOjpwcmVl
eGlzdGluZ1Byb2Nlc3NUeXBlS2V5KCkKICAgICByZXR1cm4gIldFQktJVF9QUkVFWElTVElOR19Q
Uk9DRVNTX1RZUEUiOwogfQogCi0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaAppbmRleCAz
MzgyOTM5Li5mZjRhYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5oCkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKIAogICAgIGNoYXIqKiBlbnZpcm9ubWVudFBvaW50ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2Vudmlyb25tZW50UG9pbnRlcjsgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZUtl
eSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NUeXBlS2V5KCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggZGM4MzljOC4uZmFiOWMyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNo
ZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIHBpZF90IHByb2Nlc3NJZGVudGlmaWVyID0gMDsKIAog
ICAgIEVudmlyb25tZW50VmFyaWFibGVzIGVudmlyb25tZW50VmFyaWFibGVzOwotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKICAgICBzdGF0aWMgY29uc3QgY2hhciogcHJlZXhpc3RpbmdQcm9j
ZXNzU2VydmljZU5hbWUgPSBlbnZpcm9ubWVudFZhcmlhYmxlcy5nZXQoRW52aXJvbm1lbnRWYXJp
YWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VOYW1lS2V5KCkpOwogICAgIFByb2Nlc3NU
eXBlIHByZWV4aXN0aW5nUHJvY2Vzc1R5cGU7CiAgICAgaWYgKHByZWV4aXN0aW5nUHJvY2Vzc1Nl
cnZpY2VOYW1lKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVu
Y2hQcm9jZXNzKCkKICAgICAgICAgLy8gU3RhcnQgc3VzcGVuZGVkIHNvIHdlIGNhbiBzZXQgdXAg
dGhlIHRlcm1pbmF0aW9uIG5vdGlmaWNhdGlvbiBoYW5kbGVyLgogICAgICAgICBmbGFncyB8PSBQ
T1NJWF9TUEFXTl9TVEFSVF9TVVNQRU5ERUQ7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgYWxsb3dFeGVjdXRhYmxlSGVhcEZsYWcgPSAweDIwMDA7CiAg
ICAgICAgIGlmIChtX2xhdW5jaE9wdGlvbnMuZXhlY3V0YWJsZUhlYXApCiAgICAgICAgICAgICBm
bGFncyB8PSBhbGxvd0V4ZWN1dGFibGVIZWFwRmxhZzsKQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lk
IFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAgICAgICAgcG9zaXhfc3Bhd25h
dHRyX3NldGZsYWdzKCZhdHRyLCBmbGFncyk7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
ICAgIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3RvciBlbnZpcm9ubWVudEV4dHJhY3Rv
cihbW05TQnVuZGxlIG1haW5CdW5kbGVdIGV4ZWN1dGFibGVQYXRoXSwgYXJjaGl0ZWN0dXJlKTsK
ICAgICAgICAgZW52aXJvbm1lbnRFeHRyYWN0b3IuZ2V0RXh0cmFjdGVkRW52aXJvbm1lbnRWYXJp
YWJsZXMoZW52aXJvbm1lbnRWYXJpYWJsZXMpOwogI2VuZGlmCkBAIC0yMTEsNyArMjExLDcgQEAg
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICAgICAgbGlzdGVu
aW5nUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwogICAgICAgICAgICAgcHJvY2Vzc0lkZW50aWZpZXIg
PSAwOwogICAgICAgICB9Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCAyOTA0NTFhLi4zNDg2ZGU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vz
c1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9Q
bHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM1LDcgKzM1LDcgQEAKICNpbXBvcnQgPHNwYXdu
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBUmVtb3RlTGF5ZXJTZXJ2ZXIuaD4KICNlbmRp
ZgogCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGEKIHsKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9O
KQogICAgIHBhcmFtZXRlcnMucGFyZW50UHJvY2Vzc05hbWUgPSBbW05TUHJvY2Vzc0luZm8gcHJv
Y2Vzc0luZm9dIHByb2Nlc3NOYW1lXTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
bWFjaF9wb3J0X3QgcmVuZGVyU2VydmVyUG9ydCA9IFtbQ0FSZW1vdGVMYXllclNlcnZlciBzaGFy
ZWRTZXJ2ZXJdIHNlcnZlclBvcnRdOwogI2Vsc2UKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2
ZXJQb3J0ID0gV0tJbml0aWFsaXplUmVuZGVyU2VydmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDg1NzA5ZWYuLjE3Y2MyZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xOTgxLDcgKzE5ODEsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgbWltZVR5cAogICAgIC8vIEZJWE1FIChidWcgNTkxMTEpOiBkaWRDb21t
aXRMb2FkRm9yRnJhbWUgY29tZXMgdG9vIGxhdGUgd2hlbiByZXN0b3JpbmcgYSBwYWdlIGZyb20g
Yi9mIGNhY2hlLCBtYWtpbmcgdXMgZGlzYWJsZSBzZWN1cmUgZXZlbnQgbW9kZSBpbiBwYXNzd29y
ZCBmaWVsZHMuCiAgICAgLy8gRklYTUUgKGJ1ZyA1OTEyMSk6IEEgbG9hZCBnb2luZyBvbiBpbiBv
bmUgZnJhbWUgc2hvdWxkbid0IGFmZmVjdCB0eXBpbmcgaW4gc2libGluZyBmcmFtZXMuCiAgICAg
bV9wYWdlQ2xpZW50LT5yZXNldFRleHRJbnB1dFN0YXRlKCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBtb3ZlZCBpbnNpZGUgcmVzZXRU
ZXh0SW5wdXRTdGF0ZSgpPwogICAgIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlz
bWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogICAgIG1fcGFnZUNsaWVudC0+ZGlzbWlz
c0RpY3Rpb25hcnlMb29rdXBQYW5lbCgpOwpAQCAtMjU1MSw3ICsyNTUxLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9ydEF0dHJp
YnV0ZXMmIGF0dHIpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFNjcm9sbCgpCiB7CiAgICAg
bV91aUNsaWVudC5wYWdlRGlkU2Nyb2xsKHRoaXMpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiAjZW5k
aWYKIH0KQEAgLTM1MzAsNyArMzUzMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlk
Q3Jhc2goKQogICAgIG1fdG91Y2hFdmVudFF1ZXVlLmNsZWFyKCk7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVU
ZXh0SWdub3JlZCk7CiAgICAgbV9wYWdlQ2xpZW50LT5kaXNtaXNzRGljdGlvbmFyeUxvb2t1cFBh
bmVsKCk7CiAjZW5kaWYKQEAgLTM5MDUsNyArMzkwNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
dWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoYm9vbCYgaXNTaG93aW5nKQogICAgIGlzU2hvd2lu
ZyA9IFRleHRDaGVja2VyOjpzdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoKTsKIH0KIAotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29ycmVjdGlv
blBhbmVsKGludDMyX3QgcGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVw
bGFjZW1lbnRTdHJpbmdzKQogewogICAgIG1fcGFnZUNsaWVudC0+c2hvd0NvcnJlY3Rpb25QYW5l
bCgoQWx0ZXJuYXRpdmVUZXh0VHlwZSlwYW5lbFR5cGUsIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0
cmluZywgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nLCBhbHRlcm5hdGl2ZVJlcGxh
Y2VtZW50U3RyaW5ncyk7CkBAIC0zOTI1LDExICszOTI1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKGludDMyX3QgcmVzcG9uc2VUeXBlLCBjb25z
dCBTdHJpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5yZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNl
KChBdXRvY29ycmVjdGlvblJlc3BvbnNlVHlwZSlyZXNwb25zZVR5cGUsIHJlcGxhY2VkU3RyaW5n
LCByZXBsYWNlbWVudFN0cmluZyk7CiB9Ci0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1
bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
ICAgIGlmICghaXNDbG9zZWQoKSkKICAgICAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpIYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChyZXN1bHQpLCBtX3BhZ2VJRCwg
MCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1
N2FiODZjLi42YzdlNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC05NDksMTIgKzk0OSwxMiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZvaWQgc3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93aW5nKGJvb2wmKTsKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDcwCiAgICAgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGludDMyX3QgcGFuZWxU
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJp
bmdzKTsKICAgICB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCByZWFzb24pOwog
ICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oaW50MzJfdCByZWFzb24sIFN0cmlu
ZyYgcmVzdWx0KTsKICAgICB2b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoaW50MzJf
dCByZXNwb25zZVR5cGUsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRTdHJpbmcpOwotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKIAogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgIHZvaWQgc2hvd0Rp
Y3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mRGljdGF0ZWRUZXh0LCB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDAzNDEy
NzYuLjc4MzhkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjg3LDcgKzI4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2lu
ZygpIC0+IChib29sIGlzU2hvd2luZykKICNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgIyBBdXRvY29ycmVjdGlv
biBtZXNzYWdlcwogICAgIFNob3dDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCBwYW5lbFR5cGUsIFdl
YkNvcmU6OkZsb2F0UmVjdCBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIFN0cmluZyByZXBs
YWNlZFN0cmluZywgU3RyaW5nIHJlcGxhY2VtZW50U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiBhbHRl
cm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKICAgICBEaXNtaXNzQ29ycmVjdGlvblBhbmVsKGlu
dDMyX3QgcmVhc29uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9U
ZXh0Q2hlY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNr
ZXJNYWMubW0KaW5kZXggMjBhNjNlYS4uNmRhOGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
LSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiBAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChXZWJOU1Nw
ZWxsQ2hlY2tlckRldGFpbHMpCiAtIChOU1N0cmluZyAqKWxhbmd1YWdlRm9yV29yZFJhbmdlOihO
U1JhbmdlKXJhbmdlIGluU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBvcnRob2dyYXBoeTooTlNP
cnRob2dyYXBoeSAqKW9ydGhvZ3JhcGh5OwogQGVuZApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMg
dm9pZCBpbml0aWFsaXplU3RhdGUoKQogICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0aWNM
aW5rRGV0ZWN0aW9uRW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIGJvb2xGb3JLZXk6V2ViQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRdOwogICAgIHRl
eHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkID0gW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNU
ZXh0UmVwbGFjZW1lbnRFbmFibGVkXTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICBpZiAoIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktl
eTpXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXSkKICAgICAgICAgdGV4dENo
ZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQgPSBbTlNTcGVs
bENoZWNrZXIgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXTsKICNlbmRpZgpA
QCAtMzcyLDcgKzM3Miw3IEBAIHZvaWQgVGV4dENoZWNrZXI6OnVwZGF0ZVNwZWxsaW5nVUlXaXRo
R3JhbW1hclN0cmluZyhpbnQ2NF90LCBjb25zdCBTdHJpbmcmIGJhZEdyCiAKIHZvaWQgVGV4dENo
ZWNrZXI6OmdldEd1ZXNzZXNGb3JXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3Qg
U3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBOU1N0cmluZyogbGFuZ3Vh
Z2UgPSBuaWw7CiAgICAgTlNPcnRob2dyYXBoeSogb3J0aG9ncmFwaHkgPSBuaWw7CiAgICAgTlNT
cGVsbENoZWNrZXIgKmNoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCBlOTU3OWFiLi42OTMyYjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLm1tCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJ
bnRlcnZhbCBEZWZhdWx0V2F0Y2hkb2dUaW1lckludGVydmFsID0gMTsKIC0gKHZvaWQpX3N0YXJ0
RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0
aW9uOwogQGVuZAogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDw9IDEwNjAKIEBpbnRlcmZhY2UgTlNXaW5kb3coY29udmVydFJlY3RUb1NjcmVlbkZv
ckxlb3BhcmRBbmRTbm93TGVvcGFyZCkKIC0gKE5TUmVjdCljb252ZXJ0UmVjdFRvU2NyZWVuOihO
U1JlY3QpYVJlY3Q7CiBAZW5kCkBAIC0yOTUsMTQgKzI5NSwxNCBAQCBzdGF0aWMgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERhdGEoQ0dJbWFnZVJlZiBzb3VyY2VJ
bWFnZSkKICAgICAgICAgV0tXaW5kb3dTZXRDbGlwUmVjdChbc2VsZiB3aW5kb3ddLCB3aW5kb3dC
b3VuZHMpOwogCiAgICAgICAgIE5TV2luZG93ICp3ZWJXaW5kb3cgPSBbX3dlYlZpZXdQbGFjZWhv
bGRlci5nZXQoKSB3aW5kb3ddOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgLy8gSW4gTGlvbiwgTlNXaW5kb3cgd2ls
bCBhbmltYXRlIGludG8gYW5kIG91dCBvZiBvcmRlck91dCBvcGVyYXRpb25zLiBTdXBwcmVzcyB0
aGF0CiAgICAgICAgIC8vIGJlaGF2aW9yIGhlcmUsIG1ha2luZyBzdXJlIHRvIHJlc2V0IHRoZSBh
bmltYXRpb24gYmVoYXZpb3IgYWZ0ZXJ3YXJkLgogICAgICAgICBOU1dpbmRvd0FuaW1hdGlvbkJl
aGF2aW9yIGFuaW1hdGlvbkJlaGF2aW9yID0gW3dlYldpbmRvdyBhbmltYXRpb25CZWhhdmlvcl07
CiAgICAgICAgIFt3ZWJXaW5kb3cgc2V0QW5pbWF0aW9uQmVoYXZpb3I6TlNXaW5kb3dBbmltYXRp
b25CZWhhdmlvck5vbmVdOwogI2VuZGlmCiAgICAgICAgIFt3ZWJXaW5kb3cgb3JkZXJPdXQ6c2Vs
Zl07Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgICAgICBbd2ViV2luZG93IHNldEFuaW1hdGlvbkJlaGF2aW9yOmFuaW1hdGlv
bkJlaGF2aW9yXTsKICNlbmRpZgogCkBAIC0zNTIsNyArMzUyLDcgQEAgc3RhdGljIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZVdpdGhDb3BpZWREYXRhKENHSW1hZ2VSZWYgc291cmNl
SW1hZ2UpCiAgICAgW3NlbGYgX3VwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbFNjcmVlbl07CiAgICAg
CiAgICAgTlNXaW5kb3cqIHdlYldpbmRvdyA9IFtfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgpIHdp
bmRvd107Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA3MAogICAgIC8vIEluIExpb24sIE5TV2luZG93IHdpbGwgYW5pbWF0ZSBpbnRvIGFu
ZCBvdXQgb2Ygb3JkZXJPdXQgb3BlcmF0aW9ucy4gU3VwcHJlc3MgdGhhdAogICAgIC8vIGJlaGF2
aW9yIGhlcmUsIG1ha2luZyBzdXJlIHRvIHJlc2V0IHRoZSBhbmltYXRpb24gYmVoYXZpb3IgYWZ0
ZXJ3YXJkLgogICAgIE5TV2luZG93QW5pbWF0aW9uQmVoYXZpb3IgYW5pbWF0aW9uQmVoYXZpb3Ig
PSBbd2ViV2luZG93IGFuaW1hdGlvbkJlaGF2aW9yXTsKQEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0
aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERhdGEoQ0dJbWFn
ZVJlZiBzb3VyY2VJbWFnZSkKICAgICB9IGVsc2UKICAgICAgICAgW3dlYldpbmRvdyBvcmRlcldp
bmRvdzpOU1dpbmRvd0JlbG93IHJlbGF0aXZlVG86W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVy
XV07CiAgICAgCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgIFt3ZWJXaW5kb3cgc2V0QW5pbWF0aW9uQmVoYXZpb3I6YW5pbWF0
aW9uQmVoYXZpb3JdOwogI2VuZGlmCiAKQEAgLTQ2MCw3ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCBj
b21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50KFdLRXJyb3JS
ZWYsIHZvaWQqCiAtICh2b2lkKV91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW4KIHsKICAg
ICAvLyBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9uT3B0aW9ucyBpcyBhdmFpbGFibGUgb24gPiAx
MC42IG9ubHk6Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9u
T3B0aW9ucyBvcHRpb25zID0gTlNBcHBsaWNhdGlvblByZXNlbnRhdGlvbkRlZmF1bHQ7CiAgICAg
TlNTY3JlZW4qIGZ1bGxTY3JlZW5TY3JlZW4gPSBbW3NlbGYgd2luZG93XSBzY3JlZW5dOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCmluZGV4
IDQzODE4M2EuLmZjZDAwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNYWMubW0KQEAgLTMzLDcgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZv
cm1QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxzeXMvcGFyYW0uaD4KIAotI2lmIEhBVkUoSE9TVEVE
X0NPUkVfQU5JTUFUSU9OKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQVJlbW90ZUxheWVyU2VydmVy
Lmg+CiAjZW5kaWYKIApAQCAtOTksNyArOTksNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQog
I2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoSE9TVEVE
X0NPUkVfQU5JTUFUSU9OKQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBtYWNoX3Bv
cnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZl
cl0gc2VydmVyUG9ydF07CiAjZWxzZQogICAgIG1hY2hfcG9ydF90IHJlbmRlclNlcnZlclBvcnQg
PSBXS0luaXRpYWxpemVSZW5kZXJTZXJ2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggOTY3MTJiZi4uYzVmZTMzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTYz
LDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAjZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1
cmUKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA4MAogCiBzdGF0aWMgU3RyaW5nIG1hY09TWFZlcnNpb25TdHJpbmcoKQogewpA
QCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgU3RyaW5nIG1hY09TWFZlcnNpb25TdHJpbmcoKQogICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJWQiLCBtYWpvcik7CiB9CiAKLSNlbmRpZiAvLyAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJ
T04pCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAK
IHN0YXRpYyBTdHJpbmcgdXNlclZpc2libGVXZWJLaXRWZXJzaW9uU3RyaW5nKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDJQcmVmaXguaAppbmRleCBlYmMwYTQ5Li40ZGViNjI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZp
eC5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNpZm5kZWYgQlVJ
TERJTkdfT05fU05PV19MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAjZGVmaW5lIEVOQUJMRV9XRUJfUFJPQ0VTU19TQU5EQk9YIDEKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAppbmRleCA3NTk3NjVkLi5kNDBk
Yjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAgLTM4LDcgKzM4
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHV0aWxp
dHk+CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2luY2x1ZGUgIk5l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIgogI2VuZGlmCiAKQEAgLTUwNyw3ICs1MDcsNyBAQCBz
dGF0aWMgTlBFcnJvciBOUE5fR2V0VmFsdWUoTlBQIG5wcCwgTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQgKnZhbHVlKQogICAgICAgICAgICAgKihOUEJvb2wqKXZhbHVlID0gdHJ1ZTsKICAgICAg
ICAgICAgIGJyZWFrOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MCAmJiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAgICAg
IGNhc2UgV0tOVlNhbmRib3hGdW5jdGlvbnM6CiAgICAgICAgIHsKICAgICAgICAgICAgICooV0tO
U2FuZGJveEZ1bmN0aW9ucyAqKil2YWx1ZSA9IG5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21h
Yy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQppbmRleCA3
NzVlM2NhLi5hZmNjNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJv
eEZ1bmN0aW9ucy5tbQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpICYmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2ltcG9ydCAiUGx1
Z2luUHJvY2Vzcy5oIgogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKQEAgLTEwMyw3
ICsxMDMsNyBAQCBOUEVycm9yIFdLTl9FbnRlclNhbmRib3goY29uc3QgY2hhciogcmVhZE9ubHlQ
YXRoc1tdLCBjb25zdCBjaGFyKiByZWFkV3JpdGVQYXRocwogICAgIGlmIChwcm9maWxlLmlzTnVs
bCgpKQogICAgICAgICBleGl0KEVYX05PUEVSTSk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAg
IC8vIFVzZSBwcml2YXRlIHRlbXBvcmFyeSBhbmQgY2FjaGUgZGlyZWN0b3JpZXMuCiAgICAgU3Ry
aW5nIHN5c3RlbURpcmVjdG9yeVN1ZmZpeCA9ICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nl
c3MrIiArIFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLm5ldHNjYXBlUGx1Z2luTW9kdWxlKCktPm1v
ZHVsZSgpLT5idW5kbGVJZGVudGlmaWVyKCk7CiAgICAgc2V0ZW52KCJESVJIRUxQRVJfVVNFUl9E
SVJfU1VGRklYIiwgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5c3RlbURpcmVjdG9yeVN1ZmZp
eCkuZGF0YSgpLCAwKTsKQEAgLTE5MCw2ICsxOTAsNiBAQCBOUEVycm9yIFdLTl9GaWxlU3RvcEFj
Y2Vzc2luZyhjb25zdCBjaGFyKiBwYXRoKQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0K
IAotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKIAogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KSAmJiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXgg
MDNkNTk5ZC4uMDkyZWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMzc1LDcgKzM3
NSw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxk
KEVsZW1lbnQqIGVsZW1lbnQpCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJhc2VNYXJr
ZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZSB0eXBlKSBj
b25zdAogewogICAgIC8vIFRoaXMgcHJldmVudHMgZXJhc2luZyBzcGVsbGluZyBtYXJrZXJzIG9u
IE9TIFggTGlvbiBvciBsYXRlciB0byBtYXRjaCBBcHBLaXQgb24gdGhlc2UgTWFjIE9TIFggdmVy
c2lvbnMuCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICByZXR1cm4g
dHlwZSAhPSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CiAjZWxzZQogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggZDRlZDMxMS4uZmJhZGQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNz
cGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChj
b25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8V2Vi
Q29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRH
cmFtbWFyTGVuZ3RoKSBPVkVSUklERTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJh
Z3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1
bHQ+JiByZXN1bHRzKSBPVkVSUklERTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVT
cGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6
R3JhbW1hckRldGFpbCYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tCmluZGV4IDk5ZmQxY2QuLmViMTA0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KQEAgLTM3LDcgKzM3LDcgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogICAgIAogICAgIGRpc3BhdGNoX29uY2UoJmluaXRPbmNlLCBeewogICAgICAgICBJ
TklUKEFkdmFuY2VEZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24pOwotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICAgICAgSU5JVChDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXdu
V2l0aEJsb2NrKTsKICNlbmRpZgogICAgICAgICBJTklUKENvcHlDRkxvY2FsaXphdGlvblByZWZl
cnJlZE5hbWUpOwpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2Uodm9pZCkKIAogICAgICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKICAgICAgICAgCi0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBJTklUKElPU3VyZmFjZUNvbnRleHRD
cmVhdGUpOwogICAgICAgICBJTklUKElPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZSk7CiAgICAg
ICAgIElOSVQoQ3JlYXRlQ1RUeXBlc2V0dGVyV2l0aFVuaUNoYXJQcm92aWRlckFuZE9wdGlvbnMp
OwpAQCAtMTU2LDIzICsxNTYsMjMgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2
b2lkKQogICAgICAgICBJTklUKENvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpOwog
ICAgICAgICBJTklUKFNldENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7CiAKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDcwCiAgICAgICAgIElOSVQoQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25NYWlu
UXVldWUpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgIElOSVQoR2V0TWFjT1NYVmVyc2lvblN0cmluZyk7
CiAgICAgICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKTsKICNlbmRp
ZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgICAgICBJTklUKENHUGF0aEFkZFJvdW5kZWRSZWN0KTsKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBJTklUKENGVVJMUmVxdWVzdEFsbG93
QWxsUG9zdENhY2hpbmcpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYm
ICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChGaWx0
ZXJJc01hbmFnZWRTZXNzaW9uKTsKICAgICAgICAgSU5JVChGaWx0ZXJDcmVhdGVJbnN0YW5jZSk7
CiAgICAgICAgIElOSVQoRmlsdGVyUmVsZWFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMzdkMWUwNy4uN2Y5YmRmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA5MSw3ICsz
MDkxLDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gcGxhdGZvcm1DYW5IYW5kbGVSZXF1
ZXN0KHJlcXVlc3QpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJuYXRpdmVU
ZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0g
bV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiOWRhYzkxLi5kMjM0
YTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTUyMCw3ICs1MjAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVubWFya0FsbE1pc3NwZWxsaW5n
cygpOwogICAgIHZvaWQgdW5tYXJrQWxsQmFkR3JhbW1hcigpOwotI2lmIFBMQVRGT1JNKE1BQykg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgdm9pZCBoYW5k
bGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IDM4ZjM2YzIuLjc1ZjcyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNzcsNyArMjc3LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgRmluZFpvb21hYmxlQXJlYUZvclBvaW50KFdl
YkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgSGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoU3RyaW5nIHJlc3VsdCkKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW0KaW5kZXggMjJlZWRlOC4uNDNkMzgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNDgxLDcgKzQ4
MSw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCiAKICAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMg
PSBuaWw7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gQXMgY29udGV4dCwg
d2UgYXJlIGdvaW5nIHRvIHVzZSB0aGUgc3Vycm91bmRpbmcgcGFyYWdyYXBoIG9mIHRleHQuCiAg
ICAgVmlzaWJsZVBvc2l0aW9uIHBhcmFncmFwaFN0YXJ0ID0gc3RhcnRPZlBhcmFncmFwaChwb3Np
dGlvbik7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBhcmFncmFwaEVuZCA9IGVuZE9mUGFyYWdyYXBo
KHBvc2l0aW9uKTsKQEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EaWN0
aW9uYXJ5TG9va3VwRm9yU2VsZWN0aW9uKERpY3Rpb25hcnlQb3B1cEluZm86OlR5cGUgdHlwZQog
CiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gbmlsOwogCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgIFZpc2libGVQb3NpdGlvbiBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvbi52
aXNpYmxlU3RhcnQoKTsKICAgICBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uRW5kID0gc2VsZWN0
aW9uLnZpc2libGVFbmQoKTsKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgV2ViUGFnZTo6cGVy
Zm9ybURpY3Rpb25hcnlMb29rdXBGb3JSYW5nZShEaWN0aW9uYXJ5UG9wdXBJbmZvOjpUeXBlIHR5
cGUsIEZyCiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby50eXBlID0gdHlwZTsKICAgICBkaWN0aW9u
YXJ5UG9wdXBJbmZvLm9yaWdpbiA9IEZsb2F0UG9pbnQocmFuZ2VSZWN0LngoKSwgcmFuZ2VSZWN0
LnkoKSArIChzdHlsZS0+Zm9udE1ldHJpY3MoKS5hc2NlbnQoKSAqIHBhZ2VTY2FsZUZhY3Rvcigp
KSk7CiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby5mb250SW5mby5mb250QXR0cmlidXRlRGljdGlv
bmFyeSA9IGZvbnREZXNjcmlwdG9yQXR0cmlidXRlczsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby5vcHRpb25zID0gKENGRGljdGlvbmFyeVJlZilv
cHRpb25zOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGIzOGMyM2MuLmM1MDFlOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
bgpAQCAtOTMsNyArOTMsNyBAQAogKGFsbG93IGZpbGUqCiAgICAgKHN1YnBhdGggIi9wcml2YXRl
L3Zhci9kYi9tZHMvc3lzdGVtIikpCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogKGlmIChwb3NpdGl2
ZT8gKHN0cmluZy1sZW5ndGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9ESVIiKSkpCiAgICAg
KGFsbG93IGZpbGUqIChzdWJwYXRoIChwYXJhbSAiREFSV0lOX1VTRVJfQ0FDSEVfRElSIikpKSkK
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9LZXljaGFp
bkl0ZW1TaGltTWV0aG9kcy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL0tleWNo
YWluSXRlbVNoaW1NZXRob2RzLm1tCmluZGV4IDNmMjI5YTEuLjU3NTlhYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2RzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRo
b2RzLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIktl
eWNoYWluSXRlbVNoaW1NZXRob2RzLmgiCiAKLSNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKSAm
JiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBVU0UoU0VDVVJJVFlfRlJB
TUVXT1JLKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKIAogI2lt
cG9ydCAiQmxvY2tpbmdSZXNwb25zZU1hcC5oIgogI2ltcG9ydCAiU2VjS2V5Y2hhaW5JdGVtUmVx
dWVzdERhdGEuaCIKQEAgLTIyOSw0ICsyMjksNCBAQCB2b2lkIGluaXRpYWxpemVLZXljaGFpbkl0
ZW1TaGltKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoU0VDVVJJ
VFlfRlJBTUVXT1JLKSAmJiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRp
ZiAvLyBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID09IDEwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFj
L1NlY0l0ZW1TaGltTWV0aG9kcy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltTWV0aG9kcy5tbQppbmRleCBjZmUzM2FkLi41MGNiYjU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbU1ldGhvZHMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tCkBAIC0y
Niw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlNlY0l0ZW1TaGltTWV0
aG9kcy5oIgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiAjaW1wb3J0ICJCbG9ja2lu
Z1Jlc3BvbnNlTWFwLmgiCiAjaW1wb3J0ICJTZWNJdGVtUmVxdWVzdERhdGEuaCIKQEAgLTExOSw0
ICsxMTksNCBAQCB2b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbSgpCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCi0jZW5kaWYgLy8gIUJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAorI2VuZGlmIC8v
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KaW5kZXggNjlmNGZiMS4uMGE4YzBh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1t
CkBAIC00NSw3ICs0NSw3IEBACiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHN0
ZGlvLmg+CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICNpbXBvcnQgIktleWNoYWluSXRl
bVNoaW1NZXRob2RzLmgiCiAjZWxzZQogI2ltcG9ydCAiU2VjSXRlbVNoaW1NZXRob2RzLmgiCkBA
IC0xODUsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgLy8gVXNlIHByaXZhdGUgdGVtcG9yYXJ5
IGFuZCBjYWNoZSBkaXJlY3Rvcmllcy4KICAgICBTdHJpbmcgc3lzdGVtRGlyZWN0b3J5U3VmZml4
ID0gImNvbS5hcHBsZS5XZWJQcm9jZXNzKyIgKyBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXI7CiAgICAgc2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHN5c3RlbURpcmVjdG9yeVN1ZmZpeCkuZGF0YSgpLCAwKTsKQEAg
LTI4MSw3ICsyODEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycwogCiB2b2lkIFdlYlByb2Nl
c3M6OmluaXRpYWxpemVTaGltKCkKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAgICBp
bml0aWFsaXplS2V5Y2hhaW5JdGVtU2hpbSgpOwogI2Vsc2UKICAgICBpbml0aWFsaXplU2VjSXRl
bVNoaW0oKTsKQEAgLTI5OSwxNCArMjk5LDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1U
ZXJtaW5hdGUoKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNlY0l0ZW1SZXNwb25zZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTZWNJdGVtUmVzcG9uc2VEYXRh
JiByZXNwb25zZSkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZGlkUmVjZWl2
ZVNlY0l0ZW1SZXNwb25zZShyZXF1ZXN0SUQsIHJlc3BvbnNlKTsKICNlbmRpZgogfQogCiB2b2lk
IFdlYlByb2Nlc3M6OnNlY0tleWNoYWluSXRlbVJlc3BvbnNlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YSYg
cmVzcG9uc2UpCiB7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgZGlkUmVjZWl2ZVNl
Y0tleWNoYWluSXRlbVJlc3BvbnNlKHJlcXVlc3RJRCwgcmVzcG9uc2UpOwogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1t
CmluZGV4IDQ4YWMyZjMuLjFiNjdmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJuX3Qg
Ym9vdHN0cmFwX3JlZ2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwgdWlu
dDY0X3QpOwogI2VuZGlmCiAKQEAgLTczLDcgKzczLDcgQEAgaW50IFdlYlByb2Nlc3NNYWluKGNv
bnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKIAogICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9
IGNvbW1hbmRMaW5lWyJzZXJ2aWNlbmFtZSJdOwogICAgIFN0cmluZyBjbGllbnRFeGVjdXRhYmxl
OwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBjbGllbnRFeGVjdXRhYmxlID0gY29t
bWFuZExpbmVbImNsaWVudC1leGVjdXRhYmxlIl07CiAjZW5kaWYKIApAQCAtODksNyArODksNyBA
QCBpbnQgV2ViUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQogICAg
ICAgICAgICAgcmV0dXJuIDI7CiAgICAgICAgIH0KICAgICB9Ci0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgIGVsc2UgewogICAgICAgICBtYWNoX3BvcnRfbmFtZV90IHB1Ymxpc2hlZFNl
cnZpY2U7CiAgICAgICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNI
X1BPUlRfUklHSFRfUkVDRUlWRSwgJnB1Ymxpc2hlZFNlcnZpY2UpOwpAQCAtMTQxLDcgKzE0MSw3
IEBAIGludCBXZWJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCiAg
ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICB9CiAgICAgfQotI2VuZGlm
IC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogICAgIFN0cmluZyBsb2NhbGl6YXRp
b24gPSBjb21tYW5kTGluZVsibG9jYWxpemF0aW9uIl07CiAgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBjZkxvY2FsaXphdGlvbihBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
KDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVW5pQ2hhcio+KGxvY2FsaXphdGlvbi5jaGFyYWN0
ZXJzKCkpLCBsb2NhbGl6YXRpb24ubGVuZ3RoKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0KaW5kZXggNmQ2OTQ0MS4uOTkxNjZlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0KQEAg
LTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAKIGV4dGVybiAiQyIgdm9pZCBXZWJLaXRXZWJQcm9jZXNzU2VjSXRlbVNoaW1J
bml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNrcyYpOwogCkBAIC03
MCw5ICs3MCw5IEBAIHZvaWQgV2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5pdGlhbGl6ZShj
b25zdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MmCiAgICAgc2VjSXRlbVNoaW1DYWxs
YmFja3MgPSBjYWxsYmFja3M7CiB9CiAKLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKIAogZXh0ZXJuICJDIiB2b2lkIFdl
YktpdFdlYlByb2Nlc3NLZXljaGFpbkl0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNz
S2V5Y2hhaW5JdGVtU2hpbUNhbGxiYWNrcyYpOwogCkBAIC0xMjEsNiArMTIxLDYgQEAgdm9pZCBX
ZWJLaXRXZWJQcm9jZXNzS2V5Y2hhaW5JdGVtU2hpbUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vz
c0tleWNoYWluSXRlbVNoaW0KICAgICBrZXljaGFpbkl0ZW1TaGltQ2FsbGJhY2tzID0gY2FsbGJh
Y2tzOwogfQogCi0jZW5kaWYgLy8gZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
ZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGEwMzk4MTUuLjE5ZmU0NDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wNy0xMSAgTWFy
ayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgorCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9i
LzkxMDE1PiBSZW1vdmUgQlVJTERJTkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9yIG9m
IHN5c3RlbSBhdmFpbGFiaWxpdHkgbWFjcm9zCisKKyAgICAgICAgVGhpcyByZW1vdmFsIHdhcyBo
YW5kbGVkIGJ5IGEgc2NyaXB0IHRoYXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGlu
IHRvIHRoZSBlcXVpdmFsZW50IGNoZWNrcworICAgICAgICB1c2luZyB0aGUgc3lzdGVtIGF2YWls
YWJpbGl0eSBtYWNyb3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jZi9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9DaGVja2VkTWFsbG9jLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvbWFjL0luamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY3RpdmF0ZUZvbnRzLm1tOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxl
TWFjLm1tOgorCiAyMDEyLTA3LTExICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmll
cnMuY29tPgogCiAgICAgICAgIFt3eF0gVW5yZXZpZXdlZCBidWlsZCBmaXguIEFkZCBuZXcgZGly
ZWN0b3JpZXMgYW5kIGEgbmV3IExheW91dFRlc3RDb250cm9sbGVyIG1ldGhvZC4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jZi9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwCmluZGV4IDMz
ZGMyOGEuLjFmN2YxNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NmL1dlYkFy
Y2hpdmVEdW1wU3VwcG9ydC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2YvV2ViQXJj
aGl2ZUR1bXBTdXBwb3J0LmNwcApAQCAtNDQsNyArNDQsNyBAQCBDRlR5cGVJRCBDRlVSTFJlc3Bv
bnNlR2V0VHlwZUlEKHZvaWQpOwogCiBzdGF0aWMgdm9pZCBjb252ZXJ0TUlNRVR5cGUoQ0ZNdXRh
YmxlU3RyaW5nUmVmIG1pbWVUeXBlKQogewotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICAvLyBXb3JrYXJv
dW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNTUzOTgyND4gb24gTGVvcGFyZAogICAgIGlmIChDRlN0
cmluZ0NvbXBhcmUobWltZVR5cGUsIENGU1RSKCJ0ZXh0L3htbCIpLCBrQ0ZDb21wYXJlQW5jaG9y
ZWQgfCBrQ0ZDb21wYXJlQ2FzZUluc2Vuc2l0aXZlKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKICAg
ICAgICAgQ0ZTdHJpbmdSZXBsYWNlQWxsKG1pbWVUeXBlLCBDRlNUUigiYXBwbGljYXRpb24veG1s
IikpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIENGU3RyaW5nUmVmIGNyZWF0ZVhNTFN0cmluZ0Zyb21X
ZWJBcmNoaXZlRGF0YShDRkRhdGFSZWYgd2ViQXJjaGl2ZURhdGEpCiAgICAgQ0ZFcnJvclJlZiBl
cnJvciA9IDA7CiAgICAgQ0ZQcm9wZXJ0eUxpc3RGb3JtYXQgZm9ybWF0ID0ga0NGUHJvcGVydHlM
aXN0QmluYXJ5Rm9ybWF0X3YxXzA7CiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgQ0ZJbmRleCBieXRl
c0NvdW50ID0gQ0ZEYXRhR2V0TGVuZ3RoKHdlYkFyY2hpdmVEYXRhKTsKICAgICBSZXRhaW5QdHI8
Q0ZSZWFkU3RyZWFtUmVmPiByZWFkU3RyZWFtKEFkb3B0Q0YsIENGUmVhZFN0cmVhbUNyZWF0ZVdp
dGhCeXRlc05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkRhdGFHZXRCeXRlUHRyKHdlYkFy
Y2hpdmVEYXRhKSwgYnl0ZXNDb3VudCwga0NGQWxsb2NhdG9yTnVsbCkpOwogICAgIENGUmVhZFN0
cmVhbU9wZW4ocmVhZFN0cmVhbS5nZXQoKSk7CkBAIC0yMDgsNyArMjA4LDcgQEAgQ0ZTdHJpbmdS
ZWYgY3JlYXRlWE1MU3RyaW5nRnJvbVdlYkFyY2hpdmVEYXRhKENGRGF0YVJlZiB3ZWJBcmNoaXZl
RGF0YSkKIAogICAgIGVycm9yID0gMDsKIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiB4bWxEYXRhKEFkb3B0Q0YsIENGUHJvcGVydHlMaXN0Q3JlYXRlWE1MRGF0YShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBwcm9wZXJ0eUxpc3QuZ2V0KCkpKTsKICNlbHNlCiAgICAgUmV0
YWluUHRyPENGRGF0YVJlZj4geG1sRGF0YShBZG9wdENGLCBDRlByb3BlcnR5TGlzdENyZWF0ZURh
dGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcHJvcGVydHlMaXN0LmdldCgpLCBrQ0ZQcm9wZXJ0eUxp
c3RYTUxGb3JtYXRfdjFfMCwgMCwgJmVycm9yKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQ2hlY2tlZE1hbGxvYy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
Q2hlY2tlZE1hbGxvYy5jcHAKaW5kZXggOGJkNTNlNS4uYjU2Y2IyOCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxsb2MuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9DaGVja2VkTWFsbG9jLmNwcApAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMg
dm9pZCogY2hlY2tlZFJlYWxsb2MobWFsbG9jX3pvbmVfdCogem9uZSwgdm9pZCogcHRyLCBzaXpl
X3Qgc2l6ZSkKICAgICByZXR1cm4gc2F2ZWRSZWFsbG9jKHpvbmUsIHB0ciwgc2l6ZSk7CiB9CiAK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiBzdGF0aWMgdm1fcHJvdF90IHByb3RlY3Rpb25PZlJlZ2lvbihtYWNoX3ZtX2FkZHJlc3Nf
dCBhZGRyZXNzKQogewogICAgIG1hY2hfdm1fc2l6ZV90IHJlZ2lvblNpemUgPSAwOwpAQCAtNzEs
NyArNzEsNyBAQCB2b2lkIG1ha2VMYXJnZU1hbGxvY0ZhaWxTaWxlbnRseSgpCiB7CiAgICAgbWFs
bG9jX3pvbmVfdCogem9uZSA9IG1hbGxvY19kZWZhdWx0X3pvbmUoKTsKIAotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBtYWNo
X3ZtX2FkZHJlc3NfdCBwYWdlU3RhcnQgPSByZWludGVycHJldF9jYXN0PHZtX2FkZHJlc3NfdD4o
em9uZSkgJiBzdGF0aWNfY2FzdDx2bV9zaXplX3Q+KH4oZ2V0cGFnZXNpemUoKSAtIDEpKTsKICAg
ICB2bV9wcm90X3QgaW5pdGlhbFByb3RlY3Rpb24gPSBwcm90ZWN0aW9uT2ZSZWdpb24ocGFnZVN0
YXJ0KTsKIApAQCAtODUsNyArODUsNyBAQCB2b2lkIG1ha2VMYXJnZU1hbGxvY0ZhaWxTaWxlbnRs
eSgpCiAgICAgem9uZS0+bWFsbG9jID0gY2hlY2tlZE1hbGxvYzsKICAgICB6b25lLT5yZWFsbG9j
ID0gY2hlY2tlZFJlYWxsb2M7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKG1hY2hfdm1fcHJvdGVjdChtYWNoX3Rh
c2tfc2VsZigpLCBwYWdlU3RhcnQsIGxlbiwgMCwgaW5pdGlhbFByb3RlY3Rpb24pKQogICAgICAg
ICBDUkFTSCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggZGQwZWZmNC4uYWJiYTUzNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyB2b2lkIGFjdGl2
YXRlVGVzdGluZ0ZvbnRzKCkKICAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmIiwK
ICAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI4MDAudHRmIiwKICAgICAgICAgIldlYktpdFdl
aWdodFdhdGNoZXI5MDAudHRmIiwKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAg
ICAgICAgICJTYW1wbGVGb250LnNmb250IiwKICNlbmRpZgogICAgICAgICAwCkBAIC01OTAsNyAr
NTkwLDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAj
ZW5kaWYKIAogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShDSFJPTUlVTSkK
ICAgICBbZGVmYXVsdHMgc2V0Qm9vbDpOTyBmb3JLZXk6QCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJs
ZWQiXTsKICNlbHNlCiAgICAgW2RlZmF1bHRzIHNldEJvb2w6Tk8gZm9yS2V5OkAiQXBwbGVTY3Jv
bGxBbmltYXRpb25FbmFibGVkIl07CkBAIC02NTUsNyArNjU1LDcgQEAgc3RhdGljIHZvaWQgcmVz
ZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgLy8gU28sIHR1cm4gaXQgb2ZmIGZv
ciBub3csIGJ1dCB3ZSBtaWdodCB3YW50IHRvIHR1cm4gaXQgYmFjayBvbiBzb21lIGRheS4KICAg
ICBbcHJlZmVyZW5jZXMgc2V0VXNlc1BhZ2VDYWNoZTpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNl
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOllFU107Ci0jaWYgVVNFKENBKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgVVNFKENBKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzpZ
RVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOk5PXTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlRHJhZ2dpbmdJbmZvLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlRHJhZ2dpbmdJbmZvLm1tCmluZGV4IGI3MjljZjQuLmI2YjIyYzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0K
QEAgLTEwNSw3ICsxMDUsNyBAQAogICAgIHJldHVybiBuaWw7CiB9CiAKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAtIChOU0RyYWdn
aW5nRm9ybWF0aW9uKWRyYWdnaW5nRm9ybWF0aW9uCiB7CiAgICAgcmV0dXJuIE5TRHJhZ2dpbmdG
b3JtYXRpb25EZWZhdWx0OwpAQCAtMTQwLDcgKzE0MCw3IEBACiB7CiAgICAgLy8gSWdub3JlZC4K
IH0KLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IGYzNjBjMDYuLjU0Zjg3NTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0KQEAgLTEwMzEsNyArMTAzMSw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldFdlYlZpZXdFZGl0YWJsZShib29sIGVkaXRhYmxlKQogCiBzdGF0aWMgTlNTdHJpbmcgKlN5
bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1vZGUgPSBAIkR1bXBSZW5kZXJUcmVlU3luY2hyb25vdXNM
b2FkZXJSdW5Mb29wTW9kZSI7CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8
IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogQHByb3RvY29sIE5TVVJMQ29ubmVjdGlvbkRlbGVnYXRl
IDxOU09iamVjdD4KIEBlbmQKICNlbmRpZgpAQCAtMTEwNyw3ICsxMTA3LDcgQEAgc3RhdGljIE5T
U3RyaW5nICpTeW5jaHJvbm91c0xvYWRlclJ1bkxvb3BNb2RlID0gQCJEdW1wUmVuZGVyVHJlZVN5
bmNocm9ub3VzTG9hZGUKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNl
c3Npb24oSlNTdHJpbmdSZWYgdXJsLCBKU1N0cmluZ1JlZiB1c2VybmFtZSwgSlNTdHJpbmdSZWYg
cGFzc3dvcmQpCiB7CiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS83ODgwNjk5Pi4KLSNpZm5k
ZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA2MAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdXJsU3RyaW5nQ0YoQWRvcHRD
RiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdXJsKSk7CiAgICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiB1c2VybmFtZUNGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHVzZXJuYW1lKSk7CiAgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBwYXNzd29yZENGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHBhc3N3b3JkKSk7CkBAIC0xMTM1LDcgKzExMzUsNyBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgbWluaW11
bVRpbWVySW50ZXJ2YWwpCiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRleHREaXJl
Y3Rpb24oSlNTdHJpbmdSZWYgZGlyZWN0aW9uTmFtZSkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBpZiAoSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhkaXJlY3Rpb25OYW1lLCAibHRyIikpCiAgICAgICAgIFtbbWFpbkZyYW1l
IHdlYlZpZXddIG1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0OjBdOwogICAgIGVs
c2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoZGlyZWN0aW9uTmFtZSwgInJ0bCIp
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xs
ZXIubSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KaW5k
ZXggYWZlYjE2ZS4uOTFkYmQ4NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1RleHRJbnB1dENvbnRyb2xsZXIubQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4
dElucHV0Q29udHJvbGxlci5tCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbXBvcnQgIkR1bXBSZW5k
ZXJUcmVlTWFjLmgiCiAjaW1wb3J0IDxBcHBLaXQvTlNJbnB1dE1hbmFnZXIuaD4KLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAjZGVmaW5lIFNVUFBPUlRfRElDVEFUSU9OX0FMVEVS
TkFUSVZFUwogI2ltcG9ydCA8QXBwS2l0L05TVGV4dEFsdGVybmF0aXZlcy5oPgogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9JbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXJNYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9JbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXJNYWMubW0KaW5kZXggNGRkNGVmMC4uOTY1YmViNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL0luamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbQpAQCAtNDAsNyAr
NDAsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXpl
KCkKICAgICBOU0RpY3Rpb25hcnkgKmRpY3QgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRo
T2JqZWN0c0FuZEtleXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoSW50ZWdlcjo0XSwgICBAIkFwcGxlQW50aUFsaWFzaW5nVGhyZXNob2xkIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnRlZ2VyOjBdLCAgIEAi
QXBwbGVGb250U21vb3RoaW5nIiwKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShDSFJPTUlVTSkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JN
KENIUk9NSVVNKQogICAgICAgICAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6Tk9dLCAgICAgQCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiLAogI2Vsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICAgIEAi
QXBwbGVTY3JvbGxBbmltYXRpb25FbmFibGVkIiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjdGl2YXRlRm9udHMubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY3RpdmF0ZUZvbnRzLm1tCmluZGV4IDMy
MGIyOGEuLjAxZDc5MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjdGl2YXRlRm9udHMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWN0aXZhdGVGb250cy5tbQpAQCAtMjM0LDcgKzIzNCw3IEBA
IHZvaWQgYWN0aXZhdGVGb250cygpCiAgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0
ZiIsCiAgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCiAgICAgICAgICJXZWJL
aXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICAiU2FtcGxlRm9udC5zZm9udCIsCiAj
ZW5kaWYKICAgICAgICAgMApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQppbmRleCA0MTkwNjRm
Li45OTZhY2JiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQpAQCAtMzksNyArMzksNyBA
QCB2b2lkIEluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRpYWxpemUoV0tUeXBlUmVmKQogICAg
IE5TRGljdGlvbmFyeSAqZGljdCA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Rz
QW5kS2V5czoKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnRlZ2VyOjRdLCAgIEAiQXBw
bGVBbnRpQWxpYXNpbmdUaHJlc2hvbGQiLAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dGVnZXI6MF0sICAgQCJBcHBsZUZvbnRTbW9vdGhpbmciLAotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRG
T1JNKENIUk9NSVVNKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MCAmJiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpOT10sICAgICBAIk5TU2Nyb2xsQW5pbWF0aW9uRW5hYmxlZCIsCiAjZWxzZQogICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgICAgQCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVu
YWJsZWQiLAotLSAKMS43LjkuNiAoQXBwbGUgR2l0LTMxLjEpCgo=
</data>
<flag name="review"
          id="160320"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="160347"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151790</attachid>
            <date>2012-07-11 14:58:17 -0700</date>
            <delta_ts>2012-07-11 15:59:23 -0700</delta_ts>
            <desc>Part 2 - Fix the few cases that wanted to check what SDK we&apos;re building against</desc>
            <filename>0002-Switch-a-few-cases-that-care-about-the-SDK-over-to-c.patch</filename>
            <type>text/plain</type>
            <size>7716</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSBiNDhhOTY3ZmRhZTIxNzY4ZmI3NGY5MTI4ZjQ0MGM2NGYxNjdmNDQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogVHVl
LCAxMCBKdWwgMjAxMiAxNzozODozMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBTd2l0Y2gg
YSBmZXcgY2FzZXMgdGhhdCBjYXJlIGFib3V0IHRoZSBTREsgb3ZlciB0bwogY2hlY2tpbmcgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIHNvIHRoYXQgdGhpbmdzCiBidWlsZC4KClBhcnQg
b2YgPGh0dHA6Ly93ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdF
VElORyBtYWNyb3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgoqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDogVGhlIFNESyB3ZSdyZSBidWlsZGluZyBhZ2Fp
bnN0IGRldGVybWluZXMgd2hldGhlciB0aGUgY29uc3RhbnQgaXMgYXZhaWxhYmxlLgoqIHBsYXRm
b3JtL21hYy9FbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaDogIFRoZSBTREsgd2UncmUgYnVpbGRp
bmcgYWdhaW5zdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb3RvY29scyBhcmUgZGVjbGFyZWQu
CiogcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg6IFRoZSBTREsgd2UncmUgYnVp
bGRpbmcgYWdhaW5zdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbnN0YW50cyBhbmQgbWV0aG9k
IGFyZQphdmFpbGFibGUuCiogcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tOiBUaGUgU0RL
IHdlJ3JlIGJ1aWxkaW5nIGFnYWluc3QgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBo
YXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkLgoKU291cmNlL1dURjoKCiogd3RmL0Zhc3RNYWxsb2Mu
Y3BwOgooV1RGOjpUQ01hbGxvY19UaHJlYWRDYWNoZTo6Q3JlYXRlQ2FjaGVJZk5lY2Vzc2FyeSk6
IFRoZSBTREsgd2UncmUgYnVpbGRpbmcgYWdhaW5zdCBkZXRlcm1pbmVzIGhvdyBtYW55IGVsZW1l
bnRzCnRoZSBzdHJ1Y3R1cmUgaXMgZGVjbGFyZWQgYXMgaGF2aW5nLgotLS0KIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKysr
KysKIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTQgKysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAgICAgIHwgICAgMiArLQogLi4uL3BsYXRmb3JtL21hYy9FbXB0eVBy
b3RvY29sRGVmaW5pdGlvbnMuaCAgICAgICAgfCAgICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oIHwgICAgNCArKy0tCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0gICAgICB8ICAgIDIgKy0KIDcgZmls
ZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5YTg1
YjkuLjRhY2YyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTItMDctMTEgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KIAorICAgICAgICBTd2l0Y2ggYSBmZXcgY2FzZXMgdGhhdCBjYXJl
IGFib3V0IHRoZSBTREsgb3ZlciB0byBjaGVja2luZyBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FM
TE9XRUQgc28gdGhhdCB0aGluZ3MgYnVpbGQuCisKKyAgICAgICAgUGFydCBvZiA8aHR0cDovL3dl
YmtpdC5vcmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBp
biBmYXZvciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAg
ICAgICAoV1RGOjpUQ01hbGxvY19UaHJlYWRDYWNoZTo6Q3JlYXRlQ2FjaGVJZk5lY2Vzc2FyeSk6
IFRoZSBTREsgd2UncmUgYnVpbGRpbmcgYWdhaW5zdCBkZXRlcm1pbmVzIGhvdyBtYW55IGVsZW1l
bnRzCisgICAgICAgIHRoZSBzdHJ1Y3R1cmUgaXMgZGVjbGFyZWQgYXMgaGF2aW5nLgorCisyMDEy
LTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKICAgICAgICAgPGh0dHA6Ly93
ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBtYWNyb3Mg
aW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKIAogICAgICAgICBUaGlzIHJl
bW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xhdGVzIHRoZSByZWxldmFu
dCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9GYXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCmlu
ZGV4IGY0MGFkYmYuLjAwODNmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxs
b2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC00NjU0LDEwICs0
NjU0LDEwIEBAIGV4dGVybiAiQyIgewogbWFsbG9jX2ludHJvc3BlY3Rpb25fdCBqc2NvcmVfZmFz
dG1hbGxvY19pbnRyb3NwZWN0aW9uID0geyAmRmFzdE1hbGxvY1pvbmU6OmVudW1lcmF0ZSwgJkZh
c3RNYWxsb2Nab25lOjpnb29kU2l6ZSwgJkZhc3RNYWxsb2Nab25lOjpjaGVjaywgJkZhc3RNYWxs
b2Nab25lOjpwcmludCwKICAgICAmRmFzdE1hbGxvY1pvbmU6OmxvZywgJkZhc3RNYWxsb2Nab25l
Ojpmb3JjZUxvY2ssICZGYXN0TWFsbG9jWm9uZTo6Zm9yY2VVbmxvY2ssICZGYXN0TWFsbG9jWm9u
ZTo6c3RhdGlzdGljcwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDYwIHx8IE9TKElPUykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTA2
MCB8fCBPUyhJT1MpCiAgICAgLCAwIC8vIHpvbmVfbG9ja2VkIHdpbGwgbm90IGJlIGNhbGxlZCBv
biB0aGUgem9uZSB1bmxlc3MgaXQgYWR2ZXJ0aXNlcyBpdHNlbGYgYXMgdmVyc2lvbiBmaXZlIG9y
IGhpZ2hlci4KICNlbmRpZgotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MCB8fCBPUyhJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEw
NzAgfHwgT1MoSU9TKQogICAgICwgMCwgMCwgMCwgMCAvLyBUaGVzZSBtZW1iZXJzIHdpbGwgbm90
IGJlIHVzZWQgdW5sZXNzIHRoZSB6b25lIGFkdmVydGlzZXMgaXRzZWxmIGFzIHZlcnNpb24gc2V2
ZW4gb3IgaGlnaGVyLgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjE0MWRhLi4xZjY3ZDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTItMDctMTEgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KIAorICAgICAgICBTd2l0Y2ggYSBmZXcgY2FzZXMgdGhhdCBjYXJlIGFib3V0
IHRoZSBTREsgb3ZlciB0byBjaGVja2luZyBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQg
c28gdGhhdCB0aGluZ3MgYnVpbGQuCisKKyAgICAgICAgUGFydCBvZiA8aHR0cDovL3dlYmtpdC5v
cmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZv
ciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwOiBUaGUgU0RLIHdlJ3JlIGJ1aWxkaW5nIGFnYWluc3QgZGV0ZXJtaW5lcyB3
aGV0aGVyIHRoZSBjb25zdGFudCBpcyBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oOiAgVGhlIFNESyB3ZSdyZSBidWlsZGluZyBhZ2Fp
bnN0IGRldGVybWluZXMgd2hldGhlciB0aGUgcHJvdG9jb2xzIGFyZSBkZWNsYXJlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaDogVGhlIFNESyB3ZSdyZSBi
dWlsZGluZyBhZ2FpbnN0IGRldGVybWluZXMgd2hldGhlciB0aGUgY29uc3RhbnRzIGFuZCBtZXRo
b2QgYXJlCisgICAgICAgIGF2YWlsYWJsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2hhcmVk
VGltZXJNYWMubW06IFRoZSBTREsgd2UncmUgYnVpbGRpbmcgYWdhaW5zdCBkZXRlcm1pbmVzIHdo
ZXRoZXIgdGhlIGZ1bmN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQuCisKKzIwMTItMDct
MTEgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KKwogICAgICAgICA8aHR0cDovL3dlYmtp
dC5vcmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBm
YXZvciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcwogCiAgICAgICAgIFRoaXMgcmVtb3Zh
bCB3YXMgaGFuZGxlZCBieSBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1h
Y3JvcyBpbiB0byB0aGUgZXF1aXZhbGVudCBjaGVja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCA5
NzIzNzQxLi44Y2UzZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC01NCw3ICs1NCw3IEBACiAK
ICNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
IAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDYwCiAvLyBCdWlsZGluZyBvbiAxMC42IG9y
IGxhdGVyOiBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtIGlzIGRlZmluZWQgaW4gdGhlIENHSW50ZXJw
b2xhdGlvblF1YWxpdHkgZW51bS4KICNkZWZpbmUgSEFWRV9DR19JTlRFUlBPTEFUSU9OX01FRElV
TSAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0
eVByb3RvY29sRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0
eVByb3RvY29sRGVmaW5pdGlvbnMuaAppbmRleCBmZTYzNDY4Li42NWEzNWQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERlZmluaXRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9u
cy5oCkBAIC0yOSw3ICsyOSw3IEBACiBAcHJvdG9jb2wgTkFNRSA8TlNPYmplY3Q+IFwKIEBlbmQK
IAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA9PSAxMDUwCiAKIEVNUFRZX1BST1RPQ09MKE5TVGFi
bGVWaWV3RGF0YVNvdXJjZSkKIEVNUFRZX1BST1RPQ09MKE5TVGFibGVWaWV3RGVsZWdhdGUpCkBA
IC0zOCw3ICszOCw3IEBAIEVNUFRZX1BST1RPQ09MKE5TQW5pbWF0aW9uRGVsZWdhdGUpCiAKICNl
bmRpZgogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDw9IDEwNjAKIAogRU1QVFlfUFJPVE9DT0wo
TlNVUkxDb25uZWN0aW9uRGVsZWdhdGUpCiBFTVBUWV9QUk9UT0NPTChOU1VSTERvd25sb2FkRGVs
ZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxl
ckltcERldGFpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1w
RGV0YWlscy5oCmluZGV4IDFlMWM2Y2IuLjVlMmUxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKIC8vIFB1YmxpYyBBUElzIG5vdCBhdmFpbGFibGUgb24g
dmVyc2lvbnMgb2YgTWFjIG9uIHdoaWNoIHdlIGJ1aWxkCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA8PSAxMDYwCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
IDw9IDEwNjAKIGVudW0gewogICAgIE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSAgICAgICA9IDAsCiAg
ICAgTlNTY3JvbGxlclN0eWxlT3ZlcmxheSAgICAgID0gMQpAQCAtNDQsNyArNDQsNyBAQCBlbnVt
IHsKIHR5cGVkZWYgTlNJbnRlZ2VyIE5TU2Nyb2xsZXJLbm9iU3R5bGU7CiAjZW5kaWYKIAotI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA8PSAxMDYwCiBAaW50ZXJmYWNlIE5TU2Nyb2xsZXIoTlNPYmpl
Y3QpCiArIChOU1Njcm9sbGVyU3R5bGUpcHJlZmVycmVkU2Nyb2xsZXJTdHlsZTsKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbQppbmRleCAxODk4
M2Q5Li5mYjJmMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hh
cmVkVGltZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRp
bWVyTWFjLm1tCkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBDRlJ1bkxvb3BUaW1lclJlZiBzaGFy
ZWRUaW1lcjsKIHN0YXRpYyB2b2lkICgqc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwogc3Rh
dGljIHZvaWQgdGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwogCi0jaWYgIWRl
ZmluZWQoSU9LSVRfV0lUSE9VVF9MSUJESVNQQVRDSCkgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDYwCisjaWYgIWRlZmluZWQoSU9LSVRfV0lUSE9VVF9MSUJESVNQQVRD
SCkgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID09IDEwNjAKIGV4dGVybiAiQyIg
dm9pZCBJT05vdGlmaWNhdGlvblBvcnRTZXREaXNwYXRjaFF1ZXVlKElPTm90aWZpY2F0aW9uUG9y
dFJlZiBub3RpZnksIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUpOwogI2VuZGlmCiAKLS0gCjEuNy45
LjYgKEFwcGxlIEdpdC0zMS4xKQoK
</data>
<flag name="review"
          id="160321"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151791</attachid>
            <date>2012-07-11 14:58:43 -0700</date>
            <delta_ts>2012-07-11 15:57:49 -0700</delta_ts>
            <desc>Part 3 - Remove the macros</desc>
            <filename>0003-Replace-definitions-of-BUILDING_ON-TARGETING-macros-.patch</filename>
            <type>text/plain</type>
            <size>6773</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSA4MTdkNjljMTY0ODQ1Zjg0ZGM5MjViYWZhYTRmNTVmOGE0NjJhZDJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogVHVl
LCAxMCBKdWwgMjAxMiAxNzo0NjoyMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBSZXBsYWNl
IGRlZmluaXRpb25zIG9mIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3Jvcwogd2l0aCBtYWNy
b3MgdGhhdCB3aWxsIGVycm9yIHdoZW4gdXNlZC4KClBhcnQgb2YgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBtYWNyb3MgaW4gZmF2b3Ig
b2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KClNvdXJjZS9XVEY6CgoqIHd0Zi9QbGF0Zm9ybS5oOgoKVG9vbHM6CgoqIER1bXBSZW5kZXJU
cmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuaDogUmVtb3ZlIHRoZSBtYWNyb3Mg
Y29tcGxldGVseSBmcm9tIGhlcmUgc2luY2UKdGhleSdyZSBjb21wbGV0ZWx5IHVudXNlZCBpbiBU
ZXN0TmV0c2NhcGVQbHVnSW4uCiogRHVtcFJlbmRlclRyZWUvY29uZmlnLmg6Ci0tLQogU291cmNl
L1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKysr
KysKIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyOCArKysrKysrKystLS0tLS0tLS0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysrKysrKwogLi4uL1Rlc3ROZXRzY2FwZVBs
dWdJbi9QbHVnaW5PYmplY3QuaCAgICAgICAgICAgICAgfCAgICA4IC0tLS0tLQogVG9vbHMvRHVt
cFJlbmRlclRyZWUvY29uZmlnLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysr
Ky0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwppbmRleCA0YWNmMjA3Li44NTcyZDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTA3LTEx
ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSBkZWZpbml0
aW9ucyBvZiBCVUlMRElOR19PTiAvIFRBUkdFVElORyBtYWNyb3Mgd2l0aCBtYWNyb3MgdGhhdCB3
aWxsIGVycm9yIHdoZW4gdXNlZC4KKworICAgICAgICBQYXJ0IG9mIDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzkxMDE1PiBSZW1vdmUgQlVJTERJTkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9y
IG9mIHN5c3RlbSBhdmFpbGFiaWxpdHkgbWFjcm9zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKKzIwMTItMDctMTEg
IE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KKwogICAgICAgICBTd2l0Y2ggYSBmZXcgY2Fz
ZXMgdGhhdCBjYXJlIGFib3V0IHRoZSBTREsgb3ZlciB0byBjaGVja2luZyBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgc28gdGhhdCB0aGluZ3MgYnVpbGQuCiAKICAgICAgICAgUGFydCBv
ZiA8aHR0cDovL3dlYmtpdC5vcmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VU
SU5HIG1hY3JvcyBpbiBmYXZvciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggN2M3NjIzNy4uMTNkYTE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0zMzQsMjEgKzMzNCwx
OSBAQAogI2RlZmluZSBXVEZfT1NfSU9TIDEKICNlbGlmIE9TKERBUldJTikgJiYgZGVmaW5lZChU
QVJHRVRfT1NfTUFDKSAmJiBUQVJHRVRfT1NfTUFDCiAjZGVmaW5lIFdURl9PU19NQUNfT1NfWCAx
Ci0vKiBGSVhNRTogQlVJTERJTkdfT05fLi4sIGFuZCBUQVJHRVRJTkcuLi4gbWFjcm9zIHNob3Vs
ZCBiZSBmb2xkZWQgaW50byB0aGUgT1MoKSBzeXN0ZW0gKi8KLSNpZiAhZGVmaW5lZChNQUNfT1Nf
WF9WRVJTSU9OXzEwXzYpIHx8IE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCBNQUNfT1Nf
WF9WRVJTSU9OXzEwXzYKLSNkZWZpbmUgQlVJTERJTkdfT05fTEVPUEFSRCAxCi0jZWxpZiAhZGVm
aW5lZChNQUNfT1NfWF9WRVJTSU9OXzEwXzcpIHx8IE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPCBNQUNfT1NfWF9WRVJTSU9OXzEwXzcKLSNkZWZpbmUgQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEIDEKLSNlbGlmICFkZWZpbmVkKE1BQ19PU19YX1ZFUlNJT05fMTBfOCkgfHwgTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA8IE1BQ19PU19YX1ZFUlNJT05fMTBfOAotI2RlZmluZSBCVUlM
RElOR19PTl9MSU9OIDEKLSNlbmRpZgotI2lmICFkZWZpbmVkKE1BQ19PU19YX1ZFUlNJT05fMTBf
NikgfHwgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCBNQUNfT1NfWF9WRVJTSU9OXzEw
XzYKLSNkZWZpbmUgVEFSR0VUSU5HX0xFT1BBUkQgMQotI2VsaWYgIWRlZmluZWQoTUFDX09TX1hf
VkVSU0lPTl8xMF83KSB8fCBNQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IE1BQ19PU19Y
X1ZFUlNJT05fMTBfNwotI2RlZmluZSBUQVJHRVRJTkdfU05PV19MRU9QQVJEIDEKLSNlbGlmICFk
ZWZpbmVkKE1BQ19PU19YX1ZFUlNJT05fMTBfOCkgfHwgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPCBNQUNfT1NfWF9WRVJTSU9OXzEwXzgKLSNkZWZpbmUgVEFSR0VUSU5HX0xJT04gMQot
I2VuZGlmCisKKy8qIEZJWE1FOiBUaGVzZSBjYW4gYmUgcmVtb3ZlZCBhZnRlciBzdWZmaWNpZW50
IHRpbWUgaGFzIHBhc3NlZCBzaW5jZSB0aGUgcmVtb3ZhbCBvZiBCVUlMRElOR19PTiAvIFRBUkdF
VElORyBtYWNyb3MuICovCisKKyNkZWZpbmUgRVJST1JfUExFQVNFX0NPTVBBUkVfV0lUSF9NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCAwIC8gMAorI2RlZmluZSBFUlJPUl9QTEVBU0VfQ09N
UEFSRV9XSVRIX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgMCAvIDAKKworI2RlZmluZSBC
VUlMRElOR19PTl9MRU9QQVJEIEVSUk9SX1BMRUFTRV9DT01QQVJFX1dJVEhfTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQKKyNkZWZpbmUgQlVJTERJTkdfT05fU05PV19MRU9QQVJEIEVSUk9S
X1BMRUFTRV9DT01QQVJFX1dJVEhfTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQKKyNkZWZp
bmUgQlVJTERJTkdfT05fTElPTiBFUlJPUl9QTEVBU0VfQ09NUEFSRV9XSVRIX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVECisKKyNkZWZpbmUgVEFSR0VUSU5HX0xFT1BBUkQgRVJST1JfUExF
QVNFX0NPTVBBUkVfV0lUSF9NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VECisjZGVmaW5lIFRB
UkdFVElOR19TTk9XX0xFT1BBUkQgRVJST1JfUExFQVNFX0NPTVBBUkVfV0lUSF9NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VECisjZGVmaW5lIFRBUkdFVElOR19MSU9OIEVSUk9SX1BMRUFTRV9D
T01QQVJFX1dJVEhfTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRAogI2VuZGlmCiAKIC8qIE9T
KEZSRUVCU0QpIC0gRnJlZUJTRCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDE5ZmU0NDYuLjhkYzdjZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMi0wNy0x
MSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCisgICAgICAgIFJlcGxhY2UgZGVmaW5p
dGlvbnMgb2YgQlVJTERJTkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIHdpdGggbWFjcm9zIHRoYXQg
d2lsbCBlcnJvciB3aGVuIHVzZWQuCisKKyAgICAgICAgUGFydCBvZiA8aHR0cDovL3dlYmtpdC5v
cmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZv
ciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi9QbHVnaW5PYmplY3QuaDogUmVtb3ZlIHRoZSBtYWNyb3MgY29tcGxldGVseSBmcm9tIGhl
cmUgc2luY2UKKyAgICAgICAgdGhleSdyZSBjb21wbGV0ZWx5IHVudXNlZCBpbiBUZXN0TmV0c2Nh
cGVQbHVnSW4uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY29uZmlnLmg6CisKKzIwMTItMDct
MTEgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KKwogICAgICAgICA8aHR0cDovL3dlYmtp
dC5vcmcvYi85MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBm
YXZvciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcwogCiAgICAgICAgIFRoaXMgcmVtb3Zh
bCB3YXMgaGFuZGxlZCBieSBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1h
Y3JvcyBpbiB0byB0aGUgZXF1aXZhbGVudCBjaGVja3MKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuaAppbmRleCA1NjY1Mzdj
Li45OGYxODM5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQ
bHVnSW4vUGx1Z2luT2JqZWN0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luL1BsdWdpbk9iamVjdC5oCkBAIC0yOSwxNCArMjksNiBAQAogI2luY2x1ZGUgPFdl
YktpdC9ucGZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHN0ZGFyZy5oPgogCi0jaWYgZGVmaW5lZChY
UF9NQUNPU1gpCi0jaWYgIWRlZmluZWQoTUFDX09TX1hfVkVSU0lPTl8xMF82KSB8fCBNQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEIDwgTUFDX09TX1hfVkVSU0lPTl8xMF82Ci0jZGVmaW5lIEJV
SUxESU5HX09OX0xFT1BBUkQgMQotI2VsaWYgIWRlZmluZWQoTUFDX09TX1hfVkVSU0lPTl8xMF83
KSB8fCBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgTUFDX09TX1hfVkVSU0lPTl8xMF83
Ci0jZGVmaW5lIEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCAxCi0jZW5kaWYKLSNlbmRpZiAvLyBY
UF9NQUNPU1gKLQogY2xhc3MgUGx1Z2luVGVzdDsKIAogZXh0ZXJuIE5QTmV0c2NhcGVGdW5jcyAq
YnJvd3NlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NvbmZpZy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY29uZmlnLmgKaW5kZXggZDUyY2Q4NC4uY2NmZjcxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY29uZmlnLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY29uZmlnLmgKQEAgLTUwLDExICs1MCwxOSBAQAogI2lmIFBMQVRGT1JNKE1BQykKICNk
ZWZpbmUgV1RGX1VTRV9DRiAxCiAKLSNpZiAhZGVmaW5lZChNQUNfT1NfWF9WRVJTSU9OXzEwXzYp
IHx8IE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCBNQUNfT1NfWF9WRVJTSU9OXzEwXzYK
LSNkZWZpbmUgQlVJTERJTkdfT05fTEVPUEFSRCAxCi0jZWxpZiAhZGVmaW5lZChNQUNfT1NfWF9W
RVJTSU9OXzEwXzcpIHx8IE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCBNQUNfT1NfWF9W
RVJTSU9OXzEwXzcKLSNkZWZpbmUgQlVJTERJTkdfT05fU05PV19MRU9QQVJEIDEKLSNlbmRpZgor
Ly8gRklYTUU6IFRoZXNlIGNhbiBiZSByZW1vdmVkIGFmdGVyIHN1ZmZpY2llbnQgdGltZSBoYXMg
cGFzc2VkIHNpbmNlIHRoZSByZW1vdmFsIG9mIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3Jv
cy4KKworI2RlZmluZSBFUlJPUl9QTEVBU0VfQ09NUEFSRV9XSVRIX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDAgLyAwCisjZGVmaW5lIEVSUk9SX1BMRUFTRV9DT01QQVJFX1dJVEhfTUFD
X09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCAwIC8gMAorCisjZGVmaW5lIEJVSUxESU5HX09OX0xF
T1BBUkQgRVJST1JfUExFQVNFX0NPTVBBUkVfV0lUSF9NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRAorI2RlZmluZSBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQgRVJST1JfUExFQVNFX0NPTVBB
UkVfV0lUSF9NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRAorI2RlZmluZSBCVUlMRElOR19P
Tl9MSU9OIEVSUk9SX1BMRUFTRV9DT01QQVJFX1dJVEhfTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQKKworI2RlZmluZSBUQVJHRVRJTkdfTEVPUEFSRCBFUlJPUl9QTEVBU0VfQ09NUEFSRV9X
SVRIX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQKKyNkZWZpbmUgVEFSR0VUSU5HX1NOT1df
TEVPUEFSRCBFUlJPUl9QTEVBU0VfQ09NUEFSRV9XSVRIX01BQ19PU19YX1ZFUlNJT05fTUFYX0FM
TE9XRUQKKyNkZWZpbmUgVEFSR0VUSU5HX0xJT04gRVJST1JfUExFQVNFX0NPTVBBUkVfV0lUSF9N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VECisKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
ICNpZiBPUyhXSU5ET1dTKQotLSAKMS43LjkuNiAoQXBwbGUgR2l0LTMxLjEpCgo=
</data>
<flag name="review"
          id="160322"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="160349"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151811</attachid>
            <date>2012-07-11 16:05:32 -0700</date>
            <delta_ts>2012-07-11 18:11:26 -0700</delta_ts>
            <desc>Part 1 - Scripted replacement (v2)</desc>
            <filename>0001-http-webkit.org-b-91015-Remove-BUILDING_ON-TARGETING.patch</filename>
            <type>text/plain</type>
            <size>232444</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSAxYjM4MzkzZDVhZTU4YmU1NzZkNWQzNzM5ODgxMzZiMzY4YzY0OGI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogVHVl
LCAxMCBKdWwgMjAxMiAxNjo1MjoyNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxodHRwOi8vd2Vi
a2l0Lm9yZy9iLzkxMDE1PiBSZW1vdmUgQlVJTERJTkdfT04gLyBUQVJHRVRJTkcKIG1hY3JvcyBp
biBmYXZvciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcwoKVGhpcyByZW1vdmFsIHdhcyBo
YW5kbGVkIGJ5IGEgc2NyaXB0IHRoYXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGlu
IHRvIHRoZSBlcXVpdmFsZW50IGNoZWNrcwp1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0eSBt
YWNyb3MuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoKKiBX
ZWJDb3JlLmV4cC5pbjoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CiogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgoqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKiBsb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcDoKKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmg6CiogcGFn
ZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaDoKKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHA6CiogcGFnZS9tYWMvU2V0dGluZ3NNYWMubW06CiogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHA6CiogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKiBwbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9CdXNNYWMubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDoK
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CiogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoK
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHA6CiogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUNHLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcDoKKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyQ29yZVRleHQubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRD
YWNoZU1hYy5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5jcHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW06CiogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBs
ZUZvbnREYXRhTWFjLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oOgoqIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwOgoqIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMu
bW06CiogcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNwcDoKKiBwbGF0Zm9ybS9t
YWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuaDoKKiBwbGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERl
ZmluaXRpb25zLmg6CiogcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIuaDoKKiBwbGF0Zm9ybS9t
YWMvSFRNTENvbnZlcnRlci5tbToKKiBwbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
TWFjLm1tOgoqIHBsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oOgoqIHBsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgoqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKiBwbGF0Zm9ybS9t
YWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW06CiogcGxhdGZvcm0vbWFjL1NoYXJlZFRp
bWVyTWFjLm1tOgoqIHBsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5tbToKKiBwbGF0Zm9y
bS9tYWMvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW06CiogcGxhdGZvcm0vbWFjL1dlYkNvcmVO
U0NlbGxFeHRyYXMuaDoKKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgoq
IHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOgoqIHBsYXRmb3JtL21hYy9X
ZWJGb250Q2FjaGUubW06CiogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIubW06CiogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xs
ZXIubW06CiogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmg6CiogcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRmb3JtL25ldHdvcmsvY2YvRE5TQ0ZOZXQuY3BwOgoq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CiogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmNwcDoKKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUNGTmV0LmNwcDoKKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbToK
KiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tOgoqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlUmVxdWVzdE1hYy5tbToKKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVz
cG9uc2UubW06CiogcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaDoKKiBwbGF0Zm9ybS90ZXh0
L2NmL0h5cGhlbmF0aW9uQ0YuY3BwOgoqIHBsYXRmb3JtL3RleHQvbWFjL0h5cGhlbmF0aW9uTWFj
Lm1tOgoqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgoqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgoqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKClNv
dXJjZS9XZWJLaXQvY2hyb21pdW06CgoqIHNyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW06
CgpTb3VyY2UvV2ViS2l0L21hYzoKCiogRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4
dE1lbnVEZWxlZ2F0ZS5tbToKKiBNaXNjL1dlYktpdEVycm9ycy5tOgoqIE1pc2MvV2ViTlNDb250
cm9sRXh0cmFzLm06CiogTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tOgoqIFBsdWdpbnMv
SG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKiBQbHVnaW5zL1dlYkJhc2VO
ZXRzY2FwZVBsdWdpblZpZXcubW06CiogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06
CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgoqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bToKKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CiogV2ViVmlldy9XZWJD
bGlwVmlldy5tbToKKiBXZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbToKKiBXZWJW
aWV3L1dlYkZyYW1lVmlldy5tbToKKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1t
OgoqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CiogV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFs
Lmg6CiogV2ViVmlldy9XZWJQREZEb2N1bWVudEV4dHJhcy5tbToKKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tOgoqIFdlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oOgoqIFdlYlZpZXcvV2Vi
U2NyaXB0RGVidWdEZWxlZ2F0ZS5oOgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKiBXZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmg6CgpTb3VyY2UvV2ViS2l0MjoKCiogU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uY3BwOgoqIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg6CiogU2hhcmVkL21hYy9Q
YXN0ZWJvYXJkVHlwZXMubW06CiogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CiogVUlQ
cm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW06CiogVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwubW06CiogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgoqIFVJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmg6Ciog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3Iu
bW06CiogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5jcHA6Ciog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5oOgoqIFVJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgoqIFVJUHJvY2Vzcy9QbHVnaW5z
L21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW06CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW46CiogVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbToKKiBVSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW06CiogVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWFjLm1tOgoqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgoqIFdl
YktpdDJQcmVmaXguaDoKKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93
c2VyRnVuY3MuY3BwOgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVT
YW5kYm94RnVuY3Rpb25zLm1tOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcDoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
OgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbToK
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CiogV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbjoKKiBXZWJQcm9jZXNzL21hYy9LZXljaGFpbkl0ZW1TaGltTWV0aG9k
cy5tbToKKiBXZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbU1ldGhvZHMubW06CiogV2ViUHJvY2Vz
cy9tYWMvV2ViUHJvY2Vzc01hYy5tbToKKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1h
Yy5tbToKKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5tbToKClNvdXJjZS9XVEY6Cgoq
IHd0Zi9Bc3NlcnRpb25zLmNwcDoKKiB3dGYvRmFzdE1hbGxvYy5jcHA6Ciogd3RmL1BsYXRmb3Jt
Lmg6Ciogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKiB3dGYvdW5pY29kZS9pY3UvQ29sbGF0
b3JJQ1UuY3BwOgoKVG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3Vw
cG9ydC5jcHA6CiogRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxsb2MuY3BwOgoqIER1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW06CiogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRl
c3RDb250cm9sbGVyTWFjLm1tOgoqIER1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9s
bGVyLm06CiogVGVzdFdlYktpdEFQSS9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1t
OgoqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjdGl2YXRlRm9udHMubW06
CiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMu
bW06Ci0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysKIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKystLQogU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4OCArKysrKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxpc3QuaCAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuaCAgfCAgICAyICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9B
WE9iamVjdENhY2hlTWFjLm1tICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbSAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgfCAgIDE4ICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAgICAgICAgfCAgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgICAgICB8ICAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tICAgICAgICAgICAgIHwgICAg
MiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgICAgICAg
fCAgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1
c01hYy5tbSAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaCAgICAgICAgfCAgICAyICstCiAuLi4vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwICAgICAgIHwgICAgNiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggfCAgICAyICstCiAuLi4vcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSB8ICAgMTQgKystLQogLi4uL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbSAgfCAgICA4ICstCiAuLi4v
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwICAgICB8ICAgIDggKy0K
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIHwgICAx
MiArLS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAgICAg
IHwgICAgNCArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgg
ICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcCAgICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlU291cmNlQ0cuY3BwIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUGF0aENHLmNwcCAgICAgfCAgICA0ICstCiAuLi4vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tICAgICAgICB8ICAgMTAgKy0tCiAuLi4vZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgIDIgKy0KIC4uLi9ncmFwaGljcy9t
YWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCAgICAgICAgIHwgICAgMiArLQogLi4uL2dyYXBo
aWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSAgfCAgICA0ICstCiAuLi4v
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tICB8ICAgIDQgKy0K
IC4uLi9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgICAgICAgIHwgICAg
NiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0gICAg
fCAgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5t
bSAgICB8ICAgIDIgKy0KIC4uLi9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
bW0gICAgICAgIHwgICAxNCArKy0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZv
bnREYXRhTWFjLm1tICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9XZWJMYXllci5oICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tICAgfCAgICAyICstCiAuLi4vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gICAgICAgICAgIHwgICA1MiArKysrKystLS0tLS0K
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAgIHwgICAg
OCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmgg
fCAgICA2ICstCiAuLi4vcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICAg
ICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVy
LmggICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252
ZXJ0ZXIubW0gICAgICAgfCAgICA2ICstCiAuLi4vcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJl
SGFuZGxlck1hYy5tbSAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9OU1Njcm9sbGVySW1wRGV0YWlscy5oIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSAgICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tICAgICAgICB8ICAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSAgIHwgICAgMiArLQogLi4uL3Bs
YXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbSAgICAgfCAgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0gICAgICB8ICAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5tbSAgIHwg
ICAgMiArLQogLi4uL3BsYXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAgICAg
ICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4
dHJhcy5oICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmggIHwgICAyMCArKy0tLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UubW0gfCAgIDE2ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJGb250Q2FjaGUubW0gICAgICAgIHwgICAgMiArLQogLi4uL3BsYXRmb3JtL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tICAgfCAgICA0ICstCiAuLi4vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gICB8ICAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oICAgICAgIHwgICAgMiArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgfCAgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcCAgICB8ICAg
IDQgKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwICAgICAg
IHwgICAgMiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVl
c3QuaCAgfCAgICAyICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RD
Rk5ldC5jcHAgICB8ICAgIDQgKy0KIC4uLi9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNG
TmV0LmNwcCAgICAgICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvbWFjL0F1dGhl
bnRpY2F0aW9uTWFjLm1tICAgICAgfCAgICAyICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llU3RvcmFnZU1hYy5tbSAgICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbSAgICAgfCAgICA2ICstCiAuLi4vcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tICAgICB8ICAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmggICAgICAgIHwgICAgNiArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcCAgfCAgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlvbk1hYy5tbSB8
ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
ICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0gICAgICAgICB8ICAgIDYgKy0KIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIC4uLi9jaHJvbWl1bS9zcmMvbWFjL1dlYklu
cHV0RXZlbnRGYWN0b3J5Lm1tICAgICAgIHwgICAgOCArLQogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICsrKysrKysrCiAuLi4vV2ViRGVm
YXVsdENvbnRleHRNZW51RGVsZWdhdGUubW0gICAgICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0gICAgICAgICAgICAgIHwgICAgMiArLQog
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRyYXMubSAgICAgICAgfCAgICAy
ICstCiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0gICB8
ICAgIDIgKy0KIC4uLi9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcu
bW0gIHwgICAgMiArLQogLi4uL21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcu
bW0gICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luVmlldy5tbSB8ICAgIDYgKy0KIC4uLi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbSAgIHwgICAgNCArLQogLi4uL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tICAgfCAgIDE0ICsrLS0KIC4uLi9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gICAgIHwgICAgNCArLQogLi4uL21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gICAgICAgfCAgIDE2ICsrLS0KIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0gICAgICAgICAgIHwgICAgNiArLQogLi4u
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0gfCAgICA0ICst
CiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSAgICAgICAgICB8ICAg
IDIgKy0KIC4uLi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0g
IHwgICAxMiArLS0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gICAg
ICAgICAgIHwgICA0NCArKysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3SW50ZXJuYWwuaCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUERGRG9jdW1lbnRFeHRyYXMubW0gIHwgICAgMiArLQogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbSAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oIHwgICAgMiArLQogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAgICAgICAgfCAgIDQ2ICsrKysr
LS0tLS0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCAgICAgICAg
IHwgICAgMiArLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDQ2ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5
UG9wdXBJbmZvLmNwcCAgICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rp
b25hcnlQb3B1cEluZm8uaCAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1Bhc3RlYm9hcmRUeXBlcy5tbSAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0gfCAgICA0ICstCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSB8ICAgIDggKy0KIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSAgICAgICAgIHwgICAyOCAr
KystLS0tCiAuLi4vbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICAgICAg
ICB8ICAgIDQgKy0KIC4uLi9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1t
ICAgICAgIHwgICAgNCArLQogLi4uL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5j
cHAgICAgICAgICAgfCAgICA0ICstCiAuLi4vVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9u
bWVudFZhcmlhYmxlcy5oICB8ICAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1By
b2Nlc3NMYXVuY2hlck1hYy5tbSAgIHwgICAgOCArLQogLi4uL1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAgMTIgKy0tCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwgICAgMiArLQogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbSAgICAgfCAgICA2ICst
CiAuLi4vVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICB8ICAg
MTIgKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0gICAg
ICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyICstCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dz
ZXJGdW5jcy5jcHAgICAgICB8ICAgIDQgKy0KIC4uLi9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zLm1tICAgICAgIHwgICAgNiArLQogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCAgfCAgICAyICstCiAuLi4vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCAgICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tICAgICAgIHwgICAxNCArKy0tCiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAgIDIgKy0KIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgICAgMiAr
LQogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAg
ICAyICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0g
ICB8ICAgIDYgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4gIHwgICAgMiArLQogLi4uL1dlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRo
b2RzLm1tICAgICAgfCAgICA0ICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVt
U2hpbU1ldGhvZHMubW0gICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NNYWMubW0gICAgIHwgICAxMCArLS0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tIHwgICAgOCArLQogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0gICAgfCAgICA4ICstCiBUb29scy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKysKIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5jcHAgIHwgICAgNiArLQog
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxsb2MuY3BwICAgICAgICAgfCAgICA2
ICstCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgICAgICB8
ICAgIDYgKy0KIC4uLi9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0gICAgICAgICAg
ICAgIHwgICAgNCArLQogLi4uL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbSAgfCAgICA2ICstCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29u
dHJvbGxlci5tICAgICB8ICAgIDIgKy0KIC4uLi9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVy
TWFjLm1tICAgICAgICAgICAgIHwgICAgMiArLQogLi4uL0luamVjdGVkQnVuZGxlL21hYy9BY3Rp
dmF0ZUZvbnRzLm1tICAgICAgICAgICAgfCAgICAyICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvbWFj
L0luamVjdGVkQnVuZGxlTWFjLm1tICAgICAgICB8ICAgIDIgKy0KIDE1OCBmaWxlcyBjaGFuZ2Vk
LCA2NTIgaW5zZXJ0aW9ucygrKSwgNDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNTFkODEwYy4uYTlh
ODViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNy0xMSAgTWFyayBSb3dlICA8bXJvd2VA
YXBwbGUuY29tPgorCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzkxMDE1PiBSZW1vdmUg
QlVJTERJTkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9yIG9mIHN5c3RlbSBhdmFpbGFi
aWxpdHkgbWFjcm9zCisKKyAgICAgICAgVGhpcyByZW1vdmFsIHdhcyBoYW5kbGVkIGJ5IGEgc2Ny
aXB0IHRoYXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGluIHRvIHRoZSBlcXVpdmFs
ZW50IGNoZWNrcworICAgICAgICB1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3Mu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
QXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAq
IHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6Cisg
ICAgICAgICogd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKwogMjAxMi0wNy0xMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCAtV3Rh
dXRvbG9naWNhbC1jb21wYXJlIGFuZCAtV3NpZ24tY29tcGFyZSB3YXJuaW5nIGZsYWdzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuY3BwCmluZGV4IDhmZThhMzguLmFlMjRjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3Bw
CkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX2NvbW1vbihjb25z
dCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKIAogICAgICAgICBDRlN0cmluZ0dldENTdHJp
bmcoc3RyLCBidWZmZXIsIGxlbmd0aCwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KTsKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAg
ICAgYXNsX2xvZygwLCAwLCBBU0xfTEVWRUxfTk9USUNFLCAiJXMiLCBidWZmZXIpOwogI2VuZGlm
CiAgICAgICAgIGZwdXRzKGJ1ZmZlciwgc3RkZXJyKTsKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGlj
IHZvaWQgdnByaW50Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBh
cmdzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIHZhX2xpc3QgY29weU9mQXJnczsK
ICAgICB2YV9jb3B5KGNvcHlPZkFyZ3MsIGFyZ3MpOwogICAgIGFzbF92bG9nKDAsIDAsIEFTTF9M
RVZFTF9OT1RJQ0UsIGZvcm1hdCwgY29weU9mQXJncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9GYXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCmluZGV4
IGNjODUyMWMuLmY0MGFkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2Mu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC00NjU0LDEwICs0NjU0
LDEwIEBAIGV4dGVybiAiQyIgewogbWFsbG9jX2ludHJvc3BlY3Rpb25fdCBqc2NvcmVfZmFzdG1h
bGxvY19pbnRyb3NwZWN0aW9uID0geyAmRmFzdE1hbGxvY1pvbmU6OmVudW1lcmF0ZSwgJkZhc3RN
YWxsb2Nab25lOjpnb29kU2l6ZSwgJkZhc3RNYWxsb2Nab25lOjpjaGVjaywgJkZhc3RNYWxsb2Na
b25lOjpwcmludCwKICAgICAmRmFzdE1hbGxvY1pvbmU6OmxvZywgJkZhc3RNYWxsb2Nab25lOjpm
b3JjZUxvY2ssICZGYXN0TWFsbG9jWm9uZTo6Zm9yY2VVbmxvY2ssICZGYXN0TWFsbG9jWm9uZTo6
c3RhdGlzdGljcwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgT1MoSU9T
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MCB8fCBPUyhJT1Mp
CiAgICAgLCAwIC8vIHpvbmVfbG9ja2VkIHdpbGwgbm90IGJlIGNhbGxlZCBvbiB0aGUgem9uZSB1
bmxlc3MgaXQgYWR2ZXJ0aXNlcyBpdHNlbGYgYXMgdmVyc2lvbiBmaXZlIG9yIGhpZ2hlci4KICNl
bmRpZgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgT1MoSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MCB8fCBPUyhJT1MpCiAgICAgLCAwLCAwLCAwLCAwIC8vIFRoZXNl
IG1lbWJlcnMgd2lsbCBub3QgYmUgdXNlZCB1bmxlc3MgdGhlIHpvbmUgYWR2ZXJ0aXNlcyBpdHNl
bGYgYXMgdmVyc2lvbiBzZXZlbiBvciBoaWdoZXIuCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXgg
OTE5Zjg3Mi4uN2M3NjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC01MzMsNyArNTMzLDcgQEAKICNpZiBD
UFUoWDg2XzY0KQogI2RlZmluZSBXVEZfVVNFX1BMVUdJTl9IT1NUX1BST0NFU1MgMQogI2VuZGlm
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2RlZmluZSBFTkFCTEVfR0VTVFVSRV9FVkVO
VFMgMQogI2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMQogI2RlZmluZSBXVEZfVVNFX1ND
Uk9MTEJBUl9QQUlOVEVSIDEKQEAgLTU1Niw3ICs1NTYsNyBAQAogI2lmIGRlZmluZWQoRU5BQkxF
X1ZJREVPKQogI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQogI2VuZGlmCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogI2RlZmluZSBI
QVZFX0xBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUiAxCiAjZW5kaWYKICNkZWZpbmUgV1RG
X1VTRV9BUFBLSVQgMQpAQCAtNzA0LDcgKzcwNCw3IEBACiAjZGVmaW5lIEhBVkVfU1lTX1RJTUVC
X0ggMQogI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJBVEUgMQogCi0jaWZuZGVmIFRBUkdFVElOR19M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAKICNk
ZWZpbmUgSEFWRV9ESVNQQVRDSF9IIDEKICNkZWZpbmUgSEFWRV9IT1NURURfQ09SRV9BTklNQVRJ
T04gMQpAQCAtMTA0MCw3ICsxMDQwLDcgQEAKICNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdF
X1NJTVBMRV9IQVNIIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
ODAKICNkZWZpbmUgRU5BQkxFX1RIUkVBREVEX1NDUk9MTElORyAxCiAjZW5kaWYKIApAQCAtMTEw
MiwxMSArMTEwMiwxMSBAQAogI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAjZGVmaW5lIFdURl9VU0VfQVZGT1VOREFUSU9OIDEKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICNkZWZpbmUgV1RGX1VTRV9DT1JFTUVESUEgMQog
I2VuZGlmCiAKQEAgLTExMTgsNyArMTExOCw3IEBACiAjZGVmaW5lIFdURl9VU0VfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNkZWZpbmUg
SEFWRV9JTlZFUlRFRF9XSEVFTF9FVkVOVFMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcAppbmRleCA1MTAxNzNkLi4yY2ZhODc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4K
ICNlbmRpZgogCi0jaWYgT1MoTUFDX09TX1gpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpCisjaWYgT1MoTUFDX09TX1gpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA2MAogI2luY2x1ZGUgPG9iamMvb2JqYy1hdXRvLmg+CiAjZW5kaWYKIApAQCAtMjI4LDcg
KzIyOCw3IEBAIHZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFy
KiB0aHJlYWROYW1lKQogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNlbmRpZgogCi0j
aWYgT1MoTUFDX09TX1gpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgT1Mo
TUFDX09TX1gpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAg
IC8vIEFsbCB0aHJlYWRzIHRoYXQgcG90ZW50aWFsbHkgdXNlIEFQSXMgYWJvdmUgdGhlIEJTRCBs
YXllciBtdXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgT2JqZWN0aXZlLUMKICAgICAvLyBnYXJi
YWdlIGNvbGxlY3RvciBpbiBjYXNlIEFQSSBpbXBsZW1lbnRhdGlvbnMgdXNlIGdhcmJhZ2UtY29s
bGVjdGVkIG1lbW9yeS4KICAgICBvYmpjX3JlZ2lzdGVyVGhyZWFkV2l0aENvbGxlY3RvcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIGIv
U291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCmluZGV4IGU1MDdhMjAu
LjgyMDY0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9y
SUNVLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAK
QEAgLTYxLDcgKzYxLDcgQEAgUGFzc093blB0cjxDb2xsYXRvcj4gQ29sbGF0b3I6OnVzZXJEZWZh
dWx0KCkKIHsKICNpZiBPUyhEQVJXSU4pICYmIFVTRShDRikKICAgICAvLyBNYWMgT1MgWCBkb2Vz
bid0IHNldCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwgc28gSUNVIGRl
ZmF1bHQgZG9lc24ndCB3b3JrLgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFPUyhJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwICYm
ICFPUyhJT1MpCiAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlKEFkb3B0
Q0YsIENGTG9jYWxlQ29weUN1cnJlbnQoKSk7CiAgICAgQ0ZTdHJpbmdSZWYgY29sbGF0aW9uT3Jk
ZXIgPSAoQ0ZTdHJpbmdSZWYpQ0ZMb2NhbGVHZXRWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBr
Q0ZMb2NhbGVDb2xsYXRvcklkZW50aWZpZXIpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMzFhNjQ0
Li44MjE0MWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTItMDctMTEgIE1hcmsg
Um93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85
MTAxNT4gUmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZvciBvZiBz
eXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcworCisgICAgICAgIFRoaXMgcmVtb3ZhbCB3YXMgaGFu
ZGxlZCBieSBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1hY3JvcyBpbiB0
byB0aGUgZXF1aXZhbGVudCBjaGVja3MKKyAgICAgICAgdXNpbmcgdGhlIHN5c3RlbSBhdmFpbGFi
aWxpdHkgbWFjcm9zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgICogbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAqIHBhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvbWFjL1NldHRpbmdz
TWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYWRpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJEYXRhQ0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyRGF0YUNHLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW06CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxl
ckNvcmVUZXh0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVN
YWMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EaXNwbGF5U2xl
ZXBEaXNhYmxlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2Fi
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL01lbW9y
eVByZXNzdXJlSGFuZGxlck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTlNTY3JvbGxl
ckltcERldGFpbHMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Njcm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TaGFyZWRUaW1lck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3VkZGVuVGVy
bWluYXRpb24ubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlTlNDZWxsRXh0cmFzLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvV2ViRm9udENhY2hlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRl
b0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvQ3JlZGVudGlhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVudGljYXRpb25NYWMubW06CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
VGV4dENoZWNraW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNG
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlvbk1hYy5tbToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW06CisKIDIwMTItMDctMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFA
Y29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQml0bWFwSW1hZ2U6OmZyYW1lSXNDb21wbGV0ZUF0
SW5kZXgoKSBtdXN0IHJldHVybiBmYWxzZSBpZiBJbWFnZURlY29kZXIgaXMgbm90IGluaXRpYWxp
emVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA5MWM0OGFjLi5hOGZlMmE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtMTk4OSwyMyArMTk4OSwyMyBAQCBfX1pON1dlYkNvcmU3SW50U2l6ZUMx
RVJLN19OU1NpemUKIF9fWk5LN1dlYkNvcmU3SW50U2l6ZWN2N19OU1NpemVFdgogI2VuZGlmCiAK
LSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIVBMQVRGT1JNKElPUykK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAgJiYgIVBMQVRGT1JN
KElPUykKIF93a0dldE5TRXZlbnRNb21lbnR1bVBoYXNlCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MCB8fCBQTEFURk9STShJT1MpCiBfd2tDQUxh
eWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrCiBfd2tDRlVSTFJlcXVlc3RBbGxv
d0FsbFBvc3RDYWNoaW5nCiBfd2tDR1BhdGhBZGRSb3VuZGVkUmVjdAogX3drQ3JlYXRlQ1RUeXBl
c2V0dGVyV2l0aFVuaUNoYXJQcm92aWRlckFuZE9wdGlvbnMKICNlbmRpZgogCi0jaWYgKCFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZPUk0oSU9TKSkgJiYgIVBMQVRG
T1JNKElPU19TSU1VTEFUT1IpCisjaWYgKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MCB8fCBQTEFURk9STShJT1MpKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKIF93
a0lPU3VyZmFjZUNvbnRleHRDcmVhdGUKIF93a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZQog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFQTEFU
Rk9STShJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwICYm
ICFQTEFURk9STShJT1MpCiBfd2tBVkFzc2V0UmVzb2x2ZWRVUkwKIF93a0NvcHlEZWZhdWx0U2Vh
cmNoUHJvdmlkZXJEaXNwbGF5TmFtZQogX3drQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25NYWlu
UXVldWUKQEAgLTIwMTQsNyArMjAxNCw3IEBAIF93a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVm
b3JlU25vd0xlb3BhcmQKIF93a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZQogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiBfd2tFeGVjdXRhYmxlV2FzTGlua2Vk
T25PckJlZm9yZUxpb24KIF93a0ZpbHRlckFkZERhdGEKIF93a0ZpbHRlckNyZWF0ZUluc3RhbmNl
CkBAIC0yMDczLDcgKzIwNzMsNyBAQCBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlNDZzZXRQ
cml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlRVJLTgogX19aTjdXZWJD
b3JlMTRSZXNvdXJjZUhhbmRsZTIxY3VycmVudFN0b3JhZ2VTZXNzaW9uRXYKIF9fWk43V2ViQ29y
ZTE0UmVzb3VyY2VIYW5kbGUyOXByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uRXYKIF9fWk43
V2ViQ29yZTI2Y3VycmVudENGSFRUUENvb2tpZVN0b3JhZ2VFdgotI2lmIGRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PT0gMTA2MAogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTI0c2V0RGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uRVAyMV9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbgogI2Vsc2UKIF9fWk43V2ViQ29yZTE0UmVz
b3VyY2VIYW5kbGUyNHNldERlZmF1bHRTdG9yYWdlU2Vzc2lvbkVQSzIxX19DRlVSTFN0b3JhZ2VT
ZXNzaW9uCkBAIC0yNTQzLDcgKzI1NDMsNyBAQCBfX1pOSzdXZWJDb3JlNEtVUkw3aXNWYWxpZEV2
CiBfX1pOSzdXZWJDb3JlNEtVUkwyMnByb3RvY29sSXNJbkhUVFBGYW1pbHlFdgogI2VuZGlmCiAK
LSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TElPTikKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA4MAogX19aTjdXZWJDb3JlMjdBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIxNWFk
ZEFsdGVybmF0aXZlc0VSS04zV1RGOVJldGFpblB0ckkxOE5TVGV4dEFsdGVybmF0aXZlc0VFCiBf
X1pON1dlYkNvcmUyN0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjIyYWx0ZXJuYXRpdmVzRm9y
Q29udGV4dEV5CiBfX1pON1dlYkNvcmUyN0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjVjbGVh
ckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
LmgKaW5kZXggZGU1ZTk2ZC4uMDJiYjVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMjksNyArMjksNyBAQAogI2lmbmRlZiBB
Y2Nlc3NpYmlsaXR5TGlzdF9oCiAjZGVmaW5lIEFjY2Vzc2liaWxpdHlMaXN0X2gKIAotI2lmIFBM
QVRGT1JNKE1BQykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjZGVmaW5l
IEFDQ0VTU0lCSUxJVFlfTElTVFMgMAogI2Vsc2UKICNkZWZpbmUgQUNDRVNTSUJJTElUWV9MSVNU
UyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGUuaAppbmRleCAyMTgxNGYyLi5hOTUwODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDUwCiAjZGVmaW5lIEFDQ0VTU0lCSUxJVFlfVEFCTEVTIDAKICNlbHNlCiAjZGVmaW5lIEFDQ0VT
U0lCSUxJVFlfVEFCTEVTIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGFjYmMyNWYuLmM3NWU4YzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgICAgICAgICAg
ICAgIG1hY05vdGlmaWNhdGlvbiA9IE5TQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRDaGFu
Z2VkTm90aWZpY2F0aW9uOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFYQXV0b2NvcnJlY3Rpb25PY2N1cmVkOgotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IEAiQVhBdXRvY29ycmVjdGlvbk9jY3VycmVkIjsKICAgICAgICAgICAgIGJy
ZWFrOwogI2Vsc2UKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwog
ICAgICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgogICAgICAgICAgICAgbWFjTm90aWZpY2F0
aW9uID0gTlNBY2Nlc3NpYmlsaXR5Um93Q291bnRDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAg
ICAgICAgYnJlYWs7Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgY2FzZSBBWFJvd0V4cGFuZGVk
OgogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3NpYmlsaXR5Um93RXhwYW5k
ZWROb3RpZmljYXRpb247CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0VkaXRvck1hYy5tbQppbmRleCBjNDJjNjIzLi5hNzg2NmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgRWRpdG9yOjpw
YXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFp
blRleHQpCiAgICAgYm9vbCBjaG9vc2VQbGFpblRleHQ7CiAgICAgCiAgICAgbV9mcmFtZS0+ZWRp
dG9yKCktPmNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCk7
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IHBhc3RlYm9hcmQtPmRvY3VtZW50RnJhZ21lbnQobV9mcmFtZSwgcmFuZ2Us
IGFsbG93UGxhaW5UZXh0LCBjaG9vc2VQbGFpblRleHQpOwogICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvblBh
c3RlZCkpCiAgICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNl
V2l0aFBhc3RlYm9hcmQocGFzdGVib2FyZCksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOGIyMjA0ZC4uZDBmZjIzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU3LDcgKzU3
LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9T
KQogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCkBAIC03Niw3
ICs3Niw3IEBAIE1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKEZyYW1lKiBm
cmFtZSkKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dh
aXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2Vp
dmVkKDAuMCkKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykK
KyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAgICwgbV9maWx0ZXIoMCkKICNlbmRpZgogewpAQCAt
ODQsNyArODQsNyBAQCBNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFt
ZSogZnJhbWUpCiAKIE1haW5SZXNvdXJjZUxvYWRlcjo6fk1haW5SZXNvdXJjZUxvYWRlcigpCiB7
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYg
IVBMQVRGT1JNKElPUykKICAgICBBU1NFUlQoIW1fZmlsdGVyKTsKICNlbmRpZgogfQpAQCAtMTM0
LDcgKzEzNCw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiAgICAgLy8gbGlrZSBjYWxsaW5nIERPTVdpbmRvdzo6cHJpbnQo
KSwgZHVyaW5nIHdoaWNoIGEgaGFsZi1jYW5jZWxlZCBsb2FkIGNvdWxkIHRyeSB0byBmaW5pc2gu
CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlY2VpdmVkRXJyb3IoZXJyb3IpOwogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRG
T1JNKElPUykKICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKG1f
ZmlsdGVyKTsKICAgICAgICAgbV9maWx0ZXIgPSAwOwpAQCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcikKICAgICB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAm
JiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHIudXJsKCku
cHJvdG9jb2xJcygiaHR0cHMiKSAmJiB3a0ZpbHRlcklzTWFuYWdlZFNlc3Npb24oKSkKICAgICAg
ICAgbV9maWx0ZXIgPSB3a0ZpbHRlckNyZWF0ZUluc3RhbmNlKHIubnNVUkxSZXNwb25zZSgpKTsK
ICNlbmRpZgpAQCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcKICAgICBB
U1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYg
KG1fZmlsdGVyKSB7CiAgICAgICAgIEFTU0VSVCghd2tGaWx0ZXJXYXNCbG9ja2VkKG1fZmlsdGVy
KSk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGJsb2NrZWREYXRhID0gd2tGaWx0ZXJBZGREYXRhKG1f
ZmlsdGVyLCBkYXRhLCAmbGVuZ3RoKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCB2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwg
bG9uZyBsb25nCiAKICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVu
Z3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKIAotI2lmIFBMQVRGT1JNKE1BQykg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAg
aWYgKFdlYkZpbHRlckV2YWx1YXRvciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKICAgICAgICAgLy8g
SWYgd2UgZ290IGhlcmUsIGl0IG1lYW5zIHdlIGtub3cgaWYgd2Ugd2VyZSBibG9ja2VkIG9yIG5v
dC4gSWYgd2Ugd2VyZSBibG9ja2VkLCB3ZSdyZQogICAgICAgICAvLyBkb25lIGxvYWRpbmcgdGhl
IHBhZ2UgYWx0b2dldGhlci4gRWl0aGVyIHdheSwgd2UgZG9uJ3QgbmVlZCB0aGUgZmlsdGVyIGFu
eW1vcmUuCkBAIC00OTYsNyArNDk2LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxv
YWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGRsID0gZG9j
dW1lbnRMb2FkZXIoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAg
ICAgIGludCBsZW5ndGg7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEgPSB3a0ZpbHRlckRhdGFD
b21wbGV0ZShtX2ZpbHRlciwgJmxlbmd0aCk7CkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiAKIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQogewotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgw
ICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVy
UmVsZWFzZShtX2ZpbHRlcik7CiAgICAgICAgIG1fZmlsdGVyID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAppbmRleCBmMDA1ZGRjLi42MDlkYTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCkBAIC0zNCw3ICszNCw3
IEBACiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAg
JiYgIVBMQVRGT1JNKElPUykKIE9CSkNfQ0xBU1MgV2ViRmlsdGVyRXZhbHVhdG9yOwogI2VuZGlm
CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsKICAgICAgICAgZG91YmxlIG1fdGltZU9mTGFzdERh
dGFSZWNlaXZlZDsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0o
SU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgICAgIFdlYkZpbHRlckV2YWx1YXRvciAq
bV9maWx0ZXI7CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50LmgKaW5kZXggNjcyNDVlNi4uY2Q3NDdiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC0zMSwxMCArMzEsMTAgQEAKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNp
ZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElP
TikKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA4MAogLy8gU29tZSBwbGF0Zm9ybXMgcHJvdmlkZSBVSSBmb3Igc3VnZ2VzdGluZyBhbHRl
cm5hdGl2ZSBkaWN0YXRpb24gdGV4dC4KICNkZWZpbmUgV1RGX1VTRV9ESUNUQVRJT05fQUxURVJO
QVRJVkVTIDEKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTElPTikKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA2
ZTE4OGZkLi4zYThhOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCkBAIC03MDMsNyArNzAzLDcgQEAgc3RhdGljIGJvb2wgc2VsZWN0aW9uQ29u
dGFpbnNQb3NzaWJsZVdvcmQoRnJhbWUqIGZyYW1lKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQot
I2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogI2RlZmluZSBJTkNMVURFX1NQT1RMSUdIVF9DT05U
RVhUX01FTlVfSVRFTSAxCiAjZWxzZQogI2RlZmluZSBJTkNMVURFX1NQT1RMSUdIVF9DT05URVhU
X01FTlVfSVRFTSAwCkBAIC05MzQsNyArOTM0LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oSWdub3Jl
R3JhbW1hckl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBh
cHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgICAgICBoYXZlQ29udGV4dE1lbnVJdGVtc0Zvck1pc3NwZWxsaW5nT3JHcmFtbWVy
ID0gdHJ1ZTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAv
LyBJZiB0aGUgc3RyaW5nIHdhcyBhdXRvY29ycmVjdGVkLCBnZW5lcmF0ZSBhIGNvbnRleHR1YWwg
bWVudSBpdGVtIGFsbG93aW5nIGl0IHRvIGJlIGNoYW5nZWQgYmFjay4KICAgICAgICAgICAgICAg
ICAgICAgU3RyaW5nIHJlcGxhY2VkU3RyaW5nID0gbV9oaXRUZXN0UmVzdWx0LnJlcGxhY2VkU3Ry
aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tCmluZGV4IDIzYjc5MjUu
LjdkMGRlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tCkBAIC02OSw3
ICs2OSw3IEBAIHZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKCkK
ICAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBU
X0hBTkdVTCk7CiAgICAgc2V0U2VyaWZGb250RmFtaWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwg
VVNDUklQVF9IQU5HVUwpOwogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIHNldEZpeGVkRm9udEZhbWlseSgiQXBwbGUg
U0QgR290aGljIE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKICAgICBzZXRTYW5zU2VyaWZGb250RmFt
aWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9IQU5HVUwpOwogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggOWM0YmRmMy4u
OGM4MmE3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFN0cmluZyBmb3JtYXQsIC4uLikKICNlbmRpZgogfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogc3RhdGljIFN0cmluZyB0cnVu
Y2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQogewog
ICAgIGlmIChvcmlnaW5hbC5pc0VtcHR5KCkpCkBAIC0yNDQsNyArMjQ0LDcgQEAgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkKIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaFdlYigpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNl
YXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNw
bGF5TmFtZSgpKTsKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0
IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJO
YW1lLmdldCgpKTsKICNlbHNlCkBAIC0yNTQsNyArMjU0LDcgQEAgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaFdlYigpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRp
Y3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZykKIHsKLSNpZiBkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogICAgIFVOVVNFRF9Q
QVJBTShzZWxlY3RlZFN0cmluZyk7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg
aW4gRGljdGlvbmFyeSIsICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0i
KTsKICNlbHNlCkBAIC03NTUsNyArNzU1LDcgQEAgU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0
ZW1zKHNpemVfdCBjb3VudCkKIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAjaWYgVVNFKENGKQotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmaWxlbmFtZUNGU3RyaW5nKEFkb3B0
Q0YsIGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkpOwogICAgIFJldGFpblB0cjxDRkxvY2FsZVJl
Zj4gbG9jYWxlKEFkb3B0Q0YsIENGTG9jYWxlQ29weUN1cnJlbnQoKSk7CiAgICAgUmV0YWluUHRy
PENGTnVtYmVyRm9ybWF0dGVyUmVmPiBmb3JtYXR0ZXIoQWRvcHRDRiwgQ0ZOdW1iZXJGb3JtYXR0
ZXJDcmVhdGUoMCwgbG9jYWxlLmdldCgpLCBrQ0ZOdW1iZXJGb3JtYXR0ZXJEZWNpbWFsU3R5bGUp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCmluZGV4IDE1ZTY4MDguLmQxMTE5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtNDIsNyArNDIsNyBAQCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcigpCiB7CiB9CiAKLSNpZiAhUExB
VEZPUk0oTUFDKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZP
Uk0oSU9TKQorI2lmICFQTEFURk9STShNQUMpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPT0gMTA2MCB8fCBQTEFURk9STShJT1MpCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6aW5zdGFsbCgpIHsgfQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxs
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9CdXNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNN
YWMubW0KaW5kZXggYjQ3Zjk1My4uMzVhMDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbQpAQCAtNDksNyArNDksNyBAQCBQYXNzT3du
UHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciog
bmFtZSwgZmxvYXQgc2FtcAogICAgIAogICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlRm9yQ2xhc3M6W1dlYkNvcmVBdWRpb0J1bmRsZUNsYXNzIGNsYXNzXV07CiAgICAgTlNV
UkwgKmF1ZGlvRmlsZVVSTCA9IFtidW5kbGUgVVJMRm9yUmVzb3VyY2U6W05TU3RyaW5nIHN0cmlu
Z1dpdGhVVEY4U3RyaW5nOm5hbWVdIHdpdGhFeHRlbnNpb246QCJ3YXYiIHN1YmRpcmVjdG9yeTpA
ImF1ZGlvIl07Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgTlNEYXRhUmVhZGluZ09w
dGlvbnMgb3B0aW9ucyA9IE5TRGF0YVJlYWRpbmdNYXBwZWQ7CiAjZWxzZQogICAgIE5TRGF0YVJl
YWRpbmdPcHRpb25zIG9wdGlvbnMgPSBOU0RhdGFSZWFkaW5nTWFwcGVkSWZTYWZlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKaW5kZXggNWUzNmZmMy4uMjc0
NDRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCkBA
IC0zOSw3ICszOSw3IEBACiAKIHR5cGVkZWYgc3RydWN0IENHQ29udGV4dCogQ0dDb250ZXh0UmVm
OwogCi0jZGVmaW5lIFVTRV9DR19TSEFESU5HIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
KyNkZWZpbmUgVVNFX0NHX1NIQURJTkcgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9
PSAxMDUwCiAKICNpZiBVU0VfQ0dfU0hBRElORwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaGFkaW5nKiBD
R1NoYWRpbmdSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhMjYxNDFkLi41OGQ3OTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3Qg
U3RyaW5nJiB1cmwpCiAKICAgICBbb3B0aW9ucy5nZXQoKSBzZXRPYmplY3Q6W05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6QVZBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uRm9yYmlkUmVtb3RlUmVmZXJl
bmNlVG9Mb2NhbCB8IEFWQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbkZvcmJpZExvY2FsUmVmZXJl
bmNlVG9SZW1vdGVdIGZvcktleTpBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5XTsK
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
ODAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gaGVhZGVyRmllbGRzKEFkb3B0
TlMsIFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogCiAgICAgU3RyaW5nIHJl
ZmVycmVyID0gcGxheWVyKCktPnJlZmVycmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBkZTQwNzI1
Li5hNjcwODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgYm9v
bCBhbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YWx1ZUxpc3QsCiBzdGF0aWMgaW5saW5lIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZEZpbHRl
ckFuaW1hdGlvbnMoKQogewogLy8gPHJkYXI6Ly9wcm9ibGVtLzEwOTA3MjUxPiAtIFdlYktpdDIg
ZG9lc24ndCBzdXBwb3J0IENBIGFuaW1hdGlvbnMgb2YgQ0kgZmlsdGVycyBvbiBMaW9uIGFuZCBi
ZWxvdwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwODAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg4
Myw3ICsxODgzLDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1h
dGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWUKICAgICBpbnQgbnVtQW5pbWF0
aW9ucyA9IGlzTWF0cml4QW5pbWF0aW9uID8gMSA6IG9wZXJhdGlvbnMtPnNpemUoKTsKIAogICAg
IGJvb2wgcmV2ZXJzZUFuaW1hdGlvbkxpc3QgPSB0cnVlOwotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgJiYgIVBMQVRGT1JNKFdJTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAgJiYgIVBMQVRGT1JNKFdJTikKICAgICAgICAgLy8gT2xk
IHZlcnNpb25zIG9mIENvcmUgQW5pbWF0aW9uIGFwcGx5IGFuaW1hdGlvbnMgaW4gcmV2ZXJzZSBv
cmRlciAoPHJkYXI6Ly9wcm9ibGVtLzcwOTU2Mzg+KSBzbyB3ZSBuZWVkIHRvIGZsaXAgdGhlIGxp
c3QuCiAgICAgICAgIC8vIHRvIGJlIG5vbi1hZGRpdGl2ZS4gRm9yIGJpbmFyeSBjb21wYXRpYmls
aXR5LCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIENvcmUgQW5pbWF0aW9uIHByZXNlcnZlcyB0aGlz
IGJlaGF2aW9yIGZvciBhcHBsaWNhdGlvbnMgbGlua2VkCiAgICAgICAgIC8vIG9uIG9yIGJlZm9y
ZSBTbm93IExlb3BhcmQuCkBAIC0yMzkyLDcgKzIzOTIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBib3JkZXJXaWR0aCkK
IEZsb2F0U2l6ZSBHcmFwaGljc0xheWVyQ0E6OmNvbnN0cmFpbmVkU2l6ZSgpIGNvbnN0CiB7CiAg
ICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZSA9IG1fc2l6ZTsKLSNpZiBkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID09IDEwNjAKICAgICBmbG9hdCB0aWxlQ29sdW1ucyA9IGNlaWxmKG1fc2l6ZS53aWR0aCgpIC8g
a1RpbGVkTGF5ZXJUaWxlU2l6ZSk7CiAgICAgZmxvYXQgdGlsZVJvd3MgPSBjZWlsZihtX3NpemUu
aGVpZ2h0KCkgLyBrVGlsZWRMYXllclRpbGVTaXplKTsKICAgICBkb3VibGUgbnVtVGlsZXMgPSB0
aWxlQ29sdW1ucyAqIHRpbGVSb3dzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCAwMDJiN2EwLi42N2UyNGMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNB
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBTGF5ZXIuaApAQCAtMjEzLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByaW50VHJl
ZSgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHZvaWQgc3luY2hyb25vdXNseURpc3BsYXlU
aWxlc0luUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5tbQppbmRleCAzYTdhYzc4Li44NDBiYzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMu
bW0KQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1l
KENGVGltZUludGVydmFsIHQpCiAKIEBlbmQKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
IEBpbnRlcmZhY2UgQ0FUaWxlZExheWVyKEdyYXBoaWNzTGF5ZXJDQVByaXZhdGUpCiAtICh2b2lk
KWRpc3BsYXlJblJlY3Q6KENHUmVjdClyIGxldmVsT2ZEZXRhaWw6KGludClsb2Qgb3B0aW9uczoo
TlNEaWN0aW9uYXJ5ICopZGljdDsKIC0gKEJPT0wpY2FuRHJhd0NvbmN1cnJlbnRseTsKQEAgLTEw
Myw3ICsxMDMsNyBAQCBzdGF0aWMgZG91YmxlIG1lZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1l
SW50ZXJ2YWwgdCkKIAogQGludGVyZmFjZSBDQUxheWVyKFByaXZhdGUpCiAtICh2b2lkKXNldENv
bnRlbnRzQ2hhbmdlZDsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAtICh2b2lkKXNldEFj
Y2VsZXJhdGVzRHJhd2luZzooQk9PTClmbGFnOwogLSAoQk9PTClhY2NlbGVyYXRlc0RyYXdpbmc7
CiAjZW5kaWYKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0TWFz
a3NUb0JvdW5kcyhib29sIHZhbHVlKQogCiBib29sIFBsYXRmb3JtQ0FMYXllcjo6YWNjZWxlcmF0
ZXNEcmF3aW5nKCkgY29uc3QKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgcmV0
dXJuIFttX2xheWVyLmdldCgpIGFjY2VsZXJhdGVzRHJhd2luZ107CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKQEAgLTU2Myw3ICs1NjMsNyBAQCBib29sIFBsYXRmb3JtQ0FMYXllcjo6YWNjZWxl
cmF0ZXNEcmF3aW5nKCkgY29uc3QKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldEFjY2VsZXJh
dGVzRHJhd2luZyhib29sIGFjY2VsZXJhdGVzRHJhd2luZykKIHsKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIu
Z2V0KCkgc2V0QWNjZWxlcmF0ZXNEcmF3aW5nOmFjY2VsZXJhdGVzRHJhd2luZ107CiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwpAQCAtOTEwLDcgKzkxMCw3IEBAIHZvaWQgUGxhdGZvcm1D
QUxheWVyOjpzZXRUaW1lT2Zmc2V0KENGVGltZUludGVydmFsIHZhbHVlKQogCiBmbG9hdCBQbGF0
Zm9ybUNBTGF5ZXI6OmNvbnRlbnRzU2NhbGUoKSBjb25zdAogewotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgY29udGVudHNTY2FsZV07CiAjZWxz
ZQogICAgIHJldHVybiAxOwpAQCAtOTE5LDcgKzkxOSw3IEBAIGZsb2F0IFBsYXRmb3JtQ0FMYXll
cjo6Y29udGVudHNTY2FsZSgpIGNvbnN0CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250
ZW50c1NjYWxlKGZsb2F0IHZhbHVlKQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9sYXllci5nZXQoKSBzZXRDb250
ZW50c1NjYWxlOnZhbHVlXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC05Mzcs
NyArOTM3LDcgQEAgVGlsZWRCYWNraW5nKiBQbGF0Zm9ybUNBTGF5ZXI6OnRpbGVkQmFja2luZygp
CiAgICAgcmV0dXJuIFt0aWxlQ2FjaGVMYXllciB0aWxlZEJhY2tpbmddOwogfQogCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnN5bmNocm9ub3VzbHlE
aXNwbGF5VGlsZXNJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmIChtX2xh
eWVyVHlwZSAhPSBMYXllclR5cGVXZWJUaWxlZExheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0KaW5kZXggNTlkOGIxZi4u
NjU2ODJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1RpbGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvVGlsZUNhY2hlLm1tCkBAIC0zNiw3ICszNiw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBAaW50ZXJmYWNlIENBTGF5ZXIgKFdl
YkNBTGF5ZXJEZXRhaWxzKQogLSAodm9pZClzZXRBY2NlbGVyYXRlc0RyYXdpbmc6KEJPT0wpZmxh
ZzsKIEBlbmQKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFRpbGVDYWNoZTo6c2V0U2NhbGUoQ0dG
bG9hdCBzY2FsZSkKICAgICBpZiAobV9zY2FsZSA9PSBzY2FsZSAmJiBtX2RldmljZVNjYWxlRmFj
dG9yID09IGRldmljZVNjYWxlRmFjdG9yKQogICAgICAgICByZXR1cm47CiAKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgVmVjdG9yPEZsb2F0UmVjdD4gZGlydHlSZWN0czsKIAogICAg
IG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsKQEAgLTE4Miw3ICsxODIs
NyBAQCB2b2lkIFRpbGVDYWNoZTo6c2V0U2NhbGUoQ0dGbG9hdCBzY2FsZSkKIAogdm9pZCBUaWxl
Q2FjaGU6OnNldEFjY2VsZXJhdGVzRHJhd2luZyhib29sIGFjY2VsZXJhdGVzRHJhd2luZykKIHsK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5n
ID09IGFjY2VsZXJhdGVzRHJhd2luZykKICAgICAgICAgcmV0dXJuOwogCkBAIC00MDEsNyArNDAx
LDcgQEAgUmV0YWluUHRyPFdlYlRpbGVMYXllcj4gVGlsZUNhY2hlOjpjcmVhdGVUaWxlTGF5ZXIo
Y29uc3QgSW50UmVjdCYgdGlsZVJlY3QpCiAgICAgW2xheWVyLmdldCgpIHNldE5hbWU6QCJUaWxl
Il07CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBbbGF5ZXIuZ2V0
KCkgc2V0Q29udGVudHNTY2FsZTptX2RldmljZVNjYWxlRmFjdG9yXTsKICAgICBbbGF5ZXIuZ2V0
KCkgc2V0QWNjZWxlcmF0ZXNEcmF3aW5nOm1fYWNjZWxlcmF0ZXNEcmF3aW5nXTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwCmluZGV4IDc0ODk0NjguLjk3MjM3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAKQEAgLTU0LDEyICs1NCwxMiBAQAogCiAjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0o
Q0hST01JVU0pICYmIE9TKERBUldJTikpCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogLy8gQnVpbGRpbmcg
b24gMTAuNiBvciBsYXRlcjoga0NHSW50ZXJwb2xhdGlvbk1lZGl1bSBpcyBkZWZpbmVkIGluIHRo
ZSBDR0ludGVycG9sYXRpb25RdWFsaXR5IGVudW0uCiAjZGVmaW5lIEhBVkVfQ0dfSU5URVJQT0xB
VElPTl9NRURJVU0gMQogI2VuZGlmCiAKLSNpZm5kZWYgVEFSR0VUSU5HX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIC8vIFRhcmdldGluZyAxMC42
IG9yIGxhdGVyOiB1c2Uga0NHSW50ZXJwb2xhdGlvbk1lZGl1bS4KICNkZWZpbmUgV1RGX1VTRV9D
R19JTlRFUlBPTEFUSU9OX01FRElVTSAxCiAjZW5kaWYKQEAgLTExODEsNyArMTE4MSw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIG9m
ZnNldCwgZmxvYXQgYmx1ciwgY29uCiAgICAgYmx1clJhZGl1cyA9IG1pbihibHVyUmFkaXVzLCBu
YXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoMTAwMC4wKSk7CiAKIAotI2lmIGRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDcwCiAgICAgaWYgKCFpc0FjY2VsZXJh
dGVkQ29udGV4dCgpKSB7CiAgICAgICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS81
NTM5Mzg4PiBieSBlbnN1cmluZyB0aGF0IHRoZSBvZmZzZXRzIHdpbGwgZ2V0IHRydW5jYXRlZAog
ICAgICAgICAvLyB0byB0aGUgZGVzaXJlZCBpbnRlZ2VyLiBBbHNvIHNlZTogPHJkYXI6Ly9wcm9i
bGVtLzEwMDU2Mjc3PgpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgSW50ZXJwb2xhdGlvblF1YWxpdHkg
R3JhcGhpY3NDb250ZXh0OjppbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QKIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRBbGxvd3NGb250U21vb3RoaW5nKGJvb2wgYWxsb3dzRm9udFNt
b290aGluZykKIHsKICAgICBVTlVTRURfUEFSQU0oYWxsb3dzRm9udFNtb290aGluZyk7Ci0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNjAKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29u
dGV4dCgpOwogICAgIENHQ29udGV4dFNldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCwgYWxs
b3dzRm9udFNtb290aGluZyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggODE5ODJhMS4uZTUxYzU3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDRy5jcHAKQEAgLTUyLDcgKzUyLDcgQEAKICNpbmNsdWRlIDxJT1N1cmZhY2UvSU9T
dXJmYWNlLmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNzAKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNlbmRpZgogCkBAIC0xODMsNyArMTgzLDcgQEAgSW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZQogICAgIG1fY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgbV9j
b250ZXh0LT50cmFuc2xhdGUoMCwgLXNpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2V0
SXNBY2NlbGVyYXRlZENvbnRleHQoYWNjZWxlcmF0ZVJlbmRlcmluZyk7Ci0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA3MAogICAgIG1fZGF0YS5tX2xhc3RGbHVzaFRpbWUgPSBjdXJyZW50VGltZU1TKCk7CiAjZW5k
aWYKICAgICBzdWNjZXNzID0gdHJ1ZTsKQEAgLTE5NSw3ICsxOTUsNyBAQCBJbWFnZUJ1ZmZlcjo6
fkltYWdlQnVmZmVyKCkKIAogR3JhcGhpY3NDb250ZXh0KiBJbWFnZUJ1ZmZlcjo6Y29udGV4dCgp
IGNvbnN0CiB7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA3MAogICAgIC8vIEZvcmNlIGEgZmx1c2ggaWYgbGFz
dCBmbHVzaCB3YXMgbW9yZSB0aGFuIDIwbXMgYWdvCiAgICAgaWYgKG1fY29udGV4dC0+aXNBY2Nl
bGVyYXRlZENvbnRleHQoKSkgewogICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUgPSBjdXJyZW50
VGltZU1TKCkgLSBtX2RhdGEubV9sYXN0Rmx1c2hUaW1lOwpAQCAtMjUwLDcgKzI1MCw3IEBAIE5h
dGl2ZUltYWdlUHRyIEltYWdlQnVmZmVyOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSBjb3B5QmVoYXZpb3IpIGNvbnN0CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19T
VE9SRSkKICAgICBlbHNlIHsKICAgICAgICAgaW1hZ2UgPSB3a0lPU3VyZmFjZUNvbnRleHRDcmVh
dGVJbWFnZShjb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpKTsKLSNpZiBkZWZpbmVkKEJVSUxE
SU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDcw
CiAgICAgICAgIG1fZGF0YS5tX2xhc3RGbHVzaFRpbWUgPSBjdXJyZW50VGltZU1TKCk7CiAjZW5k
aWYKICAgICB9CkBAIC0zMTAsNyArMzEwLDcgQEAgUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJh
eT4gSW1hZ2VCdWZmZXI6OmdldFVubXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRSZWMKIHsK
ICAgICBpZiAobV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKSB7CiAgICAgICAgIENH
Q29udGV4dEZsdXNoKGNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCkpOwotI2lmIGRlZmluZWQo
QlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNzAKICAgICAgICAgbV9kYXRhLm1fbGFzdEZsdXNoVGltZSA9IGN1cnJlbnRUaW1lTVMoKTsK
ICNlbmRpZgogICAgIH0KQEAgLTMyMSw3ICszMjEsNyBAQCBQYXNzUmVmUHRyPFVpbnQ4Q2xhbXBl
ZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRS
ZQogewogICAgIGlmIChtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkpIHsKICAgICAg
ICAgQ0dDb250ZXh0Rmx1c2goY29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKSk7Ci0jaWYgZGVm
aW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA3MAogICAgICAgICBtX2RhdGEubV9sYXN0Rmx1c2hUaW1lID0gY3VycmVudFRpbWVN
UygpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCmluZGV4IDVlM2FlNzguLjY0OWQ5
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyRGF0YUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgSW1hZ2VCdWZmZXJEYXRh
OjpJbWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYpCiAKICNpZiBVU0UoQUNDRUxFUkFURSkK
IAotI2lmbmRlZiBUQVJHRVRJTkdfU05PV19MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01BWF9BTExPV0VEID49IDEwNzAKIHN0YXRpYyBib29sIGhhdmVWSW1hZ2VSb3VuZGluZ0Vycm9y
Rml4KCkgeyByZXR1cm4gdHJ1ZTsgfQogI2Vsc2UKIC8vIFRoZSB2SW1hZ2UgdW5wcmVtdWx0aXBs
eSByb3V0aW5lIGhhZCBhIHJvdW5kaW5nIGJ1ZyBiZWZvcmUgMTAuNi43IDxyZGFyOi8vcHJvYmxl
bS84NjMxNTQ4PgpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgYm9vbCBoYXZlVkltYWdlUm91bmRp
bmdFcnJvckZpeCgpCiAgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gKEdlc3RhbHQoZ2VzdGFsdFN5
c3RlbVZlcnNpb24sICZ2ZXJzaW9uKSA9PSBub0VyciAmJiB2ZXJzaW9uID4gMHgxMDY2KTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQotI2VuZGlmIC8vIFRBUkdFVElOR19TTk9XX0xFT1BBUkQKKyNl
bmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTA3MAogCiAjaWYgVVNF
KElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKIHN0YXRpYyB2b2lkIGNvbnZlcnRTY2Fu
bGluZSh2b2lkKiBkYXRhLCBzaXplX3QgdGlsZU51bWJlciwgYm9vbCBwcmVtdWx0aXBseSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
RGF0YUNHLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckRhdGFDRy5oCmluZGV4IDYyMzNjNmMuLmVhYmUxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaApAQCAtMzAs
NyArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVWlu
dDhDbGFtcGVkQXJyYXkuaD4KIAotI2lmIChQTEFURk9STShNQUMpICYmIFVTRShDQSkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSkKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBVU0UoQ0EpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MCkKICNkZWZpbmUgV1RGX1VTRV9JT1NVUkZBQ0VfQ0FO
VkFTX0JBQ0tJTkdfU1RPUkUgMQogI2VuZGlmCiAKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgog
ICAgIENoZWNrZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBtX2J5dGVzUGVyUm93OwogICAg
IENHQ29sb3JTcGFjZVJlZiBtX2NvbG9yU3BhY2U7CiAgICAgUmV0YWluUHRyPElPU3VyZmFjZVJl
Zj4gbV9zdXJmYWNlOwotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNzAKICAgICBtdXRhYmxlIGRvdWJsZSBtX2xh
c3RGbHVzaFRpbWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCBmZWQ5MTFhLi45OTdmNGJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29u
c3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QKICAgICAvLyBGSVhNRTogV2UgY2Fubm90IHVz
ZSBDR0NvbnRleHREcmF3VGlsZWRJbWFnZSB3aXRoIHNjYWxlZCB0aWxlcyBvbiBMZW9wYXJkLCBi
ZWNhdXNlIGl0IHN1ZmZlcnMgZnJvbSByb3VuZGluZyBlcnJvcnMuICBTbm93IExlb3BhcmQgaXMg
b2suCiAgICAgZmxvYXQgc2NhbGVkVGlsZVdpZHRoID0gdGlsZVJlY3Qud2lkdGgoKSAqIG5hcnJv
d1ByZWNpc2lvblRvRmxvYXQocGF0dGVyblRyYW5zZm9ybS5hKCkpOwogICAgIGZsb2F0IHcgPSBD
R0ltYWdlR2V0V2lkdGgodGlsZUltYWdlKTsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgaWYgKHcgPT0g
c2l6ZSgpLndpZHRoKCkgJiYgaCA9PSBzaXplKCkuaGVpZ2h0KCkgJiYgc2NhbGVkVGlsZVdpZHRo
ID09IHRpbGVSZWN0LndpZHRoKCkgJiYgc2NhbGVkVGlsZUhlaWdodCA9PSB0aWxlUmVjdC5oZWln
aHQoKSkKICNlbHNlCiAgICAgaWYgKHcgPT0gc2l6ZSgpLndpZHRoKCkgJiYgaCA9PSBzaXplKCku
aGVpZ2h0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IDQzMzUzNjUuLjU1YmQ1YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIEltYWdlU291cmNlOjp+SW1hZ2VTb3VyY2UoKQogCiB2b2lkIEltYWdl
U291cmNlOjpjbGVhcihib29sIGRlc3Ryb3lBbGxGcmFtZXMsIHNpemVfdCwgU2hhcmVkQnVmZmVy
KiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
ICAgIC8vIFJlY2VudCB2ZXJzaW9ucyBvZiBJbWFnZUlPIGRpc2NhcmQgcHJldmlvdXNseSBkZWNv
ZGVkIGltYWdlIGZyYW1lcyBpZiB0aGUgY2xpZW50CiAgICAgLy8gYXBwbGljYXRpb24gbm8gbG9u
Z2VyIGhvbGRzIHJlZmVyZW5jZXMgdG8gdGhlbSwgc28gdGhlcmUncyBubyBuZWVkIHRvIHRocm93
IGF3YXkKICAgICAvLyB0aGUgZGVjb2RlciB1bmxlc3Mgd2UncmUgZXhwbGljaXRseSBhc2tlZCB0
byBkZXN0cm95IGFsbCBvZiB0aGUgZnJhbWVzLgpAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBD
RkRpY3Rpb25hcnlSZWYgaW1hZ2VTb3VyY2VPcHRpb25zKEltYWdlU291cmNlOjpTaG91bGRTa2lw
TWV0YWRhdGEgc2tpcE1lCiAgICAgaWYgKCFvcHRpb25zKSB7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIG51bU9wdGlvbnMgPSAzOwogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDw9IDEwNzAKICAgICAgICAgLy8gTGlvbiBhbmQgU25vdyBMZW9wYXJkIG9u
bHkgcmV0dXJuIE9yaWVudGF0aW9uIHdoZW4ga0NHSW1hZ2VTb3VyY2VTa2lwTWV0YURhdGEgaXMg
ZmFsc2UsCiAgICAgICAgIC8vIGFuZCBpbmNvcnJlY3RseSByZXR1cm4gY2FjaGVkIG1ldGFkYXRh
IGlmIGFuIGltYWdlIGlzIHF1ZXJpZWQgb25jZSB3aXRoIGtDR0ltYWdlU291cmNlU2tpcE1ldGFE
YXRhIHRydWUKICAgICAgICAgLy8gYW5kIHRoZW4gc3Vic2VxdWVudGx5IHdpdGgga0NHSW1hZ2VT
b3VyY2VTa2lwTWV0YURhdGEgZmFsc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvUGF0aENHLmNwcAppbmRleCA2Y2M5Mzc4Li42YzRlYjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAKQEAgLTE3NSw3ICsxNzUs
NyBAQCBGbG9hdFJlY3QgUGF0aDo6Ym91bmRpbmdSZWN0KCkgY29uc3QKICAgICAvLyBkb2VzIG5v
dCwgYnV0IG9ubHkgZXhpc3RzIG9uIDEwLjYgYW5kIGFib3ZlLgogCiAgICAgQ0dSZWN0IGJvdW5k
ID0gQ0dSZWN0WmVybzsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIGJvdW5kID0gQ0dQYXRo
R2V0UGF0aEJvdW5kaW5nQm94KG1fcGF0aCk7CiAjZWxzZQogICAgIGJvdW5kID0gQ0dQYXRoR2V0
Qm91bmRpbmdCb3gobV9wYXRoKTsKQEAgLTIzNiw3ICsyMzYsNyBAQCB2b2lkIFBhdGg6OmFkZEFy
Y1RvKGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBGbG9hdFBvaW50JiBwMiwgZmxvYXQgcmFk
aXVzKQogCiB2b2lkIFBhdGg6OnBsYXRmb3JtQWRkUGF0aEZvclJvdW5kZWRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBGbG9h
dFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbUxlZnRSYWRpdXMs
IGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpCiB7Ci0jaWYgUExBVEZPUk0oTUFD
KSAmJiAoIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGJvb2wgZXF1YWxXaWR0aHMgPSAodG9wTGVmdFJh
ZGl1cy53aWR0aCgpID09IHRvcFJpZ2h0UmFkaXVzLndpZHRoKCkgJiYgdG9wUmlnaHRSYWRpdXMu
d2lkdGgoKSA9PSBib3R0b21MZWZ0UmFkaXVzLndpZHRoKCkgJiYgYm90dG9tTGVmdFJhZGl1cy53
aWR0aCgpID09IGJvdHRvbVJpZ2h0UmFkaXVzLndpZHRoKCkpOwogICAgIGJvb2wgZXF1YWxIZWln
aHRzID0gKHRvcExlZnRSYWRpdXMuaGVpZ2h0KCkgPT0gYm90dG9tTGVmdFJhZGl1cy5oZWlnaHQo
KSAmJiBib3R0b21MZWZ0UmFkaXVzLmhlaWdodCgpID09IHRvcFJpZ2h0UmFkaXVzLmhlaWdodCgp
ICYmIHRvcFJpZ2h0UmFkaXVzLmhlaWdodCgpID09IGJvdHRvbVJpZ2h0UmFkaXVzLmhlaWdodCgp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IGYzMGIxODEuLjUxNjg2MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQ
bGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTU5LDEzICs1OSwxMyBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKE5TRm9udCAqbnNGb250LCBmbG9hdCBzaXpl
LCBib29sIGlzUHJpbnRlckZvbgogICAgIENHRm9udFJlZiBjZ0ZvbnQgPSAwOwogICAgIGxvYWRG
b250KG5zRm9udCwgc2l6ZSwgbV9mb250LCBjZ0ZvbnQpOwogICAgIAotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAvLyBGSVhN
RTogQ2hyb21pdW06IFRoZSBmb2xsb3dpbmcgY29kZSBpc24ndCBjb3JyZWN0IGZvciB0aGUgQ2hy
b21pdW0gcG9ydCBzaW5jZSB0aGUgc2FuZGJveCBtaWdodAogICAgIC8vIGhhdmUgYmxvY2tlZCBm
b250IGxvYWRpbmcsIGluIHdoaWNoIGNhc2Ugd2UnbGwgb25seSBoYXZlIHRoZSByZWFsIGxvYWRl
ZCBmb250IGZpbGUgYWZ0ZXIgdGhlIGNhbGwgdG8gbG9hZEZvbnQoKS4KICAgICB7CiAgICAgICAg
IENURm9udFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKHRv
Q1RGb250UmVmKG1fZm9udCkpOwogICAgICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gdHJhaXRz
ICYga0NURm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9T
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZP
Uk0oSU9TKQogICAgICAgICBtX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZSA9IHRyYWl0cyAmIGtD
VEZvbnRDb21wb3NpdGVUcmFpdDsKICNlbmRpZgogICAgIH0KQEAgLTE1MCwxMSArMTUwLDExIEBA
IHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6c2V0Rm9udChOU0ZvbnQgKmZvbnQpCiAjZW5kaWYKICAg
ICAKICAgICBtX2NnRm9udC5hZG9wdENGKGNnRm9udCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHsKICAgICAgICAgQ1RG
b250U3ltYm9saWNUcmFpdHMgdHJhaXRzID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZv
bnRSZWYobV9mb250KSk7CiAgICAgICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSB0cmFpdHMgJiBr
Q1RGb250Q29sb3JHbHlwaHNUcmFpdDsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgIG1faXNDb21wb3NpdGVGb250UmVmZXJl
bmNlID0gdHJhaXRzICYga0NURm9udENvbXBvc2l0ZVRyYWl0OwogI2VuZGlmCiAgICAgfQpAQCAt
MjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBib29sIGNhblNldENhc2NhZGVMaXN0Rm9yQ3VzdG9tRm9u
dCgpCiAgICAgfQogCiAgICAgcmV0dXJuIHN5c3RlbVZlcnNpb24gPj0gMHgxMDYwOwotI2VsaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNlbGlmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IGYyYjg2YjIuLmNjMTczMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNjI0LDcgKzE2MjQsNyBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNGdWxsc2NyZWVuKCkgY29u
c3QKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS83
Mzg5OTQ1PgogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
Y3BwCmluZGV4IGE5MzI0ZDMuLmZlMzIzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUw
CiAvLyBVbmRlZmluZWQgd2hlbiBjb21waWxpbmcgYWdhaW5zIHRoZSAxMC41IFNESy4KICNkZWZp
bmUga0NUVmVyc2lvbk51bWJlcjEwXzYgMHgwMDAzMDAwMAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVy
Q29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTUzMDQ1My4uOTcxNzhhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29u
dHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQpAQCAtMzksNyArMzksNyBAQAog
I2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNTAKIC8vIFRoZSBmb2xsb3dpbmcgc3ltYm9scyBhcmUgU1BJIGluIDEwLjUuCiBleHRlcm4g
IkMiIHsKIHZvaWQgQ1RSdW5HZXRBZHZhbmNlcyhDVFJ1blJlZiBydW4sIENGUmFuZ2UgcmFuZ2Us
IENHU2l6ZSBidWZmZXJbXSk7CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBDb21wbGV4VGV4dENv
bnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzQ29yZVRleHQoY29u
c3QgVUMKICAgICAgICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBsdHJUeXBlc2V0dGVyT3B0aW9u
cyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcHRpb25LZXlzLCBs
dHJPcHRpb25WYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgob3B0aW9uS2V5cyksICZrQ0ZDb3B5U3Ry
aW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpOwogICAgICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHJ0bFR5cGVzZXR0ZXJPcHRpb25z
ID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9wdGlvbktleXMsIHJ0
bE9wdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChvcHRpb25LZXlzKSwgJmtDRkNvcHlTdHJp
bmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNr
cyk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBzdHJp
bmdBdHRyaWJ1dGVzLmdldCgpIH07CiAgICAgICAgIFJldGFpblB0cjxDVFR5cGVzZXR0ZXJSZWY+
IHR5cGVzZXR0ZXIoQWRvcHRDRiwgd2tDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3Zp
ZGVyQW5kT3B0aW9ucygmcHJvdmlkZVN0cmluZ0FuZEF0dHJpYnV0ZXMsIDAsICZpbmZvLCBtX3J1
bi5sdHIoKSA/IGx0clR5cGVzZXR0ZXJPcHRpb25zIDogcnRsVHlwZXNldHRlck9wdGlvbnMpKTsK
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQppbmRleCA5MWRkNDI2Li40OWU4MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KQEAgLTUyLDcg
KzUyLDcgQEAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUZvbnRDYWNoZSh2b2lkKikKICAgICBmb250
Q2FjaGUoKS0+aW52YWxpZGF0ZSgpOwogfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIHN0YXRp
YyB2b2lkIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFj
ayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5h
bWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewogICAgIEFTU0VSVF9VTlVTRUQo
b2JzZXJ2ZXIsIG9ic2VydmVyID09IGZvbnRDYWNoZSgpKTsKQEAgLTY5LDcgKzY5LDcgQEAgc3Rh
dGljIHZvaWQgZm9udENhY2hlQVRTTm90aWZpY2F0aW9uQ2FsbGJhY2soQVRTRm9udE5vdGlmaWNh
dGlvbkluZm9SZWYsIHZvaWQqKQogdm9pZCBGb250Q2FjaGU6OnBsYXRmb3JtSW5pdCgpCiB7CiAg
ICAgd2tTZXRVcEZvbnRDYWNoZSgpOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2Vu
dGVyKCksIHRoaXMsIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25D
YWxsYmFjaywga0NURm9udE1hbmFnZXJSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9u
LCAwLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckRlbGl2ZXJJbW1lZGlhdGVseSk7
CiAjZWxzZQogICAgIC8vIGtDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJlZEZvbnRzQ2hhbmdlZE5vdGlm
aWNhdGlvbiBkb2VzIG5vdCBleGlzdCBvbiBMZW9wYXJkIGFuZCBlYXJsaWVyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IGNmZGRmMzYuLmIxOTI2ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKIAogRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKQogewotI2lmZGVmIEJVSUxE
SU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEw
NTAKICAgICBpZiAobV9hdHNDb250YWluZXIpCiAgICAgICAgIEFUU0ZvbnREZWFjdGl2YXRlKG1f
YXRzQ29udGFpbmVyLCBOVUxMLCBrQVRTT3B0aW9uRmxhZ3NEZWZhdWx0KTsKICNlbmRpZgpAQCAt
MTE5LDcgKzExOSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCiAKICAgICBSZXRhaW5QdHI8Q0dGb250
UmVmPiBjZ0ZvbnRSZWY7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFJldGFpblB0cjxDRkRhdGFS
ZWY+IGJ1ZmZlckRhdGEoQWRvcHRDRiwgYnVmZmVyLT5jcmVhdGVDRkRhdGEoKSk7CiAgICAgUmV0
YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBkYXRhUHJvdmlkZXIoQWRvcHRDRiwgQ0dEYXRhUHJv
dmlkZXJDcmVhdGVXaXRoQ0ZEYXRhKGJ1ZmZlckRhdGEuZ2V0KCkpKTsKIApAQCAtMTU3LDcgKzE1
Nyw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCiAgICAgICAgIEFUU0ZvbnREZWFjdGl2YXRlKGNvbnRh
aW5lclJlZiwgTlVMTCwga0FUU09wdGlvbkZsYWdzRGVmYXVsdCk7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2VuZGlm
IC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiAgICAgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YSogZm9udEN1c3RvbVBsYXRmb3JtRGF0YSA9IG5ldyBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhKGNvbnRhaW5lclJlZiwgY2dGb250UmVmLmxlYWtSZWYoKSk7CiAjaWYgVVNF
KFNLSUFfT05fTUFDX0NIUk9NSVVNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udE1hYy5tbQppbmRleCA0YWZiNWZiLi44NGQwYzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQpAQCAtNzEsNyArNzEs
NyBAQCBzdGF0aWMgYm9vbCBoYXNCcm9rZW5DVEZvbnRHZXRWZXJ0aWNhbFRyYW5zbGF0aW9uc0Zv
ckdseXBocygpCiAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIHJl
c3VsdDsKLSNlbGlmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2VsaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgcmV0dXJuIHRydWU7CiAj
ZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTExOSw3ICsxMTksNyBAQCBzdGF0aWMgdm9pZCBz
aG93R2x5cGhzV2l0aEFkdmFuY2VzKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBTaW1w
bGVGb250RGF0YQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIENHQ29udGV4dFNob3dHbHlw
aHNXaXRoQWR2YW5jZXMoY29udGV4dCwgZ2x5cGhzLCBhZHZhbmNlcywgY291bnQpOwogICAgIH0K
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgZWxzZSB7CiAgICAgICAgIGlmICghY291bnQpCiAgICAgICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhp
Y3NDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dy
YXBoaWNzQ29udGV4dE1hYy5tbQppbmRleCBlMDg1OTFkLi4yOTY2NmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRl
eHRNYWMubW0KQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xp
bmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgdwogICAg
ICAgICAgICAgcGF0dGVybkNvbG9yID0gZ3JhbW1hclBhdHRlcm5Db2xvci5nZXQoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICAgICAgLy8gVG8gc3VwcG9ydCBjb3JyZWN0aW9uIHBhbmVsLgogICAgICAgICBj
YXNlIERvY3VtZW50TWFya2VyQXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudExpbmVTdHlsZToKICAg
ICAgICAgY2FzZSBEb2N1bWVudE1hcmtlckRpY3RhdGlvbkFsdGVybmF0aXZlc0xpbmVTdHlsZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBjZDE2MWEzLi4yZTg0OWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZShjb25zdCBTdHJpbmcmIHVybCkKICAg
ICBOU011dGFibGVEaWN0aW9uYXJ5ICptb3ZpZUF0dHJpYnV0ZXMgPSBjb21tb25Nb3ZpZUF0dHJp
YnV0ZXMoKTsgICAgCiAgICAgW21vdmllQXR0cmlidXRlcyBzZXRWYWx1ZTpjb2NvYVVSTCBmb3JL
ZXk6UVRNb3ZpZVVSTEF0dHJpYnV0ZV07CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIENG
RGljdGlvbmFyeVJlZiBwcm94eVNldHRpbmdzID0gQ0ZOZXR3b3JrQ29weVN5c3RlbVByb3h5U2V0
dGluZ3MoKTsKICAgICBDRkFycmF5UmVmIHByb3hpZXNGb3JVUkwgPSBDRk5ldHdvcmtDb3B5UHJv
eGllc0ZvclVSTCgoQ0ZVUkxSZWYpY29jb2FVUkwsIHByb3h5U2V0dGluZ3MpOwogICAgIEJPT0wg
d2lsbFVzZVByb3h5ID0gWUVTOwpAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWUoTlNVUkwgKnVybCwgTlNEaWN0aW9uYXJ5ICptb3Zp
ZUF0dHJpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxl
Y3RvcjpAc2VsZWN0b3IoZGlkRW5kOikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZTpRVE1vdmllRGlkRW5kTm90aWZpY2F0aW9uIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6bV9xdE1vdmll
LmdldCgpXTsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjpAc2Vs
ZWN0b3IobGF5ZXJIb3N0Q2hhbmdlZDopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZTpAIldlYktpdExheWVySG9zdENoYW5nZWQiCkBAIC04NzYs
NyArODc2LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6aGFzQXVkaW8oKSBjb25z
dAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBwb3J0c0Z1bGxzY3JlZW4oKSBj
b25zdAogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vNzM4OTk0NT4KQEAgLTkwMyw3ICs5MDMsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9z
ZWRDYXB0aW9uc1Zpc2libAogICAgIGlmIChtZXRhRGF0YUF2YWlsYWJsZSgpKSB7CiAgICAgICAg
IHdrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyhtX3F0TW92aWUuZ2V0KCksIGNsb3NlZENh
cHRpb25zVmlzaWJsZSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBpZiAo
Y2xvc2VkQ2FwdGlvbnNWaXNpYmxlICYmIG1fcXRWaWRlb0xheWVyKSB7CiAgICAgICAgIC8vIENh
cHRpb25zIHdpbGwgYmUgcmVuZGVyZWQgdXBzaWRlIGRvd24gdW5sZXNzIHdlIGZsYWcgdGhlIG1v
dmllIGFzIGZsaXBwZWQgKGFnYWluKS4gU2VlIDxyZGFyOi8vNzQwODQ0MD4uCiAgICAgICAgIFtt
X3F0VmlkZW9MYXllci5nZXQoKSBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKQEAgLTEwMDEsNyAr
MTAwMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNhY2hlTW92aWVTY2FsZSgp
CiAgICAgTlNTaXplIGluaXRpYWxTaXplID0gTlNaZXJvU2l6ZTsKICAgICBOU1NpemUgbmF0dXJh
bFNpemUgPSBbW21fcXRNb3ZpZS5nZXQoKSBhdHRyaWJ1dGVGb3JLZXk6UVRNb3ZpZU5hdHVyYWxT
aXplQXR0cmlidXRlXSBzaXplVmFsdWVdOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAvLyBRVE1v
dmllQ3VycmVudFNpemVBdHRyaWJ1dGUgaXMgbm90IGFsbG93ZWQgd2l0aCBpbnN0YW5jZXMgb2Yg
UVRNb3ZpZSB0aGF0IGhhdmUgYmVlbiAKICAgICAvLyBvcGVuZWQgd2l0aCBRVE1vdmllT3BlbkZv
clBsYXliYWNrQXR0cmlidXRlLCBzbyBhc2sgZm9yIHRoZSBkaXNwbGF5IHRyYW5zZm9ybSBhdHRy
aWJ1dGUgaW5zdGVhZC4KICAgICBOU0FmZmluZVRyYW5zZm9ybSAqZGlzcGxheVRyYW5zZm9ybSA9
IFttX3F0TW92aWUuZ2V0KCkgYXR0cmlidXRlRm9yS2V5OkAiUVRNb3ZpZVByZWZlcnJlZFRyYW5z
Zm9ybUF0dHJpYnV0ZSJdOwpAQCAtMTIzNiw3ICsxMjM2LDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6ZGlkRW5kKCkKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKLSNpZiBkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNjAKIHN0YXRpYyBib29sIGxheWVySXNEZXNjZW5kZW50T2YoUGxhdGZvcm1MYXllciogY2hp
bGQsIFBsYXRmb3JtTGF5ZXIqIGRlc2NlbmRlbnQpCiB7CiAgICAgaWYgKCFjaGlsZCB8fCAhZGVz
Y2VuZGVudCkKQEAgLTEyNTMsNyArMTI1Myw3IEBAIHN0YXRpYyBib29sIGxheWVySXNEZXNjZW5k
ZW50T2YoUGxhdGZvcm1MYXllciogY2hpbGQsIFBsYXRmb3JtTGF5ZXIqIGRlc2NlbmRlbnQpCiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmxheWVySG9zdENoYW5nZWQoUGxhdGZvcm1M
YXllciogcm9vdExheWVyKQogewotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogICAgIGlmICgh
cm9vdExheWVyKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQppbmRleCBkNWQ1
NTYwLi5hNjk1NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqd2ViRmFsbGJhY2tGb250RmFtaWx5KHZvaWQpCiB9CiAKICNpZiAhRVJST1Jf
RElTQUJMRUQKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKSB8fCAoIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSkKKyNpZiBkZWZp
bmVkKF9fTFA2NF9fKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
IHN0YXRpYyBOU1N0cmluZyogcGF0aEZyb21Gb250KE5TRm9udCopCiB7CiAgICAgLy8gRk1HZXRB
VFNGb250UmVmRnJvbUZvbnQgaXMgbm90IGF2YWlsYWJsZS4gQXMgcGF0aEZyb21Gb250IGlzIG9u
bHkgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLApAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQg
U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCgpCiAgICAgTlNTdHJpbmcgKmZhbWlseU5hbWUg
PSBbbV9wbGF0Zm9ybURhdGEuZm9udCgpIGZhbWlseU5hbWVdOwogICAgIGlmIChbZmFtaWx5TmFt
ZSBpc0VxdWFsVG9TdHJpbmc6QCJUaW1lcyJdIHx8IFtmYW1pbHlOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpAIkhlbHZldGljYSJdIHx8IFtmYW1pbHlOYW1lIGlzRXF1YWxUb1N0cmluZzpAIkNvdXJpZXIi
XSkKICAgICAgICAgYXNjZW50ICs9IGZsb29yZigoKGFzY2VudCArIGRlc2NlbnQpICogMC4xNWYp
ICsgMC41Zik7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIGVsc2UgaWYgKFtmYW1pbHlOYW1l
IGlzRXF1YWxUb1N0cmluZzpAIkdlZXphIFBybyJdKSB7CiAgICAgICAgIC8vIEdlZXphIFBybyBo
YXMgZ2x5cGhzIHRoYXQgZHJhdyBzbGlnaHRseSBhYm92ZSB0aGUgYXNjZW50IG9yIGZhciBiZWxv
dyB0aGUgZGVzY2VudC4gQWRqdXN0CiAgICAgICAgIC8vIHRob3NlIHZlcnRpY2FsIG1ldHJpY3Mg
dG8gYmV0dGVyIG1hdGNoIHJlYWxpdHksIHNvIHRoYXQgZGlhY3JpdGljcyBhdCB0aGUgYm90dG9t
IG9mIG9uZSBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9X
ZWJMYXllci5oCmluZGV4IGJiMGY0NDQuLjBkMjQzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQ7CiB9CiAKLSNp
ZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDUwCiBAaW50ZXJmYWNlIENBTGF5ZXIoV2ViTGF5ZXJJbnRlcm5hbCkK
IC0gKENHQWZmaW5lVHJhbnNmb3JtKWNvbnRlbnRzVHJhbnNmb3JtOwogLSAodm9pZClzZXRDb250
ZW50c1RyYW5zZm9ybTooQ0dBZmZpbmVUcmFuc2Zvcm0pdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRleCA5N2U5ZjI4Li5lMDBhNGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVy
Lm1tCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVm
IGNvbnRleHQsIENBTGF5ZXIgKmxheWVyLCBXZWJDb3JlOjpQbGF0Zm9ybUNBCiAgICAgQWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQ29udGV4dEdldENUTShjb250ZXh0KTsKICAgICBUaGVt
ZU1hYzo6c2V0Rm9jdXNSaW5nQ2xpcFJlY3QodHJhbnNmb3JtLm1hcFJlY3QoY2xpcEJvdW5kcykp
OwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIF9fYmxvY2sgR3JhcGhpY3NDb250
ZXh0KiBjdHggPSAmZ3JhcGhpY3NDb250ZXh0OwogCiAgICAgd2tDQUxheWVyRW51bWVyYXRlUmVj
dHNCZWluZ0RyYXduV2l0aEJsb2NrKGxheWVyLCBjb250ZXh0LCBeKENHUmVjdCByZWN0KXsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCmluZGV4IDY3NTM0NDQuLmQ4MTNiZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtMjg0LDcgKzI4NCw3
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoR0MzRGNsYW1wZiBkZXB0aCkK
IGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnN5c3RlbUFsbG93c011bHRpc2FtcGxpbmdPbkFUSUNh
cmRzKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShNQUMpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIHJldHVybiB0cnVlOwogI2Vs
c2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9DdXJzb3JNYWMubW0KaW5kZXggZDIwODUzMy4uYWMyNGI4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgQ3Vyc29yOjpl
bnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBD
dXJzb3I6OkhhbmQ6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gW05TQ3Vyc29yIHBv
aW50aW5nSGFuZEN1cnNvcl07CiAjZWxzZQogICAgICAgICAvLyBUaGUgcG9pbnRpbmdIYW5kQ3Vy
c29yIGZyb20gTlNDdXJzb3IgZG9lcyBub3QgaGF2ZSBhIHNoYWRvdyBvbgpAQCAtOTksNyArOTks
NyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CiAjZWxzZQogICAgICAgICBtX3Bs
YXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIndhaXRDdXJzb3IiLCA3LCA3KTsKQEAg
LTEwNyw3ICsxMDcsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25z
dAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpIZWxwOgotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJIZWxwIik7CiAgICAgICAgIGlmIChtX3BsYXRm
b3JtQ3Vyc29yKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBD
dXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNhc2UgQ3Vyc29yOjpN
b3ZlOgogICAgIGNhc2UgQ3Vyc29yOjpNaWRkbGVQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNb3ZlIik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3Jt
Q3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm1vdmVDdXJzb3IiLCA3LCA3KTsKQEAgLTEyNiw3
ICsxMjYsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogCiAg
ICAgY2FzZSBDdXJzb3I6OkVhc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OkVhc3RQYW5uaW5n
OgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVFYXN0Iik7
CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoImVh
c3RSZXNpemVDdXJzb3IiLCAxNCwgNyk7CkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBDdXJzb3I6
OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFJl
c2l6ZToKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aCIpOwogI2Vsc2UKICAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJub3J0aFJlc2l6ZUN1cnNvciIsIDcs
IDEpOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNv
cigpIGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0UmVzaXplOgogICAgIGNhc2Ug
Q3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJSZXNpemVOb3J0aGVhc3QiKTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1D
dXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhFYXN0UmVzaXplQ3Vyc29yIiwgMTQsIDEp
OwpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigp
IGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXplOgogICAgIGNhc2UgQ3Vy
c29yOjpOb3J0aFdlc3RQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdr
Q3Vyc29yKCJSZXNpemVOb3J0aHdlc3QiKTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJz
b3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhXZXN0UmVzaXplQ3Vyc29yIiwgMCwgMCk7CkBA
IC0xNjIsNyArMTYyLDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29u
c3QKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291
dGhQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNp
emVTb3V0aCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVk
Q3Vyc29yKCJzb3V0aFJlc2l6ZUN1cnNvciIsIDcsIDE0KTsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2
b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogCiAgICAgY2FzZSBDdXJz
b3I6OlNvdXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6U291dGhFYXN0UGFubmluZzoK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplU291dGhlYXN0
Iik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3Io
InNvdXRoRWFzdFJlc2l6ZUN1cnNvciIsIDE0LCAxNCk7CkBAIC0xODAsNyArMTgwLDcgQEAgdm9p
ZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNhc2UgQ3Vyc29y
OjpTb3V0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmc6Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZVNvdXRod2VzdCIp
OwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJz
b3V0aFdlc3RSZXNpemVDdXJzb3IiLCAxLCAxNCk7CkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBD
dXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEN1cnNvcjo6V2VzdFJlc2l6ZToKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSB3a0N1cnNvcigiUmVzaXplV2VzdCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJ3ZXN0UmVzaXplQ3Vyc29yIiwgMSwgNyk7CkBAIC0xOTYs
NyArMTk2LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6ZToKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplTm9ydGhTb3V0aCIpOwog
I2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJub3J0
aFNvdXRoUmVzaXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNhc2UgQ3Vyc29yOjpFYXN0
V2VzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6V2VzdFBhbm5pbmc6Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBt
X3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZUVhc3RXZXN0Iik7CiAjZWxzZQogICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoImVhc3RXZXN0UmVzaXpl
Q3Vyc29yIiwgNywgNyk7CkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBs
YXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6
Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IHdrQ3Vyc29yKCJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKTsKICNlbHNlCiAgICAgICAgIG1f
cGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhFYXN0U291dGhXZXN0UmVz
aXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBDdXJzb3I6OmVuc3Vy
ZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNv
cjo6Tm9ydGhXZXN0U291dGhFYXN0UmVzaXplOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3QiKTsKICNlbHNlCiAgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhXZXN0U291dGhFYXN0
UmVzaXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBDdXJzb3I6OmVu
c3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1
cnNvcjo6VmVydGljYWxUZXh0OgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IFtOU0N1
cnNvciBJQmVhbUN1cnNvckZvclZlcnRpY2FsTGF5b3V0XTsKICNlbHNlCiAgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigidmVydGljYWxUZXh0Q3Vyc29yIiwgNywg
Nyk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29y
KCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q2VsbDoKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiQ2VsbCIpOwogICAgICAgICBpZiAo
bV9wbGF0Zm9ybUN1cnNvcikKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjU0LDcgKzI1NCw3IEBA
IHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDdXJzb3I6OkNvbnRleHRNZW51OgotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYw
CiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBbTlNDdXJzb3IgY29udGV4dHVhbE1lbnVDdXJz
b3JdOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29y
KCJjb250ZXh0TWVudUN1cnNvciIsIDMsIDIpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgQ3Vy
c29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBDdXJzb3I6OkFsaWFzOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJNYWtlQWxpYXMiKTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVh
dGVOYW1lZEN1cnNvcigiYWxpYXNDdXJzb3IiLCAxMSwgMyk7CkBAIC0yNzAsNyArMjcwLDcgQEAg
dm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEN1cnNvcjo6UHJvZ3Jlc3M6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICNlbHNlCiAgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigicHJvZ3Jlc3NDdXJzb3IiLCAzLCAyKTsK
QEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBj
b25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpOb0Ryb3A6Ci0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNjAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IFtOU0N1cnNvciBvcGVy
YXRpb25Ob3RBbGxvd2VkQ3Vyc29yXTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBjcmVhdGVOYW1lZEN1cnNvcigibm9Ecm9wQ3Vyc29yIiwgMywgMSk7CkBAIC0yODYsNyArMjg2
LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q29weToKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gW05TQ3Vyc29yIGRyYWdDb3B5Q3Vyc29yXTsKICNl
bHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigiY29weUN1
cnNvciIsIDMsIDIpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0
Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6Ok5v
dEFsbG93ZWQ6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IFtOU0N1cnNvciBvcGVyYXRpb25Ob3RBbGxvd2VkQ3Vyc29yXTsKICNlbHNlCiAgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm90QWxsb3dlZEN1cnNvciIs
IDExLCAxMSk7CkBAIC0zMDYsNyArMzA2LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3Jt
Q3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Wm9vbUlu
OgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJab29tSW4iKTsKICAg
ICAgICAgaWYgKG1fcGxhdGZvcm1DdXJzb3IpCiAgICAgICAgICAgICBicmVhazsKQEAgLTMxNSw3
ICszMTUsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tT3V0OgotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJab29tT3V0Iik7CiAgICAgICAgIGlmIChtX3BsYXRm
b3JtQ3Vyc29yKQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNwcAppbmRleCAxMDczMDg3Li40MTIy
NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGlzcGxheVNsZWVw
RGlzYWJsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5U2xl
ZXBEaXNhYmxlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxJT0tpdC9wd3JfbWd0
L0lPUE1MaWIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZmRlZiBCVUlMRElO
R19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUw
CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjZW5kaWYKIApAQCAtMzksMTEgKzM5LDEx
IEBAIHN0YXRpYyBjb25zdCBkb3VibGUgc3lzdGVtQWN0aXZpdHlJbnRlcnZhbCA9IDE7CiAKIERp
c3BsYXlTbGVlcERpc2FibGVyOjpEaXNwbGF5U2xlZXBEaXNhYmxlcihjb25zdCBjaGFyKiByZWFz
b24pCiAgICAgOiBtX2Rpc2FibGVEaXNwbGF5U2xlZXBBc3NlcnRpb24oMCkKLSNpZmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDUwCiAgICAgLCBtX3N5c3RlbUFjdGl2aXR5VGltZXIodGhpcywgJkRpc3BsYXlTbGVlcERpc2Fi
bGVyOjpzeXN0ZW1BY3Rpdml0eVRpbWVyRmlyZWQpCiAjZW5kaWYKIHsKLSNpZm5kZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2
MAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVhc29uQ0YoQWRvcHRDRiwgQ0ZTdHJpbmdD
cmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByZWFzb24sIGtDRlN0cmluZ0Vu
Y29kaW5nVVRGOCkpOwogICAgIElPUE1Bc3NlcnRpb25DcmVhdGVXaXRoTmFtZShrSU9QTUFzc2Vy
dGlvblR5cGVOb0Rpc3BsYXlTbGVlcCwga0lPUE1Bc3NlcnRpb25MZXZlbE9uLCByZWFzb25DRi5n
ZXQoKSwgJm1fZGlzYWJsZURpc3BsYXlTbGVlcEFzc2VydGlvbik7CiAjZWxzZQpAQCAtNTgsNyAr
NTgsNyBAQCBEaXNwbGF5U2xlZXBEaXNhYmxlcjo6fkRpc3BsYXlTbGVlcERpc2FibGVyKCkKICAg
ICBJT1BNQXNzZXJ0aW9uUmVsZWFzZShtX2Rpc2FibGVEaXNwbGF5U2xlZXBBc3NlcnRpb24pOwog
fQogICAgIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID09IDEwNTAKIHZvaWQgRGlzcGxheVNsZWVwRGlzYWJsZXI6OnN5c3Rl
bUFjdGl2aXR5VGltZXJGaXJlZChUaW1lcjxEaXNwbGF5U2xlZXBEaXNhYmxlcj4qKQogewogICAg
IFVwZGF0ZVN5c3RlbUFjdGl2aXR5KE92ZXJhbGxBY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuaAppbmRleCAyZTQ2NmRjMS4uYmRm
YmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVl
cERpc2FibGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVl
cERpc2FibGVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVP
UEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjZW5kaWYKIApAQCAtNDQsMTIgKzQ0LDEyIEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgRGlzcGxheVNsZWVwRGlzYWJsZXIoY29uc3QgY2hhciogcmVhc29uKTsKIAotI2lm
ZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID09IDEwNTAKICAgICB2b2lkIHN5c3RlbUFjdGl2aXR5VGltZXJGaXJlZChUaW1lcjxEaXNw
bGF5U2xlZXBEaXNhYmxlcj4qKTsKICNlbmRpZgogICAgIAogICAgIHVpbnQzMl90IG1fZGlzYWJs
ZURpc3BsYXlTbGVlcEFzc2VydGlvbjsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgVGltZXI8RGlzcGxh
eVNsZWVwRGlzYWJsZXI+IG1fc3lzdGVtQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0eVByb3RvY29sRGVmaW5pdGlv
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0eVByb3RvY29sRGVmaW5pdGlv
bnMuaAppbmRleCBjMTFiMDVmLi5mZTYzNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oCkBAIC0yOSw3ICsyOSw3
IEBACiBAcHJvdG9jb2wgTkFNRSA8TlNPYmplY3Q+IFwKIEBlbmQKIAotI2lmZGVmIEJVSUxESU5H
X09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAK
IAogRU1QVFlfUFJPVE9DT0woTlNUYWJsZVZpZXdEYXRhU291cmNlKQogRU1QVFlfUFJPVE9DT0wo
TlNUYWJsZVZpZXdEZWxlZ2F0ZSkKQEAgLTM4LDcgKzM4LDcgQEAgRU1QVFlfUFJPVE9DT0woTlNB
bmltYXRpb25EZWxlZ2F0ZSkKIAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogCiBFTVBUWV9QUk9UT0NPTChOU1VSTENv
bm5lY3Rpb25EZWxlZ2F0ZSkKIEVNUFRZX1BST1RPQ09MKE5TVVJMRG93bmxvYWREZWxlZ2F0ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5oCmluZGV4IGVhMWI4
NWQuLjY2ZWNjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1M
Q29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0
ZXIuaApAQCAtNzksNyArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfSBfZmxhZ3M7
CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogLSAoaWQpaW5pdDsKIC0gKGlkKWluaXRXaXRo
RE9NUmFuZ2U6KERPTVJhbmdlICopZG9tUmFuZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggMjJkYjgxYy4uZmE5ZjAxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTUwLDcgKzUwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHN0YXRpYyBOU0ZpbGVXcmFwcGVyICpmaWxl
V3JhcHBlckZvclVSTChEb2N1bWVudExvYWRlciAqLCBOU1VSTCAqKTsKIHN0YXRpYyBOU0ZpbGVX
cmFwcGVyICpmaWxlV3JhcHBlckZvckVsZW1lbnQoRWxlbWVudCopOwogCi0jaWZuZGVmIEJVSUxE
SU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NjAKIAogLy8gQWRkaXRpb25hbCBjb250cm9sIFVuaWNvZGUgY2hhcmFjdGVycwogY29uc3QgdW5p
Y2hhciBXZWJOZXh0TGluZUNoYXJhY3RlciA9IDB4MDA4NTsKQEAgLTEwMCw3ICsxMDAsNyBAQCBz
dGF0aWMgTlNGb250ICpXZWJEZWZhdWx0Rm9udCgpCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJIVE1M
Q29udmVydGVyCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiBzdGF0aWMgTlNGb250ICpfZm9udEZvck5h
bWVBbmRTaXplKE5TU3RyaW5nICpmb250TmFtZSwgQ0dGbG9hdCBzaXplLCBOU011dGFibGVEaWN0
aW9uYXJ5ICpjYWNoZSkKIHsKQEAgLTE2NTcsNyArMTY1Nyw3IEBAIHN0YXRpYyBOU0ludGVnZXIg
X2NvbENvbXBhcmUoaWQgYmxvY2sxLCBpZCBibG9jazIsIHZvaWQgKikKICAgICByZXR1cm4gKDAg
PT0gX2Vycm9yQ29kZSkgPyBbW19hdHRyU3RyIHJldGFpbl0gYXV0b3JlbGVhc2VdIDogbmlsOwog
fQogCi0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNlbmRpZiAvLyBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAogLy8gVGhpcyBmdW5jdGlv
biB1c2VzIFRleHRJdGVyYXRvciwgd2hpY2ggbWFrZXMgb2Zmc2V0cyBpbiBpdHMgcmVzdWx0IGNv
bXBhdGlibGUgd2l0aCBIVE1MIGVkaXRpbmcuCiArIChOU0F0dHJpYnV0ZWRTdHJpbmcgKillZGl0
aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZTooUmFuZ2UqKXJhbmdlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbQpp
bmRleCA4ZDFkMTBmLi5jMDYyODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9NZW1vcnlQcmVzc3VyZUhhbmRsZXJNYWMubW0KQEAgLTMzLDcgKzMzLDcgQEAK
ICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4K
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAgJiYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgPG5vdGlmeS5oPgogI2VuZGlmCkBAIC00Miw3
ICs0Miw3IEBAIHVzaW5nIHN0ZDo6bWF4OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAK
ICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGljIGRpc3BhdGNoX3NvdXJjZV90IF9jYWNoZV9ldmVu
dF9zb3VyY2UgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05T
U2Nyb2xsZXJJbXBEZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3Jv
bGxlckltcERldGFpbHMuaAppbmRleCAwYzk1NmM2Li4xZTFjNmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaApAQCAtMjksNyAr
MjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAvLyBQdWJsaWMgQVBJcyBub3QgYXZhaWxh
YmxlIG9uIHZlcnNpb25zIG9mIE1hYyBvbiB3aGljaCB3ZSBidWlsZAotI2lmIChkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIGVudW0gewogICAg
IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSAgICAgICA9IDAsCiAgICAgTlNTY3JvbGxlclN0eWxlT3Zl
cmxheSAgICAgID0gMQpAQCAtNDQsNyArNDQsNyBAQCBlbnVtIHsKIHR5cGVkZWYgTlNJbnRlZ2Vy
IE5TU2Nyb2xsZXJLbm9iU3R5bGU7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIEBpbnRlcmZhY2UgTlNTY3JvbGxl
cihOU09iamVjdCkKICsgKE5TU2Nyb2xsZXJTdHlsZSlwcmVmZXJyZWRTY3JvbGxlclN0eWxlOwog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLm1tCmluZGV4IGYwZWJmNWMuLjJlYzUyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAg
LTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1Q
aGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVpbnQzMl90IHBoYXNlID0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChbZXZlbnQgbW9tZW50dW1Q
aGFzZV0gJiBOU0V2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcGhhc2UgfD0gUGxhdGZvcm1XaGVl
bEV2ZW50UGhhc2VCZWdhbjsKICAgICBpZiAoW2V2ZW50IG1vbWVudHVtUGhhc2VdICYgTlNFdmVu
dFBoYXNlU3RhdGlvbmFyeSkKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgUGxhdGZvcm1XaGVl
bEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogCiBzdGF0
aWMgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAgICAgdWludDMyX3QgcGhhc2UgPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmU7
IAogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNlQmVnYW4pCiAgICAgICAgIHBo
YXNlIHw9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW47CkBAIC0yMDEsNyArMjAxLDcgQEAg
c3RhdGljIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiAgICAgICAgIHBoYXNlIHw9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQ7CiAgICAg
aWYgKFtldmVudCBwaGFzZV0gJiBOU0V2ZW50UGhhc2VDYW5jZWxsZWQpCiAgICAgICAgIHBoYXNl
IHw9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2FuY2VsbGVkOwotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgw
CiAgICAgaWYgKFtldmVudCBtb21lbnR1bVBoYXNlXSAmIE5TRXZlbnRQaGFzZU1heUJlZ2luKQog
ICAgICAgICBwaGFzZSB8PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU1heUJlZ2luOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQppbmRleCA4NTU3
ODQ0Li5jMGYxOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9w
dXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVN
YWMubW0KQEAgLTc1LDEwICs3NSwxMCBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQog
ICAgIGlmICghY2xpZW50KCktPnNob3VsZFBvcE92ZXIoKSkKICAgICAgICAgW21fcG9wdXAuZ2V0
KCkgYWRkSXRlbVdpdGhUaXRsZTpAIiJdOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBUZXh0RGly
ZWN0aW9uIG1lbnVUZXh0RGlyZWN0aW9uID0gY2xpZW50KCktPm1lbnVTdHlsZSgpLnRleHREaXJl
Y3Rpb24oKTsKICAgICBbbV9wb3B1cC5nZXQoKSBzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uOm1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xl
ZnRdOwotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjZW5kaWYgLy8g
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAKICAgICBBU1NFUlQoY2xp
ZW50KCkpOwogICAgIGludCBzaXplID0gY2xpZW50KCktPmxpc3RTaXplKCk7CkBAIC05OCw3ICs5
OCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICAgICAgW2F0
dHJpYnV0ZXMgc2V0T2JqZWN0OmZvbnQgZm9yS2V5Ok5TRm9udEF0dHJpYnV0ZU5hbWVdOwogICAg
ICAgICAgICAgfQogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgICAgIFJldGFpblB0cjxOU011
dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUoQWRvcHROUywgW1tOU1BhcmFncmFw
aFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAg
IFtwYXJhZ3JhcGhTdHlsZS5nZXQoKSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0g
TFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsKICAgICAg
ICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gc3R5bGUudGV4dERp
cmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0
aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBQb3B1cE1l
bnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6
d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRy
aWJ1dGVOYW1lXTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9i
amVjdDpwYXJhZ3JhcGhTdHlsZS5nZXQoKSBmb3JLZXk6TlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0
ZU5hbWVdOwotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjZW5kaWYg
Ly8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAKICAgICAgICAgICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUgZm9yZWdyb3VuZCBhbmQgYmFj
a2dyb3VuZCBjb2xvcnMuCiAgICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBjdXN0
b21pemUgdGV4dCBjb2xvciB3aGVuIGFuIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggOTY4OGMw
YS4uNjAwZGVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbQpAQCAtNjM1LDcgKzYzNSw3IEBAIFNjcm9sbEFuaW1hdG9yTWFjOjp+U2Ny
b2xsQW5pbWF0b3JNYWMoKQogCiBzdGF0aWMgYm9vbCBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9y
U3lzdGVtKCkKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVm
aW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAgfHwgUExBVEZPUk0oQ0hST01JVU0pCiAg
ICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JL
ZXk6QCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVuYWJsZWQiXTsKICNlbHNlCiAgICAgcmV0dXJuIFtb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJOU1Njcm9s
bEFuaW1hdGlvbkVuYWJsZWQiXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbQppbmRleCA3YTc1Mzg0Li5mMjg0
NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsRWxhc3Rp
Y2l0eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEVsYXN0aWNpdHlDb250cm9sbGVyLm1tCkBAIC0zMyw3ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiBAaW50ZXJmYWNlIE5TUHJvY2Vzc0lu
Zm8gKFNjcm9sbEFuaW1hdG9yTWFjRXh0KQogLSAoTlNUaW1lSW50ZXJ2YWwpc3lzdGVtVXB0aW1l
OwogQGVuZApAQCAtNzEsOCArNzEsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgc2Nyb2xsVmVsb2Np
dHlaZXJvaW5nVGltZW91dCA9IDAuMTBmOwogc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRE
aXJlY3Rpb25Mb2NrU3RyZXRjaFJhdGlvID0gMTsKIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJi
YW5kTWluaW11bVJlcXVpcmVkRGVsdGFCZWZvcmVTdHJldGNoID0gMTA7CiAKLSNpZiBkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVMRElOR19PTl9TTk9XX0xFT1BBUkQp
IHx8IFwKLSAgICBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pIHx8IFBMQVRGT1JNKENIUk9NSVVN
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA3MCB8fCBQTEFURk9S
TShDSFJPTUlVTSkKIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kU3RpZmZuZXNzID0gMjA7
CiBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZEFtcGxpdHVkZSA9IDAuMzFmOwogc3RhdGlj
IGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRQZXJpb2QgPSAxLjZmOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tCmluZGV4IGQ3YzUwMWQuLjE4OTgzZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0KQEAgLTM2
LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogCiAvLyBPbiBTbm93IExlb3BhcmQgYW5k
IG5ld2VyIHdlJ2xsIGFzayBJT0tpdCB0byBkZWxpdmVyIG5vdGlmaWNhdGlvbnMgb24gYSBxdWV1
ZS4KLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDUwCiAjZGVmaW5lIElPS0lUX1dJVEhPVVRfTElCRElTUEFUQ0ggMQog
I2VuZGlmCiAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIENGUnVuTG9vcFRpbWVyUmVmIHNoYXJl
ZFRpbWVyOwogc3RhdGljIHZvaWQgKCpzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pKCk7CiBzdGF0
aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CiAKLSNpZiAhZGVm
aW5lZChJT0tJVF9XSVRIT1VUX0xJQkRJU1BBVENIKSAmJiBkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChJT0tJVF9XSVRIT1VUX0xJQkRJU1BBVENIKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKIGV4dGVybiAiQyIgdm9pZCBJ
T05vdGlmaWNhdGlvblBvcnRTZXREaXNwYXRjaFF1ZXVlKElPTm90aWZpY2F0aW9uUG9ydFJlZiBu
b3RpZnksIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5tbQppbmRleCBmNjI0MTE2Li5j
Y2ZmNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3VkZGVuVGVy
bWluYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N1ZGRlblRlcm1p
bmF0aW9uLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQg
IlN1ZGRlblRlcm1pbmF0aW9uLmgiCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5tbQppbmRleCBmNjJkMTRhLi5jYzZlYTM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
CkBAIC00Miw3ICs0Miw3IEBACiAgICAgW3NlbGYgc2V0QWNjZXB0c01vdXNlTW92ZWRFdmVudHM6
WUVTXTsKICAgICBbc2VsZiBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwogICAgIFtzZWxmIHNl
dEhhc1NoYWRvdzpOT107Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBbc2VsZiBzZXRNb3ZhYmxlOk5P
XTsKICNlbHNlCiAgICAgW3NlbGYgc2V0TW92YWJsZUJ5V2luZG93QmFja2dyb3VuZDpOT107CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJh
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVOU0NlbGxFeHRyYXMuaApp
bmRleCAyNmJlNDYyLi43ODk0ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlTlNDZWxsRXh0cmFzLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCA8
QXBwS2l0L0FwcEtpdC5oPgogCi0jZGVmaW5lIEJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9E
UkFXU19GT0NVU19SSU5HIChkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVm
aW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBQTEFURk9STShDSFJPTUlVTSkpCisjZGVmaW5lIEJV
VFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9EUkFXU19GT0NVU19SSU5HIChfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAgfHwgUExBVEZPUk0oQ0hST01JVU0pKQogCiAjaWYg
IUJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9EUkFXU19GT0NVU19SSU5HCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmlu
ZGV4IDkwOGRkOTUuLmVhN2MyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtNTgsNyArNTgsNyBAQCB0eXBlZGVm
IFVJbnQzMiBGTUZvbnQ7CiB0eXBlZGVmIEZNRm9udCBBVFNVRm9udElEOwogdHlwZWRlZiBVSW50
MTYgQVRTR2x5cGhSZWY7CiAKLSNpZiBQTEFURk9STShNQUMpICYmIFVTRShDQSkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKIHR5cGVkZWYgc3RydWN0IF9fSU9TdXJmYWNlICpJT1N1cmZh
Y2VSZWY7CiAjZW5kaWYKIApAQCAtMTA5LDcgKzEwOSw3IEBAIGV4dGVybiAiQyIgewogLy8gSW4g
YWxwaGFiZXRpY2FsIG9yZGVyLgogCiBleHRlcm4gdm9pZCAoKndrQWR2YW5jZURlZmF1bHRCdXR0
b25QdWxzZUFuaW1hdGlvbikoTlNCdXR0b25DZWxsICopOwotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiB2b2lkICgqd2tD
QUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENHQ29u
dGV4dFJlZiwgdm9pZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwogI2VuZGlmCiAKQEAgLTIxNSw3
ICsyMTUsNyBAQCBleHRlcm4gYm9vbCAoKndrR2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0ZXJz
KShDVEZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbAogCiBleHRlcm4gQk9PTCAoKndrVXNl
U2hhcmVkTWVkaWFVSSkoKTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiB2b2lkKiB3a0dldEh5cGhlbmF0aW9uTG9j
YXRpb25CZWZvcmVJbmRleDsKICNlbHNlCiBleHRlcm4gQ0ZJbmRleCAoKndrR2V0SHlwaGVuYXRp
b25Mb2NhdGlvbkJlZm9yZUluZGV4KShDRlN0cmluZ1JlZiBzdHJpbmcsIENGSW5kZXggaW5kZXgp
OwpAQCAtMjMyLDcgKzIzMiw3IEBAIGV4dGVybiBpbnQgKCp3a0dldE5TRXZlbnRNb21lbnR1bVBo
YXNlKShOU0V2ZW50ICopOwogCiBleHRlcm4gQ1RMaW5lUmVmICgqd2tDcmVhdGVDVExpbmVXaXRo
VW5pQ2hhclByb3ZpZGVyKShjb25zdCBVbmlDaGFyKiAoKnByb3ZpZGUpKENGSW5kZXggc3RyaW5n
SW5kZXgsIENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2
b2lkKiksIHZvaWQgKCpkaXNwb3NlKShjb25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCopLCB2b2lk
Kik7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAKIGV4dGVybiBDVFR5cGVzZXR0ZXJSZWYgKCp3a0NyZWF0ZUNUVHlwZXNldHRl
cldpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zKShjb25zdCBVbmlDaGFyKiAoKnByb3ZpZGUp
KENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5UmVm
KiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZvaWQgKCpkaXNwb3NlKShjb25zdCBVbmlDaGFyKiBjaGFy
cywgdm9pZCopLCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpOwogCkBAIC0yNjQsNyAr
MjY0LDcgQEAgZXh0ZXJuIENGVHlwZVJlZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShjb25zdCB2
b2lkICpieXRlcywgc2l6ZV90IGxlbik7CiBleHRlcm4gQk9PTCAoKndrR2V0Qnl0ZXNGcm9tQVhU
ZXh0TWFya2VyKShDRlR5cGVSZWYgdGV4dE1hcmtlciwgdm9pZCAqYnl0ZXMsIHNpemVfdCBsZW5n
dGgpOwogZXh0ZXJuIEFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQg
ZWxlbWVudCk7CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPD0gMTA2MAogdHlwZWRlZiBzdHJ1Y3QgX19DRlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVS
TFN0b3JhZ2VTZXNzaW9uUmVmOwogI2Vsc2UKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxT
dG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKQEAgLTI5NiwyNyArMjk2LDI3
IEBAIGV4dGVybiB2b2lkICgqd2tTZXRSZXF1ZXN0U3RvcmFnZVNlc3Npb24pKENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYsIENGTXV0YWJsZVVSTFJlCiAjZW5kaWYKIGV4dGVybiB2b2lkICgqd2tTZXRN
ZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0
cmluZyAqcGF0aCk7CiAgICAgCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KIAog
ZXh0ZXJuIGRpc3BhdGNoX3NvdXJjZV90ICgqd2tDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1h
aW5RdWV1ZSkodm9pZCk7CiAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogZXh0ZXJuIE5TU3RyaW5nICooKndrR2V0TWFj
T1NYVmVyc2lvblN0cmluZykodm9pZCk7CiBleHRlcm4gYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xp
bmtlZE9uT3JCZWZvcmVMaW9uKSh2b2lkKTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogZXh0ZXJuIHZvaWQgKCp3
a0NHUGF0aEFkZFJvdW5kZWRSZWN0KShDR011dGFibGVQYXRoUmVmIHBhdGgsIGNvbnN0IENHQWZm
aW5lVHJhbnNmb3JtKiBtYXRyaXgsIENHUmVjdCByZWN0LCBDR0Zsb2F0IGNvcm5lcldpZHRoLCBD
R0Zsb2F0IGNvcm5lckhlaWdodCk7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKIGV4dGVybiB2b2lkICgqd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKShDRlVS
TFJlcXVlc3RSZWYpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJ
T1MpCiBleHRlcm4gQk9PTCAoKndrRmlsdGVySXNNYW5hZ2VkU2Vzc2lvbikodm9pZCk7CiBleHRl
cm4gV2ViRmlsdGVyRXZhbHVhdG9yICooKndrRmlsdGVyQ3JlYXRlSW5zdGFuY2UpKE5TVVJMUmVz
cG9uc2UgKik7CiBleHRlcm4gdm9pZCAoKndrRmlsdGVyUmVsZWFzZSkoV2ViRmlsdGVyRXZhbHVh
dG9yICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5tbQppbmRleCBjMDg3YTVkLi42YTZjYzRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAt
MjgsNyArMjgsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKIHZvaWQg
KCp3a0FkdmFuY2VEZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24pKE5TQnV0dG9uQ2VsbCAqKTsK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiB2b2lkICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKShD
QUxheWVyICosIENHQ29udGV4dFJlZiBjb250ZXh0LCB2b2lkICheYmxvY2spKENHUmVjdCByZWN0
KSk7CiAjZW5kaWYKIEJPT0wgKCp3a0NHQ29udGV4dEdldFNob3VsZFNtb290aEZvbnRzKShDR0Nv
bnRleHRSZWYpOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgKCp3a1NldFJlcXVlc3RTdG9yYWdl
U2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlCiB2
b2lkICgqd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKShDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJb
XSwgQ0dHbHlwaFtdLCBzaXplX3QpOwogYm9vbCAoKndrR2V0VmVydGljYWxHbHlwaHNGb3JDaGFy
YWN0ZXJzKShDVEZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3QpOwog
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogdm9pZCogd2tHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5kZXg7CiAjZWxzZQog
Q0ZJbmRleCAoKndrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUluZGV4KShDRlN0cmluZ1Jl
ZiBzdHJpbmcsIENGSW5kZXggaW5kZXgpOwpAQCAtMTMzLDcgKzEzMyw3IEBAIGludCAoKndrR2V0
TlNFdmVudE1vbWVudHVtUGhhc2UpKE5TRXZlbnQgKik7CiAjZW5kaWYKIAogQ1RMaW5lUmVmICgq
d2tDcmVhdGVDVExpbmVXaXRoVW5pQ2hhclByb3ZpZGVyKShjb25zdCBVbmlDaGFyKiAoKnByb3Zp
ZGUpKENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5
UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZvaWQgKCpkaXNwb3NlKShjb25zdCBVbmlDaGFyKiBj
aGFycywgdm9pZCopLCB2b2lkKik7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogQ1RUeXBlc2V0dGVyUmVmICgqd2tDcmVhdGVDVFR5
cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucykoY29uc3QgVW5pQ2hhciogKCpw
cm92aWRlKShDRkluZGV4IHN0cmluZ0luZGV4LCBDRkluZGV4KiBjaGFyQ291bnQsIENGRGljdGlv
bmFyeVJlZiogYXR0cmlidXRlcywgdm9pZCopLCB2b2lkICgqZGlzcG9zZSkoY29uc3QgVW5pQ2hh
ciogY2hhcnMsIHZvaWQqKSwgdm9pZCosIENGRGljdGlvbmFyeVJlZiBvcHRpb25zKTsKIAogQ0dD
b250ZXh0UmVmICgqd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFj
ZSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9y
U3BhY2UpOwpAQCAtMTc4LDI0ICsxNzgsMjQgQEAgQ0ZTdHJpbmdSZWYgKCp3a0NvcHlDRlVSTFJl
c3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVzcG9uc2VSZWYpOwogdm9pZCAoKndrU2V0
Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZiBtaW1l
VHlwZSk7CiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNT
dHJpbmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBkaXNwYXRjaF9zb3VyY2Vf
dCAoKndrQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25NYWluUXVldWUpKHZvaWQpOwogI2VuZGlm
CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwCiBOU1N0cmluZyAqKCp3a0dldE1hY09TWFZlcnNpb25TdHJpbmcpKHZvaWQpOwogYm9vbCAo
KndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKSh2b2lkKTsKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogdm9pZCAoKndrQ0dQYXRoQWRkUm91bmRlZFJlY3QpKENHTXV0YWJsZVBhdGhSZWYgcGF0aCwg
Y29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qIG1hdHJpeCwgQ0dSZWN0IHJlY3QsIENHRmxvYXQgY29y
bmVyV2lkdGgsIENHRmxvYXQgY29ybmVySGVpZ2h0KTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogdm9pZCAoKndrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZyko
Q0ZVUkxSZXF1ZXN0UmVmKTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9T
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZP
Uk0oSU9TKQogQk9PTCAoKndrRmlsdGVySXNNYW5hZ2VkU2Vzc2lvbikodm9pZCk7CiBXZWJGaWx0
ZXJFdmFsdWF0b3IgKigqd2tGaWx0ZXJDcmVhdGVJbnN0YW5jZSkoTlNVUkxSZXNwb25zZSAqKTsK
IHZvaWQgKCp3a0ZpbHRlclJlbGVhc2UpKFdlYkZpbHRlckV2YWx1YXRvciAqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJGb250Q2FjaGUubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViRm9udENhY2hlLm1tCmluZGV4IGJlNjY2Y2YuLjkzYzA3
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJGb250Q2FjaGUu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkZvbnRDYWNoZS5tbQpAQCAt
MTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBCT09MIGJldHRlckNob2ljZShOU0ZvbnRUcmFpdE1hc2sg
ZGVzaXJlZFRyYWl0cywgaW50IGRlc2lyZWRXZWlnaHQsCiAvLyBXb3JrYXJvdW5kIGZvciA8cmRh
cjovL3Byb2JsZW0vNTc4MTM3Mj4uCiBzdGF0aWMgaW5saW5lIHZvaWQgZml4VXBXZWlnaHQoTlNJ
bnRlZ2VyJiB3ZWlnaHQsIE5TU3RyaW5nICpmb250TmFtZSkKIHsKLSNpZm5kZWYgQlVJTERJTkdf
T05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
ICAgIFVOVVNFRF9QQVJBTSh3ZWlnaHQpOwogICAgIFVOVVNFRF9QQVJBTShmb250TmFtZSk7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQppbmRleCA0N2M1MzkxLi5jZTM1ZmIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlci5tbQpAQCAtNTMsNyArNTMsNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihRVEtp
dCwgUVRNb3ZpZVJhdGVEaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVmaW5l
IFFUTW92aWVSYXRlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIGdldFFUTW92aWVSYXRlRGlkQ2hhbmdl
Tm90aWZpY2F0aW9uKCkKIAogQGludGVyZmFjZSBXZWJWaWRlb0Z1bGxzY3JlZW5XaW5kb3cgOiBO
U1dpbmRvdwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiA8TlNBbmltYXRpb25EZWxlZ2F0ZT4KICNlbmRpZgog
ewpAQCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyBOU1dpbmRvdyAqY3JlYXRlQmFja2dyb3VuZEZ1
bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lLCBpbnQgbGV2ZWwpCiAtICh2b2lkKXVwZGF0ZU1l
bnVBbmREb2NrRm9yRnVsbHNjcmVlbgogewogICAgIC8vIE5TQXBwbGljYXRpb25QcmVzZW50YXRp
b25PcHRpb25zIGlzIGF2YWlsYWJsZSBvbiA+IDEwLjYgb25seToKLSNpZm5kZWYgQlVJTERJTkdf
T05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
ICAgIE5TQXBwbGljYXRpb25QcmVzZW50YXRpb25PcHRpb25zIG9wdGlvbnMgPSBOU0FwcGxpY2F0
aW9uUHJlc2VudGF0aW9uRGVmYXVsdDsKICAgICBOU1NjcmVlbiogZnVsbHNjcmVlblNjcmVlbiA9
IFtbc2VsZiB3aW5kb3ddIHNjcmVlbl07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRy
b2xsZXIubW0KaW5kZXggNjMxODI4YS4uOTBmNjkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdp
bmRvd0NvbnRyb2xsZXIubW0KQEAgLTQ0LDEwICs0NCwxMCBAQCBzdGF0aWMgaW5saW5lIENHRmxv
YXQgd2Via2l0X0NHRmxvb3IoQ0dGbG9hdCB2YWx1ZSkKICAgICByZXR1cm4gZmxvb3IodmFsdWUp
OwogfQogCi0jZGVmaW5lIEhBVkVfTUVESUFfQ09OVFJPTCAoIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkpCisjZGVmaW5lIEhBVkVfTUVESUFfQ09OVFJPTCAoX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwKQogCiBAaW50ZXJmYWNlIFdlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXIgKFByaXZhdGUpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIDxOU1dp
bmRvd0RlbGVnYXRlPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsLmgKaW5kZXggYWFlNGQ1Mi4uMDBjMTFiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKLSNkZWZpbmUgQ0VSVElGSUNBVEVfQ1JFREVOVElB
TFNfU1VQUE9SVEVEICgoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSkKKyNkZWZpbmUgQ0VSVElGSUNBVEVfQ1JFREVOVElBTFNf
U1VQUE9SVEVEICgoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjApCiAKICNpZiBDRVJUSUZJQ0FURV9DUkVERU5U
SUFMU19TVVBQT1JURUQKICNpbmNsdWRlIDxTZWN1cml0eS9TZWNCYXNlLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggZGRjYTBk
Mi4uZmY1ZjM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaApAQCAtNjcsNyArNjcsNyBAQCB0eXBlZGVmIGludCBDRkhUVFBDb29raWVT
dG9yYWdlQWNjZXB0UG9saWN5OwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3Rv
cmFnZSogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKICNlbmRpZgogCi0jaWYgVVNFKENGVVJMU1RP
UkFHRVNFU1NJT05TKSAmJiAoZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IGRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCisjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05T
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIHR5cGVkZWYgc3Ry
dWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKICNlbGlm
IFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxT
dG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRE5TQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9ETlNDRk5ldC5jcHAKaW5kZXggMjhjOTVkZi4uYzQ2NGMz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9ETlNDRk5l
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9ETlNDRk5ldC5j
cHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZOZXR3b3JrLmg+CiAj
ZW5kaWYKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICNpbmNsdWRlIDxTeXN0ZW1Db25maWd1cmF0
aW9uL1N5c3RlbUNvbmZpZ3VyYXRpb24uaD4KICNlbmRpZgogCkBAIC01Niw3ICs1Niw3IEBAIGJv
b2wgRE5TUmVzb2x2ZVF1ZXVlOjpwbGF0Zm9ybVByb3h5SXNFbmFibGVkSW5TeXN0ZW1QcmVmZXJl
bmNlcygpCiAgICAgLy8gYXMgaXQgZG9lc24ndCBuZWNlc3NhcmlseSBsb29rIHVwIHRoZSBhY3R1
YWwgZXh0ZXJuYWwgSVAuIEFsc28sIGlmIEROUyByZXR1cm5zIGEgZmFrZSBpbnRlcm5hbCBhZGRy
ZXNzLAogICAgIC8vIGxvY2FsIGNhY2hlcyBtYXkga2VlcCBpdCBldmVuIGFmdGVyIHJlLWNvbm5l
Y3RpbmcgdG8gYW5vdGhlciBuZXR3b3JrLgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBwcm94eVNldHRpbmdzKEFkb3B0Q0YsIENGTmV0d29y
a0NvcHlTeXN0ZW1Qcm94eVNldHRpbmdzKCkpOwogI2Vsc2UKICAgICBSZXRhaW5QdHI8Q0ZEaWN0
aW9uYXJ5UmVmPiBwcm94eVNldHRpbmdzKEFkb3B0Q0YsIFNDRHluYW1pY1N0b3JlQ29weVByb3hp
ZXMoMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Q
cm94eVNlcnZlckNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UHJveHlTZXJ2ZXJDRk5ldC5jcHAKaW5kZXggNmIwYzhiMC4uZDgyZGE1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQu
Y3BwCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NQcm94eVNlcnZlcnMoVmVjdG9yPFByb3h5U2Vy
dmVyPiYgcHJveHlTZXJ2ZXJzLCBDRkFycmF5UmVmIHByb3hpZXMsIENGVVJMUmVmIHVybCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVx
dWVzdC5oCmluZGV4IDcyNTIyZDkuLjNiYzE3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMzYsNyArMzYsNyBA
QCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZVUkxSZXF1ZXN0KiBDRlVSTFJlcXVlc3RSZWY7CiAK
IE9CSkNfQ0xBU1MgTlNVUkxSZXF1ZXN0OwogCi0jaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05T
KSAmJiAoZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkpCisjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIHR5cGVkZWYgc3RydWN0IF9fQ0ZVUkxT
dG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKICNlbGlmIFVTRShDRlVSTFNU
T1JBR0VTRVNTSU9OUykKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lv
biogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggN2Nl
OWI2MC4uNTIwZDY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI2NSw3ICsyNjUsNyBA
QCB2b2lkIFJlc291cmNlUmVxdWVzdDo6c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKGJvb2wgZmxh
ZykKICAgICBzX2h0dHBQaXBlbGluaW5nRW5hYmxlZCA9IGZsYWc7CiB9CiAKLSNpZiBVU0UoQ0ZO
RVRXT1JLKSB8fCBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBVU0UoQ0ZORVRXT1JL
KSB8fCBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogc3RhdGljIGlubGluZSBib29sIHJlYWRCb29sZWFuUHJlZmVyZW5jZShDRlN0cmluZ1Jl
ZiBrZXkpCiB7CiAgICAgQm9vbGVhbiBrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdDsKQEAgLTI4
MSw3ICsyODEsNyBAQCB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291
bnRQZXJIb3N0KCkKICAgICAvLyBBbHdheXMgc2V0IHRoZSBjb25uZWN0aW9uIGNvdW50IHBlciBo
b3N0LCBldmVuIHdoZW4gcGlwZWxpbmluZy4KICAgICB1bnNpZ25lZCBtYXhpbXVtSFRUUENvbm5l
Y3Rpb25Db3VudFBlckhvc3QgPSB3a0luaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3Vu
dFBlckhvc3QocHJlZmVycmVkQ29ubmVjdGlvbkNvdW50KTsKIAotI2lmIFVTRShDRk5FVFdPUksp
IHx8IFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFVTRShDRk5FVFdPUkspIHx8IFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVubGltaXRlZENvbm5lY3Rpb25Db3VudCA9IDEwMDAw
OwogCiAgICAgaWYgKCFSZXNvdXJjZVJlcXVlc3Q6Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgpICYm
IHJlYWRCb29sZWFuUHJlZmVyZW5jZShDRlNUUigiV2ViS2l0RW5hYmxlSFRUUFBpcGVsaW5pbmci
KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tl
dFN0cmVhbUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDkwMzMzNDAuLjRmYWI3NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
U29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lm
ZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID09IDEwNTAKICNpbmNsdWRlIDxTeXN0ZW1Db25maWd1cmF0aW9uL1N5c3RlbUNvbmZpZ3Vy
YXRpb24uaD4KICNlbmRpZgogCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1I
YW5kbGU6OnJlbW92ZVBBQ1J1bkxvb3BTb3VyY2UoKQogCiB2b2lkIFNvY2tldFN0cmVhbUhhbmRs
ZTo6Y2hvb3NlUHJveHkoKQogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgUmV0YWluUHRyPENGRGlj
dGlvbmFyeVJlZj4gcHJveHlEaWN0aW9uYXJ5KEFkb3B0Q0YsIENGTmV0d29ya0NvcHlTeXN0ZW1Q
cm94eVNldHRpbmdzKCkpOwogI2Vsc2UKICAgICAvLyBXZSBkb24ndCBuZWVkIHByb3h5IGluZm9y
bWF0aW9uIG9mdGVuLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHNldCB1cCBhIHBlcm1hbmVudCBk
eW5hbWljIHN0b3JlIHNlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL0F1dGhlbnRpY2F0aW9uTWFjLm1tCmluZGV4IDgyYzY2MGEuLmE3ZjFi
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0F1dGhl
bnRpY2F0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L0F1dGhlbnRpY2F0aW9uTWFjLm1tCkBAIC0xNjUsNyArMTY1LDcgQEAgTlNVUkxDcmVkZW50aWFs
ICptYWMoY29uc3QgQ3JlZGVudGlhbCYgY29yZUNyZWRlbnRpYWwpCiAKICNlbHNlCiAKLSNpZmRl
ZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA9PSAxMDUwCiAvLyBUaGVyZSBpcyBubyBjb25zdGFudCBpbiBoZWFkZXJzLCBidXQgTlRMTSBp
cyBzdXBwb3J0ZWQuCiBOU1N0cmluZyAqIGNvbnN0IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RO
VExNID0gQCJOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTSI7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFj
Lm1tCmluZGV4IDI1YjRkNDQuLmZkYWU0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbQpAQCAtNzksNyArNzks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVC
cm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotI2lmIGRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKSAmJiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwICYmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9O
UykKICAgICAvLyBEb24ndCBjYWxsIHdrU2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKSB3aGVuIGNvb2tpZSBzdG9yYWdlIGlzIHNldCB1cCB2aWEgc2Vzc2lvbnMuCiAgICAg
Ly8gVGhhdCB3b3VsZCBtYWtlIE5TVVJMQ29ubmVjdCB1c2UgZ2xvYmFsIHByaXZhdGUgYnJvd3Np
bmcgY29va2llIHN0b3JhZ2UgcmVnYXJkbGVzcyBvZiByZXF1ZXN0IHNlc3Npb24uCiAgICAgLy8g
VGhlIGdsb2JhbCBwcml2YXRlIGNvb2tpZSBzdG9yYWdlIGhhcyBkaWZmZXJlbnQgc2VtYW50aWNz
IC0gaXQgbWFrZXMgbmV3IGNvb2tpZXMgbm9uLXBlcnNpc3RlbnQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmlu
ZGV4IDRhYzMzY2MuLmZhZTQxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yMTQsNyArMjE0LDcg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRl
LCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICAgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJl
cXVlc3Q7CiAgICAgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBBU1NFUlQoW05TVVJM
Q29ubmVjdGlvbiBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2luaXRXaXRo
UmVxdWVzdDpkZWxlZ2F0ZTp1c2VzQ2FjaGU6bWF4Q29udGVudExlbmd0aDpzdGFydEltbWVkaWF0
ZWx5OmNvbm5lY3Rpb25Qcm9wZXJ0aWVzOildKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1Nl
dHRpbmdDb25uZWN0aW9uUHJvcGVydGllcyA9IHRydWU7CiAjZWxzZQpAQCAtNTEyLDcgKzUxMiw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsCiAgICAgLy8gd2UgbWFrZSBzdXJlIHRoYXQgaXMg
YWN0dWFsbHkgcHJlc2VudAogICAgIEFTU0VSVChjaGFsbGVuZ2UubnNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSgpKTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dMRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIFByb3h5IGF1dGhlbnRpY2F0aW9uIGlzIGhhbmRs
ZWQgYnkgQ0ZOZXR3b3JrIGludGVybmFsbHkuIFdlIGNhbiBnZXQgaGVyZSBpZiB0aGUgdXNlciBj
YW5jZWxzCiAgICAgLy8gQ0ZOZXR3b3JrIGF1dGhlbnRpY2F0aW9uIGRpYWxvZywgYW5kIHdlIHNo
b3VsZG4ndCBhc2sgdGhlIGNsaWVudCB0byBkaXNwbGF5IGFub3RoZXIgb25lIGluIHRoYXQgY2Fz
ZS4KICAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmlzUHJveHkoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1
ZXN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VS
ZXF1ZXN0TWFjLm1tCmluZGV4IDI2MmZkYjQuLmEzZTFlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0K
QEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VS
ZXF1ZXN0KCkKICAgICAgICAgbV9odHRwTWV0aG9kID0gbWV0aG9kOwogICAgIG1fYWxsb3dDb29r
aWVzID0gW21fbnNSZXF1ZXN0LmdldCgpIEhUVFBTaG91bGRIYW5kbGVDb29raWVzXTsKIAotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
ICAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSkKICAgICAg
ICAgbV9wcmlvcml0eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUGlwZWxpbmlu
Z1ByaW9yaXR5KFttX25zUmVxdWVzdC5nZXQoKSBfQ0ZVUkxSZXF1ZXN0XSkpOwogI2VuZGlmCkBA
IC0xMjksMTMgKzEyOSwxMyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9y
bVJlcXVlc3QoKQogICAgICAgICBuc1JlcXVlc3QgPSBbW05TTXV0YWJsZVVSTFJlcXVlc3QgYWxs
b2NdIGluaXRXaXRoVVJMOnVybCgpXTsKIAogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChSZXNvdXJjZVJlcXVlc3Q6
Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgpKQogICAgICAgICB3a1NldEhUVFBQaXBlbGluaW5nUHJp
b3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9IVFRQUGlwZWxpbmluZ1ByaW9yaXR5
KG1fcHJpb3JpdHkpKTsKICNlbmRpZgogCiAgICAgW25zUmVxdWVzdCBzZXRDYWNoZVBvbGljeToo
TlNVUkxSZXF1ZXN0Q2FjaGVQb2xpY3kpY2FjaGVQb2xpY3koKV07Ci0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA3MAogICAgIHdrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZyhbbnNSZXF1
ZXN0IF9DRlVSTFJlcXVlc3RdKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KaW5kZXggYmUy
ZTI3NjcuLjk1Zjc1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KQEAgLTQ5Nyw3ICs0OTcsNyBAQCB2
b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNl
KQogICAgICAgICB9CiAgICAgfQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIC8vIFdvcmthcm91bmQg
Zm9yIDxyZGFyOi8vcHJvYmxlbS81NTM5ODI0PgogICAgIGlmIChDRlN0cmluZ0NvbXBhcmUocmVz
dWx0LmdldCgpLCBDRlNUUigidGV4dC94bWwiKSwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG8pCiAg
ICAgICAgIHJlc3VsdCA9IENGU1RSKCJhcHBsaWNhdGlvbi94bWwiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCmluZGV4IDA3NDJjYjMuLmM3YWU4NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaApAQCAtMzksMTgg
KzM5LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2RlZmluZSBXVEZfVVNFX0dSQU1NQVJf
Q0hFQ0tJTkcgMQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDYwCiAjZGVmaW5lIFdURl9VU0VfVU5JRklFRF9URVhUX0NIRUNLSU5HIDEKICNk
ZWZpbmUgV1RGX1VTRV9BVVRPTUFUSUNfVEVYVF9SRVBMQUNFTUVOVCAxCiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAvLyBTb21lIHBsYXRmb3JtcyBwcm92
aWRlIFVJIGZvciBzdWdnZXN0aW5nIGF1dG9jb3JyZWN0aW9uLgogI2RlZmluZSBXVEZfVVNFX0FV
VE9DT1JSRUNUSU9OX1BBTkVMIDEKIC8vIFNvbWUgcGxhdGZvcm1zIHVzZSBzcGVsbGluZyBhbmQg
YXV0b2NvcnJlY3Rpb24gbWFya2VycyB0byBwcm92aWRlIHZpc3VhbCBjdWUuCiAvLyBPbiBzdWNo
IHBsYXRmb3JtLCBpZiB3b3JkIHdpdGggbWFya2VyIGlzIGVkaXRlZCwgd2UgbmVlZCB0byByZW1v
dmUgdGhlIG1hcmtlci4KICNkZWZpbmUgV1RGX1VTRV9NQVJLRVJfUkVNT1ZBTF9VUE9OX0VESVRJ
TkcgMQotI2VuZGlmIC8vICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAv
LyAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKIAogZW51bSBUZXh0Q2hlY2tpbmdUeXBlIHsKICAgICBUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmcgICAgPSAxIDw8IDEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9j
Zi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCBmMTcwYjhhLi5iNWVkOTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgog
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIgogI2luY2x1ZGUg
IlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKQEAgLTc2LDQgKzc2LDQgQEAgc2l6ZV90
IGxhc3RIeXBoZW5Mb2NhdGlvbihjb25zdCBVQ2hhciogY2hhcmFjdGVycywgc2l6ZV90IGxlbmd0
aCwgc2l6ZV90IGJlZm9yZUkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVu
YXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlv
bk1hYy5tbQppbmRleCA0Yzg2NzY4Li4wZDExOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlvbk1hYy5tbQpAQCAtMjYsNyArMjYsNyBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJIeXBoZW5hdGlvbi5oIgogCi0jaWYgZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIAogI2ltcG9y
dCAiQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIgogI2ltcG9ydCAiVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVS5oIgpAQCAtNjcsNCArNjcsNCBAQCBzaXplX3QgbGFzdEh5cGhlbkxvY2F0
aW9uKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoLCBzaXplX3QgYmVmb3Jl
SQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2VuZGlm
IC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAxZDVjYmQ4Li4w
Njk5OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcApAQCAtMTAxMyw3ICsxMDEzLDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmNv
bnRhaW5zUGFpbnRlZENvbnRlbnQoKSBjb25zdAogICAgIGlmIChyZW5kZXJlcigpLT5pc1ZpZGVv
KCkgJiYgdG9SZW5kZXJWaWRlbyhyZW5kZXJlcigpKS0+c2hvdWxkRGlzcGxheVZpZGVvKCkpCiAg
ICAgICAgIHJldHVybiBoYXNCb3hEZWNvcmF0aW9uc09yQmFja2dyb3VuZChyZW5kZXJlcigpKTsK
ICNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
UExBVEZPUk0oTUFDKSAmJiBVU0UoQ0EpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA3MAogI2VsaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQogICAgIGlmIChpc0FjY2VsZXJhdGVkQ2FudmFzKHJlbmRlcmVyKCkpKQogICAgICAg
ICByZXR1cm4gaGFzQm94RGVjb3JhdGlvbnNPckJhY2tncm91bmQocmVuZGVyZXIoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDI0M2NmZjMuLjkwZmQ4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xNzUzLDEwICsxNzUzLDEwIEBAIGJvb2wg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKFJl
bmRlck9iamVjdCogcmVuZGVyCiAgICAgaWYgKEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1Db250
cm9sbGVyID0gcmVuZGVyZXItPmFuaW1hdGlvbigpKSB7CiAgICAgICAgIHJldHVybiAoYW5pbUNv
bnRyb2xsZXItPmlzUnVubmluZ0FuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3Bl
cnR5T3BhY2l0eSkgJiYgaW5Db21wb3NpdGluZ01vZGUoKSkKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKQorI2lmICFQTEFURk9STShNQUMpIHx8IF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzEw
OTA3MjUxPiAtIFdlYktpdDIgZG9lc24ndCBzdXBwb3J0IENBIGFuaW1hdGlvbnMgb2YgQ0kgZmls
dGVycyBvbiBMaW9uIGFuZCBiZWxvdwogICAgICAgICAgICAgfHwgYW5pbUNvbnRyb2xsZXItPmlz
UnVubmluZ0FuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5V2Via2l0Rmls
dGVyKQotI2VuZGlmIC8vICFTTk9XX0xFT1BBUkQgJiYgIUxJT04KKyNlbmRpZiAvLyAhUExBVEZP
Uk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICNlbmRp
ZiAvLyBDU1NfRklMVEVSUwogICAgICAgICAgICAgfHwgYW5pbUNvbnRyb2xsZXItPmlzUnVubmlu
Z0FuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3Jt
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5k
ZXggZTA5NDM3ZC4uNmVkNGFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtNzM1LDcgKzczNSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50
VGV4dEZpZWxkKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sCiB7
CiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8u
Y29udGV4dCk7CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pIHx8IGRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPD0gMTA3MAogICAgIGJvb2wgdXNlTlNUZXh0RmllbGRDZWxsID0gby0+c3R5bGUoKS0+aGFz
QXBwZWFyYW5jZSgpCiAgICAgICAgICYmIG8tPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikgPT0gQ29sb3I6OndoaXRlCiAgICAgICAgICYm
ICFvLT5zdHlsZSgpLT5oYXNCYWNrZ3JvdW5kSW1hZ2UoKTsKQEAgLTIxMTEsNyArMjExMSw3IEBA
IEludFBvaW50IFJlbmRlclRoZW1lTWFjOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRv
bihSZW5kZXJCb3gqIG11dGVCdXR0b25CCiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnNob3VsZFNo
b3dQbGFjZWhvbGRlcldoZW5Gb2N1c2VkKCkgY29uc3QKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgcmV0dXJuIHRydWU7
CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTIxODMsNyArMjE4Myw3IEBAIE5TVGV4dEZp
ZWxkQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnRleHRGaWVsZCgpIGNvbnN0CiAgICAgICAgIFttX3Rl
eHRGaWVsZC5nZXQoKSBzZXRCZXplbGVkOllFU107CiAgICAgICAgIFttX3RleHRGaWVsZC5nZXQo
KSBzZXRFZGl0YWJsZTpZRVNdOwogICAgICAgICBbbV90ZXh0RmllbGQuZ2V0KCkgc2V0Rm9jdXNS
aW5nVHlwZTpOU0ZvY3VzUmluZ1R5cGVFeHRlcmlvcl07Ci0jaWYgZGVmaW5lZChCVUlMRElOR19P
Tl9MSU9OKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKICAgICAgICAgW21fdGV4dEZpZWxkLmdl
dCgpIHNldERyYXdzQmFja2dyb3VuZDpZRVNdOwogICAgICAgICBbbV90ZXh0RmllbGQuZ2V0KCkg
c2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIHdoaXRlQ29sb3JdXTsKICNlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDYyOTkxMzkuLmU4NWRkMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDctMTEgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85MTAxNT4gUmVtb3Zl
IEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZvciBvZiBzeXN0ZW0gYXZhaWxh
YmlsaXR5IG1hY3JvcworCisgICAgICAgIFRoaXMgcmVtb3ZhbCB3YXMgaGFuZGxlZCBieSBhIHNj
cmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1hY3JvcyBpbiB0byB0aGUgZXF1aXZh
bGVudCBjaGVja3MKKyAgICAgICAgdXNpbmcgdGhlIHN5c3RlbSBhdmFpbGFiaWxpdHkgbWFjcm9z
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbToKKwogMjAxMi0wNy0xMSAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1pbmltdW0gc2l6
ZSB1c2VkIGZvciBvY2NsdXNpb24gdHJhY2tpbmcgc2hvdWxkIGJlIGEgc2V0dGluZyBvbiBDQ0xh
eWVyVHJlZUhvc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQppbmRleCBmNzE5ZjJkLi5mNTQxZWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0K
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5
Lm1tCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1
ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKLSNpZiBCVUlMRElOR19PTl9MRU9QQVJEIHx8IEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PD0gMTA2MAogCiAvLyBBZGRpdGlvbmFsIExpb24gQVBJcy4KIGVudW0gewpAQCAtNTMsOSArNTMs
OSBAQCB0eXBlZGVmIE5TVUludGVnZXIgTlNFdmVudFBoYXNlOwogLSAoTlNFdmVudFBoYXNlKW1v
bWVudHVtUGhhc2U7CiBAZW5kCiAKLSNlbmRpZiAgLy8gQlVJTERJTkdfT05fTEVPUEFSRCB8fCBC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNlbmRpZiAgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8PSAxMDYwCiAKLSNpZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAKIC8vIFRoZXNlIGFyZSBub3QgZGVm
aW5lZCBpbiB0aGUgMTAuNSBTREsgYnV0IGFyZSBkZWZpbmVkIGluIGxhdGVyIFNES3MgaW5zaWRl
CiAvLyBhIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8x
MF81ICNpZmRlZi4KQEAgLTY0LDcgKzY0LDcgQEAgZW51bSB7CiAgICAgTlNFdmVudFR5cGVFbmRH
ZXN0dXJlICAgICAgID0gMjAKIH07CiAKLSNlbmRpZiAgLy8gQlVJTERJTkdfT05fTEVPUEFSRAor
I2VuZGlmICAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAyMjA2ZDJmLi5lN2VhMzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDctMTEgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85MTAxNT4g
UmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZvciBvZiBzeXN0ZW0g
YXZhaWxhYmlsaXR5IG1hY3JvcworCisgICAgICAgIFRoaXMgcmVtb3ZhbCB3YXMgaGFuZGxlZCBi
eSBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1hY3JvcyBpbiB0byB0aGUg
ZXF1aXZhbGVudCBjaGVja3MKKyAgICAgICAgdXNpbmcgdGhlIHN5c3RlbSBhdmFpbGFiaWxpdHkg
bWFjcm9zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKiBNaXNjL1dlYktpdEVycm9ycy5tOgorICAgICAgICAqIE1pc2MvV2ViTlNDb250cm9s
RXh0cmFzLm06CisgICAgICAgICogTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICog
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06Cisg
ICAgICAgICogV2ViVmlldy9XZWJDbGlwVmlldy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkR5
bmFtaWNTY3JvbGxCYXJzVmlldy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5t
bToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmll
d0ludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQREZEb2N1bWVudEV4dHJhcy5tbToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUmVzb3VyY2VJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViU2NyaXB0RGVidWdE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdQcml2YXRlLmg6CisKIDIwMTItMDctMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSBh
bmQgLVdzaWduLWNvbXBhcmUgd2FybmluZyBmbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRleHRNZW51
RGVsZWdhdGUubW0KaW5kZXggZDNlZmY5Mi4uNzQ2NjYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRDb250
ZXh0TWVudURlbGVnYXRlLm1tCkBAIC04OSw3ICs4OSw3IEBACiAgICAgICAgICAgICBhY3Rpb24g
PSBAc2VsZWN0b3IoX3NlYXJjaFdpdGhTcG90bGlnaHRGcm9tTWVudTopOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgV2ViTWVudUl0ZW1UYWdTZWFyY2hXZWI6IHsKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
ICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENG
LCBXS0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKICAgICAgICAgICAg
IHRpdGxlID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HX0lOVEVSTkFMKCJT
ZWFyY2ggd2l0aCAlQCIsICJTZWFyY2ggd2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51
IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVkIiksIHNlYXJjaFByb3ZpZGVyTmFtZS5n
ZXQoKV07CiAjZWxzZQpAQCAtMTM2LDcgKzEzNiw3IEBACiAgICAgfQogfQogCi0jaWYgZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKICNkZWZpbmUg
SU5DTFVERV9TUE9UTElHSFRfQ09OVEVYVF9NRU5VX0lURU0gMQogI2Vsc2UKICNkZWZpbmUgSU5D
TFVERV9TUE9UTElHSFRfQ09OVEVYVF9NRU5VX0lURU0gMApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
S2l0RXJyb3JzLm0KaW5kZXggYjFjNmM5Ny4uZmUzZGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnMubQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYktpdEVycm9ycy5tCkBAIC0xMTYsNyArMTE2LDcgQEAgLSAoaWQpX2luaXRXaXRoUGx1Z2lu
RXJyb3JDb2RlOihpbnQpY29kZQogICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0OmxvY2FsaXpl
ZERlc2NyaXB0aW9uIGZvcktleTpOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5XTsKICAgICBpZiAo
Y29udGVudFVSTCkgewogICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0OmNvbnRlbnRVUkwgZm9y
S2V5OkAiTlNFcnJvckZhaWxpbmdVUkxLZXkiXTsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgICAgIFt1
c2VySW5mbyBzZXRPYmplY3Q6W2NvbnRlbnRVUkwgX3dlYl91c2VyVmlzaWJsZVN0cmluZ10gZm9y
S2V5Ok5TRXJyb3JGYWlsaW5nVVJMU3RyaW5nS2V5XTsKICNlbHNlCiAgICAgICAgIFt1c2VySW5m
byBzZXRPYmplY3Q6W2NvbnRlbnRVUkwgX3dlYl91c2VyVmlzaWJsZVN0cmluZ10gZm9yS2V5Ok5T
VVJMRXJyb3JGYWlsaW5nVVJMU3RyaW5nRXJyb3JLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViTlNDb250cm9sRXh0cmFzLm0KaW5kZXggNmVkZjg0Zi4uODFiNWM4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRyYXMubQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tCkBAIC00Niw3ICs0Niw3IEBA
IC0gKHZvaWQpc2l6ZVRvRml0QW5kQWRqdXN0V2luZG93SGVpZ2h0CiAgICAgTlNSZWN0IHdpbmRv
d0ZyYW1lID0gW3dpbmRvdyBmcmFtZV07CiAKICAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZUZhY3Rv
cjsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAgICAgYmFja2luZ1NjYWxlRmFjdG9yID0gW3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0
b3JdOwogI2Vsc2UKICAgICBiYWNraW5nU2NhbGVGYWN0b3IgPSBbd2luZG93IHVzZXJTcGFjZVNj
YWxlRmFjdG9yXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNGaWxl
TWFuYWdlckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNGaWxlTWFuYWdl
ckV4dHJhcy5tbQppbmRleCBmYTE1MDIzLi5lN2E4MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tCkBAIC0zNiw3ICszNiw3IEBACiAj
aW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCi0jaWZkZWYg
QlVJTERJTkdfT05fU05PV19MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA9PSAxMDYwCiBleHRlcm4gIkMiIERBRGlza1JlZiBEQURpc2tDcmVhdGVGcm9tVm9sdW1l
UGF0aChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIERBU2Vzc2lvblJlZiBzZXNzaW9uLCBDRlVS
TFJlZiBwYXRoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
MTY1YTAwNi4uZTM4YWU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTI1
LDcgKzEyNSw3IEBAIGV4dGVybiAiQyIgewogCiAgICAgICAgIGlmIChhY2NsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkICYmIF9wcm94eS0+cmVuZGVyZXJUeXBlKCkgPT0gVXNlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZykgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBjYW4gYmUgc2hh
cmVkIGJldHdlZW4gV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGFuZCBXZWJOZXRzY2FwZVBs
dWdpblZpZXcuCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgICAgIC8vIFNpbmNlIHRoaXMgbGF5
ZXIgaXNuJ3QgZ29pbmcgdG8gYmUgaW5zZXJ0ZWQgaW50byBhIHZpZXcsIHdlIG5lZWQgdG8gY3Jl
YXRlIGFub3RoZXIgbGF5ZXIgYW5kIGZsaXAgaXRzIGdlb21ldHJ5CiAgICAgICAgICAgICAvLyBp
biBvcmRlciB0byBnZXQgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIHJpZ2h0LgogICAgICAgICAgICAg
UmV0YWluUHRyPENBTGF5ZXI+IHJlYWxQbHVnaW5MYXllcihBZG9wdE5TLCBfcGx1Z2luTGF5ZXIu
bGVha1JlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA4NWQ3YWJhLi4wZjEzMDEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgX2Jh
c2VVUkwuYWRvcHROUyhbYmFzZVVSTCBjb3B5XSk7CiAgICAgX01JTUVUeXBlLmFkb3B0TlMoW01J
TUUgY29weV0pOwogICAgIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgLy8gRW5hYmxlICJraW9zayBt
b2RlIiB3aGVuIGluc3RhbnRpYXRpbmcgdGhlIFFUIHBsdWctaW4gaW5zaWRlIG9mIERhc2hib2Fy
ZC4gU2VlIDxyZGFyOi8vcHJvYmxlbS82ODc4MTA1PgogICAgIGlmIChbW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uYXBwbGUuZGFz
aGJvYXJkLmNsaWVudCJdICYmCiAgICAgICAgIFtfcGx1Z2luUGFja2FnZS5nZXQoKSBidW5kbGVJ
ZGVudGlmaWVyXSA9PSAiY29tLmFwcGxlLlF1aWNrVGltZSBQbHVnaW4ucGx1Z2luIikgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpp
bmRleCA0MjY0MDVmLi40ZTFhYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTA5OSw3ICsxMDk5LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICNl
bmRpZgogICAgICAgICAgICAgaWYgKGFjY2xlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpIHsKICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBX
ZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgYW5kIFdlYk5ldHNjYXBlUGx1Z2luVmlldy4KLSNp
Zm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA2MAogICAgICAgICAgICAgICAgIC8vIFNpbmNlIHRoaXMgbGF5ZXIgaXNuJ3Qg
Z29pbmcgdG8gYmUgaW5zZXJ0ZWQgaW50byBhIHZpZXcsIHdlIG5lZWQgdG8gY3JlYXRlIGFub3Ro
ZXIgbGF5ZXIgYW5kIGZsaXAgaXRzIGdlb21ldHJ5CiAgICAgICAgICAgICAgICAgLy8gaW4gb3Jk
ZXIgdG8gZ2V0IHRoZSBjb29yZGluYXRlIHN5c3RlbSByaWdodC4KICAgICAgICAgICAgICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gcmVhbFBsdWdpbkxheWVyKEFkb3B0TlMsIF9wbHVnaW5MYXllci5s
ZWFrUmVmKCkpOwpAQCAtMjIzMSw3ICsyMjMxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5Q
UmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2UgTlBOVVJMVlByb3h5OiB7Ci0jaWZuZGVmIEJVSUxESU5H
X09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAK
ICAgICAgICAgICAgIGlmICghdmFsdWUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAKQEAgLTIzNDEsNyArMjM0MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3Qo
Y29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAvLyBGb3Igbm93LCB3ZSdsbCBkaXN0aW5n
dWlzaCBvbGRlciBicm9rZW4gdmVyc2lvbnMgb2YgU2lsdmVybGlnaHQgYnkgYXNraW5nIHRoZSBw
bHVnLWluIGlmIGl0IHJlc29sdmVkIGl0cyBmdWxsIHNjcmVlbiBiYWRuZXNzLgogLSAodm9pZClf
d29ya2Fyb3VuZFNpbHZlcmxpZ2h0RnVsbHNjcmVlbkJ1ZzooQk9PTClpbml0aWFsaXplZFBsdWdp
bgogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgQVNTRVJUKF9pc1NpbHZlcmxpZ2h0KTsKICAgICBO
UEJvb2wgaXNGdWxsc2NyZWVuUGVyZm9ybWFuY2VJc3N1ZUZpeGVkID0gMDsKICAgICBOUFBsdWdp
bkZ1bmNzICpwbHVnaW5GdW5jcyA9IFtfcGx1Z2luUGFja2FnZS5nZXQoKSBwbHVnaW5GdW5jc107
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KaW5kZXggMmVhMGQ2Ni4uZWQ2ZmE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtODE4LDcgKzgxOCw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2Rl
KiBub2RlKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vs
c2UKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgyNyw3ICs4MjcsNyBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQogCiBib29sIFdlYkNo
cm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlv
bigpCiB7Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCmluZGV4IGVkODNkYTYuLjY0OTdjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTc0LDcg
Kzc0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDcwCiBAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChXZWJOU1NwZWxsQ2hlY2tl
ckRldGFpbHMpCiAtIChOU1N0cmluZyAqKWxhbmd1YWdlRm9yV29yZFJhbmdlOihOU1JhbmdlKXJh
bmdlIGluU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBvcnRob2dyYXBoeTooTlNPcnRob2dyYXBo
eSAqKW9ydGhvZ3JhcGh5OwogQGVuZApAQCAtNjk4LDcgKzY5OCw3IEBAIHZvaWQgV2ViRWRpdG9y
Q2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50KiBlbGVtZW50KQogYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFRl
eHRDaGVja2luZ1R5cGUgdHlwZSkgY29uc3QKIHsKICAgICAvLyBUaGlzIHByZXZlbnRzIGVyYXNp
bmcgc3BlbGxpbmcgbWFya2VycyBvbiBPUyBYIExpb24gb3IgbGF0ZXIgdG8gbWF0Y2ggQXBwS2l0
IG9uIHRoZXNlIE1hYyBPUyBYIHZlcnNpb25zLgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICByZXR1cm4gdHlwZSAhPSBUZXh0
Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CiAjZWxzZQogICAgIHJldHVybiB0cnVlOwpAQCAtNzY5LDcg
Kzc2OSw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja0dyYW1tYXJPZlN0cmluZyhjb25z
dCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgVmVjdG9yCiAgICAgfQogfQogCi0jaWZuZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNjAKIHN0YXRpYyBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBjb3JlKE5TQXJyYXkgKmlu
Y29taW5nUmVzdWx0cywgVGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykKIHsKICAg
ICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwpAQCAtODUyLDcgKzg1Miw3IEBA
IHN0YXRpYyBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBjb3JlKE5TQXJyYXkgKmluY29taW5n
UmVzdWx0cywgVGV4dENoZWNraW5nVHlwCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1Rl
eHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgVGV4dENoZWNraW5n
VHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3Vs
dHMpCiB7Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBOU1N0cmluZyAqdGV4dFN0cmluZyA9IFtbTlNT
dHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpjb25zdF9jYXN0PFVDaGFyKj4o
dGV4dCkgbGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dOwogICAgIE5TQXJyYXkgKmluY29t
aW5nUmVzdWx0cyA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBjaGVja1N0
cmluZzp0ZXh0U3RyaW5nIHJhbmdlOk5TTWFrZVJhbmdlKDAsIFt0ZXh0U3RyaW5nIGxlbmd0aF0p
IHR5cGVzOihjaGVja2luZ1R5cGVzfE5TVGV4dENoZWNraW5nVHlwZU9ydGhvZ3JhcGh5KSBvcHRp
b25zOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkg
b3J0aG9ncmFwaHk6TlVMTCB3b3JkQ291bnQ6TlVMTF07CiAgICAgW3RleHRTdHJpbmcgcmVsZWFz
ZV07CkBAIC04OTUsNyArODk1LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNwZWxsaW5nVUlJ
c1Nob3dpbmcoKQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBn
dWVzc2VzKSB7CiAgICAgZ3Vlc3Nlcy5jbGVhcigpOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBOU1N0cmluZyogbGFuZ3Vh
Z2UgPSBuaWw7CiAgICAgTlNPcnRob2dyYXBoeSogb3J0aG9ncmFwaHkgPSBuaWw7CiAgICAgTlNT
cGVsbENoZWNrZXIgKmNoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XTsKQEAgLTkyNSw3ICs5MjUsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sKQogewogfQogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIEBpbnRlcmZhY2UgV2ViRWRp
dG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0CiB7CiAgICAgV2ViRWRpdG9yQ2xpZW50
KiBfY2xpZW50OwpAQCAtOTY1LDcgKzk2NSw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRD
aGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1bHRzKQogCiB2b2lkIFdlYkVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdSZXF1ZXN0PiByZXF1ZXN0KQogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgQVNT
RVJUKCFtX3RleHRDaGVja2luZ1JlcXVlc3QpOwogICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdCA9
IHJlcXVlc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggY2E3OGUzMS4uNjM2NDQyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KQEAgLTY2OCw3ICs2NjgsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCkKICAgICBXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcg
KnNjcm9sbFZpZXcgPSBbbV93ZWJGcmFtZS0+X3ByaXZhdGUtPndlYkZyYW1lVmlldyBfc2Nyb2xs
Vmlld107CiAgICAgaWYgKFtnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpIGRyYXdzQmFja2dy
b3VuZF0pCiAgICAgICAgIFtzY3JvbGxWaWV3IHNldERyYXdzQmFja2dyb3VuZDpZRVNdOwotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
ICAgICBbc2Nyb2xsVmlldyBzZXRWZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHk6TlNTY3JvbGxFbGFz
dGljaXR5QXV0b21hdGljXTsKICAgICBbc2Nyb2xsVmlldyBzZXRIb3Jpem9udGFsU2Nyb2xsRWxh
c3RpY2l0eTpOU1Njcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWNdOwogI2VuZGlmCkBAIC0xMDg3LDcg
KzEwODcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm92aXNpb25hbExvYWRTdGFy
dGVkKCkKIAogICAgIFdlYkR5bmFtaWNTY3JvbGxCYXJzVmlldyAqc2Nyb2xsVmlldyA9IFttX3dl
YkZyYW1lLT5fcHJpdmF0ZS0+d2ViRnJhbWVWaWV3IF9zY3JvbGxWaWV3XTsKICAgICBbc2Nyb2xs
VmlldyBzZXREcmF3c0JhY2tncm91bmQ6Tk9dOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBbc2Nyb2xsVmlldyBzZXRWZXJ0
aWNhbFNjcm9sbEVsYXN0aWNpdHk6TlNTY3JvbGxFbGFzdGljaXR5Tm9uZV07CiAgICAgW3Njcm9s
bFZpZXcgc2V0SG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk6TlNTY3JvbGxFbGFzdGljaXR5Tm9u
ZV07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCBkMWYyZjE1Li4xMDJjZWZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9p
ZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSU5JVChBZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNl
QW5pbWF0aW9uKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgSU5JVChDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXdu
V2l0aEJsb2NrKTsKICNlbmRpZgogICAgIElOSVQoQ0dDb250ZXh0R2V0U2hvdWxkU21vb3RoRm9u
dHMpOwpAQCAtMTE5LDE0ICsxMTksMTQgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFj
ZSh2b2lkKQogICAgIElOSVQoR2V0R2x5cGhzRm9yQ2hhcmFjdGVycyk7CiAgICAgSU5JVChHZXRW
ZXJ0aWNhbEdseXBoc0ZvckNoYXJhY3RlcnMpOwogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKICAgICBJTklUKEdldEh5cGhlbmF0aW9u
TG9jYXRpb25CZWZvcmVJbmRleCk7CiAgICAgSU5JVChHZXROU0V2ZW50TW9tZW50dW1QaGFzZSk7
CiAjZW5kaWYKIAogICAgIElOSVQoQ3JlYXRlQ1RMaW5lV2l0aFVuaUNoYXJQcm92aWRlcik7CiAK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgSU5JVChJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKTsKICAgICBJTklUKElPU3VyZmFj
ZUNvbnRleHRDcmVhdGVJbWFnZSk7CiAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5p
Q2hhclByb3ZpZGVyQW5kT3B0aW9ucyk7CkBAIC0xNzQsMjQgKzE3NCwyNCBAQCB2b2lkIEluaXRX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGlzIGZpbGUgaW4gQ2hyb21pdW0uCiAKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgSU5JVChDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSk7CiAjZW5kaWYKIAot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
ICAgICBJTklUKEdldE1hY09TWFZlcnNpb25TdHJpbmcpOwogICAgIElOSVQoRXhlY3V0YWJsZVdh
c0xpbmtlZE9uT3JCZWZvcmVMaW9uKTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoQ0dQYXRoQWRk
Um91bmRlZFJlY3QpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
SU5JVChDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RDYWNoaW5nKTsKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
SU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoRmlsdGVySXNNYW5hZ2VkU2Vz
c2lvbik7CiAgICAgSU5JVChGaWx0ZXJDcmVhdGVJbnN0YW5jZSk7CiAgICAgSU5JVChGaWx0ZXJS
ZWxlYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQ2xpcFZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCmluZGV4IDc0
NzA5YjAuLmQwNmZlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Q2xpcFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5t
bQpAQCAtNTIsNyArNTIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIC0gKHZvaWQpX2lt
bWVkaWF0ZVNjcm9sbFRvUG9pbnQ6KE5TUG9pbnQpbmV3T3JpZ2luOwogQGVuZAogCi0jaWZuZGVm
IEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKIEBpbnRlcmZhY2UgTlNXaW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKIC0gKHZv
aWQpX2Rpc2FibGVEZWxheWVkV2luZG93RGlzcGxheTsKIC0gKHZvaWQpX2VuYWJsZURlbGF5ZWRX
aW5kb3dEaXNwbGF5OwpAQCAtMTA1LDEzICsxMDUsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB7CiAgICAgX2lzU2Nyb2xsaW5nID0gWUVTOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xF
T1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBb
W3NlbGYgd2luZG93XSBfZGlzYWJsZURlbGF5ZWRXaW5kb3dEaXNwbGF5XTsKICNlbmRpZgogCiAg
ICAgW3N1cGVyIF9pbW1lZGlhdGVTY3JvbGxUb1BvaW50Om5ld09yaWdpbl07CiAKLSNpZm5kZWYg
QlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA2MAogICAgIFtbc2VsZiB3aW5kb3ddIF9lbmFibGVEZWxheWVkV2luZG93RGlzcGxheV07
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5h
bWljU2Nyb2xsQmFyc1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5bmFt
aWNTY3JvbGxCYXJzVmlldy5tbQppbmRleCA4MDExMDk0Li44MzliNTRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbQpA
QCAtNDEzLDcgKzQxMyw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4VXBkYXRlU2Nyb2xs
YmFyc1Bhc3MgPSAyOwogICAgIC8vIFRoaXMgY2FsbCB1cGRhdGVzIHRoZSBpbml0aWFsIHBvc2l0
aW9uIGNvcnJlY3RseS4KICAgICBbc2VsZiBhZGp1c3RGb3JTY3JvbGxPcmlnaW5DaGFuZ2VdOwog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9
IFtzZWxmIGRvY3VtZW50Vmlld107CiAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFz
czpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewogICAgICAgICBXZWJIVE1MVmlldyAqaHRtbFZpZXcg
PSAoV2ViSFRNTFZpZXcgKilkb2N1bWVudFZpZXc7CkBAIC01MjIsNyArNTIyLDcgQEAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGNNYXhVcGRhdGVTY3JvbGxiYXJzUGFzcyA9IDI7CiAgICAgQk9PTCBp
c0NvbnRpbnVvdXM7CiAgICAgV0tHZXRXaGVlbEV2ZW50RGVsdGFzKGV2ZW50LCAmZGVsdGFYLCAm
ZGVsdGFZLCAmaXNDb250aW51b3VzKTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBOU0V2ZW50UGhhc2UgbW9tZW50dW1Q
aGFzZSA9IFtldmVudCBtb21lbnR1bVBoYXNlXTsKICAgICBCT09MIGlzTGF0Y2hpbmdFdmVudCA9
IG1vbWVudHVtUGhhc2UgJiBOU0V2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlICYgTlNF
dmVudFBoYXNlU3RhdGlvbmFyeTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWVWaWV3Lm1tCmluZGV4IDdhMDllNGUuLmM5OGUzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBD
bGFzcyBvYmpDQ2wKIAogLy8gRklYTUU6IFJlbW92ZSB0aGUgTlNBcHBLaXRWZXJzaW9uTnVtYmVy
V2l0aERlZmVycmVkV2luZG93RGlzcGxheVN1cHBvcnQgY2hlY2sgb25jZQogLy8gb25jZSBBcHBL
aXQncyBEZWZlcnJlZCBXaW5kb3cgRGlzcGxheSBzdXBwb3J0IGlzIGF2YWlsYWJsZS4KLSNpZiBk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8ICFkZWZpbmVkKE5TQXBwS2l0VmVyc2lvbk51
bWJlcldpdGhEZWZlcnJlZFdpbmRvd0Rpc3BsYXlTdXBwb3J0KQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MCB8fCAhZGVmaW5lZChOU0FwcEtpdFZlcnNpb25OdW1i
ZXJXaXRoRGVmZXJyZWRXaW5kb3dEaXNwbGF5U3VwcG9ydCkKICAgICAgICAgLy8gQ29yZUdyYXBo
aWNzIGRlZmVycmVkIHVwZGF0ZXMgYXJlIGRpc2FibGVkIGlmIFdlYktpdEVuYWJsZUNvYWxlc2Nl
ZFVwZGF0ZXNQcmVmZXJlbmNlS2V5IGlzIE5PCiAgICAgICAgIC8vIG9yIGhhcyBubyB2YWx1ZS4g
Rm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWCAxMC41IGFuZCBsb3dlciwgZGVmZXJyZWQg
dXBkYXRlcyBhcmUgb2ZmIGJ5IGRlZmF1bHQuCiAgICAgICAgIGlmICghW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXRFbmFibGVEZWZlcnJlZFVw
ZGF0ZXNQcmVmZXJlbmNlS2V5XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IGFjZDY5OGEuLmZlYTgwYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxl
ci5tbQpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgSW50UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50
cyhFbGVtZW50KiBlbGVtZW50KQogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlv
bldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiBAZW5kCiAKLSNpZiBkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogQGludGVy
ZmFjZSBOU1dpbmRvdyhjb252ZXJ0UmVjdFRvU2NyZWVuRm9yTGVvcGFyZEFuZFNub3dMZW9wYXJk
KQogLSAoTlNSZWN0KWNvbnZlcnRSZWN0VG9TY3JlZW46KE5TUmVjdClhUmVjdDsKIEBlbmQKQEAg
LTI3MywxNCArMjczLDE0IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIFdLV2luZG93U2V0Q2xpcFJlY3QoW3NlbGYgd2luZG93
XSwgd2luZG93Qm91bmRzKTsKICAgICAgICAgCiAgICAgICAgIE5TV2luZG93ICp3ZWJXaW5kb3cg
PSBbX3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSB3aW5kb3ddOwotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgLy8gSW4g
TGlvbiwgTlNXaW5kb3cgd2lsbCBhbmltYXRlIGludG8gYW5kIG91dCBvZiBvcmRlck91dCBvcGVy
YXRpb25zLiBTdXBwcmVzcyB0aGF0CiAgICAgICAgIC8vIGJlaGF2aW9yIGhlcmUsIG1ha2luZyBz
dXJlIHRvIHJlc2V0IHRoZSBhbmltYXRpb24gYmVoYXZpb3IgYWZ0ZXJ3YXJkLgogICAgICAgICBO
U1dpbmRvd0FuaW1hdGlvbkJlaGF2aW9yIGFuaW1hdGlvbkJlaGF2aW9yID0gW3dlYldpbmRvdyBh
bmltYXRpb25CZWhhdmlvcl07CiAgICAgICAgIFt3ZWJXaW5kb3cgc2V0QW5pbWF0aW9uQmVoYXZp
b3I6TlNXaW5kb3dBbmltYXRpb25CZWhhdmlvck5vbmVdOwogI2VuZGlmCiAgICAgICAgIFt3ZWJX
aW5kb3cgb3JkZXJPdXQ6c2VsZl07Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBbd2ViV2luZG93IHNldEFuaW1hdGlv
bkJlaGF2aW9yOmFuaW1hdGlvbkJlaGF2aW9yXTsKICNlbmRpZgogICAgICAgICAKQEAgLTMyMyw3
ICszMjMsNyBAQCBzdGF0aWMgSW50UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtZW50KiBl
bGVtZW50KQogICAgIFtzZWxmIF91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW5dOwogICAg
IAogICAgIE5TV2luZG93KiB3ZWJXaW5kb3cgPSBbX3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSB3
aW5kb3ddOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICAvLyBJbiBMaW9uLCBOU1dpbmRvdyB3aWxsIGFuaW1hdGUgaW50byBh
bmQgb3V0IG9mIG9yZGVyT3V0IG9wZXJhdGlvbnMuIFN1cHByZXNzIHRoYXQKICAgICAvLyBiZWhh
dmlvciBoZXJlLCBtYWtpbmcgc3VyZSB0byByZXNldCB0aGUgYW5pbWF0aW9uIGJlaGF2aW9yIGFm
dGVyd2FyZC4KICAgICBOU1dpbmRvd0FuaW1hdGlvbkJlaGF2aW9yIGFuaW1hdGlvbkJlaGF2aW9y
ID0gW3dlYldpbmRvdyBhbmltYXRpb25CZWhhdmlvcl07CkBAIC0zMzgsNyArMzM4LDcgQEAgc3Rh
dGljIEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbWVudCogZWxlbWVudCkKICAgICAg
ICAgW3dlYldpbmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZpb3I6YmVoYXZpb3JdOwogICAgIH0gZWxz
ZQogICAgICAgICBbd2ViV2luZG93IG9yZGVyV2luZG93Ok5TV2luZG93QmVsb3cgcmVsYXRpdmVU
bzpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdXTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgW3dlYldpbmRvdyBzZXRB
bmltYXRpb25CZWhhdmlvcjphbmltYXRpb25CZWhhdmlvcl07CiAjZW5kaWYKIApAQCAtNDE1LDcg
KzQxNSw3IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVsZW1lbnQqIGVs
ZW1lbnQpCiAtICh2b2lkKV91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW4KIHsKICAgICAv
LyBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9uT3B0aW9ucyBpcyBhdmFpbGFibGUgb24gPiAxMC42
IG9ubHk6Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9uT3B0
aW9ucyBvcHRpb25zID0gTlNBcHBsaWNhdGlvblByZXNlbnRhdGlvbkRlZmF1bHQ7CiAgICAgTlNT
Y3JlZW4qIGZ1bGxzY3JlZW5TY3JlZW4gPSBbW3NlbGYgd2luZG93XSBzY3JlZW5dOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMDRhNWE5OS4uNTA1
ZGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0yODUs
NyArMjg1LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpOU1RleHRJbnB1dFJlcGxhY2VtZW50UmFuZ2VB
dHRyaWJ1dGVOYW1lOwogLSAodm9pZClfaW52YWxpZGF0ZUdTdGF0ZXNGb3JUcmVlOwogLSAodm9p
ZClfcHJvcGFnYXRlRGlydHlSZWN0c1RvT3BhcXVlQW5jZXN0b3JzOwogLSAodm9pZClfd2luZG93
Q2hhbmdlZEtleVN0YXRlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAtICh2b2lkKV91
cGRhdGVMYXllckdlb21ldHJ5RnJvbVZpZXc7CiAjZW5kaWYKIEBlbmQKQEAgLTQxMSw3ICs0MTEs
NyBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQqIHByb21pc2VkRGF0YUNsaWVudCgpCiAtICh2
b2lkKV93ZWJfY2xlYXJQcmludGluZ01vZGVSZWN1cnNpdmU7CiBAZW5kCiAKLSNpZm5kZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA2MAogCiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3IChXZWJIVE1MVmlld1RleHRDaGVja2luZ0lu
dGVybmFsKQogLSAodm9pZClvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVsOihpZClzZW5kZXI7
CkBAIC03OTQsNyArNzk0LDcgQEAgc3RhdGljIE5TVVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRpdmVQ
YXJ0KE5TU3RyaW5nICpyZWxhdGl2ZVBhcnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdWJyZXNvdXJjZXM6MF0pKQogICAgICAgICByZXR1cm4gZnJhZ21l
bnQ7CiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgaWYgKFt0eXBlcyBjb250YWluc09iamVjdDpOU1BJ
Q1RQYm9hcmRUeXBlXSAmJgogICAgICAgICAoZnJhZ21lbnQgPSBbc2VsZiBfZG9jdW1lbnRGcmFn
bWVudEZyb21QYXN0ZWJvYXJkOnBhc3RlYm9hcmQgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvclR5cGU6TlNQSUNUUGJvYXJkVHlwZQpAQCAtODc1
LDcgKzg3NSw3IEBAIHN0YXRpYyBOU1VSTCogdW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChOU1N0
cmluZyAqcmVsYXRpdmVQYXJ0KQogICAgIERPTVJhbmdlICpyYW5nZSA9IFtzZWxmIF9zZWxlY3Rl
ZFJhbmdlXTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKTsKICAg
ICAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAgICAgRE9NRG9jdW1lbnRGcmFnbWVudCAqZnJhZ21lbnQgPSBbc2VsZiBfZG9jdW1l
bnRGcmFnbWVudEZyb21QYXN0ZWJvYXJkOnBhc3RlYm9hcmQgaW5Db250ZXh0OnJhbmdlIGFsbG93
UGxhaW5UZXh0OmFsbG93UGxhaW5UZXh0XTsKICAgICBpZiAoZnJhZ21lbnQgJiYgW3NlbGYgX3No
b3VsZEluc2VydEZyYWdtZW50OmZyYWdtZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGdpdmVu
QWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWRdKQogICAgICAgICBjb3JlRnJhbWUtPmVk
aXRvcigpLT5wYXN0ZUFzRnJhZ21lbnQoY29yZShmcmFnbWVudCksIFtzZWxmIF9jYW5TbWFydFJl
cGxhY2VXaXRoUGFzdGVib2FyZDpwYXN0ZWJvYXJkXSwgZmFsc2UpOwpAQCAtMTIzMiw3ICsxMjMy
LDcgQEAgc3RhdGljIE5TVVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRpdmVQYXJ0KE5TU3RyaW5nICpy
ZWxhdGl2ZVBhcnQpCiAgICAgfQogICAgIF9wcml2YXRlLT5sYXN0U2Nyb2xsUG9zaXRpb24gPSBv
cmlnaW47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIFtzZWxmIF91cGRhdGVM
YXllckhvc3RpbmdWaWV3UG9zaXRpb25dOwogI2VuZGlmCiB9CkBAIC0xMzg5LDcgKzEzODksNyBA
QCBzdGF0aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoTlNTdHJpbmcgKnJlbGF0
aXZlUGFydCkKIAogc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwCiAgICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlv
blJlbGVhc2VkID0gOTsKICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lzdGVtRGVmaW5l
ZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJp
bmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7CiAjZWxzZQpAQCAtMTY1
OCw3ICsxNjU4LDcgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWco
TlNFdmVudCAqZXZlbnQpCiAgICAgc3RhdGljIE5TQXJyYXkgKnR5cGVzID0gbmlsOwogICAgIGlm
ICghdHlwZXMpIHsKICAgICAgICAgdHlwZXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czpXZWJBcmNoaXZlUGJvYXJkVHlwZSwgTlNIVE1MUGJvYXJkVHlwZSwgTlNGaWxlbmFtZXNQ
Ym9hcmRUeXBlLCBOU1RJRkZQYm9hcmRUeXBlLCBOU1BERlBib2FyZFR5cGUsCi0jaWZkZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogICAgICAgICAgICAgTlNQSUNUUGJvYXJkVHlwZSwKICNlbmRpZgogICAgICAgICAgICAg
TlNVUkxQYm9hcmRUeXBlLCBOU1JURkRQYm9hcmRUeXBlLCBOU1JURlBib2FyZFR5cGUsIE5TU3Ry
aW5nUGJvYXJkVHlwZSwgTlNDb2xvclBib2FyZFR5cGUsIGtVVFR5cGVQTkcsIG5pbF07CkBAIC0y
MDQ3LDcgKzIwNDcsNyBAQCBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJh
ZyhOU0V2ZW50ICpldmVudCkKICAgICAgICAgW3Jlc291cmNlIHJlbGVhc2VdOwogICAgICAgICBy
ZXR1cm4gZnJhZ21lbnQ7CiAgICAgfQotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBpZiAocGJvYXJkVHlw
ZSA9PSBOU1BJQ1RQYm9hcmRUeXBlKSB7CiAgICAgICAgIFdlYlJlc291cmNlICpyZXNvdXJjZSA9
IFtbV2ViUmVzb3VyY2UgYWxsb2NdIGluaXRXaXRoRGF0YTpbcGFzdGVib2FyZCBkYXRhRm9yVHlw
ZTpOU1BJQ1RQYm9hcmRUeXBlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVUkw6dW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChA
ImltYWdlLnBpY3QiKQpAQCAtMjY5OSw3ICsyNjk5LDcgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtB
bmRTZWxlY3QpCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQogCi0jaWZuZGVmIEJVSUxESU5H
X09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAK
ICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVs
OikpIHsKICAgICAgICAgTlNNZW51SXRlbSAqbWVudUl0ZW0gPSAoTlNNZW51SXRlbSAqKWl0ZW07
CiAgICAgICAgIGlmIChbbWVudUl0ZW0gaXNLaW5kT2ZDbGFzczpbTlNNZW51SXRlbSBjbGFzc11d
KSB7CkBAIC0yODUyLDcgKzI4NTIsNyBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkK
ICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgLy8gTGVnYWN5IHNjcm9sbGJhcnMgcmVxdWlyZSB0cmFja2luZyB0aGUgbW91c2UgYXQgYWxs
IHRpbWVzLgogICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xs
ZXJTdHlsZUxlZ2FjeSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzM5MSw3ICszMzkxLDcgQEAgc3Rh
dGljIHZvaWQgc2V0TWVudVRhcmdldHMoTlNNZW51KiBtZW51KQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChfcHJpdmF0ZS0+dHJh
Y2tpbmdBcmVhRm9yTm9uS2V5V2luZG93KSB7CiAgICAgICAgIFtzZWxmIHJlbW92ZVRyYWNraW5n
QXJlYTpfcHJpdmF0ZS0+dHJhY2tpbmdBcmVhRm9yTm9uS2V5V2luZG93XTsKICAgICAgICAgW19w
cml2YXRlLT50cmFja2luZ0FyZWFGb3JOb25LZXlXaW5kb3cgcmVsZWFzZV07CkBAIC0zNDI0LDcg
KzM0MjQsNyBAQCBzdGF0aWMgdm9pZCBzZXRNZW51VGFyZ2V0cyhOU01lbnUqIG1lbnUpCiAgICAg
ICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5P
IG1vdmVMZWZ0Ok5PXTsKICAgICB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
aWYgKFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5
KSB7CiAgICAgICAgIC8vIExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFp
bHMgdGhhdCByZWx5IG9uIHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCiAgICAgICAg
IC8vIEl0J3MgZWFzaWVzdCB0byBkbyB0aGlzIHdpdGggYSB0cmFja2luZyBhcmVhLCB3aGljaCB3
ZSB3aWxsIHJlbW92ZSB3aGVuIHRoZSB3aW5kb3cgaXMga2V5CkBAIC00ODk4LDcgKzQ4OTgsNyBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChG
cmFtZSogY29yZUZyYW1lKQogCiBzdGF0aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGlu
Z3NFbmFibGVkKCkKIHsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIHJldHVybiBZRVM7CiAjZWxzZQog
ICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c107CkBAIC00OTM2LDcgKzQ5MzYsNyBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGly
ZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICBbc2VsZiBfY2hhbmdlQmFzZVdyaXRpbmdE
aXJlY3Rpb25UbzpOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdF07CiB9CiAKLSNpZmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9
PSAxMDUwCiAtICh2b2lkKWNoYW5nZUJhc2VXcml0aW5nRGlyZWN0aW9uVG9MVFI6KGlkKXNlbmRl
cgogewogICAgIFtzZWxmIG1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0OnNlbmRl
cl07CkBAIC01MTUxLDcgKzUxNTEsNyBAQCBzdGF0aWMgQ0dQb2ludCBjb3JlR3JhcGhpY3NTY3Jl
ZW5Qb2ludEZvckFwcEtpdFNjcmVlblBvaW50KE5TUG9pbnQgcG9pbnQpCiB9CiAKIAotI2lmbmRl
ZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDYwCiAKIC0gKHZvaWQpb3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5lbDooaWQpc2Vu
ZGVyCiB7CkBAIC01Mjg2LDcgKzUyODYsNyBAQCBzdGF0aWMgQ0dQb2ludCBjb3JlR3JhcGhpY3NT
Y3JlZW5Qb2ludEZvckFwcEtpdFNjcmVlblBvaW50KE5TUG9pbnQgcG9pbnQpCiAgICAgaWYgKGZv
bnQpCiAgICAgICAgIHJlY3Qub3JpZ2luLnkgKz0gW2ZvbnQgYXNjZW5kZXJdOwogCi0jaWZuZGVm
IEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKICAgICBbc2VsZiBzaG93RGVmaW5pdGlvbkZvckF0dHJpYnV0ZWRTdHJpbmc6YXR0
clN0cmluZyBhdFBvaW50OnJlY3Qub3JpZ2luXTsKICAgICByZXR1cm47CiAjZW5kaWYKQEAgLTU0
NzYsNyArNTQ3Niw3IEBAIHN0YXRpYyBDR1BvaW50IGNvcmVHcmFwaGljc1NjcmVlblBvaW50Rm9y
QXBwS2l0U2NyZWVuUG9pbnQoTlNQb2ludCBwb2ludCkKIHsKICAgICBpZiAoIV9wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3KSB7CiAgICAgICAgIE5TVmlldyogaG9zdGluZ1ZpZXcgPSBbW1dlYkxh
eWVySG9zdGluZ0ZsaXBwZWRWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOltzZWxmIGJvdW5kc11d
OwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgIFtob3N0aW5nVmlldyBzZXRBdXRvcmVzaXppbmdN
YXNrOihOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdIZWlnaHRTaXphYmxlKV07CiAjZW5kaWYK
ICAgICAgICAgW3NlbGYgYWRkU3Vidmlldzpob3N0aW5nVmlld107CkBAIC01NDg4LDcgKzU0ODgs
NyBAQCBzdGF0aWMgQ0dQb2ludCBjb3JlR3JhcGhpY3NTY3JlZW5Qb2ludEZvckFwcEtpdFNjcmVl
blBvaW50KE5TUG9pbnQgcG9pbnQpCiAgICAgLy8gTWFrZSBhIGNvbnRhaW5lciBsYXllciwgd2hp
Y2ggd2lsbCBnZXQgc2l6ZWQvcG9zaXRpb25lZCBieSBBcHBLaXQgYW5kIENBLgogICAgIENBTGF5
ZXIqIHZpZXdMYXllciA9IFtXZWJSb290TGF5ZXIgbGF5ZXJdOwogCi0jaWZkZWYgQlVJTERJTkdf
T05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAog
ICAgIC8vIFR1cm4gb2ZmIGRlZmF1bHQgYW5pbWF0aW9ucy4KICAgICBOU051bGwgKm51bGxWYWx1
ZSA9IFtOU051bGwgbnVsbF07CiAgICAgTlNEaWN0aW9uYXJ5ICphY3Rpb25zID0gW05TRGljdGlv
bmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgpAQCAtNTUyMiwxMCArNTUyMiwxMCBA
QCBzdGF0aWMgQ0dQb2ludCBjb3JlR3JhcGhpY3NTY3JlZW5Qb2ludEZvckFwcEtpdFNjcmVlblBv
aW50KE5TUG9pbnQgcG9pbnQpCiAgICAgaWYgKFtbc2VsZiBfd2ViVmlld10gX3Bvc3RzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNdKQogICAgICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOl9XZWJWaWV3RGlkU3Rh
cnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uIG9iamVjdDpbc2VsZiBfd2ViVmll
d10gdXNlckluZm86bmlsXTsKICAgICAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgW3ZpZXdMYXllciBz
ZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKDEsIC0xLCAxKV07IC8v
IHNldEdlb21ldHJ5RmxpcHBlZDogZG9lc24ndCBleGlzdCBvbiBMZW9wYXJkLgogICAgIFtzZWxm
IF91cGRhdGVMYXllckhvc3RpbmdWaWV3UG9zaXRpb25dOwotI2VsaWYgKGRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pKQorI2VsaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDcwCiAgICAgLy8gRG8gZ2VvbWV0
cnkgZmxpcHBpbmcgaGVyZSwgd2hpY2ggZmxpcHMgYWxsIHRoZSBjb21wb3NpdGluZyBsYXllcnMg
c28gdGhleSBhcmUgdG9wLWRvd24uCiAgICAgW3ZpZXdMYXllciBzZXRHZW9tZXRyeUZsaXBwZWQ6
WUVTXTsKICNlbHNlCkBAIC01NTQ0LDcgKzU1NDQsNyBAQCBzdGF0aWMgQ0dQb2ludCBjb3JlR3Jh
cGhpY3NTY3JlZW5Qb2ludEZvckFwcEtpdFNjcmVlblBvaW50KE5TUG9pbnQgcG9pbnQpCiAgICAg
fQogfQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogLy8gVGhpcyBtZXRob2QgaXMgbmVjZXNzYXJ5IG9uIExl
b3BhcmQgdG8gd29yayBhcm91bmQgPHJkYXI6Ly9wcm9ibGVtLzcwNjc4OTI+LgogLSAodm9pZClf
dXBkYXRlTGF5ZXJIb3N0aW5nVmlld1Bvc2l0aW9uCiB7CkBAIC01NTcyLDcgKzU1NzIsNyBAQCBz
dGF0aWMgQ0dQb2ludCBjb3JlR3JhcGhpY3NTY3JlZW5Qb2ludEZvckFwcEtpdFNjcmVlblBvaW50
KE5TUG9pbnQgcG9pbnQpCiAgICAgW19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IF91cGRhdGVM
YXllckdlb21ldHJ5RnJvbVZpZXddOyAgLy8gV29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVt
LzcwNzE2MzY+CiAgICAgW19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IHNldEZyYW1lOmxheWVy
Vmlld0ZyYW1lXTsKIH0KLSNlbmRpZiAvLyBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisj
ZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAKIC0gKHZv
aWQpZHJhd0xheWVyOihDQUxheWVyICopbGF5ZXIgaW5Db250ZXh0OihDR0NvbnRleHRSZWYpY3R4
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5o
CmluZGV4IGE0MTUzYWIuLjEzN2ExNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIC0gKEJPT0wpX3dlYl9pc0RyYXdpbmdJbnRvTGF5ZXI7CiAjZW5kaWYKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA9PSAxMDUwCiAtICh2b2lkKV91cGRhdGVMYXllckhvc3RpbmdWaWV3UG9z
aXRpb247CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQREZEb2N1bWVudEV4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERG
RG9jdW1lbnRFeHRyYXMubW0KaW5kZXggM2U3MDFjZi4uNTkyZWRmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZEb2N1bWVudEV4dHJhcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERkRvY3VtZW50RXh0cmFzLm1tCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW1wb3J0IDxQREZLaXQvUERGRG9jdW1lbnQuaD4KICNpbXBvcnQgPG9iamMvb2Jq
Yy1ydW50aW1lLmg+CiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiBAaW50ZXJmYWNlIFBERkRvY3VtZW50IChJ
bnRlcm5hbCkKIC0gKENHUERGRG9jdW1lbnRSZWYpZG9jdW1lbnRSZWY7CiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5YzI4MjMwLi43ZWIy
ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAg
LTM0Niw3ICszNDYsNyBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1
bmRsZSh2b2lkKQogICAgICAgICBAIjAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFBERlNjYWxlRmFjdG9yUHJlZmVyZW5jZUtleSwKICAgICAgICAgQCIwIiwgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRVc2VTaXRlU3BlY2lmaWNTcG9vZmluZ1ByZWZlcmVuY2VLZXks
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYktpdEVkaXRhYmxlTGlua0RlZmF1
bHRCZWhhdmlvcl0sIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5jZUtleSwKLSNp
Zm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA2MAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZF0sCiAjZWxzZQogICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDpXZWJUZXh0RGlyZWN0aW9uU3VibWVudU5ldmVySW5jbHVkZWRd
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaApp
bmRleCBiYTg0MTA1Li4zMjQ0MmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlJlc291cmNlSW50ZXJuYWwuaApAQCAtMjksNyArMjksNyBAQAogI2ltcG9ydCAiV2ViUmVz
b3VyY2VQcml2YXRlLmgiCiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogCi0jaWZkZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogI2RlZmluZSBNQUlMX1RIUkVBRF9XT1JLQVJPVU5EIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oCmluZGV4
IDU4NTcwMGYuLjUxODJmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgPEZv
dW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogdHlwZWRlZiBpbnQgV2Vi
U291cmNlSWQ7CiAjZWxzZQogdHlwZWRlZiBpbnRwdHJfdCBXZWJTb3VyY2VJZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjMzViODczLi5lZWExZTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC00NjMsNyArNDYzLDcgQEAgTlNTdHJpbmcgKl9X
ZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uID0gQCJfV2Vi
Vmlld0RpZFN0YXIKIAogc3RhdGljIEJPT0wgY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
Owogc3RhdGljIEJPT0wgZ3JhbW1hckNoZWNraW5nRW5hYmxlZDsKLSNpZm5kZWYgQlVJTERJTkdf
T05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
c3RhdGljIEJPT0wgYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOwogc3RhdGljIEJP
T0wgYXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQ7CiBzdGF0aWMgQk9PTCBhdXRvbWF0aWNE
YXNoU3Vic3RpdHV0aW9uRW5hYmxlZDsKQEAgLTUxMCw3ICs1MTAsNyBAQCBzdGF0aWMgQ0ZNdXRh
YmxlU2V0UmVmIGFsbFdlYlZpZXdzU2V0OwogCiBAaW1wbGVtZW50YXRpb24gV2ViVmlldyAoV2Vi
UHJpdmF0ZSkKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwODAKIAogc3RhdGljIE5TU3RyaW5nICpjcmVhdGVNYWNPU1hWZXJzaW9uU3RyaW5n
KCkKIHsKQEAgLTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmNyZWF0ZU1hY09TWFZl
cnNpb25TdHJpbmcoKQogICAgIHJldHVybiBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1h
dDpAIiVkIiwgbWFqb3JdOwogfQogCi0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2VuZGlmIC8vIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogCiBzdGF0aWMgTlNTdHJpbmcgKmNy
ZWF0ZVVzZXJWaXNpYmxlV2ViS2l0VmVyc2lvblN0cmluZygpCiB7CkBAIC02MTEsNyArNjExLDcg
QEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNl
c3NhcnkoKQogCiBzdGF0aWMgYm9vbCBydW5uaW5nTGVvcGFyZE1haWwoKQogewotI2lmZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNTAKICAgICByZXR1cm4gYXBwbGljYXRpb25Jc0FwcGxlTWFpbCgpOwogI2VuZGlmCiAgICAg
cmV0dXJuIE5POwpAQCAtNjE5LDcgKzYxOSw3IEBAIHN0YXRpYyBib29sIHJ1bm5pbmdMZW9wYXJk
TWFpbCgpCiAKIHN0YXRpYyBib29sIGNvcmVWaWRlb0hhczcyMjg4MzZGaXgoKQogewotI2lmZGVm
IEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID09IDEwNTAKICAgICBOU0J1bmRsZSogY29yZVZpZGVvRnJhbWV3b3JrQnVuZGxlID0gW05TQnVu
ZGxlIGJ1bmRsZVdpdGhQYXRoOkAiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVZpZGVv
LmZyYW1ld29yayJdOwogICAgIGRvdWJsZSB2ZXJzaW9uID0gW1tjb3JlVmlkZW9GcmFtZXdvcmtC
dW5kbGUgb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6KE5TU3RyaW5nICopa0NGQnVuZGxlVmVy
c2lvbktleV0gZG91YmxlVmFsdWVdOwogICAgIHJldHVybiAodmVyc2lvbiA+PSA0OCk7CkBAIC02
NDcsNyArNjQ3LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkRW5hYmxlTG9hZERlZmVycmluZygpCiAg
ICAgW3R5cGVzIHJlbGVhc2VdOwogfQogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBiZSByZW1v
dmVkIG9uY2Ugd2Ugbm8gbG9uZ2VyIHdhbnQgdG8ga2VlcCBTYWZhcmkgNS4wLnggd29ya2luZyB3
aXRoIG5pZ2h0bHkgYnVpbGRzLgogLSAoQk9PTClfdXNlc0RvY3VtZW50Vmlld3MKIHsKQEAgLTE1
MDgsNyArMTUwOCw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1
aXJrKCkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgc2V0dGluZ3MtPnNldEZ1bGxT
Y3JlZW5FbmFibGVkKFtwcmVmZXJlbmNlcyBmdWxsU2NyZWVuRW5hYmxlZF0pOwogI2VuZGlmCi0j
aWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNjAKICAgICAvLyBBc3luY2hyb25vdXMgc3BlbGwgY2hlY2tpbmcgQVBJIGlz
IGF2YWlsYWJsZSBmb3IgMTAuNiBvciBsYXRlci4KICAgICBzZXR0aW5ncy0+c2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkXSk7CiAjZW5kaWYKQEAgLTMwNDYsNyArMzA0Niw3IEBAIHN0YXRpYyBQYXNz
T3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMp
CiAgICAgY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJDb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWRdOwogICAgIGdyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkdyYW1tYXJDaGVja2luZ0VuYWJs
ZWRdOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBhdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVu
YWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5
OldlYkF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZF07CiAgICAgYXV0b21hdGljTGlu
a0RldGVjdGlvbkVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBib29sRm9yS2V5OldlYkF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkXTsKICAgICBhdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJs
ZWRdOwpAQCAtMzA1NCw3ICszMDU0LDcgQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykKICAgICBhdXRvbWF0aWNTcGVs
bGluZ0NvcnJlY3Rpb25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXTsK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgIGlmICghW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gb2JqZWN0Rm9yS2V5OldlYkF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWRdKQog
ICAgICAgICBhdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkID0gW05TU3BlbGxDaGVja2Vy
IGlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZF07CiAgICAgaWYgKCFbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViQXV0b21hdGljU3Bl
bGxpbmdDb3JyZWN0aW9uRW5hYmxlZF0pCkBAIC0zMjYxLDcgKzMyNjEsNyBAQCBzdGF0aWMgYm9v
bCBjbGllbnROZWVkc1dlYlZpZXdJbml0VGhyZWFkV29ya2Fyb3VuZCgpCiAgICAgaWYgKFtidW5k
bGVJZGVudGlmaWVyIF93ZWJraXRfaGFzQ2FzZUluc2Vuc2l0aXZlUHJlZml4OkAiY29tLmFwcGxl
LkF1dG9tYXRvci4iXSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSNpZmRlZiBCVUlMRElOR19P
Tl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAg
ICAgLy8gTWFpbC4KICAgICBpZiAoW2J1bmRsZUlkZW50aWZpZXIgX3dlYmtpdF9pc0Nhc2VJbnNl
bnNpdGl2ZUVxdWFsVG9TdHJpbmc6QCJjb20uYXBwbGUuTWFpbCJdKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTQ1NjQsNyArNDU2NCw3IEBAIHN0YXRpYyBXZWJGcmFtZSAqaW5jcmVtZW50RnJh
bWUoV2ViRnJhbWUgKmZyYW1lLCBXZWJGaW5kT3B0aW9ucyBvcHRpb25zID0gMCkKICAgICAgICAg
ICAgIFttZW51SXRlbSBzZXRTdGF0ZTpjaGVja01hcmsgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRl
XTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gWUVTOwotI2lmbmRlZiBCVUlMRElOR19PTl9M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAg
fSBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3Rp
dHV0aW9uOikpIHsKICAgICAgICAgQk9PTCBjaGVja01hcmsgPSBbc2VsZiBpc0F1dG9tYXRpY1F1
b3RlU3Vic3RpdHV0aW9uRW5hYmxlZF07CiAgICAgICAgIGlmIChbKE5TT2JqZWN0ICopaXRlbSBp
c0tpbmRPZkNsYXNzOltOU01lbnVJdGVtIGNsYXNzXV0pIHsKQEAgLTQ3MTMsNyArNDcxMyw3IEBA
IHN0YXRpYyBCT09MIGZpbmRTdHJpbmcoTlNWaWV3IDxXZWJEb2N1bWVudFNlYXJjaGluZz4gKnNl
YXJjaFZpZXcsIE5TU3RyaW5nICpzdHJpCiAgICAgcmV0dXJuIGtpdChfcHJpdmF0ZS0+cGFnZS0+
cmFuZ2VPZlN0cmluZyhzdHJpbmcsIGNvcmUocHJldmlvdXNSYW5nZSksIGNvcmVPcHRpb25zKG9w
dGlvbnMpKS5nZXQoKSk7CiB9CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPD0gMTA3MAogLy8gRklYTUU6IFJlbW92ZSBvbmNlIFdlYktpdCBubyBsb25n
ZXIgbmVlZHMgdG8gc3VwcG9ydCB2ZXJzaW9ucyBvZiBTYWZhcmkgdGhhdCBjYWxsIHRoaXMuCiAt
ICh2b2lkKXNldEhvdmVyRmVlZGJhY2tTdXNwZW5kZWQ6KEJPT0wpbmV3VmFsdWUKIHsKQEAgLTU0
MDIsNyArNTQwMiw3IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9t
SlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNWYWx1CiAgICAgZ3JhbW1hckNoZWNr
aW5nRW5hYmxlZCA9IGZsYWc7CiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gc2V0Qm9vbDpncmFtbWFyQ2hlY2tpbmdFbmFibGVkIGZvcktleTpXZWJHcmFtbWFyQ2hl
Y2tpbmdFbmFibGVkXTsgICAgCiAgICAgCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBbW05TU3BlbGxD
aGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gdXBkYXRlUGFuZWxzXTsKICNlbHNlCiAgICAgTlNT
cGVsbENoZWNrZXIgKnNwZWxsQ2hlY2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENo
ZWNrZXJdOwpAQCAtNTQyOSw3ICs1NDI5LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0
b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAog
LSAoQk9PTClpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZAogewotI2lmZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNTAKICAgICByZXR1cm4gTk87CiAjZWxzZQogICAgIHJldHVybiBhdXRvbWF0aWNRdW90ZVN1
YnN0aXR1dGlvbkVuYWJsZWQ7CkBAIC01NDM4LDcgKzU0MzgsNyBAQCBzdGF0aWMgTlNBcHBsZUV2
ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IGpzVmFsdQogCiAtIChCT09MKWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQKIHsKLSNp
ZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA9PSAxMDUwCiAgICAgcmV0dXJuIE5POwogI2Vsc2UKICAgICByZXR1cm4gYXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWQ7CkBAIC01NDQ3LDcgKzU0NDcsNyBAQCBzdGF0aWMgTlNBcHBs
ZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGpzVmFsdQogCiAtIChCT09MKWlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQK
IHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0dXJuIE5POwogI2Vsc2UKICAgICByZXR1cm4gYXV0
b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ7CkBAIC01NDU2LDcgKzU0NTYsNyBAQCBzdGF0
aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIGpzVmFsdQogCiAtIChCT09MKWlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50
RW5hYmxlZAogewotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICByZXR1cm4gTk87CiAjZWxzZQogICAgIHJl
dHVybiBhdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkOwpAQCAtNTQ2NSwxNCArNTQ2NSwx
NCBAQCBzdGF0aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGpzVmFsdQogCiAtIChCT09MKWlzQXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZAogewotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICByZXR1cm4gTk87CiAj
ZWxzZQogICAgIHJldHVybiBhdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkOwogI2Vu
ZGlmCiB9CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiAtICh2b2lkKXNldEF1dG9tYXRpY1F1b3RlU3Vi
c3RpdHV0aW9uRW5hYmxlZDooQk9PTClmbGFnCiB7CkBAIC01Njk4LDcgKzU2OTgsNyBAQCBzdGF0
aWMgV2ViRnJhbWVWaWV3ICpjb250YWluaW5nRnJhbWVWaWV3KE5TVmlldyAqdmlldykKIAogICAg
IE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3ddOwogICAgIE5TV2luZG93ICpob3N0V2lu
ZG93ID0gW3NlbGYgaG9zdFdpbmRvd107Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmICh3aW5kb3cpCiAgICAgICAgIHJl
dHVybiBbd2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl07CiAgICAgaWYgKGhvc3RXaW5kb3cpCkBA
IC02MDU5LDcgKzYwNTksNyBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IHJvdW5kVXBUb1Bvd2Vy
T2YyKHVpbnQ2NF90IG51bSkKICAgICBpZiAoIVtzZWxlY3RlZFN0cmluZyBsZW5ndGhdKQogICAg
ICAgICByZXR1cm47CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFtbTlNXb3Jrc3BhY2Ugc2hhcmVk
V29ya3NwYWNlXSBzaG93U2VhcmNoUmVzdWx0c0ZvclF1ZXJ5U3RyaW5nOnNlbGVjdGVkU3RyaW5n
XTsKICNlbHNlCiAgICAgKHZvaWQpSElTZWFyY2hXaW5kb3dTaG93KChDRlN0cmluZ1JlZilzZWxl
Y3RlZFN0cmluZywga05pbE9wdGlvbnMpOwpAQCAtNjU3OSw3ICs2NTc5LDcgQEAgdm9pZCBXZWJJ
bnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKHZvaWQpCiAgICAgbWVtb3J5UHJlc3N1cmVIYW5k
bGVyKCkuaW5zdGFsbCgpOwogfQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogCiBzdGF0aWMgSU1QIG9yaWdp
bmFsUmVjdXJzaXZlbHlSZW1vdmVNYWlsQXR0cmlidXRlc0ltcDsKIApAQCAtNjYwNSw3ICs2NjA1
LDcgQEAgc3RhdGljIHZvaWQgcmVjdXJzaXZlbHlSZW1vdmVNYWlsQXR0cmlidXRlcyhET01Ob2Rl
ICpzZWxmLCBTRUwgc2VsZWN0b3IsIEJPT0wgYSwKIAogc3RhdGljIHZvaWQgcGF0Y2hNYWlsUmVt
b3ZlQXR0cmlidXRlc01ldGhvZCgpCiB7Ci0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIGlmICghV0tBcHBW
ZXJzaW9uQ2hlY2tMZXNzVGhhbihAImNvbS5hcHBsZS5tYWlsIiwgLTEsIDQuMCkpCiAgICAgICAg
IHJldHVybjsKICAgICBNZXRob2QgbWV0aG9kVG9QYXRjaCA9IGNsYXNzX2dldEluc3RhbmNlTWV0
aG9kKG9iamNfZ2V0UmVxdWlyZWRDbGFzcygiRE9NTm9kZSIpLCBAc2VsZWN0b3IocmVjdXJzaXZl
bHlSZW1vdmVNYWlsQXR0cmlidXRlczpjb252ZXJ0T2JqZWN0c1RvSW1hZ2VzOmNvbnZlcnRFZGl0
YWJsZUVsZW1lbnRzOikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oCmluZGV4IGI3YjNiMWMuLjBhOTgwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmgKQEAgLTY3Nyw3ICs2NzcsNyBAQCBDb3VsZCBiZSB3b3J0aCBhZGRp
bmcgdG8gdGhlIEFQSS4KIC0gKEJPT0wpaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZDsKIC0gKEJPT0wpaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkOwogLSAoQk9PTClp
c0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQ7Ci0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIC0g
KHZvaWQpc2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOihCT09MKWZsYWc7CiAt
ICh2b2lkKXRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uOihpZClzZW5kZXI7CiAtICh2
b2lkKXNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkOihCT09MKWZsYWc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZjUwOTdkNC4uODgyYzlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEy
LTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0dHA6Ly93
ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBtYWNyb3Mg
aW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKKworICAgICAgICBUaGlzIHJl
bW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xhdGVzIHRoZSByZWxldmFu
dCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCisgICAgICAgIHVzaW5nIHRoZSBz
eXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcDoKKyAg
ICAgICAgKiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9t
YWMvUGFzdGVib2FyZFR5cGVzLm1tOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViRXZlbnRGYWN0
b3J5Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1t
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9y
Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJs
ZXMuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJp
YWJsZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1By
b3h5TWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJN
YWMubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKiBXZWJLaXQy
UHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
QnJvd3NlckZ1bmNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
bWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9tYWMvS2V5Y2hhaW5JdGVtU2hpbU1ldGhvZHMubW06CisgICAgICAgICogV2Vi
UHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vz
c01haW5NYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW06
CisKIDIwMTItMDctMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSBhbmQgLVdzaWduLWNvbXBhcmUgd2Fy
bmluZyBmbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQ
b3B1cEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8u
Y3BwCmluZGV4IDYzMjIxYTUuLjBmOWQwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RGljdGlvbmFyeVBvcHVwSW5mby5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdm9pZCBEaWN0aW9uYXJ5
UG9wdXBJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXItPmVuY29kZShmb250SW5mbyk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlRW51
bSh0eXBlKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgYm9vbCBoYWRPcHRpb25zID0gb3B0aW9uczsKICAgICBlbmNv
ZGVyLT5lbmNvZGVCb29sKGhhZE9wdGlvbnMpOwogICAgIGlmIChoYWRPcHRpb25zKQpAQCAtNTYs
NyArNTYsNyBAQCBib29sIERpY3Rpb25hcnlQb3B1cEluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIERpY3Rpb25hcnlQbwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHJlc3VsdC50eXBlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgYm9vbCBoYWRPcHRpb25zOwogICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlQm9vbChoYWRPcHRpb25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgKaW5kZXggMzgxNGVjZS4uYmNlYzA0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oCkBAIC01
Miw3ICs1Miw3IEBAIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvIHsKICAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IG9yaWdpbjsKICAgICBGb250SW5mbyBmb250SW5mbzsKICAgICBUeXBlIHR5cGU7
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBvcHRpb25zOwogI2VuZGlmCiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bhc3RlYm9hcmRUeXBlcy5tbQppbmRleCAy
NmNjNmRjLi4wOTBlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bh
c3RlYm9hcmRUeXBlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bhc3RlYm9h
cmRUeXBlcy5tbQpAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgaW5saW5lIE5TQXJyYXkgKnJldGFp
bihOU0FycmF5ICphcnJheSkKIE5TQXJyYXkqIFBhc3RlYm9hcmRUeXBlczo6Zm9yRWRpdGluZygp
CiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKnR5cGVzID0gcmV0YWluKFtOU0FycmF5IGFycmF5V2l0
aE9iamVjdHM6V2ViQXJjaGl2ZVBib2FyZFR5cGUsIE5TSFRNTFBib2FyZFR5cGUsIE5TRmlsZW5h
bWVzUGJvYXJkVHlwZSwgTlNUSUZGUGJvYXJkVHlwZSwgTlNQREZQYm9hcmRUeXBlLAotI2lmZGVm
IEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID09IDEwNTAKICAgICAgICAgTlNQSUNUUGJvYXJkVHlwZSwKICNlbmRpZgogICAgICAgICBOU1VS
TFBib2FyZFR5cGUsIE5TUlRGRFBib2FyZFR5cGUsIE5TUlRGUGJvYXJkVHlwZSwgTlNTdHJpbmdQ
Ym9hcmRUeXBlLCBOU0NvbG9yUGJvYXJkVHlwZSwga1VUVHlwZVBORywgbmlsXSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDdjMTg1MjQuLjc3
MmMwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0
b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
CkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIE5TUG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50
ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogCiBzdGF0aWMgV2ViV2hlZWxFdmVudDo6UGhh
c2UgcGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAgICAgdWludDMyX3QgcGhhc2UgPSBXZWJXaGVlbEV2ZW50OjpQaGFzZU5vbmU7IAog
ICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNlQmVnYW4pCiAgICAgICAgIHBoYXNl
IHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW47CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGlj
IFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAg
ICAgIHBoYXNlIHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQ7CiAgICAgaWYgKFtldmVudCBw
aGFzZV0gJiBOU0V2ZW50UGhhc2VDYW5jZWxsZWQpCiAgICAgICAgIHBoYXNlIHw9IFdlYldoZWVs
RXZlbnQ6OlBoYXNlQ2FuY2VsbGVkOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKFtldmVu
dCBwaGFzZV0gJiBOU0V2ZW50UGhhc2VNYXlCZWdpbikKICAgICAgICAgcGhhc2UgfD0gV2ViV2hl
ZWxFdmVudDo6UGhhc2VNYXlCZWdpbjsKICNlbmRpZgpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0YXRp
YyBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiB7CiAgICAgdWludDMyX3QgcGhhc2UgPSBXZWJXaGVlbEV2ZW50OjpQaGFzZU5vbmU7IAog
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChbZXZlbnQgbW9tZW50dW1QaGFz
ZV0gJiBOU0V2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcGhhc2UgfD0gV2ViV2hlZWxFdmVudDo6
UGhhc2VCZWdhbjsKICAgICBpZiAoW2V2ZW50IG1vbWVudHVtUGhhc2VdICYgTlNFdmVudFBoYXNl
U3RhdGlvbmFyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BERlZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UERGVmlld0NvbnRyb2xsZXIubW0KaW5kZXggOTFmY2YzNC4uNmEwMmY1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0K
QEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFBERlZpZXdDb250cm9sbGVyOjpmb3J3YXJkU2Nyb2xs
V2hlZWxFdmVudChOU0V2ZW50ICp3aGVlbEV2ZW50KQogICAgIHJldHVybiB0cnVlOwogfQogCi0j
aWZuZGVmIEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogc3RhdGljIElNUCBvbGRQREZWaWV3U2Nyb2xsVmlld19zY3Jv
bGxXaGVlbDsKIAogc3RhdGljIFdLUERGVmlldyAqZmluZEVuY2xvc2luZ1dLUERGVmlldyhOU1Zp
ZXcgKnZpZXcpCkBAIC01NTcsNyArNTU3LDcgQEAgTlNCdW5kbGUqIFBERlZpZXdDb250cm9sbGVy
OjpwZGZLaXRCdW5kbGUoKQogICAgIGlmICghW3BkZktpdEJ1bmRsZSBsb2FkXSkKICAgICAgICAg
TE9HX0VSUk9SKCJDb3VsZG4ndCBsb2FkIFBERktpdC5mcmFtZXdvcmsiKTsKIAotI2lmbmRlZiBC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICBpZiAoQ2xhc3MgcGRmVmlld1Njcm9sbFZpZXdDbGFzcyA9IFtwZGZL
aXRCdW5kbGUgY2xhc3NOYW1lZDpAIlBERlZpZXdTY3JvbGxWaWV3Il0pIHsKICAgICAgICAgaWYg
KE1ldGhvZCBzY3JvbGxXaGVlbCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHBkZlZpZXdTY3Jv
bGxWaWV3Q2xhc3MsIEBzZWxlY3RvcihzY3JvbGxXaGVlbDopKSkKICAgICAgICAgICAgIG9sZFBE
RlZpZXdTY3JvbGxWaWV3X3Njcm9sbFdoZWVsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHNj
cm9sbFdoZWVsLCByZWludGVycHJldF9jYXN0PElNUD4oUERGVmlld1Njcm9sbFZpZXdfc2Nyb2xs
V2hlZWwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0KaW5kZXggNDU3Y2U5Mi4uYjMxOTQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTQ3Miw3ICs0NzIs
NyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25z
dCBTdHJpbmcmIHRleHQsIGRvdWJsZSBzY2FsZQogCiAgICAgTlNQb2ludCB0ZXh0QmFzZWxpbmVP
cmlnaW4gPSBkaWN0aW9uYXJ5UG9wdXBJbmZvLm9yaWdpbjsKIAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICAvLyBDb252ZXJ0IHRvIHNjcmVlbiBjb29yZGluYXRlcy4KICAgICB0ZXh0
QmFzZWxpbmVPcmlnaW4gPSBbbV93a1ZpZXcgY29udmVydFBvaW50OnRleHRCYXNlbGluZU9yaWdp
biB0b1ZpZXc6bmlsXTsKICAgICB0ZXh0QmFzZWxpbmVPcmlnaW4gPSBbbV93a1ZpZXcud2luZG93
IGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtlUmVjdCh0ZXh0QmFzZWxpbmVPcmlnaW4ueCwgdGV4
dEJhc2VsaW5lT3JpZ2luLnksIDAsIDApXS5vcmlnaW47CkBAIC00ODcsNyArNDg3LDcgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5n
JiB0ZXh0LCBkb3VibGUgc2NhbGUKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlzbWlzc0RpY3Rp
b25hcnlMb29rdXBQYW5lbCgpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFdL
SGlkZVdvcmREZWZpbml0aW9uV2luZG93KCk7CiAjZW5kaWYKIH0KQEAgLTUxOSw3ICs1MTksNyBA
QCBTdHJpbmcgUGFnZUNsaWVudEltcGw6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdlYkNv
cmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbAogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWNvcmRB
dXRvY29ycmVjdGlvblJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlIHJlc3BvbnNl
VHlwZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNl
bWVudFN0cmluZykKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgTlNDb3JyZWN0
aW9uUmVzcG9uc2UgcmVzcG9uc2UgPSByZXNwb25zZVR5cGUgPT0gQXV0b2NvcnJlY3Rpb25SZXZl
cnRlZCA/IE5TQ29ycmVjdGlvblJlc3BvbnNlUmV2ZXJ0ZWQgOiBOU0NvcnJlY3Rpb25SZXNwb25z
ZUVkaXRlZDsKICAgICBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9u
c2UobV93a1ZpZXcsIHJlc3BvbnNlLCByZXBsYWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcp
OwogI2VuZGlmCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb3Jk
QXV0b2NvcnJlY3Rpb25SZXNwb25zZShBdXRvY29ycmVjdGlvblJlc3BvbnNlVHlwZSByZXMKIAog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShp
bnQzMl90IG5ld1N0eWxlKQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBOU0Fy
cmF5ICp0cmFja2luZ0FyZWFzID0gW21fd2tWaWV3IHRyYWNraW5nQXJlYXNdOwogICAgIE5TVUlu
dGVnZXIgY291bnQgPSBbdHJhY2tpbmdBcmVhcyBjb3VudF07CiAgICAgQVNTRVJUKGNvdW50ID09
IDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGU4
ODMyMTUuLjI3ZjIzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KQEAgLTEwNCw3ICsxMDQsNyBAQAogQGVuZAogCiBAaW50ZXJmYWNlIE5TV2luZG93IChX
S05TV2luZG93RGV0YWlscykKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKIC0gKE5TUmVjdClf
Z3Jvd0JveFJlY3Q7CiAtIChpZClfZ3Jvd0JveE93bmVyOwogLSAodm9pZClfc2V0U2hvd09wYXF1
ZUdyb3dCb3hGb3JPd25lcjooaWQpb3duZXI7CkBAIC05NTcsNyArOTU3LDcgQEAgc3RhdGljIHZv
aWQgc3BlYWtTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lk
KikKIAogLSAodm9pZClkaXNwbGF5SWZOZWVkZWQKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZW1vdmUgdGhpcyBjb2RlIHdoZW4gPHJkYXI6
Ly9wcm9ibGVtLzkzNjIwODU+IGlzIHJlc29sdmVkLiBJbiB0aGUgbWVhbnRpbWUsCiAgICAgLy8g
aXQgaXMgbmVjZXNzYXJ5IHRvIGRpc2FibGUgc2NyZW4gdXBkYXRlcyBzbyB3ZSBnZXQgYSBjaGFu
Y2UgdG8gcmVkcmF3IHRoZSBjb3JuZXJzIGJlZm9yZSB0aGlzIAogICAgIC8vIGRpc3BsYXkgaXMg
dmlzaWJsZS4KQEAgLTk2OSw3ICs5NjksNyBAQCBzdGF0aWMgdm9pZCBzcGVha1N0cmluZyhXS1N0
cmluZ1JlZiBzdHJpbmcsIFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqKQogCiAgICAgW3N1cGVyIGRp
c3BsYXlJZk5lZWRlZF07CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKHNo
b3VsZE1hc2tXaW5kb3cpIHsKICAgICAgICAgW3dpbmRvdyBfbWFza1JvdW5kZWRCb3R0b21Db3Ju
ZXJzOl9kYXRhLT5fd2luZG93Qm90dG9tQ29ybmVySW50ZXJzZWN0aW9uUmVjdF07CiAgICAgICAg
IE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwpAQCAtMTY2Niw3ICsxNjY2LDcgQEAgc3RhdGljIHZv
aWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxD
b21wb3NpdGlvblVuZGUKICAgICBfZGF0YS0+X3BhZ2UtPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSwg
W1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdQYXN0ZWJvYXJkXSBuYW1lXSk7CiAgICAgCiAgICAgV2Vi
Q29yZTo6RHJhZ1Nlc3Npb24gZHJhZ1Nlc3Npb24gPSBfZGF0YS0+X3BhZ2UtPmRyYWdTZXNzaW9u
KCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIE5TSW50ZWdlciBudW1iZXJPZlZh
bGlkSXRlbXNGb3JEcm9wID0gZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZDsK
ICAgICBOU0RyYWdnaW5nRm9ybWF0aW9uIGRyYWdnaW5nRm9ybWF0aW9uID0gTlNEcmFnZ2luZ0Zv
cm1hdGlvbk5vbmU7CiAgICAgaWYgKGRyYWdTZXNzaW9uLm1vdXNlSXNPdmVyRmlsZUlucHV0ICYm
IG51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3AgPiAwKQpAQCAtMTc3OCw3ICsxNzc4LDcgQEAgc3Rh
dGljIHZvaWQgY3JlYXRlU2FuZGJveEV4dGVuc2lvbnNGb3JGaWxlVXBsb2FkKE5TUGFzdGVib2Fy
ZCAqcGFzdGVib2FyZCwgU2FuZGIKIH0KIAogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAt
IChCT09MKV9vd25zV2luZG93R3Jvd0JveAogewogICAgIE5TV2luZG93KiB3aW5kb3cgPSBbc2Vs
ZiB3aW5kb3ddOwpAQCAtMTg4OCw3ICsxODg4LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3Qg
YmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wK
ICAgICBbc2VsZiByZW1vdmVXaW5kb3dPYnNlcnZlcnNdOwogICAgIFtzZWxmIGFkZFdpbmRvd09i
c2VydmVyc0ZvcldpbmRvdzp3aW5kb3ddOwogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAg
ICAgaWYgKFtjdXJyZW50V2luZG93IF9ncm93Qm94T3duZXJdID09IHNlbGYpCiAgICAgICAgIFtj
dXJyZW50V2luZG93IF9zZXRTaG93T3BhcXVlR3Jvd0JveEZvck93bmVyOm5pbF07CiAjZW5kaWYK
QEAgLTE5MjcsNyArMTkyNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9w
ZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgICAgICAg
ICBfZGF0YS0+X2VuZEdlc3R1cmVNb25pdG9yID0gbmlsOwogICAgICAgICB9CiAjZW5kaWYKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIFdLSGlkZVdvcmREZWZpbml0aW9uV2lu
ZG93KCk7CiAjZW5kaWYKICAgICB9CkBAIC0yMjA5LDcgKzIyMDksNyBAQCBzdGF0aWMgdm9pZCBk
cmF3UGFnZUJhY2tncm91bmQoQ0dDb250ZXh0UmVmIGNvbnRleHQsIFdlYlBhZ2VQcm94eSogcGFn
ZSwgY29uc3QgSQogLSAoZmxvYXQpX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yCiB7CiAgICAg
TlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgIGlmICh3aW5kb3cpCiAgICAgICAgIHJldHVybiBbd2luZG93IGJhY2tpbmdTY2Fs
ZUZhY3Rvcl07CiAgICAgcmV0dXJuIFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gYmFja2luZ1NjYWxl
RmFjdG9yXTsKQEAgLTIyMzQsNyArMjIzNCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdQYWdlQmFja2dy
b3VuZChDR0NvbnRleHRSZWYgY29udGV4dCwgV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBJCiAg
ICAgcmV0dXJuIE5POwogfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA4MAogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAogewogICAgIE5TUG9pbnQgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcyA9IFtzZWxm
IGNvbnZlcnRQb2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsKQEAg
LTI4NjUsNyArMjg2NSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQpX2RpZENoYW5nZVNjcm9sbGJhcnNG
b3JNYWluRnJhbWUKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAgICBbc2VsZiBfdXBk
YXRlR3Jvd0JveEZvcldpbmRvd0ZyYW1lQ2hhbmdlXTsKICNlbmRpZgogfQpAQCAtMjkwNiw3ICsy
OTA2LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChO
U1N0cmluZyAqcGF0aCkKIAogLSAodm9pZClfY2FjaGVXaW5kb3dCb3R0b21Db3JuZXJSZWN0CiB7
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVt
b3ZlIHRoaXMgY29kZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS85MzYyMDg1PiBpcyByZXNvbHZlZC4g
CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CiAgICAgaWYgKCF3aW5kb3cp
CkBAIC0yOTY3LDcgKzI5NjcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmls
ZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAgICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9s
bGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNl
IGFsbCB0aGUgdGltZS4KICAgICBOU1RyYWNraW5nQXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJh
Y2tpbmdNb3VzZU1vdmVkIHwgTlNUcmFja2luZ01vdXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJh
Y2tpbmdJblZpc2libGVSZWN0OwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAo
V0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAg
ICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUFsd2F5czsKICAgICBlbHNlCkBAIC0z
MDA5LDcgKzMwMDksNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVG
b3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiBzZWxmOwogfQogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogLSAoQk9PTCl3
YW50c1VwZGF0ZUxheWVyCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9zaG91bGRVc2VUaWxlZERyYXdp
bmdBcmVhXTsKQEAgLTMwOTUsNyArMzA5NSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhV
bmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKICsgKHZvaWQpaGlkZVdvcmRE
ZWZpbml0aW9uV2luZG93CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFdLSGlk
ZVdvcmREZWZpbml0aW9uV2luZG93KCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0
cmFjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNM
aW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oCmluZGV4IDMxMWU1OTAuLjAwYjczYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtl
ckVudmlyb25tZW50RXh0cmFjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaApAQCAtMjYsNyAr
MjYsNyBAQAogI2lmbmRlZiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3JfaAogI2Rl
ZmluZSBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3JfaAogCi0jaWZuZGVmIEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogCiAjaW5jbHVkZSA8bWFjaC9tYWNoaW5lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CkBAIC02MSw2ICs2MSw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi0jZW5kaWYgLy8gQlVJTERJTkdfT05fU05PV19MRU9QQVJECisjZW5kaWYgLy8gX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAKICNlbmRpZiAvLyBEeW5hbWlj
TGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJF
bnZpcm9ubWVudEV4dHJhY3Rvci5tbQppbmRleCBiZmMyNzBjLi42ZjM1MjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZp
cm9ubWVudEV4dHJhY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbQpAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkR5bmFtaWNMaW5rZXJFbnZpcm9u
bWVudEV4dHJhY3Rvci5oIgogCi0jaWZuZGVmIEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiAjaW5jbHVkZSAiRW52
aXJvbm1lbnRWYXJpYWJsZXMuaCIKICNpbmNsdWRlIDxtYWNoLW8vbG9hZGVyLmg+CkBAIC0yMDEs
NCArMjAxLDQgQEAgdm9pZCBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3I6OmdldEV4
dHJhY3RlZEVudmlyb25tZW50VmFyaWFibGVzKEVudmlyb24KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKLSNlbmRpZiAvLyBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNlbmRpZiAvLyBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxl
cy5jcHAKaW5kZXggNzI5NzlmOC4uYmUwZjkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5j
cHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEVudmlyb25tZW50VmFyaWFibGVzOjpjb3B5RW52
aXJvbm1lbnRWYXJpYWJsZXMoKQogICAgIG1fZW52aXJvbm1lbnRQb2ludGVyID0gbV9lbnZpcm9u
bWVudFZhcmlhYmxlcy5kYXRhKCk7CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAK
IGNvbnN0IGNoYXIqIEVudmlyb25tZW50VmFyaWFibGVzOjpwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2
aWNlTmFtZUtleSgpCiB7CkBAIC0xNDgsNiArMTQ4LDYgQEAgY29uc3QgY2hhciogRW52aXJvbm1l
bnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1R5cGVLZXkoKQogICAgIHJldHVybiAiV0VC
S0lUX1BSRUVYSVNUSU5HX1BST0NFU1NfVFlQRSI7CiB9CiAKLSNlbmRpZiAvLyAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxl
cy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZh
cmlhYmxlcy5oCmluZGV4IDMzODI5MzkuLmZmNGFiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVz
LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgY2hhcioqIGVudmlyb25tZW50UG9p
bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZW52aXJvbm1lbnRQb2ludGVyOyB9CiAKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHByZWV4aXN0aW5nUHJv
Y2Vzc1NlcnZpY2VOYW1lS2V5KCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHByZWV4aXN0aW5n
UHJvY2Vzc1R5cGVLZXkoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBkYzgz
OWM4Li5mYWI5YzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtODAsNyArODAsNyBAQCB2
b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgcGlkX3QgcHJvY2Vzc0lk
ZW50aWZpZXIgPSAwOwogCiAgICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJp
YWJsZXM7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZSA9IGVudmlyb25tZW50VmFyaWFibGVzLmdl
dChFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXko
KSk7CiAgICAgUHJvY2Vzc1R5cGUgcHJlZXhpc3RpbmdQcm9jZXNzVHlwZTsKICAgICBpZiAocHJl
ZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWUpCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICAvLyBTdGFydCBzdXNwZW5kZWQg
c28gd2UgY2FuIHNldCB1cCB0aGUgdGVybWluYXRpb24gbm90aWZpY2F0aW9uIGhhbmRsZXIuCiAg
ICAgICAgIGZsYWdzIHw9IFBPU0lYX1NQQVdOX1NUQVJUX1NVU1BFTkRFRDsKIAotI2lmbmRlZiBC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBhbGxvd0V4ZWN1dGFibGVIZWFw
RmxhZyA9IDB4MjAwMDsKICAgICAgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5leGVjdXRhYmxlSGVh
cCkKICAgICAgICAgICAgIGZsYWdzIHw9IGFsbG93RXhlY3V0YWJsZUhlYXBGbGFnOwpAQCAtMTY4
LDcgKzE2OCw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAg
ICAgICBwb3NpeF9zcGF3bmF0dHJfc2V0ZmxhZ3MoJmF0dHIsIGZsYWdzKTsKIAotI2lmbmRlZiBC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICAgICAgRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yIGVu
dmlyb25tZW50RXh0cmFjdG9yKFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gZXhlY3V0YWJsZVBhdGhd
LCBhcmNoaXRlY3R1cmUpOwogICAgICAgICBlbnZpcm9ubWVudEV4dHJhY3Rvci5nZXRFeHRyYWN0
ZWRFbnZpcm9ubWVudFZhcmlhYmxlcyhlbnZpcm9ubWVudFZhcmlhYmxlcyk7CiAjZW5kaWYKQEAg
LTIxMSw3ICsyMTEsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAg
ICAgICAgICAgICBsaXN0ZW5pbmdQb3J0ID0gTUFDSF9QT1JUX05VTEw7CiAgICAgICAgICAgICBw
cm9jZXNzSWRlbnRpZmllciA9IDA7CiAgICAgICAgIH0KLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IDI5MDQ1
MWEuLjM0ODZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtMzUsNyArMzUsNyBA
QAogI2ltcG9ydCA8c3Bhd24uaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FSZW1vdGVMYXll
clNlcnZlci5oPgogI2VuZGlmCiAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3Jl
YXRpb25QYQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShIT1NU
RURfQ09SRV9BTklNQVRJT04pCiAgICAgcGFyYW1ldGVycy5wYXJlbnRQcm9jZXNzTmFtZSA9IFtb
TlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdOwotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90
ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZlcl0gc2VydmVyUG9ydF07CiAjZWxzZQogICAgIG1hY2hf
cG9ydF90IHJlbmRlclNlcnZlclBvcnQgPSBXS0luaXRpYWxpemVSZW5kZXJTZXJ2ZXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggODU3MDllZi4uMTdj
YzJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE5
ODEsNyArMTk4MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwCiAgICAgLy8gRklYTUUgKGJ1
ZyA1OTExMSk6IGRpZENvbW1pdExvYWRGb3JGcmFtZSBjb21lcyB0b28gbGF0ZSB3aGVuIHJlc3Rv
cmluZyBhIHBhZ2UgZnJvbSBiL2YgY2FjaGUsIG1ha2luZyB1cyBkaXNhYmxlIHNlY3VyZSBldmVu
dCBtb2RlIGluIHBhc3N3b3JkIGZpZWxkcy4KICAgICAvLyBGSVhNRSAoYnVnIDU5MTIxKTogQSBs
b2FkIGdvaW5nIG9uIGluIG9uZSBmcmFtZSBzaG91bGRuJ3QgYWZmZWN0IHR5cGluZyBpbiBzaWJs
aW5nIGZyYW1lcy4KICAgICBtX3BhZ2VDbGllbnQtPnJlc2V0VGV4dElucHV0U3RhdGUoKTsKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIG1v
dmVkIGluc2lkZSByZXNldFRleHRJbnB1dFN0YXRlKCk/CiAgICAgZGlzbWlzc0NvcnJlY3Rpb25Q
YW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiAgICAgbV9w
YWdlQ2xpZW50LT5kaXNtaXNzRGljdGlvbmFyeUxvb2t1cFBhbmVsKCk7CkBAIC0yNTUxLDcgKzI1
NTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cikKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlk
U2Nyb2xsKCkKIHsKICAgICBtX3VpQ2xpZW50LnBhZ2VEaWRTY3JvbGwodGhpcyk7Ci0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRl
eHRJZ25vcmVkKTsKICNlbmRpZgogfQpAQCAtMzUzMCw3ICszNTMwLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnByb2Nlc3NEaWRDcmFzaCgpCiAgICAgbV90b3VjaEV2ZW50UXVldWUuY2xlYXIoKTsK
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKICAgICBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21p
c3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKICAgICBtX3BhZ2VDbGllbnQtPmRpc21pc3NE
aWN0aW9uYXJ5TG9va3VwUGFuZWwoKTsKICNlbmRpZgpAQCAtMzkwNSw3ICszOTA1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZyhib29sJiBpc1Nob3dp
bmcpCiAgICAgaXNTaG93aW5nID0gVGV4dENoZWNrZXI6OnN1YnN0aXR1dGlvbnNQYW5lbElzU2hv
d2luZygpOwogfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCBwYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVj
dCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5z
aG93Q29ycmVjdGlvblBhbmVsKChBbHRlcm5hdGl2ZVRleHRUeXBlKXBhbmVsVHlwZSwgYm91bmRp
bmdCb3hPZlJlcGxhY2VkU3RyaW5nLCByZXBsYWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcs
IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKTsKQEAgLTM5MjUsMTEgKzM5MjUsMTEgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoaW50MzJfdCBy
ZXNwb25zZVR5cGUsIGNvbnN0IFN0cmkKIHsKICAgICBtX3BhZ2VDbGllbnQtPnJlY29yZEF1dG9j
b3JyZWN0aW9uUmVzcG9uc2UoKEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlKXJlc3BvbnNlVHlw
ZSwgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKTsKIH0KLSNlbmRpZiAvLyAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVBbHRl
cm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkKIHsKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKCFpc0Nsb3NlZCgpKQogICAgICAgICBwcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KHJl
c3VsdCksIG1fcGFnZUlELCAwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDU3YWI4NmMuLjZjN2U2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTk0OSwxMiArOTQ5LDEyIEBAIHByaXZhdGU6CiAKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgdm9pZCBzdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoYm9vbCYp
OwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICB2b2lkIHNob3dDb3JyZWN0aW9uUGFu
ZWwoaW50MzJfdCBwYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdC
b3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MpOwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChp
bnQzMl90IHJlYXNvbik7CiAgICAgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihpbnQz
Ml90IHJlYXNvbiwgU3RyaW5nJiByZXN1bHQpOwogICAgIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZShpbnQzMl90IHJlc3BvbnNlVHlwZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZyk7Ci0jZW5kaWYgLy8gIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMp
CiAgICAgdm9pZCBzaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGJvdW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRl
eHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggMDM0MTI3Ni4uNzgzOGQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yODcsNyArMjg3LDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgU3Vic3RpdHV0
aW9uc1BhbmVsSXNTaG93aW5nKCkgLT4gKGJvb2wgaXNTaG93aW5nKQogI2VuZGlmCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICAjIEF1dG9jb3JyZWN0aW9uIG1lc3NhZ2VzCiAgICAgU2hvd0NvcnJlY3Rpb25QYW5lbChpbnQz
Ml90IHBhbmVsVHlwZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0
cmluZywgU3RyaW5nIHJlcGxhY2VkU3RyaW5nLCBTdHJpbmcgcmVwbGFjZW1lbnRTdHJpbmcsIFZl
Y3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKQogICAgIERpc21pc3ND
b3JyZWN0aW9uUGFuZWwoaW50MzJfdCByZWFzb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQppbmRleCAyMGE2M2VhLi42ZGE4YTQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KQEAgLTMwLDcg
KzMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KIAotI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIEBpbnRlcmZhY2UgTlNTcGVs
bENoZWNrZXIgKFdlYk5TU3BlbGxDaGVja2VyRGV0YWlscykKIC0gKE5TU3RyaW5nICopbGFuZ3Vh
Z2VGb3JXb3JkUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UgaW5TdHJpbmc6KE5TU3RyaW5nICopc3RyaW5n
IG9ydGhvZ3JhcGh5OihOU09ydGhvZ3JhcGh5ICopb3J0aG9ncmFwaHk7CiBAZW5kCkBAIC02NSw3
ICs2NSw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTdGF0ZSgpCiAgICAgdGV4dENoZWNrZXJT
dGF0ZS5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNMaW5rRGV0ZWN0aW9u
RW5hYmxlZF07CiAgICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9y
S2V5OldlYkF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWRdOwogCi0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgIGlmICghW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gb2JqZWN0Rm9yS2V5OldlYkF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWRd
KQogICAgICAgICB0ZXh0Q2hlY2tlclN0YXRlLmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9u
RW5hYmxlZCA9IFtOU1NwZWxsQ2hlY2tlciBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVu
YWJsZWRdOwogI2VuZGlmCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6dXBk
YXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGludDY0X3QsIGNvbnN0IFN0cmluZyYgYmFk
R3IKIAogdm9pZCBUZXh0Q2hlY2tlcjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCBzcGVsbERv
Y3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAg
IE5TU3RyaW5nKiBsYW5ndWFnZSA9IG5pbDsKICAgICBOU09ydGhvZ3JhcGh5KiBvcnRob2dyYXBo
eSA9IG5pbDsKICAgICBOU1NwZWxsQ2hlY2tlciAqY2hlY2tlciA9IFtOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IGU5NTc5YWIu
LjY5MzJiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTYyLDcgKzYyLDcgQEAgc3Rh
dGljIGNvbnN0IE5TVGltZUludGVydmFsIERlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgPSAx
OwogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNU
aW1lSW50ZXJ2YWwpZHVyYXRpb247CiBAZW5kCiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogQGludGVyZmFjZSBOU1dpbmRvdyhjb252
ZXJ0UmVjdFRvU2NyZWVuRm9yTGVvcGFyZEFuZFNub3dMZW9wYXJkKQogLSAoTlNSZWN0KWNvbnZl
cnRSZWN0VG9TY3JlZW46KE5TUmVjdClhUmVjdDsKIEBlbmQKQEAgLTI5NSwxNCArMjk1LDE0IEBA
IHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YShD
R0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAgICAgICBXS1dpbmRvd1NldENsaXBSZWN0KFtzZWxm
IHdpbmRvd10sIHdpbmRvd0JvdW5kcyk7CiAKICAgICAgICAgTlNXaW5kb3cgKndlYldpbmRvdyA9
IFtfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgpIHdpbmRvd107Ci0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICAvLyBJbiBM
aW9uLCBOU1dpbmRvdyB3aWxsIGFuaW1hdGUgaW50byBhbmQgb3V0IG9mIG9yZGVyT3V0IG9wZXJh
dGlvbnMuIFN1cHByZXNzIHRoYXQKICAgICAgICAgLy8gYmVoYXZpb3IgaGVyZSwgbWFraW5nIHN1
cmUgdG8gcmVzZXQgdGhlIGFuaW1hdGlvbiBiZWhhdmlvciBhZnRlcndhcmQuCiAgICAgICAgIE5T
V2luZG93QW5pbWF0aW9uQmVoYXZpb3IgYW5pbWF0aW9uQmVoYXZpb3IgPSBbd2ViV2luZG93IGFu
aW1hdGlvbkJlaGF2aW9yXTsKICAgICAgICAgW3dlYldpbmRvdyBzZXRBbmltYXRpb25CZWhhdmlv
cjpOU1dpbmRvd0FuaW1hdGlvbkJlaGF2aW9yTm9uZV07CiAjZW5kaWYKICAgICAgICAgW3dlYldp
bmRvdyBvcmRlck91dDpzZWxmXTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIFt3ZWJXaW5kb3cgc2V0QW5pbWF0aW9u
QmVoYXZpb3I6YW5pbWF0aW9uQmVoYXZpb3JdOwogI2VuZGlmCiAKQEAgLTM1Miw3ICszNTIsNyBA
QCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERhdGEo
Q0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAgICBbc2VsZiBfdXBkYXRlTWVudUFuZERvY2tGb3JG
dWxsU2NyZWVuXTsKICAgICAKICAgICBOU1dpbmRvdyogd2ViV2luZG93ID0gW193ZWJWaWV3UGxh
Y2Vob2xkZXIuZ2V0KCkgd2luZG93XTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gSW4gTGlvbiwgTlNXaW5kb3cgd2ls
bCBhbmltYXRlIGludG8gYW5kIG91dCBvZiBvcmRlck91dCBvcGVyYXRpb25zLiBTdXBwcmVzcyB0
aGF0CiAgICAgLy8gYmVoYXZpb3IgaGVyZSwgbWFraW5nIHN1cmUgdG8gcmVzZXQgdGhlIGFuaW1h
dGlvbiBiZWhhdmlvciBhZnRlcndhcmQuCiAgICAgTlNXaW5kb3dBbmltYXRpb25CZWhhdmlvciBh
bmltYXRpb25CZWhhdmlvciA9IFt3ZWJXaW5kb3cgYW5pbWF0aW9uQmVoYXZpb3JdOwpAQCAtMzY4
LDcgKzM2OCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRo
Q29waWVkRGF0YShDR0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAgIH0gZWxzZQogICAgICAgICBb
d2ViV2luZG93IG9yZGVyV2luZG93Ok5TV2luZG93QmVsb3cgcmVsYXRpdmVUbzpbW3NlbGYgd2lu
ZG93XSB3aW5kb3dOdW1iZXJdXTsKICAgICAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgW3dlYldpbmRvdyBzZXRBbmltYXRp
b25CZWhhdmlvcjphbmltYXRpb25CZWhhdmlvcl07CiAjZW5kaWYKIApAQCAtNDYwLDcgKzQ2MCw3
IEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRl
clJlcGFpbnQoV0tFcnJvclJlZiwgdm9pZCoKIC0gKHZvaWQpX3VwZGF0ZU1lbnVBbmREb2NrRm9y
RnVsbFNjcmVlbgogewogICAgIC8vIE5TQXBwbGljYXRpb25QcmVzZW50YXRpb25PcHRpb25zIGlz
IGF2YWlsYWJsZSBvbiA+IDEwLjYgb25seToKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIE5TQXBwbGlj
YXRpb25QcmVzZW50YXRpb25PcHRpb25zIG9wdGlvbnMgPSBOU0FwcGxpY2F0aW9uUHJlc2VudGF0
aW9uRGVmYXVsdDsKICAgICBOU1NjcmVlbiogZnVsbFNjcmVlblNjcmVlbiA9IFtbc2VsZiB3aW5k
b3ddIHNjcmVlbl07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNYWMubW0KaW5kZXggNDM4MTgzYS4uZmNkMDA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQpAQCAtMzMsNyArMzMsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbXBvcnQgPHN5cy9wYXJhbS5oPgog
Ci0jaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBIQVZFKEhPU1RFRF9DT1JFX0FOSU1BVElPTikgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NB
UmVtb3RlTGF5ZXJTZXJ2ZXIuaD4KICNlbmRpZgogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgV2Vi
Q29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgIG1hY2hfcG9ydF90IHJlbmRlclNlcnZlclBvcnQgPSBbW0NBUmVtb3RlTGF5ZXJT
ZXJ2ZXIgc2hhcmVkU2VydmVyXSBzZXJ2ZXJQb3J0XTsKICNlbHNlCiAgICAgbWFjaF9wb3J0X3Qg
cmVuZGVyU2VydmVyUG9ydCA9IFdLSW5pdGlhbGl6ZVJlbmRlclNlcnZlcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCA5NjcxMmJm
Li5jNWZlMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBh
Z2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQ
cm94eU1hYy5tbQpAQCAtNjMsNyArNjMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICNlcnJvciBV
bmtub3duIGFyY2hpdGVjdHVyZQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAKIHN0YXRpYyBTdHJpbmcgbWFjT1NYVmVy
c2lvblN0cmluZygpCiB7CkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyBTdHJpbmcgbWFjT1NYVmVy
c2lvblN0cmluZygpCiAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlZCIsIG1ham9yKTsKIH0K
IAotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTElPTikKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwODAKIAogc3RhdGljIFN0cmluZyB1c2VyVmlzaWJsZVdlYktpdFZlcnNpb25T
dHJpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCmluZGV4IGViYzBhNDkuLjRkZWI2MjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyUHJlZml4LmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2lmIFBMQVRGT1JNKE1B
QykKIAotI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNkZWZpbmUgRU5BQkxFX1dFQl9QUk9DRVNTX1NB
TkRCT1ggMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmlu
ZGV4IDc1OTc2NWQuLmQ0MGRiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNz
LmNwcApAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAjaW5jbHVkZSA8dXRpbGl0eT4KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAjaW5jbHVkZSAiTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgiCiAjZW5kaWYKIApAQCAt
NTA3LDcgKzUwNyw3IEBAIHN0YXRpYyBOUEVycm9yIE5QTl9HZXRWYWx1ZShOUFAgbnBwLCBOUE5W
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpCiAgICAgICAgICAgICAqKE5QQm9vbCopdmFs
dWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkgJiYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwICYmIEVOQUJMRShQTFVHSU5f
UFJPQ0VTUykKICAgICAgICAgY2FzZSBXS05WU2FuZGJveEZ1bmN0aW9uczoKICAgICAgICAgewog
ICAgICAgICAgICAgKihXS05TYW5kYm94RnVuY3Rpb25zICoqKXZhbHVlID0gbmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVu
Y3Rpb25zLm1tCmluZGV4IDc3NWUzY2EuLmFmY2M2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rp
b25zLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9t
YWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgJiYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCi0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW1wb3J0ICJOZXRzY2FwZVBsdWdpbk1v
ZHVsZS5oIgpAQCAtMTAzLDcgKzEwMyw3IEBAIE5QRXJyb3IgV0tOX0VudGVyU2FuZGJveChjb25z
dCBjaGFyKiByZWFkT25seVBhdGhzW10sIGNvbnN0IGNoYXIqIHJlYWRXcml0ZVBhdGhzCiAgICAg
aWYgKHByb2ZpbGUuaXNOdWxsKCkpCiAgICAgICAgIGV4aXQoRVhfTk9QRVJNKTsKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDgwCiAgICAgLy8gVXNlIHByaXZhdGUgdGVtcG9yYXJ5IGFuZCBjYWNoZSBkaXJl
Y3Rvcmllcy4KICAgICBTdHJpbmcgc3lzdGVtRGlyZWN0b3J5U3VmZml4ID0gImNvbS5hcHBsZS5X
ZWJLaXQuUGx1Z2luUHJvY2VzcysiICsgUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkubmV0c2NhcGVQ
bHVnaW5Nb2R1bGUoKS0+bW9kdWxlKCktPmJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBzZXRlbnYo
IkRJUkhFTFBFUl9VU0VSX0RJUl9TVUZGSVgiLCBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3lz
dGVtRGlyZWN0b3J5U3VmZml4KS5kYXRhKCksIDApOwpAQCAtMTkwLDYgKzE5MCw2IEBAIE5QRXJy
b3IgV0tOX0ZpbGVTdG9wQWNjZXNzaW5nKGNvbnN0IGNoYXIqIHBhdGgpCiAgICAgcmV0dXJuIE5Q
RVJSX05PX0VSUk9SOwogfQogCi0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiAjZW5kaWYgLy8gRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpICYmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcAppbmRleCAwM2Q1OTlkLi4wOTJlYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC0zNzUsNyArMzc1LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRXaWxsQmVE
ZWxldGVkSW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVudCkKIGJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBwcmV2ZW50cyBlcmFzaW5nIHNw
ZWxsaW5nIG1hcmtlcnMgb24gT1MgWCBMaW9uIG9yIGxhdGVyIHRvIG1hdGNoIEFwcEtpdCBvbiB0
aGVzZSBNYWMgT1MgWCB2ZXJzaW9ucy4KLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgIHJldHVybiB0eXBlICE9IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKICNlbHNl
CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBkNGVkMzExLi5mYmFk
ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQg
bGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZv
ck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgsIFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxv
Y2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5ndGgpIE9WRVJSSURFOwotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIHZpcnR1YWwgdm9p
ZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFdlYkNvcmU6
OlRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpIE9WRVJSSURFOwogI2VuZGlmCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggOTlmZDFjZC4uZWIxMDQ5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50
ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMzcsNyArMzcsNyBAQCB2b2lkIEluaXRXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgCiAgICAgZGlzcGF0Y2hfb25jZSgmaW5pdE9u
Y2UsIF57CiAgICAgICAgIElOSVQoQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbik7
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBJTklUKENBTGF5ZXJFbnVtZXJh
dGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2spOwogI2VuZGlmCiAgICAgICAgIElOSVQoQ29weUNG
TG9jYWxpemF0aW9uUHJlZmVycmVkTmFtZSk7CkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBJbml0
V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogCiAgICAgICAgIElOSVQoU2V0TWV0YWRhdGFV
UkwpOwogICAgICAgICAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIElOSVQo
SU9TdXJmYWNlQ29udGV4dENyZWF0ZSk7CiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29udGV4dENy
ZWF0ZUltYWdlKTsKICAgICAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclBy
b3ZpZGVyQW5kT3B0aW9ucyk7CkBAIC0xNTYsMjMgKzE1NiwyMyBAQCB2b2lkIEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoQ29weUNGVVJMUmVzcG9uc2VTdWdn
ZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAgIElOSVQoU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKTsK
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgSU5JVChDcmVhdGVWTVByZXNz
dXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSk7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAgICAgSU5JVChHZXRNYWNP
U1hWZXJzaW9uU3RyaW5nKTsKICAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJl
Zm9yZUxpb24pOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIElOSVQoQ0dQYXRoQWRkUm91bmRlZFJl
Y3QpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIElOSVQo
Q0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZyk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQog
ICAgICAgICBJTklUKEZpbHRlcklzTWFuYWdlZFNlc3Npb24pOwogICAgICAgICBJTklUKEZpbHRl
ckNyZWF0ZUluc3RhbmNlKTsKICAgICAgICAgSU5JVChGaWx0ZXJSZWxlYXNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzN2QxZTA3Li43
ZjliZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0zMDkxLDcgKzMwOTEsNyBAQCBib29sIFdlYlBhZ2U6OmNhbkhhbmRsZVJlcXVlc3Qo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIHJldHVybiBwbGF0
Zm9ybUNhbkhhbmRsZVJlcXVlc3QocmVxdWVzdCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCBXZWJQYWdlOjpo
YW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkKIHsKICAg
ICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IGI5ZGFjOTEuLmQyMzRhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtNTIwLDcgKzUyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdW5t
YXJrQWxsTWlzc3BlbGxpbmdzKCk7CiAgICAgdm9pZCB1bm1hcmtBbGxCYWRHcmFtbWFyKCk7Ci0j
aWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICB2b2lkIGhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzhmMzZjMi4uNzVmNzI0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTI3Nyw3ICsyNzcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBGaW5kWm9vbWFi
bGVBcmVhRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OkludFNpemUg
YXJlYSkKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBIYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChT
dHJpbmcgcmVzdWx0KQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCAyMmVlZGU4Li40M2QzODFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxv
b2t1cEF0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKIAogICAgIE5TRGlj
dGlvbmFyeSAqb3B0aW9ucyA9IG5pbDsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICAvLyBBcyBjb250ZXh0LCB3ZSBhcmUgZ29pbmcgdG8gdXNlIHRoZSBzdXJyb3VuZGluZyBwYXJh
Z3JhcGggb2YgdGV4dC4KICAgICBWaXNpYmxlUG9zaXRpb24gcGFyYWdyYXBoU3RhcnQgPSBzdGFy
dE9mUGFyYWdyYXBoKHBvc2l0aW9uKTsKICAgICBWaXNpYmxlUG9zaXRpb24gcGFyYWdyYXBoRW5k
ID0gZW5kT2ZQYXJhZ3JhcGgocG9zaXRpb24pOwpAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgV2Vi
UGFnZTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3JTZWxlY3Rpb24oRGljdGlvbmFyeVBvcHVw
SW5mbzo6VHlwZSB0eXBlCiAKICAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMgPSBuaWw7CiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvblN0
YXJ0ID0gc2VsZWN0aW9uLnZpc2libGVTdGFydCgpOwogICAgIFZpc2libGVQb3NpdGlvbiBzZWxl
Y3Rpb25FbmQgPSBzZWxlY3Rpb24udmlzaWJsZUVuZCgpOwogCkBAIC01NjQsNyArNTY0LDcgQEAg
dm9pZCBXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdlKERpY3Rpb25hcnlQ
b3B1cEluZm86OlR5cGUgdHlwZSwgRnIKICAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLnR5cGUgPSB0
eXBlOwogICAgIGRpY3Rpb25hcnlQb3B1cEluZm8ub3JpZ2luID0gRmxvYXRQb2ludChyYW5nZVJl
Y3QueCgpLCByYW5nZVJlY3QueSgpICsgKHN0eWxlLT5mb250TWV0cmljcygpLmFzY2VudCgpICog
cGFnZVNjYWxlRmFjdG9yKCkpKTsKICAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLmZvbnRJbmZvLmZv
bnRBdHRyaWJ1dGVEaWN0aW9uYXJ5ID0gZm9udERlc2NyaXB0b3JBdHRyaWJ1dGVzOwotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLm9wdGlvbnMgPSAo
Q0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnM7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KaW5kZXggYjM4YzIzYy4u
YzUwMWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBs
ZS5XZWJQcm9jZXNzLnNiLmluCkBAIC05Myw3ICs5Myw3IEBACiAoYWxsb3cgZmlsZSoKICAgICAo
c3VicGF0aCAiL3ByaXZhdGUvdmFyL2RiL21kcy9zeXN0ZW0iKSkKIAotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwCiAoaWYgKHBvc2l0aXZlPyAoc3RyaW5nLWxlbmd0aCAocGFyYW0gIkRBUldJTl9VU0VSX0NB
Q0hFX0RJUiIpKSkKICAgICAoYWxsb3cgZmlsZSogKHN1YnBhdGggKHBhcmFtICJEQVJXSU5fVVNF
Ul9DQUNIRV9ESVIiKSkpKQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2RzLm1tIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvS2V5Y2hhaW5JdGVtU2hpbU1ldGhvZHMubW0KaW5kZXggM2YyMjlhMS4uNTc1
OWFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvS2V5Y2hhaW5J
dGVtU2hpbU1ldGhvZHMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvS2V5
Y2hhaW5JdGVtU2hpbU1ldGhvZHMubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiS2V5Y2hhaW5JdGVtU2hpbU1ldGhvZHMuaCIKIAotI2lmIFVTRShTRUNV
UklUWV9GUkFNRVdPUkspICYmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IFVTRShTRUNVUklUWV9GUkFNRVdPUkspICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA2MAogCiAjaW1wb3J0ICJCbG9ja2luZ1Jlc3BvbnNlTWFwLmgiCiAjaW1wb3J0ICJT
ZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5oIgpAQCAtMjI5LDQgKzIyOSw0IEBAIHZvaWQgaW5p
dGlhbGl6ZUtleWNoYWluSXRlbVNoaW0oKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2Vu
ZGlmIC8vIFVTRShTRUNVUklUWV9GUkFNRVdPUkspICYmIGRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2VuZGlmIC8vIFVTRShTRUNVUklUWV9GUkFNRVdPUkspICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tCmluZGV4IGNmZTMzYWQuLjUwY2Ji
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGlt
TWV0aG9kcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hp
bU1ldGhvZHMubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiU2VjSXRlbVNoaW1NZXRob2RzLmgiCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAK
ICNpbXBvcnQgIkJsb2NraW5nUmVzcG9uc2VNYXAuaCIKICNpbXBvcnQgIlNlY0l0ZW1SZXF1ZXN0
RGF0YS5oIgpAQCAtMTE5LDQgKzExOSw0IEBAIHZvaWQgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKCkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyAhQlVJTERJTkdfT05fU05PV19M
RU9QQVJECisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQppbmRl
eCA2OWY0ZmIxLi4wYThjMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L21hYy9XZWJQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NNYWMubW0KQEAgLTQ1LDcgKzQ1LDcgQEAKICNpbXBvcnQgPG9iamMvcnVudGlt
ZS5oPgogI2ltcG9ydCA8c3RkaW8uaD4KIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogI2lt
cG9ydCAiS2V5Y2hhaW5JdGVtU2hpbU1ldGhvZHMuaCIKICNlbHNlCiAjaW1wb3J0ICJTZWNJdGVt
U2hpbU1ldGhvZHMuaCIKQEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
U2FuZGJveChjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAvLyBVc2Ug
cHJpdmF0ZSB0ZW1wb3JhcnkgYW5kIGNhY2hlIGRpcmVjdG9yaWVzLgogICAgIFN0cmluZyBzeXN0
ZW1EaXJlY3RvcnlTdWZmaXggPSAiY29tLmFwcGxlLldlYlByb2Nlc3MrIiArIHBhcmFtZXRlcnMu
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICAgICBzZXRlbnYoIkRJUkhFTFBFUl9VU0VSX0RJ
Ul9TVUZGSVgiLCBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3lzdGVtRGlyZWN0b3J5U3VmZml4
KS5kYXRhKCksIDApOwpAQCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
CiAKIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVNoaW0oKQogewotI2lmIGRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA2MAogICAgIGluaXRpYWxpemVLZXljaGFpbkl0ZW1TaGltKCk7CiAjZWxzZQogICAg
IGluaXRpYWxpemVTZWNJdGVtU2hpbSgpOwpAQCAtMjk5LDE0ICsyOTksMTQgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2VjSXRlbVJl
c3BvbnNlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFNl
Y0l0ZW1SZXNwb25zZURhdGEmIHJlc3BvbnNlKQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICBkaWRSZWNlaXZlU2VjSXRlbVJlc3BvbnNlKHJlcXVlc3RJRCwgcmVzcG9uc2UpOwog
I2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6c2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU2VjS2V5Y2hhaW5J
dGVtUmVzcG9uc2VEYXRhJiByZXNwb25zZSkKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAK
ICAgICBkaWRSZWNlaXZlU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2UocmVxdWVzdElELCByZXNwb25z
ZSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2Vi
UHJvY2Vzc01haW5NYWMubW0KaW5kZXggNDhhYzJmMy4uMWI2N2ZjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0KQEAgLTQ3LDcg
KzQ3LDcgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiAi
QyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3Qs
IG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CiAjZW5kaWYKIApAQCAtNzMsNyArNzMsNyBAQCBpbnQg
V2ViUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQogCiAgICAgU3Ry
aW5nIHNlcnZpY2VOYW1lID0gY29tbWFuZExpbmVbInNlcnZpY2VuYW1lIl07CiAgICAgU3RyaW5n
IGNsaWVudEV4ZWN1dGFibGU7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGNsaWVu
dEV4ZWN1dGFibGUgPSBjb21tYW5kTGluZVsiY2xpZW50LWV4ZWN1dGFibGUiXTsKICNlbmRpZgog
CkBAIC04OSw3ICs4OSw3IEBAIGludCBXZWJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYg
Y29tbWFuZExpbmUpCiAgICAgICAgICAgICByZXR1cm4gMjsKICAgICAgICAgfQogICAgIH0KLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZWxzZSB7CiAgICAgICAgIG1hY2hfcG9ydF9u
YW1lX3QgcHVibGlzaGVkU2VydmljZTsKICAgICAgICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hf
dGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmcHVibGlzaGVkU2VydmljZSk7
CkBAIC0xNDEsNyArMTQxLDcgQEAgaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5l
JiBjb21tYW5kTGluZSkKICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAg
IH0KICAgICB9Ci0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiAgICAg
U3RyaW5nIGxvY2FsaXphdGlvbiA9IGNvbW1hbmRMaW5lWyJsb2NhbGl6YXRpb24iXTsKICAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmTG9jYWxpemF0aW9uKEFkb3B0Q0YsIENGU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4obG9j
YWxpemF0aW9uLmNoYXJhY3RlcnMoKSksIGxvY2FsaXphdGlvbi5sZW5ndGgoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5tbQppbmRleCA2ZDY5
NDQxLi45OTE2NmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQ
cm9jZXNzU2hpbS5tbQpAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogZXh0ZXJuICJDIiB2b2lkIFdlYktpdFdlYlBy
b2Nlc3NTZWNJdGVtU2hpbUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc1NlY0l0ZW1TaGltQ2Fs
bGJhY2tzJik7CiAKQEAgLTcwLDkgKzcwLDkgQEAgdm9pZCBXZWJLaXRXZWJQcm9jZXNzU2VjSXRl
bVNoaW1Jbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNrcyYKICAg
ICBzZWNJdGVtU2hpbUNhbGxiYWNrcyA9IGNhbGxiYWNrczsKIH0KIAotI2VuZGlmIC8vICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogCiBl
eHRlcm4gIkMiIHZvaWQgV2ViS2l0V2ViUHJvY2Vzc0tleWNoYWluSXRlbVNoaW1Jbml0aWFsaXpl
KGNvbnN0IFdlYlByb2Nlc3NLZXljaGFpbkl0ZW1TaGltQ2FsbGJhY2tzJik7CiAKQEAgLTEyMSw2
ICsxMjEsNiBAQCB2b2lkIFdlYktpdFdlYlByb2Nlc3NLZXljaGFpbkl0ZW1TaGltSW5pdGlhbGl6
ZShjb25zdCBXZWJQcm9jZXNzS2V5Y2hhaW5JdGVtU2hpbQogICAgIGtleWNoYWluSXRlbVNoaW1D
YWxsYmFja3MgPSBjYWxsYmFja3M7CiB9CiAKLSNlbmRpZiAvLyBkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID09IDEwNjAKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTAzOTgxNS4uMTlmZTQ0NiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBt
YWNyb3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKKworICAgICAgICBU
aGlzIHJlbW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xhdGVzIHRoZSBy
ZWxldmFudCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCisgICAgICAgIHVzaW5n
IHRoZSBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVE
dW1wU3VwcG9ydC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxs
b2MuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8u
bW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm06
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjdGl2
YXRlRm9udHMubW06CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvSW5qZWN0ZWRCdW5kbGVNYWMubW06CisKIDIwMTItMDctMTEgIEtldmluIE9sbGl2aWVyICA8
a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgW3d4XSBVbnJldmlld2VkIGJ1aWxk
IGZpeC4gQWRkIG5ldyBkaXJlY3RvcmllcyBhbmQgYSBuZXcgTGF5b3V0VGVzdENvbnRyb2xsZXIg
bWV0aG9kLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2YvV2ViQXJjaGl2ZUR1
bXBTdXBwb3J0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3Vw
cG9ydC5jcHAKaW5kZXggMzNkYzI4YS4uMWY3ZjE3MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2YvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0LmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jZi9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwCkBAIC00NCw3ICs0NCw3IEBAIENG
VHlwZUlEIENGVVJMUmVzcG9uc2VHZXRUeXBlSUQodm9pZCk7CiAKIHN0YXRpYyB2b2lkIGNvbnZl
cnRNSU1FVHlwZShDRk11dGFibGVTdHJpbmdSZWYgbWltZVR5cGUpCiB7Ci0jaWZkZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1
MAogICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS81NTM5ODI0PiBvbiBMZW9w
YXJkCiAgICAgaWYgKENGU3RyaW5nQ29tcGFyZShtaW1lVHlwZSwgQ0ZTVFIoInRleHQveG1sIiks
IGtDRkNvbXBhcmVBbmNob3JlZCB8IGtDRkNvbXBhcmVDYXNlSW5zZW5zaXRpdmUpID09IGtDRkNv
bXBhcmVFcXVhbFRvKQogICAgICAgICBDRlN0cmluZ1JlcGxhY2VBbGwobWltZVR5cGUsIENGU1RS
KCJhcHBsaWNhdGlvbi94bWwiKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgQ0ZTdHJpbmdSZWYgY3Jl
YXRlWE1MU3RyaW5nRnJvbVdlYkFyY2hpdmVEYXRhKENGRGF0YVJlZiB3ZWJBcmNoaXZlRGF0YSkK
ICAgICBDRkVycm9yUmVmIGVycm9yID0gMDsKICAgICBDRlByb3BlcnR5TGlzdEZvcm1hdCBmb3Jt
YXQgPSBrQ0ZQcm9wZXJ0eUxpc3RCaW5hcnlGb3JtYXRfdjFfMDsKIAotI2lmZGVmIEJVSUxESU5H
X09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAK
ICAgICBDRkluZGV4IGJ5dGVzQ291bnQgPSBDRkRhdGFHZXRMZW5ndGgod2ViQXJjaGl2ZURhdGEp
OwogICAgIFJldGFpblB0cjxDRlJlYWRTdHJlYW1SZWY+IHJlYWRTdHJlYW0oQWRvcHRDRiwgQ0ZS
ZWFkU3RyZWFtQ3JlYXRlV2l0aEJ5dGVzTm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIENGRGF0
YUdldEJ5dGVQdHIod2ViQXJjaGl2ZURhdGEpLCBieXRlc0NvdW50LCBrQ0ZBbGxvY2F0b3JOdWxs
KSk7CiAgICAgQ0ZSZWFkU3RyZWFtT3BlbihyZWFkU3RyZWFtLmdldCgpKTsKQEAgLTIwOCw3ICsy
MDgsNyBAQCBDRlN0cmluZ1JlZiBjcmVhdGVYTUxTdHJpbmdGcm9tV2ViQXJjaGl2ZURhdGEoQ0ZE
YXRhUmVmIHdlYkFyY2hpdmVEYXRhKQogCiAgICAgZXJyb3IgPSAwOwogCi0jaWZkZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1
MAogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHhtbERhdGEoQWRvcHRDRiwgQ0ZQcm9wZXJ0eUxp
c3RDcmVhdGVYTUxEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIHByb3BlcnR5TGlzdC5nZXQoKSkp
OwogI2Vsc2UKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiB4bWxEYXRhKEFkb3B0Q0YsIENGUHJv
cGVydHlMaXN0Q3JlYXRlRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwcm9wZXJ0eUxpc3QuZ2V0
KCksIGtDRlByb3BlcnR5TGlzdFhNTEZvcm1hdF92MV8wLCAwLCAmZXJyb3IpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9DaGVja2VkTWFsbG9jLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9DaGVja2VkTWFsbG9jLmNwcAppbmRleCA4YmQ1M2U1Li5iNTZjYjI4
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ2hlY2tlZE1hbGxvYy5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxsb2MuY3BwCkBAIC01NCw3
ICs1NCw3IEBAIHN0YXRpYyB2b2lkKiBjaGVja2VkUmVhbGxvYyhtYWxsb2Nfem9uZV90KiB6b25l
LCB2b2lkKiBwdHIsIHNpemVfdCBzaXplKQogICAgIHJldHVybiBzYXZlZFJlYWxsb2Moem9uZSwg
cHRyLCBzaXplKTsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyB2bV9wcm90X3QgcHJvdGVjdGlvbk9mUmVnaW9u
KG1hY2hfdm1fYWRkcmVzc190IGFkZHJlc3MpCiB7CiAgICAgbWFjaF92bV9zaXplX3QgcmVnaW9u
U2l6ZSA9IDA7CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgbWFrZUxhcmdlTWFsbG9jRmFpbFNpbGVu
dGx5KCkKIHsKICAgICBtYWxsb2Nfem9uZV90KiB6b25lID0gbWFsbG9jX2RlZmF1bHRfem9uZSgp
OwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgIG1hY2hfdm1fYWRkcmVzc190IHBhZ2VTdGFydCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dm1fYWRkcmVzc190Pih6b25lKSAmIHN0YXRpY19jYXN0PHZtX3NpemVfdD4ofihnZXRwYWdl
c2l6ZSgpIC0gMSkpOwogICAgIHZtX3Byb3RfdCBpbml0aWFsUHJvdGVjdGlvbiA9IHByb3RlY3Rp
b25PZlJlZ2lvbihwYWdlU3RhcnQpOwogCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgbWFrZUxhcmdl
TWFsbG9jRmFpbFNpbGVudGx5KCkKICAgICB6b25lLT5tYWxsb2MgPSBjaGVja2VkTWFsbG9jOwog
ICAgIHpvbmUtPnJlYWxsb2MgPSBjaGVja2VkUmVhbGxvYzsKIAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAobWFjaF92
bV9wcm90ZWN0KG1hY2hfdGFza19zZWxmKCksIHBhZ2VTdGFydCwgbGVuLCAwLCBpbml0aWFsUHJv
dGVjdGlvbikpCiAgICAgICAgIENSQVNIKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBkZDBlZmY0Li5hYmJhNTM1IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC00MTgsNyArNDE4LDcgQEAg
c3RhdGljIHZvaWQgYWN0aXZhdGVUZXN0aW5nRm9udHMoKQogICAgICAgICAiV2ViS2l0V2VpZ2h0
V2F0Y2hlcjcwMC50dGYiLAogICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGYiLAog
ICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYiLAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwODAKICAgICAgICAgIlNhbXBsZUZvbnQuc2ZvbnQiLAogI2VuZGlmCiAgICAg
ICAgIDAKQEAgLTU5MCw3ICs1OTAsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25z
aXN0ZW50VmFsdWVzKCkKICNlbmRpZgogCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShDSFJP
TUlVTSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBM
QVRGT1JNKENIUk9NSVVNKQogICAgIFtkZWZhdWx0cyBzZXRCb29sOk5PIGZvcktleTpAIk5TU2Ny
b2xsQW5pbWF0aW9uRW5hYmxlZCJdOwogI2Vsc2UKICAgICBbZGVmYXVsdHMgc2V0Qm9vbDpOTyBm
b3JLZXk6QCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVuYWJsZWQiXTsKQEAgLTY1NSw3ICs2NTUsNyBA
QCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICAvLyBT
bywgdHVybiBpdCBvZmYgZm9yIG5vdywgYnV0IHdlIG1pZ2h0IHdhbnQgdG8gdHVybiBpdCBiYWNr
IG9uIHNvbWUgZGF5LgogICAgIFtwcmVmZXJlbmNlcyBzZXRVc2VzUGFnZUNhY2hlOk5PXTsKICAg
ICBbcHJlZmVyZW5jZXMgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ6WUVTXTsKLSNp
ZiBVU0UoQ0EpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBVU0UoQ0EpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFtwcmVmZXJlbmNlcyBzZXRDYW52YXNVc2VzQWNj
ZWxlcmF0ZWREcmF3aW5nOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQ6Tk9dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0KaW5kZXggYjcyOWNmNC4uYjZiMjJj
MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJh
Z2dpbmdJbmZvLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mby5tbQpAQCAtMTA1LDcgKzEwNSw3IEBACiAgICAgcmV0dXJuIG5pbDsKIH0K
IAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKIC0gKE5TRHJhZ2dpbmdGb3JtYXRpb24pZHJhZ2dpbmdGb3JtYXRpb24KIHsKICAgICBy
ZXR1cm4gTlNEcmFnZ2luZ0Zvcm1hdGlvbkRlZmF1bHQ7CkBAIC0xNDAsNyArMTQwLDcgQEAKIHsK
ICAgICAvLyBJZ25vcmVkLgogfQotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXgg
ZjM2MGMwNi4uNTRmODc1NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtMTAzMSw3ICsxMDMxLDcgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0V2ViVmlld0VkaXRhYmxlKGJvb2wgZWRpdGFibGUpCiAKIHN0
YXRpYyBOU1N0cmluZyAqU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZSA9IEAiRHVtcFJlbmRl
clRyZWVTeW5jaHJvbm91c0xvYWRlclJ1bkxvb3BNb2RlIjsKIAotI2lmIGRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiBAcHJvdG9jb2wgTlNVUkxD
b25uZWN0aW9uRGVsZWdhdGUgPE5TT2JqZWN0PgogQGVuZAogI2VuZGlmCkBAIC0xMTA3LDcgKzEx
MDcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKlN5bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1vZGUgPSBA
IkR1bXBSZW5kZXJUcmVlU3luY2hyb25vdXNMb2FkZQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiB1cmwsIEpTU3RyaW5nUmVmIHVzZXJu
YW1lLCBKU1N0cmluZ1JlZiBwYXNzd29yZCkKIHsKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVt
Lzc4ODA2OTk+LgotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1
cmxTdHJpbmdDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCB1cmwpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHVzZXJuYW1lQ0YoQWRvcHRD
RiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdXNlcm5hbWUpKTsK
ICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHBhc3N3b3JkQ0YoQWRvcHRDRiwgSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGFzc3dvcmQpKTsKQEAgLTExMzUsNyAr
MTEzNSw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1pbmltdW1UaW1lckludGVy
dmFsKGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCkKIAogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZiBkaXJlY3Rpb25OYW1lKQogewotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIGlm
IChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGRpcmVjdGlvbk5hbWUsICJsdHIiKSkKICAg
ICAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gbWFrZUJhc2VXcml0aW5nRGlyZWN0aW9uTGVmdFRv
UmlnaHQ6MF07CiAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhkaXJl
Y3Rpb25OYW1lLCAicnRsIikpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGV4dElucHV0Q29udHJvbGxlci5tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1
dENvbnRyb2xsZXIubQppbmRleCBhZmViMTZlLi45MWRiZDg0IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KQEAgLTMxLDcgKzMxLDcgQEAKIAog
I2ltcG9ydCAiRHVtcFJlbmRlclRyZWVNYWMuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0lucHV0TWFu
YWdlci5oPgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICNkZWZpbmUgU1VQUE9S
VF9ESUNUQVRJT05fQUxURVJOQVRJVkVTCiAjaW1wb3J0IDxBcHBLaXQvTlNUZXh0QWx0ZXJuYXRp
dmVzLmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0luamVj
dGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0luamVj
dGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbQppbmRleCA0ZGQ0ZWYwLi45NjViZWI0IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJNYWMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVy
TWFjLm1tCkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQogICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IFtOU0RpY3Rpb25h
cnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnRlZ2VyOjRdLCAgIEAiQXBwbGVBbnRpQWxpYXNpbmdU
aHJlc2hvbGQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEludGVnZXI6MF0sICAgQCJBcHBsZUZvbnRTbW9vdGhpbmciLAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBM
QVRGT1JNKENIUk9NSVVNKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MCAmJiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgICBAIk5TU2Nyb2xsQW5pbWF0aW9uRW5hYmxl
ZCIsCiAjZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6Tk9dLCAgICAgQCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVuYWJsZWQiLApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWN0aXZhdGVGb250
cy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjdGl2YXRl
Rm9udHMubW0KaW5kZXggMzIwYjI4YS4uMDFkNzkwYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWN0aXZhdGVGb250cy5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY3RpdmF0ZUZvbnRzLm1tCkBA
IC0yMzQsNyArMjM0LDcgQEAgdm9pZCBhY3RpdmF0ZUZvbnRzKCkKICAgICAgICAgIldlYktpdFdl
aWdodFdhdGNoZXI3MDAudHRmIiwKICAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI4MDAudHRm
IiwKICAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmIiwKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgICJTYW1w
bGVGb250LnNmb250IiwKICNlbmRpZgogICAgICAgICAwCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFj
Lm1tCmluZGV4IDQxOTA2NGYuLjk5NmFjYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1t
CkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6
ZShXS1R5cGVSZWYpCiAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dGVnZXI6NF0sICAgQCJBcHBsZUFudGlBbGlhc2luZ1RocmVzaG9sZCIsCiAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoSW50ZWdlcjowXSwgICBAIkFwcGxlRm9udFNtb290aGluZyIsCi0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MSU9OKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShDSFJPTUlVTSkKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICAgIEAiTlNTY3JvbGxBbmltYXRpb25FbmFibGVkIiwK
ICNlbHNlCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgICBAIkFwcGxl
U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZCIsCi0tIAoxLjcuOS42IChBcHBsZSBHaXQtMzEuMSkKCg==
</data>
<flag name="commit-queue"
          id="160367"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151828</attachid>
            <date>2012-07-11 18:11:26 -0700</date>
            <delta_ts>2012-07-11 18:11:26 -0700</delta_ts>
            <desc>Part 1 - Scripted replacement (v3)</desc>
            <filename>0001-http-webkit.org-b-91015-Remove-BUILDING_ON-TARGETING.patch</filename>
            <type>text/plain</type>
            <size>232688</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSAxYjU0YjA5MjFhZGI1YjhhZGU5ZmFkNzBjYTYyYTUzNzczYjcwYTg1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogV2Vk
LCAxMSBKdWwgMjAxMiAxNjowNzozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxodHRwOi8vd2Vi
a2l0Lm9yZy9iLzkxMDE1PiBSZW1vdmUgQlVJTERJTkdfT04gLyBUQVJHRVRJTkcKIG1hY3JvcyBp
biBmYXZvciBvZiBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3JvcwoKVGhpcyByZW1vdmFsIHdhcyBo
YW5kbGVkIGJ5IGEgc2NyaXB0IHRoYXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGlu
IHRvIHRoZSBlcXVpdmFsZW50IGNoZWNrcwp1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0eSBt
YWNyb3MuCgpSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KClNvdXJjZS9XZWJDb3JlOgoKKiBXZWJD
b3JlLmV4cC5pbjoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CiogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tOgoqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKiBsb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcDoKKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmg6CiogcGFnZS9B
bHRlcm5hdGl2ZVRleHRDbGllbnQuaDoKKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CiogcGFnZS9tYWMvU2V0dGluZ3NNYWMubW06CiogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHA6CiogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKiBwbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9CdXNNYWMubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDoKKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CiogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9tYWMvVGlsZUNhY2hlLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoKKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHA6CiogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcDoKKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRQbGF0Zm9ybURhdGFDb2NvYS5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyLmNwcDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNo
ZU1hYy5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHA6CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW06CiogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CiogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZv
bnREYXRhTWFjLm1tOgoqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oOgoqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbToKKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwOgoqIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06
CiogcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNwcDoKKiBwbGF0Zm9ybS9tYWMv
RGlzcGxheVNsZWVwRGlzYWJsZXIuaDoKKiBwbGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERlZmlu
aXRpb25zLmg6CiogcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIuaDoKKiBwbGF0Zm9ybS9tYWMv
SFRNTENvbnZlcnRlci5tbToKKiBwbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFj
Lm1tOgoqIHBsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oOgoqIHBsYXRmb3JtL21h
Yy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFj
Lm1tOgoqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKiBwbGF0Zm9ybS9tYWMv
U2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW06CiogcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVy
TWFjLm1tOgoqIHBsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5tbToKKiBwbGF0Zm9ybS9t
YWMvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW06CiogcGxhdGZvcm0vbWFjL1dlYkNvcmVOU0Nl
bGxFeHRyYXMuaDoKKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgoqIHBs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOgoqIHBsYXRmb3JtL21hYy9XZWJG
b250Q2FjaGUubW06CiogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIu
bW06CiogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIu
bW06CiogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmg6CiogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oOgoqIHBsYXRmb3JtL25ldHdvcmsvY2YvRE5TQ0ZOZXQuY3BwOgoqIHBs
YXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CiogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVx
dWVzdENGTmV0LmNwcDoKKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNG
TmV0LmNwcDoKKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbToKKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tOgoqIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgoqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlUmVxdWVzdE1hYy5tbToKKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9u
c2UubW06CiogcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaDoKKiBwbGF0Zm9ybS90ZXh0L2Nm
L0h5cGhlbmF0aW9uQ0YuY3BwOgoqIHBsYXRmb3JtL3RleHQvbWFjL0h5cGhlbmF0aW9uTWFjLm1t
OgoqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgoqIHJlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwOgoqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKClNvdXJj
ZS9XZWJLaXQvY2hyb21pdW06CgoqIHNyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW06CgpT
b3VyY2UvV2ViS2l0L21hYzoKCiogRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1l
bnVEZWxlZ2F0ZS5tbToKKiBNaXNjL1dlYktpdEVycm9ycy5tOgoqIE1pc2MvV2ViTlNDb250cm9s
RXh0cmFzLm06CiogTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tOgoqIFBsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKiBQbHVnaW5zL1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcubW06CiogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06Ciog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbToKKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToK
KiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CiogV2ViVmlldy9XZWJDbGlw
Vmlldy5tbToKKiBXZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbToKKiBXZWJWaWV3
L1dlYkZyYW1lVmlldy5tbToKKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgoq
IFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CiogV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmg6
CiogV2ViVmlldy9XZWJQREZEb2N1bWVudEV4dHJhcy5tbToKKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tOgoqIFdlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oOgoqIFdlYlZpZXcvV2ViU2Ny
aXB0RGVidWdEZWxlZ2F0ZS5oOgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKiBXZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmg6CgpTb3VyY2UvV2ViS2l0MjoKCiogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cElu
Zm8uY3BwOgoqIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg6CiogU2hhcmVkL21hYy9QYXN0
ZWJvYXJkVHlwZXMubW06CiogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CiogVUlQcm9j
ZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW06CiogVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW06CiogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgoqIFVJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmg6CiogVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW06
CiogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5jcHA6CiogVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5oOgoqIFVJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgoqIFVJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW06CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CiogVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbToKKiBVSVByb2Nlc3Mv
bWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW06CiogVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWFjLm1tOgoqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgoqIFdlYktp
dDJQcmVmaXguaDoKKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2Vy
RnVuY3MuY3BwOgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zLm1tOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcDoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgoq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbToKKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CiogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2Vi
UHJvY2Vzcy5zYi5pbjoKKiBXZWJQcm9jZXNzL21hYy9LZXljaGFpbkl0ZW1TaGltTWV0aG9kcy5t
bToKKiBXZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbU1ldGhvZHMubW06CiogV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01hYy5tbToKKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5t
bToKKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5tbToKClNvdXJjZS9XVEY6CgoqIHd0
Zi9Bc3NlcnRpb25zLmNwcDoKKiB3dGYvRmFzdE1hbGxvYy5jcHA6Ciogd3RmL1BsYXRmb3JtLmg6
Ciogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKiB3dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJ
Q1UuY3BwOgoKVG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3VwcG9y
dC5jcHA6CiogRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxsb2MuY3BwOgoqIER1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWVEcmFnZ2luZ0luZm8ubW06CiogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tOgoqIER1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVy
Lm06CiogVGVzdFdlYktpdEFQSS9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tOgoq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjdGl2YXRlRm9udHMubW06Ciog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW06
Ci0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE1ICsrKysKIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArLQogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTQgKystLQogU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRo
cmVhZHMuY3BwICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi91bmljb2Rl
L2ljdS9Db2xsYXRvcklDVS5jcHAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4OCArKysrKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAg
fCAgIDE0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxp
c3QuaCAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGUuaCAgfCAgICAyICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbSAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL01h
aW5SZXNvdXJjZUxvYWRlci5jcHAgICAgICAgfCAgIDE4ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYkNv
cmUvcGFnZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAgICAgICAgfCAgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgICAgICB8ICAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tICAgICAgICAgICAgIHwgICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgICAgICAgfCAg
ICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3Bw
ICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01h
Yy5tbSAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnQuaCAgICAgICAgfCAgICAyICstCiAuLi4vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwICAgICAgIHwgICAgNiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggfCAgICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSB8ICAgMTQgKystLQogLi4uL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbSAgfCAgICA4ICstCiAuLi4vcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwICAgICB8ICAgIDggKy0KIC4u
Li9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIHwgICAxMiAr
LS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAgICAgIHwg
ICAgNCArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmggICAg
ICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNH
LmNwcCAgICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
U291cmNlQ0cuY3BwIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUGF0aENHLmNwcCAgICAgfCAgICA0ICstCiAuLi4vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRm
b3JtRGF0YUNvY29hLm1tICAgICAgICB8ICAgMTAgKy0tCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgIDIgKy0KIC4uLi9ncmFwaGljcy9tYWMv
Q29tcGxleFRleHRDb250cm9sbGVyLmNwcCAgICAgICAgIHwgICAgMiArLQogLi4uL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSAgfCAgICA0ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tICB8ICAgIDQgKy0KIC4u
Li9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgICAgICAgIHwgICAgNiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0gICAgfCAg
ICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbSAg
ICB8ICAgIDIgKy0KIC4uLi9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0g
ICAgICAgIHwgICAxNCArKy0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnRE
YXRhTWFjLm1tICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJMYXllci5oICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1dlYkxheWVyLm1tICAgfCAgICAyICstCiAuLi4vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9DdXJzb3JNYWMubW0gICAgICAgICAgIHwgICA1MiArKysrKystLS0tLS0KIC4u
Li9XZWJDb3JlL3BsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAgIHwgICAgOCAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmggfCAg
ICA2ICstCiAuLi4vcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICAgICAg
ICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLmgg
ICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0
ZXIubW0gICAgICAgfCAgICA2ICstCiAuLi4vcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJlSGFu
ZGxlck1hYy5tbSAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9O
U1Njcm9sbGVySW1wRGV0YWlscy5oIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbSAgICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tICAgICAgICB8ICAgIDggKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSAgIHwgICAgMiArLQogLi4uL3BsYXRm
b3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbSAgICAgfCAgICA1ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0gICAgICB8ICAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5tbSAgIHwgICAg
MiArLQogLi4uL3BsYXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAgICAgICAg
fCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJh
cy5oICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmggIHwgICAyMCArKy0tLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UubW0gfCAgIDE2ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJGb250Q2FjaGUubW0gICAgICAgIHwgICAgMiArLQogLi4uL3BsYXRmb3JtL21hYy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tICAgfCAgICA0ICstCiAuLi4vbWFjL1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oICAgICAgIHwgICAgMiArLQogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgfCAgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcCAgICB8ICAgIDQg
Ky0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwICAgICAgIHwg
ICAgMiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3Qu
aCAgfCAgICAyICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5l
dC5jcHAgICB8ICAgIDQgKy0KIC4uLi9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0
LmNwcCAgICAgICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvbWFjL0F1dGhlbnRp
Y2F0aW9uTWFjLm1tICAgICAgfCAgICAyICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9tYWMvQ29v
a2llU3RvcmFnZU1hYy5tbSAgICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbSAgICAgIHwgICAgNCArLQogLi4uL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbSAgICAgfCAgICA2ICstCiAuLi4vcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tICAgICB8ICAgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmggICAgICAgIHwgICAgNiArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcCAgfCAgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlvbk1hYy5tbSB8ICAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwICAg
IHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0gICAgICAgICB8ICAgIDYgKy0KIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgIHwgICAxMSArKysKIC4uLi9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0
RXZlbnRGYWN0b3J5Lm1tICAgICAgIHwgICAgOCArLQogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICsrKysrKysrCiAuLi4vV2ViRGVmYXVs
dENvbnRleHRNZW51RGVsZWdhdGUubW0gICAgICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0gICAgICAgICAgICAgIHwgICAgMiArLQogU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRyYXMubSAgICAgICAgfCAgICAyICst
CiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0gICB8ICAg
IDIgKy0KIC4uLi9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0g
IHwgICAgMiArLQogLi4uL21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0g
ICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luVmlldy5tbSB8ICAgIDYgKy0KIC4uLi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSAgIHwgICAgNCArLQogLi4uL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tICAgfCAgIDE0ICsrLS0KIC4uLi9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0gICAgIHwgICAgNCArLQogLi4uL21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gICAgICAgfCAgIDE2ICsrLS0KIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0gICAgICAgICAgIHwgICAgNiArLQogLi4uL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0gfCAgICA0ICstCiBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSAgICAgICAgICB8ICAgIDIg
Ky0KIC4uLi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gIHwg
ICAxMiArLS0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gICAgICAg
ICAgIHwgICA0NCArKysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3SW50ZXJuYWwuaCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UERGRG9jdW1lbnRFeHRyYXMubW0gIHwgICAgMiArLQogU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oIHwgICAgMiArLQogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAgICAgICAgfCAgIDQ2ICsrKysrLS0t
LS0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCAgICAgICAgIHwg
ICAgMiArLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDQ2ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9w
dXBJbmZvLmNwcCAgICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25h
cnlQb3B1cEluZm8uaCAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1Bhc3RlYm9hcmRUeXBlcy5tbSAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0gfCAgICA0ICstCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSB8ICAgIDggKy0KIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSAgICAgICAgIHwgICAyOCArKyst
LS0tCiAuLi4vbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICAgICAgICB8
ICAgIDQgKy0KIC4uLi9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tICAg
ICAgIHwgICAgNCArLQogLi4uL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5jcHAg
ICAgICAgICAgfCAgICA0ICstCiAuLi4vVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVu
dFZhcmlhYmxlcy5oICB8ICAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbSAgIHwgICAgOCArLQogLi4uL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9Q
bHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAgMTIgKy0tCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwgICAgMiArLQogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbSAgICAgfCAgICA2ICstCiAu
Li4vVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICB8ICAgMTIg
Ky0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0gICAgICB8
ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
ICAgIHwgICAgNCArLQogU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oICAgICAgICAgICAg
ICAgICAgICAgfCAgICAyICstCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJG
dW5jcy5jcHAgICAgICB8ICAgIDQgKy0KIC4uLi9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94
RnVuY3Rpb25zLm1tICAgICAgIHwgICAgNiArLQogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcCAgfCAgICAyICstCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCAgICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tICAgICAgIHwgICAxNCArKy0tCiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggICAgICAgIHwgICAgMiArLQog
Li4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gfCAgICAy
ICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gICB8
ICAgIDYgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2Iu
aW4gIHwgICAgMiArLQogLi4uL1dlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2Rz
Lm1tICAgICAgfCAgICA0ICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hp
bU1ldGhvZHMubW0gICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dl
YlByb2Nlc3NNYWMubW0gICAgIHwgICAxMCArLS0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tIHwgICAgOCArLQogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0gICAgfCAgICA4ICstCiBUb29scy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKysKIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5jcHAgIHwgICAgNiArLQogVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0NoZWNrZWRNYWxsb2MuY3BwICAgICAgICAgfCAgICA2ICst
CiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgICAgICB8ICAg
IDYgKy0KIC4uLi9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0gICAgICAgICAgICAg
IHwgICAgNCArLQogLi4uL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbSAgfCAgICA2ICstCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJv
bGxlci5tICAgICB8ICAgIDIgKy0KIC4uLi9tYWMvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFj
Lm1tICAgICAgICAgICAgIHwgICAgMiArLQogLi4uL0luamVjdGVkQnVuZGxlL21hYy9BY3RpdmF0
ZUZvbnRzLm1tICAgICAgICAgICAgfCAgICAyICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvbWFjL0lu
amVjdGVkQnVuZGxlTWFjLm1tICAgICAgICB8ICAgIDIgKy0KIDE1OCBmaWxlcyBjaGFuZ2VkLCA2
NTIgaW5zZXJ0aW9ucygrKSwgNDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNTFkODEwYy4uYWU0MGJi
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNy0xMSAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgorCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzkxMDE1PiBSZW1vdmUgQlVJ
TERJTkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9yIG9mIHN5c3RlbSBhdmFpbGFiaWxp
dHkgbWFjcm9zCisKKyAgICAgICAgVGhpcyByZW1vdmFsIHdhcyBoYW5kbGVkIGJ5IGEgc2NyaXB0
IHRoYXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGluIHRvIHRoZSBlcXVpdmFsZW50
IGNoZWNrcworICAgICAgICB1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0
aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAg
ICogd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKwogMjAxMi0wNy0xMSAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCAtV3RhdXRvbG9n
aWNhbC1jb21wYXJlIGFuZCAtV3NpZ24tY29tcGFyZSB3YXJuaW5nIGZsYWdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuY3BwCmluZGV4IDhmZThhMzguLmFlMjRjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX2NvbW1vbihjb25zdCBjaGFy
KiBmb3JtYXQsIHZhX2xpc3QgYXJncykKIAogICAgICAgICBDRlN0cmluZ0dldENTdHJpbmcoc3Ry
LCBidWZmZXIsIGxlbmd0aCwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KTsKIAotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAgICAgYXNs
X2xvZygwLCAwLCBBU0xfTEVWRUxfTk9USUNFLCAiJXMiLCBidWZmZXIpOwogI2VuZGlmCiAgICAg
ICAgIGZwdXRzKGJ1ZmZlciwgc3RkZXJyKTsKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIHZvaWQg
dnByaW50Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIHZhX2xpc3QgY29weU9mQXJnczsKICAgICB2
YV9jb3B5KGNvcHlPZkFyZ3MsIGFyZ3MpOwogICAgIGFzbF92bG9nKDAsIDAsIEFTTF9MRVZFTF9O
T1RJQ0UsIGZvcm1hdCwgY29weU9mQXJncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9G
YXN0TWFsbG9jLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCmluZGV4IGNjODUy
MWMuLmY0MGFkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC00NjU0LDEwICs0NjU0LDEwIEBA
IGV4dGVybiAiQyIgewogbWFsbG9jX2ludHJvc3BlY3Rpb25fdCBqc2NvcmVfZmFzdG1hbGxvY19p
bnRyb3NwZWN0aW9uID0geyAmRmFzdE1hbGxvY1pvbmU6OmVudW1lcmF0ZSwgJkZhc3RNYWxsb2Na
b25lOjpnb29kU2l6ZSwgJkZhc3RNYWxsb2Nab25lOjpjaGVjaywgJkZhc3RNYWxsb2Nab25lOjpw
cmludCwKICAgICAmRmFzdE1hbGxvY1pvbmU6OmxvZywgJkZhc3RNYWxsb2Nab25lOjpmb3JjZUxv
Y2ssICZGYXN0TWFsbG9jWm9uZTo6Zm9yY2VVbmxvY2ssICZGYXN0TWFsbG9jWm9uZTo6c3RhdGlz
dGljcwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgT1MoSU9TKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MCB8fCBPUyhJT1MpCiAgICAg
LCAwIC8vIHpvbmVfbG9ja2VkIHdpbGwgbm90IGJlIGNhbGxlZCBvbiB0aGUgem9uZSB1bmxlc3Mg
aXQgYWR2ZXJ0aXNlcyBpdHNlbGYgYXMgdmVyc2lvbiBmaXZlIG9yIGhpZ2hlci4KICNlbmRpZgot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkgfHwgT1MoSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MCB8fCBPUyhJT1MpCiAgICAgLCAwLCAwLCAwLCAwIC8vIFRoZXNlIG1lbWJl
cnMgd2lsbCBub3QgYmUgdXNlZCB1bmxlc3MgdGhlIHpvbmUgYWR2ZXJ0aXNlcyBpdHNlbGYgYXMg
dmVyc2lvbiBzZXZlbiBvciBoaWdoZXIuCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggOTE5Zjg3
Mi4uN2M3NjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC01MzMsNyArNTMzLDcgQEAKICNpZiBDUFUoWDg2
XzY0KQogI2RlZmluZSBXVEZfVVNFX1BMVUdJTl9IT1NUX1BST0NFU1MgMQogI2VuZGlmCi0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2RlZmluZSBFTkFCTEVfR0VTVFVSRV9FVkVOVFMgMQog
I2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMQogI2RlZmluZSBXVEZfVVNFX1NDUk9MTEJB
Ul9QQUlOVEVSIDEKQEAgLTU1Niw3ICs1NTYsNyBAQAogI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVP
KQogI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogI2RlZmluZSBIQVZFX0xB
WUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUiAxCiAjZW5kaWYKICNkZWZpbmUgV1RGX1VTRV9B
UFBLSVQgMQpAQCAtNzA0LDcgKzcwNCw3IEBACiAjZGVmaW5lIEhBVkVfU1lTX1RJTUVCX0ggMQog
I2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJBVEUgMQogCi0jaWZuZGVmIFRBUkdFVElOR19MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAKICNkZWZpbmUg
SEFWRV9ESVNQQVRDSF9IIDEKICNkZWZpbmUgSEFWRV9IT1NURURfQ09SRV9BTklNQVRJT04gMQpA
QCAtMTA0MCw3ICsxMDQwLDcgQEAKICNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBM
RV9IQVNIIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICNk
ZWZpbmUgRU5BQkxFX1RIUkVBREVEX1NDUk9MTElORyAxCiAjZW5kaWYKIApAQCAtMTEwMiwxMSAr
MTEwMiwxMSBAQAogI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CiAjZGVmaW5lIFdURl9VU0VfQVZGT1VOREFUSU9OIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xJT04pCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwODAKICNkZWZpbmUgV1RGX1VTRV9DT1JFTUVESUEgMQogI2VuZGlm
CiAKQEAgLTExMTgsNyArMTExOCw3IEBACiAjZGVmaW5lIFdURl9VU0VfUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNkZWZpbmUgSEFWRV9J
TlZFUlRFRF9XSEVFTF9FVkVOVFMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJl
YWRzLmNwcAppbmRleCA1MTAxNzNkLi4yY2ZhODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRo
cmVhZHMuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNlbmRp
ZgogCi0jaWYgT1MoTUFDX09TX1gpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisj
aWYgT1MoTUFDX09TX1gpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2
MAogI2luY2x1ZGUgPG9iamMvb2JqYy1hdXRvLmg+CiAjZW5kaWYKIApAQCAtMjI4LDcgKzIyOCw3
IEBAIHZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJl
YWROYW1lKQogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNlbmRpZgogCi0jaWYgT1Mo
TUFDX09TX1gpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgT1MoTUFDX09T
X1gpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIC8vIEFs
bCB0aHJlYWRzIHRoYXQgcG90ZW50aWFsbHkgdXNlIEFQSXMgYWJvdmUgdGhlIEJTRCBsYXllciBt
dXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgT2JqZWN0aXZlLUMKICAgICAvLyBnYXJiYWdlIGNv
bGxlY3RvciBpbiBjYXNlIEFQSSBpbXBsZW1lbnRhdGlvbnMgdXNlIGdhcmJhZ2UtY29sbGVjdGVk
IG1lbW9yeS4KICAgICBvYmpjX3JlZ2lzdGVyVGhyZWFkV2l0aENvbGxlY3RvcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIGIvU291cmNl
L1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCmluZGV4IGU1MDdhMjAuLjgyMDY0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAgUGFzc093blB0cjxDb2xsYXRvcj4gQ29sbGF0b3I6OnVzZXJEZWZhdWx0KCkK
IHsKICNpZiBPUyhEQVJXSU4pICYmIFVTRShDRikKICAgICAvLyBNYWMgT1MgWCBkb2Vzbid0IHNl
dCBVTklYIGxvY2FsZSB0byBtYXRjaCB1c2VyLXNlbGVjdGVkIG9uZSwgc28gSUNVIGRlZmF1bHQg
ZG9lc24ndCB3b3JrLgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFPUyhJ
T1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwICYmICFPUyhJ
T1MpCiAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlKEFkb3B0Q0YsIENG
TG9jYWxlQ29weUN1cnJlbnQoKSk7CiAgICAgQ0ZTdHJpbmdSZWYgY29sbGF0aW9uT3JkZXIgPSAo
Q0ZTdHJpbmdSZWYpQ0ZMb2NhbGVHZXRWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2Nh
bGVDb2xsYXRvcklkZW50aWZpZXIpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMzFhNjQ0Li4wY2Jh
MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTItMDctMTEgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85MTAxNT4g
UmVtb3ZlIEJVSUxESU5HX09OIC8gVEFSR0VUSU5HIG1hY3JvcyBpbiBmYXZvciBvZiBzeXN0ZW0g
YXZhaWxhYmlsaXR5IG1hY3JvcworCisgICAgICAgIFRoaXMgcmVtb3ZhbCB3YXMgaGFuZGxlZCBi
eSBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhlIHJlbGV2YW50IG1hY3JvcyBpbiB0byB0aGUg
ZXF1aXZhbGVudCBjaGVja3MKKyAgICAgICAgdXNpbmcgdGhlIHN5c3RlbSBhdmFpbGFiaWxpdHkg
bWFjcm9zLgorCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKiBl
ZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oOgorICAgICAg
ICAqIHBhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvbWFjL1NldHRpbmdzTWFjLm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvQnVzTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1RpbGVDYWNoZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRh
Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNH
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW06CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
Q3Vyc29yTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxl
ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL01lbW9yeVByZXNzdXJl
SGFuZGxlck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFp
bHMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW06
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nj
cm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TaGFy
ZWRUaW1lck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3VkZGVuVGVybWluYXRpb24u
bW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlTlNDZWxsRXh0cmFzLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
V2ViRm9udENhY2hlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5IVURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ3Jl
ZGVudGlhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvQXV0aGVudGljYXRpb25NYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZVJlcXVlc3RNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNr
aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9IeXBoZW5hdGlvbk1hYy5tbToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW06CisKIDIwMTItMDctMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgQml0bWFwSW1hZ2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKSBt
dXN0IHJldHVybiBmYWxzZSBpZiBJbWFnZURlY29kZXIgaXMgbm90IGluaXRpYWxpemVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCA5MWM0OGFjLi5hOGZlMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTk4OSwyMyArMTk4OSwyMyBAQCBfX1pON1dlYkNvcmU3SW50U2l6ZUMxRVJLN19OU1Np
emUKIF9fWk5LN1dlYkNvcmU3SW50U2l6ZWN2N19OU1NpemVFdgogI2VuZGlmCiAKLSNpZiBkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAgJiYgIVBMQVRGT1JNKElPUykKIF93
a0dldE5TRXZlbnRNb21lbnR1bVBoYXNlCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MCB8fCBQTEFURk9STShJT1MpCiBfd2tDQUxheWVyRW51bWVy
YXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrCiBfd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RD
YWNoaW5nCiBfd2tDR1BhdGhBZGRSb3VuZGVkUmVjdAogX3drQ3JlYXRlQ1RUeXBlc2V0dGVyV2l0
aFVuaUNoYXJQcm92aWRlckFuZE9wdGlvbnMKICNlbmRpZgogCi0jaWYgKCFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZPUk0oSU9TKSkgJiYgIVBMQVRGT1JNKElPU19T
SU1VTEFUT1IpCisjaWYgKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MCB8
fCBQTEFURk9STShJT1MpKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKIF93a0lPU3VyZmFj
ZUNvbnRleHRDcmVhdGUKIF93a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZQogI2VuZGlmCiAK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFQTEFURk9STShJT1Mp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwICYmICFQTEFURk9S
TShJT1MpCiBfd2tBVkFzc2V0UmVzb2x2ZWRVUkwKIF93a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlk
ZXJEaXNwbGF5TmFtZQogX3drQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25NYWluUXVldWUKQEAg
LTIwMTQsNyArMjAxNCw3IEBAIF93a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xl
b3BhcmQKIF93a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZQogI2VuZGlmCiAKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04p
ICYmICFQTEFURk9STShJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDgwICYmICFQTEFURk9STShJT1MpCiBfd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9y
ZUxpb24KIF93a0ZpbHRlckFkZERhdGEKIF93a0ZpbHRlckNyZWF0ZUluc3RhbmNlCkBAIC0yMDcz
LDcgKzIwNzMsNyBAQCBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlNDZzZXRQcml2YXRlQnJv
d3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlRVJLTgogX19aTjdXZWJDb3JlMTRSZXNv
dXJjZUhhbmRsZTIxY3VycmVudFN0b3JhZ2VTZXNzaW9uRXYKIF9fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VIYW5kbGUyOXByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uRXYKIF9fWk43V2ViQ29yZTI2
Y3VycmVudENGSFRUUENvb2tpZVN0b3JhZ2VFdgotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAog
X19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTI0c2V0RGVmYXVsdFN0b3JhZ2VTZXNzaW9uRVAy
MV9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbgogI2Vsc2UKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5k
bGUyNHNldERlZmF1bHRTdG9yYWdlU2Vzc2lvbkVQSzIxX19DRlVSTFN0b3JhZ2VTZXNzaW9uCkBA
IC0yNTQzLDcgKzI1NDMsNyBAQCBfX1pOSzdXZWJDb3JlNEtVUkw3aXNWYWxpZEV2CiBfX1pOSzdX
ZWJDb3JlNEtVUkwyMnByb3RvY29sSXNJbkhUVFBGYW1pbHlFdgogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAogX19aTjdXZWJDb3JlMjdBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIxNWFkZEFsdGVybmF0
aXZlc0VSS04zV1RGOVJldGFpblB0ckkxOE5TVGV4dEFsdGVybmF0aXZlc0VFCiBfX1pON1dlYkNv
cmUyN0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjIyYWx0ZXJuYXRpdmVzRm9yQ29udGV4dEV5
CiBfX1pON1dlYkNvcmUyN0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjVjbGVhckV2CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKaW5kZXgg
ZGU1ZTk2ZC4uMDJiYjVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMjksNyArMjksNyBAQAogI2lmbmRlZiBBY2Nlc3NpYmls
aXR5TGlzdF9oCiAjZGVmaW5lIEFjY2Vzc2liaWxpdHlMaXN0X2gKIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjZGVmaW5lIEFDQ0VTU0lC
SUxJVFlfTElTVFMgMAogI2Vsc2UKICNkZWZpbmUgQUNDRVNTSUJJTElUWV9MSVNUUyAxCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRl
eCAyMTgxNGYyLi5hOTUwODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjZGVm
aW5lIEFDQ0VTU0lCSUxJVFlfVEFCTEVTIDAKICNlbHNlCiAjZGVmaW5lIEFDQ0VTU0lCSUxJVFlf
VEFCTEVTIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tCmluZGV4IGFjYmMyNWYuLmM3NWU4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNzEs
NyArNzEsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgICAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9IE5TQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkTm90aWZp
Y2F0aW9uOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFYQXV0b2NvcnJlY3Rpb25PY2N1cmVkOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlv
biA9IEAiQVhBdXRvY29ycmVjdGlvbk9jY3VycmVkIjsKICAgICAgICAgICAgIGJyZWFrOwogI2Vs
c2UKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgICAgICBj
YXNlIEFYUm93Q291bnRDaGFuZ2VkOgogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNB
Y2Nlc3NpYmlsaXR5Um93Q291bnRDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAgICAgICAgYnJl
YWs7Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgY2FzZSBBWFJvd0V4cGFuZGVkOgogICAgICAg
ICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3NpYmlsaXR5Um93RXhwYW5kZWROb3RpZmlj
YXRpb247CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRv
ck1hYy5tbQppbmRleCBjNDJjNjIzLi5hNzg2NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQ
YXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQpCiAg
ICAgYm9vbCBjaG9vc2VQbGFpblRleHQ7CiAgICAgCiAgICAgbV9mcmFtZS0+ZWRpdG9yKCktPmNs
aWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCk7Ci0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IHBhc3RlYm9hcmQtPmRvY3VtZW50RnJhZ21lbnQobV9mcmFtZSwgcmFuZ2UsIGFsbG93UGxh
aW5UZXh0LCBjaG9vc2VQbGFpblRleHQpOwogICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNl
cnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCiAg
ICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3Rl
Ym9hcmQocGFzdGVib2FyZCksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOGIyMjA0ZC4uZDBmZjIzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU3LDcgKzU3LDcgQEAKICNp
bmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogI2luY2x1
ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCkBAIC03Niw3ICs3Niw3IEBA
IE1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSkKICAg
ICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dhaXRpbmdGb3JD
b250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkK
LSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAh
UExBVEZPUk0oSU9TKQogICAgICwgbV9maWx0ZXIoMCkKICNlbmRpZgogewpAQCAtODQsNyArODQs
NyBAQCBNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUp
CiAKIE1haW5SZXNvdXJjZUxvYWRlcjo6fk1haW5SZXNvdXJjZUxvYWRlcigpCiB7Ci0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JN
KElPUykKICAgICBBU1NFUlQoIW1fZmlsdGVyKTsKICNlbmRpZgogfQpAQCAtMTM0LDcgKzEzNCw3
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiAgICAgLy8gbGlrZSBjYWxsaW5nIERPTVdpbmRvdzo6cHJpbnQoKSwgZHVyaW5n
IHdoaWNoIGEgaGFsZi1jYW5jZWxlZCBsb2FkIGNvdWxkIHRyeSB0byBmaW5pc2guCiAgICAgZG9j
dW1lbnRMb2FkZXIoKS0+bWFpblJlY2VpdmVkRXJyb3IoZXJyb3IpOwogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JNKElPUykK
ICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKG1fZmlsdGVyKTsK
ICAgICAgICAgbV9maWx0ZXIgPSAwOwpAQCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikK
ICAgICB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHIudXJsKCkucHJvdG9jb2xJ
cygiaHR0cHMiKSAmJiB3a0ZpbHRlcklzTWFuYWdlZFNlc3Npb24oKSkKICAgICAgICAgbV9maWx0
ZXIgPSB3a0ZpbHRlckNyZWF0ZUluc3RhbmNlKHIubnNVUkxSZXNwb25zZSgpKTsKICNlbmRpZgpA
QCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcKICAgICBBU1NFUlQoIWRl
ZmVyc0xvYWRpbmcoKSk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAm
JiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fZmlsdGVy
KSB7CiAgICAgICAgIEFTU0VSVCghd2tGaWx0ZXJXYXNCbG9ja2VkKG1fZmlsdGVyKSk7CiAgICAg
ICAgIGNvbnN0IGNoYXIqIGJsb2NrZWREYXRhID0gd2tGaWx0ZXJBZGREYXRhKG1fZmlsdGVyLCBk
YXRhLCAmbGVuZ3RoKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25n
CiAKICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNv
ZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKFdlYkZp
bHRlckV2YWx1YXRvciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKICAgICAgICAgLy8gSWYgd2UgZ290
IGhlcmUsIGl0IG1lYW5zIHdlIGtub3cgaWYgd2Ugd2VyZSBibG9ja2VkIG9yIG5vdC4gSWYgd2Ug
d2VyZSBibG9ja2VkLCB3ZSdyZQogICAgICAgICAvLyBkb25lIGxvYWRpbmcgdGhlIHBhZ2UgYWx0
b2dldGhlci4gRWl0aGVyIHdheSwgd2UgZG9uJ3QgbmVlZCB0aGUgZmlsdGVyIGFueW1vcmUuCkBA
IC00OTYsNyArNDk2LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoZG91YmxlIGZpbmlzaFRpbWUpCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCh0aGlzKTsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGRsID0gZG9jdW1lbnRMb2Fk
ZXIoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIGludCBs
ZW5ndGg7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEgPSB3a0ZpbHRlckRhdGFDb21wbGV0ZSht
X2ZpbHRlciwgJmxlbmd0aCk7CkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiAKIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotI2lm
IFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYmICFQTEFU
Rk9STShJT1MpCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZSht
X2ZpbHRlcik7CiAgICAgICAgIG1fZmlsdGVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuaAppbmRleCBmMDA1ZGRjLi42MDlkYTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5j
bHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRG
T1JNKElPUykKIE9CSkNfQ0xBU1MgV2ViRmlsdGVyRXZhbHVhdG9yOwogI2VuZGlmCiAKQEAgLTEx
Miw3ICsxMTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV93YWl0aW5n
Rm9yQ29udGVudFBvbGljeTsKICAgICAgICAgZG91YmxlIG1fdGltZU9mTGFzdERhdGFSZWNlaXZl
ZDsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgw
ICYmICFQTEFURk9STShJT1MpCiAgICAgICAgIFdlYkZpbHRlckV2YWx1YXRvciAqbV9maWx0ZXI7
CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BbHRlcm5h
dGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmgKaW5kZXggNjcyNDVlNi4uY2Q3NDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Fs
dGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC0zMSwxMCArMzEsMTAgQEAKICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAog
Ly8gU29tZSBwbGF0Zm9ybXMgcHJvdmlkZSBVSSBmb3Igc3VnZ2VzdGluZyBhbHRlcm5hdGl2ZSBk
aWN0YXRpb24gdGV4dC4KICNkZWZpbmUgV1RGX1VTRV9ESUNUQVRJT05fQUxURVJOQVRJVkVTIDEK
LSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTElPTikKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA2ZTE4OGZkLi4z
YThhOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwCkBAIC03MDMsNyArNzAzLDcgQEAgc3RhdGljIGJvb2wgc2VsZWN0aW9uQ29udGFpbnNQb3Nz
aWJsZVdvcmQoRnJhbWUqIGZyYW1lKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPT0gMTA2MAogI2RlZmluZSBJTkNMVURFX1NQT1RMSUdIVF9DT05URVhUX01FTlVf
SVRFTSAxCiAjZWxzZQogI2RlZmluZSBJTkNMVURFX1NQT1RMSUdIVF9DT05URVhUX01FTlVfSVRF
TSAwCkBAIC05MzQsNyArOTM0LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVs
YXRlKCkKICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oSWdub3JlR3JhbW1hckl0
ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgICAg
ICAgICBoYXZlQ29udGV4dE1lbnVJdGVtc0Zvck1pc3NwZWxsaW5nT3JHcmFtbWVyID0gdHJ1ZTsK
LSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUg
c3RyaW5nIHdhcyBhdXRvY29ycmVjdGVkLCBnZW5lcmF0ZSBhIGNvbnRleHR1YWwgbWVudSBpdGVt
IGFsbG93aW5nIGl0IHRvIGJlIGNoYW5nZWQgYmFjay4KICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIHJlcGxhY2VkU3RyaW5nID0gbV9oaXRUZXN0UmVzdWx0LnJlcGxhY2VkU3RyaW5nKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tCmluZGV4IDIzYjc5MjUuLjdkMGRlMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NldHRpbmdzTWFjLm1tCkBAIC02OSw3ICs2OSw3IEBA
IHZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKCkKICAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBUX0hBTkdVTCk7
CiAgICAgc2V0U2VyaWZGb250RmFtaWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9I
QU5HVUwpOwogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA4MAogICAgIHNldEZpeGVkRm9udEZhbWlseSgiQXBwbGUgU0QgR290aGlj
IE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKICAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJBcHBs
ZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9IQU5HVUwpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggOWM0YmRmMy4uYWU3MTU3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTcy
LDcgKzcyLDcgQEAgc3RhdGljIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5nIGZv
cm1hdCwgLi4uKQogI2VuZGlmCiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIVBMQVRGT1JNKE1B
QykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBzdGF0aWMgU3Ry
aW5nIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKGNvbnN0IFN0cmluZyYgb3JpZ2lu
YWwpCiB7CiAgICAgaWYgKG9yaWdpbmFsLmlzRW1wdHkoKSkKQEAgLTI0NCw3ICsyNDQsNyBAQCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1lKEFkb3B0Q0YsIHdrQ29weURlZmF1bHRTZWFyY2hQcm92
aWRlckRpc3BsYXlOYW1lKCkpOwogICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VC
X1VJX1NUUklORygiU2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVy
IGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQ
cm92aWRlck5hbWUuZ2V0KCkpOwogI2Vsc2UKQEAgLTI1NCw3ICsyNTQsNyBAQCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xv
b2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKQogewotI2lmIGRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiAgICAg
VU5VU0VEX1BBUkFNKHNlbGVjdGVkU3RyaW5nKTsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
TG9vayBVcCBpbiBEaWN0aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0IG1l
bnUgaXRlbSIpOwogI2Vsc2UKQEAgLTc1NSw3ICs3NTUsNyBAQCBTdHJpbmcgaHRtbFNlbGVjdE11
bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50KQogU3RyaW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5n
JiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICNpZiBVU0UoQ0YpCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7
CiAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5
Q3VycmVudCgpKTsKICAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRl
cihBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51
bWJlckZvcm1hdHRlckRlY2ltYWxTdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggMTVlNjgwOC4uZDExMTk1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3Bw
CkBAIC00Miw3ICs0Miw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6TWVtb3J5UHJlc3N1cmVI
YW5kbGVyKCkKIHsKIH0KIAotI2lmICFQTEFURk9STShNQUMpIHx8IGRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSB8fCBQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKE1BQykgfHwg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwIHx8IFBMQVRGT1JNKElPUykK
IHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxsKCkgeyB9CiAKIHZvaWQgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjp1bmluc3RhbGwoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbQppbmRleCBiNDdmOTUzLi4zNWEwNGRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1t
CkBAIC00OSw3ICs0OSw3IEBAIFBhc3NPd25QdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxh
dGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBmbG9hdCBzYW1wCiAgICAgCiAgICAgTlNC
dW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV2ViQ29yZUF1ZGlvQnVu
ZGxlQ2xhc3MgY2xhc3NdXTsKICAgICBOU1VSTCAqYXVkaW9GaWxlVVJMID0gW2J1bmRsZSBVUkxG
b3JSZXNvdXJjZTpbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6bmFtZV0gd2l0aEV4dGVu
c2lvbjpAIndhdiIgc3ViZGlyZWN0b3J5OkAiYXVkaW8iXTsKLSNpZiBkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNjAKICAgICBOU0RhdGFSZWFkaW5nT3B0aW9ucyBvcHRpb25zID0gTlNEYXRhUmVhZGluZ01h
cHBlZDsKICNlbHNlCiAgICAgTlNEYXRhUmVhZGluZ09wdGlvbnMgb3B0aW9ucyA9IE5TRGF0YVJl
YWRpbmdNYXBwZWRJZlNhZmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaAppbmRleCA1ZTM2ZmYzLi4wYWVjZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAKIAogdHlwZWRlZiBzdHJ1
Y3QgQ0dDb250ZXh0KiBDR0NvbnRleHRSZWY7CiAKLSNkZWZpbmUgVVNFX0NHX1NIQURJTkcgZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2RlZmluZSBVU0VfQ0dfU0hBRElORyAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTApCiAKICNp
ZiBVU0VfQ0dfU0hBRElORwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaGFkaW5nKiBDR1NoYWRpbmdSZWY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhMjYxNDFkLi41OGQ3OTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmwp
CiAKICAgICBbb3B0aW9ucy5nZXQoKSBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6
QVZBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uRm9yYmlkUmVtb3RlUmVmZXJlbmNlVG9Mb2NhbCB8
IEFWQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbkZvcmJpZExvY2FsUmVmZXJlbmNlVG9SZW1vdGVd
IGZvcktleTpBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5XTsKIAotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElP
TikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBSZXRh
aW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gaGVhZGVyRmllbGRzKEFkb3B0TlMsIFtbTlNNdXRh
YmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogCiAgICAgU3RyaW5nIHJlZmVycmVyID0gcGxh
eWVyKCktPnJlZmVycmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBkZTQwNzI1Li5iNTM3MmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgYm9vbCBhbmltYXRpb25I
YXNTdGVwc1RpbWluZ0Z1bmN0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3Qs
CiBzdGF0aWMgaW5saW5lIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZEZpbHRlckFuaW1hdGlvbnMo
KQogewogLy8gPHJkYXI6Ly9wcm9ibGVtLzEwOTA3MjUxPiAtIFdlYktpdDIgZG9lc24ndCBzdXBw
b3J0IENBIGFuaW1hdGlvbnMgb2YgQ0kgZmlsdGVycyBvbiBMaW9uIGFuZCBiZWxvdwotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TElPTikKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA4MAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xODgzLDcgKzE4ODMsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3Jt
QW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZQogICAgIGludCBudW1B
bmltYXRpb25zID0gaXNNYXRyaXhBbmltYXRpb24gPyAxIDogb3BlcmF0aW9ucy0+c2l6ZSgpOwog
CiAgICAgYm9vbCByZXZlcnNlQW5pbWF0aW9uTGlzdCA9IHRydWU7Ci0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhUExBVEZPUk0oV0lOKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MCAmJiAhUExBVEZPUk0oV0lOKQogICAgICAgICAv
LyBPbGQgdmVyc2lvbnMgb2YgQ29yZSBBbmltYXRpb24gYXBwbHkgYW5pbWF0aW9ucyBpbiByZXZl
cnNlIG9yZGVyICg8cmRhcjovL3Byb2JsZW0vNzA5NTYzOD4pIHNvIHdlIG5lZWQgdG8gZmxpcCB0
aGUgbGlzdC4KICAgICAgICAgLy8gdG8gYmUgbm9uLWFkZGl0aXZlLiBGb3IgYmluYXJ5IGNvbXBh
dGliaWxpdHksIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgQ29yZSBBbmltYXRpb24gcHJlc2VydmVz
IHRoaXMgYmVoYXZpb3IgZm9yIGFwcGxpY2F0aW9ucyBsaW5rZWQKICAgICAgICAgLy8gb24gb3Ig
YmVmb3JlIFNub3cgTGVvcGFyZC4KQEAgLTIzOTIsNyArMjM5Miw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldp
ZHRoKQogRmxvYXRTaXplIEdyYXBoaWNzTGF5ZXJDQTo6Y29uc3RyYWluZWRTaXplKCkgY29uc3QK
IHsKICAgICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplID0gbV9zaXplOwotI2lmIGRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPT0gMTA2MAogICAgIGZsb2F0IHRpbGVDb2x1bW5zID0gY2VpbGYobV9zaXplLndpZHRo
KCkgLyBrVGlsZWRMYXllclRpbGVTaXplKTsKICAgICBmbG9hdCB0aWxlUm93cyA9IGNlaWxmKG1f
c2l6ZS5oZWlnaHQoKSAvIGtUaWxlZExheWVyVGlsZVNpemUpOwogICAgIGRvdWJsZSBudW1UaWxl
cyA9IHRpbGVDb2x1bW5zICogdGlsZVJvd3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDAwMmI3YTAuLjY3ZTI0
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oCkBAIC0yMTMsNyArMjEzLDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJp
bnRUcmVlKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgdm9pZCBzeW5jaHJvbm91c2x5RGlz
cGxheVRpbGVzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUxheWVyTWFjLm1tCmluZGV4IDNhN2FjNzguLjg0MGJjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5tbQpAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgZG91YmxlIG1lZGlhVGltZVRvQ3VycmVu
dFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKIAogQGVuZAogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogQGludGVyZmFjZSBDQVRpbGVkTGF5ZXIoR3JhcGhpY3NMYXllckNBUHJpdmF0ZSkKIC0g
KHZvaWQpZGlzcGxheUluUmVjdDooQ0dSZWN0KXIgbGV2ZWxPZkRldGFpbDooaW50KWxvZCBvcHRp
b25zOihOU0RpY3Rpb25hcnkgKilkaWN0OwogLSAoQk9PTCljYW5EcmF3Q29uY3VycmVudGx5OwpA
QCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRpYyBkb3VibGUgbWVkaWFUaW1lVG9DdXJyZW50VGltZShD
RlRpbWVJbnRlcnZhbCB0KQogCiBAaW50ZXJmYWNlIENBTGF5ZXIoUHJpdmF0ZSkKIC0gKHZvaWQp
c2V0Q29udGVudHNDaGFuZ2VkOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIC0gKHZvaWQp
c2V0QWNjZWxlcmF0ZXNEcmF3aW5nOihCT09MKWZsYWc7CiAtIChCT09MKWFjY2VsZXJhdGVzRHJh
d2luZzsKICNlbmRpZgpAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpz
ZXRNYXNrc1RvQm91bmRzKGJvb2wgdmFsdWUpCiAKIGJvb2wgUGxhdGZvcm1DQUxheWVyOjphY2Nl
bGVyYXRlc0RyYXdpbmcoKSBjb25zdAogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgYWNjZWxlcmF0ZXNEcmF3aW5nXTsKICNlbHNlCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNTYzLDcgKzU2Myw3IEBAIGJvb2wgUGxhdGZvcm1DQUxheWVyOjph
Y2NlbGVyYXRlc0RyYXdpbmcoKSBjb25zdAogCiB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0QWNj
ZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nKQogewotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9s
YXllci5nZXQoKSBzZXRBY2NlbGVyYXRlc0RyYXdpbmc6YWNjZWxlcmF0ZXNEcmF3aW5nXTsKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC05MTAsNyArOTEwLDcgQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXI6OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiAKIGZsb2F0
IFBsYXRmb3JtQ0FMYXllcjo6Y29udGVudHNTY2FsZSgpIGNvbnN0CiB7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgIHJldHVybiBbbV9sYXllci5nZXQoKSBjb250ZW50c1NjYWxlXTsK
ICNlbHNlCiAgICAgcmV0dXJuIDE7CkBAIC05MTksNyArOTE5LDcgQEAgZmxvYXQgUGxhdGZvcm1D
QUxheWVyOjpjb250ZW50c1NjYWxlKCkgY29uc3QKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNl
dENvbnRlbnRzU2NhbGUoZmxvYXQgdmFsdWUpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX2xheWVyLmdldCgpIHNl
dENvbnRlbnRzU2NhbGU6dmFsdWVdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAg
LTkzNyw3ICs5MzcsNyBAQCBUaWxlZEJhY2tpbmcqIFBsYXRmb3JtQ0FMYXllcjo6dGlsZWRCYWNr
aW5nKCkKICAgICByZXR1cm4gW3RpbGVDYWNoZUxheWVyIHRpbGVkQmFja2luZ107CiB9CiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c3luY2hyb25v
dXNseURpc3BsYXlUaWxlc0luUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYg
KG1fbGF5ZXJUeXBlICE9IExheWVyVHlwZVdlYlRpbGVkTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQppbmRleCA1OWQ4
YjFmLi42NTY4MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9tYWMvVGlsZUNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9UaWxlQ2FjaGUubW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIEBpbnRlcmZhY2UgQ0FMYXll
ciAoV2ViQ0FMYXllckRldGFpbHMpCiAtICh2b2lkKXNldEFjY2VsZXJhdGVzRHJhd2luZzooQk9P
TClmbGFnOwogQGVuZApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgVGlsZUNhY2hlOjpzZXRTY2Fs
ZShDR0Zsb2F0IHNjYWxlKQogICAgIGlmIChtX3NjYWxlID09IHNjYWxlICYmIG1fZGV2aWNlU2Nh
bGVGYWN0b3IgPT0gZGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAgIHJldHVybjsKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBWZWN0b3I8RmxvYXRSZWN0PiBkaXJ0eVJlY3RzOwog
CiAgICAgbV9kZXZpY2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFjdG9yOwpAQCAtMTgyLDcg
KzE4Miw3IEBAIHZvaWQgVGlsZUNhY2hlOjpzZXRTY2FsZShDR0Zsb2F0IHNjYWxlKQogCiB2b2lk
IFRpbGVDYWNoZTo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5n
KQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAobV9hY2NlbGVyYXRlc0Ry
YXdpbmcgPT0gYWNjZWxlcmF0ZXNEcmF3aW5nKQogICAgICAgICByZXR1cm47CiAKQEAgLTQwMSw3
ICs0MDEsNyBAQCBSZXRhaW5QdHI8V2ViVGlsZUxheWVyPiBUaWxlQ2FjaGU6OmNyZWF0ZVRpbGVM
YXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0TmFtZTpA
IlRpbGUiXTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFtsYXll
ci5nZXQoKSBzZXRDb250ZW50c1NjYWxlOm1fZGV2aWNlU2NhbGVGYWN0b3JdOwogICAgIFtsYXll
ci5nZXQoKSBzZXRBY2NlbGVyYXRlc0RyYXdpbmc6bV9hY2NlbGVyYXRlc0RyYXdpbmddOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggNzQ4OTQ2OC4uOTcyMzc0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcApAQCAtNTQsMTIgKzU0LDEyIEBACiAKICNpZiBQTEFURk9STShNQUMpIHx8IChQTEFU
Rk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAvLyBCdWls
ZGluZyBvbiAxMC42IG9yIGxhdGVyOiBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtIGlzIGRlZmluZWQg
aW4gdGhlIENHSW50ZXJwb2xhdGlvblF1YWxpdHkgZW51bS4KICNkZWZpbmUgSEFWRV9DR19JTlRF
UlBPTEFUSU9OX01FRElVTSAxCiAjZW5kaWYKIAotI2lmbmRlZiBUQVJHRVRJTkdfTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogLy8gVGFyZ2V0aW5n
IDEwLjYgb3IgbGF0ZXI6IHVzZSBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtLgogI2RlZmluZSBXVEZf
VVNFX0NHX0lOVEVSUE9MQVRJT05fTUVESVVNIDEKICNlbmRpZgpAQCAtMTE4MSw3ICsxMTgxLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6
ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjb24KICAgICBibHVyUmFkaXVzID0gbWluKGJsdXJSYWRp
dXMsIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdCgxMDAwLjApKTsKIAogCi0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKICAgICBpZiAoIWlzQWNj
ZWxlcmF0ZWRDb250ZXh0KCkpIHsKICAgICAgICAgLy8gV29yayBhcm91bmQgPHJkYXI6Ly9wcm9i
bGVtLzU1MzkzODg+IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIG9mZnNldHMgd2lsbCBnZXQgdHJ1bmNh
dGVkCiAgICAgICAgIC8vIHRvIHRoZSBkZXNpcmVkIGludGVnZXIuIEFsc28gc2VlOiA8cmRhcjov
L3Byb2JsZW0vMTAwNTYyNzc+CkBAIC0xNTk4LDcgKzE1OTgsNyBAQCBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBHcmFwaGljc0NvbnRleHQ6OmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSBjb25zdAog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEFsbG93c0ZvbnRTbW9vdGhpbmcoYm9vbCBhbGxvd3NG
b250U21vb3RoaW5nKQogewogICAgIFVOVVNFRF9QQVJBTShhbGxvd3NGb250U21vb3RoaW5nKTsK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZv
cm1Db250ZXh0KCk7CiAgICAgQ0dDb250ZXh0U2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0
LCBhbGxvd3NGb250U21vb3RoaW5nKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA4MTk4MmExLi5l
NTFjNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtNTIsNyArNTIsNyBAQAogI2luY2x1ZGUgPElPU3VyZmFj
ZS9JT1N1cmZhY2UuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA3MAogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2VuZGlmCiAKQEAgLTE4Myw3ICsxODMsNyBAQCBJbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlCiAgICAgbV9jb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKICAg
ICBtX2NvbnRleHQtPnRyYW5zbGF0ZSgwLCAtc2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0
LT5zZXRJc0FjY2VsZXJhdGVkQ29udGV4dChhY2NlbGVyYXRlUmVuZGVyaW5nKTsKLSNpZiBkZWZp
bmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA9PSAxMDcwCiAgICAgbV9kYXRhLm1fbGFzdEZsdXNoVGltZSA9IGN1cnJlbnRUaW1lTVMoKTsK
ICNlbmRpZgogICAgIHN1Y2Nlc3MgPSB0cnVlOwpAQCAtMTk1LDcgKzE5NSw3IEBAIEltYWdlQnVm
ZmVyOjp+SW1hZ2VCdWZmZXIoKQogCiBHcmFwaGljc0NvbnRleHQqIEltYWdlQnVmZmVyOjpjb250
ZXh0KCkgY29uc3QKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDcwCiAgICAgLy8gRm9yY2UgYSBmbHVzaCBp
ZiBsYXN0IGZsdXNoIHdhcyBtb3JlIHRoYW4gMjBtcyBhZ28KICAgICBpZiAobV9jb250ZXh0LT5p
c0FjY2VsZXJhdGVkQ29udGV4dCgpKSB7CiAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSA9IGN1
cnJlbnRUaW1lTVMoKSAtIG1fZGF0YS5tX2xhc3RGbHVzaFRpbWU7CkBAIC0yNTAsNyArMjUwLDcg
QEAgTmF0aXZlSW1hZ2VQdHIgSW1hZ2VCdWZmZXI6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3Rv
cmVDb3B5IGNvcHlCZWhhdmlvcikgY29uc3QKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNL
SU5HX1NUT1JFKQogICAgIGVsc2UgewogICAgICAgICBpbWFnZSA9IHdrSU9TdXJmYWNlQ29udGV4
dENyZWF0ZUltYWdlKGNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCkpOwotI2lmIGRlZmluZWQo
QlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNzAKICAgICAgICAgbV9kYXRhLm1fbGFzdEZsdXNoVGltZSA9IGN1cnJlbnRUaW1lTVMoKTsK
ICNlbmRpZgogICAgIH0KQEAgLTMxMCw3ICszMTAsNyBAQCBQYXNzUmVmUHRyPFVpbnQ4Q2xhbXBl
ZEFycmF5PiBJbWFnZUJ1ZmZlcjo6Z2V0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0IEludFJl
YwogewogICAgIGlmIChtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkpIHsKICAgICAg
ICAgQ0dDb250ZXh0Rmx1c2goY29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKSk7Ci0jaWYgZGVm
aW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA3MAogICAgICAgICBtX2RhdGEubV9sYXN0Rmx1c2hUaW1lID0gY3VycmVudFRpbWVN
UygpOwogI2VuZGlmCiAgICAgfQpAQCAtMzIxLDcgKzMyMSw3IEBAIFBhc3NSZWZQdHI8VWludDhD
bGFtcGVkQXJyYXk+IEltYWdlQnVmZmVyOjpnZXRQcmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0
IEludFJlCiB7CiAgICAgaWYgKG1fY29udGV4dC0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSkgewog
ICAgICAgICBDR0NvbnRleHRGbHVzaChjb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpKTsKLSNp
ZiBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA9PSAxMDcwCiAgICAgICAgIG1fZGF0YS5tX2xhc3RGbHVzaFRpbWUgPSBjdXJyZW50
VGltZU1TKCk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAKaW5kZXggNWUzYWU3OC4u
NjQ5ZDliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcApAQCAtNjIsNyArNjIsNyBAQCBJbWFnZUJ1ZmZl
ckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJikKIAogI2lmIFVTRShBQ0NFTEVS
QVRFKQogCi0jaWZuZGVmIFRBUkdFVElOR19TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gMTA3MAogc3RhdGljIGJvb2wgaGF2ZVZJbWFnZVJvdW5kaW5n
RXJyb3JGaXgoKSB7IHJldHVybiB0cnVlOyB9CiAjZWxzZQogLy8gVGhlIHZJbWFnZSB1bnByZW11
bHRpcGx5IHJvdXRpbmUgaGFkIGEgcm91bmRpbmcgYnVnIGJlZm9yZSAxMC42LjcgPHJkYXI6Ly9w
cm9ibGVtLzg2MzE1NDg+CkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBib29sIGhhdmVWSW1hZ2VS
b3VuZGluZ0Vycm9yRml4KCkKICAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSAoR2VzdGFsdChnZXN0
YWx0U3lzdGVtVmVyc2lvbiwgJnZlcnNpb24pID09IG5vRXJyICYmIHZlcnNpb24gPiAweDEwNjYp
OwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0jZW5kaWYgLy8gVEFSR0VUSU5HX1NOT1dfTEVPUEFS
RAorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDcwCiAKICNp
ZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQogc3RhdGljIHZvaWQgY29udmVy
dFNjYW5saW5lKHZvaWQqIGRhdGEsIHNpemVfdCB0aWxlTnVtYmVyLCBib29sIHByZW11bHRpcGx5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJEYXRhQ0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyRGF0YUNHLmgKaW5kZXggNjIzM2M2Yy4uZWFiZTE1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oCkBA
IC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9VaW50OENsYW1wZWRBcnJheS5oPgogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpKQorI2lmIChQTEFURk9STShNQUMpICYmIFVTRShDQSkgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwKQogI2RlZmluZSBXVEZfVVNFX0lPU1VSRkFD
RV9DQU5WQVNfQkFDS0lOR19TVE9SRSAxCiAjZW5kaWYKIApAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAgICAgQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3JkT3ZlcmZsb3c+IG1fYnl0ZXNQZXJSb3c7
CiAgICAgQ0dDb2xvclNwYWNlUmVmIG1fY29sb3JTcGFjZTsKICAgICBSZXRhaW5QdHI8SU9TdXJm
YWNlUmVmPiBtX3N1cmZhY2U7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA3MAogICAgIG11dGFibGUgZG91Ymxl
IG1fbGFzdEZsdXNoVGltZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCmluZGV4IGZlZDkxMWEuLjk5N2Y0YmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCkBAIC0yNjks
NyArMjY5LDcgQEAgdm9pZCBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjdHh0
LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdAogICAgIC8vIEZJWE1FOiBXZSBjYW5u
b3QgdXNlIENHQ29udGV4dERyYXdUaWxlZEltYWdlIHdpdGggc2NhbGVkIHRpbGVzIG9uIExlb3Bh
cmQsIGJlY2F1c2UgaXQgc3VmZmVycyBmcm9tIHJvdW5kaW5nIGVycm9ycy4gIFNub3cgTGVvcGFy
ZCBpcyBvay4KICAgICBmbG9hdCBzY2FsZWRUaWxlV2lkdGggPSB0aWxlUmVjdC53aWR0aCgpICog
bmFycm93UHJlY2lzaW9uVG9GbG9hdChwYXR0ZXJuVHJhbnNmb3JtLmEoKSk7CiAgICAgZmxvYXQg
dyA9IENHSW1hZ2VHZXRXaWR0aCh0aWxlSW1hZ2UpOwotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBpZiAo
dyA9PSBzaXplKCkud2lkdGgoKSAmJiBoID09IHNpemUoKS5oZWlnaHQoKSAmJiBzY2FsZWRUaWxl
V2lkdGggPT0gdGlsZVJlY3Qud2lkdGgoKSAmJiBzY2FsZWRUaWxlSGVpZ2h0ID09IHRpbGVSZWN0
LmhlaWdodCgpKQogI2Vsc2UKICAgICBpZiAodyA9PSBzaXplKCkud2lkdGgoKSAmJiBoID09IHNp
emUoKS5oZWlnaHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKaW5kZXggNDMzNTM2NS4uOWE5ODc1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgSW1hZ2VTb3VyY2U6On5JbWFnZVNvdXJjZSgpCiAKIHZvaWQg
SW1hZ2VTb3VyY2U6OmNsZWFyKGJvb2wgZGVzdHJveUFsbEZyYW1lcywgc2l6ZV90LCBTaGFyZWRC
dWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpCisjaWYgIVBMQVRGT1JNKE1BQykgfHwgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgLy8gUmVjZW50IHZlcnNpb25zIG9mIEltYWdlSU8g
ZGlzY2FyZCBwcmV2aW91c2x5IGRlY29kZWQgaW1hZ2UgZnJhbWVzIGlmIHRoZSBjbGllbnQKICAg
ICAvLyBhcHBsaWNhdGlvbiBubyBsb25nZXIgaG9sZHMgcmVmZXJlbmNlcyB0byB0aGVtLCBzbyB0
aGVyZSdzIG5vIG5lZWQgdG8gdGhyb3cgYXdheQogICAgIC8vIHRoZSBkZWNvZGVyIHVubGVzcyB3
ZSdyZSBleHBsaWNpdGx5IGFza2VkIHRvIGRlc3Ryb3kgYWxsIG9mIHRoZSBmcmFtZXMuCkBAIC0x
MTYsNyArMTE2LDcgQEAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBpbWFnZVNvdXJjZU9wdGlvbnMo
SW1hZ2VTb3VyY2U6OlNob3VsZFNraXBNZXRhZGF0YSBza2lwTWUKICAgICBpZiAoIW9wdGlvbnMp
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbnVtT3B0aW9ucyA9IDM7CiAKLSNpZiBkZWZpbmVk
KEJVSUxESU5HX09OX0xJT04pIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAx
MDcwCiAgICAgICAgIC8vIExpb24gYW5kIFNub3cgTGVvcGFyZCBvbmx5IHJldHVybiBPcmllbnRh
dGlvbiB3aGVuIGtDR0ltYWdlU291cmNlU2tpcE1ldGFEYXRhIGlzIGZhbHNlLAogICAgICAgICAv
LyBhbmQgaW5jb3JyZWN0bHkgcmV0dXJuIGNhY2hlZCBtZXRhZGF0YSBpZiBhbiBpbWFnZSBpcyBx
dWVyaWVkIG9uY2Ugd2l0aCBrQ0dJbWFnZVNvdXJjZVNraXBNZXRhRGF0YSB0cnVlCiAgICAgICAg
IC8vIGFuZCB0aGVuIHN1YnNlcXVlbnRseSB3aXRoIGtDR0ltYWdlU291cmNlU2tpcE1ldGFEYXRh
IGZhbHNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5j
cHAKaW5kZXggNmNjOTM3OC4uZTdkZWUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCkBAIC0xNzUsNyArMTc1LDcgQEAgRmxvYXRSZWN0IFBh
dGg6OmJvdW5kaW5nUmVjdCgpIGNvbnN0CiAgICAgLy8gZG9lcyBub3QsIGJ1dCBvbmx5IGV4aXN0
cyBvbiAxMC42IGFuZCBhYm92ZS4KIAogICAgIENHUmVjdCBib3VuZCA9IENHUmVjdFplcm87Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBib3VuZCA9IENHUGF0
aEdldFBhdGhCb3VuZGluZ0JveChtX3BhdGgpOwogI2Vsc2UKICAgICBib3VuZCA9IENHUGF0aEdl
dEJvdW5kaW5nQm94KG1fcGF0aCk7CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBQYXRoOjphZGRB
cmNUbyhjb25zdCBGbG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYgcDIsIGZsb2F0IHJh
ZGl1cykKIAogdm9pZCBQYXRoOjpwbGF0Zm9ybUFkZFBhdGhGb3JSb3VuZGVkUmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgRmxv
YXRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0UmFkaXVz
LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKQogewotI2lmIFBMQVRGT1JNKE1B
QykgJiYgKCFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBib29sIGVxdWFsV2lkdGhzID0gKHRvcExlZnRS
YWRpdXMud2lkdGgoKSA9PSB0b3BSaWdodFJhZGl1cy53aWR0aCgpICYmIHRvcFJpZ2h0UmFkaXVz
LndpZHRoKCkgPT0gYm90dG9tTGVmdFJhZGl1cy53aWR0aCgpICYmIGJvdHRvbUxlZnRSYWRpdXMu
d2lkdGgoKSA9PSBib3R0b21SaWdodFJhZGl1cy53aWR0aCgpKTsKICAgICBib29sIGVxdWFsSGVp
Z2h0cyA9ICh0b3BMZWZ0UmFkaXVzLmhlaWdodCgpID09IGJvdHRvbUxlZnRSYWRpdXMuaGVpZ2h0
KCkgJiYgYm90dG9tTGVmdFJhZGl1cy5oZWlnaHQoKSA9PSB0b3BSaWdodFJhZGl1cy5oZWlnaHQo
KSAmJiB0b3BSaWdodFJhZGl1cy5oZWlnaHQoKSA9PSBib3R0b21SaWdodFJhZGl1cy5oZWlnaHQo
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQppbmRleCBmMzBiMTgxLi41MTY4NjM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250
UGxhdGZvcm1EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCkBAIC01OSwxMyArNTksMTMgQEAgRm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgZmxvYXQgc2l6
ZSwgYm9vbCBpc1ByaW50ZXJGb24KICAgICBDR0ZvbnRSZWYgY2dGb250ID0gMDsKICAgICBsb2Fk
Rm9udChuc0ZvbnQsIHNpemUsIG1fZm9udCwgY2dGb250KTsKICAgICAKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gRklY
TUU6IENocm9taXVtOiBUaGUgZm9sbG93aW5nIGNvZGUgaXNuJ3QgY29ycmVjdCBmb3IgdGhlIENo
cm9taXVtIHBvcnQgc2luY2UgdGhlIHNhbmRib3ggbWlnaHQKICAgICAvLyBoYXZlIGJsb2NrZWQg
Zm9udCBsb2FkaW5nLCBpbiB3aGljaCBjYXNlIHdlJ2xsIG9ubHkgaGF2ZSB0aGUgcmVhbCBsb2Fk
ZWQgZm9udCBmaWxlIGFmdGVyIHRoZSBjYWxsIHRvIGxvYWRGb250KCkuCiAgICAgewogICAgICAg
ICBDVEZvbnRTeW1ib2xpY1RyYWl0cyB0cmFpdHMgPSBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0
b0NURm9udFJlZihtX2ZvbnQpKTsKICAgICAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHRyYWl0
cyAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0OwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElP
UykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRG
T1JNKElPUykKICAgICAgICAgbV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2UgPSB0cmFpdHMgJiBr
Q1RGb250Q29tcG9zaXRlVHJhaXQ7CiAjZW5kaWYKICAgICB9CkBAIC0xNTAsMTEgKzE1MCwxMSBA
QCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQogI2VuZGlmCiAg
ICAgCiAgICAgbV9jZ0ZvbnQuYWRvcHRDRihjZ0ZvbnQpOwotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICB7CiAgICAgICAgIENU
Rm9udFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKHRvQ1RG
b250UmVmKG1fZm9udCkpOwogICAgICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gdHJhaXRzICYg
a0NURm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICBtX2lzQ29tcG9zaXRlRm9udFJlZmVy
ZW5jZSA9IHRyYWl0cyAmIGtDVEZvbnRDb21wb3NpdGVUcmFpdDsKICNlbmRpZgogICAgIH0KQEAg
LTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgYm9vbCBjYW5TZXRDYXNjYWRlTGlzdEZvckN1c3RvbUZv
bnQoKQogICAgIH0KIAogICAgIHJldHVybiBzeXN0ZW1WZXJzaW9uID49IDB4MTA2MDsKLSNlbGlm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjZWxpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNjAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCBmMmI4NmIyLi5lM2JjNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTYyNCw3ICsxNjI0LDcgQEAgYm9vbCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzRnVsbHNjcmVlbigpIGNv
bnN0CiB7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS83Mzg5OTQ1PgogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IGE5MzI0ZDMuLmZlMzIzOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKLSNp
ZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDUwCiAvLyBVbmRlZmluZWQgd2hlbiBjb21waWxpbmcgYWdhaW5zIHRo
ZSAxMC41IFNESy4KICNkZWZpbmUga0NUVmVyc2lvbk51bWJlcjEwXzYgMHgwMDAzMDAwMAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTUzMDQ1
My4uOTcxNzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQpA
QCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjZW5kaWYK
IAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID09IDEwNTAKIC8vIFRoZSBmb2xsb3dpbmcgc3ltYm9scyBhcmUgU1BJ
IGluIDEwLjUuCiBleHRlcm4gIkMiIHsKIHZvaWQgQ1RSdW5HZXRBZHZhbmNlcyhDVFJ1blJlZiBy
dW4sIENGUmFuZ2UgcmFuZ2UsIENHU2l6ZSBidWZmZXJbXSk7CkBAIC0yMTgsNyArMjE4LDcgQEAg
dm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFy
YWN0ZXJzQ29yZVRleHQoY29uc3QgVUMKICAgICAgICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBs
dHJUeXBlc2V0dGVyT3B0aW9ucyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBvcHRpb25LZXlzLCBsdHJPcHRpb25WYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgob3B0aW9u
S2V5cyksICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpOwogICAgICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHJ0
bFR5cGVzZXR0ZXJPcHRpb25zID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG9wdGlvbktleXMsIHJ0bE9wdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChvcHRpb25L
ZXlzKSwgJmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcyk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0g
eyBjcCwgbGVuZ3RoLCBzdHJpbmdBdHRyaWJ1dGVzLmdldCgpIH07CiAgICAgICAgIFJldGFpblB0
cjxDVFR5cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIoQWRvcHRDRiwgd2tDcmVhdGVDVFR5cGVzZXR0
ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucygmcHJvdmlkZVN0cmluZ0FuZEF0dHJpYnV0
ZXMsIDAsICZpbmZvLCBtX3J1bi5sdHIoKSA/IGx0clR5cGVzZXR0ZXJPcHRpb25zIDogcnRsVHlw
ZXNldHRlck9wdGlvbnMpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQppbmRleCA5MWRkNDI2Li40OWU4MDk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2Fj
aGVNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUZvbnRDYWNo
ZSh2b2lkKikKICAgICBmb250Q2FjaGUoKS0+aW52YWxpZGF0ZSgpOwogfQogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNjAKIHN0YXRpYyB2b2lkIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWRO
b3RpZmljYXRpb25DYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCogb2JzZXJ2
ZXIsIENGU3RyaW5nUmVmIG5hbWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewog
ICAgIEFTU0VSVF9VTlVTRUQob2JzZXJ2ZXIsIG9ic2VydmVyID09IGZvbnRDYWNoZSgpKTsKQEAg
LTY5LDcgKzY5LDcgQEAgc3RhdGljIHZvaWQgZm9udENhY2hlQVRTTm90aWZpY2F0aW9uQ2FsbGJh
Y2soQVRTRm9udE5vdGlmaWNhdGlvbkluZm9SZWYsIHZvaWQqKQogdm9pZCBGb250Q2FjaGU6OnBs
YXRmb3JtSW5pdCgpCiB7CiAgICAgd2tTZXRVcEZvbnRDYWNoZSgpOwotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlv
bkNlbnRlckdldExvY2FsQ2VudGVyKCksIHRoaXMsIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0No
YW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga0NURm9udE1hbmFnZXJSZWdpc3RlcmVkRm9udHND
aGFuZ2VkTm90aWZpY2F0aW9uLCAwLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckRl
bGl2ZXJJbW1lZGlhdGVseSk7CiAjZWxzZQogICAgIC8vIGtDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJl
ZEZvbnRzQ2hhbmdlZE5vdGlmaWNhdGlvbiBkb2VzIG5vdCBleGlzdCBvbiBMZW9wYXJkIGFuZCBl
YXJsaWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IGNmZGRmMzYuLmIxOTI2
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgcHJp
dmF0ZToKIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KQogewotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID09IDEwNTAKICAgICBpZiAobV9hdHNDb250YWluZXIpCiAgICAgICAgIEFU
U0ZvbnREZWFjdGl2YXRlKG1fYXRzQ29udGFpbmVyLCBOVUxMLCBrQVRTT3B0aW9uRmxhZ3NEZWZh
dWx0KTsKICNlbmRpZgpAQCAtMTE5LDcgKzExOSw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEq
IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCiAKICAg
ICBSZXRhaW5QdHI8Q0dGb250UmVmPiBjZ0ZvbnRSZWY7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05f
TEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAg
IFJldGFpblB0cjxDRkRhdGFSZWY+IGJ1ZmZlckRhdGEoQWRvcHRDRiwgYnVmZmVyLT5jcmVhdGVD
RkRhdGEoKSk7CiAgICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBkYXRhUHJvdmlkZXIo
QWRvcHRDRiwgQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoQ0ZEYXRhKGJ1ZmZlckRhdGEuZ2V0KCkp
KTsKIApAQCAtMTU3LDcgKzE1Nyw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEqIGNyZWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBidWZmZXIpCiAgICAgICAgIEFUU0Zv
bnREZWFjdGl2YXRlKGNvbnRhaW5lclJlZiwgTlVMTCwga0FUU09wdGlvbkZsYWdzRGVmYXVsdCk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA2MAogCiAgICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSogZm9udEN1c3RvbVBsYXRmb3JtRGF0
YSA9IG5ldyBGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGNvbnRhaW5lclJlZiwgY2dGb250UmVmLmxl
YWtSZWYoKSk7CiAjaWYgVVNFKFNLSUFfT05fTUFDX0NIUk9NSVVNKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQppbmRleCA0YWZiNWZiLi44NGQw
YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1h
Yy5tbQpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgYm9vbCBoYXNCcm9rZW5DVEZvbnRHZXRWZXJ0
aWNhbFRyYW5zbGF0aW9uc0ZvckdseXBocygpCiAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTsKICAg
ICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKLSNlbGlmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2VsaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAg
ICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTExOSw3ICsxMTks
NyBAQCBzdGF0aWMgdm9pZCBzaG93R2x5cGhzV2l0aEFkdmFuY2VzKGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBjb25zdCBTaW1wbGVGb250RGF0YQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IENHQ29udGV4dFNob3dHbHlwaHNXaXRoQWR2YW5jZXMoY29udGV4dCwgZ2x5cGhzLCBhZHZhbmNl
cywgY291bnQpOwogICAgIH0KLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZWxzZSB7CiAgICAgICAgIGlmICghY291bnQpCiAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbQppbmRleCBlMDg1OTFkLi4yOTY2
NmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3Jh
cGhpY3NDb250ZXh0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9HcmFwaGljc0NvbnRleHRNYWMubW0KQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBw
b2ludCwgZmxvYXQgdwogICAgICAgICAgICAgcGF0dGVybkNvbG9yID0gZ3JhbW1hclBhdHRlcm5D
b2xvci5nZXQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgLy8gVG8gc3VwcG9ydCBjb3JyZWN0aW9u
IHBhbmVsLgogICAgICAgICBjYXNlIERvY3VtZW50TWFya2VyQXV0b2NvcnJlY3Rpb25SZXBsYWNl
bWVudExpbmVTdHlsZToKICAgICAgICAgY2FzZSBEb2N1bWVudE1hcmtlckRpY3RhdGlvbkFsdGVy
bmF0aXZlc0xpbmVTdHlsZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBjZDE2
MWEzLi4yZTg0OWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0yNjcsNyAr
MjY3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZShjb25z
dCBTdHJpbmcmIHVybCkKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICptb3ZpZUF0dHJpYnV0ZXMg
PSBjb21tb25Nb3ZpZUF0dHJpYnV0ZXMoKTsgICAgCiAgICAgW21vdmllQXR0cmlidXRlcyBzZXRW
YWx1ZTpjb2NvYVVSTCBmb3JLZXk6UVRNb3ZpZVVSTEF0dHJpYnV0ZV07CiAKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA2MAogICAgIENGRGljdGlvbmFyeVJlZiBwcm94eVNldHRpbmdzID0gQ0ZOZXR3b3Jr
Q29weVN5c3RlbVByb3h5U2V0dGluZ3MoKTsKICAgICBDRkFycmF5UmVmIHByb3hpZXNGb3JVUkwg
PSBDRk5ldHdvcmtDb3B5UHJveGllc0ZvclVSTCgoQ0ZVUkxSZWYpY29jb2FVUkwsIHByb3h5U2V0
dGluZ3MpOwogICAgIEJPT0wgd2lsbFVzZVByb3h5ID0gWUVTOwpAQCAtMzkyLDcgKzM5Miw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWUoTlNVUkwgKnVybCwg
TlNEaWN0aW9uYXJ5ICptb3ZpZUF0dHJpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxlY3RvcjpAc2VsZWN0b3IoZGlkRW5kOikgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpRVE1vdmllRGlkRW5kTm90
aWZpY2F0aW9uIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvYmplY3Q6bV9xdE1vdmllLmdldCgpXTsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOm1fb2Jq
Y09ic2VydmVyLmdldCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxlY3RvcjpAc2VsZWN0b3IobGF5ZXJIb3N0Q2hhbmdlZDopCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpAIldlYktpdExheWVySG9z
dENoYW5nZWQiCkBAIC04NzYsNyArODc2LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtp
dDo6aGFzQXVkaW8oKSBjb25zdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBw
b3J0c0Z1bGxzY3JlZW4oKSBjb25zdAogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgcmV0dXJuIHRy
dWU7CiAjZWxzZQogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNzM4OTk0NT4KQEAgLTkwMyw3
ICs5MDMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRDbG9zZWRDYXB0aW9u
c1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libAogICAgIGlmIChtZXRhRGF0YUF2YWls
YWJsZSgpKSB7CiAgICAgICAgIHdrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyhtX3F0TW92
aWUuZ2V0KCksIGNsb3NlZENhcHRpb25zVmlzaWJsZSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKICAgICBpZiAoY2xvc2VkQ2FwdGlvbnNWaXNpYmxlICYmIG1fcXRWaWRlb0xheWVy
KSB7CiAgICAgICAgIC8vIENhcHRpb25zIHdpbGwgYmUgcmVuZGVyZWQgdXBzaWRlIGRvd24gdW5s
ZXNzIHdlIGZsYWcgdGhlIG1vdmllIGFzIGZsaXBwZWQgKGFnYWluKS4gU2VlIDxyZGFyOi8vNzQw
ODQ0MD4uCiAgICAgICAgIFttX3F0VmlkZW9MYXllci5nZXQoKSBzZXRHZW9tZXRyeUZsaXBwZWQ6
WUVTXTsKQEAgLTEwMDEsNyArMTAwMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OmNhY2hlTW92aWVTY2FsZSgpCiAgICAgTlNTaXplIGluaXRpYWxTaXplID0gTlNaZXJvU2l6ZTsK
ICAgICBOU1NpemUgbmF0dXJhbFNpemUgPSBbW21fcXRNb3ZpZS5nZXQoKSBhdHRyaWJ1dGVGb3JL
ZXk6UVRNb3ZpZU5hdHVyYWxTaXplQXR0cmlidXRlXSBzaXplVmFsdWVdOwogCi0jaWZuZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNjAKICAgICAvLyBRVE1vdmllQ3VycmVudFNpemVBdHRyaWJ1dGUgaXMgbm90IGFsbG93ZWQg
d2l0aCBpbnN0YW5jZXMgb2YgUVRNb3ZpZSB0aGF0IGhhdmUgYmVlbiAKICAgICAvLyBvcGVuZWQg
d2l0aCBRVE1vdmllT3BlbkZvclBsYXliYWNrQXR0cmlidXRlLCBzbyBhc2sgZm9yIHRoZSBkaXNw
bGF5IHRyYW5zZm9ybSBhdHRyaWJ1dGUgaW5zdGVhZC4KICAgICBOU0FmZmluZVRyYW5zZm9ybSAq
ZGlzcGxheVRyYW5zZm9ybSA9IFttX3F0TW92aWUuZ2V0KCkgYXR0cmlidXRlRm9yS2V5OkAiUVRN
b3ZpZVByZWZlcnJlZFRyYW5zZm9ybUF0dHJpYnV0ZSJdOwpAQCAtMTIzNiw3ICsxMjM2LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGlkRW5kKCkKIH0KIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKLSNp
ZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID09IDEwNjAKIHN0YXRpYyBib29sIGxheWVySXNEZXNjZW5kZW50T2Yo
UGxhdGZvcm1MYXllciogY2hpbGQsIFBsYXRmb3JtTGF5ZXIqIGRlc2NlbmRlbnQpCiB7CiAgICAg
aWYgKCFjaGlsZCB8fCAhZGVzY2VuZGVudCkKQEAgLTEyNTMsNyArMTI1Myw3IEBAIHN0YXRpYyBi
b29sIGxheWVySXNEZXNjZW5kZW50T2YoUGxhdGZvcm1MYXllciogY2hpbGQsIFBsYXRmb3JtTGF5
ZXIqIGRlc2NlbmRlbnQpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmxheWVySG9z
dENoYW5nZWQoUGxhdGZvcm1MYXllciogcm9vdExheWVyKQogewotI2lmIGRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PT0gMTA2MAogICAgIGlmICghcm9vdExheWVyKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0
YU1hYy5tbQppbmRleCBkNWQ1NTYwLi5hNjk1NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCkBAIC04
Miw3ICs4Miw3IEBAIHN0YXRpYyBOU1N0cmluZyAqd2ViRmFsbGJhY2tGb250RmFtaWx5KHZvaWQp
CiB9CiAKICNpZiAhRVJST1JfRElTQUJMRUQKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKSB8fCAoIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSkKKyNpZiBkZWZpbmVkKF9fTFA2NF9fKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyBOU1N0cmluZyogcGF0aEZyb21Gb250KE5TRm9udCop
CiB7CiAgICAgLy8gRk1HZXRBVFNGb250UmVmRnJvbUZvbnQgaXMgbm90IGF2YWlsYWJsZS4gQXMg
cGF0aEZyb21Gb250IGlzIG9ubHkgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLApAQCAtMjMz
LDcgKzIzMyw3IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCgpCiAgICAgTlNT
dHJpbmcgKmZhbWlseU5hbWUgPSBbbV9wbGF0Zm9ybURhdGEuZm9udCgpIGZhbWlseU5hbWVdOwog
ICAgIGlmIChbZmFtaWx5TmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJUaW1lcyJdIHx8IFtmYW1pbHlO
YW1lIGlzRXF1YWxUb1N0cmluZzpAIkhlbHZldGljYSJdIHx8IFtmYW1pbHlOYW1lIGlzRXF1YWxU
b1N0cmluZzpAIkNvdXJpZXIiXSkKICAgICAgICAgYXNjZW50ICs9IGZsb29yZigoKGFzY2VudCAr
IGRlc2NlbnQpICogMC4xNWYpICsgMC41Zik7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIGVs
c2UgaWYgKFtmYW1pbHlOYW1lIGlzRXF1YWxUb1N0cmluZzpAIkdlZXphIFBybyJdKSB7CiAgICAg
ICAgIC8vIEdlZXphIFBybyBoYXMgZ2x5cGhzIHRoYXQgZHJhdyBzbGlnaHRseSBhYm92ZSB0aGUg
YXNjZW50IG9yIGZhciBiZWxvdyB0aGUgZGVzY2VudC4gQWRqdXN0CiAgICAgICAgIC8vIHRob3Nl
IHZlcnRpY2FsIG1ldHJpY3MgdG8gYmV0dGVyIG1hdGNoIHJlYWxpdHksIHNvIHRoYXQgZGlhY3Jp
dGljcyBhdCB0aGUgYm90dG9tIG9mIG9uZSBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCmluZGV4IGJiMGY0NDQuLjBkMjQzNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQ7CiB9CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiBAaW50ZXJmYWNlIENBTGF5ZXIo
V2ViTGF5ZXJJbnRlcm5hbCkKIC0gKENHQWZmaW5lVHJhbnNmb3JtKWNvbnRlbnRzVHJhbnNmb3Jt
OwogLSAodm9pZClzZXRDb250ZW50c1RyYW5zZm9ybTooQ0dBZmZpbmVUcmFuc2Zvcm0pdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRl
eCA5N2U5ZjI4Li5lMDBhNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1dlYkxheWVyLm1tCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgZHJhd0xheWVyQ29u
dGVudHMoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENBTGF5ZXIgKmxheWVyLCBXZWJDb3JlOjpQbGF0
Zm9ybUNBCiAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQ29udGV4dEdldENUTShj
b250ZXh0KTsKICAgICBUaGVtZU1hYzo6c2V0Rm9jdXNSaW5nQ2xpcFJlY3QodHJhbnNmb3JtLm1h
cFJlY3QoY2xpcEJvdW5kcykpOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIF9f
YmxvY2sgR3JhcGhpY3NDb250ZXh0KiBjdHggPSAmZ3JhcGhpY3NDb250ZXh0OwogCiAgICAgd2tD
QUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKGxheWVyLCBjb250ZXh0LCBe
KENHUmVjdCByZWN0KXsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCmluZGV4
IDY3NTM0NDQuLmQ4MTNiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNw
cApAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgo
R0MzRGNsYW1wZiBkZXB0aCkKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnN5c3RlbUFsbG93c011
bHRpc2FtcGxpbmdPbkFUSUNhcmRzKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShNQUMpCi0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAg
IHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggZDIwODUzMy4uYWMyNGI4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC04NSw3ICs4NSw3
IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkhhbmQ6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vy
c29yID0gW05TQ3Vyc29yIHBvaW50aW5nSGFuZEN1cnNvcl07CiAjZWxzZQogICAgICAgICAvLyBU
aGUgcG9pbnRpbmdIYW5kQ3Vyc29yIGZyb20gTlNDdXJzb3IgZG9lcyBub3QgaGF2ZSBhIHNoYWRv
dyBvbgpAQCAtOTksNyArOTksNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Io
KSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpXYWl0OgotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJCdXN5QnV0Q2xpY2thYmxlIik7CiAj
ZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIndhaXRD
dXJzb3IiLCA3LCA3KTsKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxh
dGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpI
ZWxwOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJIZWxwIik7CiAg
ICAgICAgIGlmIChtX3BsYXRmb3JtQ3Vyc29yKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTcs
NyArMTE3LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAog
ICAgIGNhc2UgQ3Vyc29yOjpNb3ZlOgogICAgIGNhc2UgQ3Vyc29yOjpNaWRkbGVQYW5uaW5nOgot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNb3ZlIik7CiAjZWxzZQog
ICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJzb3IoIm1vdmVDdXJzb3Ii
LCA3LCA3KTsKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IoKSBjb25zdAogCiAgICAgY2FzZSBDdXJzb3I6OkVhc3RSZXNpemU6CiAgICAgY2FzZSBD
dXJzb3I6OkVhc3RQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJSZXNpemVFYXN0Iik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3Jl
YXRlTmFtZWRDdXJzb3IoImVhc3RSZXNpemVDdXJzb3IiLCAxNCwgNyk7CkBAIC0xMzUsNyArMTM1
LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNh
c2UgQ3Vyc29yOjpOb3J0aFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhQYW5uaW5nOgot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aCIpOwog
I2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJub3J0
aFJlc2l6ZUN1cnNvciIsIDcsIDEpOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgQ3Vyc29yOjpl
bnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0
UmVzaXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nOgotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aGVhc3QiKTsKICNlbHNlCiAg
ICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhFYXN0UmVz
aXplQ3Vyc29yIiwgMTQsIDEpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1
cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0UmVz
aXplOgogICAgIGNhc2UgQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9w
bGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aHdlc3QiKTsKICNlbHNlCiAgICAg
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9ydGhXZXN0UmVzaXpl
Q3Vyc29yIiwgMCwgMCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBs
YXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFJlc2l6ZToKICAg
ICBjYXNlIEN1cnNvcjo6U291dGhQYW5uaW5nOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IHdrQ3Vyc29yKCJSZXNpemVTb3V0aCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1
cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJzb3V0aFJlc2l6ZUN1cnNvciIsIDcsIDE0KTsKQEAg
LTE3MSw3ICsxNzEsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25z
dAogCiAgICAgY2FzZSBDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6
U291dGhFYXN0UGFubmluZzoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNv
cigiUmVzaXplU291dGhlYXN0Iik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0g
Y3JlYXRlTmFtZWRDdXJzb3IoInNvdXRoRWFzdFJlc2l6ZUN1cnNvciIsIDE0LCAxNCk7CkBAIC0x
ODAsNyArMTgwLDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QK
IAogICAgIGNhc2UgQ3Vyc29yOjpTb3V0aFdlc3RSZXNpemU6CiAgICAgY2FzZSBDdXJzb3I6OlNv
dXRoV2VzdFBhbm5pbmc6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3Io
IlJlc2l6ZVNvdXRod2VzdCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNy
ZWF0ZU5hbWVkQ3Vyc29yKCJzb3V0aFdlc3RSZXNpemVDdXJzb3IiLCAxLCAxNCk7CkBAIC0xODgs
NyArMTg4LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6V2VzdFJlc2l6ZToKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVzaXplV2VzdCIpOwogI2Vsc2UKICAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0ZU5hbWVkQ3Vyc29yKCJ3ZXN0UmVzaXplQ3Vyc29y
IiwgMSwgNyk7CkBAIC0xOTYsNyArMTk2LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3Jt
Q3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhT
b3V0aFJlc2l6ZToKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiUmVz
aXplTm9ydGhTb3V0aCIpOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IGNyZWF0
ZU5hbWVkQ3Vyc29yKCJub3J0aFNvdXRoUmVzaXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMDUsNyAr
MjA1LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogICAg
IGNhc2UgQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZToKICAgICBjYXNlIEN1cnNvcjo6V2VzdFBhbm5p
bmc6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIlJlc2l6ZUVhc3RX
ZXN0Iik7CiAjZWxzZQogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gY3JlYXRlTmFtZWRDdXJz
b3IoImVhc3RXZXN0UmVzaXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMTMsNyArMjEzLDcgQEAgdm9p
ZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplOgotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAg
bV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aGVhc3RTb3V0aHdlc3QiKTsK
ICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9y
dGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMjEsNyArMjIxLDcgQEAg
dm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEN1cnNvcjo6Tm9ydGhXZXN0U291dGhFYXN0UmVzaXplOgotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJSZXNpemVOb3J0aHdlc3RTb3V0aGVhc3Qi
KTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigi
bm9ydGhXZXN0U291dGhFYXN0UmVzaXplQ3Vyc29yIiwgNywgNyk7CkBAIC0yMzcsNyArMjM3LDcg
QEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEN1cnNvcjo6VmVydGljYWxUZXh0OgotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IFtOU0N1cnNvciBJQmVhbUN1cnNvckZvclZlcnRpY2FsTGF5b3V0XTsKICNl
bHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigidmVydGlj
YWxUZXh0Q3Vyc29yIiwgNywgNyk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBDdXJzb3I6OmVu
c3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1
cnNvcjo6Q2VsbDoKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSB3a0N1cnNvcigiQ2Vs
bCIpOwogICAgICAgICBpZiAobV9wbGF0Zm9ybUN1cnNvcikKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNv
bnN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkNvbnRleHRNZW51OgotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBbTlNDdXJzb3Ig
Y29udGV4dHVhbE1lbnVDdXJzb3JdOwogI2Vsc2UKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9
IGNyZWF0ZU5hbWVkQ3Vyc29yKCJjb250ZXh0TWVudUN1cnNvciIsIDMsIDIpOwpAQCAtMjYyLDcg
KzI2Miw3IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDdXJzb3I6OkFsaWFzOgotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0
Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJNYWtlQWxpYXMiKTsKICNlbHNlCiAgICAgICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigiYWxpYXNDdXJzb3IiLCAxMSwgMyk7CkBA
IC0yNzAsNyArMjcwLDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29u
c3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6UHJvZ3Jlc3M6Ci0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAg
ICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gd2tDdXJzb3IoIkJ1c3lCdXRDbGlja2FibGUiKTsKICNl
bHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigicHJvZ3Jl
c3NDdXJzb3IiLCAzLCAyKTsKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJl
UGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29y
OjpOb0Ryb3A6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNv
ciA9IFtOU0N1cnNvciBvcGVyYXRpb25Ob3RBbGxvd2VkQ3Vyc29yXTsKICNlbHNlCiAgICAgICAg
IG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigibm9Ecm9wQ3Vyc29yIiwgMywg
MSk7CkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29y
KCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEN1cnNvcjo6Q29weToKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogICAgICAgICBtX3BsYXRmb3JtQ3Vyc29yID0gW05TQ3Vyc29yIGRy
YWdDb3B5Q3Vyc29yXTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVO
YW1lZEN1cnNvcigiY29weUN1cnNvciIsIDMsIDIpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQg
Q3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBDdXJzb3I6Ok5vdEFsbG93ZWQ6Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAg
ICAgbV9wbGF0Zm9ybUN1cnNvciA9IFtOU0N1cnNvciBvcGVyYXRpb25Ob3RBbGxvd2VkQ3Vyc29y
XTsKICNlbHNlCiAgICAgICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBjcmVhdGVOYW1lZEN1cnNvcigi
bm90QWxsb3dlZEN1cnNvciIsIDExLCAxMSk7CkBAIC0zMDYsNyArMzA2LDcgQEAgdm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIEN1cnNvcjo6Wm9vbUluOgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vy
c29yKCJab29tSW4iKTsKICAgICAgICAgaWYgKG1fcGxhdGZvcm1DdXJzb3IpCiAgICAgICAgICAg
ICBicmVhazsKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1D
dXJzb3IoKSBjb25zdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ3Vyc29yOjpab29tT3V0
OgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICAgICAgbV9wbGF0Zm9ybUN1cnNvciA9IHdrQ3Vyc29yKCJab29tT3V0Iik7CiAg
ICAgICAgIGlmIChtX3BsYXRmb3JtQ3Vyc29yKQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNwcApp
bmRleCAxMDczMDg3Li40MTIyNjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNs
dWRlIDxJT0tpdC9wd3JfbWd0L0lPUE1MaWIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDUwCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjZW5kaWYK
IApAQCAtMzksMTEgKzM5LDExIEBAIHN0YXRpYyBjb25zdCBkb3VibGUgc3lzdGVtQWN0aXZpdHlJ
bnRlcnZhbCA9IDE7CiAKIERpc3BsYXlTbGVlcERpc2FibGVyOjpEaXNwbGF5U2xlZXBEaXNhYmxl
cihjb25zdCBjaGFyKiByZWFzb24pCiAgICAgOiBtX2Rpc2FibGVEaXNwbGF5U2xlZXBBc3NlcnRp
b24oMCkKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgLCBtX3N5c3RlbUFjdGl2aXR5VGltZXIodGhpcywg
JkRpc3BsYXlTbGVlcERpc2FibGVyOjpzeXN0ZW1BY3Rpdml0eVRpbWVyRmlyZWQpCiAjZW5kaWYK
IHsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVhc29uQ0Yo
QWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBy
ZWFzb24sIGtDRlN0cmluZ0VuY29kaW5nVVRGOCkpOwogICAgIElPUE1Bc3NlcnRpb25DcmVhdGVX
aXRoTmFtZShrSU9QTUFzc2VydGlvblR5cGVOb0Rpc3BsYXlTbGVlcCwga0lPUE1Bc3NlcnRpb25M
ZXZlbE9uLCByZWFzb25DRi5nZXQoKSwgJm1fZGlzYWJsZURpc3BsYXlTbGVlcEFzc2VydGlvbik7
CiAjZWxzZQpAQCAtNTgsNyArNTgsNyBAQCBEaXNwbGF5U2xlZXBEaXNhYmxlcjo6fkRpc3BsYXlT
bGVlcERpc2FibGVyKCkKICAgICBJT1BNQXNzZXJ0aW9uUmVsZWFzZShtX2Rpc2FibGVEaXNwbGF5
U2xlZXBBc3NlcnRpb24pOwogfQogICAgIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKIHZvaWQgRGlzcGxheVNs
ZWVwRGlzYWJsZXI6OnN5c3RlbUFjdGl2aXR5VGltZXJGaXJlZChUaW1lcjxEaXNwbGF5U2xlZXBE
aXNhYmxlcj4qKQogewogICAgIFVwZGF0ZVN5c3RlbUFjdGl2aXR5KE92ZXJhbGxBY3QpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGlzcGxheVNsZWVwRGlzYWJsZXIuaApp
bmRleCAyZTQ2NmRjMS4uYmRmYmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0Rpc3BsYXlTbGVlcERpc2FibGVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWZk
ZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA1MAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjZW5kaWYKIApAQCAtNDQsMTIgKzQ0LDEy
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGlzcGxheVNsZWVwRGlzYWJsZXIoY29uc3QgY2hh
ciogcmVhc29uKTsKIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICB2b2lkIHN5c3RlbUFjdGl2aXR5VGlt
ZXJGaXJlZChUaW1lcjxEaXNwbGF5U2xlZXBEaXNhYmxlcj4qKTsKICNlbmRpZgogICAgIAogICAg
IHVpbnQzMl90IG1fZGlzYWJsZURpc3BsYXlTbGVlcEFzc2VydGlvbjsKLSNpZmRlZiBCVUlMRElO
R19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUw
CiAgICAgVGltZXI8RGlzcGxheVNsZWVwRGlzYWJsZXI+IG1fc3lzdGVtQWN0aXZpdHlUaW1lcjsK
ICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0
eVByb3RvY29sRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FbXB0
eVByb3RvY29sRGVmaW5pdGlvbnMuaAppbmRleCBjMTFiMDVmLi5mZTYzNDY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRW1wdHlQcm90b2NvbERlZmluaXRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9u
cy5oCkBAIC0yOSw3ICsyOSw3IEBACiBAcHJvdG9jb2wgTkFNRSA8TlNPYmplY3Q+IFwKIEBlbmQK
IAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID09IDEwNTAKIAogRU1QVFlfUFJPVE9DT0woTlNUYWJsZVZpZXdEYXRhU291cmNl
KQogRU1QVFlfUFJPVE9DT0woTlNUYWJsZVZpZXdEZWxlZ2F0ZSkKQEAgLTM4LDcgKzM4LDcgQEAg
RU1QVFlfUFJPVE9DT0woTlNBbmltYXRpb25EZWxlZ2F0ZSkKIAogI2VuZGlmCiAKLSNpZiBkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogCiBFTVBU
WV9QUk9UT0NPTChOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZSkKIEVNUFRZX1BST1RPQ09MKE5TVVJM
RG93bmxvYWREZWxlZ2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9IVE1MQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZl
cnRlci5oCmluZGV4IGVhMWI4NWQuLjY2ZWNjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0hUTUxDb252ZXJ0ZXIuaApAQCAtNzksNyArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgfSBfZmxhZ3M7CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogLSAoaWQpaW5p
dDsKIC0gKGlkKWluaXRXaXRoRE9NUmFuZ2U6KERPTVJhbmdlICopZG9tUmFuZ2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggMjJkYjgxYy4u
ZmE5ZjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252
ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIu
bW0KQEAgLTUwLDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHN0YXRpYyBO
U0ZpbGVXcmFwcGVyICpmaWxlV3JhcHBlckZvclVSTChEb2N1bWVudExvYWRlciAqLCBOU1VSTCAq
KTsKIHN0YXRpYyBOU0ZpbGVXcmFwcGVyICpmaWxlV3JhcHBlckZvckVsZW1lbnQoRWxlbWVudCop
OwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNjAKIAogLy8gQWRkaXRpb25hbCBjb250cm9sIFVuaWNvZGUgY2hh
cmFjdGVycwogY29uc3QgdW5pY2hhciBXZWJOZXh0TGluZUNoYXJhY3RlciA9IDB4MDA4NTsKQEAg
LTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgTlNGb250ICpXZWJEZWZhdWx0Rm9udCgpCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJIVE1MQ29udmVydGVyCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFS
RAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiBzdGF0aWMg
TlNGb250ICpfZm9udEZvck5hbWVBbmRTaXplKE5TU3RyaW5nICpmb250TmFtZSwgQ0dGbG9hdCBz
aXplLCBOU011dGFibGVEaWN0aW9uYXJ5ICpjYWNoZSkKIHsKQEAgLTE2NTcsNyArMTY1Nyw3IEBA
IHN0YXRpYyBOU0ludGVnZXIgX2NvbENvbXBhcmUoaWQgYmxvY2sxLCBpZCBibG9jazIsIHZvaWQg
KikKICAgICByZXR1cm4gKDAgPT0gX2Vycm9yQ29kZSkgPyBbW19hdHRyU3RyIHJldGFpbl0gYXV0
b3JlbGVhc2VdIDogbmlsOwogfQogCi0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAK
IAogLy8gVGhpcyBmdW5jdGlvbiB1c2VzIFRleHRJdGVyYXRvciwgd2hpY2ggbWFrZXMgb2Zmc2V0
cyBpbiBpdHMgcmVzdWx0IGNvbXBhdGlibGUgd2l0aCBIVE1MIGVkaXRpbmcuCiArIChOU0F0dHJp
YnV0ZWRTdHJpbmcgKillZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZTooUmFuZ2UqKXJh
bmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01lbW9yeVByZXNz
dXJlSGFuZGxlck1hYy5tbQppbmRleCA4ZDFkMTBmLi5jMDYyODY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZW1vcnlQcmVzc3VyZUhhbmRsZXJNYWMubW0K
QEAgLTMzLDcgKzMzLDcgQEAKICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8
d3RmL0Zhc3RNYWxsb2MuaD4KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIVBMQVRGT1JNKElPUykKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAgJiYgIVBMQVRGT1JNKElP
UykKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgPG5vdGlmeS5o
PgogI2VuZGlmCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5nIHN0ZDo6bWF4OwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAKICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGljIGRpc3BhdGNoX3Nv
dXJjZV90IF9jYWNoZV9ldmVudF9zb3VyY2UgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAppbmRleCAwYzk1NmM2Li4xZTFjNmNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERl
dGFpbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERl
dGFpbHMuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAvLyBQdWJs
aWMgQVBJcyBub3QgYXZhaWxhYmxlIG9uIHZlcnNpb25zIG9mIE1hYyBvbiB3aGljaCB3ZSBidWls
ZAotI2lmIChkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9
IDEwNjAKIGVudW0gewogICAgIE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSAgICAgICA9IDAsCiAgICAg
TlNTY3JvbGxlclN0eWxlT3ZlcmxheSAgICAgID0gMQpAQCAtNDQsNyArNDQsNyBAQCBlbnVtIHsK
IHR5cGVkZWYgTlNJbnRlZ2VyIE5TU2Nyb2xsZXJLbm9iU3R5bGU7CiAjZW5kaWYKIAotI2lmIChk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIEBp
bnRlcmZhY2UgTlNTY3JvbGxlcihOU09iamVjdCkKICsgKE5TU2Nyb2xsZXJTdHlsZSlwcmVmZXJy
ZWRTY3JvbGxlclN0eWxlOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGYwZWJmNWMuLjJlYzUyNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2UgbW9tZW50dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVp
bnQzMl90IHBoYXNlID0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lOwogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlm
IChbZXZlbnQgbW9tZW50dW1QaGFzZV0gJiBOU0V2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcGhh
c2UgfD0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbjsKICAgICBpZiAoW2V2ZW50IG1vbWVu
dHVtUGhhc2VdICYgTlNFdmVudFBoYXNlU3RhdGlvbmFyeSkKQEAgLTE4OSw3ICsxODksNyBAQCBz
dGF0aWMgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZUZvckV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogCiBzdGF0aWMgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2VGb3JFdmVu
dChOU0V2ZW50ICpldmVudCkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgdWludDMyX3QgcGhhc2UgPSBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZU5vbmU7IAogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNl
QmVnYW4pCiAgICAgICAgIHBoYXNlIHw9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW47CkBA
IC0yMDEsNyArMjAxLDcgQEAgc3RhdGljIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlRm9y
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHBoYXNlIHw9IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlRW5kZWQ7CiAgICAgaWYgKFtldmVudCBwaGFzZV0gJiBOU0V2ZW50UGhhc2VDYW5jZWxs
ZWQpCiAgICAgICAgIHBoYXNlIHw9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2FuY2VsbGVkOwot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKFtldmVudCBtb21lbnR1bVBoYXNlXSAmIE5TRXZl
bnRQaGFzZU1heUJlZ2luKQogICAgICAgICBwaGFzZSB8PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZU1heUJlZ2luOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVu
dU1hYy5tbQppbmRleCA4NTU3ODQ0Li5jMGYxOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KQEAgLTc1LDEwICs3NSwxMCBAQCB2b2lkIFBvcHVwTWVu
dU1hYzo6cG9wdWxhdGUoKQogICAgIGlmICghY2xpZW50KCktPnNob3VsZFBvcE92ZXIoKSkKICAg
ICAgICAgW21fcG9wdXAuZ2V0KCkgYWRkSXRlbVdpdGhUaXRsZTpAIiJdOwogCi0jaWZuZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNjAKICAgICBUZXh0RGlyZWN0aW9uIG1lbnVUZXh0RGlyZWN0aW9uID0gY2xpZW50KCktPm1l
bnVTdHlsZSgpLnRleHREaXJlY3Rpb24oKTsKICAgICBbbV9wb3B1cC5nZXQoKSBzZXRVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOm1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uUmlnaHRUb0xlZnRdOwotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYw
CiAKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAgIGludCBzaXplID0gY2xpZW50KCktPmxpc3RT
aXplKCk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAg
ICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OmZvbnQgZm9yS2V5Ok5TRm9udEF0
dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAg
ICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUoQWRv
cHROUywgW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNv
cHldKTsKICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZS5nZXQoKSBzZXRBbGlnbm1lbnQ6bWVu
dVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0
QWxpZ25tZW50XTsKICAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0
aW9uID0gc3R5bGUudGV4dERpcmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxl
ZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CkBAIC0xMDksNyArMTA5
LDcgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICBbYXR0
cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dy
aXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IFthdHRyaWJ1dGVzIHNldE9iamVjdDpwYXJhZ3JhcGhTdHlsZS5nZXQoKSBmb3JLZXk6TlNQYXJh
Z3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWVdOwotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDYwCiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUg
Zm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMuCiAgICAgICAgICAgICAvLyBGSVhNRTog
RmluZCBhIHdheSB0byBjdXN0b21pemUgdGV4dCBjb2xvciB3aGVuIGFuIGl0ZW0gaXMgaGlnaGxp
Z2h0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KaW5kZXggOTY4OGMwYS4uNjAwZGVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNjM1LDcgKzYzNSw3IEBAIFNjcm9s
bEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMoKQogCiBzdGF0aWMgYm9vbCBzY3JvbGxB
bmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBQTEFURk9STShDSFJP
TUlVTSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAgfHwgUExB
VEZPUk0oQ0hST01JVU0pCiAgICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVuYWJsZWQiXTsKICNl
bHNlCiAgICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJv
b2xGb3JLZXk6QCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbQpp
bmRleCA3YTc1Mzg0Li5mMjg0NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tCkBAIC0zMyw3ICszMyw3
IEBACiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAKLSNpZmRlZiBCVUlMRElOR19PTl9M
RU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiBAaW50
ZXJmYWNlIE5TUHJvY2Vzc0luZm8gKFNjcm9sbEFuaW1hdG9yTWFjRXh0KQogLSAoTlNUaW1lSW50
ZXJ2YWwpc3lzdGVtVXB0aW1lOwogQGVuZApAQCAtNzEsOCArNzEsNyBAQCBzdGF0aWMgY29uc3Qg
ZmxvYXQgc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGltZW91dCA9IDAuMTBmOwogc3RhdGljIGNvbnN0
IGZsb2F0IHJ1YmJlcmJhbmREaXJlY3Rpb25Mb2NrU3RyZXRjaFJhdGlvID0gMTsKIHN0YXRpYyBj
b25zdCBmbG9hdCBydWJiZXJiYW5kTWluaW11bVJlcXVpcmVkRGVsdGFCZWZvcmVTdHJldGNoID0g
MTA7CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVMRElO
R19PTl9TTk9XX0xFT1BBUkQpIHx8IFwKLSAgICBkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pIHx8
IFBMQVRGT1JNKENIUk9NSVVNKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PD0gMTA3MCB8fCBQTEFURk9STShDSFJPTUlVTSkKIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJi
YW5kU3RpZmZuZXNzID0gMjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZEFtcGxpdHVk
ZSA9IDAuMzFmOwogc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRQZXJpb2QgPSAxLjZmOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tCmluZGV4IGQ3
YzUwMWQuLjE4OTgzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
aGFyZWRUaW1lck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVk
VGltZXJNYWMubW0KQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogCiAvLyBP
biBTbm93IExlb3BhcmQgYW5kIG5ld2VyIHdlJ2xsIGFzayBJT0tpdCB0byBkZWxpdmVyIG5vdGlm
aWNhdGlvbnMgb24gYSBxdWV1ZS4KLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjZGVmaW5lIElPS0lUX1dJVEhP
VVRfTElCRElTUEFUQ0ggMQogI2VuZGlmCiAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIENGUnVu
TG9vcFRpbWVyUmVmIHNoYXJlZFRpbWVyOwogc3RhdGljIHZvaWQgKCpzaGFyZWRUaW1lckZpcmVk
RnVuY3Rpb24pKCk7CiBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2
b2lkKik7CiAKLSNpZiAhZGVmaW5lZChJT0tJVF9XSVRIT1VUX0xJQkRJU1BBVENIKSAmJiBkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChJT0tJVF9XSVRIT1VU
X0xJQkRJU1BBVENIKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAK
IGV4dGVybiAiQyIgdm9pZCBJT05vdGlmaWNhdGlvblBvcnRTZXREaXNwYXRjaFF1ZXVlKElPTm90
aWZpY2F0aW9uUG9ydFJlZiBub3RpZnksIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUpOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5h
dGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdWRkZW5UZXJtaW5hdGlvbi5t
bQppbmRleCBmNjI0MTE2Li5jY2ZmNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU3VkZGVuVGVybWluYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1N1ZGRlblRlcm1pbmF0aW9uLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIlN1ZGRlblRlcm1pbmF0aW9uLmgiCiAKLSNpZm5kZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2
MAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbQppbmRleCBmNjJkMTRhLi5jYzZl
YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lm1tCkBAIC00Miw3ICs0Miw3IEBACiAgICAgW3NlbGYgc2V0QWNjZXB0
c01vdXNlTW92ZWRFdmVudHM6WUVTXTsKICAgICBbc2VsZiBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6
Tk9dOwogICAgIFtzZWxmIHNldEhhc1NoYWRvdzpOT107Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xF
T1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBb
c2VsZiBzZXRNb3ZhYmxlOk5PXTsKICNlbHNlCiAgICAgW3NlbGYgc2V0TW92YWJsZUJ5V2luZG93
QmFja2dyb3VuZDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViQ29yZU5TQ2VsbEV4dHJhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVOU0NlbGxFeHRyYXMuaAppbmRleCAyNmJlNDYyLi43ODk0ZDNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNDZWxsRXh0cmFzLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogCi0jZGVmaW5lIEJVVFRPTl9DRUxM
X0RSQVdfV0lUSF9GUkFNRV9EUkFXU19GT0NVU19SSU5HIChkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSB8fCBQTEFURk9STShDSFJP
TUlVTSkpCisjZGVmaW5lIEJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9EUkFXU19GT0NVU19S
SU5HIChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAgfHwgUExBVEZPUk0o
Q0hST01JVU0pKQogCiAjaWYgIUJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9EUkFXU19GT0NV
U19SSU5HCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oCmluZGV4IDkwOGRkOTUuLmVhN2MyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtNTgs
NyArNTgsNyBAQCB0eXBlZGVmIFVJbnQzMiBGTUZvbnQ7CiB0eXBlZGVmIEZNRm9udCBBVFNVRm9u
dElEOwogdHlwZWRlZiBVSW50MTYgQVRTR2x5cGhSZWY7CiAKLSNpZiBQTEFURk9STShNQUMpICYm
IFVTRShDQSkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHR5cGVkZWYgc3RydWN0IF9f
SU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7CiAjZW5kaWYKIApAQCAtMTA5LDcgKzEwOSw3IEBAIGV4
dGVybiAiQyIgewogLy8gSW4gYWxwaGFiZXRpY2FsIG9yZGVyLgogCiBleHRlcm4gdm9pZCAoKndr
QWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbikoTlNCdXR0b25DZWxsICopOwotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
IGV4dGVybiB2b2lkICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2Nr
KShDQUxheWVyICosIENHQ29udGV4dFJlZiwgdm9pZCAoXmJsb2NrKShDR1JlY3QgcmVjdCkpOwog
I2VuZGlmCiAKQEAgLTIxNSw3ICsyMTUsNyBAQCBleHRlcm4gYm9vbCAoKndrR2V0VmVydGljYWxH
bHlwaHNGb3JDaGFyYWN0ZXJzKShDVEZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbAogCiBl
eHRlcm4gQk9PTCAoKndrVXNlU2hhcmVkTWVkaWFVSSkoKTsKIAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiB2b2lkKiB3
a0dldEh5cGhlbmF0aW9uTG9jYXRpb25CZWZvcmVJbmRleDsKICNlbHNlCiBleHRlcm4gQ0ZJbmRl
eCAoKndrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9yZUluZGV4KShDRlN0cmluZ1JlZiBzdHJp
bmcsIENGSW5kZXggaW5kZXgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIGV4dGVybiBpbnQgKCp3a0dl
dE5TRXZlbnRNb21lbnR1bVBoYXNlKShOU0V2ZW50ICopOwogCiBleHRlcm4gQ1RMaW5lUmVmICgq
d2tDcmVhdGVDVExpbmVXaXRoVW5pQ2hhclByb3ZpZGVyKShjb25zdCBVbmlDaGFyKiAoKnByb3Zp
ZGUpKENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5
UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZvaWQgKCpkaXNwb3NlKShjb25zdCBVbmlDaGFyKiBj
aGFycywgdm9pZCopLCB2b2lkKik7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKIGV4dGVybiBDVFR5cGVzZXR0ZXJSZWYgKCp3
a0NyZWF0ZUNUVHlwZXNldHRlcldpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zKShjb25zdCBV
bmlDaGFyKiAoKnByb3ZpZGUpKENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgqIGNoYXJDb3Vu
dCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZvaWQgKCpkaXNwb3NlKShj
b25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCopLCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlv
bnMpOwogCkBAIC0yNjQsNyArMjY0LDcgQEAgZXh0ZXJuIENGVHlwZVJlZiAoKndrQ3JlYXRlQVhU
ZXh0TWFya2VyKShjb25zdCB2b2lkICpieXRlcywgc2l6ZV90IGxlbik7CiBleHRlcm4gQk9PTCAo
KndrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKShDRlR5cGVSZWYgdGV4dE1hcmtlciwgdm9pZCAq
Ynl0ZXMsIHNpemVfdCBsZW5ndGgpOwogZXh0ZXJuIEFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVB
WFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7CiAKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogdHlwZWRlZiBzdHJ1Y3QgX19DRlVSTFN0
b3JhZ2VTZXNzaW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwogI2Vsc2UKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsK
QEAgLTI5NiwyNyArMjk2LDI3IEBAIGV4dGVybiB2b2lkICgqd2tTZXRSZXF1ZXN0U3RvcmFnZVNl
c3Npb24pKENGVVJMU3RvcmFnZVNlc3Npb25SZWYsIENGTXV0YWJsZVVSTFJlCiAjZW5kaWYKIGV4
dGVybiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJp
bmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CiAgICAgCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2ltcG9ydCA8ZGlzcGF0
Y2gvZGlzcGF0Y2guaD4KIAogZXh0ZXJuIGRpc3BhdGNoX3NvdXJjZV90ICgqd2tDcmVhdGVWTVBy
ZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSkodm9pZCk7CiAKICNlbmRpZgogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogZXh0ZXJuIE5T
U3RyaW5nICooKndrR2V0TWFjT1NYVmVyc2lvblN0cmluZykodm9pZCk7CiBleHRlcm4gYm9vbCAo
KndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKSh2b2lkKTsKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogZXh0ZXJuIHZvaWQgKCp3a0NHUGF0aEFkZFJvdW5kZWRSZWN0KShDR011dGFibGVQYXRoUmVm
IHBhdGgsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiBtYXRyaXgsIENHUmVjdCByZWN0LCBDR0Zs
b2F0IGNvcm5lcldpZHRoLCBDR0Zsb2F0IGNvcm5lckhlaWdodCk7CiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiB2b2lkICgqd2tDRlVSTFJlcXVlc3RBbGxvd0Fs
bFBvc3RDYWNoaW5nKShDRlVSTFJlcXVlc3RSZWYpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYm
ICFQTEFURk9STShJT1MpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwICYmICFQTEFURk9STShJT1MpCiBleHRlcm4gQk9PTCAoKndrRmlsdGVySXNNYW5hZ2VkU2Vz
c2lvbikodm9pZCk7CiBleHRlcm4gV2ViRmlsdGVyRXZhbHVhdG9yICooKndrRmlsdGVyQ3JlYXRl
SW5zdGFuY2UpKE5TVVJMUmVzcG9uc2UgKik7CiBleHRlcm4gdm9pZCAoKndrRmlsdGVyUmVsZWFz
ZSkoV2ViRmlsdGVyRXZhbHVhdG9yICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCBjMDg3YTVkLi42YTZjYzRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbQpAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+CiAKIHZvaWQgKCp3a0FkdmFuY2VEZWZhdWx0QnV0dG9uUHVsc2VBbmltYXRpb24p
KE5TQnV0dG9uQ2VsbCAqKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiB2b2lkICgqd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWlu
Z0RyYXduV2l0aEJsb2NrKShDQUxheWVyICosIENHQ29udGV4dFJlZiBjb250ZXh0LCB2b2lkIChe
YmxvY2spKENHUmVjdCByZWN0KSk7CiAjZW5kaWYKIEJPT0wgKCp3a0NHQ29udGV4dEdldFNob3Vs
ZFNtb290aEZvbnRzKShDR0NvbnRleHRSZWYpOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgKCp3
a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbikoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgQ0ZNdXRh
YmxlVVJMUmVxdWVzdFJlCiB2b2lkICgqd2tHZXRHbHlwaHNGb3JDaGFyYWN0ZXJzKShDR0ZvbnRS
ZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dHbHlwaFtdLCBzaXplX3QpOwogYm9vbCAoKndrR2V0VmVy
dGljYWxHbHlwaHNGb3JDaGFyYWN0ZXJzKShDVEZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwgQ0dH
bHlwaFtdLCBzaXplX3QpOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCogd2tHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVm
b3JlSW5kZXg7CiAjZWxzZQogQ0ZJbmRleCAoKndrR2V0SHlwaGVuYXRpb25Mb2NhdGlvbkJlZm9y
ZUluZGV4KShDRlN0cmluZ1JlZiBzdHJpbmcsIENGSW5kZXggaW5kZXgpOwpAQCAtMTMzLDcgKzEz
Myw3IEBAIGludCAoKndrR2V0TlNFdmVudE1vbWVudHVtUGhhc2UpKE5TRXZlbnQgKik7CiAjZW5k
aWYKIAogQ1RMaW5lUmVmICgqd2tDcmVhdGVDVExpbmVXaXRoVW5pQ2hhclByb3ZpZGVyKShjb25z
dCBVbmlDaGFyKiAoKnByb3ZpZGUpKENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgqIGNoYXJD
b3VudCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2b2lkKiksIHZvaWQgKCpkaXNwb3Nl
KShjb25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCopLCB2b2lkKik7Ci0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogQ1RUeXBlc2V0dGVy
UmVmICgqd2tDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucyko
Y29uc3QgVW5pQ2hhciogKCpwcm92aWRlKShDRkluZGV4IHN0cmluZ0luZGV4LCBDRkluZGV4KiBj
aGFyQ291bnQsIENGRGljdGlvbmFyeVJlZiogYXR0cmlidXRlcywgdm9pZCopLCB2b2lkICgqZGlz
cG9zZSkoY29uc3QgVW5pQ2hhciogY2hhcnMsIHZvaWQqKSwgdm9pZCosIENGRGljdGlvbmFyeVJl
ZiBvcHRpb25zKTsKIAogQ0dDb250ZXh0UmVmICgqd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKShJ
T1N1cmZhY2VSZWYgc3VyZmFjZSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgQ0dD
b2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpOwpAQCAtMTc4LDI0ICsxNzgsMjQgQEAgQ0ZTdHJpbmdS
ZWYgKCp3a0NvcHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpKENGVVJMUmVzcG9uc2VS
ZWYpOwogdm9pZCAoKndrU2V0Q0ZVUkxSZXNwb25zZU1JTUVUeXBlKShDRlVSTFJlc3BvbnNlUmVm
LCBDRlN0cmluZ1JlZiBtaW1lVHlwZSk7CiB2b2lkICgqd2tTZXRNZXRhZGF0YVVSTCkoTlNTdHJp
bmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0cmluZyAqcGF0aCk7CiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CiBkaXNwYXRjaF9zb3VyY2VfdCAoKndrQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25NYWluUXVl
dWUpKHZvaWQpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwCiBOU1N0cmluZyAqKCp3a0dldE1hY09TWFZlcnNpb25TdHJp
bmcpKHZvaWQpOwogYm9vbCAoKndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKSh2
b2lkKTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCAoKndrQ0dQYXRoQWRkUm91bmRlZFJlY3QpKENHTXV0
YWJsZVBhdGhSZWYgcGF0aCwgY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0qIG1hdHJpeCwgQ0dSZWN0
IHJlY3QsIENHRmxvYXQgY29ybmVyV2lkdGgsIENHRmxvYXQgY29ybmVySGVpZ2h0KTsKICNlbmRp
ZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogdm9pZCAoKndrQ0ZVUkxSZXF1ZXN0QWxs
b3dBbGxQb3N0Q2FjaGluZykoQ0ZVUkxSZXF1ZXN0UmVmKTsKICNlbmRpZgogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA4MCAmJiAhUExBVEZPUk0oSU9TKQogQk9PTCAoKndrRmlsdGVySXNNYW5hZ2VkU2Vzc2lv
bikodm9pZCk7CiBXZWJGaWx0ZXJFdmFsdWF0b3IgKigqd2tGaWx0ZXJDcmVhdGVJbnN0YW5jZSko
TlNVUkxSZXNwb25zZSAqKTsKIHZvaWQgKCp3a0ZpbHRlclJlbGVhc2UpKFdlYkZpbHRlckV2YWx1
YXRvciAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJGb250
Q2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViRm9udENhY2hlLm1tCmlu
ZGV4IGJlNjY2Y2YuLjkzYzA3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJGb250Q2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkZvbnRDYWNoZS5tbQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBCT09MIGJldHRlckNob2lj
ZShOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlZFRyYWl0cywgaW50IGRlc2lyZWRXZWlnaHQsCiAvLyBX
b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNTc4MTM3Mj4uCiBzdGF0aWMgaW5saW5lIHZv
aWQgZml4VXBXZWlnaHQoTlNJbnRlZ2VyJiB3ZWlnaHQsIE5TU3RyaW5nICpmb250TmFtZSkKIHsK
LSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogICAgIFVOVVNFRF9QQVJBTSh3ZWlnaHQpOwogICAgIFVOVVNFRF9Q
QVJBTShmb250TmFtZSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQppbmRleCA0N2M1Mzkx
Li5jZTM1ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpAQCAtNTMsNyArNTMsNyBAQCBTT0ZU
X0xJTktfUE9JTlRFUihRVEtpdCwgUVRNb3ZpZVJhdGVEaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5T
U3RyaW5nICopCiAjZGVmaW5lIFFUTW92aWVSYXRlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIGdldFFU
TW92aWVSYXRlRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkKIAogQGludGVyZmFjZSBXZWJWaWRlb0Z1
bGxzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiA8TlNBbmltYXRpb25E
ZWxlZ2F0ZT4KICNlbmRpZgogewpAQCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyBOU1dpbmRvdyAq
Y3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lLCBpbnQgbGV2ZWwp
CiAtICh2b2lkKXVwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbHNjcmVlbgogewogICAgIC8vIE5TQXBw
bGljYXRpb25QcmVzZW50YXRpb25PcHRpb25zIGlzIGF2YWlsYWJsZSBvbiA+IDEwLjYgb25seToK
LSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogICAgIE5TQXBwbGljYXRpb25QcmVzZW50YXRpb25PcHRpb25zIG9w
dGlvbnMgPSBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9uRGVmYXVsdDsKICAgICBOU1NjcmVlbiog
ZnVsbHNjcmVlblNjcmVlbiA9IFtbc2VsZiB3aW5kb3ddIHNjcmVlbl07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNj
cmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggNjMxODI4YS4uOTBmNjkxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdp
bmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTQ0LDEwICs0NCwxMCBAQCBz
dGF0aWMgaW5saW5lIENHRmxvYXQgd2Via2l0X0NHRmxvb3IoQ0dGbG9hdCB2YWx1ZSkKICAgICBy
ZXR1cm4gZmxvb3IodmFsdWUpOwogfQogCi0jZGVmaW5lIEhBVkVfTUVESUFfQ09OVFJPTCAoIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCisjZGVmaW5lIEhBVkVfTUVESUFfQ09OVFJPTCAo
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwKQogCiBAaW50ZXJmYWNlIFdl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIgKFByaXZhdGUpCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNjAKIDxOU1dpbmRvd0RlbGVnYXRlPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgKaW5kZXggYWFlNGQ1Mi4uMDBjMTFiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKLSNkZWZpbmUgQ0VS
VElGSUNBVEVfQ1JFREVOVElBTFNfU1VQUE9SVEVEICgoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShJT1MpKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSkKKyNkZWZpbmUgQ0VSVElG
SUNBVEVfQ1JFREVOVElBTFNfU1VQUE9SVEVEICgoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJ
T1MpKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjApCiAKICNpZiBD
RVJUSUZJQ0FURV9DUkVERU5USUFMU19TVVBQT1JURUQKICNpbmNsdWRlIDxTZWN1cml0eS9TZWNC
YXNlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmgKaW5kZXggZGRjYTBkMi4uNTA3MWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtNjcsNyArNjcsNyBAQCB0eXBlZGVm
IGludCBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5OwogdHlwZWRlZiBzdHJ1Y3QgT3Bh
cXVlQ0ZIVFRQQ29va2llU3RvcmFnZSogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKICNlbmRpZgog
Ci0jaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKSAmJiAoZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCisjaWYgVVNFKENG
VVJMU1RPUkFHRVNFU1NJT05TKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogdHlwZWRlZiBzdHJ1Y3QgX19DRlVSTFN0b3JhZ2VTZXNz
aW9uKiBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmOwogI2VsaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJ
T05TKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlVSTFN0b3JhZ2VTZXNzaW9uKiBDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9ETlNDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0ROU0NGTmV0LmNwcAppbmRleCAyOGM5NWRmLi43YzIxOTIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0ROU0NGTmV0LmNwcApAQCAtNDIsNyArNDIsNyBAQAog
I2luY2x1ZGUgPENGTmV0d29yay9DRk5ldHdvcmsuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PT0gMTA1MAogI2luY2x1ZGUgPFN5c3RlbUNvbmZpZ3VyYXRpb24vU3lzdGVtQ29uZmlndXJhdGlv
bi5oPgogI2VuZGlmCiAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBETlNSZXNvbHZlUXVldWU6OnBs
YXRmb3JtUHJveHlJc0VuYWJsZWRJblN5c3RlbVByZWZlcmVuY2VzKCkKICAgICAvLyBhcyBpdCBk
b2Vzbid0IG5lY2Vzc2FyaWx5IGxvb2sgdXAgdGhlIGFjdHVhbCBleHRlcm5hbCBJUC4gQWxzbywg
aWYgRE5TIHJldHVybnMgYSBmYWtlIGludGVybmFsIGFkZHJlc3MsCiAgICAgLy8gbG9jYWwgY2Fj
aGVzIG1heSBrZWVwIGl0IGV2ZW4gYWZ0ZXIgcmUtY29ubmVjdGluZyB0byBhbm90aGVyIG5ldHdv
cmsuCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmICFQTEFURk9STShN
QUMpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFJldGFp
blB0cjxDRkRpY3Rpb25hcnlSZWY+IHByb3h5U2V0dGluZ3MoQWRvcHRDRiwgQ0ZOZXR3b3JrQ29w
eVN5c3RlbVByb3h5U2V0dGluZ3MoKSk7CiAjZWxzZQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IHByb3h5U2V0dGluZ3MoQWRvcHRDRiwgU0NEeW5hbWljU3RvcmVDb3B5UHJveGllcygw
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5
U2VydmVyQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94
eVNlcnZlckNGTmV0LmNwcAppbmRleCA2YjBjOGIwLi43MTJhZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWZuZGVmIEJVSUxE
SU5HX09OX0xFT1BBUkQKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNjAKIAogc3RhdGljIHZvaWQgcHJvY2Vzc1Byb3h5U2VydmVycyhW
ZWN0b3I8UHJveHlTZXJ2ZXI+JiBwcm94eVNlcnZlcnMsIENGQXJyYXlSZWYgcHJveGllcywgQ0ZV
UkxSZWYgdXJsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNzI1MjJkOS4uOTcwYTZmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBA
IC0zNiw3ICszNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRlVSTFJlcXVlc3QqIENGVVJM
UmVxdWVzdFJlZjsKIAogT0JKQ19DTEFTUyBOU1VSTFJlcXVlc3Q7CiAKLSNpZiBVU0UoQ0ZVUkxT
VE9SQUdFU0VTU0lPTlMpICYmIChkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwg
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSkKKyNpZiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lP
TlMpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDYwCiB0eXBlZGVmIHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY7CiAjZWxpZiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBfX0NGVVJMU3RvcmFnZVNlc3Npb24qIENGVVJMU3RvcmFnZVNlc3Npb25SZWY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IDdjZTliNjAuLjUyMGQ2ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Q0ZOZXQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNl
dEhUVFBQaXBlbGluaW5nRW5hYmxlZChib29sIGZsYWcpCiAgICAgc19odHRwUGlwZWxpbmluZ0Vu
YWJsZWQgPSBmbGFnOwogfQogCi0jaWYgVVNFKENGTkVUV09SSykgfHwgUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjaWYgVVNFKENGTkVUV09SSykgfHwgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyBpbmxpbmUgYm9vbCBy
ZWFkQm9vbGVhblByZWZlcmVuY2UoQ0ZTdHJpbmdSZWYga2V5KQogewogICAgIEJvb2xlYW4ga2V5
RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQ7CkBAIC0yODEsNyArMjgxLDcgQEAgdW5zaWduZWQgaW5p
dGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgLy8gQWx3YXlz
IHNldCB0aGUgY29ubmVjdGlvbiBjb3VudCBwZXIgaG9zdCwgZXZlbiB3aGVuIHBpcGVsaW5pbmcu
CiAgICAgdW5zaWduZWQgbWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0ID0gd2tJbml0
aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KHByZWZlcnJlZENvbm5lY3Rp
b25Db3VudCk7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBVU0UoQ0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1
bmxpbWl0ZWRDb25uZWN0aW9uQ291bnQgPSAxMDAwMDsKIAogICAgIGlmICghUmVzb3VyY2VSZXF1
ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSAmJiByZWFkQm9vbGVhblByZWZlcmVuY2UoQ0ZT
VFIoIldlYktpdEVuYWJsZUhUVFBQaXBlbGluaW5nIikpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0
LmNwcAppbmRleCA5MDMzMzQwLi45NzA5MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNw
cApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAjaW5jbHVkZSA8U3lz
dGVtQ29uZmlndXJhdGlvbi9TeXN0ZW1Db25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIApAQCAtMTc2
LDcgKzE3Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZW1vdmVQQUNSdW5Mb29wU291
cmNlKCkKIAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNob29zZVByb3h5KCkKIHsKLSNpZm5k
ZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmICFQTEFURk9STShNQUMpIHx8IF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IHByb3h5RGljdGlvbmFyeShBZG9wdENGLCBDRk5ldHdvcmtDb3B5U3lzdGVtUHJveHlTZXR0
aW5ncygpKTsKICNlbHNlCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCBwcm94eSBpbmZvcm1hdGlvbiBv
ZnRlbiwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBzZXQgdXAgYSBwZXJtYW5lbnQgZHluYW1pYyBz
dG9yZSBzZXNzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvQXV0aGVudGljYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9BdXRoZW50aWNhdGlvbk1hYy5tbQppbmRleCA4MmM2NjBhLi5hN2YxYjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlv
bk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50
aWNhdGlvbk1hYy5tbQpAQCAtMTY1LDcgKzE2NSw3IEBAIE5TVVJMQ3JlZGVudGlhbCAqbWFjKGNv
bnN0IENyZWRlbnRpYWwmIGNvcmVDcmVkZW50aWFsKQogCiAjZWxzZQogCi0jaWZkZWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1
MAogLy8gVGhlcmUgaXMgbm8gY29uc3RhbnQgaW4gaGVhZGVycywgYnV0IE5UTE0gaXMgc3VwcG9y
dGVkLgogTlNTdHJpbmcgKiBjb25zdCBOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTSA9IEAi
TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZE5UTE0iOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbQppbmRl
eCAyNWI0ZDQ0Li5mZGFlNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMubW0KQEAgLTc5LDcgKzc5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIHNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkgJiYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPT0gMTA2MCAmJiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCiAgICAg
Ly8gRG9uJ3QgY2FsbCB3a1NldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKCkg
d2hlbiBjb29raWUgc3RvcmFnZSBpcyBzZXQgdXAgdmlhIHNlc3Npb25zLgogICAgIC8vIFRoYXQg
d291bGQgbWFrZSBOU1VSTENvbm5lY3QgdXNlIGdsb2JhbCBwcml2YXRlIGJyb3dzaW5nIGNvb2tp
ZSBzdG9yYWdlIHJlZ2FyZGxlc3Mgb2YgcmVxdWVzdCBzZXNzaW9uLgogICAgIC8vIFRoZSBnbG9i
YWwgcHJpdmF0ZSBjb29raWUgc3RvcmFnZSBoYXMgZGlmZmVyZW50IHNlbWFudGljcyAtIGl0IG1h
a2VzIG5ldyBjb29raWVzIG5vbi1wZXJzaXN0ZW50LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA0YWMz
M2NjLi5mYWU0MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBz
aG91bGRVc2VDcmVkZW50aWFsCiAgICAgICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0Owog
ICAgIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgQVNTRVJUKFtOU1VSTENvbm5lY3Rp
b24gaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKF9pbml0V2l0aFJlcXVlc3Q6
ZGVsZWdhdGU6dXNlc0NhY2hlOm1heENvbnRlbnRMZW5ndGg6c3RhcnRJbW1lZGlhdGVseTpjb25u
ZWN0aW9uUHJvcGVydGllczopXSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNTZXR0aW5nQ29u
bmVjdGlvblByb3BlcnRpZXMgPSB0cnVlOwogI2Vsc2UKQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbAogICAgIC8vIHdlIG1ha2Ugc3VyZSB0aGF0IGlzIGFjdHVhbGx5
IHByZXNlbnQKICAgICBBU1NFUlQoY2hhbGxlbmdlLm5zVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoKSk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICAvLyBQcm94eSBhdXRoZW50aWNhdGlvbiBpcyBoYW5kbGVkIGJ5IENG
TmV0d29yayBpbnRlcm5hbGx5LiBXZSBjYW4gZ2V0IGhlcmUgaWYgdGhlIHVzZXIgY2FuY2Vscwog
ICAgIC8vIENGTmV0d29yayBhdXRoZW50aWNhdGlvbiBkaWFsb2csIGFuZCB3ZSBzaG91bGRuJ3Qg
YXNrIHRoZSBjbGllbnQgdG8gZGlzcGxheSBhbm90aGVyIG9uZSBpbiB0aGF0IGNhc2UuCiAgICAg
aWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5pc1Byb3h5KCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1h
Yy5tbQppbmRleCAyNjJmZGI0Li5hM2UxZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCkBAIC04Miw3
ICs4Miw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgp
CiAgICAgICAgIG1faHR0cE1ldGhvZCA9IG1ldGhvZDsKICAgICBtX2FsbG93Q29va2llcyA9IFtt
X25zUmVxdWVzdC5nZXQoKSBIVFRQU2hvdWxkSGFuZGxlQ29va2llc107CiAKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYg
KFJlc291cmNlUmVxdWVzdDo6aHR0cFBpcGVsaW5pbmdFbmFibGVkKCkpCiAgICAgICAgIG1fcHJp
b3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdrR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0
eShbbV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJMUmVxdWVzdF0pKTsKICNlbmRpZgpAQCAtMTI5LDEz
ICsxMjksMTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0
KCkKICAgICAgICAgbnNSZXF1ZXN0ID0gW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0
V2l0aFVSTDp1cmwoKV07CiAKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAoUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlw
ZWxpbmluZ0VuYWJsZWQoKSkKICAgICAgICAgd2tTZXRIVFRQUGlwZWxpbmluZ1ByaW9yaXR5KFtu
c1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvSFRUUFBpcGVsaW5pbmdQcmlvcml0eShtX3ByaW9y
aXR5KSk7CiAjZW5kaWYKIAogICAgIFtuc1JlcXVlc3Qgc2V0Q2FjaGVQb2xpY3k6KE5TVVJMUmVx
dWVzdENhY2hlUG9saWN5KWNhY2hlUG9saWN5KCldOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICB3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcoW25zUmVxdWVzdCBfQ0ZV
UkxSZXF1ZXN0XSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCmluZGV4IGJlMmUyNzY3Li45
NWY3NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlVVJMUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCkBAIC00OTcsNyArNDk3LDcgQEAgdm9pZCBhZGp1
c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKICAgICAg
ICAgfQogICAgIH0KIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRh
cjovL3Byb2JsZW0vNTUzOTgyND4KICAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKHJlc3VsdC5nZXQo
KSwgQ0ZTVFIoInRleHQveG1sIiksIDApID09IGtDRkNvbXBhcmVFcXVhbFRvKQogICAgICAgICBy
ZXN1bHQgPSBDRlNUUigiYXBwbGljYXRpb24veG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAppbmRleCAwNzQyY2IzLi5jN2FlODYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKQEAgLTM5LDE4ICszOSwxOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5H
IDEKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
KyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA2MAogI2RlZmluZSBXVEZfVVNFX1VOSUZJRURfVEVYVF9DSEVDS0lORyAxCiAjZGVmaW5lIFdU
Rl9VU0VfQVVUT01BVElDX1RFWFRfUkVQTEFDRU1FTlQgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogLy8gU29tZSBwbGF0Zm9ybXMgcHJvdmlkZSBVSSBm
b3Igc3VnZ2VzdGluZyBhdXRvY29ycmVjdGlvbi4KICNkZWZpbmUgV1RGX1VTRV9BVVRPQ09SUkVD
VElPTl9QQU5FTCAxCiAvLyBTb21lIHBsYXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3Jy
ZWN0aW9uIG1hcmtlcnMgdG8gcHJvdmlkZSB2aXN1YWwgY3VlLgogLy8gT24gc3VjaCBwbGF0Zm9y
bSwgaWYgd29yZCB3aXRoIG1hcmtlciBpcyBlZGl0ZWQsIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBt
YXJrZXIuCiAjZGVmaW5lIFdURl9VU0VfTUFSS0VSX1JFTU9WQUxfVVBPTl9FRElUSU5HIDEKLSNl
bmRpZiAvLyAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAK
IGVudW0gVGV4dENoZWNraW5nVHlwZSB7CiAgICAgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nICAg
ID0gMSA8PCAxLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9I
eXBoZW5hdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVu
YXRpb25DRi5jcHAKaW5kZXggZjE3MGI4YS4uMzljYmIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSHlwaGVuYXRpb24uaCIKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaCIK
ICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCkBAIC03Niw0ICs3Niw0
IEBAIHNpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNp
emVfdCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyAhUExBVEZPUk0oTUFDKSB8fCBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvbWFjL0h5cGhlbmF0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVuYXRpb25NYWMubW0KaW5kZXggNGM4Njc2OC4uMGQxMTlm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVuYXRp
b25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvSHlwaGVuYXRp
b25NYWMubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
SHlwaGVuYXRpb24uaCIKIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8PSAxMDYwCiAKICNpbXBvcnQgIkF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUu
aCIKICNpbXBvcnQgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKQEAgLTY3LDQgKzY3
LDQgQEAgc2l6ZV90IGxhc3RIeXBoZW5Mb2NhdGlvbihjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
c2l6ZV90IGxlbmd0aCwgc2l6ZV90IGJlZm9yZUkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
Ci0jZW5kaWYgLy8gZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDw9IDEwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggMWQ1Y2JkOC4uMDY5OTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwMTMsNyArMTAxMyw3IEBA
IGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250YWluc1BhaW50ZWRDb250ZW50KCkgY29uc3QK
ICAgICBpZiAocmVuZGVyZXIoKS0+aXNWaWRlbygpICYmIHRvUmVuZGVyVmlkZW8ocmVuZGVyZXIo
KSktPnNob3VsZERpc3BsYXlWaWRlbygpKQogICAgICAgICByZXR1cm4gaGFzQm94RGVjb3JhdGlv
bnNPckJhY2tncm91bmQocmVuZGVyZXIoKSk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpICYm
IFVTRShDQSkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNlbGlmIEVOQUJMRShXRUJH
TCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAoaXNBY2NlbGVyYXRl
ZENhbnZhcyhyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuIGhhc0JveERlY29yYXRpb25zT3JC
YWNrZ3JvdW5kKHJlbmRlcmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAyNDNjZmYzLi45MGZkODU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApA
QCAtMTc1MywxMCArMTc1MywxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWly
ZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcgogICAgIGlmIChB
bmltYXRpb25Db250cm9sbGVyKiBhbmltQ29udHJvbGxlciA9IHJlbmRlcmVyLT5hbmltYXRpb24o
KSkgewogICAgICAgICByZXR1cm4gKGFuaW1Db250cm9sbGVyLT5pc1J1bm5pbmdBbmltYXRpb25P
blJlbmRlcmVyKHJlbmRlcmVyLCBDU1NQcm9wZXJ0eU9wYWNpdHkpICYmIGluQ29tcG9zaXRpbmdN
b2RlKCkpCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiAhUExBVEZP
Uk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAg
ICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xMDkwNzI1MT4gLSBXZWJLaXQyIGRvZXNuJ3Qgc3Vw
cG9ydCBDQSBhbmltYXRpb25zIG9mIENJIGZpbHRlcnMgb24gTGlvbiBhbmQgYmVsb3cKICAgICAg
ICAgICAgIHx8IGFuaW1Db250cm9sbGVyLT5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKHJl
bmRlcmVyLCBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcikKLSNlbmRpZiAvLyAhU05PV19MRU9QQVJE
ICYmICFMSU9OCisjZW5kaWYgLy8gIVBMQVRGT1JNKE1BQykgfHwgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwCiAjZW5kaWYgLy8gQ1NTX0ZJTFRFUlMKICAgICAgICAgICAg
IHx8IGFuaW1Db250cm9sbGVyLT5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKHJlbmRlcmVy
LCBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGUwOTQzN2QuLjZlZDRhYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTczNSw3ICs3MzUsNyBA
QCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRGaWVsZChSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLAogewogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQpOwogCi0jaWYgZGVmaW5lZChCVUlM
RElOR19PTl9MSU9OKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKICAgICBib29sIHVzZU5TVGV4
dEZpZWxkQ2VsbCA9IG8tPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKQogICAgICAgICAmJiBvLT5z
dHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3Ip
ID09IENvbG9yOjp3aGl0ZQogICAgICAgICAmJiAhby0+c3R5bGUoKS0+aGFzQmFja2dyb3VuZElt
YWdlKCk7CkBAIC0yMTExLDcgKzIxMTEsNyBAQCBJbnRQb2ludCBSZW5kZXJUaGVtZU1hYzo6dm9s
dW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiBtdXRlQnV0dG9uQgogCiBi
b29sIFJlbmRlclRoZW1lTWFjOjpzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVuRm9jdXNlZCgpIGNv
bnN0CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA3MAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yMTgzLDcgKzIxODMsNyBAQCBOU1RleHRGaWVsZENlbGwqIFJlbmRlclRoZW1lTWFjOjp0ZXh0
RmllbGQoKSBjb25zdAogICAgICAgICBbbV90ZXh0RmllbGQuZ2V0KCkgc2V0QmV6ZWxlZDpZRVNd
OwogICAgICAgICBbbV90ZXh0RmllbGQuZ2V0KCkgc2V0RWRpdGFibGU6WUVTXTsKICAgICAgICAg
W21fdGV4dEZpZWxkLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTElPTikgfHwgZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAx
MDcwCiAgICAgICAgIFttX3RleHRGaWVsZC5nZXQoKSBzZXREcmF3c0JhY2tncm91bmQ6WUVTXTsK
ICAgICAgICAgW21fdGV4dEZpZWxkLmdldCgpIHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciB3
aGl0ZUNvbG9yXV07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2Mjk5MTM5
Li5lMmY5OTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0dHA6
Ly93ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBtYWNy
b3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKKworICAgICAgICBUaGlz
IHJlbW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xhdGVzIHRoZSByZWxl
dmFudCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCisgICAgICAgIHVzaW5nIHRo
ZSBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZpZXdlZCBieSBGaWxp
cCBQaXpsby4KKworICAgICAgICAqIHNyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW06CisK
IDIwMTItMDctMTEgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBNaW5pbXVtIHNpemUgdXNlZCBmb3Igb2NjbHVzaW9uIHRyYWNraW5nIHNo
b3VsZCBiZSBhIHNldHRpbmcgb24gQ0NMYXllclRyZWVIb3N0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KaW5kZXggZjcx
OWYyZC4uZjU0MWVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFj
L1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUg
IldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogCi0jaWYgQlVJ
TERJTkdfT05fTEVPUEFSRCB8fCBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIAogLy8gQWRkaXRpb25hbCBMaW9uIEFQ
SXMuCiBlbnVtIHsKQEAgLTUzLDkgKzUzLDkgQEAgdHlwZWRlZiBOU1VJbnRlZ2VyIE5TRXZlbnRQ
aGFzZTsKIC0gKE5TRXZlbnRQaGFzZSltb21lbnR1bVBoYXNlOwogQGVuZAogCi0jZW5kaWYgIC8v
IEJVSUxESU5HX09OX0xFT1BBUkQgfHwgQlVJTERJTkdfT05fU05PV19MRU9QQVJECisjZW5kaWYg
IC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAogCi0jaWYgQlVJTERJ
TkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1
MAogCiAvLyBUaGVzZSBhcmUgbm90IGRlZmluZWQgaW4gdGhlIDEwLjUgU0RLIGJ1dCBhcmUgZGVm
aW5lZCBpbiBsYXRlciBTREtzIGluc2lkZQogLy8gYSBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExP
V0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNSAjaWZkZWYuCkBAIC02NCw3ICs2NCw3IEBAIGVu
dW0gewogICAgIE5TRXZlbnRUeXBlRW5kR2VzdHVyZSAgICAgICA9IDIwCiB9OwogCi0jZW5kaWYg
IC8vIEJVSUxESU5HX09OX0xFT1BBUkQKKyNlbmRpZiAgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDUwCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggMjIwNmQyZi4uYzBiZTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBA
CisyMDEyLTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvOTEwMTU+IFJlbW92ZSBCVUlMRElOR19PTiAvIFRBUkdFVElORyBt
YWNyb3MgaW4gZmF2b3Igb2Ygc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MKKworICAgICAgICBU
aGlzIHJlbW92YWwgd2FzIGhhbmRsZWQgYnkgYSBzY3JpcHQgdGhhdCB0cmFuc2xhdGVzIHRoZSBy
ZWxldmFudCBtYWNyb3MgaW4gdG8gdGhlIGVxdWl2YWxlbnQgY2hlY2tzCisgICAgICAgIHVzaW5n
IHRoZSBzeXN0ZW0gYXZhaWxhYmlsaXR5IG1hY3Jvcy4KKworICAgICAgICBSZXZpZXdlZCBieSBG
aWxpcCBQaXpsby4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENvbnRl
eHRNZW51RGVsZWdhdGUubW06CisgICAgICAgICogTWlzYy9XZWJLaXRFcnJvcnMubToKKyAgICAg
ICAgKiBNaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tOgorICAgICAgICAqIE1pc2MvV2ViTlNGaWxl
TWFuYWdlckV4dHJhcy5tbToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRz
Y2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViQ2xpcFZpZXcubW06Cisg
ICAgICAgICogV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW06CisgICAgICAgICog
V2ViVmlldy9XZWJGcmFtZVZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJGdWxsU2NyZWVu
Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UERGRG9jdW1lbnRFeHRyYXMubW06CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDEyLTA3LTEx
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIC1X
dGF1dG9sb2dpY2FsLWNvbXBhcmUgYW5kIC1Xc2lnbi1jb21wYXJlIHdhcm5pbmcgZmxhZ3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdENv
bnRleHRNZW51RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9EZWZhdWx0RGVsZWdhdGVz
L1dlYkRlZmF1bHRDb250ZXh0TWVudURlbGVnYXRlLm1tCmluZGV4IGQzZWZmOTIuLjc0NjY2MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dENvbnRleHRNZW51RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvRGVmYXVsdERl
bGVnYXRlcy9XZWJEZWZhdWx0Q29udGV4dE1lbnVEZWxlZ2F0ZS5tbQpAQCAtODksNyArODksNyBA
QAogICAgICAgICAgICAgYWN0aW9uID0gQHNlbGVjdG9yKF9zZWFyY2hXaXRoU3BvdGxpZ2h0RnJv
bU1lbnU6KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYk1lbnVJdGVtVGFn
U2VhcmNoV2ViOiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzZWFy
Y2hQcm92aWRlck5hbWUoQWRvcHRDRiwgV0tDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUoKSk7CiAgICAgICAgICAgICB0aXRsZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OlVJX1NUUklOR19JTlRFUk5BTCgiU2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGggc2VhcmNo
IHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCIp
LCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCldOwogI2Vsc2UKQEAgLTEzNiw3ICsxMzYsNyBAQAog
ICAgIH0KIH0KIAotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA8PSAxMDYwCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hUX0NPTlRFWFRfTUVOVV9JVEVN
IDEKICNlbHNlCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hUX0NPTlRFWFRfTUVOVV9JVEVNIDAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdEVycm9ycy5tCmluZGV4IGIxYzZjOTcuLmZlM2RlODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnMubQpAQCAtMTE2LDcgKzExNiw3IEBA
IC0gKGlkKV9pbml0V2l0aFBsdWdpbkVycm9yQ29kZTooaW50KWNvZGUKICAgICAgICAgW3VzZXJJ
bmZvIHNldE9iamVjdDpsb2NhbGl6ZWREZXNjcmlwdGlvbiBmb3JLZXk6TlNMb2NhbGl6ZWREZXNj
cmlwdGlvbktleV07CiAgICAgaWYgKGNvbnRlbnRVUkwpIHsKICAgICAgICAgW3VzZXJJbmZvIHNl
dE9iamVjdDpjb250ZW50VVJMIGZvcktleTpAIk5TRXJyb3JGYWlsaW5nVVJMS2V5Il07Ci0jaWZk
ZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA1MAogICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0Oltjb250ZW50VVJMIF93ZWJf
dXNlclZpc2libGVTdHJpbmddIGZvcktleTpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV07CiAj
ZWxzZQogICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0Oltjb250ZW50VVJMIF93ZWJfdXNlclZp
c2libGVTdHJpbmddIGZvcktleTpOU1VSTEVycm9yRmFpbGluZ1VSTFN0cmluZ0Vycm9yS2V5XTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNDb250cm9sRXh0cmFzLm0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tCmluZGV4IDZlZGY4
NGYuLjgxYjVjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNDb250
cm9sRXh0cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRy
YXMubQpAQCAtNDYsNyArNDYsNyBAQCAtICh2b2lkKXNpemVUb0ZpdEFuZEFkanVzdFdpbmRvd0hl
aWdodAogICAgIE5TUmVjdCB3aW5kb3dGcmFtZSA9IFt3aW5kb3cgZnJhbWVdOwogCiAgICAgQ0dG
bG9hdCBiYWNraW5nU2NhbGVGYWN0b3I7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGJhY2tpbmdTY2FsZUZhY3RvciA9IFt3
aW5kb3cgYmFja2luZ1NjYWxlRmFjdG9yXTsKICNlbHNlCiAgICAgYmFja2luZ1NjYWxlRmFjdG9y
ID0gW3dpbmRvdyB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0KaW5kZXggZmExNTAyMy4uZTdhODA0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNGaWxlTWFuYWdlckV4dHJhcy5t
bQpAQCAtMzYsNyArMzYsNyBAQAogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAotI2lmZGVmIEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAogZXh0ZXJuICJDIiBEQURpc2tSZWYg
REFEaXNrQ3JlYXRlRnJvbVZvbHVtZVBhdGgoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBEQVNl
c3Npb25SZWYgc2Vzc2lvbiwgQ0ZVUkxSZWYgcGF0aCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCmluZGV4IDE2NWEwMDYuLmUzOGFlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcubW0KQEAgLTEyNSw3ICsxMjUsNyBAQCBleHRlcm4gIkMiIHsKIAogICAgICAg
ICBpZiAoYWNjbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCAmJiBfcHJveHktPnJlbmRlcmVyVHlw
ZSgpID09IFVzZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpIHsKICAgICAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGNvZGUgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIFdlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
VmlldyBhbmQgV2ViTmV0c2NhcGVQbHVnaW5WaWV3LgotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAg
ICAgICAvLyBTaW5jZSB0aGlzIGxheWVyIGlzbid0IGdvaW5nIHRvIGJlIGluc2VydGVkIGludG8g
YSB2aWV3LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGxheWVyIGFuZCBmbGlwIGl0cyBnZW9t
ZXRyeQogICAgICAgICAgICAgLy8gaW4gb3JkZXIgdG8gZ2V0IHRoZSBjb29yZGluYXRlIHN5c3Rl
bSByaWdodC4KICAgICAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiByZWFsUGx1Z2luTGF5ZXIo
QWRvcHROUywgX3BsdWdpbkxheWVyLmxlYWtSZWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggODVkN2Fi
YS4uMGYxMzAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNl
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTAyLDcgKzEwMiw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogICAgIF9iYXNlVVJMLmFkb3B0TlMoW2Jhc2VVUkwgY29weV0pOwogICAg
IF9NSU1FVHlwZS5hZG9wdE5TKFtNSU1FIGNvcHldKTsKICAgICAKLSNpZm5kZWYgQlVJTERJTkdf
T05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
ICAgIC8vIEVuYWJsZSAia2lvc2sgbW9kZSIgd2hlbiBpbnN0YW50aWF0aW5nIHRoZSBRVCBwbHVn
LWluIGluc2lkZSBvZiBEYXNoYm9hcmQuIFNlZSA8cmRhcjovL3Byb2JsZW0vNjg3ODEwNT4KICAg
ICBpZiAoW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRv
U3RyaW5nOkAiY29tLmFwcGxlLmRhc2hib2FyZC5jbGllbnQiXSAmJgogICAgICAgICBbX3BsdWdp
blBhY2thZ2UuZ2V0KCkgYnVuZGxlSWRlbnRpZmllcl0gPT0gImNvbS5hcHBsZS5RdWlja1RpbWUg
UGx1Z2luLnBsdWdpbiIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNDI2NDA1Zi4uNGUxYWFkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTEw
OTksNyArMTA5OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0
JiBuciwgTlBSZWN0JiBucHIpCiAjZW5kaWYKICAgICAgICAgICAgIGlmIChhY2NsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBj
YW4gYmUgc2hhcmVkIGJldHdlZW4gV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGFuZCBXZWJO
ZXRzY2FwZVBsdWdpblZpZXcuCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgICAgICAgICAvLyBT
aW5jZSB0aGlzIGxheWVyIGlzbid0IGdvaW5nIHRvIGJlIGluc2VydGVkIGludG8gYSB2aWV3LCB3
ZSBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGxheWVyIGFuZCBmbGlwIGl0cyBnZW9tZXRyeQogICAg
ICAgICAgICAgICAgIC8vIGluIG9yZGVyIHRvIGdldCB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gcmln
aHQuCiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPENBTGF5ZXI+IHJlYWxQbHVnaW5MYXllcihB
ZG9wdE5TLCBfcGx1Z2luTGF5ZXIubGVha1JlZigpKTsKQEAgLTIyMzEsNyArMjIzMSw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIp
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIE5QTlVSTFZQcm94
eTogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkBAIC0yMzQxLDcgKzIzNDEsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYgbnByKQogLy8g
Rm9yIG5vdywgd2UnbGwgZGlzdGluZ3Vpc2ggb2xkZXIgYnJva2VuIHZlcnNpb25zIG9mIFNpbHZl
cmxpZ2h0IGJ5IGFza2luZyB0aGUgcGx1Zy1pbiBpZiBpdCByZXNvbHZlZCBpdHMgZnVsbCBzY3Jl
ZW4gYmFkbmVzcy4KIC0gKHZvaWQpX3dvcmthcm91bmRTaWx2ZXJsaWdodEZ1bGxzY3JlZW5CdWc6
KEJPT0wpaW5pdGlhbGl6ZWRQbHVnaW4KIHsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIEFTU0VSVChf
aXNTaWx2ZXJsaWdodCk7CiAgICAgTlBCb29sIGlzRnVsbHNjcmVlblBlcmZvcm1hbmNlSXNzdWVG
aXhlZCA9IDA7CiAgICAgTlBQbHVnaW5GdW5jcyAqcGx1Z2luRnVuY3MgPSBbX3BsdWdpblBhY2th
Z2UuZ2V0KCkgcGx1Z2luRnVuY3NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDJlYTBkNjYuLmVkNmZhNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KQEAgLTgxOCw3ICs4MTgsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJs
dXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsKLSNpZm5kZWYgQlVJTERJTkdf
T05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAog
ICAgIHJldHVybiBmYWxzZTsKICNlbHNlCiAgICAgcmV0dXJuIHRydWU7CkBAIC04MjcsNyArODI3
LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xs
b3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgcmV0dXJu
IHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBlZDgzZGE2Li42NDk3
Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tCkBAIC03NCw3ICs3NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogQGludGVyZmFjZSBOU1NwZWxsQ2hl
Y2tlciAoV2ViTlNTcGVsbENoZWNrZXJEZXRhaWxzKQogLSAoTlNTdHJpbmcgKilsYW5ndWFnZUZv
cldvcmRSYW5nZTooTlNSYW5nZSlyYW5nZSBpblN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgb3J0
aG9ncmFwaHk6KE5TT3J0aG9ncmFwaHkgKilvcnRob2dyYXBoeTsKIEBlbmQKQEAgLTY5OCw3ICs2
OTgsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxl
bWVudCogZWxlbWVudCkKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNB
ZnRlckNoYW5nZVNlbGVjdGlvbihUZXh0Q2hlY2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAg
Ly8gVGhpcyBwcmV2ZW50cyBlcmFzaW5nIHNwZWxsaW5nIG1hcmtlcnMgb24gT1MgWCBMaW9uIG9y
IGxhdGVyIHRvIG1hdGNoIEFwcEtpdCBvbiB0aGVzZSBNYWMgT1MgWCB2ZXJzaW9ucy4KLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgcmV0dXJuIHR5cGUgIT0gVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOwogI2Vsc2UKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFZlY3Rvcgog
ICAgIH0KIH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBzdGF0aWMgVmVjdG9yPFRleHRDaGVja2luZ1Jl
c3VsdD4gY29yZShOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMsIFRleHRDaGVja2luZ1R5cGVNYXNr
IGNoZWNraW5nVHlwZXMpCiB7CiAgICAgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0
czsKQEAgLTg1Miw3ICs4NTIsNyBAQCBzdGF0aWMgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4g
Y29yZShOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMsIFRleHRDaGVja2luZ1R5cAogCiB2b2lkIFdl
YkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGlu
dCBsZW5ndGgsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0
Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgTlNTdHJp
bmcgKnRleHRTdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNOb0Nv
cHk6Y29uc3RfY2FzdDxVQ2hhcio+KHRleHQpIGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25lOk5P
XTsKICAgICBOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMgPSBbW05TU3BlbGxDaGVja2VyIHNoYXJl
ZFNwZWxsQ2hlY2tlcl0gY2hlY2tTdHJpbmc6dGV4dFN0cmluZyByYW5nZTpOU01ha2VSYW5nZSgw
LCBbdGV4dFN0cmluZyBsZW5ndGhdKSB0eXBlczooY2hlY2tpbmdUeXBlc3xOU1RleHRDaGVja2lu
Z1R5cGVPcnRob2dyYXBoeSkgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpIG9ydGhvZ3JhcGh5Ok5VTEwgd29yZENvdW50Ok5VTExdOwog
ICAgIFt0ZXh0U3RyaW5nIHJlbGVhc2VdOwpAQCAtODk1LDcgKzg5NSw3IEBAIGJvb2wgV2ViRWRp
dG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250
ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgewogICAgIGd1ZXNzZXMuY2xlYXIoKTsKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CiAgICAgTlNTdHJpbmcqIGxhbmd1YWdlID0gbmlsOwogICAgIE5TT3J0aG9ncmFwaHkqIG9ydGhv
Z3JhcGh5ID0gbmlsOwogICAgIE5TU3BlbGxDaGVja2VyICpjaGVja2VyID0gW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl07CkBAIC05MjUsNyArOTI1LDcgQEAgdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KIAotI2lmbmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDYwCiBAaW50ZXJmYWNlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgOiBOU09iamVjdAog
ewogICAgIFdlYkVkaXRvckNsaWVudCogX2NsaWVudDsKQEAgLTk2NSw3ICs5NjUsNyBAQCB2b2lk
IFdlYkVkaXRvckNsaWVudDo6ZGlkQ2hlY2tTdWNjZWVkKGludCBzZXF1ZW5jZSwgTlNBcnJheSog
cmVzdWx0cykKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdD4gcmVxdWVzdCkKIHsKLSNp
Zm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA2MAogICAgIEFTU0VSVCghbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0KTsKICAgICBt
X3RleHRDaGVja2luZ1JlcXVlc3QgPSByZXF1ZXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGNh
NzhlMzEuLjYzNjQ0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC02NjgsNyArNjY4LDcgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaXJzdExheW91dCgpCiAgICAgV2Vi
RHluYW1pY1Njcm9sbEJhcnNWaWV3ICpzY3JvbGxWaWV3ID0gW21fd2ViRnJhbWUtPl9wcml2YXRl
LT53ZWJGcmFtZVZpZXcgX3Njcm9sbFZpZXddOwogICAgIGlmIChbZ2V0V2ViVmlldyhtX3dlYkZy
YW1lLmdldCgpKSBkcmF3c0JhY2tncm91bmRdKQogICAgICAgICBbc2Nyb2xsVmlldyBzZXREcmF3
c0JhY2tncm91bmQ6WUVTXTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgW3Njcm9sbFZpZXcgc2V0VmVydGljYWxTY3JvbGxF
bGFzdGljaXR5Ok5TU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpY107CiAgICAgW3Njcm9sbFZpZXcg
c2V0SG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk6TlNTY3JvbGxFbGFzdGljaXR5QXV0b21hdGlj
XTsKICNlbmRpZgpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6cHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpCiAKICAgICBXZWJEeW5hbWljU2Nyb2xsQmFyc1Zp
ZXcgKnNjcm9sbFZpZXcgPSBbbV93ZWJGcmFtZS0+X3ByaXZhdGUtPndlYkZyYW1lVmlldyBfc2Ny
b2xsVmlld107CiAgICAgW3Njcm9sbFZpZXcgc2V0RHJhd3NCYWNrZ3JvdW5kOk5PXTsKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAg
ICAgW3Njcm9sbFZpZXcgc2V0VmVydGljYWxTY3JvbGxFbGFzdGljaXR5Ok5TU2Nyb2xsRWxhc3Rp
Y2l0eU5vbmVdOwogICAgIFtzY3JvbGxWaWV3IHNldEhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5
Ok5TU2Nyb2xsRWxhc3RpY2l0eU5vbmVdOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZDFmMmYx
NS4uMTAyY2VmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtNDMsNyArNDMsNyBAQCB2b2lkIEluaXRXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIElOSVQoQWR2
YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbik7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoQ0FMYXllckVu
dW1lcmF0ZVJlY3RzQmVpbmdEcmF3bldpdGhCbG9jayk7CiAjZW5kaWYKICAgICBJTklUKENHQ29u
dGV4dEdldFNob3VsZFNtb290aEZvbnRzKTsKQEAgLTExOSwxNCArMTE5LDE0IEBAIHZvaWQgSW5p
dFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKEdldEdseXBoc0ZvckNoYXJh
Y3RlcnMpOwogICAgIElOSVQoR2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0ZXJzKTsKIAotI2lm
IGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiAg
ICAgSU5JVChHZXRIeXBoZW5hdGlvbkxvY2F0aW9uQmVmb3JlSW5kZXgpOwogICAgIElOSVQoR2V0
TlNFdmVudE1vbWVudHVtUGhhc2UpOwogI2VuZGlmCiAKICAgICBJTklUKENyZWF0ZUNUTGluZVdp
dGhVbmlDaGFyUHJvdmlkZXIpOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoSU9TdXJmYWNlQ29udGV4dENyZWF0
ZSk7CiAgICAgSU5JVChJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1hZ2UpOwogICAgIElOSVQoQ3Jl
YXRlQ1RUeXBlc2V0dGVyV2l0aFVuaUNoYXJQcm92aWRlckFuZE9wdGlvbnMpOwpAQCAtMTc0LDI0
ICsxNzQsMjQgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhpcyBmaWxl
IGluIENocm9taXVtLgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25N
YWluUXVldWUpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgSU5JVChHZXRNYWNPU1hWZXJzaW9uU3RyaW5nKTsK
ICAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlTGlvbik7CiAjZW5kaWYKIAot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICBJTklUKENHUGF0aEFkZFJvdW5kZWRSZWN0KTsKICNlbmRpZgogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogICAgIElOSVQoQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGlu
Zyk7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JNKElPUykKICAgICBJ
TklUKEZpbHRlcklzTWFuYWdlZFNlc3Npb24pOwogICAgIElOSVQoRmlsdGVyQ3JlYXRlSW5zdGFu
Y2UpOwogICAgIElOSVQoRmlsdGVyUmVsZWFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJDbGlwVmlldy5tbQppbmRleCA3NDcwOWIwLi5kMDZmZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KQEAgLTUyLDcgKzUyLDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAtICh2b2lkKV9pbW1lZGlhdGVTY3JvbGxUb1BvaW50OihOU1BvaW50KW5ld09y
aWdpbjsKIEBlbmQKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBAaW50ZXJmYWNlIE5TV2luZG93IChXZWJO
U1dpbmRvd0RldGFpbHMpCiAtICh2b2lkKV9kaXNhYmxlRGVsYXllZFdpbmRvd0Rpc3BsYXk7CiAt
ICh2b2lkKV9lbmFibGVEZWxheWVkV2luZG93RGlzcGxheTsKQEAgLTEwNSwxMyArMTA1LDEzIEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIF9pc1Njcm9sbGluZyA9IFlFUzsKIAot
I2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDYwCiAgICAgW1tzZWxmIHdpbmRvd10gX2Rpc2FibGVEZWxheWVkV2luZG93
RGlzcGxheV07CiAjZW5kaWYKIAogICAgIFtzdXBlciBfaW1tZWRpYXRlU2Nyb2xsVG9Qb2ludDpu
ZXdPcmlnaW5dOwogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBbW3NlbGYgd2luZG93XSBfZW5hYmxl
RGVsYXllZFdpbmRvd0Rpc3BsYXldOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0KaW5kZXggODAxMTA5NC4u
ODM5YjU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5hbWlj
U2Nyb2xsQmFyc1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5h
bWljU2Nyb2xsQmFyc1ZpZXcubW0KQEAgLTQxMyw3ICs0MTMsNyBAQCBzdGF0aWMgY29uc3QgdW5z
aWduZWQgY01heFVwZGF0ZVNjcm9sbGJhcnNQYXNzID0gMjsKICAgICAvLyBUaGlzIGNhbGwgdXBk
YXRlcyB0aGUgaW5pdGlhbCBwb3NpdGlvbiBjb3JyZWN0bHkuCiAgICAgW3NlbGYgYWRqdXN0Rm9y
U2Nyb2xsT3JpZ2luQ2hhbmdlXTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAg
TlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbc2VsZiBkb2N1bWVudFZpZXddOwogICAgIGlmIChbZG9j
dW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsKICAgICAgICAg
V2ViSFRNTFZpZXcgKmh0bWxWaWV3ID0gKFdlYkhUTUxWaWV3ICopZG9jdW1lbnRWaWV3OwpAQCAt
NTIyLDcgKzUyMiw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4VXBkYXRlU2Nyb2xsYmFy
c1Bhc3MgPSAyOwogICAgIEJPT0wgaXNDb250aW51b3VzOwogICAgIFdLR2V0V2hlZWxFdmVudERl
bHRhcyhldmVudCwgJmRlbHRhWCwgJmRlbHRhWSwgJmlzQ29udGludW91cyk7CiAKLSNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAg
TlNFdmVudFBoYXNlIG1vbWVudHVtUGhhc2UgPSBbZXZlbnQgbW9tZW50dW1QaGFzZV07CiAgICAg
Qk9PTCBpc0xhdGNoaW5nRXZlbnQgPSBtb21lbnR1bVBoYXNlICYgTlNFdmVudFBoYXNlQmVnYW4g
fHwgbW9tZW50dW1QaGFzZSAmIE5TRXZlbnRQaGFzZVN0YXRpb25hcnk7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCA3YTA5ZTRlLi5jOThlMzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtMzIyLDcg
KzMyMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVE
aWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhl
IE5TQXBwS2l0VmVyc2lvbk51bWJlcldpdGhEZWZlcnJlZFdpbmRvd0Rpc3BsYXlTdXBwb3J0IGNo
ZWNrIG9uY2UKIC8vIG9uY2UgQXBwS2l0J3MgRGVmZXJyZWQgV2luZG93IERpc3BsYXkgc3VwcG9y
dCBpcyBhdmFpbGFibGUuCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCAhZGVm
aW5lZChOU0FwcEtpdFZlcnNpb25OdW1iZXJXaXRoRGVmZXJyZWRXaW5kb3dEaXNwbGF5U3VwcG9y
dCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAgfHwgIWRlZmlu
ZWQoTlNBcHBLaXRWZXJzaW9uTnVtYmVyV2l0aERlZmVycmVkV2luZG93RGlzcGxheVN1cHBvcnQp
CiAgICAgICAgIC8vIENvcmVHcmFwaGljcyBkZWZlcnJlZCB1cGRhdGVzIGFyZSBkaXNhYmxlZCBp
ZiBXZWJLaXRFbmFibGVDb2FsZXNjZWRVcGRhdGVzUHJlZmVyZW5jZUtleSBpcyBOTwogICAgICAg
ICAvLyBvciBoYXMgbm8gdmFsdWUuIEZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFggMTAu
NSBhbmQgbG93ZXIsIGRlZmVycmVkIHVwZGF0ZXMgYXJlIG9mZiBieSBkZWZhdWx0LgogICAgICAg
ICBpZiAoIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6
V2ViS2l0RW5hYmxlRGVmZXJyZWRVcGRhdGVzUHJlZmVyZW5jZUtleV0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCBh
Y2Q2OThhLi5mZWE4MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIEludFJl
Y3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbWVudCogZWxlbWVudCkKIC0gKHZvaWQpX3N0YXJ0
RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0
aW9uOwogQGVuZAogCi0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDw9IDEwNjAKIEBpbnRlcmZhY2UgTlNXaW5kb3coY29udmVydFJlY3RUb1NjcmVlbkZv
ckxlb3BhcmRBbmRTbm93TGVvcGFyZCkKIC0gKE5TUmVjdCljb252ZXJ0UmVjdFRvU2NyZWVuOihO
U1JlY3QpYVJlY3Q7CiBAZW5kCkBAIC0yNzMsMTQgKzI3MywxNCBAQCBzdGF0aWMgSW50UmVjdCBz
Y3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBXS1dpbmRvd1Nl
dENsaXBSZWN0KFtzZWxmIHdpbmRvd10sIHdpbmRvd0JvdW5kcyk7CiAgICAgICAgIAogICAgICAg
ICBOU1dpbmRvdyAqd2ViV2luZG93ID0gW193ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCkgd2luZG93
XTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAgICAgICAgIC8vIEluIExpb24sIE5TV2luZG93IHdpbGwgYW5pbWF0ZSBpbnRvIGFu
ZCBvdXQgb2Ygb3JkZXJPdXQgb3BlcmF0aW9ucy4gU3VwcHJlc3MgdGhhdAogICAgICAgICAvLyBi
ZWhhdmlvciBoZXJlLCBtYWtpbmcgc3VyZSB0byByZXNldCB0aGUgYW5pbWF0aW9uIGJlaGF2aW9y
IGFmdGVyd2FyZC4KICAgICAgICAgTlNXaW5kb3dBbmltYXRpb25CZWhhdmlvciBhbmltYXRpb25C
ZWhhdmlvciA9IFt3ZWJXaW5kb3cgYW5pbWF0aW9uQmVoYXZpb3JdOwogICAgICAgICBbd2ViV2lu
ZG93IHNldEFuaW1hdGlvbkJlaGF2aW9yOk5TV2luZG93QW5pbWF0aW9uQmVoYXZpb3JOb25lXTsK
ICNlbmRpZgogICAgICAgICBbd2ViV2luZG93IG9yZGVyT3V0OnNlbGZdOwotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAg
W3dlYldpbmRvdyBzZXRBbmltYXRpb25CZWhhdmlvcjphbmltYXRpb25CZWhhdmlvcl07CiAjZW5k
aWYKICAgICAgICAgCkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVj
dE9mQ29udGVudHMoRWxlbWVudCogZWxlbWVudCkKICAgICBbc2VsZiBfdXBkYXRlTWVudUFuZERv
Y2tGb3JGdWxsU2NyZWVuXTsKICAgICAKICAgICBOU1dpbmRvdyogd2ViV2luZG93ID0gW193ZWJW
aWV3UGxhY2Vob2xkZXIuZ2V0KCkgd2luZG93XTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gSW4gTGlvbiwgTlNXaW5k
b3cgd2lsbCBhbmltYXRlIGludG8gYW5kIG91dCBvZiBvcmRlck91dCBvcGVyYXRpb25zLiBTdXBw
cmVzcyB0aGF0CiAgICAgLy8gYmVoYXZpb3IgaGVyZSwgbWFraW5nIHN1cmUgdG8gcmVzZXQgdGhl
IGFuaW1hdGlvbiBiZWhhdmlvciBhZnRlcndhcmQuCiAgICAgTlNXaW5kb3dBbmltYXRpb25CZWhh
dmlvciBhbmltYXRpb25CZWhhdmlvciA9IFt3ZWJXaW5kb3cgYW5pbWF0aW9uQmVoYXZpb3JdOwpA
QCAtMzM4LDcgKzMzOCw3IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIFt3ZWJXaW5kb3cgc2V0Q29sbGVjdGlvbkJlaGF2aW9y
OmJlaGF2aW9yXTsKICAgICB9IGVsc2UKICAgICAgICAgW3dlYldpbmRvdyBvcmRlcldpbmRvdzpO
U1dpbmRvd0JlbG93IHJlbGF0aXZlVG86W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXV07Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgIFt3ZWJXaW5kb3cgc2V0QW5pbWF0aW9uQmVoYXZpb3I6YW5pbWF0aW9uQmVoYXZpb3Jd
OwogI2VuZGlmCiAKQEAgLTQxNSw3ICs0MTUsNyBAQCBzdGF0aWMgSW50UmVjdCBzY3JlZW5SZWN0
T2ZDb250ZW50cyhFbGVtZW50KiBlbGVtZW50KQogLSAodm9pZClfdXBkYXRlTWVudUFuZERvY2tG
b3JGdWxsU2NyZWVuCiB7CiAgICAgLy8gTlNBcHBsaWNhdGlvblByZXNlbnRhdGlvbk9wdGlvbnMg
aXMgYXZhaWxhYmxlIG9uID4gMTAuNiBvbmx5OgotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgTlNBcHBs
aWNhdGlvblByZXNlbnRhdGlvbk9wdGlvbnMgb3B0aW9ucyA9IE5TQXBwbGljYXRpb25QcmVzZW50
YXRpb25EZWZhdWx0OwogICAgIE5TU2NyZWVuKiBmdWxsc2NyZWVuU2NyZWVuID0gW1tzZWxmIHdp
bmRvd10gc2NyZWVuXTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCmluZGV4IDA0YTVhOTkuLjUwNWRiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQpAQCAtMjg1LDcgKzI4NSw3IEBAIGV4dGVybiBOU1N0cmluZyAqTlNUZXh0
SW5wdXRSZXBsYWNlbWVudFJhbmdlQXR0cmlidXRlTmFtZTsKIC0gKHZvaWQpX2ludmFsaWRhdGVH
U3RhdGVzRm9yVHJlZTsKIC0gKHZvaWQpX3Byb3BhZ2F0ZURpcnR5UmVjdHNUb09wYXF1ZUFuY2Vz
dG9yczsKIC0gKHZvaWQpX3dpbmRvd0NoYW5nZWRLZXlTdGF0ZTsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPT0gMTA1MAogLSAodm9pZClfdXBkYXRlTGF5ZXJHZW9tZXRyeUZyb21WaWV3OwogI2VuZGlm
CiBAZW5kCkBAIC00MTEsNyArNDExLDcgQEAgc3RhdGljIENhY2hlZEltYWdlQ2xpZW50KiBwcm9t
aXNlZERhdGFDbGllbnQoKQogLSAodm9pZClfd2ViX2NsZWFyUHJpbnRpbmdNb2RlUmVjdXJzaXZl
OwogQGVuZAogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAogQGludGVyZmFjZSBXZWJIVE1MVmlldyAoV2Vi
SFRNTFZpZXdUZXh0Q2hlY2tpbmdJbnRlcm5hbCkKIC0gKHZvaWQpb3JkZXJGcm9udFN1YnN0aXR1
dGlvbnNQYW5lbDooaWQpc2VuZGVyOwpAQCAtNzk0LDcgKzc5NCw3IEBAIHN0YXRpYyBOU1VSTCog
dW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVsYXRpdmVQYXJ0KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicmVzb3VyY2VzOjBdKSkK
ICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIGlmIChbdHlw
ZXMgY29udGFpbnNPYmplY3Q6TlNQSUNUUGJvYXJkVHlwZV0gJiYKICAgICAgICAgKGZyYWdtZW50
ID0gW3NlbGYgX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDpwYXN0ZWJvYXJkIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JUeXBlOk5T
UElDVFBib2FyZFR5cGUKQEAgLTg3NSw3ICs4NzUsNyBAQCBzdGF0aWMgTlNVUkwqIHVuaXF1ZVVS
TFdpdGhSZWxhdGl2ZVBhcnQoTlNTdHJpbmcgKnJlbGF0aXZlUGFydCkKICAgICBET01SYW5nZSAq
cmFuZ2UgPSBbc2VsZiBfc2VsZWN0ZWRSYW5nZV07CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUoW3NlbGYgX2ZyYW1lXSk7CiAgICAgCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIERPTURvY3VtZW50RnJhZ21lbnQgKmZy
YWdtZW50ID0gW3NlbGYgX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDpwYXN0ZWJvYXJk
IGluQ29udGV4dDpyYW5nZSBhbGxvd1BsYWluVGV4dDphbGxvd1BsYWluVGV4dF07CiAgICAgaWYg
KGZyYWdtZW50ICYmIFtzZWxmIF9zaG91bGRJbnNlcnRGcmFnbWVudDpmcmFnbWVudCByZXBsYWNp
bmdET01SYW5nZTpyYW5nZSBnaXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkXSkK
ICAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+cGFzdGVBc0ZyYWdtZW50KGNvcmUoZnJhZ21l
bnQpLCBbc2VsZiBfY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQ6cGFzdGVib2FyZF0sIGZh
bHNlKTsKQEAgLTEyMzIsNyArMTIzMiw3IEBAIHN0YXRpYyBOU1VSTCogdW5pcXVlVVJMV2l0aFJl
bGF0aXZlUGFydChOU1N0cmluZyAqcmVsYXRpdmVQYXJ0KQogICAgIH0KICAgICBfcHJpdmF0ZS0+
bGFzdFNjcm9sbFBvc2l0aW9uID0gb3JpZ2luOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEw
NTAKICAgICBbc2VsZiBfdXBkYXRlTGF5ZXJIb3N0aW5nVmlld1Bvc2l0aW9uXTsKICNlbmRpZgog
fQpAQCAtMTM4OSw3ICsxMzg5LDcgQEAgc3RhdGljIE5TVVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRp
dmVQYXJ0KE5TU3RyaW5nICpyZWxhdGl2ZVBhcnQpCiAKIHN0YXRpYyBCT09MIGlzUXVpY2tMb29r
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGNvbnN0IGludCBrQ0dTRXZlbnRTeXN0ZW1T
dWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCA9IDk7CiAgICAgcmV0dXJuIFtldmVudCB0
eXBlXSA9PSBOU1N5c3RlbURlZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5
c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0g
J2xrdXAnOwogI2Vsc2UKQEAgLTE2NTgsNyArMTY1OCw3IEBAIHN0YXRpYyBib29sIG1vdXNlRXZl
bnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgIHN0YXRpYyBOU0FycmF5
ICp0eXBlcyA9IG5pbDsKICAgICBpZiAoIXR5cGVzKSB7CiAgICAgICAgIHR5cGVzID0gW1tOU0Fy
cmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6V2ViQXJjaGl2ZVBib2FyZFR5cGUsIE5TSFRNTFBi
b2FyZFR5cGUsIE5TRmlsZW5hbWVzUGJvYXJkVHlwZSwgTlNUSUZGUGJvYXJkVHlwZSwgTlNQREZQ
Ym9hcmRUeXBlLAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICAgICAgICAgICAgIE5TUElDVFBib2FyZFR5cGUs
CiAjZW5kaWYKICAgICAgICAgICAgIE5TVVJMUGJvYXJkVHlwZSwgTlNSVEZEUGJvYXJkVHlwZSwg
TlNSVEZQYm9hcmRUeXBlLCBOU1N0cmluZ1Bib2FyZFR5cGUsIE5TQ29sb3JQYm9hcmRUeXBlLCBr
VVRUeXBlUE5HLCBuaWxdOwpAQCAtMjA0Nyw3ICsyMDQ3LDcgQEAgc3RhdGljIGJvb2wgbW91c2VF
dmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIFtyZXNvdXJj
ZSByZWxlYXNlXTsKICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgIH0KLSNpZmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDUwCiAgICAgaWYgKHBib2FyZFR5cGUgPT0gTlNQSUNUUGJvYXJkVHlwZSkgewogICAgICAgICBX
ZWJSZXNvdXJjZSAqcmVzb3VyY2UgPSBbW1dlYlJlc291cmNlIGFsbG9jXSBpbml0V2l0aERhdGE6
W3Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6TlNQSUNUUGJvYXJkVHlwZV0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMOnVuaXF1
ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoQCJpbWFnZS5waWN0IikKQEAgLTI2OTksNyArMjY5OSw3IEBA
IFdFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQogICAgICAgICByZXR1cm4gWUVTOwogICAg
IH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Iob3JkZXJG
cm9udFN1YnN0aXR1dGlvbnNQYW5lbDopKSB7CiAgICAgICAgIE5TTWVudUl0ZW0gKm1lbnVJdGVt
ID0gKE5TTWVudUl0ZW0gKilpdGVtOwogICAgICAgICBpZiAoW21lbnVJdGVtIGlzS2luZE9mQ2xh
c3M6W05TTWVudUl0ZW0gY2xhc3NdXSkgewpAQCAtMjg1Miw3ICsyODUyLDcgQEAgV0VCQ09SRV9D
T01NQU5EKHlhbmtBbmRTZWxlY3QpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIExlZ2FjeSBzY3JvbGxiYXJzIHJlcXVpcmUgdHJh
Y2tpbmcgdGhlIG1vdXNlIGF0IGFsbCB0aW1lcy4KICAgICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9s
bGVyU3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAgICAgICAgIHJldHVybjsKQEAg
LTMzOTEsNyArMzM5MSw3IEBAIHN0YXRpYyB2b2lkIHNldE1lbnVUYXJnZXRzKE5TTWVudSogbWVu
dSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
ICAgICBpZiAoX3ByaXZhdGUtPnRyYWNraW5nQXJlYUZvck5vbktleVdpbmRvdykgewogICAgICAg
ICBbc2VsZiByZW1vdmVUcmFja2luZ0FyZWE6X3ByaXZhdGUtPnRyYWNraW5nQXJlYUZvck5vbktl
eVdpbmRvd107CiAgICAgICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdBcmVhRm9yTm9uS2V5V2luZG93
IHJlbGVhc2VdOwpAQCAtMzQyNCw3ICszNDI0LDcgQEAgc3RhdGljIHZvaWQgc2V0TWVudVRhcmdl
dHMoTlNNZW51KiBtZW51KQogICAgICAgICBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVy
IGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107CiAgICAgfQogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09
IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkgewogICAgICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xs
YmFycyBoYXZlIGRlc2lnbiBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2Ug
YWxsIHRoZSB0aW1lLgogICAgICAgICAvLyBJdCdzIGVhc2llc3QgdG8gZG8gdGhpcyB3aXRoIGEg
dHJhY2tpbmcgYXJlYSwgd2hpY2ggd2Ugd2lsbCByZW1vdmUgd2hlbiB0aGUgd2luZG93IGlzIGtl
eQpAQCAtNDg5OCw3ICs0ODk4LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4g
Y3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIAogc3RhdGljIEJPT0wgd3Jp
dGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiB7Ci0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAg
ICByZXR1cm4gWUVTOwogI2Vsc2UKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpAQCAtNDkzNiw3ICs0OTM2LDcgQEAg
c3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgW3Nl
bGYgX2NoYW5nZUJhc2VXcml0aW5nRGlyZWN0aW9uVG86TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRU
b0xlZnRdOwogfQogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogLSAodm9pZCljaGFuZ2VCYXNlV3JpdGluZ0Rp
cmVjdGlvblRvTFRSOihpZClzZW5kZXIKIHsKICAgICBbc2VsZiBtYWtlQmFzZVdyaXRpbmdEaXJl
Y3Rpb25MZWZ0VG9SaWdodDpzZW5kZXJdOwpAQCAtNTE1MSw3ICs1MTUxLDcgQEAgc3RhdGljIENH
UG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50
IHBvaW50KQogfQogCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogCiAtICh2b2lkKW9yZGVyRnJvbnRTdWJz
dGl0dXRpb25zUGFuZWw6KGlkKXNlbmRlcgogewpAQCAtNTI4Niw3ICs1Mjg2LDcgQEAgc3RhdGlj
IENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1Bv
aW50IHBvaW50KQogICAgIGlmIChmb250KQogICAgICAgICByZWN0Lm9yaWdpbi55ICs9IFtmb250
IGFzY2VuZGVyXTsKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgW3NlbGYgc2hvd0RlZmluaXRpb25G
b3JBdHRyaWJ1dGVkU3RyaW5nOmF0dHJTdHJpbmcgYXRQb2ludDpyZWN0Lm9yaWdpbl07CiAgICAg
cmV0dXJuOwogI2VuZGlmCkBAIC01NDc2LDcgKzU0NzYsNyBAQCBzdGF0aWMgQ0dQb2ludCBjb3Jl
R3JhcGhpY3NTY3JlZW5Qb2ludEZvckFwcEtpdFNjcmVlblBvaW50KE5TUG9pbnQgcG9pbnQpCiB7
CiAgICAgaWYgKCFfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykgewogICAgICAgICBOU1ZpZXcq
IGhvc3RpbmdWaWV3ID0gW1tXZWJMYXllckhvc3RpbmdGbGlwcGVkVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpbc2VsZiBib3VuZHNdXTsKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgICAgICBbaG9zdGlu
Z1ZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVp
Z2h0U2l6YWJsZSldOwogI2VuZGlmCiAgICAgICAgIFtzZWxmIGFkZFN1YnZpZXc6aG9zdGluZ1Zp
ZXddOwpAQCAtNTQ4OCw3ICs1NDg4LDcgQEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2Ny
ZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQogICAgIC8vIE1ha2Ug
YSBjb250YWluZXIgbGF5ZXIsIHdoaWNoIHdpbGwgZ2V0IHNpemVkL3Bvc2l0aW9uZWQgYnkgQXBw
S2l0IGFuZCBDQS4KICAgICBDQUxheWVyKiB2aWV3TGF5ZXIgPSBbV2ViUm9vdExheWVyIGxheWVy
XTsKIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID09IDEwNTAKICAgICAvLyBUdXJuIG9mZiBkZWZhdWx0IGFuaW1hdGlvbnMu
CiAgICAgTlNOdWxsICpudWxsVmFsdWUgPSBbTlNOdWxsIG51bGxdOwogICAgIE5TRGljdGlvbmFy
eSAqYWN0aW9ucyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoK
QEAgLTU1MjIsMTAgKzU1MjIsMTAgQEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVu
UG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQogICAgIGlmIChbW3NlbGYg
X3dlYlZpZXddIF9wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zXSkKICAg
ICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0
aW9uTmFtZTpfV2ViVmlld0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlv
biBvYmplY3Q6W3NlbGYgX3dlYlZpZXddIHVzZXJJbmZvOm5pbF07CiAgICAgCi0jaWZkZWYgQlVJ
TERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0g
MTA1MAogICAgIFt2aWV3TGF5ZXIgc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1h
a2VTY2FsZSgxLCAtMSwgMSldOyAvLyBzZXRHZW9tZXRyeUZsaXBwZWQ6IGRvZXNuJ3QgZXhpc3Qg
b24gTGVvcGFyZC4KICAgICBbc2VsZiBfdXBkYXRlTGF5ZXJIb3N0aW5nVmlld1Bvc2l0aW9uXTsK
LSNlbGlmIChkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlM
RElOR19PTl9MSU9OKSkKKyNlbGlmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0g
MTA3MAogICAgIC8vIERvIGdlb21ldHJ5IGZsaXBwaW5nIGhlcmUsIHdoaWNoIGZsaXBzIGFsbCB0
aGUgY29tcG9zaXRpbmcgbGF5ZXJzIHNvIHRoZXkgYXJlIHRvcC1kb3duLgogICAgIFt2aWV3TGF5
ZXIgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107CiAjZWxzZQpAQCAtNTU0NCw3ICs1NTQ0LDcgQEAg
c3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9pbnRGb3JBcHBLaXRTY3JlZW5Qb2lu
dChOU1BvaW50IHBvaW50KQogICAgIH0KIH0KIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKIC8vIFRoaXMgbWV0
aG9kIGlzIG5lY2Vzc2FyeSBvbiBMZW9wYXJkIHRvIHdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxl
bS83MDY3ODkyPi4KIC0gKHZvaWQpX3VwZGF0ZUxheWVySG9zdGluZ1ZpZXdQb3NpdGlvbgogewpA
QCAtNTU3Miw3ICs1NTcyLDcgQEAgc3RhdGljIENHUG9pbnQgY29yZUdyYXBoaWNzU2NyZWVuUG9p
bnRGb3JBcHBLaXRTY3JlZW5Qb2ludChOU1BvaW50IHBvaW50KQogICAgIFtfcHJpdmF0ZS0+bGF5
ZXJIb3N0aW5nVmlldyBfdXBkYXRlTGF5ZXJHZW9tZXRyeUZyb21WaWV3XTsgIC8vIFdvcmthcm91
bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS83MDcxNjM2PgogICAgIFtfcHJpdmF0ZS0+bGF5ZXJIb3N0
aW5nVmlldyBzZXRGcmFtZTpsYXllclZpZXdGcmFtZV07CiB9Ci0jZW5kaWYgLy8gZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKQorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPT0gMTA1MAogCiAtICh2b2lkKWRyYXdMYXllcjooQ0FMYXllciAqKWxheWVyIGluQ29u
dGV4dDooQ0dDb250ZXh0UmVmKWN0eAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3SW50ZXJuYWwuaAppbmRleCBhNDE1M2FiLi4xMzdhMTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaApAQCAtNjYsNyAr
NjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAtIChCT09MKV93ZWJfaXNEcmF3aW5nSW50b0xh
eWVyOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogLSAodm9pZClfdXBk
YXRlTGF5ZXJIb3N0aW5nVmlld1Bvc2l0aW9uOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGRG9jdW1lbnRFeHRyYXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlBERkRvY3VtZW50RXh0cmFzLm1tCmluZGV4IDNlNzAxY2YuLjU5
MmVkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGRG9jdW1l
bnRFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZEb2N1bWVu
dEV4dHJhcy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCA8UERGS2l0L1BERkRvY3VtZW50
Lmg+CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgogCi0jaWZkZWYgQlVJTERJTkdfT05f
TEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogQGlu
dGVyZmFjZSBQREZEb2N1bWVudCAoSW50ZXJuYWwpCiAtIChDR1BERkRvY3VtZW50UmVmKWRvY3Vt
ZW50UmVmOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KaW5kZXggOWMyODIzMC4uN2ViMmY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zNDYsNyArMzQ2LDcgQEAgc3RhdGljIFdlYkNhY2hlTW9k
ZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgQCIwIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXksCiAgICAg
ICAgIEAiMCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlU2l0ZVNwZWNpZmlj
U3Bvb2ZpbmdQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpX
ZWJLaXRFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3JdLCBXZWJLaXRFZGl0YWJsZUxpbmtCZWhh
dmlvclByZWZlcmVuY2VLZXksCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6V2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWRd
LAogI2Vsc2UKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViVGV4dERpcmVjdGlv
blN1Ym1lbnVOZXZlckluY2x1ZGVkXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZXNvdXJjZUludGVybmFsLmgKaW5kZXggYmE4NDEwNS4uMzI0NDJjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmgKQEAgLTI5LDcgKzI5
LDcgQEAKICNpbXBvcnQgIldlYlJlc291cmNlUHJpdmF0ZS5oIgogI2ltcG9ydCA8d3RmL1Bhc3NS
ZWZQdHIuaD4KIAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID09IDEwNTAKICNkZWZpbmUgTUFJTF9USFJFQURfV09SS0FST1VO
RCAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJT
Y3JpcHREZWJ1Z0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlw
dERlYnVnRGVsZWdhdGUuaAppbmRleCA1ODU3MDBmLi41MTgyZjMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUuaApAQCAtMjgsNyAr
MjgsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotI2lmZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNTAKIHR5cGVkZWYgaW50IFdlYlNvdXJjZUlkOwogI2Vsc2UKIHR5cGVkZWYgaW50cHRyX3Qg
V2ViU291cmNlSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYzM1Yjg3
My4uZWVhMWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNDYzLDcg
KzQ2Myw3IEBAIE5TU3RyaW5nICpfV2ViVmlld0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z05vdGlmaWNhdGlvbiA9IEAiX1dlYlZpZXdEaWRTdGFyCiAKIHN0YXRpYyBCT09MIGNvbnRpbnVv
dXNTcGVsbENoZWNraW5nRW5hYmxlZDsKIHN0YXRpYyBCT09MIGdyYW1tYXJDaGVja2luZ0VuYWJs
ZWQ7Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNjAKIHN0YXRpYyBCT09MIGF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0
aW9uRW5hYmxlZDsKIHN0YXRpYyBCT09MIGF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkOwog
c3RhdGljIEJPT0wgYXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ7CkBAIC01MTAsNyAr
NTEwLDcgQEAgc3RhdGljIENGTXV0YWJsZVNldFJlZiBhbGxXZWJWaWV3c1NldDsKIAogQGltcGxl
bWVudGF0aW9uIFdlYlZpZXcgKFdlYlByaXZhdGUpCiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAKIHN0YXRpYyBOU1N0cmluZyAqY3Jl
YXRlTWFjT1NYVmVyc2lvblN0cmluZygpCiB7CkBAIC01NDUsNyArNTQ1LDcgQEAgc3RhdGljIE5T
U3RyaW5nICpjcmVhdGVNYWNPU1hWZXJzaW9uU3RyaW5nKCkKICAgICByZXR1cm4gW1tOU1N0cmlu
ZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlZCIsIG1ham9yXTsKIH0KIAotI2VuZGlmIC8vICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TElPTikKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
IAogc3RhdGljIE5TU3RyaW5nICpjcmVhdGVVc2VyVmlzaWJsZVdlYktpdFZlcnNpb25TdHJpbmco
KQogewpAQCAtNjExLDcgKzYxMSw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVBcHBs
aWNhdGlvbkNhY2hlUGF0aElmTmVjZXNzYXJ5KCkKIAogc3RhdGljIGJvb2wgcnVubmluZ0xlb3Bh
cmRNYWlsKCkKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0dXJuIGFwcGxpY2F0aW9uSXNBcHBs
ZU1haWwoKTsKICNlbmRpZgogICAgIHJldHVybiBOTzsKQEAgLTYxOSw3ICs2MTksNyBAQCBzdGF0
aWMgYm9vbCBydW5uaW5nTGVvcGFyZE1haWwoKQogCiBzdGF0aWMgYm9vbCBjb3JlVmlkZW9IYXM3
MjI4ODM2Rml4KCkKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgTlNCdW5kbGUqIGNvcmVWaWRlb0Zy
YW1ld29ya0J1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVXaXRoUGF0aDpAIi9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0NvcmVWaWRlby5mcmFtZXdvcmsiXTsKICAgICBkb3VibGUgdmVyc2lvbiA9
IFtbY29yZVZpZGVvRnJhbWV3b3JrQnVuZGxlIG9iamVjdEZvckluZm9EaWN0aW9uYXJ5S2V5OihO
U1N0cmluZyAqKWtDRkJ1bmRsZVZlcnNpb25LZXldIGRvdWJsZVZhbHVlXTsKICAgICByZXR1cm4g
KHZlcnNpb24gPj0gNDgpOwpAQCAtNjQ3LDcgKzY0Nyw3IEBAIHN0YXRpYyBib29sIHNob3VsZEVu
YWJsZUxvYWREZWZlcnJpbmcoKQogICAgIFt0eXBlcyByZWxlYXNlXTsKIH0KIAotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDYwCiAvLyBUaGlz
IG1ldGhvZCBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIHdlIG5vIGxvbmdlciB3YW50IHRvIGtlZXAg
U2FmYXJpIDUuMC54IHdvcmtpbmcgd2l0aCBuaWdodGx5IGJ1aWxkcy4KIC0gKEJPT0wpX3VzZXNE
b2N1bWVudFZpZXdzCiB7CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1Nl
bGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChbcHJlZmVyZW5jZXMgZnVsbFNjcmVl
bkVuYWJsZWRdKTsKICNlbmRpZgotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgLy8gQXN5bmNocm9ub3Vz
IHNwZWxsIGNoZWNraW5nIEFQSSBpcyBhdmFpbGFibGUgZm9yIDEwLjYgb3IgbGF0ZXIuCiAgICAg
c2V0dGluZ3MtPnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFtwcmVmZXJlbmNl
cyBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZF0pOwogI2VuZGlmCkBAIC0zMDQ2LDcg
KzMwNDYsNyBAQCBzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVj
dG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIGNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2Vi
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkXTsKICAgICBncmFtbWFyQ2hlY2tpbmdFbmFi
bGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpX
ZWJHcmFtbWFyQ2hlY2tpbmdFbmFibGVkXTsKIAotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiAgICAgYXV0b21h
dGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJs
ZWRdOwogICAgIGF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uRW5hYmxlZF07CiAgICAgYXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQgPSBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkF1dG9tYXRp
Y0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkXTsKQEAgLTMwNTQsNyArMzA1NCw3IEBAIHN0YXRpYyBQ
YXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVy
bnMpCiAgICAgYXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCA9IFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViQXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZF07CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAoIVtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpXZWJBdXRvbWF0aWNUZXh0
UmVwbGFjZW1lbnRFbmFibGVkXSkKICAgICAgICAgYXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5h
YmxlZCA9IFtOU1NwZWxsQ2hlY2tlciBpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWRd
OwogICAgIGlmICghW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0
Rm9yS2V5OldlYkF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWRdKQpAQCAtMzI2MSw3
ICszMjYxLDcgQEAgc3RhdGljIGJvb2wgY2xpZW50TmVlZHNXZWJWaWV3SW5pdFRocmVhZFdvcmth
cm91bmQoKQogICAgIGlmIChbYnVuZGxlSWRlbnRpZmllciBfd2Via2l0X2hhc0Nhc2VJbnNlbnNp
dGl2ZVByZWZpeDpAImNvbS5hcHBsZS5BdXRvbWF0b3IuIl0pCiAgICAgICAgIHJldHVybiB0cnVl
OwogCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIC8vIE1haWwuCiAgICAgaWYgKFtidW5kbGVJZGVudGlm
aWVyIF93ZWJraXRfaXNDYXNlSW5zZW5zaXRpdmVFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLk1h
aWwiXSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00NTY0LDcgKzQ1NjQsNyBAQCBzdGF0aWMg
V2ViRnJhbWUgKmluY3JlbWVudEZyYW1lKFdlYkZyYW1lICpmcmFtZSwgV2ViRmluZE9wdGlvbnMg
b3B0aW9ucyA9IDApCiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6Y2hlY2tNYXJrID8g
TlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFlFUzsK
LSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA2MAogICAgIH0gZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dn
bGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbjopKSB7CiAgICAgICAgIEJPT0wgY2hlY2tNYXJr
ID0gW3NlbGYgaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWRdOwogICAgICAgICBp
ZiAoWyhOU09iamVjdCAqKWl0ZW0gaXNLaW5kT2ZDbGFzczpbTlNNZW51SXRlbSBjbGFzc11dKSB7
CkBAIC00NzEzLDcgKzQ3MTMsNyBAQCBzdGF0aWMgQk9PTCBmaW5kU3RyaW5nKE5TVmlldyA8V2Vi
RG9jdW1lbnRTZWFyY2hpbmc+ICpzZWFyY2hWaWV3LCBOU1N0cmluZyAqc3RyaQogICAgIHJldHVy
biBraXQoX3ByaXZhdGUtPnBhZ2UtPnJhbmdlT2ZTdHJpbmcoc3RyaW5nLCBjb3JlKHByZXZpb3Vz
UmFuZ2UpLCBjb3JlT3B0aW9ucyhvcHRpb25zKSkuZ2V0KCkpOwogfQogCi0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKIC8vIEZJWE1FOiBSZW1v
dmUgb25jZSBXZWJLaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIHN1cHBvcnQgdmVyc2lvbnMgb2YgU2Fm
YXJpIHRoYXQgY2FsbCB0aGlzLgogLSAodm9pZClzZXRIb3ZlckZlZWRiYWNrU3VzcGVuZGVkOihC
T09MKW5ld1ZhbHVlCiB7CkBAIC01NDAyLDcgKzU0MDIsNyBAQCBzdGF0aWMgTlNBcHBsZUV2ZW50
RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGpz
VmFsdQogICAgIGdyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBmbGFnOwogICAgIFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6Z3JhbW1hckNoZWNraW5nRW5hYmxl
ZCBmb3JLZXk6V2ViR3JhbW1hckNoZWNraW5nRW5hYmxlZF07ICAgIAogICAgIAotI2lmbmRlZiBC
VUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHVwZGF0ZVBh
bmVsc107CiAjZWxzZQogICAgIE5TU3BlbGxDaGVja2VyICpzcGVsbENoZWNrZXIgPSBbTlNTcGVs
bENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXTsKQEAgLTU0MjksNyArNTQyOSw3IEBAIHN0YXRp
YyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUganNWYWx1CiAKIC0gKEJPT0wpaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlv
bkVuYWJsZWQKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0dXJuIE5POwogI2Vsc2UKICAgICBy
ZXR1cm4gYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOwpAQCAtNTQzOCw3ICs1NDM4
LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAoQk9PTClpc0F1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkCiB7Ci0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIHJldHVybiBOTzsKICNlbHNl
CiAgICAgcmV0dXJuIGF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkOwpAQCAtNTQ0Nyw3ICs1
NDQ3LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAoQk9PTClpc0F1dG9tYXRpY0Rh
c2hTdWJzdGl0dXRpb25FbmFibGVkCiB7Ci0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAorI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA1MAogICAgIHJldHVybiBOTzsK
ICNlbHNlCiAgICAgcmV0dXJuIGF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkOwpAQCAt
NTQ1Niw3ICs1NDU2LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zy
b21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAoQk9PTClpc0F1
dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgcmV0
dXJuIE5POwogI2Vsc2UKICAgICByZXR1cm4gYXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxl
ZDsKQEAgLTU0NjUsMTQgKzU0NjUsMTQgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3Iq
IGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAo
Qk9PTClpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQKIHsKLSNpZmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDUwCiAgICAgcmV0dXJuIE5POwogI2Vsc2UKICAgICByZXR1cm4gYXV0b21hdGljU3BlbGxpbmdD
b3JyZWN0aW9uRW5hYmxlZDsKICNlbmRpZgogfQogCi0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BB
UkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKIAogLSAodm9p
ZClzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZwogewpAQCAt
NTY5OCw3ICs1Njk4LDcgQEAgc3RhdGljIFdlYkZyYW1lVmlldyAqY29udGFpbmluZ0ZyYW1lVmll
dyhOU1ZpZXcgKnZpZXcpCiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsK
ICAgICBOU1dpbmRvdyAqaG9zdFdpbmRvdyA9IFtzZWxmIGhvc3RXaW5kb3ddOwotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBp
ZiAod2luZG93KQogICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0b3JdOwog
ICAgIGlmIChob3N0V2luZG93KQpAQCAtNjA1OSw3ICs2MDU5LDcgQEAgc3RhdGljIGlubGluZSB1
aW50NjRfdCByb3VuZFVwVG9Qb3dlck9mMih1aW50NjRfdCBudW0pCiAgICAgaWYgKCFbc2VsZWN0
ZWRTdHJpbmcgbGVuZ3RoXSkKICAgICAgICAgcmV0dXJuOwogCi0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAg
ICBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gc2hvd1NlYXJjaFJlc3VsdHNGb3JRdWVy
eVN0cmluZzpzZWxlY3RlZFN0cmluZ107CiAjZWxzZQogICAgICh2b2lkKUhJU2VhcmNoV2luZG93
U2hvdygoQ0ZTdHJpbmdSZWYpc2VsZWN0ZWRTdHJpbmcsIGtOaWxPcHRpb25zKTsKQEAgLTY1Nzks
NyArNjU3OSw3IEBAIHZvaWQgV2ViSW5zdGFsbE1lbW9yeVByZXNzdXJlSGFuZGxlcih2b2lkKQog
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmluc3RhbGwoKTsKIH0KIAotI2lmZGVmIEJVSUxE
SU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEw
NTAKIAogc3RhdGljIElNUCBvcmlnaW5hbFJlY3Vyc2l2ZWx5UmVtb3ZlTWFpbEF0dHJpYnV0ZXNJ
bXA7CiAKQEAgLTY2MDUsNyArNjYwNSw3IEBAIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZWx5UmVtb3Zl
TWFpbEF0dHJpYnV0ZXMoRE9NTm9kZSAqc2VsZiwgU0VMIHNlbGVjdG9yLCBCT09MIGEsCiAKIHN0
YXRpYyB2b2lkIHBhdGNoTWFpbFJlbW92ZUF0dHJpYnV0ZXNNZXRob2QoKQogewotI2lmZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09
IDEwNTAKICAgICBpZiAoIVdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4oQCJjb20uYXBwbGUubWFp
bCIsIC0xLCA0LjApKQogICAgICAgICByZXR1cm47CiAgICAgTWV0aG9kIG1ldGhvZFRvUGF0Y2gg
PSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChvYmpjX2dldFJlcXVpcmVkQ2xhc3MoIkRPTU5vZGUi
KSwgQHNlbGVjdG9yKHJlY3Vyc2l2ZWx5UmVtb3ZlTWFpbEF0dHJpYnV0ZXM6Y29udmVydE9iamVj
dHNUb0ltYWdlczpjb252ZXJ0RWRpdGFibGVFbGVtZW50czopKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCBiN2IzYjFjLi4wYTk4MDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCkBAIC02NzcsNyArNjc3LDcg
QEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEkuCiAtIChCT09MKWlzQXV0b21hdGlj
RGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ7CiAtIChCT09MKWlzQXV0b21hdGljVGV4dFJlcGxhY2Vt
ZW50RW5hYmxlZDsKIC0gKEJPT0wpaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVk
OwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDYwCiAtICh2b2lkKXNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9u
RW5hYmxlZDooQk9PTClmbGFnOwogLSAodm9pZCl0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1
dGlvbjooaWQpc2VuZGVyOwogLSAodm9pZClzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxl
ZDooQk9PTClmbGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY1MDk3ZDQuLmZhMjkwNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0OSBAQAorMjAxMi0wNy0xMSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29t
PgorCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzkxMDE1PiBSZW1vdmUgQlVJTERJTkdf
T04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9yIG9mIHN5c3RlbSBhdmFpbGFiaWxpdHkgbWFj
cm9zCisKKyAgICAgICAgVGhpcyByZW1vdmFsIHdhcyBoYW5kbGVkIGJ5IGEgc2NyaXB0IHRoYXQg
dHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGluIHRvIHRoZSBlcXVpdmFsZW50IGNoZWNr
cworICAgICAgICB1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgKiBTaGFyZWQvRGljdGlvbmFy
eVBvcHVwSW5mby5jcHA6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaDoK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1Bhc3RlYm9hcmRUeXBlcy5tbToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9Q
REZWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRy
YWN0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNMaW5rZXJF
bnZpcm9ubWVudEV4dHJhY3Rvci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L0Vudmlyb25tZW50VmFyaWFibGVzLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1RleHRDaGVja2VyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06
CisgICAgICAgICogV2ViS2l0MlByZWZpeC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW06CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2Rz
Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTWV0aG9kcy5tbToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NTaGltLm1tOgorCiAyMDEyLTA3LTExICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgYW5k
IC1Xc2lnbi1jb21wYXJlIHdhcm5pbmcgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAppbmRleCA2MzIyMWE1Li4wZjlkMDZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCkBAIC00MCw3ICs0MCw3
IEBAIHZvaWQgRGljdGlvbmFyeVBvcHVwSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLT5lbmNvZGUoZm9udEluZm8pOwogICAg
IGVuY29kZXItPmVuY29kZUVudW0odHlwZSk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGJvb2wgaGFkT3B0aW9ucyA9
IG9wdGlvbnM7CiAgICAgZW5jb2Rlci0+ZW5jb2RlQm9vbChoYWRPcHRpb25zKTsKICAgICBpZiAo
aGFkT3B0aW9ucykKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEaWN0aW9uYXJ5UG8KICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQu
dHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGJvb2wgaGFkT3B0aW9uczsK
ICAgICBpZiAoIWRlY29kZXItPmRlY29kZUJvb2woaGFkT3B0aW9ucykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9w
dXBJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oCmlu
ZGV4IDM4MTRlY2UuLmJjZWMwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25h
cnlQb3B1cEluZm8uaApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5m
byB7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW47CiAgICAgRm9udEluZm8gZm9udElu
Zm87CiAgICAgVHlwZSB0eXBlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
b3B0aW9uczsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvUGFzdGVib2FyZFR5cGVzLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QYXN0ZWJv
YXJkVHlwZXMubW0KaW5kZXggMjZjYzZkYy4uMDkwZWIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9QYXN0ZWJvYXJkVHlwZXMubW0KQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGlu
bGluZSBOU0FycmF5ICpyZXRhaW4oTlNBcnJheSAqYXJyYXkpCiBOU0FycmF5KiBQYXN0ZWJvYXJk
VHlwZXM6OmZvckVkaXRpbmcoKQogewogICAgIHN0YXRpYyBOU0FycmF5ICp0eXBlcyA9IHJldGFp
bihbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOldlYkFyY2hpdmVQYm9hcmRUeXBlLCBOU0hUTUxQ
Ym9hcmRUeXBlLCBOU0ZpbGVuYW1lc1Bib2FyZFR5cGUsIE5TVElGRlBib2FyZFR5cGUsIE5TUERG
UGJvYXJkVHlwZSwKLSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDUwCiAgICAgICAgIE5TUElDVFBib2FyZFR5cGUsCiAj
ZW5kaWYKICAgICAgICAgTlNVUkxQYm9hcmRUeXBlLCBOU1JURkRQYm9hcmRUeXBlLCBOU1JURlBi
b2FyZFR5cGUsIE5TU3RyaW5nUGJvYXJkVHlwZSwgTlNDb2xvclBib2FyZFR5cGUsIGtVVFR5cGVQ
TkcsIG5pbF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVu
dEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bQppbmRleCA3YzE4NTI0Li43NzJjMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyBOU1BvaW50IHBv
aW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93VmlldykKIAogc3RhdGlj
IFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0j
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHVpbnQzMl90IHBoYXNlID0gV2ViV2hlZWxF
dmVudDo6UGhhc2VOb25lOyAKICAgICBpZiAoW2V2ZW50IHBoYXNlXSAmIE5TRXZlbnRQaGFzZUJl
Z2FuKQogICAgICAgICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuOwpAQCAtMjEx
LDcgKzIxMSw3IEBAIHN0YXRpYyBXZWJXaGVlbEV2ZW50OjpQaGFzZSBwaGFzZUZvckV2ZW50KE5T
RXZlbnQgKmV2ZW50KQogICAgICAgICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVk
OwogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNlQ2FuY2VsbGVkKQogICAgICAg
ICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUNhbmNlbGxlZDsKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MAogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNlTWF5QmVnaW4pCiAgICAg
ICAgIHBoYXNlIHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlTWF5QmVnaW47CiAjZW5kaWYKQEAgLTIy
Niw3ICsyMjYsNyBAQCBzdGF0aWMgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50dW1QaGFzZUZv
ckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVpbnQzMl90IHBoYXNlID0gV2ViV2hlZWxF
dmVudDo6UGhhc2VOb25lOyAKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAo
W2V2ZW50IG1vbWVudHVtUGhhc2VdICYgTlNFdmVudFBoYXNlQmVnYW4pCiAgICAgICAgIHBoYXNl
IHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW47CiAgICAgaWYgKFtldmVudCBtb21lbnR1bVBo
YXNlXSAmIE5TRXZlbnRQaGFzZVN0YXRpb25hcnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9QREZWaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tCmluZGV4IDkxZmNmMzQuLjZh
MDJmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BERlZp
ZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BE
RlZpZXdDb250cm9sbGVyLm1tCkBAIC01MDQsNyArNTA0LDcgQEAgYm9vbCBQREZWaWV3Q29udHJv
bGxlcjo6Zm9yd2FyZFNjcm9sbFdoZWVsRXZlbnQoTlNFdmVudCAqd2hlZWxFdmVudCkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyBJTVAgb2xkUERG
Vmlld1Njcm9sbFZpZXdfc2Nyb2xsV2hlZWw7CiAKIHN0YXRpYyBXS1BERlZpZXcgKmZpbmRFbmNs
b3NpbmdXS1BERlZpZXcoTlNWaWV3ICp2aWV3KQpAQCAtNTU3LDcgKzU1Nyw3IEBAIE5TQnVuZGxl
KiBQREZWaWV3Q29udHJvbGxlcjo6cGRmS2l0QnVuZGxlKCkKICAgICBpZiAoIVtwZGZLaXRCdW5k
bGUgbG9hZF0pCiAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgbG9hZCBQREZLaXQuZnJhbWV3
b3JrIik7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKENsYXNzIHBkZlZpZXdTY3Jv
bGxWaWV3Q2xhc3MgPSBbcGRmS2l0QnVuZGxlIGNsYXNzTmFtZWQ6QCJQREZWaWV3U2Nyb2xsVmll
dyJdKSB7CiAgICAgICAgIGlmIChNZXRob2Qgc2Nyb2xsV2hlZWwgPSBjbGFzc19nZXRJbnN0YW5j
ZU1ldGhvZChwZGZWaWV3U2Nyb2xsVmlld0NsYXNzLCBAc2VsZWN0b3Ioc2Nyb2xsV2hlZWw6KSkp
CiAgICAgICAgICAgICBvbGRQREZWaWV3U2Nyb2xsVmlld19zY3JvbGxXaGVlbCA9IG1ldGhvZF9z
ZXRJbXBsZW1lbnRhdGlvbihzY3JvbGxXaGVlbCwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KFBERlZp
ZXdTY3JvbGxWaWV3X3Njcm9sbFdoZWVsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDQ1N2NlOTIuLmIzMTk0NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tCkBAIC00NzIsNyArNDcyLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURp
Y3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiB0ZXh0LCBkb3VibGUgc2NhbGUKIAogICAgIE5T
UG9pbnQgdGV4dEJhc2VsaW5lT3JpZ2luID0gZGljdGlvbmFyeVBvcHVwSW5mby5vcmlnaW47CiAK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gQ29udmVydCB0byBzY3JlZW4gY29v
cmRpbmF0ZXMuCiAgICAgdGV4dEJhc2VsaW5lT3JpZ2luID0gW21fd2tWaWV3IGNvbnZlcnRQb2lu
dDp0ZXh0QmFzZWxpbmVPcmlnaW4gdG9WaWV3Om5pbF07CiAgICAgdGV4dEJhc2VsaW5lT3JpZ2lu
ID0gW21fd2tWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFrZVJlY3QodGV4dEJh
c2VsaW5lT3JpZ2luLngsIHRleHRCYXNlbGluZU9yaWdpbi55LCAwLCAwKV0ub3JpZ2luOwpAQCAt
NDg3LDcgKzQ4Nyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5
TG9va3VwKGNvbnN0IFN0cmluZyYgdGV4dCwgZG91YmxlIHNjYWxlCiAKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpc21pc3NEaWN0aW9uYXJ5TG9va3VwUGFuZWwoKQogewotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKICAgICBXS0hpZGVXb3JkRGVmaW5pdGlvbldpbmRvdygpOwogI2VuZGlmCiB9
CkBAIC01MTksNyArNTE5LDcgQEAgU3RyaW5nIFBhZ2VDbGllbnRJbXBsOjpkaXNtaXNzQ29ycmVj
dGlvblBhbmVsU29vbihXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWwKIAogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShBdXRvY29ycmVjdGlvblJl
c3BvbnNlVHlwZSByZXNwb25zZVR5cGUsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgIE5TQ29ycmVjdGlvblJlc3BvbnNlIHJlc3BvbnNlID0gcmVzcG9uc2VUeXBlID09
IEF1dG9jb3JyZWN0aW9uUmV2ZXJ0ZWQgPyBOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVydGVkIDog
TlNDb3JyZWN0aW9uUmVzcG9uc2VFZGl0ZWQ7CiAgICAgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRB
dXRvY29ycmVjdGlvblJlc3BvbnNlKG1fd2tWaWV3LCByZXNwb25zZSwgcmVwbGFjZWRTdHJpbmcs
IHJlcGxhY2VtZW50U3RyaW5nKTsKICNlbmRpZgpAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoQXV0b2NvcnJlY3Rpb25S
ZXNwb25zZVR5cGUgcmVzCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlY29tbWVuZGVkU2Nyb2xs
YmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkKIHsKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgTlNBcnJheSAqdHJhY2tpbmdBcmVhcyA9IFttX3drVmlldyB0cmFja2lu
Z0FyZWFzXTsKICAgICBOU1VJbnRlZ2VyIGNvdW50ID0gW3RyYWNraW5nQXJlYXMgY291bnRdOwog
ICAgIEFTU0VSVChjb3VudCA9PSAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQppbmRleCBlODgzMjE1Li4yN2YyMzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMDQsNyArMTA0LDcgQEAKIEBlbmQKIAogQGlu
dGVyZmFjZSBOU1dpbmRvdyAoV0tOU1dpbmRvd0RldGFpbHMpCi0jaWYgZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9
PSAxMDYwCiAtIChOU1JlY3QpX2dyb3dCb3hSZWN0OwogLSAoaWQpX2dyb3dCb3hPd25lcjsKIC0g
KHZvaWQpX3NldFNob3dPcGFxdWVHcm93Qm94Rm9yT3duZXI6KGlkKW93bmVyOwpAQCAtOTU3LDcg
Kzk1Nyw3IEBAIHN0YXRpYyB2b2lkIHNwZWFrU3RyaW5nKFdLU3RyaW5nUmVmIHN0cmluZywgV0tF
cnJvclJlZiBlcnJvciwgdm9pZCopCiAKIC0gKHZvaWQpZGlzcGxheUlmTmVlZGVkCiB7Ci0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVtb3ZlIHRo
aXMgY29kZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS85MzYyMDg1PiBpcyByZXNvbHZlZC4gSW4gdGhl
IG1lYW50aW1lLAogICAgIC8vIGl0IGlzIG5lY2Vzc2FyeSB0byBkaXNhYmxlIHNjcmVuIHVwZGF0
ZXMgc28gd2UgZ2V0IGEgY2hhbmNlIHRvIHJlZHJhdyB0aGUgY29ybmVycyBiZWZvcmUgdGhpcyAK
ICAgICAvLyBkaXNwbGF5IGlzIHZpc2libGUuCkBAIC05NjksNyArOTY5LDcgQEAgc3RhdGljIHZv
aWQgc3BlYWtTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lk
KikKIAogICAgIFtzdXBlciBkaXNwbGF5SWZOZWVkZWRdOwogCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogICAgIGlmIChzaG91bGRNYXNrV2luZG93KSB7CiAgICAgICAgIFt3aW5kb3cgX21h
c2tSb3VuZGVkQm90dG9tQ29ybmVyczpfZGF0YS0+X3dpbmRvd0JvdHRvbUNvcm5lckludGVyc2Vj
dGlvblJlY3RdOwogICAgICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKQEAgLTE2NjYsNyAr
MTY2Niw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgX2RhdGEtPl9wYWdlLT5kcmFn
VXBkYXRlZCgmZHJhZ0RhdGEsIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0gbmFt
ZV0pOwogICAgIAogICAgIFdlYkNvcmU6OkRyYWdTZXNzaW9uIGRyYWdTZXNzaW9uID0gX2RhdGEt
Pl9wYWdlLT5kcmFnU2Vzc2lvbigpOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBO
U0ludGVnZXIgbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA9IGRyYWdTZXNzaW9uLm51bWJlck9m
SXRlbXNUb0JlQWNjZXB0ZWQ7CiAgICAgTlNEcmFnZ2luZ0Zvcm1hdGlvbiBkcmFnZ2luZ0Zvcm1h
dGlvbiA9IE5TRHJhZ2dpbmdGb3JtYXRpb25Ob25lOwogICAgIGlmIChkcmFnU2Vzc2lvbi5tb3Vz
ZUlzT3ZlckZpbGVJbnB1dCAmJiBudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wID4gMCkKQEAgLTE3
NzgsNyArMTc3OCw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9yRmls
ZVVwbG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiB9CiAKIAotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPT0gMTA2MAogLSAoQk9PTClfb3duc1dpbmRvd0dyb3dCb3gKIHsKICAgICBOU1dp
bmRvdyogd2luZG93ID0gW3NlbGYgd2luZG93XTsKQEAgLTE4ODgsNyArMTg4OCw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJO
U0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW3NlbGYgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXTsKICAg
ICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2luZG93XTsKIAotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPT0gMTA2MAogICAgIGlmIChbY3VycmVudFdpbmRvdyBfZ3Jvd0JveE93bmVyXSA9
PSBzZWxmKQogICAgICAgICBbY3VycmVudFdpbmRvdyBfc2V0U2hvd09wYXF1ZUdyb3dCb3hGb3JP
d25lcjpuaWxdOwogI2VuZGlmCkBAIC0xOTI3LDcgKzE5MjcsNyBAQCBzdGF0aWMgTlNTdHJpbmcg
KiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJv
cGVydHlPbAogICAgICAgICAgICAgX2RhdGEtPl9lbmRHZXN0dXJlTW9uaXRvciA9IG5pbDsKICAg
ICAgICAgfQogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBXS0hp
ZGVXb3JkRGVmaW5pdGlvbldpbmRvdygpOwogI2VuZGlmCiAgICAgfQpAQCAtMjIwOSw3ICsyMjA5
LDcgQEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5kKENHQ29udGV4dFJlZiBjb250ZXh0
LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKIC0gKGZsb2F0KV9pbnRyaW5zaWNEZXZpY2VT
Y2FsZUZhY3RvcgogewogICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3ddOwotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAod2luZG93KQogICAgICAgICByZXR1cm4g
W3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0b3JdOwogICAgIHJldHVybiBbW05TU2NyZWVuIG1haW5T
Y3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07CkBAIC0yMjM0LDcgKzIyMzQsNyBAQCBzdGF0aWMg
dm9pZCBkcmF3UGFnZUJhY2tncm91bmQoQ0dDb250ZXh0UmVmIGNvbnRleHQsIFdlYlBhZ2VQcm94
eSogcGFnZSwgY29uc3QgSQogICAgIHJldHVybiBOTzsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKIC0gKHZvaWQpcXVpY2tMb29r
V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBOU1BvaW50IGxvY2F0aW9uSW5WaWV3
Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
IGZyb21WaWV3Om5pbF07CkBAIC0yODY1LDcgKzI4NjUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBh
dGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lkKV9k
aWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lCiB7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAx
MDYwCiAgICAgW3NlbGYgX3VwZGF0ZUdyb3dCb3hGb3JXaW5kb3dGcmFtZUNoYW5nZV07CiAjZW5k
aWYKIH0KQEAgLTI5MDYsNyArMjkwNiw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlx
dWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQpX2NhY2hlV2luZG93
Qm90dG9tQ29ybmVyUmVjdAogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHJlbW92ZSB0aGlzIGNvZGUgd2hlbiA8cmRhcjovL3Byb2JsZW0vOTM2
MjA4NT4gaXMgcmVzb2x2ZWQuIAogICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3dd
OwogICAgIGlmICghd2luZG93KQpAQCAtMjk2Nyw3ICsyOTY3LDcgQEAgc3RhdGljIE5TU3RyaW5n
ICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogICAgIC8v
IExlZ2FjeSBzdHlsZSBzY3JvbGxiYXJzIGhhdmUgZGVzaWduIGRldGFpbHMgdGhhdCByZWx5IG9u
IHRyYWNraW5nIHRoZSBtb3VzZSBhbGwgdGhlIHRpbWUuCiAgICAgTlNUcmFja2luZ0FyZWFPcHRp
b25zIG9wdGlvbnMgPSBOU1RyYWNraW5nTW91c2VNb3ZlZCB8IE5TVHJhY2tpbmdNb3VzZUVudGVy
ZWRBbmRFeGl0ZWQgfCBOU1RyYWNraW5nSW5WaXNpYmxlUmVjdDsKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgaWYgKFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3Jv
bGxlclN0eWxlTGVnYWN5KQogICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVBbHdh
eXM7CiAgICAgZWxzZQpAQCAtMzAwOSw3ICszMDA5LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwODAKIC0gKEJPT0wpd2FudHNVcGRhdGVMYXllcgogewogICAgIHJldHVybiBbc2VsZiBf
c2hvdWxkVXNlVGlsZWREcmF3aW5nQXJlYV07CkBAIC0zMDk1LDcgKzMwOTUsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQog
CiArICh2b2lkKWhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdwogewotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICBXS0hpZGVXb3JkRGVmaW5pdGlvbldpbmRvdygpOwogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0R5bmFtaWNM
aW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaAppbmRleCAzMTFl
NTkwLi4wMGI3M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0
cmFjdG9yLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgRHluYW1pY0xpbmtlckVudmlyb25t
ZW50RXh0cmFjdG9yX2gKICNkZWZpbmUgRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9y
X2gKIAotI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2luY2x1ZGUgPG1hY2gvbWFjaGluZS5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjEsNiArNjEsNiBAQCBwcml2YXRlOgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRAorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPT0gMTA2MAog
CiAjZW5kaWYgLy8gRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVu
dmlyb25tZW50RXh0cmFjdG9yLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0KaW5kZXggYmZjMjcwYy4u
NmYzNTI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0
b3IubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJE
eW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCIKIAotI2lmbmRlZiBCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKIAogI2luY2x1ZGUgIkVudmlyb25tZW50VmFyaWFibGVzLmgiCiAjaW5jbHVkZSA8bWFjaC1v
L2xvYWRlci5oPgpAQCAtMjAxLDQgKzIwMSw0IEBAIHZvaWQgRHluYW1pY0xpbmtlckVudmlyb25t
ZW50RXh0cmFjdG9yOjpnZXRFeHRyYWN0ZWRFbnZpcm9ubWVudFZhcmlhYmxlcyhFbnZpcm9uCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gQlVJTERJTkdfT05fU05PV19MRU9Q
QVJECisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25t
ZW50VmFyaWFibGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMv
RW52aXJvbm1lbnRWYXJpYWJsZXMuY3BwCmluZGV4IDcyOTc5ZjguLmJlMGY5MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJp
YWJsZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52
aXJvbm1lbnRWYXJpYWJsZXMuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBFbnZpcm9ubWVu
dFZhcmlhYmxlczo6Y29weUVudmlyb25tZW50VmFyaWFibGVzKCkKICAgICBtX2Vudmlyb25tZW50
UG9pbnRlciA9IG1fZW52aXJvbm1lbnRWYXJpYWJsZXMuZGF0YSgpOwogfQogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogCiBjb25zdCBjaGFyKiBFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJl
ZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKQogewpAQCAtMTQ4LDYgKzE0OCw2IEBAIGNv
bnN0IGNoYXIqIEVudmlyb25tZW50VmFyaWFibGVzOjpwcmVleGlzdGluZ1Byb2Nlc3NUeXBlS2V5
KCkKICAgICByZXR1cm4gIldFQktJVF9QUkVFWElTVElOR19QUk9DRVNTX1RZUEUiOwogfQogCi0j
ZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2VuZGlmIC8vIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMv
RW52aXJvbm1lbnRWYXJpYWJsZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaAppbmRleCAzMzgyOTM5Li5mZjRhYjEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25tZW50
VmFyaWFibGVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9F
bnZpcm9ubWVudFZhcmlhYmxlcy5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIGNo
YXIqKiBlbnZpcm9ubWVudFBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBtX2Vudmlyb25tZW50UG9p
bnRlcjsgfQogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZUtleSgpOwogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NUeXBlS2V5KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KaW5kZXggZGM4MzljOC4uZmFiOWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0K
QEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQog
ICAgIHBpZF90IHByb2Nlc3NJZGVudGlmaWVyID0gMDsKIAogICAgIEVudmlyb25tZW50VmFyaWFi
bGVzIGVudmlyb25tZW50VmFyaWFibGVzOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogcHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWUgPSBlbnZp
cm9ubWVudFZhcmlhYmxlcy5nZXQoRW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJv
Y2Vzc1NlcnZpY2VOYW1lS2V5KCkpOwogICAgIFByb2Nlc3NUeXBlIHByZWV4aXN0aW5nUHJvY2Vz
c1R5cGU7CiAgICAgaWYgKHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VOYW1lKQpAQCAtMTYwLDcg
KzE2MCw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAg
Ly8gU3RhcnQgc3VzcGVuZGVkIHNvIHdlIGNhbiBzZXQgdXAgdGhlIHRlcm1pbmF0aW9uIG5vdGlm
aWNhdGlvbiBoYW5kbGVyLgogICAgICAgICBmbGFncyB8PSBQT1NJWF9TUEFXTl9TVEFSVF9TVVNQ
RU5ERUQ7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
YWxsb3dFeGVjdXRhYmxlSGVhcEZsYWcgPSAweDIwMDA7CiAgICAgICAgIGlmIChtX2xhdW5jaE9w
dGlvbnMuZXhlY3V0YWJsZUhlYXApCiAgICAgICAgICAgICBmbGFncyB8PSBhbGxvd0V4ZWN1dGFi
bGVIZWFwRmxhZzsKQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1
bmNoUHJvY2VzcygpCiAKICAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKCZhdHRyLCBm
bGFncyk7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJECisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIER5bmFtaWNMaW5rZXJFbnZp
cm9ubWVudEV4dHJhY3RvciBlbnZpcm9ubWVudEV4dHJhY3RvcihbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGV4ZWN1dGFibGVQYXRoXSwgYXJjaGl0ZWN0dXJlKTsKICAgICAgICAgZW52aXJvbm1lbnRF
eHRyYWN0b3IuZ2V0RXh0cmFjdGVkRW52aXJvbm1lbnRWYXJpYWJsZXMoZW52aXJvbm1lbnRWYXJp
YWJsZXMpOwogI2VuZGlmCkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6
OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICAgICAgbGlzdGVuaW5nUG9ydCA9IE1BQ0hfUE9SVF9O
VUxMOwogICAgICAgICAgICAgcHJvY2Vzc0lkZW50aWZpZXIgPSAwOwogICAgICAgICB9Ci0jaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94
eU1hYy5tbQppbmRleCAyOTA0NTFhLi4zNDg2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMu
bW0KQEAgLTM1LDcgKzM1LDcgQEAKICNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBUmVtb3RlTGF5ZXJTZXJ2ZXIuaD4KICNlbmRpZgogCkBAIC0xMjAsNyArMTIwLDcg
QEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nl
c3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGEKIHsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQogICAgIHBhcmFtZXRlcnMucGFy
ZW50UHJvY2Vzc05hbWUgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1l
XTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgbWFjaF9wb3J0X3QgcmVuZGVyU2Vy
dmVyUG9ydCA9IFtbQ0FSZW1vdGVMYXllclNlcnZlciBzaGFyZWRTZXJ2ZXJdIHNlcnZlclBvcnRd
OwogI2Vsc2UKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gV0tJbml0aWFsaXpl
UmVuZGVyU2VydmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDg1NzA5ZWYuLjE3Y2MyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC0xOTgxLDcgKzE5ODEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5
cAogICAgIC8vIEZJWE1FIChidWcgNTkxMTEpOiBkaWRDb21taXRMb2FkRm9yRnJhbWUgY29tZXMg
dG9vIGxhdGUgd2hlbiByZXN0b3JpbmcgYSBwYWdlIGZyb20gYi9mIGNhY2hlLCBtYWtpbmcgdXMg
ZGlzYWJsZSBzZWN1cmUgZXZlbnQgbW9kZSBpbiBwYXNzd29yZCBmaWVsZHMuCiAgICAgLy8gRklY
TUUgKGJ1ZyA1OTEyMSk6IEEgbG9hZCBnb2luZyBvbiBpbiBvbmUgZnJhbWUgc2hvdWxkbid0IGFm
ZmVjdCB0eXBpbmcgaW4gc2libGluZyBmcmFtZXMuCiAgICAgbV9wYWdlQ2xpZW50LT5yZXNldFRl
eHRJbnB1dFN0YXRlKCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIEZJWE1F
OiBTaG91bGQgdGhpcyBiZSBtb3ZlZCBpbnNpZGUgcmVzZXRUZXh0SW5wdXRTdGF0ZSgpPwogICAg
IGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4
dElnbm9yZWQpOwogICAgIG1fcGFnZUNsaWVudC0+ZGlzbWlzc0RpY3Rpb25hcnlMb29rdXBQYW5l
bCgpOwpAQCAtMjU1MSw3ICsyNTUxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZp
ZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCiB2b2lkIFdl
YlBhZ2VQcm94eTo6cGFnZURpZFNjcm9sbCgpCiB7CiAgICAgbV91aUNsaWVudC5wYWdlRGlkU2Ny
b2xsKHRoaXMpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChSZWFzb25Gb3JEaXNt
aXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiAjZW5kaWYKIH0KQEAgLTM1MzAsNyArMzUz
MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIG1fdG91Y2hF
dmVudFF1ZXVlLmNsZWFyKCk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZGlzbWlzc0NvcnJlY3Rpb25Q
YW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiAgICAgbV9w
YWdlQ2xpZW50LT5kaXNtaXNzRGljdGlvbmFyeUxvb2t1cFBhbmVsKCk7CiAjZW5kaWYKQEAgLTM5
MDUsNyArMzkwNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzdWJzdGl0dXRpb25zUGFuZWxJc1No
b3dpbmcoYm9vbCYgaXNTaG93aW5nKQogICAgIGlzU2hvd2luZyA9IFRleHRDaGVja2VyOjpzdWJz
dGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoKTsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29ycmVjdGlvblBhbmVsKGludDMyX3QgcGFuZWxU
eXBlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3Qg
U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKQogewog
ICAgIG1fcGFnZUNsaWVudC0+c2hvd0NvcnJlY3Rpb25QYW5lbCgoQWx0ZXJuYXRpdmVUZXh0VHlw
ZSlwYW5lbFR5cGUsIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgcmVwbGFjZWRTdHJpbmcs
IHJlcGxhY2VtZW50U3RyaW5nLCBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncyk7CkBAIC0z
OTI1LDExICszOTI1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNvcmRBdXRvY29ycmVjdGlv
blJlc3BvbnNlKGludDMyX3QgcmVzcG9uc2VUeXBlLCBjb25zdCBTdHJpCiB7CiAgICAgbV9wYWdl
Q2xpZW50LT5yZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKChBdXRvY29ycmVjdGlvblJlc3Bv
bnNlVHlwZSlyZXNwb25zZVR5cGUsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZyk7
CiB9Ci0jZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2VuZGlm
IC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1
bHQpCiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmICghaXNDbG9zZWQoKSkK
ICAgICAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5kbGVBbHRlcm5h
dGl2ZVRleHRVSVJlc3VsdChyZXN1bHQpLCBtX3BhZ2VJRCwgMCk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1N2FiODZjLi42YzdlNjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05NDksMTIgKzk0OSwxMiBA
QCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc3Vic3RpdHV0aW9uc1Bh
bmVsSXNTaG93aW5nKGJvb2wmKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgdm9p
ZCBzaG93Q29ycmVjdGlvblBhbmVsKGludDMyX3QgcGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKTsKICAgICB2b2lkIGRpc21p
c3NDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCByZWFzb24pOwogICAgIHZvaWQgZGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbFNvb24oaW50MzJfdCByZWFzb24sIFN0cmluZyYgcmVzdWx0KTsKICAgICB2b2lk
IHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoaW50MzJfdCByZXNwb25zZVR5cGUsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcp
OwotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAv
LyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2lmIFVTRShESUNU
QVRJT05fQUxURVJOQVRJVkVTKQogICAgIHZvaWQgc2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUko
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCB1aW50
NjRfdCBkaWN0YXRpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDAzNDEyNzYuLjc4MzhkNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
Mjg3LDcgKzI4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIFN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZygpIC0+IChib29sIGlzU2hvd2lu
ZykKICNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgIyBBdXRvY29ycmVjdGlvbiBtZXNzYWdlcwogICAgIFNob3dD
b3JyZWN0aW9uUGFuZWwoaW50MzJfdCBwYW5lbFR5cGUsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3Vu
ZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIFN0cmluZyByZXBsYWNlZFN0cmluZywgU3RyaW5nIHJl
cGxhY2VtZW50U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3Ry
aW5ncykKICAgICBEaXNtaXNzQ29ycmVjdGlvblBhbmVsKGludDMyX3QgcmVhc29uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KaW5kZXggMjBhNjNl
YS4uNmRhOGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0
Q2hlY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVj
a2VyTWFjLm1tCkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZm5kZWYgQlVJTERJTkdfT05f
U05PV19MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CiBAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChXZWJOU1NwZWxsQ2hlY2tlckRldGFpbHMpCiAt
IChOU1N0cmluZyAqKWxhbmd1YWdlRm9yV29yZFJhbmdlOihOU1JhbmdlKXJhbmdlIGluU3RyaW5n
OihOU1N0cmluZyAqKXN0cmluZyBvcnRob2dyYXBoeTooTlNPcnRob2dyYXBoeSAqKW9ydGhvZ3Jh
cGh5OwogQGVuZApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplU3RhdGUo
KQogICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCA9
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViQXV0
b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRdOwogICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRv
bWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVk
XTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAoIVtbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpXZWJBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb25FbmFibGVkXSkKICAgICAgICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRp
Y1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQgPSBbTlNTcGVsbENoZWNrZXIgaXNBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXTsKICNlbmRpZgpAQCAtMzcyLDcgKzM3Miw3IEBAIHZv
aWQgVGV4dENoZWNrZXI6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhpbnQ2NF90
LCBjb25zdCBTdHJpbmcmIGJhZEdyCiAKIHZvaWQgVGV4dENoZWNrZXI6OmdldEd1ZXNzZXNGb3JX
b3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBT
dHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKICAgICBOU1N0cmluZyogbGFuZ3VhZ2UgPSBuaWw7CiAgICAgTlNPcnRo
b2dyYXBoeSogb3J0aG9ncmFwaHkgPSBuaWw7CiAgICAgTlNTcGVsbENoZWNrZXIgKmNoZWNrZXIg
PSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5tbQppbmRleCBlOTU3OWFiLi42OTMyYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBA
IC02Miw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBEZWZhdWx0V2F0Y2hk
b2dUaW1lckludGVydmFsID0gMTsKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRp
b25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uOwogQGVuZAogCi0jaWYgZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNjAKIEBpbnRl
cmZhY2UgTlNXaW5kb3coY29udmVydFJlY3RUb1NjcmVlbkZvckxlb3BhcmRBbmRTbm93TGVvcGFy
ZCkKIC0gKE5TUmVjdCljb252ZXJ0UmVjdFRvU2NyZWVuOihOU1JlY3QpYVJlY3Q7CiBAZW5kCkBA
IC0yOTUsMTQgKzI5NSwxNCBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUlt
YWdlV2l0aENvcGllZERhdGEoQ0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAgICAgICAgV0tXaW5k
b3dTZXRDbGlwUmVjdChbc2VsZiB3aW5kb3ddLCB3aW5kb3dCb3VuZHMpOwogCiAgICAgICAgIE5T
V2luZG93ICp3ZWJXaW5kb3cgPSBbX3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSB3aW5kb3ddOwot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICAgICAgLy8gSW4gTGlvbiwgTlNXaW5kb3cgd2lsbCBhbmltYXRlIGludG8gYW5kIG91
dCBvZiBvcmRlck91dCBvcGVyYXRpb25zLiBTdXBwcmVzcyB0aGF0CiAgICAgICAgIC8vIGJlaGF2
aW9yIGhlcmUsIG1ha2luZyBzdXJlIHRvIHJlc2V0IHRoZSBhbmltYXRpb24gYmVoYXZpb3IgYWZ0
ZXJ3YXJkLgogICAgICAgICBOU1dpbmRvd0FuaW1hdGlvbkJlaGF2aW9yIGFuaW1hdGlvbkJlaGF2
aW9yID0gW3dlYldpbmRvdyBhbmltYXRpb25CZWhhdmlvcl07CiAgICAgICAgIFt3ZWJXaW5kb3cg
c2V0QW5pbWF0aW9uQmVoYXZpb3I6TlNXaW5kb3dBbmltYXRpb25CZWhhdmlvck5vbmVdOwogI2Vu
ZGlmCiAgICAgICAgIFt3ZWJXaW5kb3cgb3JkZXJPdXQ6c2VsZl07Ci0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBbd2Vi
V2luZG93IHNldEFuaW1hdGlvbkJlaGF2aW9yOmFuaW1hdGlvbkJlaGF2aW9yXTsKICNlbmRpZgog
CkBAIC0zNTIsNyArMzUyLDcgQEAgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJ
bWFnZVdpdGhDb3BpZWREYXRhKENHSW1hZ2VSZWYgc291cmNlSW1hZ2UpCiAgICAgW3NlbGYgX3Vw
ZGF0ZU1lbnVBbmREb2NrRm9yRnVsbFNjcmVlbl07CiAgICAgCiAgICAgTlNXaW5kb3cqIHdlYldp
bmRvdyA9IFtfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgpIHdpbmRvd107Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIElu
IExpb24sIE5TV2luZG93IHdpbGwgYW5pbWF0ZSBpbnRvIGFuZCBvdXQgb2Ygb3JkZXJPdXQgb3Bl
cmF0aW9ucy4gU3VwcHJlc3MgdGhhdAogICAgIC8vIGJlaGF2aW9yIGhlcmUsIG1ha2luZyBzdXJl
IHRvIHJlc2V0IHRoZSBhbmltYXRpb24gYmVoYXZpb3IgYWZ0ZXJ3YXJkLgogICAgIE5TV2luZG93
QW5pbWF0aW9uQmVoYXZpb3IgYW5pbWF0aW9uQmVoYXZpb3IgPSBbd2ViV2luZG93IGFuaW1hdGlv
bkJlaGF2aW9yXTsKQEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERhdGEoQ0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAg
ICB9IGVsc2UKICAgICAgICAgW3dlYldpbmRvdyBvcmRlcldpbmRvdzpOU1dpbmRvd0JlbG93IHJl
bGF0aXZlVG86W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXV07CiAgICAgCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFt3
ZWJXaW5kb3cgc2V0QW5pbWF0aW9uQmVoYXZpb3I6YW5pbWF0aW9uQmVoYXZpb3JdOwogI2VuZGlm
CiAKQEAgLTQ2MCw3ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCBjb21wbGV0ZUZpbmlzaEV4aXRGdWxs
U2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50KFdLRXJyb3JSZWYsIHZvaWQqCiAtICh2b2lkKV91
cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW4KIHsKICAgICAvLyBOU0FwcGxpY2F0aW9uUHJl
c2VudGF0aW9uT3B0aW9ucyBpcyBhdmFpbGFibGUgb24gPiAxMC42IG9ubHk6Ci0jaWZuZGVmIEJV
SUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNjAKICAgICBOU0FwcGxpY2F0aW9uUHJlc2VudGF0aW9uT3B0aW9ucyBvcHRpb25zID0gTlNB
cHBsaWNhdGlvblByZXNlbnRhdGlvbkRlZmF1bHQ7CiAgICAgTlNTY3JlZW4qIGZ1bGxTY3JlZW5T
Y3JlZW4gPSBbW3NlbGYgd2luZG93XSBzY3JlZW5dOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCmluZGV4IDQzODE4M2EuLmZjZDAwNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KQEAgLTMz
LDcgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW1w
b3J0IDxzeXMvcGFyYW0uaD4KIAotI2lmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgSEFWRShIT1NURURfQ09SRV9B
TklNQVRJT04pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2lt
cG9ydCA8UXVhcnR6Q29yZS9DQVJlbW90ZUxheWVyU2VydmVyLmg+CiAjZW5kaWYKIApAQCAtOTks
NyArOTksNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogI2VuZGlmCiAKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2ZXJQb3J0
ID0gW1tDQVJlbW90ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZlcl0gc2VydmVyUG9ydF07CiAjZWxz
ZQogICAgIG1hY2hfcG9ydF90IHJlbmRlclNlcnZlclBvcnQgPSBXS0luaXRpYWxpemVSZW5kZXJT
ZXJ2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0KaW5kZXggOTY3MTJiZi4uYzVmZTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAjZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1cmUKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
SU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogCiBzdGF0
aWMgU3RyaW5nIG1hY09TWFZlcnNpb25TdHJpbmcoKQogewpAQCAtOTgsNyArOTgsNyBAQCBzdGF0
aWMgU3RyaW5nIG1hY09TWFZlcnNpb25TdHJpbmcoKQogICAgIHJldHVybiBTdHJpbmc6OmZvcm1h
dCgiJWQiLCBtYWpvcik7CiB9CiAKLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjZW5kaWYgLy8gX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAKIHN0YXRpYyBTdHJpbmcgdXNlclZp
c2libGVXZWJLaXRWZXJzaW9uU3RyaW5nKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAppbmRleCBl
YmMwYTQ5Li40ZGViNjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC0zMiw3ICszMiw3IEBA
CiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJE
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAjZGVmaW5lIEVO
QUJMRV9XRUJfUFJPQ0VTU19TQU5EQk9YIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
QnJvd3NlckZ1bmNzLmNwcAppbmRleCA3NTk3NjVkLi5kNDBkYjc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVu
Y3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAKLSNpZiBQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2luY2x1ZGUgIk5ldHNjYXBlU2FuZGJveEZ1bmN0aW9u
cy5oIgogI2VuZGlmCiAKQEAgLTUwNyw3ICs1MDcsNyBAQCBzdGF0aWMgTlBFcnJvciBOUE5fR2V0
VmFsdWUoTlBQIG5wcCwgTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQgKnZhbHVlKQogICAgICAg
ICAgICAgKihOUEJvb2wqKXZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKyNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MCAmJiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAgICAgIGNhc2UgV0tOVlNhbmRib3hGdW5j
dGlvbnM6CiAgICAgICAgIHsKICAgICAgICAgICAgICooV0tOU2FuZGJveEZ1bmN0aW9ucyAqKil2
YWx1ZSA9IG5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5j
dGlvbnMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQppbmRleCA3NzVlM2NhLi5hZmNjNjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQpAQCAtMjgs
NyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpICYmIEVOQUJMRShQ
TFVHSU5fUFJPQ0VTUykKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzcy5oIgogI2ltcG9y
dCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKQEAgLTEwMyw3ICsxMDMsNyBAQCBOUEVycm9yIFdL
Tl9FbnRlclNhbmRib3goY29uc3QgY2hhciogcmVhZE9ubHlQYXRoc1tdLCBjb25zdCBjaGFyKiBy
ZWFkV3JpdGVQYXRocwogICAgIGlmIChwcm9maWxlLmlzTnVsbCgpKQogICAgICAgICBleGl0KEVY
X05PUEVSTSk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIC8vIFVzZSBwcml2YXRlIHRlbXBv
cmFyeSBhbmQgY2FjaGUgZGlyZWN0b3JpZXMuCiAgICAgU3RyaW5nIHN5c3RlbURpcmVjdG9yeVN1
ZmZpeCA9ICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3MrIiArIFBsdWdpblByb2Nlc3M6
OnNoYXJlZCgpLm5ldHNjYXBlUGx1Z2luTW9kdWxlKCktPm1vZHVsZSgpLT5idW5kbGVJZGVudGlm
aWVyKCk7CiAgICAgc2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHN5c3RlbURpcmVjdG9yeVN1ZmZpeCkuZGF0YSgpLCAwKTsKQEAgLTE5
MCw2ICsxOTAsNiBAQCBOUEVycm9yIFdLTl9GaWxlU3RvcEFjY2Vzc2luZyhjb25zdCBjaGFyKiBw
YXRoKQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAotI2VuZGlmIC8vICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAog
I2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAmJiBFTkFCTEUoUExVR0lOX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMDNkNTk5ZC4uMDkyZWM2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgV2ViRWRpdG9y
Q2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqIGVsZW1lbnQpCiBi
b29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rp
b24oV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZSB0eXBlKSBjb25zdAogewogICAgIC8vIFRoaXMg
cHJldmVudHMgZXJhc2luZyBzcGVsbGluZyBtYXJrZXJzIG9uIE9TIFggTGlvbiBvciBsYXRlciB0
byBtYXRjaCBBcHBLaXQgb24gdGhlc2UgTWFjIE9TIFggdmVyc2lvbnMuCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICByZXR1cm4gdHlwZSAhPSBUZXh0Q2hlY2tpbmdU
eXBlU3BlbGxpbmc7CiAjZWxzZQogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
aW5kZXggZDRlZDMxMS4uZmJhZGQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzUsNyAr
MTM1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5n
KGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQq
IG1pc3NwZWxsaW5nTGVuZ3RoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRv
Q29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxs
ZWRXb3JkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmco
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4m
LCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSBPVkVSUklE
RTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NjAKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRl
eHQsIGludCBsZW5ndGgsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlw
ZXMsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKSBPVkVSUklE
RTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJT
dHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYpIE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDk5ZmQxY2QuLmVi
MTA0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTM3LDcgKzM3
LDcgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIAogICAgIGRp
c3BhdGNoX29uY2UoJmluaXRPbmNlLCBeewogICAgICAgICBJTklUKEFkdmFuY2VEZWZhdWx0QnV0
dG9uUHVsc2VBbmltYXRpb24pOwotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAg
SU5JVChDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKTsKICNlbmRpZgog
ICAgICAgICBJTklUKENvcHlDRkxvY2FsaXphdGlvblByZWZlcnJlZE5hbWUpOwpAQCAtMTE3LDcg
KzExNyw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKIAogICAgICAg
ICBJTklUKFNldE1ldGFkYXRhVVJMKTsKICAgICAgICAgCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgICAgICBJTklUKElPU3VyZmFjZUNvbnRleHRDcmVhdGUpOwogICAgICAgICBJTklU
KElPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZSk7CiAgICAgICAgIElOSVQoQ3JlYXRlQ1RUeXBl
c2V0dGVyV2l0aFVuaUNoYXJQcm92aWRlckFuZE9wdGlvbnMpOwpAQCAtMTU2LDIzICsxNTYsMjMg
QEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKENv
cHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgICAgICBJTklUKFNldENGVVJM
UmVzcG9uc2VNSU1FVHlwZSk7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAg
IElOSVQoQ3JlYXRlVk1QcmVzc3VyZURpc3BhdGNoT25NYWluUXVldWUpOwogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAg
ICAgICAgIElOSVQoR2V0TWFjT1NYVmVyc2lvblN0cmluZyk7CiAgICAgICAgIElOSVQoRXhlY3V0
YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVMaW9uKTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgICAgICBJTklU
KENHUGF0aEFkZFJvdW5kZWRSZWN0KTsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgICAgICBJTklUKENGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcpOwogI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCisjaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAg
JiYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChGaWx0ZXJJc01hbmFnZWRTZXNzaW9uKTsK
ICAgICAgICAgSU5JVChGaWx0ZXJDcmVhdGVJbnN0YW5jZSk7CiAgICAgICAgIElOSVQoRmlsdGVy
UmVsZWFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggMzdkMWUwNy4uN2Y5YmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA5MSw3ICszMDkxLDcgQEAgYm9vbCBXZWJQYWdl
OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKICAgICByZXR1cm4gcGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpOwogfQogCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3Ry
aW5nJiByZXN1bHQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiOWRhYzkxLi5kMjM0YTFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTUyMCw3ICs1MjAsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHVubWFya0FsbE1pc3NwZWxsaW5ncygpOwogICAgIHZvaWQgdW5tYXJr
QWxsQmFkR3JhbW1hcigpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgdm9pZCBoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJl
c3VsdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDM4ZjM2YzIuLjc1
ZjcyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNzcsNyArMjc3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSB7CiAgICAgRmluZFpvb21hYmxlQXJlYUZvclBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50
LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgSGFuZGxlQWx0ZXJu
YXRpdmVUZXh0VUlSZXN1bHQoU3RyaW5nIHJlc3VsdCkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggMjJl
ZWRlOC4uNDNkMzgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQgV2ViUGFnZTo6
cGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0
UG9pbnQpCiAKICAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMgPSBuaWw7CiAKLSNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gQXMgY29udGV4dCwgd2UgYXJlIGdvaW5nIHRvIHVzZSB0
aGUgc3Vycm91bmRpbmcgcGFyYWdyYXBoIG9mIHRleHQuCiAgICAgVmlzaWJsZVBvc2l0aW9uIHBh
cmFncmFwaFN0YXJ0ID0gc3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbik7CiAgICAgVmlzaWJsZVBv
c2l0aW9uIHBhcmFncmFwaEVuZCA9IGVuZE9mUGFyYWdyYXBoKHBvc2l0aW9uKTsKQEAgLTUxMyw3
ICs1MTMsNyBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9yU2VsZWN0
aW9uKERpY3Rpb25hcnlQb3B1cEluZm86OlR5cGUgdHlwZQogCiAgICAgTlNEaWN0aW9uYXJ5ICpv
cHRpb25zID0gbmlsOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFZpc2libGVQ
b3NpdGlvbiBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKICAgICBW
aXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKIApA
QCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBG
b3JSYW5nZShEaWN0aW9uYXJ5UG9wdXBJbmZvOjpUeXBlIHR5cGUsIEZyCiAgICAgZGljdGlvbmFy
eVBvcHVwSW5mby50eXBlID0gdHlwZTsKICAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLm9yaWdpbiA9
IEZsb2F0UG9pbnQocmFuZ2VSZWN0LngoKSwgcmFuZ2VSZWN0LnkoKSArIChzdHlsZS0+Zm9udE1l
dHJpY3MoKS5hc2NlbnQoKSAqIHBhZ2VTY2FsZUZhY3RvcigpKSk7CiAgICAgZGljdGlvbmFyeVBv
cHVwSW5mby5mb250SW5mby5mb250QXR0cmlidXRlRGljdGlvbmFyeSA9IGZvbnREZXNjcmlwdG9y
QXR0cmlidXRlczsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZGljdGlvbmFyeVBv
cHVwSW5mby5vcHRpb25zID0gKENGRGljdGlvbmFyeVJlZilvcHRpb25zOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
LmluCmluZGV4IGIzOGMyM2MuLmM1MDFlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtOTMsNyArOTMsNyBAQAog
KGFsbG93IGZpbGUqCiAgICAgKHN1YnBhdGggIi9wcml2YXRlL3Zhci9kYi9tZHMvc3lzdGVtIikp
CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogKGlmIChwb3NpdGl2ZT8gKHN0cmluZy1sZW5ndGggKHBh
cmFtICJEQVJXSU5fVVNFUl9DQUNIRV9ESVIiKSkpCiAgICAgKGFsbG93IGZpbGUqIChzdWJwYXRo
IChwYXJhbSAiREFSV0lOX1VTRVJfQ0FDSEVfRElSIikpKSkKICNlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9LZXljaGFpbkl0ZW1TaGltTWV0aG9kcy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2RzLm1t
CmluZGV4IDNmMjI5YTEuLjU3NTlhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2RzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL0tleWNoYWluSXRlbVNoaW1NZXRob2RzLm1tCkBAIC0yNiw3ICsyNiw3
IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIktleWNoYWluSXRlbVNoaW1NZXRob2Rz
LmgiCiAKLSNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKSAmJiBkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKIAogI2ltcG9ydCAiQmxvY2tpbmdSZXNwb25z
ZU1hcC5oIgogI2ltcG9ydCAiU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuaCIKQEAgLTIyOSw0
ICsyMjksNCBAQCB2b2lkIGluaXRpYWxpemVLZXljaGFpbkl0ZW1TaGltKCkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKSAmJiBkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBVU0UoU0VDVVJJVFlfRlJB
TUVXT1JLKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTWV0aG9kcy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTWV0aG9kcy5tbQpp
bmRleCBjZmUzM2FkLi41MGNiYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL21hYy9TZWNJdGVtU2hpbU1ldGhvZHMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0
ICJjb25maWcuaCIKICNpbXBvcnQgIlNlY0l0ZW1TaGltTWV0aG9kcy5oIgogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAogCiAjaW1wb3J0ICJCbG9ja2luZ1Jlc3BvbnNlTWFwLmgiCiAjaW1w
b3J0ICJTZWNJdGVtUmVxdWVzdERhdGEuaCIKQEAgLTExOSw0ICsxMTksNCBAQCB2b2lkIGluaXRp
YWxpemVTZWNJdGVtU2hpbSgpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8g
IUJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dl
YlByb2Nlc3NNYWMubW0KaW5kZXggNjlmNGZiMS4uMGE4YzBhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCkBAIC00NSw3ICs0NSw3IEBACiAj
aW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHN0ZGlvLmg+CiAKLSNpZiBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID09IDEwNjAKICNpbXBvcnQgIktleWNoYWluSXRlbVNoaW1NZXRob2RzLmgiCiAjZWxz
ZQogI2ltcG9ydCAiU2VjSXRlbVNoaW1NZXRob2RzLmgiCkBAIC0xODUsNyArMTg1LDcgQEAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDgwCiAgICAgLy8gVXNlIHByaXZhdGUgdGVtcG9yYXJ5IGFuZCBjYWNoZSBkaXJlY3Rvcmll
cy4KICAgICBTdHJpbmcgc3lzdGVtRGlyZWN0b3J5U3VmZml4ID0gImNvbS5hcHBsZS5XZWJQcm9j
ZXNzKyIgKyBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAgICAgc2V0ZW52
KCJESVJIRUxQRVJfVVNFUl9ESVJfU1VGRklYIiwgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5
c3RlbURpcmVjdG9yeVN1ZmZpeCkuZGF0YSgpLCAwKTsKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycwogCiB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVTaGltKCkK
IHsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAgICBpbml0aWFsaXplS2V5Y2hhaW5JdGVt
U2hpbSgpOwogI2Vsc2UKICAgICBpbml0aWFsaXplU2VjSXRlbVNoaW0oKTsKQEAgLTI5OSwxNCAr
Mjk5LDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQogCiB2b2lkIFdl
YlByb2Nlc3M6OnNlY0l0ZW1SZXNwb25zZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBTZWNJdGVtUmVzcG9uc2VEYXRhJiByZXNwb25zZSkKIHsKLSNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgZGlkUmVjZWl2ZVNlY0l0ZW1SZXNwb25zZShyZXF1
ZXN0SUQsIHJlc3BvbnNlKTsKICNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnNlY0tleWNo
YWluSXRlbVJlc3BvbnNlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YSYgcmVzcG9uc2UpCiB7Ci0jaWYgZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgZGlkUmVjZWl2ZVNlY0tleWNoYWluSXRlbVJlc3BvbnNl
KHJlcXVlc3RJRCwgcmVzcG9uc2UpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCmluZGV4IDQ4YWMyZjMuLjFiNjdm
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWluTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWluTWFjLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJuX3QgYm9vdHN0cmFwX3JlZ2lzdGVyMiht
YWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwgdWludDY0X3QpOwogI2VuZGlmCiAKQEAg
LTczLDcgKzczLDcgQEAgaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21t
YW5kTGluZSkKIAogICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IGNvbW1hbmRMaW5lWyJzZXJ2aWNl
bmFtZSJdOwogICAgIFN0cmluZyBjbGllbnRFeGVjdXRhYmxlOwotI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICBjbGllbnRFeGVjdXRhYmxlID0gY29tbWFuZExpbmVbImNsaWVudC1leGVj
dXRhYmxlIl07CiAjZW5kaWYKIApAQCAtODksNyArODksNyBAQCBpbnQgV2ViUHJvY2Vzc01haW4o
Y29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQogICAgICAgICAgICAgcmV0dXJuIDI7CiAg
ICAgICAgIH0KICAgICB9Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGVsc2Ugewog
ICAgICAgICBtYWNoX3BvcnRfbmFtZV90IHB1Ymxpc2hlZFNlcnZpY2U7CiAgICAgICAgIG1hY2hf
cG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwg
JnB1Ymxpc2hlZFNlcnZpY2UpOwpAQCAtMTQxLDcgKzE0MSw3IEBAIGludCBXZWJQcm9jZXNzTWFp
bihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCiAgICAgICAgICAgICByZXR1cm4gRVhJ
VF9GQUlMVVJFOwogICAgICAgICB9CiAgICAgfQotI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKIAogICAgIFN0cmluZyBsb2NhbGl6YXRpb24gPSBjb21tYW5kTGluZVsibG9j
YWxpemF0aW9uIl07CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZkxvY2FsaXphdGlvbihB
ZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgVW5pQ2hhcio+KGxvY2FsaXphdGlvbi5jaGFyYWN0ZXJzKCkpLCBsb2NhbGl6YXRpb24u
bGVuZ3RoKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dl
YlByb2Nlc3NTaGltLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vz
c1NoaW0ubW0KaW5kZXggNmQ2OTQ0MS4uOTkxNjZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0KQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKIGV4dGVybiAi
QyIgdm9pZCBXZWJLaXRXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplKGNvbnN0IFdlYlBy
b2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNrcyYpOwogCkBAIC03MCw5ICs3MCw5IEBAIHZvaWQgV2Vi
S2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzU2VjSXRl
bVNoaW1DYWxsYmFja3MmCiAgICAgc2VjSXRlbVNoaW1DYWxsYmFja3MgPSBjYWxsYmFja3M7CiB9
CiAKLSNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYg
Ly8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKLSNpZiBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID09IDEwNjAKIAogZXh0ZXJuICJDIiB2b2lkIFdlYktpdFdlYlByb2Nlc3NLZXljaGFp
bkl0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzS2V5Y2hhaW5JdGVtU2hpbUNhbGxi
YWNrcyYpOwogCkBAIC0xMjEsNiArMTIxLDYgQEAgdm9pZCBXZWJLaXRXZWJQcm9jZXNzS2V5Y2hh
aW5JdGVtU2hpbUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0tleWNoYWluSXRlbVNoaW0KICAg
ICBrZXljaGFpbkl0ZW1TaGltQ2FsbGJhY2tzID0gY2FsbGJhY2tzOwogfQogCi0jZW5kaWYgLy8g
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZW5kaWYgLy8gX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEwMzk4MTUu
LjdlNmFlMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wNy0xMSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUu
Y29tPgorCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzkxMDE1PiBSZW1vdmUgQlVJTERJ
TkdfT04gLyBUQVJHRVRJTkcgbWFjcm9zIGluIGZhdm9yIG9mIHN5c3RlbSBhdmFpbGFiaWxpdHkg
bWFjcm9zCisKKyAgICAgICAgVGhpcyByZW1vdmFsIHdhcyBoYW5kbGVkIGJ5IGEgc2NyaXB0IHRo
YXQgdHJhbnNsYXRlcyB0aGUgcmVsZXZhbnQgbWFjcm9zIGluIHRvIHRoZSBlcXVpdmFsZW50IGNo
ZWNrcworICAgICAgICB1c2luZyB0aGUgc3lzdGVtIGF2YWlsYWJpbGl0eSBtYWNyb3MuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jZi9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9DaGVja2VkTWFsbG9jLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlRHJhZ2dpbmdJbmZvLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRU
ZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElu
cHV0Q29udHJvbGxlci5tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL0luamVjdGVkQnVu
ZGxlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY3RpdmF0ZUZvbnRzLm1tOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tOgorCiAyMDEyLTA3LTExICBL
ZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFt3eF0g
VW5yZXZpZXdlZCBidWlsZCBmaXguIEFkZCBuZXcgZGlyZWN0b3JpZXMgYW5kIGEgbmV3IExheW91
dFRlc3RDb250cm9sbGVyIG1ldGhvZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2NmL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jZi9X
ZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwCmluZGV4IDMzZGMyOGEuLjFmN2YxNzIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NmL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2YvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0LmNwcApAQCAt
NDQsNyArNDQsNyBAQCBDRlR5cGVJRCBDRlVSTFJlc3BvbnNlR2V0VHlwZUlEKHZvaWQpOwogCiBz
dGF0aWMgdm9pZCBjb252ZXJ0TUlNRVR5cGUoQ0ZNdXRhYmxlU3RyaW5nUmVmIG1pbWVUeXBlKQog
ewotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID09IDEwNTAKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0v
NTUzOTgyND4gb24gTGVvcGFyZAogICAgIGlmIChDRlN0cmluZ0NvbXBhcmUobWltZVR5cGUsIENG
U1RSKCJ0ZXh0L3htbCIpLCBrQ0ZDb21wYXJlQW5jaG9yZWQgfCBrQ0ZDb21wYXJlQ2FzZUluc2Vu
c2l0aXZlKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykKICAgICAgICAgQ0ZTdHJpbmdSZXBsYWNlQWxs
KG1pbWVUeXBlLCBDRlNUUigiYXBwbGljYXRpb24veG1sIikpOwpAQCAtMTU4LDcgKzE1OCw3IEBA
IENGU3RyaW5nUmVmIGNyZWF0ZVhNTFN0cmluZ0Zyb21XZWJBcmNoaXZlRGF0YShDRkRhdGFSZWYg
d2ViQXJjaGl2ZURhdGEpCiAgICAgQ0ZFcnJvclJlZiBlcnJvciA9IDA7CiAgICAgQ0ZQcm9wZXJ0
eUxpc3RGb3JtYXQgZm9ybWF0ID0ga0NGUHJvcGVydHlMaXN0QmluYXJ5Rm9ybWF0X3YxXzA7CiAK
LSNpZmRlZiBCVUlMRElOR19PTl9MRU9QQVJECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA9PSAxMDUwCiAgICAgQ0ZJbmRleCBieXRlc0NvdW50ID0gQ0ZEYXRhR2V0TGVuZ3Ro
KHdlYkFyY2hpdmVEYXRhKTsKICAgICBSZXRhaW5QdHI8Q0ZSZWFkU3RyZWFtUmVmPiByZWFkU3Ry
ZWFtKEFkb3B0Q0YsIENGUmVhZFN0cmVhbUNyZWF0ZVdpdGhCeXRlc05vQ29weShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBDRkRhdGFHZXRCeXRlUHRyKHdlYkFyY2hpdmVEYXRhKSwgYnl0ZXNDb3VudCwg
a0NGQWxsb2NhdG9yTnVsbCkpOwogICAgIENGUmVhZFN0cmVhbU9wZW4ocmVhZFN0cmVhbS5nZXQo
KSk7CkBAIC0yMDgsNyArMjA4LDcgQEAgQ0ZTdHJpbmdSZWYgY3JlYXRlWE1MU3RyaW5nRnJvbVdl
YkFyY2hpdmVEYXRhKENGRGF0YVJlZiB3ZWJBcmNoaXZlRGF0YSkKIAogICAgIGVycm9yID0gMDsK
IAotI2lmZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID09IDEwNTAKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiB4bWxEYXRhKEFkb3B0
Q0YsIENGUHJvcGVydHlMaXN0Q3JlYXRlWE1MRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwcm9w
ZXJ0eUxpc3QuZ2V0KCkpKTsKICNlbHNlCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4geG1sRGF0
YShBZG9wdENGLCBDRlByb3BlcnR5TGlzdENyZWF0ZURhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cHJvcGVydHlMaXN0LmdldCgpLCBrQ0ZQcm9wZXJ0eUxpc3RYTUxGb3JtYXRfdjFfMCwgMCwgJmVy
cm9yKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ2hlY2tlZE1hbGxv
Yy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ2hlY2tlZE1hbGxvYy5jcHAKaW5kZXgg
OGJkNTNlNS4uYjU2Y2IyOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0No
ZWNrZWRNYWxsb2MuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9DaGVja2VkTWFs
bG9jLmNwcApAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgdm9pZCogY2hlY2tlZFJlYWxsb2MobWFs
bG9jX3pvbmVfdCogem9uZSwgdm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKICAgICByZXR1cm4gc2F2
ZWRSZWFsbG9jKHpvbmUsIHB0ciwgc2l6ZSk7CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBzdGF0aWMgdm1fcHJvdF90IHBy
b3RlY3Rpb25PZlJlZ2lvbihtYWNoX3ZtX2FkZHJlc3NfdCBhZGRyZXNzKQogewogICAgIG1hY2hf
dm1fc2l6ZV90IHJlZ2lvblNpemUgPSAwOwpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIG1ha2VMYXJn
ZU1hbGxvY0ZhaWxTaWxlbnRseSgpCiB7CiAgICAgbWFsbG9jX3pvbmVfdCogem9uZSA9IG1hbGxv
Y19kZWZhdWx0X3pvbmUoKTsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBtYWNoX3ZtX2FkZHJlc3NfdCBwYWdlU3RhcnQg
PSByZWludGVycHJldF9jYXN0PHZtX2FkZHJlc3NfdD4oem9uZSkgJiBzdGF0aWNfY2FzdDx2bV9z
aXplX3Q+KH4oZ2V0cGFnZXNpemUoKSAtIDEpKTsKICAgICB2bV9wcm90X3QgaW5pdGlhbFByb3Rl
Y3Rpb24gPSBwcm90ZWN0aW9uT2ZSZWdpb24ocGFnZVN0YXJ0KTsKIApAQCAtODUsNyArODUsNyBA
QCB2b2lkIG1ha2VMYXJnZU1hbGxvY0ZhaWxTaWxlbnRseSgpCiAgICAgem9uZS0+bWFsbG9jID0g
Y2hlY2tlZE1hbGxvYzsKICAgICB6b25lLT5yZWFsbG9jID0gY2hlY2tlZFJlYWxsb2M7CiAKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcw
CiAgICAgaWYgKG1hY2hfdm1fcHJvdGVjdChtYWNoX3Rhc2tfc2VsZigpLCBwYWdlU3RhcnQsIGxl
biwgMCwgaW5pdGlhbFByb3RlY3Rpb24pKQogICAgICAgICBDUkFTSCgpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggZGQwZWZmNC4uYWJi
YTUzNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAt
NDE4LDcgKzQxOCw3IEBAIHN0YXRpYyB2b2lkIGFjdGl2YXRlVGVzdGluZ0ZvbnRzKCkKICAgICAg
ICAgIldlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmIiwKICAgICAgICAgIldlYktpdFdlaWdodFdh
dGNoZXI4MDAudHRmIiwKICAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmIiwKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgICJTYW1wbGVGb250LnNmb250
IiwKICNlbmRpZgogICAgICAgICAwCkBAIC01OTAsNyArNTkwLDcgQEAgc3RhdGljIHZvaWQgcmVz
ZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAjZW5kaWYKIAogCi0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAm
JiAhUExBVEZPUk0oQ0hST01JVU0pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDgwICYmICFQTEFURk9STShDSFJPTUlVTSkKICAgICBbZGVmYXVsdHMgc2V0Qm9vbDpO
TyBmb3JLZXk6QCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiXTsKICNlbHNlCiAgICAgW2RlZmF1
bHRzIHNldEJvb2w6Tk8gZm9yS2V5OkAiQXBwbGVTY3JvbGxBbmltYXRpb25FbmFibGVkIl07CkBA
IC02NTUsNyArNjU1LDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZh
bHVlcygpCiAgICAgLy8gU28sIHR1cm4gaXQgb2ZmIGZvciBub3csIGJ1dCB3ZSBtaWdodCB3YW50
IHRvIHR1cm4gaXQgYmFjayBvbiBzb21lIGRheS4KICAgICBbcHJlZmVyZW5jZXMgc2V0VXNlc1Bh
Z2VDYWNoZTpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkOllFU107Ci0jaWYgVVNFKENBKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgVVNFKENBKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBbcHJlZmVyZW5jZXMg
c2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOk5PXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCmluZGV4
IGI3MjljZjQuLmI2YjIyYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0KQEAgLTEwNSw3ICsxMDUsNyBAQAogICAg
IHJldHVybiBuaWw7CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCiAtIChOU0RyYWdnaW5nRm9ybWF0aW9uKWRyYWdnaW5nRm9y
bWF0aW9uCiB7CiAgICAgcmV0dXJuIE5TRHJhZ2dpbmdGb3JtYXRpb25EZWZhdWx0OwpAQCAtMTQw
LDcgKzE0MCw3IEBACiB7CiAgICAgLy8gSWdub3JlZC4KIH0KLSNlbmRpZiAvLyAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAKIEBl
bmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tCmluZGV4IGYzNjBjMDYuLjU0Zjg3NTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTEwMzEsNyArMTAz
MSw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdlYlZpZXdFZGl0YWJsZShib29s
IGVkaXRhYmxlKQogCiBzdGF0aWMgTlNTdHJpbmcgKlN5bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1v
ZGUgPSBAIkR1bXBSZW5kZXJUcmVlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZSI7CiAKLSNp
ZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA2MAog
QHByb3RvY29sIE5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlIDxOU09iamVjdD4KIEBlbmQKICNlbmRp
ZgpAQCAtMTEwNyw3ICsxMTA3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpTeW5jaHJvbm91c0xvYWRl
clJ1bkxvb3BNb2RlID0gQCJEdW1wUmVuZGVyVHJlZVN5bmNocm9ub3VzTG9hZGUKIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYgdXJsLCBK
U1N0cmluZ1JlZiB1c2VybmFtZSwgSlNTdHJpbmdSZWYgcGFzc3dvcmQpCiB7CiAgICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS83ODgwNjk5Pi4KLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gdXJsU3RyaW5nQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmco
a0NGQWxsb2NhdG9yRGVmYXVsdCwgdXJsKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1
c2VybmFtZUNGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHVzZXJuYW1lKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwYXNzd29yZENGKEFk
b3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBhc3N3b3Jk
KSk7CkBAIC0xMTM1LDcgKzExMzUsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
aW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwpCiAKIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYgZGlyZWN0
aW9uTmFtZSkKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNjAKICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhkaXJlY3Rpb25O
YW1lLCAibHRyIikpCiAgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIG1ha2VCYXNlV3JpdGlu
Z0RpcmVjdGlvbkxlZnRUb1JpZ2h0OjBdOwogICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoZGlyZWN0aW9uTmFtZSwgInJ0bCIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubSBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KaW5kZXggYWZlYjE2ZS4uOTFkYmQ4NCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCkBAIC0z
MSw3ICszMSw3IEBACiAKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlTWFjLmgiCiAjaW1wb3J0IDxB
cHBLaXQvTlNJbnB1dE1hbmFnZXIuaD4KLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xJT04pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgw
CiAjZGVmaW5lIFNVUFBPUlRfRElDVEFUSU9OX0FMVEVSTkFUSVZFUwogI2ltcG9ydCA8QXBwS2l0
L05TVGV4dEFsdGVybmF0aXZlcy5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL21hYy9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL21hYy9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJNYWMubW0KaW5kZXggNGRkNGVmMC4u
OTY1YmViNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvSW5qZWN0ZWRCdW5k
bGVDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlck1hYy5tbQpAQCAtNDAsNyArNDAsNyBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBOU0RpY3Rpb25hcnkgKmRp
Y3QgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50ZWdlcjo0XSwgICBAIkFw
cGxlQW50aUFsaWFzaW5nVGhyZXNob2xkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhJbnRlZ2VyOjBdLCAgIEAiQXBwbGVGb250U21vb3RoaW5nIiwKLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xJT04pICYmICFQTEFURk9STShDSFJPTUlVTSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwODAgJiYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgICAgQCJOU1Njcm9s
bEFuaW1hdGlvbkVuYWJsZWQiLAogI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICAgIEAiQXBwbGVTY3JvbGxBbmltYXRpb25FbmFi
bGVkIiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjdGl2YXRlRm9udHMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY3RpdmF0ZUZvbnRzLm1tCmluZGV4IDMyMGIyOGEuLjAxZDc5MGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjdGl2YXRlRm9u
dHMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWN0
aXZhdGVGb250cy5tbQpAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgYWN0aXZhdGVGb250cygpCiAg
ICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiIsCiAgICAgICAgICJXZWJLaXRXZWln
aHRXYXRjaGVyODAwLnR0ZiIsCiAgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIs
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MSU9OKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAogICAgICAgICAiU2FtcGxlRm9udC5zZm9udCIsCiAjZW5kaWYKICAgICAgICAgMApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRC
dW5kbGVNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9J
bmplY3RlZEJ1bmRsZU1hYy5tbQppbmRleCA0MTkwNjRmLi45OTZhY2JiIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1h
Yy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9Jbmpl
Y3RlZEJ1bmRsZU1hYy5tbQpAQCAtMzksNyArMzksNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpw
bGF0Zm9ybUluaXRpYWxpemUoV0tUeXBlUmVmKQogICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IFtO
U0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhJbnRlZ2VyOjRdLCAgIEAiQXBwbGVBbnRpQWxpYXNpbmdUaHJlc2hvbGQi
LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludGVnZXI6MF0sICAgQCJBcHBsZUZvbnRT
bW9vdGhpbmciLAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MCAmJiAhUExBVEZPUk0oQ0hST01JVU0p
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgICBAIk5TU2Nyb2xsQW5p
bWF0aW9uRW5hYmxlZCIsCiAjZWxzZQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
Tk9dLCAgICAgQCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVuYWJsZWQiLAotLSAKMS43LjkuNiAoQXBw
bGUgR2l0LTMxLjEpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>