<?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>61279</bug_id>
          
          <creation_ts>2011-05-23 06:30:31 -0700</creation_ts>
          <short_desc>[Qt] Enable usage of QuickTime mediaplayer for the Qt port on Mac.</short_desc>
          <delta_ts>2011-06-03 14:06:39 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>ademar</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>hausmann</cc>
    
    <cc>jer.noble</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>407926</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 06:30:31 -0700</bug_when>
    <thetext>[Qt] Enable usage of QuickTime mediaplayer for the Qt port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407935</commentid>
    <comment_count>1</comment_count>
      <attachid>94417</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 06:48:54 -0700</bug_when>
    <thetext>Created attachment 94417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407943</commentid>
    <comment_count>2</comment_count>
      <attachid>94417</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 07:02:10 -0700</bug_when>
    <thetext>Comment on attachment 94417
Patch

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

&gt; Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:466
&gt; +#else

Could be done better. Will change it when landing. parentView = 0 and just an #if for mac. Thanks caio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407944</commentid>
    <comment_count>3</comment_count>
      <attachid>94417</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-23 07:10:33 -0700</bug_when>
    <thetext>Comment on attachment 94417
Patch

Attachment 94417 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8723817</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407956</commentid>
    <comment_count>4</comment_count>
      <attachid>94424</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 07:25:42 -0700</bug_when>
    <thetext>Created attachment 94424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407959</commentid>
    <comment_count>5</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 07:26:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=94424) [details]
&gt; Patch

Should fix the ews issue and this patch includes Caio&apos;s suggestion for parentView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407977</commentid>
    <comment_count>6</comment_count>
      <attachid>94424</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-23 08:06:19 -0700</bug_when>
    <thetext>Comment on attachment 94424
Patch

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

&gt; Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:1361
&gt; +#else
&gt; +    QWebPageClient* client = m_player-&gt;frameView()-&gt;hostWindow()-&gt;platformPageClient();
&gt; +    CGContextRef cgContext = static_cast&lt;CGContextRef&gt;(client ? client-&gt;ownerWidget()-&gt;macCGHandle() : 0);
&gt; +    CGContextSaveGState(cgContext);
&gt; +    CGContextSetInterpolationQuality(cgContext, kCGInterpolationLow);
&gt; +    CGContextTranslateCTM(cgContext, r.x(), r.y() + r.height());
&gt; +    CGContextScaleCTM(cgContext, scaleFactor.width(), scaleFactor.height());
&gt; +
&gt; +    newContext = [NSGraphicsContext graphicsContextWithGraphicsPort:cgContext flipped:NO];
&gt; +#endif

It looks like you&apos;re ignoring the passed-in context parameter here.  Is that intentional?  Is there a way to pass the correct context into paint() instead of calling back out to the pageClient for a context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407980</commentid>
    <comment_count>7</comment_count>
      <attachid>94424</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 08:11:49 -0700</bug_when>
    <thetext>Comment on attachment 94424
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:1361
&gt;&gt; +#endif
&gt; 
&gt; It looks like you&apos;re ignoring the passed-in context parameter here.  Is that intentional?  Is there a way to pass the correct context into paint() instead of calling back out to the pageClient for a context?

No because the context we have in Qt is not valid for drawing with CoreGraphics/QT. The context we get is a QPainter for Qt, if we apply the transformations on it, it won&apos;t change anything because at the end the video won&apos;t be draw by Qt but by QuickTime. That&apos;s why I have to get the CoreGraphics Context and apply the transformation manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408578</commentid>
    <comment_count>8</comment_count>
      <attachid>94424</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 19:21:44 -0700</bug_when>
    <thetext>Comment on attachment 94424
Patch

Attachment 94424 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8729379</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408582</commentid>
    <comment_count>9</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-23 19:25:53 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 94424 [details])
&gt; Attachment 94424 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/8729379


ERROR: WebCoreObjCExtras.o has one or more global initializers in it! (/Users/abarth/git/webkit-queue/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/WebCoreObjCExtras.o), near _WebCoreObjCFinalizeOnMainThread _WebCoreObjCFinalizeOnMainThread.eh

not sure to understand this properly and how my change could be related. Someone with Mac knowledge can help me please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408896</commentid>
    <comment_count>10</comment_count>
      <attachid>94619</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-24 08:59:45 -0700</bug_when>
    <thetext>Created attachment 94619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408898</commentid>
    <comment_count>11</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-24 09:00:34 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=94619) [details]
&gt; Patch

Better version of the patch in the paint function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409014</commentid>
    <comment_count>12</comment_count>
      <attachid>94619</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-24 11:11:36 -0700</bug_when>
    <thetext>Comment on attachment 94619
Patch

Attachment 94619 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8732433</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409025</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-24 11:22:17 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 94619 [details])
&gt; Attachment 94619 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/8732433

This build error is probably due to the &quot;#include &lt;iostream&gt;&quot; added to Source/WebCore/platform/mac/WebCoreObjCExtras.mm.  

Is that addition necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409056</commentid>
    <comment_count>14</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-24 11:46:00 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 94619 [details] [details])
&gt; &gt; Attachment 94619 [details] [details] did not pass mac-ews (mac):
&gt; &gt; Output: http://queues.webkit.org/results/8732433
&gt; 
&gt; This build error is probably due to the &quot;#include &lt;iostream&gt;&quot; added to Source/WebCore/platform/mac/WebCoreObjCExtras.mm.  
&gt; 
&gt; Is that addition necessary?

Well yes because otherwise std::pair is not defined in the file. I could protect it into a #if PLATFORM(QT) but I wonder how it could compile for Mac. I grep the code for iostream nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409120</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-24 12:38:19 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; (From update of attachment 94619 [details] [details] [details])
&gt; &gt; &gt; Attachment 94619 [details] [details] [details] did not pass mac-ews (mac):
&gt; &gt; &gt; Output: http://queues.webkit.org/results/8732433
&gt; &gt; 
&gt; &gt; This build error is probably due to the &quot;#include &lt;iostream&gt;&quot; added to Source/WebCore/platform/mac/WebCoreObjCExtras.mm.  
&gt; &gt; 
&gt; &gt; Is that addition necessary?
&gt; 
&gt; Well yes because otherwise std::pair is not defined in the file. I could protect it into a #if PLATFORM(QT) but I wonder how it could compile for Mac. I grep the code for iostream nothing.

stl_pair.h is included by Source/WebCore/WebCorePrefix.h, by way of: #include &quot;string.h&quot;.

Even then, &quot;#include &lt;iostream&gt;&quot; is the wrong way to go about defining std::pair.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409158</commentid>
    <comment_count>16</comment_count>
      <attachid>94678</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-24 13:27:39 -0700</bug_when>
    <thetext>Created attachment 94678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409164</commentid>
    <comment_count>17</comment_count>
      <attachid>94679</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-24 13:32:22 -0700</bug_when>
    <thetext>Created attachment 94679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409633</commentid>
    <comment_count>18</comment_count>
      <attachid>94679</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-05-25 07:53:16 -0700</bug_when>
    <thetext>Comment on attachment 94679
Patch

r+, but please consider making the changes I suggest before committing.


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

&gt; Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:712
&gt; +#if PLATFORM(QT) &amp;&amp; USE(QTKIT)
&gt; +    return 0;
&gt; +#else
&gt;      return m_qtVideoLayer.get();
&gt; +#endif

You could get rid of the #if here by returning 0 if there is no layer:

    if (!m_qtVideoLayer)
        return 0;
    return m_qtVideoLayer.get();

&gt; Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:1348
&gt; +#if PLATFORM(QT) &amp;&amp; USE(QTKIT)
&gt; +    CGContextRef cgContext = static_cast&lt;CGContextRef&gt;([[NSGraphicsContext currentContext] graphicsPort]);
&gt; +    CGContextSaveGState(cgContext);
&gt; +    CGContextSetInterpolationQuality(cgContext, kCGInterpolationLow);
&gt; +    CGContextTranslateCTM(cgContext, r.x(), r.y() + r.height());
&gt; +    CGContextScaleCTM(cgContext, scaleFactor.width(), scaleFactor.height());
&gt; +
&gt; +    newContext = [NSGraphicsContext currentContext];

A comment here about why you can&apos;t use the passed context will help people not familiar with the Qt architecture understand and not break this in the future.

&gt; Source/WebCore/platform/mac/WebCoreObjCExtras.mm:40
&gt; +#include &lt;utility&gt;
&gt;  #include &lt;objc/objc-auto.h&gt;
&gt;  #include &lt;objc/objc-runtime.h&gt;
&gt;  #include &lt;wtf/Assertions.h&gt;

The new #include should be inserted in sort order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409731</commentid>
    <comment_count>19</comment_count>
      <attachid>94803</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-25 10:19:13 -0700</bug_when>
    <thetext>Created attachment 94803
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409824</commentid>
    <comment_count>20</comment_count>
      <attachid>94803</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-25 12:22:37 -0700</bug_when>
    <thetext>Comment on attachment 94803
Patch for landing

Clearing flags on attachment: 94803

Committed r87312: &lt;http://trac.webkit.org/changeset/87312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409825</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-25 12:22:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415179</commentid>
    <comment_count>22</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-06-03 14:06:39 -0700</bug_when>
    <thetext>Revision r87312 cherry-picked into qtwebkit-2.2 with commit 1b5dd98 &lt;http://gitorious.org/webkit/qtwebkit/commit/1b5dd98&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94417</attachid>
            <date>2011-05-23 06:48:54 -0700</date>
            <delta_ts>2011-05-23 07:25:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61279-20110523104851.patch</filename>
            <type>text/plain</type>
            <size>35828</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY3ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYTljYzZhODRjNTgxMTYz
MzY5ODljOTc0ZDk1ODg1YjdjZGViZDI2Li43MjA0ODU1MmUwMDkzMzgwM2Q2OGY0MzEzZjhiOTk1
ZGE0ZjUwMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDUtMjMgIEFsZXhp
cyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBFbmFibGUgdXNhZ2Ugb2YgUXVp
Y2tUaW1lIG1lZGlhcGxheWVyIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTI3OQorCisgICAgICAgIEVuYWJs
ZSB0aGUgUXVpY2tUaW1lIGJhY2tlbmQgZm9yIHRoZSBRdCBwb3J0IG9uIE1hYy4gVGhlIHBhdGNo
IGFkZHMgdGhlIGJpdHMgaW4gV2ViQ29yZQorICAgICAgICB0byBlbmFibGUgdGhlIFFUS2l0IGJh
Y2tlbmQgb2YgdGhlIE1hYyBwb3J0LiBJdCBjYW4gYmUgZW5hYmxlZCBieSBwYXNzaW5nIERFRklO
RVMrPVVTRV9RVEtJVD0xIAorICAgICAgICB3aGVuIGNhbGxpbmcgYnVpbGQtd2Via2l0LgorCisg
ICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICog
ZmVhdHVyZXMucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkwuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW50UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZVZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUVmlkZW9SZW5kZXJlcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGFpbnQpOgorICAgICAgICAo
LVtXZWJDb3JlTW92aWVPYnNlcnZlciBsYXllckhvc3RDaGFuZ2VkOl0pOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9LVVJMTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TaGFyZWRCdWZm
ZXJNYWMubW06CisgICAgICAgICgrW1dlYkNvcmVTaGFyZWRCdWZmZXJEYXRhIGluaXRpYWxpemVd
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW06CisgICAgICAg
ICogcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOiBBZGRlZC4KKwogMjAxMS0w
NS0xOCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEJldGggRGFraW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDc1YTRlZGE1NDg1ZmQ5MDJj
YWNjZWEwMDQwZjRjYmFjZWNhOGE3NTMuLjNkNmMwODFlZjYwY2ZhNTk1MDFjNTNhYTAzOGRkYTI1
MTUxZDAwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0yNDMsNyArMjQzLDE2IEBAIGNvbnRhaW5zKERF
RklORVMsIFdURl9VU0VfUVRfQkVBUkVSPTEpIHsKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1ZJREVPPTEpIHsKLSAgICBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsK
KyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAgICBERUZJTkVTICs9
IFdURl9VU0VfUVRLSVQ9MQorCisgICAgICAgIElOQ0xVREVQQVRIICs9ICQkUFdEL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYworCisgICAgICAgIExJQlMgKz0gLWZyYW1ld29yayBBcHBLaXQgLWZyYW1l
d29yayBBdWRpb1VuaXQgXAorICAgICAgICAgICAgICAgIC1mcmFtZXdvcmsgQXVkaW9Ub29sYm94
IC1mcmFtZXdvcmsgQ29yZUF1ZGlvIFwKKyAgICAgICAgICAgICAgICAtZnJhbWV3b3JrIFF1YXJ0
ekNvcmUgLWZyYW1ld29yayBRVEtpdAorCisgICAgfSBlbHNlOmNvbnRhaW5zKERFRklORVMsIFVT
RV9HU1RSRUFNRVI9MSkgewogICAgICAgICBERUZJTkVTICs9IFdURl9VU0VfR1NUUkVBTUVSPTEK
ICAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfR0xJQl9TVVBQT1JUPTEKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCAzNzllYmQxM2QzY2E2ZjE0ZGQ1MjI0MzNiMTJjMjhkZjNlODE0NmNmLi41MTE0OGVkZTM3
MzRmZDA5YjhjYmI5MzM4MmFlZGIxOWQ4MzliZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjk0NSw3
ICsyOTQ1LDMxIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAg
ICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCiAgICAgfQogCi0gICAgY29u
dGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7CisgICAgY29udGFpbnMoREVGSU5FUywg
VVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSEVBREVSUyArPSBcCisgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9x
dC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL0Js
b2NrRXhjZXB0aW9ucy5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4
dHJhcy5oCisgICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIFwKKyAgICAgICAgICAgIHBsYXRmb3Jt
L21hYy9TaGFyZWRCdWZmZXJNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL0tVUkxN
YWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vdGV4dC9tYWMvU3RyaW5nTWFjLm1tIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9GbG9hdFNpemVNYWMubW0gXAorICAgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFJlY3RNYWMubW0gXAorICAgICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vY2Yv
U2hhcmVkQnVmZmVyQ0YuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2NmL0tVUkxDRk5ldC5j
cHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBc
CisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLm1tIFwKKyAgICAgICAg
ICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbQorCisgICAgICAgIERFRklORVMr
PU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKKyAgICB9IGVsc2U6
IGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgewogICAgICAgICBIRUFERVJTICs9
IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HT3duUHRyR1N0cmVh
bWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKaW5kZXggZTE0OGNmMGMzMWVmM2YzNjY3YmM1M2Qz
MjAzZGRjMzcwOWE0NzM2ZS4uOTYxNGE0MTlhODQ3NWMxYzA5ZDgxNDAxZGNiNmEyMjNkZDI5MTk2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ZlYXR1cmVzLnByaQpAQCAtMTYyLDcgKzE2MiwxMiBAQCBzeW1iaWFufG1hZW1vNXxt
YWVtbzYgewogICAgIERFRklORVMgLT0gRU5BQkxFX1ZJREVPPTEKICAgICBERUZJTkVTICs9IEVO
QUJMRV9WSURFTz0wCiAKLSAgICBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsK
KyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAgICBERUZJTkVTIC09
IEVOQUJMRV9WSURFTz0wCisgICAgICAgIERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKKyAgICAg
ICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUX01VTFRJTUVESUE9MQorICAgICAgICBERUZJTkVTICs9
IFdURl9VU0VfUVRfTVVMVElNRURJQT0wCisgICAgfSBlbHNlOiBjb250YWlucyhERUZJTkVTLCBV
U0VfR1NUUkVBTUVSPTEpIHsKICAgICAgICAgREVGSU5FUyAtPSBFTkFCTEVfVklERU89MAogICAg
ICAgICBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0xCiAgICAgICAgIERFRklORVMgLT0gV1RGX1VT
RV9RVF9NVUxUSU1FRElBPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tV
UkwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuaAppbmRleCA5NGRjYmE4YTRhNTBj
OTRkYjZjNjAzOGY0MGFhNzk1M2Q1ZjlhMTM0Li5mZDJhZjYwMTcwZmRmYmFiMzU0YzE2ODExYjlm
ZWRjMGIzNWY0YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5oCkBAIC0zNCw3ICszNCw3IEBACiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRL
SVQpKQogI2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNVUkw7CiAjZWxzZQpAQCAtMjAyLDcgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICBDRlVSTFJlZiBjcmVhdGVDRlVSTCgpIGNvbnN0OwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkpCiAgICAgS1VSTChOU1VSTCopOwogICAgIG9wZXJhdG9yIE5TVVJMKigp
IGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4
IDk2N2VkOTYxZDQyMThhNDkwZjdkNzQ0ODVmZTE2N2I0OTQ0OTE4ZmEuLjRmMWQ2Mjk2YjI0MmZl
NGQ5OWIyMjA2M2I3Y2IxMDhmMWY1YWJjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJl
ZEJ1ZmZlci5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgX19PQkpDX18KIEBjbGFzcyBOU0RhdGE7CiAj
ZWxzZQpAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgflNoYXJlZEJ1ZmZlcigp
OwogICAgIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9S
TShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBOU0RhdGEgKmNyZWF0ZU5TRGF0YSgpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gd3JhcE5TRGF0YShOU0RhdGEgKmRhdGEpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcAppbmRleCBmMDYw
YjI4ZWQ1OWQ1YzI0OTliNWZhNTdjN2MwMGVhMzI2MTVmNDA3Li5iYzg0OTA5NjgxMjQzYzJlZTdi
MDdmNjdhYjVkOTc0ODIyZDAxNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9LVVJMQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tVUkxD
Rk5ldC5jcHAKQEAgLTc4LDYgKzc4LDcgQEAgQ0ZVUkxSZWYgS1VSTDo6Y3JlYXRlQ0ZVUkwoKSBj
b25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiAhKFBMQVRGT1JNKFFUKSAmJiBVU0Uo
UVRLSVQpKQogU3RyaW5nIEtVUkw6OmZpbGVTeXN0ZW1QYXRoKCkgY29uc3QKIHsKICAgICBSZXRh
aW5QdHI8Q0ZVUkxSZWY+IGNmVVJMKEFkb3B0Q0YsIGNyZWF0ZUNGVVJMKCkpOwpAQCAtOTEsNSAr
OTIsNSBAQCBTdHJpbmcgS1VSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAogI2VuZGlmCiAgICAg
cmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZVUkxDb3B5RmlsZVN5c3Rl
bVBhdGgoY2ZVUkwuZ2V0KCksIHBhdGhTdHlsZSkpLmdldCgpOwogfQotCisjZW5kaWYKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAppbmRleCAzMTlm
NDg0ZTNjZjlkMDAxYTFmYTdmNzRlMWYxNTg5NGIzNmZjNTYwLi4zZTFiMDNkZTVlMzNkNTc1YTNk
NTE1ZDUzNGZkYjUxMTc0ODU3MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Yv
U2hhcmVkQnVmZmVyQ0YuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVk
QnVmZmVyKENGRGF0YVJlZiBjZkRhdGEpCiAKIC8vIE1hYyBpcyBhIENGIHBsYXRmb3JtIGJ1dCBo
YXMgYW4gZXZlbiBtb3JlIGVmZmljaWVudCB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kLAogLy8gc28g
b25seSB1c2UgdGhpcyB2ZXJzaW9uIGZvciBub24tTWFjCi0jaWYgIVBMQVRGT1JNKE1BQykKKyNp
ZiAhUExBVEZPUk0oTUFDKSAmJiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogQ0ZEYXRh
UmVmIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKCkKIHsKICAgICBpZiAobV9jZkRhdGEpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKaW5kZXggZGY5
YzE5YTU3OTBiZDgzZWYyNTFjMDBhNGVmZjQxZTY1ZGQ3MzE5Yi4uOWU5MjQ1YzA5NmNjNjNjOWM2
Yzg2Yzc0NTBiY2JkOTBlZGNmMTcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmgKQEAgLTM1LDcgKzM1LDcgQEAKIHR5cGVkZWYgc3RydWN0IENHU2l6
ZSBDR1NpemU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZk
ZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3Ry
dWN0IENHU2l6ZSBOU1NpemU7CiAjZWxzZQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0p
ICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFS
V0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGV4cGxpY2l0IEZsb2F0
U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBp
dCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAppbmRleCA1NTI3Mzg3ZDdkMzRiY2I5
MThjZTZkM2I3NTBiYTdkYTQ2ZmFlMGY4Li5jYzVhNzk1Yjk5ZGQ5MDNiNTExMWVmZTVkN2MzZjdi
NWIxOTliZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
CkBAIC0zMyw3ICszMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgQ0dSZWN0OwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0
OwogI2Vsc2UKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIChQTEFU
Rk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZ
X1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikp
CisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgIHx8IChQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNl
bmRpZgogCkBAIC0yNDIsNyArMjQyLDcgQEAgSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0
IENHUmVjdCYpOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dF
T01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykpIFwKLSAgICAgICAgfHwgKFBM
QVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorICAgICAgICB8fCAoUExBVEZPUk0oQ0hS
T01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIElu
dFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmKTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKaW5kZXggOGNmYWJmNTEzYzg2YjY1
OWRiZmYwN2E2NTI0YTdkNDZiOTI0OTZmMi4uZGI0ZTU0YzUyNmNjZmI5NDI0NWRiZDcwZDZmYzQy
YjVmYWY0NjJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUu
aApAQCAtMzAsNyArMzAsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgTlNTaXplOwogI2Vsc2UKQEAgLTExNCw3
ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMpCisjaWYgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAm
JiBVU0UoUVRLSVQpKSkgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VP
TUVUUllfVFlQRVMpCiAgICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRv
bid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNT
aXplKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA5ZGJlMzRhYjdiZDNiZjg5NTQ4ZmFjOTlkY2RhMjFh
MmM2OTlhMGM3Li40NzgxYTM5ZTMzYWExNDgwODAwMTQ0YjczODJmYjdiMTkzNWNkZmFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBA
IC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgi
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oIgogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oIgpAQCAtNjIsNyArNjIsNyBAQAogI2lmIFVTRShRVF9NVUxUSU1F
RElBKSAmJiAhVVNFKEdTVFJFQU1FUikKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRdC5o
IgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0
ZVF0Ci0jZWxpZiAhVVNFKEdTVFJFQU1FUikKKyNlbGlmICFVU0UoR1NUUkVBTUVSKSAmJiAhVVNF
KFFUS0lUKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIgogI2RlZmluZSBQ
bGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZVBob25vbgogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9h
dFNpemVDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNp
emVDRy5jcHAKaW5kZXggYTAzNWM3YWVkNTRmMjFiM2E3NzcyOTBjZmI2Zjc4ODliN2Q2YjExOS4u
NDc1ZWJjMDFjZTM1ZDI4NjM2NDlmMjQ1MzFjMjllNWM3MWJjNTYzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRTaXplQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcApAQCAtMjcs
NyArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgog
Ci0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKQorI2lmIFVTRShDRykgfHwg
VVNFKFNLSUFfT05fTUFDX0NIUk9NRSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQog
CiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RD
Ry5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3Bw
CmluZGV4IDE4ZWRlYjBmYzBhZTczODEyOThhNmFkMDA1OTIzNjk3OGJkMTE5ODIuLmViZDk2NTVj
MzIwNWFhM2MxZTM1YzMwNzM4NzkzNzY0ZjE2ZmJlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcApAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKIAotI2lmIFVTRShDRykg
fHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkKKyNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01B
Q19DSFJPTUUpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIAogI2luY2x1ZGUgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5oCmluZGV4IGI2NzlmNjQ1MTA0ZTI1ZmM4MDQyMTI2NDg4YWZlYTRkOWQxZDUx
YzQuLmFkZDk5ZWVkMzhkMzljZWZhMDk4YWU0ZDA3Njk2ZmUxMGIzM2NhNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oCkBAIC00MSw2ICs0MSw4IEBACiBAY2xhc3MgUVRWaWRlb1JlbmRl
cmVyV2ViS2l0T25seTsKIEBjbGFzcyBXZWJDb3JlTW92aWVPYnNlcnZlcjsKICNlbHNlCitjbGFz
cyBOU0RpY3Rpb25hcnk7CitjbGFzcyBOU011dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgUVRNb3Zp
ZTsKIGNsYXNzIFFUTW92aWVWaWV3OwogY2xhc3MgUVRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tCmluZGV4IDNmNTVjYjRjMjg5ZTZhZjM5YjcwNmJjNTZhYTcyMTJjZjlmYjdiZjUu
LmMxMGU1ZTEyZTRjN2NiYjJkZDQwYWU4ODZlMGI3YmZkMTcyODA0NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0KQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIkRvY3VtZW50TG9h
ZGVyLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCisjaW1wb3J0
ICJIb3N0V2luZG93LmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIktV
UkwuaCIKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKQEAgLTU5LDYgKzYwLDEwIEBACiAj
aW1wb3J0ICJSZW5kZXJTdHlsZS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShRVCkgJiYgVVNF
KFFUS0lUKQorI2luY2x1ZGUgPFFXZWJQYWdlQ2xpZW50Lmg+CisjaW5jbHVkZSA8UVdpZGdldD4K
KyNlbmRpZgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFFUS2l0KQogCkBAIC00NTUsOCArNDYwLDEz
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWVWaWV3KCkKIAog
ICAgIG1fcXRNb3ZpZVZpZXcuYWRvcHROUyhbW1FUTW92aWVWaWV3IGFsbG9jXSBpbml0XSk7CiAg
ICAgc2V0U2l6ZShtX3BsYXllci0+c2l6ZSgpKTsKLSAgICBOU1ZpZXcqIHBhcmVudFZpZXcgPSBt
X3BsYXllci0+ZnJhbWVWaWV3KCktPmRvY3VtZW50VmlldygpOworICAgIE5TVmlldyogcGFyZW50
VmlldzsKKyNpZiBQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKQorICAgIHBhcmVudFZpZXcgPSAw
OworI2Vsc2UKKyAgICBwYXJlbnRWaWV3ID0gbV9wbGF5ZXItPmZyYW1lVmlldygpLT5kb2N1bWVu
dFZpZXcoKTsKICAgICBbcGFyZW50VmlldyBhZGRTdWJ2aWV3Om1fcXRNb3ZpZVZpZXcuZ2V0KCld
OworI2VuZGlmCiAgICAgW21fcXRNb3ZpZVZpZXcuZ2V0KCkgc2V0RGVsZWdhdGU6bV9vYmpjT2Jz
ZXJ2ZXIuZ2V0KCldOwogICAgIFttX29iamNPYnNlcnZlci5nZXQoKSBzZXRWaWV3Om1fcXRNb3Zp
ZVZpZXcuZ2V0KCldOwogICAgIFttX3F0TW92aWVWaWV3LmdldCgpIHNldE1vdmllOm1fcXRNb3Zp
ZS5nZXQoKV07CkBAIC00OTMsNyArNTAzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtp
dDo6Y3JlYXRlUVRWaWRlb1JlbmRlcmVyKFFUVmlkZW9SZW5kZXJlck1vZGUgcmVuZGVyZXIKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIC8vIGFzc29jaWF0ZSBvdXIgbW92aWUgd2l0aCBvdXIg
aW5zdGFuY2Ugb2YgUVRWaWRlb1JlbmRlcmVyV2ViS2l0T25seQotICAgIFsoaWQ8V2ViS2l0Vmlk
ZW9SZW5kZXJpbmdEZXRhaWxzPiltX3F0VmlkZW9SZW5kZXJlci5nZXQoKSBzZXRNb3ZpZTptX3F0
TW92aWUuZ2V0KCldOyAgICAKKyAgICBbKGlkPFdlYktpdFZpZGVvUmVuZGVyaW5nRGV0YWlscz4p
bV9xdFZpZGVvUmVuZGVyZXIuZ2V0KCkgc2V0TW92aWU6bV9xdE1vdmllLmdldCgpXTsKIAogICAg
IGlmIChyZW5kZXJlck1vZGUgPT0gUVRWaWRlb1JlbmRlcmVyTW9kZUxpc3RlbnNGb3JOZXdJbWFn
ZXMpIHsKICAgICAgICAgLy8gbGlzdGVuIHRvIFFUVmlkZW9SZW5kZXJlcldlYktpdE9ubHkncyBR
VFZpZGVvUmVuZGVyZXJXZWJLaXRPbmx5TmV3SW1hZ2VEaWRCZWNvbWVBdmFpbGFibGVOb3RpZmlj
YXRpb24KQEAgLTcwMiw3ICs3MTIsMTEgQEAgUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogeworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgcmV0
dXJuIDA7CisjZWxzZQogICAgIHJldHVybiBtX3F0VmlkZW9MYXllci5nZXQoKTsKKyNlbmRpZgog
fQogI2VuZGlmCiAKQEAgLTEyMTIsNyArMTIyNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQ6OmRpZEVuZCgpCiAgICAgbV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7CiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmIGRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQogc3RhdGljIGJvb2wgbGF5ZXJJc0Rlc2NlbmRlbnRPZihQbGF0
Zm9ybUxheWVyKiBjaGlsZCwgUGxhdGZvcm1MYXllciogZGVzY2VuZGVudCkKIHsKQEAgLTEzMjcs
MTQgKzEzNDEsMjYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQogCiAgICAgW21fb2JqY09ic2Vy
dmVyLmdldCgpIHNldERlbGF5Q2FsbGJhY2tzOllFU107CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIE5TR3JhcGhpY3NDb250ZXh0KiBuZXdDb250ZXh0OworICAgIEZsb2F0
U2l6ZSBzY2FsZUZhY3RvcigxLjBmLCAtMS4wZik7CisgICAgSW50UmVjdCBwYWludFJlY3QoSW50
UG9pbnQoMCwgMCksIEludFNpemUoci53aWR0aCgpLCByLmhlaWdodCgpKSk7CisjaWYgIShQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoKmNvbnRleHQpOwogICAgIGNvbnRleHQtPnRyYW5zbGF0ZShyLngoKSwgci55KCkg
KyByLmhlaWdodCgpKTsKLSAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMS4wZiwgLTEuMGYp
KTsKKyAgICBjb250ZXh0LT5zY2FsZShzY2FsZUZhY3Rvcik7CiAgICAgY29udGV4dC0+c2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKLSAgICBJbnRSZWN0IHBh
aW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyLndpZHRoKCksIHIuaGVpZ2h0KCkpKTsK
LSAgICAKLSAgICBOU0dyYXBoaWNzQ29udGV4dCogbmV3Q29udGV4dCA9IFtOU0dyYXBoaWNzQ29u
dGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpIGZsaXBwZWQ6Tk9dOwogCisgICAgbmV3Q29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4
dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpIGZsaXBwZWQ6Tk9dOworI2Vsc2UKKyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9w
bGF5ZXItPmZyYW1lVmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwor
ICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KGNs
aWVudCA/IGNsaWVudC0+b3duZXJXaWRnZXQoKS0+bWFjQ0dIYW5kbGUoKSA6IDApOworICAgIENH
Q29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKKyAgICBDR0NvbnRleHRTZXRJbnRlcnBvbGF0
aW9uUXVhbGl0eShjZ0NvbnRleHQsIGtDR0ludGVycG9sYXRpb25Mb3cpOworICAgIENHQ29udGV4
dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIHIueCgpLCByLnkoKSArIHIuaGVpZ2h0KCkpOworICAg
IENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwgc2NhbGVGYWN0b3Iud2lkdGgoKSwgc2NhbGVG
YWN0b3IuaGVpZ2h0KCkpOworCisgICAgbmV3Q29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBn
cmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNnQ29udGV4dCBmbGlwcGVkOk5PXTsKKyNl
bmRpZgogICAgIC8vIGRyYXcgdGhlIGN1cnJlbnQgdmlkZW8gZnJhbWUKICAgICBpZiAocXRWaWRl
b1JlbmRlcmVyKSB7CiAgICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0
ZV07CkBAIC0xMzg4LDcgKzE0MTQsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpw
YWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAg
IH0KICAgICB9CiAjZW5kaWYKLQorI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAg
Q0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOworI2VuZGlmCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKICAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0RGVsYXlDYWxs
YmFja3M6Tk9dOwogfQpAQCAtMTc0NCw3ICsxNzcyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShib29sIHByaXZhdGVCcm93c2luZykKIAog
LSAodm9pZClsYXllckhvc3RDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgog
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAgICAgQ0FMYXll
ciogcm9vdExheWVyID0gc3RhdGljX2Nhc3Q8Q0FMYXllcio+KFtub3RpZmljYXRpb24gb2JqZWN0
XSk7CiAgICAgbV9jYWxsYmFjay0+bGF5ZXJIb3N0Q2hhbmdlZChyb290TGF5ZXIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0KaW5kZXggYzkxM2FiNDYwMDNmMDM0
MDdiNTE0NTRlMjFlZjdhZGY4OGUyMmRmNi4uZTZmZWVjMWYzODlkYmEyZGZlYTllZjZlZGY2MWMy
MjM5YjJiNGM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0KQEAgLTI3
LDYgKzI3LDcgQEAKICNpbXBvcnQgIktVUkwuaCIKIAogI2ltcG9ydCAiRm91bmRhdGlvbkV4dHJh
cy5oIgorI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZVUkwuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkQnVm
ZmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5t
bQppbmRleCA3MGVjYTI3MGE2OGY5ZGE4MWFjNGUxYzRjNGQ0MWJiMDVhOTZjMTJkLi5lYjVjZjJj
NzZhMTM3MGI4OGMzODc5MDA3OWQ4OGEzZmJmNTIyOWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0KQEAgLTQ3LDcgKzQ3LDExIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogKyAodm9pZClpbml0aWFsaXplCiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkKKyAgICBX
VEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisjZWxzZQogICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7CisjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0Zp
bmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQogCkBAIC0xMDcsNyArMTExLDcgQEAgQ0ZEYXRh
UmVmIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKCkKICAgICAKICAgICByZXR1cm4gKENGRGF0
YVJlZilSZXRhaW5QdHI8V2ViQ29yZVNoYXJlZEJ1ZmZlckRhdGE+KEFkb3B0TlMsIFtbV2ViQ29y
ZVNoYXJlZEJ1ZmZlckRhdGEgYWxsb2NdIGluaXRXaXRoU2hhcmVkQnVmZmVyOnRoaXNdKS5yZWxl
YXNlUmVmKCk7CiB9Ci0KKyNpZiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxl
KGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCiB7CiAgICAgTlNEYXRhICpyZXNvdXJjZURhdGEgPSBb
TlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6ZmlsZVBhdGhdOwpAQCAtMTE1LDYgKzExOSw2
IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZpCiAgICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6
OndyYXBOU0RhdGEocmVzb3VyY2VEYXRhKTsKICAgICByZXR1cm4gMDsKIH0KLQorI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4
dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5t
bQppbmRleCA4MmFmYmYwNjAxM2U2ZDcyZjlhZTY2YjFlMWYwNTE0OGY1MDJhNDNjLi4yOGZmMzg4
ZjE0NjBkOGM3YTdmNmJmYzJhMjAyYWJjZDI2NWJiZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU9iakNFeHRyYXMuaCIKIAorI2lu
Y2x1ZGUgPGlvc3RyZWFtPgogI2luY2x1ZGUgPG9iamMvb2JqYy1hdXRvLmg+CiAjaW5jbHVkZSA8
b2JqYy9vYmpjLXJ1bnRpbWUuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM2NjljYTNhYjBkYjA5NGNlYzRlMTQ5Y2FlZWZhNDA3NGMwYWJhMDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlX2gKKyNkZWZpbmUgV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZV9oCisKKyNpbmNsdWRlIDxvYmpjL29iamMuaD4KKworI2lmZGVmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCit0eXBlZGVmIHN0cnVjdCBDR1BvaW50IE5T
UG9pbnQ7Cit0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0OworI2Vsc2UKK3R5cGVkZWYgc3Ry
dWN0IF9OU1BvaW50IE5TUG9pbnQ7Cit0eXBlZGVmIHN0cnVjdCBfTlNSZWN0IE5TUmVjdDsKKyNl
bmRpZgorCisjaWZkZWYgX19PQkpDX18KK0BjbGFzcyBOU0FycmF5OworQGNsYXNzIE5TU3RyaW5n
OworQGNsYXNzIFFUTW92aWU7CitAY2xhc3MgUVRNb3ZpZVZpZXc7CisjZWxzZQorY2xhc3MgTlNB
cnJheTsKK2NsYXNzIE5TU3RyaW5nOworY2xhc3MgUVRNb3ZpZTsKK2NsYXNzIFFUTW92aWVWaWV3
OworI2VuZGlmCisKK2V4dGVybiAiQyIgeworCisvLyBJbiBhbHBoYWJldGljYWwgb3JkZXIuCitl
eHRlcm4gdW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVUeXBlcykodm9p
ZCk7CitleHRlcm4gaW50ICgqd2tRVE1vdmllRGF0YVJhdGUpKFFUTW92aWUqKTsKK2V4dGVybiB2
b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudCkodWludDMyX3RbNV0pOworZXh0ZXJuIGZs
b2F0ICgqd2tRVE1vdmllTWF4VGltZUxvYWRlZCkoUVRNb3ZpZSopOworZXh0ZXJuIE5TU3RyaW5n
ICooKndrUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pKHZvaWQpOworZXh0
ZXJuIGZsb2F0ICgqd2tRVE1vdmllTWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CitleHRlcm4g
aW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRNb3ZpZSopOworZXh0ZXJuIEJPT0wgKCp3a1FUTW92
aWVIYXNDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSopOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVT
ZXRTaG93Q2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqLCBCT09MKTsKK2V4dGVybiB2b2lkICgqd2tR
VE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRNb3ZpZSopOworZXh0ZXJuIHZvaWQg
KCp3a1FUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpKFFUTW92aWVWaWV3KiwgQk9PTCk7
CitleHRlcm4gTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSkoKTsK
K2V4dGVybiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJp
bmcgKnNpdGUpOworZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpKCk7
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9X
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjRlMmVmYjcyYjhhNTRlYWEzYTlm
NDk0ODdmMjViNzA1OTAzOGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQpAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKwordW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVU
eXBlcykodm9pZCk7CitpbnQgKCp3a1FUTW92aWVEYXRhUmF0ZSkoUVRNb3ZpZSopOwordm9pZCAo
KndrUVRNb3ZpZURpc2FibGVDb21wb25lbnQpKHVpbnQzMl90WzVdKTsKK2Zsb2F0ICgqd2tRVE1v
dmllTWF4VGltZUxvYWRlZCkoUVRNb3ZpZSopOworTlNTdHJpbmcgKigqd2tRVE1vdmllTWF4VGlt
ZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbikodm9pZCk7CitmbG9hdCAoKndrUVRNb3ZpZU1heFRp
bWVTZWVrYWJsZSkoUVRNb3ZpZSopOworaW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRNb3ZpZSop
OworQk9PTCAoKndrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7Cit2b2lkICgq
d2tRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKShRVE1vdmllKiwgQk9PTCk7Cit2b2lkICgq
d2tRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRNb3ZpZSopOwordm9pZCAoKndr
UVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcqLCBCT09MKTsKK05T
QXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7Cit2b2lkICgqd2tR
VENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOwordm9pZCAo
KndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwCmluZGV4IDM2NjUyY2Q5Yjk4ZjE2NGQ0NGE5OTAyZWJjZWVmOGZiYzg4MjJlMzUuLmU4YmNh
M2EwYmM3ODM3Y2RmNjE0MjFlMmEwYWQyYTczZmFmNzY4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKQEAgLTEwOSw2ICsxMDksOSBAQAogI2VuZGlmIC8vIFFfT1NfV0lOMzIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIK
KyNpZmRlZiBVU0UoUVRLSVQpCisjaW5jbHVkZSAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCisjZW5k
aWYKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oIgpAQCAtMzE3LDYgKzMy
MCwxMCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAK
ICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKTsKIAorI2lmIFVTRShRVEtJ
VCkKKyAgICBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgpOworI2VuZGlmCisKICAgICBQYWdl
OjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQg
PSBuZXcgQ2hyb21lQ2xpZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGll
bnQgPSBuZXcgQ29udGV4dE1lbnVDbGllbnRRdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5M2NhNTRi
Y2QyZjBjYzdkYjBlYTEyNWM3OGQ2MDJkZmEwZTk4ZmJlLi4xMTNmNzIxM2YzYTQ4NDNlNjI2NzVi
NzUxNmZmYmQ2OGQzNTdmNmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEx
LTA1LTIzICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxl
IHVzYWdlIG9mIFF1aWNrVGltZSBtZWRpYXBsYXllciBmb3IgdGhlIFF0IHBvcnQgb24gTWFjLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyNzkKKwor
ICAgICAgICBFbmFibGUgdGhlIHVzYWdlIG9mIFF1aWNrVGltZSBiYWNrZW5kIGZvciB0aGUgUXQg
cG9ydC4gSXQgY2FuIGJlIGVuYWJsZWQgYnkKKyAgICAgICAgcGFzc2luZyBERUZJTkVTKz1VU0Vf
UVRLSVQ9MSB3aGVuIGNhbGxpbmcgYnVpbGQtd2Via2l0LgorCisgICAgICAgICogQXBpL3F3ZWJw
YWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAg
ICAgICAgKiBRdFdlYktpdC5wcm86CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVl
blZpZGVvUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVy
RnVsbFNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6
OnJlcXVpcmVzRnVsbFNjcmVlbkZvclZpZGVvUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
RnVsbFNjcmVlblZpZGVvUXQ6OmlzVmFsaWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YlN5c3RlbUludGVyZmFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJT
eXN0ZW1JbnRlcmZhY2UubW06IEFkZGVkLgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UpOgorCiAyMDExLTA1LTE4ICBLcmlzdMOzZiBLb3N6dHnDsyAgPEtvc3p0eW8uS3Jpc3Rv
ZkBzdHVkLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dv
bsOhYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvIGIvU291cmNl
L1dlYktpdC9xdC9RdFdlYktpdC5wcm8KaW5kZXggNmM4MjQ2ZTdiNGMyZjFhZjY2ZmNjOWM4OTky
NjRkNTYzOWVhMjE2Yi4uMTA1YTEyNGM0MWJkYTcwOTllMGIzNjUwMjlmYmNhOWU0Y2ViYWYyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8KKysrIGIvU291cmNlL1dl
YktpdC9xdC9RdFdlYktpdC5wcm8KQEAgLTIwOCw3ICsyMDgsNyBAQCBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0xKSB7CiB9CiAKIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9WSURFTz0xKSB7Ci0gICAgIWNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9
MSk6Y29udGFpbnMoTU9CSUxJVFlfQ09ORklHLCBtdWx0aW1lZGlhKSB7CisgICAgIWNvbnRhaW5z
KERFRklORVMsIFVTRV9RVEtJVD0xKTohY29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0x
KTpjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVkaWEpIHsKICAgICAgICAgSEVBREVS
UyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9XaWRnZXQuaAogICAgICAg
ICBTT1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1dpZGdldC5j
cHAKICAgICB9CkBAIC0yMTcsNiArMjE3LDI0IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9W
SURFTz0xKSB7CiAgICAgICAgIEhFQURFUlMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVsbFNj
cmVlblZpZGVvUXQuaAogICAgICAgICBTT1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1
bGxTY3JlZW5WaWRlb1F0LmNwcAogICAgIH0KKworICAgIGNvbnRhaW5zKERFRklORVMsIFVTRV9R
VEtJVD0xKSB7CisgICAgICAgIElOQ0xVREVQQVRIICs9ICQkU09VUkNFX0RJUi9XZWJDb3JlL3Bs
YXRmb3JtL3F0LworICAgICAgICBJTkNMVURFUEFUSCArPSAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0
TGlicmFyaWVzLworICAgICAgICBERUZJTkVTKz1OU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dH
RU9NRVRSWV9UWVBFUworICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L1dl
YlN5c3RlbUludGVyZmFjZS5oCisgICAgICAgIFNPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisgICAgICAgICMgV2UgY2FuIGtub3cgdGhlIE1hYyBP
UyB2ZXJzaW9uIGJ5IHVzaW5nIHRoZSBEYXJ3aW4gbWFqb3IgdmVyc2lvbgorICAgICAgICBEQVJX
SU5fVkVSU0lPTiA9ICQkc3BsaXQoUU1BS0VfSE9TVC52ZXJzaW9uLCAiLiIpCisgICAgICAgIERB
UldJTl9NQUpPUl9WRVJTSU9OID0gJCRmaXJzdChEQVJXSU5fVkVSU0lPTikKKyAgICAgICAgZXF1
YWxzKERBUldJTl9NQUpPUl9WRVJTSU9OLCAiMTAiKSB7CisgICAgICAgICAgICBMSUJTKz0gJCRT
T1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VTbm93
TGVvcGFyZC5hIC1mcmFtZXdvcmsgU2VjdXJpdHkKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGVxdWFscyhEQVJXSU5fTUFKT1JfVkVSU0lPTiwgIjkiKSB7CisgICAgICAgICAgICAgICAg
TElCUys9ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50
ZXJmYWNlTGVvcGFyZC5hIC1mcmFtZXdvcmsgU2VjdXJpdHkKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lDT05EQVRBQkFTRT0x
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3Jl
ZW5WaWRlb1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVl
blZpZGVvUXQuY3BwCmluZGV4IGIyNGQyZWU2N2I0ODk1ODZlZGYyZTZiNzdmMjNlZDQ1OTY2NmYw
YzQuLjljZWNiNTBmMWFlMzc4MTIyZWNlZTZkMjY3OGVmMDNmYzEyMTJkN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3Bw
CkBAIC0xNjIsMTEgKzE2MiwxMCBAQCBGdWxsU2NyZWVuVmlkZW9RdDo6fkZ1bGxTY3JlZW5WaWRl
b1F0KCkKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUoTm9k
ZSogbm9kZSkKIHsKICAgICBRX0FTU0VSVChub2RlKTsKLSAgICBRX0FTU0VSVChtX0Z1bGxTY3Jl
ZW5WaWRlb0hhbmRsZXIpOwotCiAgICAgbV92aWRlb0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1M
VmlkZW9FbGVtZW50Kj4obm9kZSk7CiAKICNpZiBVU0UoUVRfTVVMVElNRURJQSkKKyAgICBRX0FT
U0VSVChtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXIpOwogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZp
ZGVvRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1lbnQqPihub2RlKTsKICAgICBQ
bGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0VsZW1lbnQtPnBsYXRmb3JtTWVkaWEo
KTsKIApAQCAtMjM2LDYgKzIzNSw4IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvUXQ6OnJlcXVpcmVz
RnVsbFNjcmVlbkZvclZpZGVvUGxheWJhY2soKQogI2VuZGlmCiAjaWYgVVNFKEdTVFJFQU1FUikK
ICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQog
CkBAIC0yNDYsNiArMjQ3LDggQEAgYm9vbCBGdWxsU2NyZWVuVmlkZW9RdDo6aXNWYWxpZCgpIGNv
bnN0CiAjZW5kaWYKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIHJldHVybiBtX0Z1bGxTY3JlZW5W
aWRlb0hhbmRsZXJHU3RyZWFtZXI7CisjZWxzZQorICAgIHJldHVybiAwOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ2N2I1YmEzNzRmNWNjMTMzOWUxMDg0NTg2YzJiN2NmZmRiNzIy
ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dl
YlN5c3RlbUludGVyZmFjZS5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
IAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlIDxz
dGRpbnQuaD4KKwordm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0g
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40OGI2MGNjMDg2MzY3ZTI2MjYwMTI4NzdhYTFhODA5YzgyZWUzNDQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKworLy8gTmVlZGVkIGZvciBidWlsZHMgbm90IHVz
aW5nIFBDSCB0byBleHBvc2UgQlVJTERJTkdfIG1hY3Jvcywgc2VlIGJ1ZyAzMjc1My4KKyNpbmNs
dWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFjZS5o
PgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKKyNkZWZpbmUgSU5JVChmdW5j
dGlvbikgd2sjI2Z1bmN0aW9uID0gV0sjI2Z1bmN0aW9uCisKK3ZvaWQgSW5pdFdlYkNvcmVTeXN0
ZW1JbnRlcmZhY2Uodm9pZCkKK3sKKyAgICBzdGF0aWMgYm9vbCBkaWRJbml0OworICAgIGlmIChk
aWRJbml0KQorICAgICAgICByZXR1cm47CisKKyAgICBJTklUKFFUSW5jbHVkZU9ubHlNb2Rlcm5N
ZWRpYUZpbGVUeXBlcyk7CisgICAgSU5JVChRVE1vdmllRGF0YVJhdGUpOworICAgIElOSVQoUVRN
b3ZpZURpc2FibGVDb21wb25lbnQpOworICAgIElOSVQoUVRNb3ZpZU1heFRpbWVMb2FkZWQpOwor
ICAgIElOSVQoUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pOworICAgIElO
SVQoUVRNb3ZpZU1heFRpbWVTZWVrYWJsZSk7CisgICAgSU5JVChRVE1vdmllR2V0VHlwZSk7Cisg
ICAgSU5JVChRVE1vdmllSGFzQ2xvc2VkQ2FwdGlvbnMpOworICAgIElOSVQoUVRNb3ZpZVNldFNo
b3dDbG9zZWRDYXB0aW9ucyk7CisgICAgSU5JVChRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJu
YXRlcyk7CisgICAgSU5JVChRVE1vdmllVmlld1NldERyYXdTeW5jaHJvbm91c2x5KTsKKyAgICBJ
TklUKFFUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSk7CisgICAgSU5JVChRVENsZWFyTWVk
aWFEb3dubG9hZENhY2hlRm9yU2l0ZSk7CisgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENh
Y2hlKTsKKworICAgIGRpZEluaXQgPSB0cnVlOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94424</attachid>
            <date>2011-05-23 07:25:42 -0700</date>
            <delta_ts>2011-05-24 08:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61279-20110523112539.patch</filename>
            <type>text/plain</type>
            <size>35788</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY3ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYTljYzZhODRjNTgxMTYz
MzY5ODljOTc0ZDk1ODg1YjdjZGViZDI2Li43MjA0ODU1MmUwMDkzMzgwM2Q2OGY0MzEzZjhiOTk1
ZGE0ZjUwMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDUtMjMgIEFsZXhp
cyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBFbmFibGUgdXNhZ2Ugb2YgUXVp
Y2tUaW1lIG1lZGlhcGxheWVyIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTI3OQorCisgICAgICAgIEVuYWJs
ZSB0aGUgUXVpY2tUaW1lIGJhY2tlbmQgZm9yIHRoZSBRdCBwb3J0IG9uIE1hYy4gVGhlIHBhdGNo
IGFkZHMgdGhlIGJpdHMgaW4gV2ViQ29yZQorICAgICAgICB0byBlbmFibGUgdGhlIFFUS2l0IGJh
Y2tlbmQgb2YgdGhlIE1hYyBwb3J0LiBJdCBjYW4gYmUgZW5hYmxlZCBieSBwYXNzaW5nIERFRklO
RVMrPVVTRV9RVEtJVD0xIAorICAgICAgICB3aGVuIGNhbGxpbmcgYnVpbGQtd2Via2l0LgorCisg
ICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICog
ZmVhdHVyZXMucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkwuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW50UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZVZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUVmlkZW9SZW5kZXJlcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGFpbnQpOgorICAgICAgICAo
LVtXZWJDb3JlTW92aWVPYnNlcnZlciBsYXllckhvc3RDaGFuZ2VkOl0pOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9LVVJMTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TaGFyZWRCdWZm
ZXJNYWMubW06CisgICAgICAgICgrW1dlYkNvcmVTaGFyZWRCdWZmZXJEYXRhIGluaXRpYWxpemVd
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW06CisgICAgICAg
ICogcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOiBBZGRlZC4KKwogMjAxMS0w
NS0xOCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEJldGggRGFraW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDc1YTRlZGE1NDg1ZmQ5MDJj
YWNjZWEwMDQwZjRjYmFjZWNhOGE3NTMuLjNkNmMwODFlZjYwY2ZhNTk1MDFjNTNhYTAzOGRkYTI1
MTUxZDAwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0yNDMsNyArMjQzLDE2IEBAIGNvbnRhaW5zKERF
RklORVMsIFdURl9VU0VfUVRfQkVBUkVSPTEpIHsKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1ZJREVPPTEpIHsKLSAgICBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsK
KyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAgICBERUZJTkVTICs9
IFdURl9VU0VfUVRLSVQ9MQorCisgICAgICAgIElOQ0xVREVQQVRIICs9ICQkUFdEL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYworCisgICAgICAgIExJQlMgKz0gLWZyYW1ld29yayBBcHBLaXQgLWZyYW1l
d29yayBBdWRpb1VuaXQgXAorICAgICAgICAgICAgICAgIC1mcmFtZXdvcmsgQXVkaW9Ub29sYm94
IC1mcmFtZXdvcmsgQ29yZUF1ZGlvIFwKKyAgICAgICAgICAgICAgICAtZnJhbWV3b3JrIFF1YXJ0
ekNvcmUgLWZyYW1ld29yayBRVEtpdAorCisgICAgfSBlbHNlOmNvbnRhaW5zKERFRklORVMsIFVT
RV9HU1RSRUFNRVI9MSkgewogICAgICAgICBERUZJTkVTICs9IFdURl9VU0VfR1NUUkVBTUVSPTEK
ICAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfR0xJQl9TVVBQT1JUPTEKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCAzNzllYmQxM2QzY2E2ZjE0ZGQ1MjI0MzNiMTJjMjhkZjNlODE0NmNmLi41MTE0OGVkZTM3
MzRmZDA5YjhjYmI5MzM4MmFlZGIxOWQ4MzliZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjk0NSw3
ICsyOTQ1LDMxIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAg
ICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCiAgICAgfQogCi0gICAgY29u
dGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7CisgICAgY29udGFpbnMoREVGSU5FUywg
VVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSEVBREVSUyArPSBcCisgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9x
dC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL0Js
b2NrRXhjZXB0aW9ucy5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4
dHJhcy5oCisgICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIFwKKyAgICAgICAgICAgIHBsYXRmb3Jt
L21hYy9TaGFyZWRCdWZmZXJNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL0tVUkxN
YWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vdGV4dC9tYWMvU3RyaW5nTWFjLm1tIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9GbG9hdFNpemVNYWMubW0gXAorICAgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFJlY3RNYWMubW0gXAorICAgICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vY2Yv
U2hhcmVkQnVmZmVyQ0YuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2NmL0tVUkxDRk5ldC5j
cHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBc
CisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLm1tIFwKKyAgICAgICAg
ICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbQorCisgICAgICAgIERFRklORVMr
PU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKKyAgICB9IGVsc2U6
IGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgewogICAgICAgICBIRUFERVJTICs9
IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HT3duUHRyR1N0cmVh
bWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKaW5kZXggZTE0OGNmMGMzMWVmM2YzNjY3YmM1M2Qz
MjAzZGRjMzcwOWE0NzM2ZS4uOTYxNGE0MTlhODQ3NWMxYzA5ZDgxNDAxZGNiNmEyMjNkZDI5MTk2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ZlYXR1cmVzLnByaQpAQCAtMTYyLDcgKzE2MiwxMiBAQCBzeW1iaWFufG1hZW1vNXxt
YWVtbzYgewogICAgIERFRklORVMgLT0gRU5BQkxFX1ZJREVPPTEKICAgICBERUZJTkVTICs9IEVO
QUJMRV9WSURFTz0wCiAKLSAgICBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsK
KyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAgICBERUZJTkVTIC09
IEVOQUJMRV9WSURFTz0wCisgICAgICAgIERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKKyAgICAg
ICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUX01VTFRJTUVESUE9MQorICAgICAgICBERUZJTkVTICs9
IFdURl9VU0VfUVRfTVVMVElNRURJQT0wCisgICAgfSBlbHNlOiBjb250YWlucyhERUZJTkVTLCBV
U0VfR1NUUkVBTUVSPTEpIHsKICAgICAgICAgREVGSU5FUyAtPSBFTkFCTEVfVklERU89MAogICAg
ICAgICBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0xCiAgICAgICAgIERFRklORVMgLT0gV1RGX1VT
RV9RVF9NVUxUSU1FRElBPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tV
UkwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuaAppbmRleCA5NGRjYmE4YTRhNTBj
OTRkYjZjNjAzOGY0MGFhNzk1M2Q1ZjlhMTM0Li5mZDJhZjYwMTcwZmRmYmFiMzU0YzE2ODExYjlm
ZWRjMGIzNWY0YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5oCkBAIC0zNCw3ICszNCw3IEBACiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRL
SVQpKQogI2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNVUkw7CiAjZWxzZQpAQCAtMjAyLDcgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICBDRlVSTFJlZiBjcmVhdGVDRlVSTCgpIGNvbnN0OwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkpCiAgICAgS1VSTChOU1VSTCopOwogICAgIG9wZXJhdG9yIE5TVVJMKigp
IGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4
IDk2N2VkOTYxZDQyMThhNDkwZjdkNzQ0ODVmZTE2N2I0OTQ0OTE4ZmEuLjRmMWQ2Mjk2YjI0MmZl
NGQ5OWIyMjA2M2I3Y2IxMDhmMWY1YWJjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJl
ZEJ1ZmZlci5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgX19PQkpDX18KIEBjbGFzcyBOU0RhdGE7CiAj
ZWxzZQpAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgflNoYXJlZEJ1ZmZlcigp
OwogICAgIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9S
TShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBOU0RhdGEgKmNyZWF0ZU5TRGF0YSgpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gd3JhcE5TRGF0YShOU0RhdGEgKmRhdGEpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcAppbmRleCBmMDYw
YjI4ZWQ1OWQ1YzI0OTliNWZhNTdjN2MwMGVhMzI2MTVmNDA3Li5iYzg0OTA5NjgxMjQzYzJlZTdi
MDdmNjdhYjVkOTc0ODIyZDAxNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9LVVJMQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tVUkxD
Rk5ldC5jcHAKQEAgLTc4LDYgKzc4LDcgQEAgQ0ZVUkxSZWYgS1VSTDo6Y3JlYXRlQ0ZVUkwoKSBj
b25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiAhKFBMQVRGT1JNKFFUKSAmJiBVU0Uo
UVRLSVQpKQogU3RyaW5nIEtVUkw6OmZpbGVTeXN0ZW1QYXRoKCkgY29uc3QKIHsKICAgICBSZXRh
aW5QdHI8Q0ZVUkxSZWY+IGNmVVJMKEFkb3B0Q0YsIGNyZWF0ZUNGVVJMKCkpOwpAQCAtOTEsNSAr
OTIsNSBAQCBTdHJpbmcgS1VSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAogI2VuZGlmCiAgICAg
cmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZVUkxDb3B5RmlsZVN5c3Rl
bVBhdGgoY2ZVUkwuZ2V0KCksIHBhdGhTdHlsZSkpLmdldCgpOwogfQotCisjZW5kaWYKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAppbmRleCAzMTlm
NDg0ZTNjZjlkMDAxYTFmYTdmNzRlMWYxNTg5NGIzNmZjNTYwLi4zZTFiMDNkZTVlMzNkNTc1YTNk
NTE1ZDUzNGZkYjUxMTc0ODU3MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Yv
U2hhcmVkQnVmZmVyQ0YuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVk
QnVmZmVyKENGRGF0YVJlZiBjZkRhdGEpCiAKIC8vIE1hYyBpcyBhIENGIHBsYXRmb3JtIGJ1dCBo
YXMgYW4gZXZlbiBtb3JlIGVmZmljaWVudCB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kLAogLy8gc28g
b25seSB1c2UgdGhpcyB2ZXJzaW9uIGZvciBub24tTWFjCi0jaWYgIVBMQVRGT1JNKE1BQykKKyNp
ZiAhUExBVEZPUk0oTUFDKSAmJiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogQ0ZEYXRh
UmVmIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKCkKIHsKICAgICBpZiAobV9jZkRhdGEpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKaW5kZXggZGY5
YzE5YTU3OTBiZDgzZWYyNTFjMDBhNGVmZjQxZTY1ZGQ3MzE5Yi4uOWU5MjQ1YzA5NmNjNjNjOWM2
Yzg2Yzc0NTBiY2JkOTBlZGNmMTcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRTaXplLmgKQEAgLTM1LDcgKzM1LDcgQEAKIHR5cGVkZWYgc3RydWN0IENHU2l6
ZSBDR1NpemU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZk
ZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3Ry
dWN0IENHU2l6ZSBOU1NpemU7CiAjZWxzZQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0p
ICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFS
V0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGV4cGxpY2l0IEZsb2F0
U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBp
dCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAppbmRleCA1NTI3Mzg3ZDdkMzRiY2I5
MThjZTZkM2I3NTBiYTdkYTQ2ZmFlMGY4Li5jYzVhNzk1Yjk5ZGQ5MDNiNTExMWVmZTVkN2MzZjdi
NWIxOTliZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
CkBAIC0zMyw3ICszMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgQ0dSZWN0OwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0
OwogI2Vsc2UKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIChQTEFU
Rk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZ
X1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikp
CisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgIHx8IChQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNl
bmRpZgogCkBAIC0yNDIsNyArMjQyLDcgQEAgSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0
IENHUmVjdCYpOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dF
T01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykpIFwKLSAgICAgICAgfHwgKFBM
QVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorICAgICAgICB8fCAoUExBVEZPUk0oQ0hS
T01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIElu
dFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmKTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKaW5kZXggOGNmYWJmNTEzYzg2YjY1
OWRiZmYwN2E2NTI0YTdkNDZiOTI0OTZmMi4uZGI0ZTU0YzUyNmNjZmI5NDI0NWRiZDcwZDZmYzQy
YjVmYWY0NjJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUu
aApAQCAtMzAsNyArMzAsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgTlNTaXplOwogI2Vsc2UKQEAgLTExNCw3
ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMpCisjaWYgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAm
JiBVU0UoUVRLSVQpKSkgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VP
TUVUUllfVFlQRVMpCiAgICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRv
bid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNT
aXplKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA5ZGJlMzRhYjdiZDNiZjg5NTQ4ZmFjOTlkY2RhMjFh
MmM2OTlhMGM3Li40NzgxYTM5ZTMzYWExNDgwODAwMTQ0YjczODJmYjdiMTkzNWNkZmFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBA
IC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgi
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oIgogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oIgpAQCAtNjIsNyArNjIsNyBAQAogI2lmIFVTRShRVF9NVUxUSU1F
RElBKSAmJiAhVVNFKEdTVFJFQU1FUikKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRdC5o
IgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0
ZVF0Ci0jZWxpZiAhVVNFKEdTVFJFQU1FUikKKyNlbGlmICFVU0UoR1NUUkVBTUVSKSAmJiAhVVNF
KFFUS0lUKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIgogI2RlZmluZSBQ
bGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZVBob25vbgogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9h
dFNpemVDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNp
emVDRy5jcHAKaW5kZXggYTAzNWM3YWVkNTRmMjFiM2E3NzcyOTBjZmI2Zjc4ODliN2Q2YjExOS4u
NDc1ZWJjMDFjZTM1ZDI4NjM2NDlmMjQ1MzFjMjllNWM3MWJjNTYzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRTaXplQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcApAQCAtMjcs
NyArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgog
Ci0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKQorI2lmIFVTRShDRykgfHwg
VVNFKFNLSUFfT05fTUFDX0NIUk9NRSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQog
CiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RD
Ry5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3Bw
CmluZGV4IDE4ZWRlYjBmYzBhZTczODEyOThhNmFkMDA1OTIzNjk3OGJkMTE5ODIuLmViZDk2NTVj
MzIwNWFhM2MxZTM1YzMwNzM4NzkzNzY0ZjE2ZmJlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcApAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKIAotI2lmIFVTRShDRykg
fHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkKKyNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01B
Q19DSFJPTUUpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIAogI2luY2x1ZGUgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5oCmluZGV4IGI2NzlmNjQ1MTA0ZTI1ZmM4MDQyMTI2NDg4YWZlYTRkOWQxZDUx
YzQuLmFkZDk5ZWVkMzhkMzljZWZhMDk4YWU0ZDA3Njk2ZmUxMGIzM2NhNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oCkBAIC00MSw2ICs0MSw4IEBACiBAY2xhc3MgUVRWaWRlb1JlbmRl
cmVyV2ViS2l0T25seTsKIEBjbGFzcyBXZWJDb3JlTW92aWVPYnNlcnZlcjsKICNlbHNlCitjbGFz
cyBOU0RpY3Rpb25hcnk7CitjbGFzcyBOU011dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgUVRNb3Zp
ZTsKIGNsYXNzIFFUTW92aWVWaWV3OwogY2xhc3MgUVRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tCmluZGV4IDNmNTVjYjRjMjg5ZTZhZjM5YjcwNmJjNTZhYTcyMTJjZjlmYjdiZjUu
LmQ5ZTE2MTkzODUzZTkyNjA2ZmNiNTZmN2ZlNjBhNjYzMjUxYTYzNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0KQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIkRvY3VtZW50TG9h
ZGVyLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCisjaW1wb3J0
ICJIb3N0V2luZG93LmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIktV
UkwuaCIKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKQEAgLTU5LDYgKzYwLDEwIEBACiAj
aW1wb3J0ICJSZW5kZXJTdHlsZS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShRVCkgJiYgVVNF
KFFUS0lUKQorI2luY2x1ZGUgPFFXZWJQYWdlQ2xpZW50Lmg+CisjaW5jbHVkZSA8UVdpZGdldD4K
KyNlbmRpZgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFFUS2l0KQogCkBAIC00NTUsOCArNDYwLDEx
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWVWaWV3KCkKIAog
ICAgIG1fcXRNb3ZpZVZpZXcuYWRvcHROUyhbW1FUTW92aWVWaWV3IGFsbG9jXSBpbml0XSk7CiAg
ICAgc2V0U2l6ZShtX3BsYXllci0+c2l6ZSgpKTsKLSAgICBOU1ZpZXcqIHBhcmVudFZpZXcgPSBt
X3BsYXllci0+ZnJhbWVWaWV3KCktPmRvY3VtZW50VmlldygpOworICAgIE5TVmlldyogcGFyZW50
VmlldyA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHBhcmVudFZpZXcgPSBtX3BsYXllci0+
ZnJhbWVWaWV3KCktPmRvY3VtZW50VmlldygpOwogICAgIFtwYXJlbnRWaWV3IGFkZFN1YnZpZXc6
bV9xdE1vdmllVmlldy5nZXQoKV07CisjZW5kaWYKICAgICBbbV9xdE1vdmllVmlldy5nZXQoKSBz
ZXREZWxlZ2F0ZTptX29iamNPYnNlcnZlci5nZXQoKV07CiAgICAgW21fb2JqY09ic2VydmVyLmdl
dCgpIHNldFZpZXc6bV9xdE1vdmllVmlldy5nZXQoKV07CiAgICAgW21fcXRNb3ZpZVZpZXcuZ2V0
KCkgc2V0TW92aWU6bV9xdE1vdmllLmdldCgpXTsKQEAgLTQ5Myw3ICs1MDEsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVFZpZGVvUmVuZGVyZXIoUVRWaWRlb1JlbmRl
cmVyTW9kZSByZW5kZXJlcgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gYXNzb2NpYXRl
IG91ciBtb3ZpZSB3aXRoIG91ciBpbnN0YW5jZSBvZiBRVFZpZGVvUmVuZGVyZXJXZWJLaXRPbmx5
Ci0gICAgWyhpZDxXZWJLaXRWaWRlb1JlbmRlcmluZ0RldGFpbHM+KW1fcXRWaWRlb1JlbmRlcmVy
LmdldCgpIHNldE1vdmllOm1fcXRNb3ZpZS5nZXQoKV07ICAgIAorICAgIFsoaWQ8V2ViS2l0Vmlk
ZW9SZW5kZXJpbmdEZXRhaWxzPiltX3F0VmlkZW9SZW5kZXJlci5nZXQoKSBzZXRNb3ZpZTptX3F0
TW92aWUuZ2V0KCldOwogCiAgICAgaWYgKHJlbmRlcmVyTW9kZSA9PSBRVFZpZGVvUmVuZGVyZXJN
b2RlTGlzdGVuc0Zvck5ld0ltYWdlcykgewogICAgICAgICAvLyBsaXN0ZW4gdG8gUVRWaWRlb1Jl
bmRlcmVyV2ViS2l0T25seSdzIFFUVmlkZW9SZW5kZXJlcldlYktpdE9ubHlOZXdJbWFnZURpZEJl
Y29tZUF2YWlsYWJsZU5vdGlmaWNhdGlvbgpAQCAtNzAyLDcgKzcxMCwxMSBAQCBQbGF0Zm9ybU1l
ZGlhIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oUVQpICYm
IFVTRShRVEtJVCkKKyAgICByZXR1cm4gMDsKKyNlbHNlCiAgICAgcmV0dXJuIG1fcXRWaWRlb0xh
eWVyLmdldCgpOworI2VuZGlmCiB9CiAjZW5kaWYKIApAQCAtMTIxMiw3ICsxMjI0LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGlkRW5kKCkKICAgICBtX3BsYXllci0+dGltZUNo
YW5nZWQoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkp
CiAjaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiBzdGF0aWMgYm9vbCBsYXll
cklzRGVzY2VuZGVudE9mKFBsYXRmb3JtTGF5ZXIqIGNoaWxkLCBQbGF0Zm9ybUxheWVyKiBkZXNj
ZW5kZW50KQogewpAQCAtMTMyNywxNCArMTMzOSwyNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIp
CiAKICAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0RGVsYXlDYWxsYmFja3M6WUVTXTsKICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgTlNHcmFwaGljc0NvbnRleHQqIG5l
d0NvbnRleHQ7CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yKDEuMGYsIC0xLjBmKTsKKyAgICBJ
bnRSZWN0IHBhaW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyLndpZHRoKCksIHIuaGVp
Z2h0KCkpKTsKKyNpZiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7CiAgICAgY29udGV4dC0+dHJh
bnNsYXRlKHIueCgpLCByLnkoKSArIHIuaGVpZ2h0KCkpOwotICAgIGNvbnRleHQtPnNjYWxlKEZs
b2F0U2l6ZSgxLjBmLCAtMS4wZikpOworICAgIGNvbnRleHQtPnNjYWxlKHNjYWxlRmFjdG9yKTsK
ICAgICBjb250ZXh0LT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25M
b3cpOwotICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHIud2lk
dGgoKSwgci5oZWlnaHQoKSkpOwotICAgIAotICAgIE5TR3JhcGhpY3NDb250ZXh0KiBuZXdDb250
ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpOT107CiAKKyAgICBuZXdDb250ZXh0
ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29u
dGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpOT107CisjZWxzZQorICAgIFFXZWJQYWdl
Q2xpZW50KiBjbGllbnQgPSBtX3BsYXllci0+ZnJhbWVWaWV3KCktPmhvc3RXaW5kb3coKS0+cGxh
dGZvcm1QYWdlQ2xpZW50KCk7CisgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHN0YXRpY19j
YXN0PENHQ29udGV4dFJlZj4oY2xpZW50ID8gY2xpZW50LT5vd25lcldpZGdldCgpLT5tYWNDR0hh
bmRsZSgpIDogMCk7CisgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOworICAgIENH
Q29udGV4dFNldEludGVycG9sYXRpb25RdWFsaXR5KGNnQ29udGV4dCwga0NHSW50ZXJwb2xhdGlv
bkxvdyk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgci54KCksIHIueSgp
ICsgci5oZWlnaHQoKSk7CisgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCBzY2FsZUZh
Y3Rvci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSk7CisKKyAgICBuZXdDb250ZXh0ID0g
W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250
ZXh0IGZsaXBwZWQ6Tk9dOworI2VuZGlmCiAgICAgLy8gZHJhdyB0aGUgY3VycmVudCB2aWRlbyBm
cmFtZQogICAgIGlmIChxdFZpZGVvUmVuZGVyZXIpIHsKICAgICAgICAgW05TR3JhcGhpY3NDb250
ZXh0IHNhdmVHcmFwaGljc1N0YXRlXTsKQEAgLTEzODgsNyArMTQxMiw5IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
SW50UmVjdCYgcikKICAgICAgICAgfQogICAgIH0KICNlbmRpZgotCisjaWYgUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNnQ29udGV4dCk7Cisj
ZW5kaWYKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIFttX29iamNPYnNlcnZl
ci5nZXQoKSBzZXREZWxheUNhbGxiYWNrczpOT107CiB9CkBAIC0xNzQ0LDcgKzE3NzAsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRQcml2YXRlQnJvd3NpbmdNb2RlKGJvb2wg
cHJpdmF0ZUJyb3dzaW5nKQogCiAtICh2b2lkKWxheWVySG9zdENoYW5nZWQ6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNF
KFFUS0lUKSkKICAgICBDQUxheWVyKiByb290TGF5ZXIgPSBzdGF0aWNfY2FzdDxDQUxheWVyKj4o
W25vdGlmaWNhdGlvbiBvYmplY3RdKTsKICAgICBtX2NhbGxiYWNrLT5sYXllckhvc3RDaGFuZ2Vk
KHJvb3RMYXllcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0tVUkxNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQpp
bmRleCBjOTEzYWI0NjAwM2YwMzQwN2I1MTQ1NGUyMWVmN2FkZjg4ZTIyZGY2Li5lNmZlZWMxZjM4
OWRiYTJkZmVhOWVmNmVkZjYxYzIyMzliMmI0YzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvS1VSTE1hYy5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiS1VSTC5oIgogCiAjaW1w
b3J0ICJGb3VuZGF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9DRlVSTC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2hhcmVkQnVmZmVyTWFjLm1tCmluZGV4IDcwZWNhMjcwYTY4ZjlkYTgxYWM0ZTFjNGM0ZDQx
YmIwNWE5NmMxMmQuLmViNWNmMmM3NmExMzcwYjg4YzM4NzkwMDc5ZDg4YTNmYmY1MjI5YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQpAQCAt
NDcsNyArNDcsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiArICh2b2lkKWluaXRpYWxp
emUKIHsKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyNpZiBQTEFURk9STShRVCkg
JiYgVVNFKFFUS0lUKQorICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKyNlbHNlCiAg
ICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKKyNlbmRp
ZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAKQEAgLTEw
Nyw3ICsxMTEsNyBAQCBDRkRhdGFSZWYgU2hhcmVkQnVmZmVyOjpjcmVhdGVDRkRhdGEoKQogICAg
IAogICAgIHJldHVybiAoQ0ZEYXRhUmVmKVJldGFpblB0cjxXZWJDb3JlU2hhcmVkQnVmZmVyRGF0
YT4oQWRvcHROUywgW1tXZWJDb3JlU2hhcmVkQnVmZmVyRGF0YSBhbGxvY10gaW5pdFdpdGhTaGFy
ZWRCdWZmZXI6dGhpc10pLnJlbGVhc2VSZWYoKTsKIH0KLQorI2lmICEoUExBVEZPUk0oUVQpICYm
IFVTRShRVEtJVCkpCiBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjcmVh
dGVXaXRoQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKIHsKICAgICBOU0Rh
dGEgKnJlc291cmNlRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mRmlsZTpmaWxlUGF0
aF07CkBAIC0xMTUsNiArMTE5LDYgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmkKICAgICAgICAg
cmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShyZXNvdXJjZURhdGEpOwogICAgIHJldHVy
biAwOwogfQotCisjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVPYmpDRXh0cmFzLm1tCmluZGV4IDgyYWZiZjA2MDEzZTZkNzJmOWFlNjZiMWUxZjA1
MTQ4ZjUwMmE0M2MuLjI4ZmYzODhmMTQ2MGQ4YzdhN2Y2YmZjMmEyMDJhYmNkMjY1YmJlODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW0K
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb3Jl
T2JqQ0V4dHJhcy5oIgogCisjaW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8b2JqYy9vYmpj
LWF1dG8uaD4KICNpbmNsdWRlIDxvYmpjL29iamMtcnVudGltZS5oPgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY2OWNhM2FiMGRiMDk0Y2VjNGUxNDljYWVl
ZmE0MDc0YzBhYmEwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29w
eXJpZ2h0IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2VfaAorI2Rl
ZmluZSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlX2gKKworI2luY2x1ZGUgPG9iamMvb2JqYy5oPgor
CisjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKK3R5cGVk
ZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsKK3R5cGVkZWYgc3RydWN0IENHUmVjdCBOU1JlY3Q7
CisjZWxzZQordHlwZWRlZiBzdHJ1Y3QgX05TUG9pbnQgTlNQb2ludDsKK3R5cGVkZWYgc3RydWN0
IF9OU1JlY3QgTlNSZWN0OworI2VuZGlmCisKKyNpZmRlZiBfX09CSkNfXworQGNsYXNzIE5TQXJy
YXk7CitAY2xhc3MgTlNTdHJpbmc7CitAY2xhc3MgUVRNb3ZpZTsKK0BjbGFzcyBRVE1vdmllVmll
dzsKKyNlbHNlCitjbGFzcyBOU0FycmF5OworY2xhc3MgTlNTdHJpbmc7CitjbGFzcyBRVE1vdmll
OworY2xhc3MgUVRNb3ZpZVZpZXc7CisjZW5kaWYKKworZXh0ZXJuICJDIiB7CisKKy8vIEluIGFs
cGhhYmV0aWNhbCBvcmRlci4KK2V4dGVybiB1bnNpZ25lZCAoKndrUVRJbmNsdWRlT25seU1vZGVy
bk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKK2V4dGVybiBpbnQgKCp3a1FUTW92aWVEYXRhUmF0ZSko
UVRNb3ZpZSopOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50
MzJfdFs1XSk7CitleHRlcm4gZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkKShRVE1vdmll
Kik7CitleHRlcm4gTlNTdHJpbmcgKigqd2tRVE1vdmllTWF4VGltZUxvYWRlZENoYW5nZU5vdGlm
aWNhdGlvbikodm9pZCk7CitleHRlcm4gZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lU2Vla2FibGUp
KFFUTW92aWUqKTsKK2V4dGVybiBpbnQgKCp3a1FUTW92aWVHZXRUeXBlKShRVE1vdmllKik7Citl
eHRlcm4gQk9PTCAoKndrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7CitleHRl
cm4gdm9pZCAoKndrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSosIEJPT0wp
OworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKShRVE1v
dmllKik7CitleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSko
UVRNb3ZpZVZpZXcqLCBCT09MKTsKK2V4dGVybiBOU0FycmF5ICooKndrUVRHZXRTaXRlc0luTWVk
aWFEb3dubG9hZENhY2hlKSgpOworZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2Fk
Q2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CitleHRlcm4gdm9pZCAoKndrUVRDbGVhck1l
ZGlhRG93bmxvYWRDYWNoZSkoKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBi
NGUyZWZiNzJiOGE1NGVhYTNhOWY0OTQ4N2YyNWI3MDU5MDM4Y2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwg
MjAxMCBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCit1bnNpZ25lZCAoKndrUVRJbmNsdWRl
T25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKK2ludCAoKndrUVRNb3ZpZURhdGFSYXRl
KShRVE1vdmllKik7Cit2b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudCkodWludDMyX3Rb
NV0pOworZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkKShRVE1vdmllKik7CitOU1N0cmlu
ZyAqKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKSh2b2lkKTsKK2Zs
b2F0ICgqd2tRVE1vdmllTWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CitpbnQgKCp3a1FUTW92
aWVHZXRUeXBlKShRVE1vdmllKik7CitCT09MICgqd2tRVE1vdmllSGFzQ2xvc2VkQ2FwdGlvbnMp
KFFUTW92aWUqKTsKK3ZvaWQgKCp3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpKFFUTW92
aWUqLCBCT09MKTsKK3ZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKShR
VE1vdmllKik7Cit2b2lkICgqd2tRVE1vdmllVmlld1NldERyYXdTeW5jaHJvbm91c2x5KShRVE1v
dmllVmlldyosIEJPT0wpOworTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRD
YWNoZSkoKTsKK3ZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShOU1N0
cmluZyAqc2l0ZSk7Cit2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKSgpOworCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggMzY2NTJjZDliOThmMTY0ZDQ0YTk5MDJlYmNl
ZWY4ZmJjODgyMmUzNS4uODdkZDkyNjcwZGY0MzA5MWE1ZGY4MWNiODYyY2EwYjdhMjZjMGI5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMTA5LDYgKzEwOSw5IEBACiAjZW5kaWYg
Ly8gUV9PU19XSU4zMgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oIgorI2lmIFVTRShRVEtJVCkKKyNpbmNsdWRlICJXZWJTeXN0ZW1J
bnRlcmZhY2UuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAicnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
LmgiCkBAIC0zMTcsNiArMzIwLDEwIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KFFXZWJQYWdlICpxcSkKIAogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgp
OwogCisjaWYgVVNFKFFUS0lUKQorICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKCk7Cisj
ZW5kaWYKKwogICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBhZ2VDbGll
bnRzLmNocm9tZUNsaWVudCA9IG5ldyBDaHJvbWVDbGllbnRRdChxKTsKICAgICBwYWdlQ2xpZW50
cy5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBDb250ZXh0TWVudUNsaWVudFF0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCmluZGV4IDkzY2E1NGJjZDJmMGNjN2RiMGVhMTI1Yzc4ZDYwMmRmYTBlOThmYmUuLjExM2Y3
MjEzZjNhNDg0M2U2MjY3NWI3NTE2ZmZiZDY4ZDM1N2Y2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTEtMDUtMjMgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1F0XSBFbmFibGUgdXNhZ2Ugb2YgUXVpY2tUaW1lIG1lZGlhcGxheWVyIGZvciB0aGUg
UXQgcG9ydCBvbiBNYWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MTI3OQorCisgICAgICAgIEVuYWJsZSB0aGUgdXNhZ2Ugb2YgUXVpY2tUaW1lIGJh
Y2tlbmQgZm9yIHRoZSBRdCBwb3J0LiBJdCBjYW4gYmUgZW5hYmxlZCBieQorICAgICAgICBwYXNz
aW5nIERFRklORVMrPVVTRV9RVEtJVD0xIHdoZW4gY2FsbGluZyBidWlsZC13ZWJraXQuCisKKyAg
ICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2Vi
UGFnZVByaXZhdGUpOgorICAgICAgICAqIFF0V2ViS2l0LnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2Ny
ZWVuVmlkZW9RdDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpG
dWxsU2NyZWVuVmlkZW9RdDo6cmVxdWlyZXNGdWxsU2NyZWVuRm9yVmlkZW9QbGF5YmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6aXNWYWxpZCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmg6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbTogQWRkZWQuCisgICAgICAgIChJbml0
V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisKIDIwMTEtMDUtMTggIEtyaXN0w7NmIEtvc3p0ecOz
ICA8S29zenR5by5LcmlzdG9mQHN0dWQudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9RdFdl
YktpdC5wcm8gYi9Tb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwppbmRleCA2YzgyNDZlN2I0
YzJmMWFmNjZmY2M5Yzg5OTI2NGQ1NjM5ZWEyMTZiLi4xMDVhMTI0YzQxYmRhNzA5OWUwYjM2NTAy
OWZiY2E5ZTRjZWJhZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBy
bworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwpAQCAtMjA4LDcgKzIwOCw3IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEpIHsKIH0KIAog
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKLSAgICAhY29udGFpbnMoREVGSU5F
UywgVVNFX0dTVFJFQU1FUj0xKTpjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVkaWEp
IHsKKyAgICAhY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpOiFjb250YWlucyhERUZJTkVT
LCBVU0VfR1NUUkVBTUVSPTEpOmNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGltZWRpYSkg
ewogICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRl
b1dpZGdldC5oCiAgICAgICAgIFNPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVsbFNj
cmVlblZpZGVvV2lkZ2V0LmNwcAogICAgIH0KQEAgLTIxNyw2ICsyMTcsMjQgQEAgY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgSEVBREVSUyArPSAkJFBXRC9XZWJD
b3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oCiAgICAgICAgIFNPVVJDRVMgKz0gJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCiAgICAgfQorCisgICAgY29udGFp
bnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VS
Q0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vcXQvCisgICAgICAgIElOQ0xVREVQQVRIICs9ICQkU09V
UkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvCisgICAgICAgIERFRklORVMrPU5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgICAgIEhFQURFUlMgKz0gJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKKyAgICAgICAgU09VUkNFUyArPSAk
JFBXRC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKyAgICAgICAgIyBXZSBj
YW4ga25vdyB0aGUgTWFjIE9TIHZlcnNpb24gYnkgdXNpbmcgdGhlIERhcndpbiBtYWpvciB2ZXJz
aW9uCisgICAgICAgIERBUldJTl9WRVJTSU9OID0gJCRzcGxpdChRTUFLRV9IT1NULnZlcnNpb24s
ICIuIikKKyAgICAgICAgREFSV0lOX01BSk9SX1ZFUlNJT04gPSAkJGZpcnN0KERBUldJTl9WRVJT
SU9OKQorICAgICAgICBlcXVhbHMoREFSV0lOX01BSk9SX1ZFUlNJT04sICIxMCIpIHsKKyAgICAg
ICAgICAgIExJQlMrPSAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldlYktpdFN5
c3RlbUludGVyZmFjZVNub3dMZW9wYXJkLmEgLWZyYW1ld29yayBTZWN1cml0eQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZXF1YWxzKERBUldJTl9NQUpPUl9WRVJTSU9OLCAiOSIpIHsK
KyAgICAgICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmllcy9s
aWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VMZW9wYXJkLmEgLWZyYW1ld29yayBTZWN1cml0eQorICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfSUNPTkRBVEFCQVNFPTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5jcHAKaW5kZXggYjI0ZDJlZTY3YjQ4OTU4NmVkZjJl
NmI3N2YyM2VkNDU5NjY2ZjBjNC4uOWNlY2I1MGYxYWUzNzgxMjJlY2VlNmQyNjc4ZWYwM2ZjMTIx
MmQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GdWxsU2Ny
ZWVuVmlkZW9RdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GdWxs
U2NyZWVuVmlkZW9RdC5jcHAKQEAgLTE2MiwxMSArMTYyLDEwIEBAIEZ1bGxTY3JlZW5WaWRlb1F0
Ojp+RnVsbFNjcmVlblZpZGVvUXQoKQogdm9pZCBGdWxsU2NyZWVuVmlkZW9RdDo6ZW50ZXJGdWxs
U2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewogICAgIFFfQVNTRVJUKG5vZGUpOwotICAgIFFf
QVNTRVJUKG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlcik7Ci0KICAgICBtX3ZpZGVvRWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1lbnQqPihub2RlKTsKIAogI2lmIFVTRShRVF9NVUxU
SU1FRElBKQorICAgIFFfQVNTRVJUKG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlcik7CiAgICAgSFRN
TFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVu
dCo+KG5vZGUpOwogICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSA9IHZpZGVvRWxlbWVu
dC0+cGxhdGZvcm1NZWRpYSgpOwogCkBAIC0yMzYsNiArMjM1LDggQEAgYm9vbCBGdWxsU2NyZWVu
VmlkZW9RdDo6cmVxdWlyZXNGdWxsU2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAjZW5kaWYKICNp
ZiBVU0UoR1NUUkVBTUVSKQogICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgcmV0dXJuIGZh
bHNlOwogI2VuZGlmCiB9CiAKQEAgLTI0Niw2ICsyNDcsOCBAQCBib29sIEZ1bGxTY3JlZW5WaWRl
b1F0Ojppc1ZhbGlkKCkgY29uc3QKICNlbmRpZgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgcmV0
dXJuIG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlckdTdHJlYW1lcjsKKyNlbHNlCisgICAgcmV0dXJu
IDA7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY3YjViYTM3NGY1Y2MxMzM5ZTEw
ODQ1ODZjMmI3Y2ZmZGI3MjI4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKQEAgLTAsMCArMSwzMSBAQAorLyoK
KyAqIENvcHlyaWdodCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCit2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5
c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4YjYwY2MwODYzNjdlMjYyNjAxMjg3N2FhMWE4
MDljODJlZTM0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29w
eXJpZ2h0IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFjZS5oIgorCisvLyBOZWVkZWQg
Zm9yIGJ1aWxkcyBub3QgdXNpbmcgUENIIHRvIGV4cG9zZSBCVUlMRElOR18gbWFjcm9zLCBzZWUg
YnVnIDMyNzUzLgorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaW1wb3J0IDxXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKwor
I2RlZmluZSBJTklUKGZ1bmN0aW9uKSB3ayMjZnVuY3Rpb24gPSBXSyMjZnVuY3Rpb24KKwordm9p
ZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQoreworICAgIHN0YXRpYyBib29sIGRp
ZEluaXQ7CisgICAgaWYgKGRpZEluaXQpCisgICAgICAgIHJldHVybjsKKworICAgIElOSVQoUVRJ
bmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKTsKKyAgICBJTklUKFFUTW92aWVEYXRhUmF0
ZSk7CisgICAgSU5JVChRVE1vdmllRGlzYWJsZUNvbXBvbmVudCk7CisgICAgSU5JVChRVE1vdmll
TWF4VGltZUxvYWRlZCk7CisgICAgSU5JVChRVE1vdmllTWF4VGltZUxvYWRlZENoYW5nZU5vdGlm
aWNhdGlvbik7CisgICAgSU5JVChRVE1vdmllTWF4VGltZVNlZWthYmxlKTsKKyAgICBJTklUKFFU
TW92aWVHZXRUeXBlKTsKKyAgICBJTklUKFFUTW92aWVIYXNDbG9zZWRDYXB0aW9ucyk7CisgICAg
SU5JVChRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKTsKKyAgICBJTklUKFFUTW92aWVTZWxl
Y3RQcmVmZXJyZWRBbHRlcm5hdGVzKTsKKyAgICBJTklUKFFUTW92aWVWaWV3U2V0RHJhd1N5bmNo
cm9ub3VzbHkpOworICAgIElOSVQoUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENhY2hlKTsKKyAg
ICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKTsKKyAgICBJTklUKFFUQ2xl
YXJNZWRpYURvd25sb2FkQ2FjaGUpOworCisgICAgZGlkSW5pdCA9IHRydWU7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94619</attachid>
            <date>2011-05-24 08:59:45 -0700</date>
            <delta_ts>2011-05-24 13:27:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61279-20110524125941.patch</filename>
            <type>text/plain</type>
            <size>35586</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MTU2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjQgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBFbmFibGUgdXNhZ2Ugb2YgUXVpY2tU
aW1lIG1lZGlhcGxheWVyIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTI3OQorCisgICAgICAgIEVuYWJsZSB0
aGUgdXNhZ2Ugb2YgUXVpY2tUaW1lIGJhY2tlbmQgZm9yIHRoZSBRdCBwb3J0LiBJdCBjYW4gYmUg
ZW5hYmxlZCBieQorICAgICAgICBwYXNzaW5nIERFRklORVMrPVVTRV9RVEtJVD0xIHdoZW4gY2Fs
bGluZyBidWlsZC13ZWJraXQuCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6CisgICAgICAgICogcGxhdGZvcm0v
S1VSTC5oOgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2NmL0tVUkxDRk5ldC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2YvU2hhcmVkQnVm
ZmVyQ0YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbnRTaXplLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllVmll
dyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRW
aWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpjcmVhdGVRVE1vdmllTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OnByZWZlcnJlZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBhaW50KToKKyAgICAgICAgKC1bV2ViQ29yZU1vdmll
T2JzZXJ2ZXIgbGF5ZXJIb3N0Q2hhbmdlZDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS1VS
TE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tOgorICAg
ICAgICAoK1tXZWJDb3JlU2hhcmVkQnVmZmVyRGF0YSBpbml0aWFsaXplXSk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbTogQWRkZWQuCisKIDIwMTEtMDUtMjQgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2Vk
LCBidWlsZCBmaXguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gODcxNTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0MywxNiBA
QCBjb250YWlucyhERUZJTkVTLCBXVEZfVVNFX1FUX0JFQVJFUj0xKSB7CiB9CiAKIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7Ci0gICAgY29udGFpbnMoREVGSU5FUywgVVNFX0dT
VFJFQU1FUj0xKSB7CisgICAgY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAg
ICAgREVGSU5FUyArPSBXVEZfVVNFX1FUS0lUPTEKKworICAgICAgICBJTkNMVURFUEFUSCArPSAk
JFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9tYWMKKworICAgICAgICBMSUJTICs9IC1mcmFtZXdvcmsg
QXBwS2l0IC1mcmFtZXdvcmsgQXVkaW9Vbml0IFwKKyAgICAgICAgICAgICAgICAtZnJhbWV3b3Jr
IEF1ZGlvVG9vbGJveCAtZnJhbWV3b3JrIENvcmVBdWRpbyBcCisgICAgICAgICAgICAgICAgLWZy
YW1ld29yayBRdWFydHpDb3JlIC1mcmFtZXdvcmsgUVRLaXQKKworICAgIH0gZWxzZTpjb250YWlu
cyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsKICAgICAgICAgREVGSU5FUyArPSBXVEZfVVNF
X0dTVFJFQU1FUj0xCiAgICAgICAgIERFRklORVMgKz0gRU5BQkxFX0dMSUJfU1VQUE9SVD0xCiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA4NzE1NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQ1LDcgKzI5NDUsMzEgQEAgY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXVk
aW9Db25zdHJ1Y3Rvci5jcHAKICAgICB9CiAKLSAgICBjb250YWlucyhERUZJTkVTLCBVU0VfR1NU
UkVBTUVSPTEpIHsKKyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAg
ICBIRUFERVJTICs9IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2Jq
Q0V4dHJhcy5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLmggXAorICAg
ICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLmgKKyAgICAgICAgU09VUkNF
UyArPSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5t
bSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbSBcCisgICAgICAgICAgICBw
bGF0Zm9ybS90ZXh0L21hYy9TdHJpbmdNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0Zsb2F0U2l6ZU1hYy5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvSW50UmVjdE1hYy5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bnRSZWN0Q0cuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6
ZUNHLmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAgXAor
ICAgICAgICAgICAgcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcCBcCisgICAgICAgICAgICBwbGF0
Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIFwKKyAgICAgICAgICAgIHBsYXRmb3Jt
L21hYy9CbG9ja0V4Y2VwdGlvbnMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNv
cmVPYmpDRXh0cmFzLm1tCisKKyAgICAgICAgREVGSU5FUys9TlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKKworICAgIH0gZWxzZTogY29udGFpbnMoREVGSU5FUywgVVNF
X0dTVFJFQU1FUj0xKSB7CiAgICAgICAgIEhFQURFUlMgKz0gXAogICAgICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dPd25QdHJHU3RyZWFtZXIuaCBcCiAgICAgICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9m
ZWF0dXJlcy5wcmkJKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVyZXMu
cHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNyArMTYyLDEyIEBAIHN5bWJpYW58bWFlbW81fG1h
ZW1vNiB7CiAgICAgREVGSU5FUyAtPSBFTkFCTEVfVklERU89MQogICAgIERFRklORVMgKz0gRU5B
QkxFX1ZJREVPPTAKIAotICAgIGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgewor
ICAgIGNvbnRhaW5zKERFRklORVMsIFVTRV9RVEtJVD0xKSB7CisgICAgICAgIERFRklORVMgLT0g
RU5BQkxFX1ZJREVPPTAKKyAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfVklERU89MQorICAgICAg
ICBERUZJTkVTIC09IFdURl9VU0VfUVRfTVVMVElNRURJQT0xCisgICAgICAgIERFRklORVMgKz0g
V1RGX1VTRV9RVF9NVUxUSU1FRElBPTAKKyAgICB9IGVsc2U6IGNvbnRhaW5zKERFRklORVMsIFVT
RV9HU1RSRUFNRVI9MSkgewogICAgICAgICBERUZJTkVTIC09IEVOQUJMRV9WSURFTz0wCiAgICAg
ICAgIERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKICAgICAgICAgREVGSU5FUyAtPSBXVEZfVVNF
X1FUX01VTFRJTUVESUE9MQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuaAkocmV2aXNpb24gODcx
NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkwqIENGVVJMUmVmOwog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgX19PQkpDX18KIEBjbGFzcyBOU1VSTDsKICNl
bHNlCkBAIC0yMDIsNyArMjAyLDcgQEAgcHVibGljOgogICAgIENGVVJMUmVmIGNyZWF0ZUNGVVJM
KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMp
IHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBLVVJMKE5TVVJMKik7CiAgICAg
b3BlcmF0b3IgTlNVUkwqKCkgY29uc3Q7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5oCShyZXZpc2lvbiA4NzE1NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCisj
aWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYg
X19PQkpDX18KIEBjbGFzcyBOU0RhdGE7CiAjZWxzZQpAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgflNoYXJlZEJ1ZmZlcigpOwogICAgIAotI2lmIFBMQVRGT1JNKE1BQykKKyNp
ZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBOU0Rh
dGEgKmNyZWF0ZU5TRGF0YSgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
d3JhcE5TRGF0YShOU0RhdGEgKmRhdGEpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAJKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgs
NyBAQCBDRlVSTFJlZiBLVVJMOjpjcmVhdGVDRlVSTCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorI2lmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBTdHJpbmcgS1VSTDo6
ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAogewogICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY2ZVUkwo
QWRvcHRDRiwgY3JlYXRlQ0ZVUkwoKSk7CkBAIC05MSw1ICs5Miw1IEBAIFN0cmluZyBLVVJMOjpm
aWxlU3lzdGVtUGF0aCgpIGNvbnN0CiAjZW5kaWYKICAgICByZXR1cm4gUmV0YWluUHRyPENGU3Ry
aW5nUmVmPihBZG9wdENGLCBDRlVSTENvcHlGaWxlU3lzdGVtUGF0aChjZlVSTC5nZXQoKSwgcGF0
aFN0eWxlKSkuZ2V0KCk7CiB9Ci0KKyNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAkocmV2aXNpb24gODcxNTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDcgKzQwLDcgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoQ0ZEYXRhUmVmIGNm
RAogCiAvLyBNYWMgaXMgYSBDRiBwbGF0Zm9ybSBidXQgaGFzIGFuIGV2ZW4gbW9yZSBlZmZpY2ll
bnQgdmVyc2lvbiBvZiB0aGlzIG1ldGhvZCwKIC8vIHNvIG9ubHkgdXNlIHRoaXMgdmVyc2lvbiBm
b3Igbm9uLU1hYwotI2lmICFQTEFURk9STShNQUMpCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIShQ
TEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIENGRGF0YVJlZiBTaGFyZWRCdWZmZXI6OmNyZWF0
ZUNGRGF0YSgpCiB7CiAgICAgaWYgKG1fY2ZEYXRhKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAkocmV2aXNpb24gODcxNTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNyArMzUsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikp
CisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikp
IHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNpZmRlZiBOU0dFT01FVFJZX1RZUEVT
X1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsK
ICNlbHNlCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JN
KE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMpKSBcCi0gICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyAg
ICAgICAgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0o
UVQpICYmIFVTRShRVEtJVCkpCiAgICAgZXhwbGljaXQgRmxvYXRTaXplKGNvbnN0IE5TU2l6ZSAm
KTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKICAgICBvcGVy
YXRvciBOU1NpemUoKSBjb25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW50UmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ludFJlY3QuaAkocmV2aXNpb24gODcxNTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMz
LDcgQEAKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRG
T1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBOU1JlY3Q7CiAjZWxzZQpAQCAt
MjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKE1BQykgJiYg
IWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSBcCi0g
ICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyAgICAgICAgfHwg
KFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSAgfHwgKFBMQVRGT1JNKFFUKSAmJiBV
U0UoUVRLSVQpKQogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2VuZGlmCiAKQEAgLTI0
Miw3ICsyNDIsNyBAQCBJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29uc3QgQ0dSZWN0Jik7CiAj
ZW5kaWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01J
VU0pICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1Mo
REFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogSW50UmVjdCBlbmNsb3Np
bmdJbnRSZWN0KGNvbnN0IE5TUmVjdCYpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgJKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw3ICszMCw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgQ0dTaXplOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVT
RShRVEtJVCkpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMKIHR5cGVkZWYgc3RydWN0IENHU2l6ZSBOU1NpemU7CiAjZWxzZQpAQCAtMTE0LDcgKzExNCw3
IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9N
RVRSWV9UWVBFUykKKyNpZiAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShR
VEtJVCkpKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9U
WVBFUykKICAgICBleHBsaWNpdCBJbnRTaXplKGNvbnN0IE5TU2l6ZSAmKTsgLy8gZG9uJ3QgZG8g
dGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKICAgICBvcGVyYXRvciBOU1NpemUoKSBj
b25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAkocmV2aXNpb24gODcxNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcg
KzQ2LDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgiCiAj
aWYgVVNFKEFWRk9VTkRBVElPTikKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgiCkBAIC02Miw3ICs2Miw3IEBACiAjaWYgVVNFKFFUX01VTFRJTUVESUEpICYm
ICFVU0UoR1NUUkVBTUVSKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVF0LmgiCiAjZGVm
aW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQcml2YXRlUXQKLSNl
bGlmICFVU0UoR1NUUkVBTUVSKQorI2VsaWYgIVVTRShHU1RSRUFNRVIpICYmICFVU0UoUVRLSVQp
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgiCiAjZGVmaW5lIFBsYXRmb3Jt
TWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNp
emVDRy5jcHAJKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvRmxvYXRTaXplQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAKLSNpZiBVU0Uo
Q0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJPTUUpCisjaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9P
Tl9NQUNfQ0hST01FKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAKICNpbmNsdWRl
IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwCShy
ZXZpc2lvbiA4NzE1NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lu
dFJlY3RDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShTS0lB
X09OX01BQ19DSFJPTUUpCisjaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKSB8
fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0LmgJKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDYgKzQxLDggQEAKIEBjbGFzcyBRVFZpZGVvUmVuZGVyZXJXZWJLaXRPbmx5OwogQGNsYXNzIFdl
YkNvcmVNb3ZpZU9ic2VydmVyOwogI2Vsc2UKK2NsYXNzIE5TRGljdGlvbmFyeTsKK2NsYXNzIE5T
TXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBRVE1vdmllOwogY2xhc3MgUVRNb3ZpZVZpZXc7CiBj
bGFzcyBRVFRpbWU7CkBAIC0xMzcsNyArMTM5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiAhKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0OwogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQkocmV2aXNpb24gODcxNTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3Lmgi
CisjaW1wb3J0ICJIb3N0V2luZG93LmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bXBvcnQgIktVUkwuaCIKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKQEAgLTU5LDcgKzYw
LDYgQEAKICNpbXBvcnQgIlJlbmRlclN0eWxlLmgiCiAjZW5kaWYKIAotCiBTT0ZUX0xJTktfRlJB
TUVXT1JLKFFUS2l0KQogCiBTT0ZUX0xJTksoUVRLaXQsIFFUTWFrZVRpbWUsIFFUVGltZSwgKGxv
bmcgbG9uZyB0aW1lVmFsdWUsIGxvbmcgdGltZVNjYWxlKSwgKHRpbWVWYWx1ZSwgdGltZVNjYWxl
KSkKQEAgLTQ1NSw4ICs0NTUsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3Jl
YXRlUVRNbwogCiAgICAgbV9xdE1vdmllVmlldy5hZG9wdE5TKFtbUVRNb3ZpZVZpZXcgYWxsb2Nd
IGluaXRdKTsKICAgICBzZXRTaXplKG1fcGxheWVyLT5zaXplKCkpOwotICAgIE5TVmlldyogcGFy
ZW50VmlldyA9IG1fcGxheWVyLT5mcmFtZVZpZXcoKS0+ZG9jdW1lbnRWaWV3KCk7CisgICAgTlNW
aWV3KiBwYXJlbnRWaWV3ID0gMDsKKyNpZiBQTEFURk9STShNQUMpCisgICAgcGFyZW50VmlldyA9
IG1fcGxheWVyLT5mcmFtZVZpZXcoKS0+ZG9jdW1lbnRWaWV3KCk7CiAgICAgW3BhcmVudFZpZXcg
YWRkU3VidmlldzptX3F0TW92aWVWaWV3LmdldCgpXTsKKyNlbmRpZgogICAgIFttX3F0TW92aWVW
aWV3LmdldCgpIHNldERlbGVnYXRlOm1fb2JqY09ic2VydmVyLmdldCgpXTsKICAgICBbbV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgc2V0VmlldzptX3F0TW92aWVWaWV3LmdldCgpXTsKICAgICBbbV9xdE1v
dmllVmlldy5nZXQoKSBzZXRNb3ZpZTptX3F0TW92aWUuZ2V0KCldOwpAQCAtNDkzLDcgKzQ5Niw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUVmkKICAgICAgICAgcmV0
dXJuOwogICAgIAogICAgIC8vIGFzc29jaWF0ZSBvdXIgbW92aWUgd2l0aCBvdXIgaW5zdGFuY2Ug
b2YgUVRWaWRlb1JlbmRlcmVyV2ViS2l0T25seQotICAgIFsoaWQ8V2ViS2l0VmlkZW9SZW5kZXJp
bmdEZXRhaWxzPiltX3F0VmlkZW9SZW5kZXJlci5nZXQoKSBzZXRNb3ZpZTptX3F0TW92aWUuZ2V0
KCldOyAgICAKKyAgICBbKGlkPFdlYktpdFZpZGVvUmVuZGVyaW5nRGV0YWlscz4pbV9xdFZpZGVv
UmVuZGVyZXIuZ2V0KCkgc2V0TW92aWU6bV9xdE1vdmllLmdldCgpXTsKIAogICAgIGlmIChyZW5k
ZXJlck1vZGUgPT0gUVRWaWRlb1JlbmRlcmVyTW9kZUxpc3RlbnNGb3JOZXdJbWFnZXMpIHsKICAg
ICAgICAgLy8gbGlzdGVuIHRvIFFUVmlkZW9SZW5kZXJlcldlYktpdE9ubHkncyBRVFZpZGVvUmVu
ZGVyZXJXZWJLaXRPbmx5TmV3SW1hZ2VEaWRCZWNvbWVBdmFpbGFibGVOb3RpZmljYXRpb24KQEAg
LTUyMiw3ICs1MjUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkZXN0cm95UVRW
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWVMYXllcigpCiB7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBpZiAoIW1f
cXRNb3ZpZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01NzMsNyArNTc2LDcgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUmVuZGVyaW5nTQogICAgIGlmICghbV9wbGF5ZXItPmZyYW1l
VmlldygpIHx8ICFtX3F0TW92aWUpCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ05vbmU7
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGlmIChz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xp
ZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCiAg
ICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXI7CiAjZW5kaWYKQEAgLTcwMiw3
ICs3MDUsMTEgQEAgUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cAogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKKyNpZiBQTEFURk9STShRVCkg
JiYgVVNFKFFUS0lUKQorICAgIHJldHVybiAwOworI2Vsc2UKICAgICByZXR1cm4gbV9xdFZpZGVv
TGF5ZXIuZ2V0KCk7CisjZW5kaWYKIH0KICNlbmRpZgogCkBAIC0xMjEyLDcgKzEyMTksNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaWRFbmQoKQogICAgIG1fcGxheWVyLT50aW1l
Q2hhbmdlZCgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lU
KSkKICNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKIHN0YXRpYyBib29sIGxh
eWVySXNEZXNjZW5kZW50T2YoUGxhdGZvcm1MYXllciogY2hpbGQsIFBsYXRmb3JtTGF5ZXIqIGRl
c2NlbmRlbnQpCiB7CkBAIC0xMzI3LDE0ICsxMzM0LDI2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OnBhaW50KEdyYXAKIAogICAgIFttX29iamNPYnNlcnZlci5nZXQoKSBzZXREZWxh
eUNhbGxiYWNrczpZRVNdOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBO
U0dyYXBoaWNzQ29udGV4dCogbmV3Q29udGV4dDsKKyAgICBGbG9hdFNpemUgc2NhbGVGYWN0b3Io
MS4wZiwgLTEuMGYpOworICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRT
aXplKHIud2lkdGgoKSwgci5oZWlnaHQoKSkpOworCisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShR
VEtJVCkKKyAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0
UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsK
KyAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNnQ29udGV4dCk7CisgICAgQ0dDb250ZXh0U2V0SW50
ZXJwb2xhdGlvblF1YWxpdHkoY2dDb250ZXh0LCBrQ0dJbnRlcnBvbGF0aW9uTG93KTsKKyAgICBD
R0NvbnRleHRUcmFuc2xhdGVDVE0oY2dDb250ZXh0LCByLngoKSwgci55KCkgKyByLmhlaWdodCgp
KTsKKyAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQsIHNjYWxlRmFjdG9yLndpZHRoKCks
IHNjYWxlRmFjdG9yLmhlaWdodCgpKTsKKworICAgIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdOworI2Vsc2UKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogICAgIGNvbnRleHQtPnRyYW5zbGF0ZShyLngoKSwg
ci55KCkgKyByLmhlaWdodCgpKTsKLSAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMS4wZiwg
LTEuMGYpKTsKKyAgICBjb250ZXh0LT5zY2FsZShzY2FsZUZhY3Rvcik7CiAgICAgY29udGV4dC0+
c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKLSAgICBJbnRS
ZWN0IHBhaW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyLndpZHRoKCksIHIuaGVpZ2h0
KCkpKTsKLSAgICAKLSAgICBOU0dyYXBoaWNzQ29udGV4dCogbmV3Q29udGV4dCA9IFtOU0dyYXBo
aWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQtPnBsYXRm
b3JtQ29udGV4dCgpIGZsaXBwZWQ6Tk9dOwogCisgICAgbmV3Q29udGV4dCA9IFtOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpIGZsaXBwZWQ6Tk9dOworI2VuZGlmCiAgICAgLy8gZHJhdyB0aGUgY3VycmVudCB2
aWRlbyBmcmFtZQogICAgIGlmIChxdFZpZGVvUmVuZGVyZXIpIHsKICAgICAgICAgW05TR3JhcGhp
Y3NDb250ZXh0IHNhdmVHcmFwaGljc1N0YXRlXTsKQEAgLTEzODgsNyArMTQwNyw5IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBhaW50KEdyYXAKICAgICAgICAgfQogICAgIH0KICNl
bmRpZgotCisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkKKyAgICBDR0NvbnRleHRSZXN0
b3JlR1N0YXRlKGNnQ29udGV4dCk7CisjZW5kaWYKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwogICAgIFttX29iamNPYnNlcnZlci5nZXQoKSBzZXREZWxheUNhbGxiYWNrczpOT107CiB9
CkBAIC0xNTkzLDcgKzE2MTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzYXdV
bnN1cHBvCiAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyU2F3
VW5zdXBwb3J0ZWRUcmFja3MobV9wbGF5ZXIpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgIShQTEFURk9S
TShRVCkgJiYgVVNFKFFUS0lUKSkKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnN1cHBv
cnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBpc1JlYWR5Rm9y
VmlkZW9TZXR1cCgpICYmIGdldFFUTW92aWVMYXllckNsYXNzKCkgIT0gTmlsOwpAQCAtMTc0NCw3
ICsxNzY1LDcgQEAgLSAodm9pZCluZXdJbWFnZUF2YWlsYWJsZTooTlNOb3RpZmljYXRpbwogCiAt
ICh2b2lkKWxheWVySG9zdENoYW5nZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBDQUxheWVy
KiByb290TGF5ZXIgPSBzdGF0aWNfY2FzdDxDQUxheWVyKj4oW25vdGlmaWNhdGlvbiBvYmplY3Rd
KTsKICAgICBtX2NhbGxiYWNrLT5sYXllckhvc3RDaGFuZ2VkKHJvb3RMYXllcik7CiAjZWxzZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0JKHJldmlzaW9uIDg3MTU0
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIktVUkwuaCIKIAogI2ltcG9ydCAiRm91bmRh
dGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZVUkwuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVk
QnVmZmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
aGFyZWRCdWZmZXJNYWMubW0JKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcs
MTEgQEAgLSAoaWQpaW5pdFdpdGhTaGFyZWRCdWZmZXI6KFNoYXJlZEJ1ZmZlcgogKyAodm9pZClp
bml0aWFsaXplCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisjaWYgUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Cisj
ZWxzZQogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7
CisjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQog
CkBAIC0xMDcsNyArMTExLDcgQEAgQ0ZEYXRhUmVmIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRh
KCkKICAgICAKICAgICByZXR1cm4gKENGRGF0YVJlZilSZXRhaW5QdHI8V2ViQ29yZVNoYXJlZEJ1
ZmZlckRhdGE+KEFkb3B0TlMsIFtbV2ViQ29yZVNoYXJlZEJ1ZmZlckRhdGEgYWxsb2NdIGluaXRX
aXRoU2hhcmVkQnVmZmVyOnRoaXNdKS5yZWxlYXNlUmVmKCk7CiB9Ci0KKyNpZiAhKFBMQVRGT1JN
KFFUKSAmJiBVU0UoUVRLSVQpKQogUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCiB7CiAg
ICAgTlNEYXRhICpyZXNvdXJjZURhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6
ZmlsZVBhdGhdOwpAQCAtMTE1LDYgKzExOSw2IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBT
aGFyZWRCdWZmZXI6OmMKICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShy
ZXNvdXJjZURhdGEpOwogICAgIHJldHVybiAwOwogfQotCisjZW5kaWYKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbQkocmV2
aXNpb24gODcxNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNF
eHRyYXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogCisjaW5jbHVkZSA8aW9zdHJl
YW0+CiAjaW5jbHVkZSA8b2JqYy9vYmpjLWF1dG8uaD4KICNpbmNsdWRlIDxvYmpjL29iamMtcnVu
dGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2VfaAorI2RlZmluZSBXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlX2gKKworI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorCisjaWZkZWYgTlNH
RU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKK3R5cGVkZWYgc3RydWN0IENH
UG9pbnQgTlNQb2ludDsKK3R5cGVkZWYgc3RydWN0IENHUmVjdCBOU1JlY3Q7CisjZWxzZQordHlw
ZWRlZiBzdHJ1Y3QgX05TUG9pbnQgTlNQb2ludDsKK3R5cGVkZWYgc3RydWN0IF9OU1JlY3QgTlNS
ZWN0OworI2VuZGlmCisKKyNpZmRlZiBfX09CSkNfXworQGNsYXNzIE5TQXJyYXk7CitAY2xhc3Mg
TlNTdHJpbmc7CitAY2xhc3MgUVRNb3ZpZTsKK0BjbGFzcyBRVE1vdmllVmlldzsKKyNlbHNlCitj
bGFzcyBOU0FycmF5OworY2xhc3MgTlNTdHJpbmc7CitjbGFzcyBRVE1vdmllOworY2xhc3MgUVRN
b3ZpZVZpZXc7CisjZW5kaWYKKworZXh0ZXJuICJDIiB7CisKKy8vIEluIGFscGhhYmV0aWNhbCBv
cmRlci4KK2V4dGVybiB1bnNpZ25lZCAoKndrUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5
cGVzKSh2b2lkKTsKK2V4dGVybiBpbnQgKCp3a1FUTW92aWVEYXRhUmF0ZSkoUVRNb3ZpZSopOwor
ZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KSh1aW50MzJfdFs1XSk7Citl
eHRlcm4gZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkKShRVE1vdmllKik7CitleHRlcm4g
TlNTdHJpbmcgKigqd2tRVE1vdmllTWF4VGltZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbikodm9p
ZCk7CitleHRlcm4gZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lU2Vla2FibGUpKFFUTW92aWUqKTsK
K2V4dGVybiBpbnQgKCp3a1FUTW92aWVHZXRUeXBlKShRVE1vdmllKik7CitleHRlcm4gQk9PTCAo
KndrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7CitleHRlcm4gdm9pZCAoKndr
UVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSosIEJPT0wpOworZXh0ZXJuIHZv
aWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKShRVE1vdmllKik7CitleHRl
cm4gdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcq
LCBCT09MKTsKK2V4dGVybiBOU0FycmF5ICooKndrUVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENh
Y2hlKSgpOworZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRl
KShOU1N0cmluZyAqc2l0ZSk7CitleHRlcm4gdm9pZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRD
YWNoZSkoKTsKKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCit1bnNpZ25lZCAoKndr
UVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKK2ludCAoKndrUVRNb3Zp
ZURhdGFSYXRlKShRVE1vdmllKik7Cit2b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudCko
dWludDMyX3RbNV0pOworZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkKShRVE1vdmllKik7
CitOU1N0cmluZyAqKCp3a1FUTW92aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKSh2
b2lkKTsKK2Zsb2F0ICgqd2tRVE1vdmllTWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CitpbnQg
KCp3a1FUTW92aWVHZXRUeXBlKShRVE1vdmllKik7CitCT09MICgqd2tRVE1vdmllSGFzQ2xvc2Vk
Q2FwdGlvbnMpKFFUTW92aWUqKTsKK3ZvaWQgKCp3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlv
bnMpKFFUTW92aWUqLCBCT09MKTsKK3ZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRl
cm5hdGVzKShRVE1vdmllKik7Cit2b2lkICgqd2tRVE1vdmllVmlld1NldERyYXdTeW5jaHJvbm91
c2x5KShRVE1vdmllVmlldyosIEJPT0wpOworTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlh
RG93bmxvYWRDYWNoZSkoKTsKK3ZvaWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JT
aXRlKShOU1N0cmluZyAqc2l0ZSk7Cit2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hl
KSgpOworCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gODcxNTYpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDExLTA1
LTI0ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxlIHVz
YWdlIG9mIFF1aWNrVGltZSBtZWRpYXBsYXllciBmb3IgdGhlIFF0IHBvcnQgb24gTWFjLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyNzkKKworICAg
ICAgICBFbmFibGUgdGhlIFF1aWNrVGltZSBiYWNrZW5kIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMu
IFRoZSBwYXRjaCBhZGRzIHRoZSBiaXRzIGluIFdlYkNvcmUKKyAgICAgICAgdG8gZW5hYmxlIHRo
ZSBRVEtpdCBiYWNrZW5kIG9mIHRoZSBNYWMgcG9ydC4gSXQgY2FuIGJlIGVuYWJsZWQgYnkgcGFz
c2luZyBERUZJTkVTKz1VU0VfUVRLSVQ9MQorICAgICAgICB3aGVuIGNhbGxpbmcgYnVpbGQtd2Vi
a2l0LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJp
dmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBRdFdlYktpdC5wcm86CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OnJlcXVpcmVzRnVsbFNjcmVlbkZvclZpZGVvUGxh
eWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmlzVmFsaWQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06IEFkZGVkLgorICAg
ICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorCiAyMDExLTA1LTIzICBMdWl6IEFn
b3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwkocmV2aXNpb24gODcx
NTQpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwkod29ya2luZyBjb3B5KQpAQCAt
MjE1LDcgKzIxNSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU4K
IH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKLSAgICAhY29udGFpbnMo
REVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKTpjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRp
bWVkaWEpIHsKKyAgICAhY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpOiFjb250YWlucyhE
RUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpOmNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGlt
ZWRpYSkgewogICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3Jl
ZW5WaWRlb1dpZGdldC5oCiAgICAgICAgIFNPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQv
RnVsbFNjcmVlblZpZGVvV2lkZ2V0LmNwcAogICAgIH0KQEAgLTIyNCw2ICsyMjQsMjQgQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgSEVBREVSUyArPSAkJFBX
RC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oCiAgICAgICAgIFNPVVJDRVMgKz0g
JCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCiAgICAgfQorCisgICAg
Y29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSU5DTFVERVBBVEggKz0g
JCRTT1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vcXQvCisgICAgICAgIElOQ0xVREVQQVRIICs9
ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvCisgICAgICAgIERFRklORVMrPU5TR0VP
TUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgICAgIEhFQURFUlMgKz0g
JCRQV0QvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKKyAgICAgICAgU09VUkNF
UyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKyAgICAgICAg
IyBXZSBjYW4ga25vdyB0aGUgTWFjIE9TIHZlcnNpb24gYnkgdXNpbmcgdGhlIERhcndpbiBtYWpv
ciB2ZXJzaW9uCisgICAgICAgIERBUldJTl9WRVJTSU9OID0gJCRzcGxpdChRTUFLRV9IT1NULnZl
cnNpb24sICIuIikKKyAgICAgICAgREFSV0lOX01BSk9SX1ZFUlNJT04gPSAkJGZpcnN0KERBUldJ
Tl9WRVJTSU9OKQorICAgICAgICBlcXVhbHMoREFSV0lOX01BSk9SX1ZFUlNJT04sICIxMCIpIHsK
KyAgICAgICAgICAgIExJQlMrPSAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldl
YktpdFN5c3RlbUludGVyZmFjZVNub3dMZW9wYXJkLmEgLWZyYW1ld29yayBTZWN1cml0eQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXF1YWxzKERBUldJTl9NQUpPUl9WRVJTSU9OLCAi
OSIpIHsKKyAgICAgICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJh
cmllcy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VMZW9wYXJkLmEgLWZyYW1ld29yayBTZWN1cml0
eQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogfQogCiBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAJKHJldmlzaW9uIDg3MTU0KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDkgQEAKICNlbmRpZiAvLyBRX09TX1dJTjMy
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCisjaWYgVVNFKFFUS0lUKQorI2luY2x1ZGUgIldlYlN5c3RlbUludGVyZmFjZS5oIgor
I2VuZGlmCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJl
YWQuaCIKICNpbmNsdWRlICJydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaCIKQEAgLTMxNyw2
ICszMjAsMTAgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZwogCiAg
ICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CiAKKyNpZiBVU0UoUVRLSVQp
CisgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsKKyNlbmRpZgorCiAgICAgUGFnZTo6
UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7CiAgICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0g
bmV3IENocm9tZUNsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50
ID0gbmV3IENvbnRleHRNZW51Q2xpZW50UXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCShyZXZpc2lvbiA4
NzE1NCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVv
UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsMTEgKzE2MiwxMCBAQCBGdWxsU2NyZWVuVmlk
ZW9RdDo6fkZ1bGxTY3JlZW5WaWRlb1F0KCkKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmVudGVy
RnVsbFNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBRX0FTU0VSVChub2RlKTsKLSAg
ICBRX0FTU0VSVChtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXIpOwotCiAgICAgbV92aWRlb0VsZW1l
bnQgPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSk7CiAKICNpZiBVU0UoUVRf
TVVMVElNRURJQSkKKyAgICBRX0FTU0VSVChtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXIpOwogICAg
IEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxWaWRlb0Vs
ZW1lbnQqPihub2RlKTsKICAgICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0Vs
ZW1lbnQtPnBsYXRmb3JtTWVkaWEoKTsKIApAQCAtMjM2LDYgKzIzNSw4IEBAIGJvb2wgRnVsbFNj
cmVlblZpZGVvUXQ6OnJlcXVpcmVzRnVsbFNjcmUKICNlbmRpZgogI2lmIFVTRShHU1RSRUFNRVIp
CiAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0K
IApAQCAtMjQ2LDYgKzI0Nyw4IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvUXQ6OmlzVmFsaWQoKSBj
b25zdAogI2VuZGlmCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICByZXR1cm4gbV9GdWxsU2NyZWVu
VmlkZW9IYW5kbGVyR1N0cmVhbWVyOworI2Vsc2UKKyAgICByZXR1cm4gMDsKICNlbmRpZgogfQog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBA
CisvKgorICogQ29weXJpZ2h0IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK3ZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAK
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAK
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV2ViU3lzdGVt
SW50ZXJmYWNlLmgiCisKKy8vIE5lZWRlZCBmb3IgYnVpbGRzIG5vdCB1c2luZyBQQ0ggdG8gZXhw
b3NlIEJVSUxESU5HXyBtYWNyb3MsIHNlZSBidWcgMzI3NTMuCisjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+CisKKyNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgorCisjZGVmaW5lIElOSVQoZnVuY3Rpb24pIHdrIyNmdW5j
dGlvbiA9IFdLIyNmdW5jdGlvbgorCit2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZv
aWQpCit7CisgICAgc3RhdGljIGJvb2wgZGlkSW5pdDsKKyAgICBpZiAoZGlkSW5pdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgSU5JVChRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMp
OworICAgIElOSVQoUVRNb3ZpZURhdGFSYXRlKTsKKyAgICBJTklUKFFUTW92aWVEaXNhYmxlQ29t
cG9uZW50KTsKKyAgICBJTklUKFFUTW92aWVNYXhUaW1lTG9hZGVkKTsKKyAgICBJTklUKFFUTW92
aWVNYXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKTsKKyAgICBJTklUKFFUTW92aWVNYXhU
aW1lU2Vla2FibGUpOworICAgIElOSVQoUVRNb3ZpZUdldFR5cGUpOworICAgIElOSVQoUVRNb3Zp
ZUhhc0Nsb3NlZENhcHRpb25zKTsKKyAgICBJTklUKFFUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlv
bnMpOworICAgIElOSVQoUVRNb3ZpZVNlbGVjdFByZWZlcnJlZEFsdGVybmF0ZXMpOworICAgIElO
SVQoUVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSk7CisgICAgSU5JVChRVEdldFNpdGVz
SW5NZWRpYURvd25sb2FkQ2FjaGUpOworICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNo
ZUZvclNpdGUpOworICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSk7CisKKyAgICBk
aWRJbml0ID0gdHJ1ZTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94678</attachid>
            <date>2011-05-24 13:27:39 -0700</date>
            <delta_ts>2011-05-24 13:32:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61279-20110524172736.patch</filename>
            <type>text/plain</type>
            <size>35584</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MTk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMDUtMjQgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBFbmFibGUgdXNhZ2Ugb2YgUXVpY2tU
aW1lIG1lZGlhcGxheWVyIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTI3OQorCisgICAgICAgIEVuYWJsZSB0
aGUgUXVpY2tUaW1lIGJhY2tlbmQgZm9yIHRoZSBRdCBwb3J0IG9uIE1hYy4gVGhlIHBhdGNoIGFk
ZHMgdGhlIGJpdHMgaW4gV2ViQ29yZQorICAgICAgICB0byBlbmFibGUgdGhlIFFUS2l0IGJhY2tl
bmQgb2YgdGhlIE1hYyBwb3J0LiBJdCBjYW4gYmUgZW5hYmxlZCBieSBwYXNzaW5nIERFRklORVMr
PVVTRV9RVEtJVD0xCisgICAgICAgIHdoZW4gY2FsbGluZyBidWlsZC13ZWJraXQuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBmZWF0
dXJlcy5wcmk6CisgICAgICAgICogcGxhdGZvcm0vS1VSTC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbnRSZWN0Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnByZWZlcnJlZFJlbmRlcmlu
Z01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBh
aW50KToKKyAgICAgICAgKC1bV2ViQ29yZU1vdmllT2JzZXJ2ZXIgbGF5ZXJIb3N0Q2hhbmdlZDpd
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tOgorICAgICAgICAoK1tXZWJDb3JlU2hhcmVkQnVmZmVy
RGF0YSBpbml0aWFsaXplXSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0
cmFzLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbTog
QWRkZWQuCisKIDIwMTEtMDUtMjQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgTWFycmluLgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cmkJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtp
bmcgY29weSkKQEAgLTI0Myw3ICsyNDMsMTYgQEAgY29udGFpbnMoREVGSU5FUywgV1RGX1VTRV9R
VF9CRUFSRVI9MSkgewogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewot
ICAgIGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgeworICAgIGNvbnRhaW5zKERF
RklORVMsIFVTRV9RVEtJVD0xKSB7CisgICAgICAgIERFRklORVMgKz0gV1RGX1VTRV9RVEtJVD0x
CisKKyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRQV0QvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjCisK
KyAgICAgICAgTElCUyArPSAtZnJhbWV3b3JrIEFwcEtpdCAtZnJhbWV3b3JrIEF1ZGlvVW5pdCBc
CisgICAgICAgICAgICAgICAgLWZyYW1ld29yayBBdWRpb1Rvb2xib3ggLWZyYW1ld29yayBDb3Jl
QXVkaW8gXAorICAgICAgICAgICAgICAgIC1mcmFtZXdvcmsgUXVhcnR6Q29yZSAtZnJhbWV3b3Jr
IFFUS2l0CisKKyAgICB9IGVsc2U6Y29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7
CiAgICAgICAgIERFRklORVMgKz0gV1RGX1VTRV9HU1RSRUFNRVI9MQogICAgICAgICBERUZJTkVT
ICs9IEVOQUJMRV9HTElCX1NVUFBPUlQ9MQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24g
ODcxNjApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAt
Mjk0NSw3ICsyOTQ1LDMxIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAg
ICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCiAgICAgfQogCi0g
ICAgY29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7CisgICAgY29udGFpbnMoREVG
SU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSEVBREVSUyArPSBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBcCisgICAgICAg
ICAgICBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMuaCBcCisgICAgICAgICAgICBwbGF0
Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggXAorICAgICAgICAgICAgcGxhdGZvcm0v
bWFjL0Jsb2NrRXhjZXB0aW9ucy5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3Jl
T2JqQ0V4dHJhcy5oCisgICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIFwKKyAgICAgICAgICAgIHBs
YXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFj
L0tVUkxNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vdGV4dC9tYWMvU3RyaW5nTWFjLm1t
IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9GbG9hdFNpemVNYWMubW0gXAor
ICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFJlY3RNYWMubW0gXAorICAgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcCBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgXAorICAgICAgICAgICAgcGxhdGZv
cm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2NmL0tVUkxD
Rk5ldC5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLm1tIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbQorCisgICAgICAgIERF
RklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKKyAgICB9
IGVsc2U6IGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgewogICAgICAgICBIRUFE
RVJTICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HT3duUHRy
R1N0cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dS
ZWZQdHJHU3RyZWFtZXIuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCShyZXZpc2lvbiA4NzE2MCkK
KysrIFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcg
KzE2MiwxMiBAQCBzeW1iaWFufG1hZW1vNXxtYWVtbzYgewogICAgIERFRklORVMgLT0gRU5BQkxF
X1ZJREVPPTEKICAgICBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0wCiAKLSAgICBjb250YWlucyhE
RUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsKKyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRL
SVQ9MSkgeworICAgICAgICBERUZJTkVTIC09IEVOQUJMRV9WSURFTz0wCisgICAgICAgIERFRklO
RVMgKz0gRU5BQkxFX1ZJREVPPTEKKyAgICAgICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUX01VTFRJ
TUVESUE9MQorICAgICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfTVVMVElNRURJQT0wCisgICAg
fSBlbHNlOiBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsKICAgICAgICAgREVG
SU5FUyAtPSBFTkFCTEVfVklERU89MAogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0x
CiAgICAgICAgIERFRklORVMgLT0gV1RGX1VTRV9RVF9NVUxUSU1FRElBPTEKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9LVVJMLmgJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vS1VSTC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBfX0NGVVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQor
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVm
IF9fT0JKQ19fCiBAY2xhc3MgTlNVUkw7CiAjZWxzZQpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1Ymxp
YzoKICAgICBDRlVSTFJlZiBjcmVhdGVDRlVSTCgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJ
VCkpCiAgICAgS1VSTChOU1VSTCopOwogICAgIG9wZXJhdG9yIE5TVVJMKigpIGNvbnN0OwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAkocmV2aXNpb24g
ODcxNjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNl
bmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JN
KFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNEYXRhOwogI2Vs
c2UKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIAogICAgIH5TaGFyZWRCdWZmZXIoKTsK
ICAgICAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0o
UVQpICYmIFVTRShRVEtJVCkpCiAgICAgTlNEYXRhICpjcmVhdGVOU0RhdGEoKTsKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHdyYXBOU0RhdGEoTlNEYXRhICpkYXRhKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwCShyZXZp
c2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAgQ0ZVUkxSZWYgS1VSTDo6Y3JlYXRlQ0ZV
UkwoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiAhKFBMQVRGT1JNKFFUKSAm
JiBVU0UoUVRLSVQpKQogU3RyaW5nIEtVUkw6OmZpbGVTeXN0ZW1QYXRoKCkgY29uc3QKIHsKICAg
ICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNmVVJMKEFkb3B0Q0YsIGNyZWF0ZUNGVVJMKCkpOwpAQCAt
OTEsNSArOTIsNSBAQCBTdHJpbmcgS1VSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAogI2VuZGlm
CiAgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZVUkxDb3B5Rmls
ZVN5c3RlbVBhdGgoY2ZVUkwuZ2V0KCksIHBhdGhTdHlsZSkpLmdldCgpOwogfQotCisjZW5kaWYK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5j
cHAJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVk
QnVmZmVyQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIFNoYXJlZEJ1ZmZl
cjo6U2hhcmVkQnVmZmVyKENGRGF0YVJlZiBjZkQKIAogLy8gTWFjIGlzIGEgQ0YgcGxhdGZvcm0g
YnV0IGhhcyBhbiBldmVuIG1vcmUgZWZmaWNpZW50IHZlcnNpb24gb2YgdGhpcyBtZXRob2QsCiAv
LyBzbyBvbmx5IHVzZSB0aGlzIHZlcnNpb24gZm9yIG5vbi1NYWMKLSNpZiAhUExBVEZPUk0oTUFD
KQorI2lmICFQTEFURk9STShNQUMpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBD
RkRhdGFSZWYgU2hhcmVkQnVmZmVyOjpjcmVhdGVDRkRhdGEoKQogewogICAgIGlmIChtX2NmRGF0
YSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXpl
LmgJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKIHR5cGVkZWYgc3Ry
dWN0IENHU2l6ZSBDR1NpemU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJ
VCkpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5
cGVkZWYgc3RydWN0IENHU2l6ZSBOU1NpemU7CiAjZWxzZQpAQCAtOTcsNyArOTcsNyBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0o
Q0hST01JVU0pICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkg
JiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGV4cGxp
Y2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRs
eSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgJKHJldmlz
aW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1JlY3Qg
Q0dSZWN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlV
TSkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlV
TSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVm
IE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVj
dCBDR1JlY3QgTlNSZWN0OwogI2Vsc2UKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0p
ICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFS
V0lOKSkgIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBvcGVyYXRvciBOU1Jl
Y3QoKSBjb25zdDsKICNlbmRpZgogCkBAIC0yNDIsNyArMjQyLDcgQEAgSW50UmVjdCBlbmNsb3Np
bmdJbnRSZWN0KGNvbnN0IENHUmVjdCYpOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykpIFwK
LSAgICAgICAgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorICAgICAgICB8
fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYg
VVNFKFFUS0lUKSkKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmKTsKICNl
bmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5o
CShyZXZpc2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
dFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogdHlwZWRlZiBzdHJ1Y3Qg
Q0dTaXplIENHU2l6ZTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgTlNT
aXplOwogI2Vsc2UKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dT
aXplKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNH
RU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCisjaWYgKFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKSkgJiYgIWRlZmluZWQoTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCiAgICAgZXhwbGljaXQgSW50U2l6ZShj
b25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxv
c3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9u
IDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQ
TEFURk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIgogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgpAQCAtNjIsNyArNjIsNyBA
QAogI2lmIFVTRShRVF9NVUxUSU1FRElBKSAmJiAhVVNFKEdTVFJFQU1FUikKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVRdC5oIgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NO
YW1lIE1lZGlhUGxheWVyUHJpdmF0ZVF0Ci0jZWxpZiAhVVNFKEdTVFJFQU1FUikKKyNlbGlmICFV
U0UoR1NUUkVBTUVSKSAmJiAhVVNFKFFUS0lUKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZVBob25vbi5oIgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZVBob25vbgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRTaXplQ0cuY3BwCShyZXZpc2lvbiA4NzE2MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgogCi0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01F
KQorI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkgfHwgKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogCiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNh
dGlvblNlcnZpY2VzLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ludFJlY3RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcAkocmV2aXNpb24gODcxNjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogCi0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKQorI2lmIFVTRShDRykg
fHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQp
KQogCiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCShyZXZpc2lvbiA4NzE2MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw4IEBACiBAY2xhc3MgUVRWaWRlb1Jl
bmRlcmVyV2ViS2l0T25seTsKIEBjbGFzcyBXZWJDb3JlTW92aWVPYnNlcnZlcjsKICNlbHNlCitj
bGFzcyBOU0RpY3Rpb25hcnk7CitjbGFzcyBOU011dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgUVRN
b3ZpZTsKIGNsYXNzIFFUTW92aWVWaWV3OwogY2xhc3MgUVRUaW1lOwpAQCAtMTM3LDcgKzEzOSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKIAog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBib29sIHN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsKICAgICB2b2lkIGFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0JKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJEb2N1bWVudExvYWRlci5oIgogI2ltcG9ydCAiRnJh
bWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgorI2ltcG9ydCAiSG9zdFdpbmRvdy5oIgogI2lt
cG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJLVVJMLmgiCiAjaW1wb3J0ICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCkBAIC01OSw3ICs2MCw2IEBACiAjaW1wb3J0ICJSZW5kZXJTdHlsZS5o
IgogI2VuZGlmCiAKLQogU09GVF9MSU5LX0ZSQU1FV09SSyhRVEtpdCkKIAogU09GVF9MSU5LKFFU
S2l0LCBRVE1ha2VUaW1lLCBRVFRpbWUsIChsb25nIGxvbmcgdGltZVZhbHVlLCBsb25nIHRpbWVT
Y2FsZSksICh0aW1lVmFsdWUsIHRpbWVTY2FsZSkpCkBAIC00NTUsOCArNDU1LDExIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW8KIAogICAgIG1fcXRNb3ZpZVZpZXcu
YWRvcHROUyhbW1FUTW92aWVWaWV3IGFsbG9jXSBpbml0XSk7CiAgICAgc2V0U2l6ZShtX3BsYXll
ci0+c2l6ZSgpKTsKLSAgICBOU1ZpZXcqIHBhcmVudFZpZXcgPSBtX3BsYXllci0+ZnJhbWVWaWV3
KCktPmRvY3VtZW50VmlldygpOworICAgIE5TVmlldyogcGFyZW50VmlldyA9IDA7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgIHBhcmVudFZpZXcgPSBtX3BsYXllci0+ZnJhbWVWaWV3KCktPmRvY3Vt
ZW50VmlldygpOwogICAgIFtwYXJlbnRWaWV3IGFkZFN1YnZpZXc6bV9xdE1vdmllVmlldy5nZXQo
KV07CisjZW5kaWYKICAgICBbbV9xdE1vdmllVmlldy5nZXQoKSBzZXREZWxlZ2F0ZTptX29iamNP
YnNlcnZlci5nZXQoKV07CiAgICAgW21fb2JqY09ic2VydmVyLmdldCgpIHNldFZpZXc6bV9xdE1v
dmllVmlldy5nZXQoKV07CiAgICAgW21fcXRNb3ZpZVZpZXcuZ2V0KCkgc2V0TW92aWU6bV9xdE1v
dmllLmdldCgpXTsKQEAgLTQ5Myw3ICs0OTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpjcmVhdGVRVFZpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICAvLyBhc3NvY2lhdGUg
b3VyIG1vdmllIHdpdGggb3VyIGluc3RhbmNlIG9mIFFUVmlkZW9SZW5kZXJlcldlYktpdE9ubHkK
LSAgICBbKGlkPFdlYktpdFZpZGVvUmVuZGVyaW5nRGV0YWlscz4pbV9xdFZpZGVvUmVuZGVyZXIu
Z2V0KCkgc2V0TW92aWU6bV9xdE1vdmllLmdldCgpXTsgICAgCisgICAgWyhpZDxXZWJLaXRWaWRl
b1JlbmRlcmluZ0RldGFpbHM+KW1fcXRWaWRlb1JlbmRlcmVyLmdldCgpIHNldE1vdmllOm1fcXRN
b3ZpZS5nZXQoKV07CiAKICAgICBpZiAocmVuZGVyZXJNb2RlID09IFFUVmlkZW9SZW5kZXJlck1v
ZGVMaXN0ZW5zRm9yTmV3SW1hZ2VzKSB7CiAgICAgICAgIC8vIGxpc3RlbiB0byBRVFZpZGVvUmVu
ZGVyZXJXZWJLaXRPbmx5J3MgUVRWaWRlb1JlbmRlcmVyV2ViS2l0T25seU5ld0ltYWdlRGlkQmVj
b21lQXZhaWxhYmxlTm90aWZpY2F0aW9uCkBAIC01MjIsNyArNTI1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6ZGVzdHJveVFUVgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpjcmVhdGVRVE1vdmllTGF5ZXIoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkpCiAgICAgaWYgKCFtX3F0TW92aWUpCiAgICAgICAgIHJldHVybjsKIApA
QCAtNTczLDcgKzU3Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVJlbmRlcmlu
Z00KICAgICBpZiAoIW1fcGxheWVyLT5mcmFtZVZpZXcoKSB8fCAhbV9xdE1vdmllKQogICAgICAg
ICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgIShQTEFURk9STShR
VCkgJiYgVVNFKFFUS0lUKSkKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
ICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdN
b3ZpZUxheWVyOwogI2VuZGlmCkBAIC03MDIsNyArNzA1LDExIEBAIFBsYXRmb3JtTWVkaWEgTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcigp
IGNvbnN0CiB7CisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkKKyAgICByZXR1cm4gMDsK
KyNlbHNlCiAgICAgcmV0dXJuIG1fcXRWaWRlb0xheWVyLmdldCgpOworI2VuZGlmCiB9CiAjZW5k
aWYKIApAQCAtMTIxMiw3ICsxMjE5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
ZGlkRW5kKCkKICAgICBtX3BsYXllci0+dGltZUNoYW5nZWQoKTsKIH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
ICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWYgZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCiBzdGF0aWMgYm9vbCBsYXllcklzRGVzY2VuZGVudE9mKFBsYXRmb3JtTGF5
ZXIqIGNoaWxkLCBQbGF0Zm9ybUxheWVyKiBkZXNjZW5kZW50KQogewpAQCAtMTMyNywxNCArMTMz
NCwyNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwYWludChHcmFwCiAKICAgICBb
bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0RGVsYXlDYWxsYmFja3M6WUVTXTsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgTlNHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRleHQ7
CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yKDEuMGYsIC0xLjBmKTsKKyAgICBJbnRSZWN0IHBh
aW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyLndpZHRoKCksIHIuaGVpZ2h0KCkpKTsK
KworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgQ0dDb250ZXh0UmVmIGNnQ29u
dGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJy
ZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7CisgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0Nv
bnRleHQpOworICAgIENHQ29udGV4dFNldEludGVycG9sYXRpb25RdWFsaXR5KGNnQ29udGV4dCwg
a0NHSW50ZXJwb2xhdGlvbkxvdyk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4
dCwgci54KCksIHIueSgpICsgci5oZWlnaHQoKSk7CisgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dD
b250ZXh0LCBzY2FsZUZhY3Rvci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSk7CisKKyAg
ICBuZXdDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyNlbHNl
CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKICAg
ICBjb250ZXh0LT50cmFuc2xhdGUoci54KCksIHIueSgpICsgci5oZWlnaHQoKSk7Ci0gICAgY29u
dGV4dC0+c2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7CisgICAgY29udGV4dC0+c2NhbGUo
c2NhbGVGYWN0b3IpOwogICAgIGNvbnRleHQtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHko
SW50ZXJwb2xhdGlvbkxvdyk7Ci0gICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCks
IEludFNpemUoci53aWR0aCgpLCByLmhlaWdodCgpKSk7Ci0gICAgCi0gICAgTlNHcmFwaGljc0Nv
bnRleHQqIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0
aEdyYXBoaWNzUG9ydDpjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOk5PXTsKIAor
ICAgIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdy
YXBoaWNzUG9ydDpjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOk5PXTsKKyNlbmRp
ZgogICAgIC8vIGRyYXcgdGhlIGN1cnJlbnQgdmlkZW8gZnJhbWUKICAgICBpZiAocXRWaWRlb1Jl
bmRlcmVyKSB7CiAgICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07
CkBAIC0xMzg4LDcgKzE0MDcsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwYWlu
dChHcmFwCiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKLQorI2lmIFBMQVRGT1JNKFFUKSAmJiBV
U0UoUVRLSVQpCisgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOworI2VuZGlm
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0
KCkgc2V0RGVsYXlDYWxsYmFja3M6Tk9dOwogfQpAQCAtMTU5Myw3ICsxNjE0LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2F3VW5zdXBwbwogICAgIG1fcGxheWVyLT5tZWRpYVBs
YXllckNsaWVudCgpLT5tZWRpYVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKG1fcGxheWVyKTsK
IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29u
c3QKIHsKICAgICByZXR1cm4gaXNSZWFkeUZvclZpZGVvU2V0dXAoKSAmJiBnZXRRVE1vdmllTGF5
ZXJDbGFzcygpICE9IE5pbDsKQEAgLTE3NDQsNyArMTc2NSw3IEBAIC0gKHZvaWQpbmV3SW1hZ2VB
dmFpbGFibGU6KE5TTm90aWZpY2F0aW8KIAogLSAodm9pZClsYXllckhvc3RDaGFuZ2VkOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkpCiAgICAgQ0FMYXllciogcm9vdExheWVyID0gc3RhdGljX2Nhc3Q8Q0FM
YXllcio+KFtub3RpZmljYXRpb24gb2JqZWN0XSk7CiAgICAgbV9jYWxsYmFjay0+bGF5ZXJIb3N0
Q2hhbmdlZChyb290TGF5ZXIpOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9LVVJMTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9LVVJMTWFjLm1tCShyZXZpc2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9LVVJMTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0
ICJLVVJMLmgiCiAKICNpbXBvcnQgIkZvdW5kYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPENvcmVG
b3VuZGF0aW9uL0NGVVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tCShyZXZpc2lvbiA4
NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDExIEBAIC0gKGlkKWluaXRXaXRoU2hhcmVkQnVm
ZmVyOihTaGFyZWRCdWZmZXIKICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZCgpOworI2Vsc2UKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOworI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5h
bGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApAQCAtMTA3LDcgKzExMSw3IEBAIENGRGF0YVJl
ZiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUNGRGF0YSgpCiAgICAgCiAgICAgcmV0dXJuIChDRkRhdGFS
ZWYpUmV0YWluUHRyPFdlYkNvcmVTaGFyZWRCdWZmZXJEYXRhPihBZG9wdE5TLCBbW1dlYkNvcmVT
aGFyZWRCdWZmZXJEYXRhIGFsbG9jXSBpbml0V2l0aFNoYXJlZEJ1ZmZlcjp0aGlzXSkucmVsZWFz
ZVJlZigpOwogfQotCisjaWYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShj
b25zdCBTdHJpbmcmIGZpbGVQYXRoKQogewogICAgIE5TRGF0YSAqcmVzb3VyY2VEYXRhID0gW05T
RGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZGaWxlOmZpbGVQYXRoXTsKQEAgLTExNSw2ICsxMTksNiBA
QCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjCiAgICAgICAgIHJldHVy
biBTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEocmVzb3VyY2VEYXRhKTsKICAgICByZXR1cm4gMDsK
IH0KLQorI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlT2JqQ0V4dHJhcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZU9iakNFeHRyYXMubW0JKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU9iakNF
eHRyYXMuaCIKIAorI2luY2x1ZGUgPGlvc3RyZWFtPgogI2luY2x1ZGUgPG9iamMvb2JqYy1hdXRv
Lmg+CiAjaW5jbHVkZSA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlX2gKKyNkZWZpbmUgV2ViQ29yZVN5c3RlbUludGVyZmFjZV9oCisKKyNpbmNsdWRl
IDxvYmpjL29iamMuaD4KKworI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCit0eXBlZGVmIHN0cnVjdCBDR1BvaW50IE5TUG9pbnQ7Cit0eXBlZGVmIHN0cnVj
dCBDR1JlY3QgTlNSZWN0OworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IF9OU1BvaW50IE5TUG9pbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfTlNSZWN0IE5TUmVjdDsKKyNlbmRpZgorCisjaWZkZWYgX19PQkpD
X18KK0BjbGFzcyBOU0FycmF5OworQGNsYXNzIE5TU3RyaW5nOworQGNsYXNzIFFUTW92aWU7CitA
Y2xhc3MgUVRNb3ZpZVZpZXc7CisjZWxzZQorY2xhc3MgTlNBcnJheTsKK2NsYXNzIE5TU3RyaW5n
OworY2xhc3MgUVRNb3ZpZTsKK2NsYXNzIFFUTW92aWVWaWV3OworI2VuZGlmCisKK2V4dGVybiAi
QyIgeworCisvLyBJbiBhbHBoYWJldGljYWwgb3JkZXIuCitleHRlcm4gdW5zaWduZWQgKCp3a1FU
SW5jbHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVUeXBlcykodm9pZCk7CitleHRlcm4gaW50ICgqd2tR
VE1vdmllRGF0YVJhdGUpKFFUTW92aWUqKTsKK2V4dGVybiB2b2lkICgqd2tRVE1vdmllRGlzYWJs
ZUNvbXBvbmVudCkodWludDMyX3RbNV0pOworZXh0ZXJuIGZsb2F0ICgqd2tRVE1vdmllTWF4VGlt
ZUxvYWRlZCkoUVRNb3ZpZSopOworZXh0ZXJuIE5TU3RyaW5nICooKndrUVRNb3ZpZU1heFRpbWVM
b2FkZWRDaGFuZ2VOb3RpZmljYXRpb24pKHZvaWQpOworZXh0ZXJuIGZsb2F0ICgqd2tRVE1vdmll
TWF4VGltZVNlZWthYmxlKShRVE1vdmllKik7CitleHRlcm4gaW50ICgqd2tRVE1vdmllR2V0VHlw
ZSkoUVRNb3ZpZSopOworZXh0ZXJuIEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRDYXB0aW9ucyko
UVRNb3ZpZSopOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMp
KFFUTW92aWUqLCBCT09MKTsKK2V4dGVybiB2b2lkICgqd2tRVE1vdmllU2VsZWN0UHJlZmVycmVk
QWx0ZXJuYXRlcykoUVRNb3ZpZSopOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVWaWV3U2V0RHJh
d1N5bmNocm9ub3VzbHkpKFFUTW92aWVWaWV3KiwgQk9PTCk7CitleHRlcm4gTlNBcnJheSAqKCp3
a1FUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSkoKTsKK2V4dGVybiB2b2lkICgqd2tRVENs
ZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOworZXh0ZXJuIHZv
aWQgKCp3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpKCk7CisKK30KKworI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKwordW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVU
eXBlcykodm9pZCk7CitpbnQgKCp3a1FUTW92aWVEYXRhUmF0ZSkoUVRNb3ZpZSopOwordm9pZCAo
KndrUVRNb3ZpZURpc2FibGVDb21wb25lbnQpKHVpbnQzMl90WzVdKTsKK2Zsb2F0ICgqd2tRVE1v
dmllTWF4VGltZUxvYWRlZCkoUVRNb3ZpZSopOworTlNTdHJpbmcgKigqd2tRVE1vdmllTWF4VGlt
ZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbikodm9pZCk7CitmbG9hdCAoKndrUVRNb3ZpZU1heFRp
bWVTZWVrYWJsZSkoUVRNb3ZpZSopOworaW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRNb3ZpZSop
OworQk9PTCAoKndrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7Cit2b2lkICgq
d2tRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKShRVE1vdmllKiwgQk9PTCk7Cit2b2lkICgq
d2tRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRNb3ZpZSopOwordm9pZCAoKndr
UVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcqLCBCT09MKTsKK05T
QXJyYXkgKigqd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7Cit2b2lkICgqd2tR
VENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOwordm9pZCAo
KndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKKwpJbmRleDogU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg3MTk2KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wNS0yNCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5t
ZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbUXRdIEVuYWJsZSB1c2FnZSBvZiBRdWlja1RpbWUgbWVkaWFwbGF5ZXIg
Zm9yIHRoZSBRdCBwb3J0IG9uIE1hYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYxMjc5CisKKyAgICAgICAgRW5hYmxlIHRoZSB1c2FnZSBvZiBRdWlj
a1RpbWUgYmFja2VuZCBmb3IgdGhlIFF0IHBvcnQuIEl0IGNhbiBiZSBlbmFibGVkIGJ5CisgICAg
ICAgIHBhc3NpbmcgREVGSU5FUys9VVNFX1FUS0lUPTEgd2hlbiBjYWxsaW5nIGJ1aWxkLXdlYmtp
dC4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZh
dGU6OlFXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICogUXRXZWJLaXQucHJvOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZ1bGxTY3JlZW5WaWRlb1F0OjplbnRlckZ1bGxTY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0OjpyZXF1aXJlc0Z1bGxTY3JlZW5Gb3JWaWRlb1BsYXli
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxTY3JlZW5WaWRlb1F0Ojppc1ZhbGlkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UuaDogQWRkZWQuCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOiBBZGRlZC4KKyAgICAg
ICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKwogMjAxMS0wNS0yMyAgTHVpeiBBZ29z
dGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRyZWFzIEtsaW5nLgpJbmRleDogU291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8JKHJldmlzaW9uIDg3MTYw
KQorKysgU291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIx
NSw3ICsyMTUsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOCiB9
CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7Ci0gICAgIWNvbnRhaW5zKERF
RklORVMsIFVTRV9HU1RSRUFNRVI9MSk6Y29udGFpbnMoTU9CSUxJVFlfQ09ORklHLCBtdWx0aW1l
ZGlhKSB7CisgICAgIWNvbnRhaW5zKERFRklORVMsIFVTRV9RVEtJVD0xKTohY29udGFpbnMoREVG
SU5FUywgVVNFX0dTVFJFQU1FUj0xKTpjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVk
aWEpIHsKICAgICAgICAgSEVBREVSUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVu
VmlkZW9XaWRnZXQuaAogICAgICAgICBTT1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1
bGxTY3JlZW5WaWRlb1dpZGdldC5jcHAKICAgICB9CkBAIC0yMjQsNiArMjI0LDI0IEBAIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAgIEhFQURFUlMgKz0gJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuaAogICAgICAgICBTT1VSQ0VTICs9ICQk
UFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAogICAgIH0KKworICAgIGNv
bnRhaW5zKERFRklORVMsIFVTRV9RVEtJVD0xKSB7CisgICAgICAgIElOQ0xVREVQQVRIICs9ICQk
U09VUkNFX0RJUi9XZWJDb3JlL3BsYXRmb3JtL3F0LworICAgICAgICBJTkNMVURFUEFUSCArPSAk
JFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzLworICAgICAgICBERUZJTkVTKz1OU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworICAgICAgICBIRUFERVJTICs9ICQk
UFdEL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5oCisgICAgICAgIFNPVVJDRVMg
Kz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisgICAgICAgICMg
V2UgY2FuIGtub3cgdGhlIE1hYyBPUyB2ZXJzaW9uIGJ5IHVzaW5nIHRoZSBEYXJ3aW4gbWFqb3Ig
dmVyc2lvbgorICAgICAgICBEQVJXSU5fVkVSU0lPTiA9ICQkc3BsaXQoUU1BS0VfSE9TVC52ZXJz
aW9uLCAiLiIpCisgICAgICAgIERBUldJTl9NQUpPUl9WRVJTSU9OID0gJCRmaXJzdChEQVJXSU5f
VkVSU0lPTikKKyAgICAgICAgZXF1YWxzKERBUldJTl9NQUpPUl9WRVJTSU9OLCAiMTAiKSB7Cisg
ICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmllcy9saWJXZWJL
aXRTeXN0ZW1JbnRlcmZhY2VTbm93TGVvcGFyZC5hIC1mcmFtZXdvcmsgU2VjdXJpdHkKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVxdWFscyhEQVJXSU5fTUFKT1JfVkVSU0lPTiwgIjki
KSB7CisgICAgICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJp
ZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlTGVvcGFyZC5hIC1mcmFtZXdvcmsgU2VjdXJpdHkK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIH0KIAogY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0lDT05EQVRBQkFTRT0xKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
CShyZXZpc2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw5IEBACiAjZW5kaWYgLy8gUV9PU19XSU4zMgog
I2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgorI2lmIFVTRShRVEtJVCkKKyNpbmNsdWRlICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFk
LmgiCiAjaW5jbHVkZSAicnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgiCkBAIC0zMTcsNiAr
MzIwLDEwIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWcKIAogICAg
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOwogCisjaWYgVVNFKFFUS0lUKQor
ICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKCk7CisjZW5kaWYKKwogICAgIFBhZ2U6OlBh
Z2VDbGllbnRzIHBhZ2VDbGllbnRzOwogICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5l
dyBDaHJvbWVDbGllbnRRdChxKTsKICAgICBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNsaWVudCA9
IG5ldyBDb250ZXh0TWVudUNsaWVudFF0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNwcAkocmV2aXNpb24gODcx
NjApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDExICsxNjIsMTAgQEAgRnVsbFNjcmVlblZpZGVv
UXQ6On5GdWxsU2NyZWVuVmlkZW9RdCgpCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1F0OjplbnRlckZ1
bGxTY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiB7CiAgICAgUV9BU1NFUlQobm9kZSk7Ci0gICAg
UV9BU1NFUlQobV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyKTsKLQogICAgIG1fdmlkZW9FbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUpOwogCiAjaWYgVVNFKFFUX01V
TFRJTUVESUEpCisgICAgUV9BU1NFUlQobV9GdWxsU2NyZWVuVmlkZW9IYW5kbGVyKTsKICAgICBI
VE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVt
ZW50Kj4obm9kZSk7CiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhID0gdmlkZW9FbGVt
ZW50LT5wbGF0Zm9ybU1lZGlhKCk7CiAKQEAgLTIzNiw2ICsyMzUsOCBAQCBib29sIEZ1bGxTY3Jl
ZW5WaWRlb1F0OjpyZXF1aXJlc0Z1bGxTY3JlCiAjZW5kaWYKICNpZiBVU0UoR1NUUkVBTUVSKQog
ICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAK
QEAgLTI0Niw2ICsyNDcsOCBAQCBib29sIEZ1bGxTY3JlZW5WaWRlb1F0Ojppc1ZhbGlkKCkgY29u
c3QKICNlbmRpZgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgcmV0dXJuIG1fRnVsbFNjcmVlblZp
ZGVvSGFuZGxlckdTdHJlYW1lcjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KIApJ
bmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAor
LyoKKyAqIENvcHlyaWdodCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCit2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldlYlN5c3RlbUlu
dGVyZmFjZS5oIgorCisvLyBOZWVkZWQgZm9yIGJ1aWxkcyBub3QgdXNpbmcgUENIIHRvIGV4cG9z
ZSBCVUlMRElOR18gbWFjcm9zLCBzZWUgYnVnIDMyNzUzLgorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgorCisjaW1wb3J0IDxXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KKworI2RlZmluZSBJTklUKGZ1bmN0aW9uKSB3ayMjZnVuY3Rp
b24gPSBXSyMjZnVuY3Rpb24KKwordm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lk
KQoreworICAgIHN0YXRpYyBib29sIGRpZEluaXQ7CisgICAgaWYgKGRpZEluaXQpCisgICAgICAg
IHJldHVybjsKKworICAgIElOSVQoUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKTsK
KyAgICBJTklUKFFUTW92aWVEYXRhUmF0ZSk7CisgICAgSU5JVChRVE1vdmllRGlzYWJsZUNvbXBv
bmVudCk7CisgICAgSU5JVChRVE1vdmllTWF4VGltZUxvYWRlZCk7CisgICAgSU5JVChRVE1vdmll
TWF4VGltZUxvYWRlZENoYW5nZU5vdGlmaWNhdGlvbik7CisgICAgSU5JVChRVE1vdmllTWF4VGlt
ZVNlZWthYmxlKTsKKyAgICBJTklUKFFUTW92aWVHZXRUeXBlKTsKKyAgICBJTklUKFFUTW92aWVI
YXNDbG9zZWRDYXB0aW9ucyk7CisgICAgSU5JVChRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25z
KTsKKyAgICBJTklUKFFUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKTsKKyAgICBJTklU
KFFUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkpOworICAgIElOSVQoUVRHZXRTaXRlc0lu
TWVkaWFEb3dubG9hZENhY2hlKTsKKyAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVG
b3JTaXRlKTsKKyAgICBJTklUKFFUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGUpOworCisgICAgZGlk
SW5pdCA9IHRydWU7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94679</attachid>
            <date>2011-05-24 13:32:22 -0700</date>
            <delta_ts>2011-05-25 10:19:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61279-20110524173217.patch</filename>
            <type>text/plain</type>
            <size>35583</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MTk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMDUtMjQgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBFbmFibGUgdXNhZ2Ugb2YgUXVpY2tU
aW1lIG1lZGlhcGxheWVyIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTI3OQorCisgICAgICAgIEVuYWJsZSB0
aGUgUXVpY2tUaW1lIGJhY2tlbmQgZm9yIHRoZSBRdCBwb3J0IG9uIE1hYy4gVGhlIHBhdGNoIGFk
ZHMgdGhlIGJpdHMgaW4gV2ViQ29yZQorICAgICAgICB0byBlbmFibGUgdGhlIFFUS2l0IGJhY2tl
bmQgb2YgdGhlIE1hYyBwb3J0LiBJdCBjYW4gYmUgZW5hYmxlZCBieSBwYXNzaW5nIERFRklORVMr
PVVTRV9RVEtJVD0xCisgICAgICAgIHdoZW4gY2FsbGluZyBidWlsZC13ZWJraXQuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBmZWF0
dXJlcy5wcmk6CisgICAgICAgICogcGxhdGZvcm0vS1VSTC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbnRSZWN0Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnByZWZlcnJlZFJlbmRlcmlu
Z01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBh
aW50KToKKyAgICAgICAgKC1bV2ViQ29yZU1vdmllT2JzZXJ2ZXIgbGF5ZXJIb3N0Q2hhbmdlZDpd
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tOgorICAgICAgICAoK1tXZWJDb3JlU2hhcmVkQnVmZmVy
RGF0YSBpbml0aWFsaXplXSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0
cmFzLm1tOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbTog
QWRkZWQuCisKIDIwMTEtMDUtMjQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgTWFycmluLgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cmkJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtp
bmcgY29weSkKQEAgLTI0Myw3ICsyNDMsMTYgQEAgY29udGFpbnMoREVGSU5FUywgV1RGX1VTRV9R
VF9CRUFSRVI9MSkgewogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewot
ICAgIGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgeworICAgIGNvbnRhaW5zKERF
RklORVMsIFVTRV9RVEtJVD0xKSB7CisgICAgICAgIERFRklORVMgKz0gV1RGX1VTRV9RVEtJVD0x
CisKKyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRQV0QvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjCisK
KyAgICAgICAgTElCUyArPSAtZnJhbWV3b3JrIEFwcEtpdCAtZnJhbWV3b3JrIEF1ZGlvVW5pdCBc
CisgICAgICAgICAgICAgICAgLWZyYW1ld29yayBBdWRpb1Rvb2xib3ggLWZyYW1ld29yayBDb3Jl
QXVkaW8gXAorICAgICAgICAgICAgICAgIC1mcmFtZXdvcmsgUXVhcnR6Q29yZSAtZnJhbWV3b3Jr
IFFUS2l0CisKKyAgICB9IGVsc2U6Y29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7
CiAgICAgICAgIERFRklORVMgKz0gV1RGX1VTRV9HU1RSRUFNRVI9MQogICAgICAgICBERUZJTkVT
ICs9IEVOQUJMRV9HTElCX1NVUFBPUlQ9MQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24g
ODcxNjApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAt
Mjk0NSw3ICsyOTQ1LDMxIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAg
ICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCiAgICAgfQogCi0g
ICAgY29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7CisgICAgY29udGFpbnMoREVG
SU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSEVBREVSUyArPSBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBcCisgICAgICAg
ICAgICBwbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMuaCBcCisgICAgICAgICAgICBwbGF0
Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggXAorICAgICAgICAgICAgcGxhdGZvcm0v
bWFjL0Jsb2NrRXhjZXB0aW9ucy5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3Jl
T2JqQ0V4dHJhcy5oCisgICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIFwKKyAgICAgICAgICAgIHBs
YXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFj
L0tVUkxNYWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vdGV4dC9tYWMvU3RyaW5nTWFjLm1t
IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9GbG9hdFNpemVNYWMubW0gXAor
ICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFJlY3RNYWMubW0gXAorICAgICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcCBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgXAorICAgICAgICAgICAgcGxhdGZv
cm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2NmL0tVUkxD
Rk5ldC5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLm1tIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbQorCisgICAgICAgIERF
RklORVMrPU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKKyAgICB9
IGVsc2U6IGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgewogICAgICAgICBIRUFE
RVJTICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HT3duUHRy
R1N0cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dS
ZWZQdHJHU3RyZWFtZXIuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCShyZXZpc2lvbiA4NzE2MCkK
KysrIFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcg
KzE2MiwxMiBAQCBzeW1iaWFufG1hZW1vNXxtYWVtbzYgewogICAgIERFRklORVMgLT0gRU5BQkxF
X1ZJREVPPTEKICAgICBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0wCiAKLSAgICBjb250YWlucyhE
RUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsKKyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRL
SVQ9MSkgeworICAgICAgICBERUZJTkVTIC09IEVOQUJMRV9WSURFTz0wCisgICAgICAgIERFRklO
RVMgKz0gRU5BQkxFX1ZJREVPPTEKKyAgICAgICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUX01VTFRJ
TUVESUE9MQorICAgICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfTVVMVElNRURJQT0wCisgICAg
fSBlbHNlOiBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsKICAgICAgICAgREVG
SU5FUyAtPSBFTkFCTEVfVklERU89MAogICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0x
CiAgICAgICAgIERFRklORVMgLT0gV1RGX1VTRV9RVF9NVUxUSU1FRElBPTEKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9LVVJMLmgJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vS1VSTC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBfX0NGVVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQor
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVm
IF9fT0JKQ19fCiBAY2xhc3MgTlNVUkw7CiAjZWxzZQpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1Ymxp
YzoKICAgICBDRlVSTFJlZiBjcmVhdGVDRlVSTCgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJ
VCkpCiAgICAgS1VSTChOU1VSTCopOwogICAgIG9wZXJhdG9yIE5TVVJMKigpIGNvbnN0OwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAkocmV2aXNpb24g
ODcxNjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNl
bmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JN
KFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNEYXRhOwogI2Vs
c2UKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIAogICAgIH5TaGFyZWRCdWZmZXIoKTsK
ICAgICAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0o
UVQpICYmIFVTRShRVEtJVCkpCiAgICAgTlNEYXRhICpjcmVhdGVOU0RhdGEoKTsKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHdyYXBOU0RhdGEoTlNEYXRhICpkYXRhKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwCShyZXZp
c2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAgQ0ZVUkxSZWYgS1VSTDo6Y3JlYXRlQ0ZV
UkwoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiAhKFBMQVRGT1JNKFFUKSAm
JiBVU0UoUVRLSVQpKQogU3RyaW5nIEtVUkw6OmZpbGVTeXN0ZW1QYXRoKCkgY29uc3QKIHsKICAg
ICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNmVVJMKEFkb3B0Q0YsIGNyZWF0ZUNGVVJMKCkpOwpAQCAt
OTEsNSArOTIsNSBAQCBTdHJpbmcgS1VSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAogI2VuZGlm
CiAgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZVUkxDb3B5Rmls
ZVN5c3RlbVBhdGgoY2ZVUkwuZ2V0KCksIHBhdGhTdHlsZSkpLmdldCgpOwogfQotCisjZW5kaWYK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5j
cHAJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVk
QnVmZmVyQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIFNoYXJlZEJ1ZmZl
cjo6U2hhcmVkQnVmZmVyKENGRGF0YVJlZiBjZkQKIAogLy8gTWFjIGlzIGEgQ0YgcGxhdGZvcm0g
YnV0IGhhcyBhbiBldmVuIG1vcmUgZWZmaWNpZW50IHZlcnNpb24gb2YgdGhpcyBtZXRob2QsCiAv
LyBzbyBvbmx5IHVzZSB0aGlzIHZlcnNpb24gZm9yIG5vbi1NYWMKLSNpZiAhUExBVEZPUk0oTUFD
KQorI2lmICFQTEFURk9STShNQUMpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBD
RkRhdGFSZWYgU2hhcmVkQnVmZmVyOjpjcmVhdGVDRkRhdGEoKQogewogICAgIGlmIChtX2NmRGF0
YSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXpl
LmgJKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKIHR5cGVkZWYgc3Ry
dWN0IENHU2l6ZSBDR1NpemU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJ
VCkpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5
cGVkZWYgc3RydWN0IENHU2l6ZSBOU1NpemU7CiAjZWxzZQpAQCAtOTcsNyArOTcsNyBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0o
Q0hST01JVU0pICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkg
JiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGV4cGxp
Y2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRs
eSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgJKHJldmlz
aW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1JlY3Qg
Q0dSZWN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlV
TSkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlV
TSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVm
IE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVj
dCBDR1JlY3QgTlNSZWN0OwogI2Vsc2UKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0p
ICYmIE9TKERBUldJTikpCisgICAgICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFS
V0lOKSkgIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBvcGVyYXRvciBOU1Jl
Y3QoKSBjb25zdDsKICNlbmRpZgogCkBAIC0yNDIsNyArMjQyLDcgQEAgSW50UmVjdCBlbmNsb3Np
bmdJbnRSZWN0KGNvbnN0IENHUmVjdCYpOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykpIFwK
LSAgICAgICAgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorICAgICAgICB8
fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYg
VVNFKFFUS0lUKSkKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmKTsKICNl
bmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5o
CShyZXZpc2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
dFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogdHlwZWRlZiBzdHJ1Y3Qg
Q0dTaXplIENHU2l6ZTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgTlNT
aXplOwogI2Vsc2UKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dT
aXplKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNH
RU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCisjaWYgKFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKSkgJiYgIWRlZmluZWQoTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCiAgICAgZXhwbGljaXQgSW50U2l6ZShj
b25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxv
c3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9u
IDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQ
TEFURk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIgogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgpAQCAtNjIsNyArNjIsNyBA
QAogI2lmIFVTRShRVF9NVUxUSU1FRElBKSAmJiAhVVNFKEdTVFJFQU1FUikKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVRdC5oIgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NO
YW1lIE1lZGlhUGxheWVyUHJpdmF0ZVF0Ci0jZWxpZiAhVVNFKEdTVFJFQU1FUikKKyNlbGlmICFV
U0UoR1NUUkVBTUVSKSAmJiAhVVNFKFFUS0lUKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZVBob25vbi5oIgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZVBob25vbgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRTaXplQ0cuY3BwCShyZXZpc2lvbiA4NzE2MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgogCi0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01F
KQorI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkgfHwgKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogCiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNh
dGlvblNlcnZpY2VzLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ludFJlY3RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcAkocmV2aXNpb24gODcxNjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogCi0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKQorI2lmIFVTRShDRykg
fHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQp
KQogCiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCShyZXZpc2lvbiA4NzE2MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw4IEBACiBAY2xhc3MgUVRWaWRlb1Jl
bmRlcmVyV2ViS2l0T25seTsKIEBjbGFzcyBXZWJDb3JlTW92aWVPYnNlcnZlcjsKICNlbHNlCitj
bGFzcyBOU0RpY3Rpb25hcnk7CitjbGFzcyBOU011dGFibGVEaWN0aW9uYXJ5OwogY2xhc3MgUVRN
b3ZpZTsKIGNsYXNzIFFUTW92aWVWaWV3OwogY2xhc3MgUVRUaW1lOwpAQCAtMTM3LDcgKzEzOSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKIAog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBib29sIHN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsKICAgICB2b2lkIGFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0JKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJEb2N1bWVudExvYWRlci5oIgogI2ltcG9ydCAiRnJh
bWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgorI2ltcG9ydCAiSG9zdFdpbmRvdy5oIgogI2lt
cG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJLVVJMLmgiCiAjaW1wb3J0ICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCkBAIC01OSw3ICs2MCw2IEBACiAjaW1wb3J0ICJSZW5kZXJTdHlsZS5o
IgogI2VuZGlmCiAKLQogU09GVF9MSU5LX0ZSQU1FV09SSyhRVEtpdCkKIAogU09GVF9MSU5LKFFU
S2l0LCBRVE1ha2VUaW1lLCBRVFRpbWUsIChsb25nIGxvbmcgdGltZVZhbHVlLCBsb25nIHRpbWVT
Y2FsZSksICh0aW1lVmFsdWUsIHRpbWVTY2FsZSkpCkBAIC00NTUsOCArNDU1LDExIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW8KIAogICAgIG1fcXRNb3ZpZVZpZXcu
YWRvcHROUyhbW1FUTW92aWVWaWV3IGFsbG9jXSBpbml0XSk7CiAgICAgc2V0U2l6ZShtX3BsYXll
ci0+c2l6ZSgpKTsKLSAgICBOU1ZpZXcqIHBhcmVudFZpZXcgPSBtX3BsYXllci0+ZnJhbWVWaWV3
KCktPmRvY3VtZW50VmlldygpOworICAgIE5TVmlldyogcGFyZW50VmlldyA9IDA7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgIHBhcmVudFZpZXcgPSBtX3BsYXllci0+ZnJhbWVWaWV3KCktPmRvY3Vt
ZW50VmlldygpOwogICAgIFtwYXJlbnRWaWV3IGFkZFN1YnZpZXc6bV9xdE1vdmllVmlldy5nZXQo
KV07CisjZW5kaWYKICAgICBbbV9xdE1vdmllVmlldy5nZXQoKSBzZXREZWxlZ2F0ZTptX29iamNP
YnNlcnZlci5nZXQoKV07CiAgICAgW21fb2JqY09ic2VydmVyLmdldCgpIHNldFZpZXc6bV9xdE1v
dmllVmlldy5nZXQoKV07CiAgICAgW21fcXRNb3ZpZVZpZXcuZ2V0KCkgc2V0TW92aWU6bV9xdE1v
dmllLmdldCgpXTsKQEAgLTQ5Myw3ICs0OTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpjcmVhdGVRVFZpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICAvLyBhc3NvY2lhdGUg
b3VyIG1vdmllIHdpdGggb3VyIGluc3RhbmNlIG9mIFFUVmlkZW9SZW5kZXJlcldlYktpdE9ubHkK
LSAgICBbKGlkPFdlYktpdFZpZGVvUmVuZGVyaW5nRGV0YWlscz4pbV9xdFZpZGVvUmVuZGVyZXIu
Z2V0KCkgc2V0TW92aWU6bV9xdE1vdmllLmdldCgpXTsgICAgCisgICAgWyhpZDxXZWJLaXRWaWRl
b1JlbmRlcmluZ0RldGFpbHM+KW1fcXRWaWRlb1JlbmRlcmVyLmdldCgpIHNldE1vdmllOm1fcXRN
b3ZpZS5nZXQoKV07CiAKICAgICBpZiAocmVuZGVyZXJNb2RlID09IFFUVmlkZW9SZW5kZXJlck1v
ZGVMaXN0ZW5zRm9yTmV3SW1hZ2VzKSB7CiAgICAgICAgIC8vIGxpc3RlbiB0byBRVFZpZGVvUmVu
ZGVyZXJXZWJLaXRPbmx5J3MgUVRWaWRlb1JlbmRlcmVyV2ViS2l0T25seU5ld0ltYWdlRGlkQmVj
b21lQXZhaWxhYmxlTm90aWZpY2F0aW9uCkBAIC01MjIsNyArNTI1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6ZGVzdHJveVFUVgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpjcmVhdGVRVE1vdmllTGF5ZXIoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkpCiAgICAgaWYgKCFtX3F0TW92aWUpCiAgICAgICAgIHJldHVybjsKIApA
QCAtNTczLDcgKzU3Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVJlbmRlcmlu
Z00KICAgICBpZiAoIW1fcGxheWVyLT5mcmFtZVZpZXcoKSB8fCAhbV9xdE1vdmllKQogICAgICAg
ICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgIShQTEFURk9STShR
VCkgJiYgVVNFKFFUS0lUKSkKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
ICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdN
b3ZpZUxheWVyOwogI2VuZGlmCkBAIC03MDIsNyArNzA1LDExIEBAIFBsYXRmb3JtTWVkaWEgTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcigp
IGNvbnN0CiB7CisjaWYgUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkKKyAgICByZXR1cm4gMDsK
KyNlbHNlCiAgICAgcmV0dXJuIG1fcXRWaWRlb0xheWVyLmdldCgpOworI2VuZGlmCiB9CiAjZW5k
aWYKIApAQCAtMTIxMiw3ICsxMjE5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
ZGlkRW5kKCkKICAgICBtX3BsYXllci0+dGltZUNoYW5nZWQoKTsKIH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
ICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWYgZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCiBzdGF0aWMgYm9vbCBsYXllcklzRGVzY2VuZGVudE9mKFBsYXRmb3JtTGF5
ZXIqIGNoaWxkLCBQbGF0Zm9ybUxheWVyKiBkZXNjZW5kZW50KQogewpAQCAtMTMyNywxNCArMTMz
NCwyNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwYWludChHcmFwCiAKICAgICBb
bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0RGVsYXlDYWxsYmFja3M6WUVTXTsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgTlNHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRleHQ7
CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yKDEuMGYsIC0xLjBmKTsKKyAgICBJbnRSZWN0IHBh
aW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyLndpZHRoKCksIHIuaGVpZ2h0KCkpKTsK
KworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgQ0dDb250ZXh0UmVmIGNnQ29u
dGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJy
ZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7CisgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0Nv
bnRleHQpOworICAgIENHQ29udGV4dFNldEludGVycG9sYXRpb25RdWFsaXR5KGNnQ29udGV4dCwg
a0NHSW50ZXJwb2xhdGlvbkxvdyk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4
dCwgci54KCksIHIueSgpICsgci5oZWlnaHQoKSk7CisgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dD
b250ZXh0LCBzY2FsZUZhY3Rvci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSk7CisKKyAg
ICBuZXdDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyNlbHNl
CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKICAg
ICBjb250ZXh0LT50cmFuc2xhdGUoci54KCksIHIueSgpICsgci5oZWlnaHQoKSk7Ci0gICAgY29u
dGV4dC0+c2NhbGUoRmxvYXRTaXplKDEuMGYsIC0xLjBmKSk7CisgICAgY29udGV4dC0+c2NhbGUo
c2NhbGVGYWN0b3IpOwogICAgIGNvbnRleHQtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHko
SW50ZXJwb2xhdGlvbkxvdyk7Ci0gICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCks
IEludFNpemUoci53aWR0aCgpLCByLmhlaWdodCgpKSk7Ci0gICAgCi0gICAgTlNHcmFwaGljc0Nv
bnRleHQqIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0
aEdyYXBoaWNzUG9ydDpjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOk5PXTsKIAor
ICAgIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdy
YXBoaWNzUG9ydDpjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOk5PXTsKKyNlbmRp
ZgogICAgIC8vIGRyYXcgdGhlIGN1cnJlbnQgdmlkZW8gZnJhbWUKICAgICBpZiAocXRWaWRlb1Jl
bmRlcmVyKSB7CiAgICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07
CkBAIC0xMzg4LDcgKzE0MDcsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwYWlu
dChHcmFwCiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKLQorI2lmIFBMQVRGT1JNKFFUKSAmJiBV
U0UoUVRLSVQpCisgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOworI2VuZGlm
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0
KCkgc2V0RGVsYXlDYWxsYmFja3M6Tk9dOwogfQpAQCAtMTU5Myw3ICsxNjE0LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2F3VW5zdXBwbwogICAgIG1fcGxheWVyLT5tZWRpYVBs
YXllckNsaWVudCgpLT5tZWRpYVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKG1fcGxheWVyKTsK
IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29u
c3QKIHsKICAgICByZXR1cm4gaXNSZWFkeUZvclZpZGVvU2V0dXAoKSAmJiBnZXRRVE1vdmllTGF5
ZXJDbGFzcygpICE9IE5pbDsKQEAgLTE3NDQsNyArMTc2NSw3IEBAIC0gKHZvaWQpbmV3SW1hZ2VB
dmFpbGFibGU6KE5TTm90aWZpY2F0aW8KIAogLSAodm9pZClsYXllckhvc3RDaGFuZ2VkOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQp
ICYmIFVTRShRVEtJVCkpCiAgICAgQ0FMYXllciogcm9vdExheWVyID0gc3RhdGljX2Nhc3Q8Q0FM
YXllcio+KFtub3RpZmljYXRpb24gb2JqZWN0XSk7CiAgICAgbV9jYWxsYmFjay0+bGF5ZXJIb3N0
Q2hhbmdlZChyb290TGF5ZXIpOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9LVVJMTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9LVVJMTWFjLm1tCShyZXZpc2lvbiA4NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9LVVJMTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0
ICJLVVJMLmgiCiAKICNpbXBvcnQgIkZvdW5kYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPENvcmVG
b3VuZGF0aW9uL0NGVVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tCShyZXZpc2lvbiA4
NzE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDExIEBAIC0gKGlkKWluaXRXaXRoU2hhcmVkQnVm
ZmVyOihTaGFyZWRCdWZmZXIKICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOworI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZCgpOworI2Vsc2UKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOworI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5h
bGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApAQCAtMTA3LDcgKzExMSw3IEBAIENGRGF0YVJl
ZiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUNGRGF0YSgpCiAgICAgCiAgICAgcmV0dXJuIChDRkRhdGFS
ZWYpUmV0YWluUHRyPFdlYkNvcmVTaGFyZWRCdWZmZXJEYXRhPihBZG9wdE5TLCBbW1dlYkNvcmVT
aGFyZWRCdWZmZXJEYXRhIGFsbG9jXSBpbml0V2l0aFNoYXJlZEJ1ZmZlcjp0aGlzXSkucmVsZWFz
ZVJlZigpOwogfQotCisjaWYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShj
b25zdCBTdHJpbmcmIGZpbGVQYXRoKQogewogICAgIE5TRGF0YSAqcmVzb3VyY2VEYXRhID0gW05T
RGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZGaWxlOmZpbGVQYXRoXTsKQEAgLTExNSw2ICsxMTksNiBA
QCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjCiAgICAgICAgIHJldHVy
biBTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEocmVzb3VyY2VEYXRhKTsKICAgICByZXR1cm4gMDsK
IH0KLQorI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlT2JqQ0V4dHJhcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZU9iakNFeHRyYXMubW0JKHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU9iakNF
eHRyYXMuaCIKIAorI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8b2JqYy9vYmpjLWF1dG8u
aD4KICNpbmNsdWRlIDxvYmpjL29iamMtcnVudGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcx
IEBACisvKgorICogQ29weXJpZ2h0IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYkNvcmVTeXN0ZW1J
bnRlcmZhY2VfaAorI2RlZmluZSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlX2gKKworI2luY2x1ZGUg
PG9iamMvb2JqYy5oPgorCisjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMKK3R5cGVkZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsKK3R5cGVkZWYgc3RydWN0
IENHUmVjdCBOU1JlY3Q7CisjZWxzZQordHlwZWRlZiBzdHJ1Y3QgX05TUG9pbnQgTlNQb2ludDsK
K3R5cGVkZWYgc3RydWN0IF9OU1JlY3QgTlNSZWN0OworI2VuZGlmCisKKyNpZmRlZiBfX09CSkNf
XworQGNsYXNzIE5TQXJyYXk7CitAY2xhc3MgTlNTdHJpbmc7CitAY2xhc3MgUVRNb3ZpZTsKK0Bj
bGFzcyBRVE1vdmllVmlldzsKKyNlbHNlCitjbGFzcyBOU0FycmF5OworY2xhc3MgTlNTdHJpbmc7
CitjbGFzcyBRVE1vdmllOworY2xhc3MgUVRNb3ZpZVZpZXc7CisjZW5kaWYKKworZXh0ZXJuICJD
IiB7CisKKy8vIEluIGFscGhhYmV0aWNhbCBvcmRlci4KK2V4dGVybiB1bnNpZ25lZCAoKndrUVRJ
bmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5cGVzKSh2b2lkKTsKK2V4dGVybiBpbnQgKCp3a1FU
TW92aWVEYXRhUmF0ZSkoUVRNb3ZpZSopOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVEaXNhYmxl
Q29tcG9uZW50KSh1aW50MzJfdFs1XSk7CitleHRlcm4gZmxvYXQgKCp3a1FUTW92aWVNYXhUaW1l
TG9hZGVkKShRVE1vdmllKik7CitleHRlcm4gTlNTdHJpbmcgKigqd2tRVE1vdmllTWF4VGltZUxv
YWRlZENoYW5nZU5vdGlmaWNhdGlvbikodm9pZCk7CitleHRlcm4gZmxvYXQgKCp3a1FUTW92aWVN
YXhUaW1lU2Vla2FibGUpKFFUTW92aWUqKTsKK2V4dGVybiBpbnQgKCp3a1FUTW92aWVHZXRUeXBl
KShRVE1vdmllKik7CitleHRlcm4gQk9PTCAoKndrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKShR
VE1vdmllKik7CitleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyko
UVRNb3ZpZSosIEJPT0wpOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRB
bHRlcm5hdGVzKShRVE1vdmllKik7CitleHRlcm4gdm9pZCAoKndrUVRNb3ZpZVZpZXdTZXREcmF3
U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcqLCBCT09MKTsKK2V4dGVybiBOU0FycmF5ICooKndr
UVRHZXRTaXRlc0luTWVkaWFEb3dubG9hZENhY2hlKSgpOworZXh0ZXJuIHZvaWQgKCp3a1FUQ2xl
YXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7CitleHRlcm4gdm9p
ZCAoKndrUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSkoKTsKKworfQorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBDb21wdXRlciwg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgorCit1bnNpZ25lZCAoKndrUVRJbmNsdWRlT25seU1vZGVybk1lZGlhRmlsZVR5
cGVzKSh2b2lkKTsKK2ludCAoKndrUVRNb3ZpZURhdGFSYXRlKShRVE1vdmllKik7Cit2b2lkICgq
d2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudCkodWludDMyX3RbNV0pOworZmxvYXQgKCp3a1FUTW92
aWVNYXhUaW1lTG9hZGVkKShRVE1vdmllKik7CitOU1N0cmluZyAqKCp3a1FUTW92aWVNYXhUaW1l
TG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKSh2b2lkKTsKK2Zsb2F0ICgqd2tRVE1vdmllTWF4VGlt
ZVNlZWthYmxlKShRVE1vdmllKik7CitpbnQgKCp3a1FUTW92aWVHZXRUeXBlKShRVE1vdmllKik7
CitCT09MICgqd2tRVE1vdmllSGFzQ2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqKTsKK3ZvaWQgKCp3
a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqLCBCT09MKTsKK3ZvaWQgKCp3
a1FUTW92aWVTZWxlY3RQcmVmZXJyZWRBbHRlcm5hdGVzKShRVE1vdmllKik7Cit2b2lkICgqd2tR
VE1vdmllVmlld1NldERyYXdTeW5jaHJvbm91c2x5KShRVE1vdmllVmlldyosIEJPT0wpOworTlNB
cnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSkoKTsKK3ZvaWQgKCp3a1FU
Q2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKShOU1N0cmluZyAqc2l0ZSk7Cit2b2lkICgq
d2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKSgpOworCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2
aXNpb24gODcxOTYpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI0IEBACisyMDExLTA1LTI0ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1l
bmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gRW5hYmxlIHVzYWdlIG9mIFF1aWNrVGltZSBtZWRpYXBsYXllciBm
b3IgdGhlIFF0IHBvcnQgb24gTWFjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjEyNzkKKworICAgICAgICBFbmFibGUgdGhlIHVzYWdlIG9mIFF1aWNr
VGltZSBiYWNrZW5kIGZvciB0aGUgUXQgcG9ydC4gSXQgY2FuIGJlIGVuYWJsZWQgYnkKKyAgICAg
ICAgcGFzc2luZyBERUZJTkVTKz1VU0VfUVRLSVQ9MSB3aGVuIGNhbGxpbmcgYnVpbGQtd2Via2l0
LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0
ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBRdFdlYktpdC5wcm86CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OnJlcXVpcmVzRnVsbFNjcmVlbkZvclZpZGVvUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmlzVmFsaWQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06IEFkZGVkLgorICAgICAg
ICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgorCiAyMDExLTA1LTIzICBMdWl6IEFnb3N0
aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwkocmV2aXNpb24gODcxNjAp
CisrKyBTb3VyY2UvV2ViS2l0L3F0L1F0V2ViS2l0LnBybwkod29ya2luZyBjb3B5KQpAQCAtMjE1
LDcgKzIxNSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU4KIH0K
IAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKLSAgICAhY29udGFpbnMoREVG
SU5FUywgVVNFX0dTVFJFQU1FUj0xKTpjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVk
aWEpIHsKKyAgICAhY29udGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpOiFjb250YWlucyhERUZJ
TkVTLCBVU0VfR1NUUkVBTUVSPTEpOmNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGltZWRp
YSkgewogICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5W
aWRlb1dpZGdldC5oCiAgICAgICAgIFNPVVJDRVMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVs
bFNjcmVlblZpZGVvV2lkZ2V0LmNwcAogICAgIH0KQEAgLTIyNCw2ICsyMjQsMjQgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgSEVBREVSUyArPSAkJFBXRC9X
ZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5oCiAgICAgICAgIFNPVVJDRVMgKz0gJCRQ
V0QvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCiAgICAgfQorCisgICAgY29u
dGFpbnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRT
T1VSQ0VfRElSL1dlYkNvcmUvcGxhdGZvcm0vcXQvCisgICAgICAgIElOQ0xVREVQQVRIICs9ICQk
U09VUkNFX0RJUi8uLi9XZWJLaXRMaWJyYXJpZXMvCisgICAgICAgIERFRklORVMrPU5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgICAgIEhFQURFUlMgKz0gJCRQ
V0QvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKKyAgICAgICAgU09VUkNFUyAr
PSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKyAgICAgICAgIyBX
ZSBjYW4ga25vdyB0aGUgTWFjIE9TIHZlcnNpb24gYnkgdXNpbmcgdGhlIERhcndpbiBtYWpvciB2
ZXJzaW9uCisgICAgICAgIERBUldJTl9WRVJTSU9OID0gJCRzcGxpdChRTUFLRV9IT1NULnZlcnNp
b24sICIuIikKKyAgICAgICAgREFSV0lOX01BSk9SX1ZFUlNJT04gPSAkJGZpcnN0KERBUldJTl9W
RVJTSU9OKQorICAgICAgICBlcXVhbHMoREFSV0lOX01BSk9SX1ZFUlNJT04sICIxMCIpIHsKKyAg
ICAgICAgICAgIExJQlMrPSAkJFNPVVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldlYktp
dFN5c3RlbUludGVyZmFjZVNub3dMZW9wYXJkLmEgLWZyYW1ld29yayBTZWN1cml0eQorICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgZXF1YWxzKERBUldJTl9NQUpPUl9WRVJTSU9OLCAiOSIp
IHsKKyAgICAgICAgICAgICAgICBMSUJTKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmll
cy9saWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VMZW9wYXJkLmEgLWZyYW1ld29yayBTZWN1cml0eQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogfQogCiBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfSUNPTkRBVEFCQVNFPTEpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJ
KHJldmlzaW9uIDg3MTYwKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDkgQEAKICNlbmRpZiAvLyBRX09TX1dJTjMyCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgiCisjaWYgVVNFKFFUS0lUKQorI2luY2x1ZGUgIldlYlN5c3RlbUludGVyZmFjZS5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQu
aCIKICNpbmNsdWRlICJydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaCIKQEAgLTMxNyw2ICsz
MjAsMTAgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZwogCiAgICAg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CiAKKyNpZiBVU0UoUVRLSVQpCisg
ICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsKKyNlbmRpZgorCiAgICAgUGFnZTo6UGFn
ZUNsaWVudHMgcGFnZUNsaWVudHM7CiAgICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3
IENocm9tZUNsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0g
bmV3IENvbnRleHRNZW51Q2xpZW50UXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCShyZXZpc2lvbiA4NzE2
MCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsMTEgKzE2MiwxMCBAQCBGdWxsU2NyZWVuVmlkZW9R
dDo6fkZ1bGxTY3JlZW5WaWRlb1F0KCkKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVs
bFNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBRX0FTU0VSVChub2RlKTsKLSAgICBR
X0FTU0VSVChtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXIpOwotCiAgICAgbV92aWRlb0VsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSk7CiAKICNpZiBVU0UoUVRfTVVM
VElNRURJQSkKKyAgICBRX0FTU0VSVChtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXIpOwogICAgIEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1l
bnQqPihub2RlKTsKICAgICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0VsZW1l
bnQtPnBsYXRmb3JtTWVkaWEoKTsKIApAQCAtMjM2LDYgKzIzNSw4IEBAIGJvb2wgRnVsbFNjcmVl
blZpZGVvUXQ6OnJlcXVpcmVzRnVsbFNjcmUKICNlbmRpZgogI2lmIFVTRShHU1RSRUFNRVIpCiAg
ICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KIApA
QCAtMjQ2LDYgKzI0Nyw4IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvUXQ6OmlzVmFsaWQoKSBjb25z
dAogI2VuZGlmCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICByZXR1cm4gbV9GdWxsU2NyZWVuVmlk
ZW9IYW5kbGVyR1N0cmVhbWVyOworI2Vsc2UKKyAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1dlYlN5c3RlbUludGVyZmFjZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisv
KgorICogQ29weXJpZ2h0IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK3ZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV2ViU3lzdGVtSW50
ZXJmYWNlLmgiCisKKy8vIE5lZWRlZCBmb3IgYnVpbGRzIG5vdCB1c2luZyBQQ0ggdG8gZXhwb3Nl
IEJVSUxESU5HXyBtYWNyb3MsIHNlZSBidWcgMzI3NTMuCisjaW5jbHVkZSA8d3RmL1BsYXRmb3Jt
Lmg+CisKKyNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgorCisjZGVmaW5lIElOSVQoZnVuY3Rpb24pIHdrIyNmdW5jdGlv
biA9IFdLIyNmdW5jdGlvbgorCit2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQp
Cit7CisgICAgc3RhdGljIGJvb2wgZGlkSW5pdDsKKyAgICBpZiAoZGlkSW5pdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgSU5JVChRVEluY2x1ZGVPbmx5TW9kZXJuTWVkaWFGaWxlVHlwZXMpOwor
ICAgIElOSVQoUVRNb3ZpZURhdGFSYXRlKTsKKyAgICBJTklUKFFUTW92aWVEaXNhYmxlQ29tcG9u
ZW50KTsKKyAgICBJTklUKFFUTW92aWVNYXhUaW1lTG9hZGVkKTsKKyAgICBJTklUKFFUTW92aWVN
YXhUaW1lTG9hZGVkQ2hhbmdlTm90aWZpY2F0aW9uKTsKKyAgICBJTklUKFFUTW92aWVNYXhUaW1l
U2Vla2FibGUpOworICAgIElOSVQoUVRNb3ZpZUdldFR5cGUpOworICAgIElOSVQoUVRNb3ZpZUhh
c0Nsb3NlZENhcHRpb25zKTsKKyAgICBJTklUKFFUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMp
OworICAgIElOSVQoUVRNb3ZpZVNlbGVjdFByZWZlcnJlZEFsdGVybmF0ZXMpOworICAgIElOSVQo
UVRNb3ZpZVZpZXdTZXREcmF3U3luY2hyb25vdXNseSk7CisgICAgSU5JVChRVEdldFNpdGVzSW5N
ZWRpYURvd25sb2FkQ2FjaGUpOworICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZUZv
clNpdGUpOworICAgIElOSVQoUVRDbGVhck1lZGlhRG93bmxvYWRDYWNoZSk7CisKKyAgICBkaWRJ
bml0ID0gdHJ1ZTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94803</attachid>
            <date>2011-05-25 10:19:13 -0700</date>
            <delta_ts>2011-05-25 12:22:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-61279-20110525141909.patch</filename>
            <type>text/plain</type>
            <size>35951</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MzAxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjUgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFtRdF0gRW5hYmxlIHVzYWdlIG9mIFF1aWNrVGlt
ZSBtZWRpYXBsYXllciBmb3IgdGhlIFF0IHBvcnQgb24gTWFjLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyNzkKKworICAgICAgICBFbmFibGUgdGhl
IFF1aWNrVGltZSBiYWNrZW5kIGZvciB0aGUgUXQgcG9ydCBvbiBNYWMuIFRoZSBwYXRjaCBhZGRz
IHRoZSBiaXRzIGluIFdlYkNvcmUKKyAgICAgICAgdG8gZW5hYmxlIHRoZSBRVEtpdCBiYWNrZW5k
IG9mIHRoZSBNYWMgcG9ydC4gSXQgY2FuIGJlIGVuYWJsZWQgYnkgcGFzc2luZyBERUZJTkVTKz1V
U0VfUVRLSVQ9MQorICAgICAgICB3aGVuIGNhbGxpbmcgYnVpbGQtd2Via2l0LgorCisgICAgICAg
ICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogZmVhdHVy
ZXMucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW50UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZVZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUVmlkZW9SZW5kZXJlcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZUxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwcmVmZXJyZWRSZW5kZXJpbmdN
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwYWludCk6
CisgICAgICAgICgtW1dlYkNvcmVNb3ZpZU9ic2VydmVyIGxheWVySG9zdENoYW5nZWQ6XSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL0tVUkxNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NoYXJlZEJ1ZmZlck1hYy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVNoYXJlZEJ1ZmZlckRhdGEg
aW5pdGlhbGl6ZV0pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5t
bToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06IEFkZGVk
LgorCiAyMDExLTA1LTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODcyMjkuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnByaQkocmV2aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQko
d29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0MywxNiBAQCBjb250YWlucyhERUZJTkVTLCBXVEZf
VVNFX1FUX0JFQVJFUj0xKSB7CiB9CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0x
KSB7Ci0gICAgY29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7CisgICAgY29udGFp
bnMoREVGSU5FUywgVVNFX1FUS0lUPTEpIHsKKyAgICAgICAgREVGSU5FUyArPSBXVEZfVVNFX1FU
S0lUPTEKKworICAgICAgICBJTkNMVURFUEFUSCArPSAkJFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMKKworICAgICAgICBMSUJTICs9IC1mcmFtZXdvcmsgQXBwS2l0IC1mcmFtZXdvcmsgQXVkaW9V
bml0IFwKKyAgICAgICAgICAgICAgICAtZnJhbWV3b3JrIEF1ZGlvVG9vbGJveCAtZnJhbWV3b3Jr
IENvcmVBdWRpbyBcCisgICAgICAgICAgICAgICAgLWZyYW1ld29yayBRdWFydHpDb3JlIC1mcmFt
ZXdvcmsgUVRLaXQKKworICAgIH0gZWxzZTpjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVS
PTEpIHsKICAgICAgICAgREVGSU5FUyArPSBXVEZfVVNFX0dTVFJFQU1FUj0xCiAgICAgICAgIERF
RklORVMgKz0gRU5BQkxFX0dMSUJfU1VQUE9SVD0xCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZp
c2lvbiA4NzMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTYwLDcgKzI5NjAsMzEgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEp
IHsKICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAKICAgICB9
CiAKLSAgICBjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpIHsKKyAgICBjb250YWlu
cyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgeworICAgICAgICBIRUFERVJTICs9IFwKKyAgICAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIFwKKyAg
ICAgICAgICAgIHBsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5oIFwKKyAgICAgICAgICAg
IHBsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBcCisgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLmggXAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dl
YkNvcmVPYmpDRXh0cmFzLmgKKyAgICAgICAgU09VUkNFUyArPSBcCisgICAgICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gXAorICAgICAgICAg
ICAgcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbSBcCisgICAgICAgICAgICBwbGF0Zm9y
bS9tYWMvS1VSTE1hYy5tbSBcCisgICAgICAgICAgICBwbGF0Zm9ybS90ZXh0L21hYy9TdHJpbmdN
YWMubW0gXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0U2l6ZU1hYy5t
bSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW50UmVjdE1hYy5tbSBcCisg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwIFwKKyAgICAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcCBcCisgICAgICAgICAgICBw
bGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vY2Yv
S1VSTENGTmV0LmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLm1tIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL21hYy9CbG9ja0V4Y2VwdGlvbnMubW0g
XAorICAgICAgICAgICAgcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tCisKKyAgICAg
ICAgREVGSU5FUys9TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKwor
ICAgIH0gZWxzZTogY29udGFpbnMoREVGSU5FUywgVVNFX0dTVFJFQU1FUj0xKSB7CiAgICAgICAg
IEhFQURFUlMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dP
d25QdHJHU3RyZWFtZXIuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDg3
MzAxKQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQsNyArMTY0LDEyIEBAIHN5bWJpYW58bWFlbW81fG1hZW1vNiB7CiAgICAgREVGSU5FUyAtPSBF
TkFCTEVfVklERU89MQogICAgIERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTAKIAotICAgIGNvbnRh
aW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgeworICAgIGNvbnRhaW5zKERFRklORVMsIFVT
RV9RVEtJVD0xKSB7CisgICAgICAgIERFRklORVMgLT0gRU5BQkxFX1ZJREVPPTAKKyAgICAgICAg
REVGSU5FUyArPSBFTkFCTEVfVklERU89MQorICAgICAgICBERUZJTkVTIC09IFdURl9VU0VfUVRf
TVVMVElNRURJQT0xCisgICAgICAgIERFRklORVMgKz0gV1RGX1VTRV9RVF9NVUxUSU1FRElBPTAK
KyAgICB9IGVsc2U6IGNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSkgewogICAgICAg
ICBERUZJTkVTIC09IEVOQUJMRV9WSURFTz0wCiAgICAgICAgIERFRklORVMgKz0gRU5BQkxFX1ZJ
REVPPTEKICAgICAgICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUX01VTFRJTUVESUE9MQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0tVUkwuaAkocmV2aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9LVVJMLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IF9fQ0ZVUkwqIENGVVJMUmVmOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShN
QUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAj
aWZkZWYgX19PQkpDX18KIEBjbGFzcyBOU1VSTDsKICNlbHNlCkBAIC0yMDIsNyArMjAyLDcgQEAg
cHVibGljOgogICAgIENGVVJMUmVmIGNyZWF0ZUNGVVJMKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYgVVNF
KFFUS0lUKSkKICAgICBLVVJMKE5TVVJMKik7CiAgICAgb3BlcmF0b3IgTlNVUkwqKCkgY29uc3Q7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCShyZXZp
c2lvbiA4NzMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExB
VEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgX19PQkpDX18KIEBjbGFzcyBOU0RhdGE7
CiAjZWxzZQpAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgflNoYXJlZEJ1ZmZl
cigpOwogICAgIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBOU0RhdGEgKmNyZWF0ZU5TRGF0YSgpOwogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gd3JhcE5TRGF0YShOU0RhdGEgKmRhdGEp
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAJ
KHJldmlzaW9uIDg3MzAxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsNyBAQCBDRlVSTFJlZiBLVVJMOjpjcmVh
dGVDRlVSTCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmICEoUExBVEZPUk0o
UVQpICYmIFVTRShRVEtJVCkpCiBTdHJpbmcgS1VSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAog
ewogICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY2ZVUkwoQWRvcHRDRiwgY3JlYXRlQ0ZVUkwoKSk7
CkBAIC05MSw1ICs5Miw1IEBAIFN0cmluZyBLVVJMOjpmaWxlU3lzdGVtUGF0aCgpIGNvbnN0CiAj
ZW5kaWYKICAgICByZXR1cm4gUmV0YWluUHRyPENGU3RyaW5nUmVmPihBZG9wdENGLCBDRlVSTENv
cHlGaWxlU3lzdGVtUGF0aChjZlVSTC5nZXQoKSwgcGF0aFN0eWxlKSkuZ2V0KCk7CiB9Ci0KKyNl
bmRpZgogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0Yu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZl
ckNGLmNwcAkocmV2aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9T
aGFyZWRCdWZmZXJDRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgU2hhcmVk
QnVmZmVyOjpTaGFyZWRCdWZmZXIoQ0ZEYXRhUmVmIGNmRAogCiAvLyBNYWMgaXMgYSBDRiBwbGF0
Zm9ybSBidXQgaGFzIGFuIGV2ZW4gbW9yZSBlZmZpY2llbnQgdmVyc2lvbiBvZiB0aGlzIG1ldGhv
ZCwKIC8vIHNvIG9ubHkgdXNlIHRoaXMgdmVyc2lvbiBmb3Igbm9uLU1hYwotI2lmICFQTEFURk9S
TShNQUMpCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lU
KSkKIENGRGF0YVJlZiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUNGRGF0YSgpCiB7CiAgICAgaWYgKG1f
Y2ZEYXRhKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNp
emUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFNpemUuaAkocmV2aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogdHlwZWRl
ZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAo
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAo
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYgVVNF
KFFUS0lUKSkKICNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsKICNlbHNlCkBAIC05Nyw3ICs5Nyw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9N
RVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSBcCi0gICAgICAgIHx8IChQTEFU
Rk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyAgICAgICAgfHwgKFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAgICAg
ZXhwbGljaXQgRmxvYXRTaXplKGNvbnN0IE5TU2l6ZSAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBs
aWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKICAgICBvcGVyYXRvciBOU1NpemUoKSBjb25zdDsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAko
cmV2aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IENH
UmVjdCBDR1JlY3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENI
Uk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENI
Uk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAj
aWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYg
c3RydWN0IENHUmVjdCBOU1JlY3Q7CiAjZWxzZQpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBF
U19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSBcCi0gICAgICAgIHx8IChQTEFURk9STShDSFJP
TUlVTSkgJiYgT1MoREFSV0lOKSkKKyAgICAgICAgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBP
UyhEQVJXSU4pKSAgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIG9wZXJhdG9y
IE5TUmVjdCgpIGNvbnN0OwogI2VuZGlmCiAKQEAgLTI0Miw3ICsyNDIsNyBAQCBJbnRSZWN0IGVu
Y2xvc2luZ0ludFJlY3QoY29uc3QgQ0dSZWN0Jik7CiAjZW5kaWYKIAogI2lmIChQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVT
KSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisgICAg
ICAgIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFU
KSAmJiBVU0UoUVRLSVQpKQogSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IE5TUmVjdCYp
OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNp
emUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRT
aXplLmgJKHJldmlzaW9uIDg3MzAxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiB0eXBlZGVmIHN0
cnVjdCBDR1NpemUgQ0dTaXplOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExB
VEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgTlNHRU9N
RVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHU2l6
ZSBOU1NpemU7CiAjZWxzZQpAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICBvcGVyYXRv
ciBDR1NpemUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5l
ZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKKyNpZiAoUExBVEZP
Uk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpKSAmJiAhZGVmaW5lZChOU0dF
T01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKICAgICBleHBsaWNpdCBJbnRT
aXplKGNvbnN0IE5TU2l6ZSAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0
J3MgbG9zc3kKICAgICBvcGVyYXRvciBOU1NpemUoKSBjb25zdDsKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAkocmV2
aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlICJNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQor
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgiCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCkBAIC02Miw3ICs2
Miw3IEBACiAjaWYgVVNFKFFUX01VTFRJTUVESUEpICYmICFVU0UoR1NUUkVBTUVSKQogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVF0LmgiCiAjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVD
bGFzc05hbWUgTWVkaWFQbGF5ZXJQcml2YXRlUXQKLSNlbGlmICFVU0UoR1NUUkVBTUVSKQorI2Vs
aWYgIVVTRShHU1RSRUFNRVIpICYmICFVU0UoUVRLSVQpCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlUGhvbm9uLmgiCiAjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVk
aWFQbGF5ZXJQcml2YXRlUGhvbm9uCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAJKHJldmlzaW9uIDg3MzAx
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRTaXplQ0cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRmxvYXRTaXplLmgiCiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19D
SFJPTUUpCisjaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKSB8fCAoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0Fw
cGxpY2F0aW9uU2VydmljZXMuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW50UmVjdENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwCShyZXZpc2lvbiA4NzMwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RDRy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJPTUUpCisjaWYgVVNF
KENHKSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShR
VEtJVCkpCiAKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2Vydmlj
ZXMuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgJKHJldmlzaW9uIDg3MzAx
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDggQEAKIEBjbGFzcyBRVFZp
ZGVvUmVuZGVyZXJXZWJLaXRPbmx5OwogQGNsYXNzIFdlYkNvcmVNb3ZpZU9ic2VydmVyOwogI2Vs
c2UKK2NsYXNzIE5TRGljdGlvbmFyeTsKK2NsYXNzIE5TTXV0YWJsZURpY3Rpb25hcnk7CiBjbGFz
cyBRVE1vdmllOwogY2xhc3MgUVRNb3ZpZVZpZXc7CiBjbGFzcyBRVFRpbWU7CkBAIC04NSw3ICs4
Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIFBs
YXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0OwogI2VuZGlmCiAKQEAgLTEzNyw3ICsxMzksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZP
Uk0oUVQpICYmIFVTRShRVEtJVCkpCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVy
aW5nKCkgY29uc3Q7CiAgICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgp
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCShyZXZpc2lvbiA4
NzMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9y
dCAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZVZp
ZXcuaCIKKyNpbXBvcnQgIkhvc3RXaW5kb3cuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2ltcG9ydCAiS1VSTC5oIgogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgpAQCAtNTks
NyArNjAsNiBAQAogI2ltcG9ydCAiUmVuZGVyU3R5bGUuaCIKICNlbmRpZgogCi0KIFNPRlRfTElO
S19GUkFNRVdPUksoUVRLaXQpCiAKIFNPRlRfTElOSyhRVEtpdCwgUVRNYWtlVGltZSwgUVRUaW1l
LCAobG9uZyBsb25nIHRpbWVWYWx1ZSwgbG9uZyB0aW1lU2NhbGUpLCAodGltZVZhbHVlLCB0aW1l
U2NhbGUpKQpAQCAtNDU1LDggKzQ1NSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpjcmVhdGVRVE1vCiAKICAgICBtX3F0TW92aWVWaWV3LmFkb3B0TlMoW1tRVE1vdmllVmlldyBh
bGxvY10gaW5pdF0pOwogICAgIHNldFNpemUobV9wbGF5ZXItPnNpemUoKSk7Ci0gICAgTlNWaWV3
KiBwYXJlbnRWaWV3ID0gbV9wbGF5ZXItPmZyYW1lVmlldygpLT5kb2N1bWVudFZpZXcoKTsKKyAg
ICBOU1ZpZXcqIHBhcmVudFZpZXcgPSAwOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBwYXJlbnRW
aWV3ID0gbV9wbGF5ZXItPmZyYW1lVmlldygpLT5kb2N1bWVudFZpZXcoKTsKICAgICBbcGFyZW50
VmlldyBhZGRTdWJ2aWV3Om1fcXRNb3ZpZVZpZXcuZ2V0KCldOworI2VuZGlmCiAgICAgW21fcXRN
b3ZpZVZpZXcuZ2V0KCkgc2V0RGVsZWdhdGU6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCldOwogICAgIFtt
X29iamNPYnNlcnZlci5nZXQoKSBzZXRWaWV3Om1fcXRNb3ZpZVZpZXcuZ2V0KCldOwogICAgIFtt
X3F0TW92aWVWaWV3LmdldCgpIHNldE1vdmllOm1fcXRNb3ZpZS5nZXQoKV07CkBAIC00OTMsNyAr
NDk2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRWaQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgLy8gYXNzb2NpYXRlIG91ciBtb3ZpZSB3aXRoIG91ciBpbnN0
YW5jZSBvZiBRVFZpZGVvUmVuZGVyZXJXZWJLaXRPbmx5Ci0gICAgWyhpZDxXZWJLaXRWaWRlb1Jl
bmRlcmluZ0RldGFpbHM+KW1fcXRWaWRlb1JlbmRlcmVyLmdldCgpIHNldE1vdmllOm1fcXRNb3Zp
ZS5nZXQoKV07ICAgIAorICAgIFsoaWQ8V2ViS2l0VmlkZW9SZW5kZXJpbmdEZXRhaWxzPiltX3F0
VmlkZW9SZW5kZXJlci5nZXQoKSBzZXRNb3ZpZTptX3F0TW92aWUuZ2V0KCldOwogCiAgICAgaWYg
KHJlbmRlcmVyTW9kZSA9PSBRVFZpZGVvUmVuZGVyZXJNb2RlTGlzdGVuc0Zvck5ld0ltYWdlcykg
ewogICAgICAgICAvLyBsaXN0ZW4gdG8gUVRWaWRlb1JlbmRlcmVyV2ViS2l0T25seSdzIFFUVmlk
ZW9SZW5kZXJlcldlYktpdE9ubHlOZXdJbWFnZURpZEJlY29tZUF2YWlsYWJsZU5vdGlmaWNhdGlv
bgpAQCAtNTIyLDcgKzUyNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRlc3Ry
b3lRVFYKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZUxheWVy
KCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiAhKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGlm
ICghbV9xdE1vdmllKQogICAgICAgICByZXR1cm47CiAKQEAgLTU3Myw3ICs1NzYsNyBAQCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6TWVkaWFSZW5kZXJpbmdNCiAgICAgaWYgKCFtX3BsYXllci0+
ZnJhbWVWaWV3KCkgfHwgIW1fcXRNb3ZpZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5n
Tm9uZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAgICAg
aWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+bWVkaWFQbGF5
ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVy
KSkKICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW92aWVMYXllcjsKICNlbmRpZgpAQCAt
Njk5LDcgKzcwMiw3IEBAIFBsYXRmb3JtTWVkaWEgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnAK
ICAgICByZXR1cm4gcG07CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiAhKFBMQVRGT1JNKFFUKSAmJiBVU0Uo
UVRLSVQpKQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3F0VmlkZW9MYXllci5nZXQoKTsKQEAgLTEy
MTIsNyArMTIxNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRpZEVuZCgpCiAg
ICAgbV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiAhKFBMQVRGT1JN
KFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmIGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQogc3RhdGljIGJvb2wgbGF5ZXJJc0Rlc2NlbmRlbnRPZihQbGF0Zm9ybUxheWVyKiBjaGlsZCwg
UGxhdGZvcm1MYXllciogZGVzY2VuZGVudCkKIHsKQEAgLTEzMjcsMTQgKzEzMzAsMjggQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGFpbnQoR3JhcAogCiAgICAgW21fb2JqY09ic2Vy
dmVyLmdldCgpIHNldERlbGF5Q2FsbGJhY2tzOllFU107CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIE5TR3JhcGhpY3NDb250ZXh0KiBuZXdDb250ZXh0OworICAgIEZsb2F0
U2l6ZSBzY2FsZUZhY3RvcigxLjBmLCAtMS4wZik7CisgICAgSW50UmVjdCBwYWludFJlY3QoSW50
UG9pbnQoMCwgMCksIEludFNpemUoci53aWR0aCgpLCByLmhlaWdodCgpKSk7CisKKyNpZiBQTEFU
Rk9STShRVCkgJiYgVVNFKFFUS0lUKQorICAgIC8vIEluIFF0LCBHcmFwaGljc0NvbnRleHQgaXMg
YSBRUGFpbnRlciBzbyBldmVyeSB0cmFuc2Zvcm1hdGlvbnMgYXBwbGllZCBvbiBpdCB3b24ndCBt
YXR0ZXIgYmVjYXVzZSBoZXJlCisgICAgLy8gdGhlIHZpZGVvIGlzIHJlbmRlcmVkIGJ5IFF1aWNr
VGltZSBub3QgYnkgUXQuCisgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHN0YXRpY19jYXN0
PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhp
Y3NQb3J0XSk7CisgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOworICAgIENHQ29u
dGV4dFNldEludGVycG9sYXRpb25RdWFsaXR5KGNnQ29udGV4dCwga0NHSW50ZXJwb2xhdGlvbkxv
dyk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgci54KCksIHIueSgpICsg
ci5oZWlnaHQoKSk7CisgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCBzY2FsZUZhY3Rv
ci53aWR0aCgpLCBzY2FsZUZhY3Rvci5oZWlnaHQoKSk7CisKKyAgICBuZXdDb250ZXh0ID0gW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyNlbHNlCiAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKICAgICBjb250ZXh0LT50cmFuc2xh
dGUoci54KCksIHIueSgpICsgci5oZWlnaHQoKSk7Ci0gICAgY29udGV4dC0+c2NhbGUoRmxvYXRT
aXplKDEuMGYsIC0xLjBmKSk7CisgICAgY29udGV4dC0+c2NhbGUoc2NhbGVGYWN0b3IpOwogICAg
IGNvbnRleHQtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7
Ci0gICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoci53aWR0aCgp
LCByLmhlaWdodCgpKSk7Ci0gICAgCi0gICAgTlNHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRleHQg
PSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOk5PXTsKIAorICAgIG5ld0NvbnRleHQgPSBb
TlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOk5PXTsKKyNlbmRpZgogICAgIC8vIGRyYXcgdGhl
IGN1cnJlbnQgdmlkZW8gZnJhbWUKICAgICBpZiAocXRWaWRlb1JlbmRlcmVyKSB7CiAgICAgICAg
IFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07CkBAIC0xMzg4LDcgKzE0MDUs
OSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwYWludChHcmFwCiAgICAgICAgIH0K
ICAgICB9CiAjZW5kaWYKLQorI2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgQ0dD
b250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOworI2VuZGlmCiAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0RGVsYXlDYWxsYmFj
a3M6Tk9dOwogfQpAQCAtMTU5Myw3ICsxNjEyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6c2F3VW5zdXBwbwogICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRp
YVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKG1fcGxheWVyKTsKIH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
ICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXNSZWFkeUZvclZpZGVvU2V0dXAoKSAmJiBnZXRRVE1vdmllTGF5ZXJDbGFzcygpICE9IE5pbDsK
QEAgLTE3NDQsNyArMTc2Myw3IEBAIC0gKHZvaWQpbmV3SW1hZ2VBdmFpbGFibGU6KE5TTm90aWZp
Y2F0aW8KIAogLSAodm9pZClsYXllckhvc3RDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbgogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmICEoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAg
ICAgQ0FMYXllciogcm9vdExheWVyID0gc3RhdGljX2Nhc3Q8Q0FMYXllcio+KFtub3RpZmljYXRp
b24gb2JqZWN0XSk7CiAgICAgbV9jYWxsYmFjay0+bGF5ZXJIb3N0Q2hhbmdlZChyb290TGF5ZXIp
OwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tCShyZXZp
c2lvbiA4NzMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJLVVJMLmgiCiAKICNpbXBv
cnQgIkZvdW5kYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NGVVJMLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tCShyZXZpc2lvbiA4NzMwMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDcgKzQ3LDExIEBAIC0gKGlkKWluaXRXaXRoU2hhcmVkQnVmZmVyOihTaGFyZWRCdWZmZXIK
ICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwor
I2lmIFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpCisgICAgV1RGOjppbml0aWFsaXplTWFpblRo
cmVhZCgpOworI2Vsc2UKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFp
blRocmVhZCgpOworI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChz
ZWxmKTsKIH0KIApAQCAtMTA3LDcgKzExMSw3IEBAIENGRGF0YVJlZiBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZUNGRGF0YSgpCiAgICAgCiAgICAgcmV0dXJuIChDRkRhdGFSZWYpUmV0YWluUHRyPFdlYkNv
cmVTaGFyZWRCdWZmZXJEYXRhPihBZG9wdE5TLCBbW1dlYkNvcmVTaGFyZWRCdWZmZXJEYXRhIGFs
bG9jXSBpbml0V2l0aFNoYXJlZEJ1ZmZlcjp0aGlzXSkucmVsZWFzZVJlZigpOwogfQotCisjaWYg
IShQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBT
aGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQ
YXRoKQogewogICAgIE5TRGF0YSAqcmVzb3VyY2VEYXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRl
bnRzT2ZGaWxlOmZpbGVQYXRoXTsKQEAgLTExNSw2ICsxMTksNiBAQCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjCiAgICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6Ondy
YXBOU0RhdGEocmVzb3VyY2VEYXRhKTsKICAgICByZXR1cm4gMDsKIH0KLQorI2VuZGlmCiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJhcy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRy
YXMubW0JKHJldmlzaW9uIDg3MzAxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVPYmpDRXh0cmFzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAKICNp
bmNsdWRlIDxvYmpjL29iamMtYXV0by5oPgogI2luY2x1ZGUgPG9iamMvb2JqYy1ydW50aW1lLmg+
CisjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENv
cHlyaWdodCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlX2gKKyNk
ZWZpbmUgV2ViQ29yZVN5c3RlbUludGVyZmFjZV9oCisKKyNpbmNsdWRlIDxvYmpjL29iamMuaD4K
KworI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCit0eXBl
ZGVmIHN0cnVjdCBDR1BvaW50IE5TUG9pbnQ7Cit0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0
OworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IF9OU1BvaW50IE5TUG9pbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfTlNSZWN0IE5TUmVjdDsKKyNlbmRpZgorCisjaWZkZWYgX19PQkpDX18KK0BjbGFzcyBOU0Fy
cmF5OworQGNsYXNzIE5TU3RyaW5nOworQGNsYXNzIFFUTW92aWU7CitAY2xhc3MgUVRNb3ZpZVZp
ZXc7CisjZWxzZQorY2xhc3MgTlNBcnJheTsKK2NsYXNzIE5TU3RyaW5nOworY2xhc3MgUVRNb3Zp
ZTsKK2NsYXNzIFFUTW92aWVWaWV3OworI2VuZGlmCisKK2V4dGVybiAiQyIgeworCisvLyBJbiBh
bHBoYWJldGljYWwgb3JkZXIuCitleHRlcm4gdW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rl
cm5NZWRpYUZpbGVUeXBlcykodm9pZCk7CitleHRlcm4gaW50ICgqd2tRVE1vdmllRGF0YVJhdGUp
KFFUTW92aWUqKTsKK2V4dGVybiB2b2lkICgqd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudCkodWlu
dDMyX3RbNV0pOworZXh0ZXJuIGZsb2F0ICgqd2tRVE1vdmllTWF4VGltZUxvYWRlZCkoUVRNb3Zp
ZSopOworZXh0ZXJuIE5TU3RyaW5nICooKndrUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3Rp
ZmljYXRpb24pKHZvaWQpOworZXh0ZXJuIGZsb2F0ICgqd2tRVE1vdmllTWF4VGltZVNlZWthYmxl
KShRVE1vdmllKik7CitleHRlcm4gaW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRNb3ZpZSopOwor
ZXh0ZXJuIEJPT0wgKCp3a1FUTW92aWVIYXNDbG9zZWRDYXB0aW9ucykoUVRNb3ZpZSopOworZXh0
ZXJuIHZvaWQgKCp3a1FUTW92aWVTZXRTaG93Q2xvc2VkQ2FwdGlvbnMpKFFUTW92aWUqLCBCT09M
KTsKK2V4dGVybiB2b2lkICgqd2tRVE1vdmllU2VsZWN0UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRN
b3ZpZSopOworZXh0ZXJuIHZvaWQgKCp3a1FUTW92aWVWaWV3U2V0RHJhd1N5bmNocm9ub3VzbHkp
KFFUTW92aWVWaWV3KiwgQk9PTCk7CitleHRlcm4gTlNBcnJheSAqKCp3a1FUR2V0U2l0ZXNJbk1l
ZGlhRG93bmxvYWRDYWNoZSkoKTsKK2V4dGVybiB2b2lkICgqd2tRVENsZWFyTWVkaWFEb3dubG9h
ZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOworZXh0ZXJuIHZvaWQgKCp3a1FUQ2xlYXJN
ZWRpYURvd25sb2FkQ2FjaGUpKCk7CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgQ29tcHV0ZXIsIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKwor
dW5zaWduZWQgKCp3a1FUSW5jbHVkZU9ubHlNb2Rlcm5NZWRpYUZpbGVUeXBlcykodm9pZCk7Citp
bnQgKCp3a1FUTW92aWVEYXRhUmF0ZSkoUVRNb3ZpZSopOwordm9pZCAoKndrUVRNb3ZpZURpc2Fi
bGVDb21wb25lbnQpKHVpbnQzMl90WzVdKTsKK2Zsb2F0ICgqd2tRVE1vdmllTWF4VGltZUxvYWRl
ZCkoUVRNb3ZpZSopOworTlNTdHJpbmcgKigqd2tRVE1vdmllTWF4VGltZUxvYWRlZENoYW5nZU5v
dGlmaWNhdGlvbikodm9pZCk7CitmbG9hdCAoKndrUVRNb3ZpZU1heFRpbWVTZWVrYWJsZSkoUVRN
b3ZpZSopOworaW50ICgqd2tRVE1vdmllR2V0VHlwZSkoUVRNb3ZpZSopOworQk9PTCAoKndrUVRN
b3ZpZUhhc0Nsb3NlZENhcHRpb25zKShRVE1vdmllKik7Cit2b2lkICgqd2tRVE1vdmllU2V0U2hv
d0Nsb3NlZENhcHRpb25zKShRVE1vdmllKiwgQk9PTCk7Cit2b2lkICgqd2tRVE1vdmllU2VsZWN0
UHJlZmVycmVkQWx0ZXJuYXRlcykoUVRNb3ZpZSopOwordm9pZCAoKndrUVRNb3ZpZVZpZXdTZXRE
cmF3U3luY2hyb25vdXNseSkoUVRNb3ZpZVZpZXcqLCBCT09MKTsKK05TQXJyYXkgKigqd2tRVEdl
dFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUpKCk7Cit2b2lkICgqd2tRVENsZWFyTWVkaWFEb3du
bG9hZENhY2hlRm9yU2l0ZSkoTlNTdHJpbmcgKnNpdGUpOwordm9pZCAoKndrUVRDbGVhck1lZGlh
RG93bmxvYWRDYWNoZSkoKTsKKwpJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MzAxKQor
KysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
NCBAQAorMjAxMS0wNS0yNSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgW1F0
XSBFbmFibGUgdXNhZ2Ugb2YgUXVpY2tUaW1lIG1lZGlhcGxheWVyIGZvciB0aGUgUXQgcG9ydCBv
biBNYWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MTI3OQorCisgICAgICAgIEVuYWJsZSB0aGUgdXNhZ2Ugb2YgUXVpY2tUaW1lIGJhY2tlbmQgZm9y
IHRoZSBRdCBwb3J0LiBJdCBjYW4gYmUgZW5hYmxlZCBieQorICAgICAgICBwYXNzaW5nIERFRklO
RVMrPVVTRV9RVEtJVD0xIHdoZW4gY2FsbGluZyBidWlsZC13ZWJraXQuCisKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZh
dGUpOgorICAgICAgICAqIFF0V2ViS2l0LnBybzoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
dWxsU2NyZWVuVmlkZW9RdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9R
dDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVu
VmlkZW9RdDo6cmVxdWlyZXNGdWxsU2NyZWVuRm9yVmlkZW9QbGF5YmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpGdWxsU2NyZWVuVmlkZW9RdDo6aXNWYWxpZCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbTogQWRkZWQuCisgICAgICAgIChJbml0V2ViQ29yZVN5
c3RlbUludGVyZmFjZSk6CisKIDIwMTEtMDUtMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvUXRXZWJLaXQucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvUXRX
ZWJLaXQucHJvCShyZXZpc2lvbiA4NzMwMSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQu
cHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNyArMjE1LDcgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX05FVFNDQVBFX1BMVUdJTgogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklE
RU89MSkgewotICAgICFjb250YWlucyhERUZJTkVTLCBVU0VfR1NUUkVBTUVSPTEpOmNvbnRhaW5z
KE1PQklMSVRZX0NPTkZJRywgbXVsdGltZWRpYSkgeworICAgICFjb250YWlucyhERUZJTkVTLCBV
U0VfUVRLSVQ9MSk6IWNvbnRhaW5zKERFRklORVMsIFVTRV9HU1RSRUFNRVI9MSk6Y29udGFpbnMo
TU9CSUxJVFlfQ09ORklHLCBtdWx0aW1lZGlhKSB7CiAgICAgICAgIEhFQURFUlMgKz0gJCRQV0Qv
V2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvV2lkZ2V0LmgKICAgICAgICAgU09VUkNFUyAr
PSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9XaWRnZXQuY3BwCiAgICAgfQpA
QCAtMjI0LDYgKzIyNCwyNCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewog
ICAgICAgICBIRUFERVJTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0
LmgKICAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlk
ZW9RdC5jcHAKICAgICB9CisKKyAgICBjb250YWlucyhERUZJTkVTLCBVU0VfUVRLSVQ9MSkgewor
ICAgICAgICBJTkNMVURFUEFUSCArPSAkJFNPVVJDRV9ESVIvV2ViQ29yZS9wbGF0Zm9ybS9xdC8K
KyAgICAgICAgSU5DTFVERVBBVEggKz0gJCRTT1VSQ0VfRElSLy4uL1dlYktpdExpYnJhcmllcy8K
KyAgICAgICAgREVGSU5FUys9TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMKKyAgICAgICAgSEVBREVSUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UuaAorICAgICAgICBTT1VSQ0VTICs9ICQkUFdEL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQorICAgICAgICAjIFdlIGNhbiBrbm93IHRoZSBNYWMgT1MgdmVyc2lvbiBi
eSB1c2luZyB0aGUgRGFyd2luIG1ham9yIHZlcnNpb24KKyAgICAgICAgREFSV0lOX1ZFUlNJT04g
PSAkJHNwbGl0KFFNQUtFX0hPU1QudmVyc2lvbiwgIi4iKQorICAgICAgICBEQVJXSU5fTUFKT1Jf
VkVSU0lPTiA9ICQkZmlyc3QoREFSV0lOX1ZFUlNJT04pCisgICAgICAgIGVxdWFscyhEQVJXSU5f
TUFKT1JfVkVSU0lPTiwgIjEwIikgeworICAgICAgICAgICAgTElCUys9ICQkU09VUkNFX0RJUi8u
Li9XZWJLaXRMaWJyYXJpZXMvbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlU25vd0xlb3BhcmQuYSAt
ZnJhbWV3b3JrIFNlY3VyaXR5CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcXVhbHMo
REFSV0lOX01BSk9SX1ZFUlNJT04sICI5IikgeworICAgICAgICAgICAgICAgIExJQlMrPSAkJFNP
VVJDRV9ESVIvLi4vV2ViS2l0TGlicmFyaWVzL2xpYldlYktpdFN5c3RlbUludGVyZmFjZUxlb3Bh
cmQuYSAtZnJhbWV3b3JrIFNlY3VyaXR5CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CiB9CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JQ09OREFUQUJBU0U9MSkgewpJbmRleDog
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gODczMDEpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDksOSBA
QAogI2VuZGlmIC8vIFFfT1NfV0lOMzIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpZiBVU0UoUVRLSVQpCisjaW5jbHVkZSAi
V2ViU3lzdGVtSW50ZXJmYWNlLmgiCisjZW5kaWYKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oIgpAQCAtMzE3LDYgKzMyMCwxMCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQ
YWdlUHJpdmF0ZShRV2ViUGFnCiAKICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxp
emUoKTsKIAorI2lmIFVTRShRVEtJVCkKKyAgICBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgp
OworI2VuZGlmCisKICAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBwYWdl
Q2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgQ2hyb21lQ2xpZW50UXQocSk7CiAgICAgcGFnZUNs
aWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBuZXcgQ29udGV4dE1lbnVDbGllbnRRdCgpOwpJbmRl
eDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GdWxsU2NyZWVu
VmlkZW9RdC5jcHAJKHJldmlzaW9uIDg3MzAxKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GdWxsU2NyZWVuVmlkZW9RdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MiwxMSAr
MTYyLDEwIEBAIEZ1bGxTY3JlZW5WaWRlb1F0Ojp+RnVsbFNjcmVlblZpZGVvUXQoKQogdm9pZCBG
dWxsU2NyZWVuVmlkZW9RdDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewog
ICAgIFFfQVNTRVJUKG5vZGUpOwotICAgIFFfQVNTRVJUKG1fRnVsbFNjcmVlblZpZGVvSGFuZGxl
cik7Ci0KICAgICBtX3ZpZGVvRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1lbnQq
Pihub2RlKTsKIAogI2lmIFVTRShRVF9NVUxUSU1FRElBKQorICAgIFFfQVNTRVJUKG1fRnVsbFNj
cmVlblZpZGVvSGFuZGxlcik7CiAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUpOwogICAgIFBsYXRmb3JtTWVkaWEg
cGxhdGZvcm1NZWRpYSA9IHZpZGVvRWxlbWVudC0+cGxhdGZvcm1NZWRpYSgpOwogCkBAIC0yMzYs
NiArMjM1LDggQEAgYm9vbCBGdWxsU2NyZWVuVmlkZW9RdDo6cmVxdWlyZXNGdWxsU2NyZQogI2Vu
ZGlmCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgogfQogCkBAIC0yNDYsNiArMjQ3LDggQEAgYm9vbCBGdWxsU2Ny
ZWVuVmlkZW9RdDo6aXNWYWxpZCgpIGNvbnN0CiAjZW5kaWYKICNpZiBVU0UoR1NUUkVBTUVSKQog
ICAgIHJldHVybiBtX0Z1bGxTY3JlZW5WaWRlb0hhbmRsZXJHU3RyZWFtZXI7CisjZWxzZQorICAg
IHJldHVybiAwOwogI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKwor
dm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgpOwpJbmRleDogU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKworLy8gTmVlZGVkIGZvciBidWls
ZHMgbm90IHVzaW5nIFBDSCB0byBleHBvc2UgQlVJTERJTkdfIG1hY3Jvcywgc2VlIGJ1ZyAzMjc1
My4KKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oPgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKKyNkZWZpbmUg
SU5JVChmdW5jdGlvbikgd2sjI2Z1bmN0aW9uID0gV0sjI2Z1bmN0aW9uCisKK3ZvaWQgSW5pdFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKK3sKKyAgICBzdGF0aWMgYm9vbCBkaWRJbml0Owor
ICAgIGlmIChkaWRJbml0KQorICAgICAgICByZXR1cm47CisKKyAgICBJTklUKFFUSW5jbHVkZU9u
bHlNb2Rlcm5NZWRpYUZpbGVUeXBlcyk7CisgICAgSU5JVChRVE1vdmllRGF0YVJhdGUpOworICAg
IElOSVQoUVRNb3ZpZURpc2FibGVDb21wb25lbnQpOworICAgIElOSVQoUVRNb3ZpZU1heFRpbWVM
b2FkZWQpOworICAgIElOSVQoUVRNb3ZpZU1heFRpbWVMb2FkZWRDaGFuZ2VOb3RpZmljYXRpb24p
OworICAgIElOSVQoUVRNb3ZpZU1heFRpbWVTZWVrYWJsZSk7CisgICAgSU5JVChRVE1vdmllR2V0
VHlwZSk7CisgICAgSU5JVChRVE1vdmllSGFzQ2xvc2VkQ2FwdGlvbnMpOworICAgIElOSVQoUVRN
b3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyk7CisgICAgSU5JVChRVE1vdmllU2VsZWN0UHJlZmVy
cmVkQWx0ZXJuYXRlcyk7CisgICAgSU5JVChRVE1vdmllVmlld1NldERyYXdTeW5jaHJvbm91c2x5
KTsKKyAgICBJTklUKFFUR2V0U2l0ZXNJbk1lZGlhRG93bmxvYWRDYWNoZSk7CisgICAgSU5JVChR
VENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZSk7CisgICAgSU5JVChRVENsZWFyTWVkaWFE
b3dubG9hZENhY2hlKTsKKworICAgIGRpZEluaXQgPSB0cnVlOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>