<?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>206905</bug_id>
          
          <creation_ts>2020-01-28 13:11:31 -0800</creation_ts>
          <short_desc>PAL: Remove old iOS version macros</short_desc>
          <delta_ts>2020-01-30 13:56:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206096</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=207009</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>japhet</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1612140</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 13:11:31 -0800</bug_when>
    <thetext>There are a number of platform differentiation macros that are implemented as version checks in PAL, these should be reimplemented as platform checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612142</commentid>
    <comment_count>1</comment_count>
      <attachid>389055</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 13:18:51 -0800</bug_when>
    <thetext>Created attachment 389055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612188</commentid>
    <comment_count>2</comment_count>
      <attachid>389067</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 14:44:39 -0800</bug_when>
    <thetext>Created attachment 389067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612256</commentid>
    <comment_count>3</comment_count>
      <attachid>389067</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-28 16:46:44 -0800</bug_when>
    <thetext>Comment on attachment 389067
Patch

What made you choose &quot;USE&quot; over &quot;HAVE&quot; here? Typically in situations like this we want to use it wherever we have it. So I would think these would be HAVE. We reserve USE for where the decision to use is a more complex question than just &quot;use what you have&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612257</commentid>
    <comment_count>4</comment_count>
      <attachid>389067</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-28 16:47:07 -0800</bug_when>
    <thetext>Comment on attachment 389067
Patch

I guess the things in-file said USE, but I think they are wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612453</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-29 08:03:19 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 389067 [details]
&gt; Patch
&gt; 
&gt; I guess the things in-file said USE, but I think they are wrong.

That&apos;s exactly why I implemented them as USE. I&apos;ll change them to HAVE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612472</commentid>
    <comment_count>6</comment_count>
      <attachid>389140</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-29 08:27:09 -0800</bug_when>
    <thetext>Created attachment 389140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612624</commentid>
    <comment_count>7</comment_count>
      <attachid>389175</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-29 13:13:11 -0800</bug_when>
    <thetext>Created attachment 389175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612974</commentid>
    <comment_count>8</comment_count>
      <attachid>389175</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-30 09:00:19 -0800</bug_when>
    <thetext>Comment on attachment 389175
Patch

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

&gt; Source/WTF/wtf/PlatformHave.h:580
&gt; +#if PLATFORM(COCOA)
&gt; +#define HAVE_SECURE_ARCHIVER_API 1
&gt; +#endif

Since this is used only in Cocoa-specific source files, we can remove the conditional entirely and enable things unconditionally. This avoids having to move it into PlatformHave.h.

&gt; Source/WTF/wtf/PlatformHave.h:584
&gt; +#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
&gt; +#define HAVE_SECURE_ARCHIVER_FOR_ATTRIBUTED_STRING 1
&gt; +#endif

This expression is the same as PLATFORM(COCOA).

Since this is used only in Cocoa-specific source files, we can remove the conditional entirely and enable things unconditionally. This avoids having to move it into PlatformHave.h.

&gt; Source/WTF/wtf/PlatformHave.h:588
&gt; +#if PLATFORM(WATCHOS) || PLATFORM(APPLETV) || (PLATFORM(IOS_FAMILY) &amp;&amp; !(defined __has_include &amp;&amp; __has_include(&lt;CoreFoundation/CFPriv.h&gt;)))
&gt; +#define HAVE_NSPROGRESS_PUBLISHING_SPI 1
&gt; +#endif

I don’t understand why we are adding __has_include here. The old code didn’t use it. I believe we should use that only when absolutely necessary and I don’t see a comment explaining why it’s necessary here.

I think this should just be PLATFORM(IOS_FAMILY).

&gt; Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:287
&gt; +#if HAVE(CG_PATH_UNEVEN_CORNERS_ROUNDEDRECT)
&gt;  void CGPathAddUnevenCornersRoundedRect(CGMutablePathRef, const CGAffineTransform *, CGRect, const CGSize corners[4]);
&gt;  #endif

Seems to me it might be OK to just have this unconditionally in the SPI header, as long as the actual use of the function is guarded by HAVE(CG_PATH_UNEVEN_CORNERS_ROUNDEDRECT). But I guess this way is OK too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612989</commentid>
    <comment_count>9</comment_count>
      <attachid>389175</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-30 09:20:26 -0800</bug_when>
    <thetext>Comment on attachment 389175
Patch

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

&gt;&gt; Source/WTF/wtf/PlatformHave.h:588
&gt;&gt; +#endif
&gt; 
&gt; I don’t understand why we are adding __has_include here. The old code didn’t use it. I believe we should use that only when absolutely necessary and I don’t see a comment explaining why it’s necessary here.
&gt; 
&gt; I think this should just be PLATFORM(IOS_FAMILY).

Because this is actually:

#if PLATFORM(WATCHOS) || PLATFORM(APPLETV) || (PLATFORM(IOS_FAMILY) &amp;&amp; !USE(APPLE_INTERNAL_SDK))

but we don&apos;t have USE macros in the HAVE macro file. It might be better to just move this back into the file that originally contains it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613001</commentid>
    <comment_count>10</comment_count>
      <attachid>389259</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-30 09:47:05 -0800</bug_when>
    <thetext>Created attachment 389259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613022</commentid>
    <comment_count>11</comment_count>
      <attachid>389175</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-30 10:19:48 -0800</bug_when>
    <thetext>Comment on attachment 389175
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/PlatformHave.h:588
&gt;&gt;&gt; +#endif
&gt;&gt; 
&gt;&gt; I don’t understand why we are adding __has_include here. The old code didn’t use it. I believe we should use that only when absolutely necessary and I don’t see a comment explaining why it’s necessary here.
&gt;&gt; 
&gt;&gt; I think this should just be PLATFORM(IOS_FAMILY).
&gt; 
&gt; Because this is actually:
&gt; 
&gt; #if PLATFORM(WATCHOS) || PLATFORM(APPLETV) || (PLATFORM(IOS_FAMILY) &amp;&amp; !USE(APPLE_INTERNAL_SDK))
&gt; 
&gt; but we don&apos;t have USE macros in the HAVE macro file. It might be better to just move this back into the file that originally contains it.

Yes should go to USE because we for some reason are only compiling this for people who have the internal SDK. But not a good situation. Not a normal part of how we want to do things. An anomaly that we should eventually fix. Our SPI headers are designed to allow us to avoid this situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613030</commentid>
    <comment_count>12</comment_count>
      <attachid>389259</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-30 10:32:42 -0800</bug_when>
    <thetext>Comment on attachment 389259
Patch

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

&gt; Source/WTF/wtf/PlatformHave.h:578
&gt; +#if PLATFORM(WATCHOS) || PLATFORM(APPLETV) || (PLATFORM(IOS_FAMILY) &amp;&amp; !(defined __has_include &amp;&amp; __has_include(&lt;CoreFoundation/CFPriv.h&gt;)))

Still not happy with this but maybe we can land it like this and improve later. I’m concerned we don’t understand this well enough. It seems that this is about using SPI vs. API and I am it sure it’s right.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:55
&gt;  inline NSData *_Nullable securelyArchivedDataWithRootObject(id _Nonnull object)

Should probably come back here and remove this from the SPI header. This is here only to keep the conditionals out of the source dukes and that is no longer a concern.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:64
&gt;  inline NSData *_Nullable insecurelyArchivedDataWithRootObject(id _Nonnull object)

Ditto.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:80
&gt;  inline id _Nullable unarchivedObjectOfClassesFromData(NSSet&lt;Class&gt; * _Nonnull classes, NSData * _Nonnull data)

Ditto.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:89
&gt;  inline RetainPtr&lt;NSKeyedArchiver&gt; secureArchiver()

Ditto.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:95
&gt;  inline RetainPtr&lt;NSKeyedUnarchiver&gt; secureUnarchiverFromData(NSData *_Nonnull data)

Ditto.

&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:102
&gt;  inline id _Nullable decodeObjectOfClassForKeyFromCoder(Class _Nonnull cls, NSString * _Nonnull key, NSCoder * _Nonnull coder)

Ditto.

&gt; Source/WebCore/loader/archive/cf/LegacyWebArchiveMac.mm:68
&gt;      return retainPtr((__bridge CFDataRef)archiver.get().encodedData);

Just something I noticed in passing: no need to call retainPtr here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613048</commentid>
    <comment_count>13</comment_count>
      <attachid>389259</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-30 11:03:30 -0800</bug_when>
    <thetext>Comment on attachment 389259
Patch

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

&gt;&gt; Source/WTF/wtf/PlatformHave.h:578
&gt;&gt; +#if PLATFORM(WATCHOS) || PLATFORM(APPLETV) || (PLATFORM(IOS_FAMILY) &amp;&amp; !(defined __has_include &amp;&amp; __has_include(&lt;CoreFoundation/CFPriv.h&gt;)))
&gt; 
&gt; Still not happy with this but maybe we can land it like this and improve later. I’m concerned we don’t understand this well enough. It seems that this is about using SPI vs. API and I am it sure it’s right.

Looking through our callsites, I suspect we no longer need the Internal check, but I&apos;ll file a different bug about that, https://bugs.webkit.org/show_bug.cgi?id=207008

&gt;&gt; Source/WebCore/PAL/pal/spi/cocoa/NSKeyedArchiverSPI.h:55
&gt;&gt;  inline NSData *_Nullable securelyArchivedDataWithRootObject(id _Nonnull object)
&gt; 
&gt; Should probably come back here and remove this from the SPI header. This is here only to keep the conditionals out of the source dukes and that is no longer a concern.

Filed https://bugs.webkit.org/show_bug.cgi?id=207009

&gt;&gt; Source/WebCore/loader/archive/cf/LegacyWebArchiveMac.mm:68
&gt;&gt;      return retainPtr((__bridge CFDataRef)archiver.get().encodedData);
&gt; 
&gt; Just something I noticed in passing: no need to call retainPtr here.

Updating the patch to fix this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613051</commentid>
    <comment_count>14</comment_count>
      <attachid>389269</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-30 11:06:28 -0800</bug_when>
    <thetext>Created attachment 389269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613116</commentid>
    <comment_count>15</comment_count>
      <attachid>389269</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-30 13:36:42 -0800</bug_when>
    <thetext>Comment on attachment 389269
Patch

Clearing flags on attachment: 389269

Committed r255455: &lt;https://trac.webkit.org/changeset/255455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613117</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-30 13:36:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613118</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-30 13:37:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/59039984&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389055</attachid>
            <date>2020-01-28 13:18:51 -0800</date>
            <delta_ts>2020-01-28 14:44:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206905-20200128131850.patch</filename>
            <type>text/plain</type>
            <size>7490</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTUyNjYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybVVzZS5oOiBBZGQgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpLCBVU0UoU0VD
VVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORykgYW5kIFVTRShOU1BST0dSRVNTX1BV
QkxJU0hJTkdfU1BJKS4KKwogMjAyMC0wMS0yOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZTogR3VhcmQgdW5ldmVuIGNvcm5lcnMgaW4gcm91
bmRlZCByZWN0YW5nbGVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1NTI2NikK
KysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMSwz
ICszMTEsMTUgQEAKICNpZiBPUyhEQVJXSU4pICYmICFVU0UoUExBVEZPUk1fUkVHSVNURVJTX1dJ
VEhfUFJPRklMRSkgJiYgQ1BVKEFSTTY0KQogI2RlZmluZSBVU0VfREFSV0lOX1JFR0lTVEVSX01B
Q1JPUyAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfU0VDVVJF
X0FSQ0hJVkVSX0FQSSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNkZWZpbmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklCVVRFRF9T
VFJJTkcgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBM
RVRWKSB8fCAoVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkp
CisjZGVmaW5lIFVTRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJIDEKKyNlbmRpZgpJbmRleDog
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTUyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDEtMjggIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIFBBTDogUmVtb3Zl
IG9sZCBpT1MgdmVyc2lvbiBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNjkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDogUmVtb3ZlIGlPUyAx
MSB2ZXJzaW9uIGNoZWNrcy4KKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
OiBSZW1vdmUgaU9TIDEyIHZlcnNpb24gY2hlY2tzLgorICAgICAgICAqIHBhbC9zcGkvY29jb2Ev
TlNLZXllZEFyY2hpdmVyU1BJLmg6IFJlbW92ZSBpT1MgMTEgdmVyc2lvbiBjaGVja3MuCisgICAg
ICAgICogcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaDogUmVtb3ZlIGlPUyAxMSBhbmQgMTIg
dmVyc2lvbiBjaGVja3MuCisKIDIwMjAtMDEtMjIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSBzb21lIHVubmVlZGVkIGRlZmluaXRpb25zIGZyb20gUGxh
dGZvcm0uaCBmYW1pbHkgaGVhZGVycwpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCShyZXZpc2lvbiAyNTUyNjYpCisr
KyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZG
b3VuZGF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAotI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAo
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTMwMDAwKQorI2lmICEoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDwgMTAxNTAwKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQ
UExFVFYpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIFBBTF9FWFBPUlQpCiAjZWxzZQogQGludGVyZmFjZSBBVlBsYXllckl0ZW0g
KERpc2FibGVLVk9PblN1cHJlc3Nlc1ZpZGVvTGF5ZXJzKQpJbmRleDogU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHJldmlzaW9uIDI1NTI2NikKKysrIFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTMsNyArMjEzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNVUkxTZXNz
aW9uQwogQHByb3BlcnR5IChudWxsYWJsZSwgcmVhZHdyaXRlLCByZXRhaW4pIE5TVVJMICpfc2l0
ZUZvckNvb2tpZXM7CiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgQk9PTCBfaXNUb3BMZXZlbE5hdmln
YXRpb247CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgX3ByZWNvbm5lY3Q7CiAjZW5kaWYK
IEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFw
aGljc1NQSS5oCShyZXZpc2lvbiAyNTUyNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBA
IHZvaWQgQ0dDb250ZXh0U2V0U3R5bGUoQ0dDb250ZXh0UmVmLCBDR1MKIAogdm9pZCBDR0NvbnRl
eHREcmF3Q29uaWNHcmFkaWVudChDR0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYsIENHUG9pbnQg
Y2VudGVyLCBDR0Zsb2F0IGFuZ2xlKTsKIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQorI2lmIEhB
VkUoQ0dfUEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVDVCkKIHZvaWQgQ0dQYXRoQWRkVW5l
dmVuQ29ybmVyc1JvdW5kZWRSZWN0KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0IENHQWZmaW5lVHJh
bnNmb3JtICosIENHUmVjdCwgY29uc3QgQ0dTaXplIGNvcm5lcnNbNF0pOwogI2VuZGlmCiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5o
CShyZXZpc2lvbiAyNTUyNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9J
T1N1cmZhY2VTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIFdURl9FWFRF
Uk5fQ19FTkQKIAogI2Vsc2UKIAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTEwMDAwCisjaWYgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKIHR5
cGVkZWYgdWludDMyX3QgSU9TdXJmYWNlSUQ7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgJKHJl
dmlzaW9uIDI1NTI2NikKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5
ZWRBcmNoaXZlclNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksNiBAQAogI2ltcG9y
dCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2RlZmlu
ZSBVU0VfU0VDVVJFX0FSQ0hJVkVSX0FQSSAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMjAwKSB8
fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkKLQotI2RlZmluZSBVU0Vf
U0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORyAoUExBVEZPUk0oTUFDKSB8fCAo
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkKLQog
I2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TS2V5ZWRBcmNoaXZlcl9Qcml2YXRlLmg+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1Byb2dyZXNzU1BJLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNQcm9ncmVzc1NQSS5oCShy
ZXZpc2lvbiAyNTUyNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1By
b2dyZXNzU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE0ICsyNywxMSBAQAogCiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKIAotI2RlZmluZSBVU0VfTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSSBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA8IDEzMDAwMAogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1Byb2dyZXNzX1ByaXZhdGUuaD4K
IAogI2Vsc2UKIAotI2RlZmluZSBVU0VfTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSBQTEFURk9S
TShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQot
Ci0jaWYgVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkKKyNpZiBVU0UoTlNQUk9HUkVTU19Q
VUJMSVNISU5HX1NQSSkKIAogQGludGVyZmFjZSBOU1Byb2dyZXNzICgpCiAKQEAgLTQ1LDYgKzQy
LDYgQEAKIAogQGVuZAogCi0jZW5kaWYgLy8gVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkK
KyNlbmRpZiAvLyBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKIAogI2VuZGlmIC8vIG5v
dCBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvaW9zL01lZGlhUGxheWVyU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgJKHJldmlzaW9uIDI1NTI2NikKKysrIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBBVlJvdXRpbmdD
b250cm9sbGVyLmg+CiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MjAwMDAKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjaW1w
b3J0IDxNZWRpYVBsYXllci9NUE1lZGlhQ29udHJvbHNDb25maWd1cmF0aW9uLmg+CiAjZW5kaWYK
IAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCAmJiAhUExB
VEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisjaWYgIVBMQVRGT1JNKFdBVENI
T1MpICYmICFQTEFURk9STShBUFBMRVRWKQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBNZWRpYUNv
bnRyb2xzVmlld0NvbnRyb2xsZXIuaD4KICNlbHNlCiAjaW1wb3J0IDxNZWRpYVBsYXllci9NUEFW
Um91dGluZ1NoZWV0Lmg+CkBAIC02NCw3ICs2NCw3IEBAIHR5cGVkZWYgTlNJbnRlZ2VyIE1QUm91
dGVEaXNjb3ZlcnlNb2RlOwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTVBSb3V0ZURp
c2NvdmVyeU1vZGUgZGlzY292ZXJ5TW9kZTsKIEBlbmQKIAotI2lmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDExMDAwMCAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRG
T1JNKEFQUExFVFYpCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRW
KQogCiBAaW50ZXJmYWNlIE1QTWVkaWFDb250cm9sc1ZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29u
dHJvbGxlcgogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIG51bGxhYmxlKSB2b2lkICheZGlk
RGlzbWlzc0hhbmRsZXIpKHZvaWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389067</attachid>
            <date>2020-01-28 14:44:39 -0800</date>
            <delta_ts>2020-01-29 08:27:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206905-20200128144438.patch</filename>
            <type>text/plain</type>
            <size>7491</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTUzMTQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybVVzZS5oOiBBZGQgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpLCBVU0UoU0VD
VVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORykgYW5kIFVTRShOU1BST0dSRVNTX1BV
QkxJU0hJTkdfU1BJKS4KKwogMjAyMC0wMS0yOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZTogR3VhcmQgdW5ldmVuIGNvcm5lcnMgaW4gcm91
bmRlZCByZWN0YW5nbGVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1NTMxNCkK
KysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMSwz
ICszMTEsMTUgQEAKICNpZiBPUyhEQVJXSU4pICYmICFVU0UoUExBVEZPUk1fUkVHSVNURVJTX1dJ
VEhfUFJPRklMRSkgJiYgQ1BVKEFSTTY0KQogI2RlZmluZSBVU0VfREFSV0lOX1JFR0lTVEVSX01B
Q1JPUyAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfU0VDVVJF
X0FSQ0hJVkVSX0FQSSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNkZWZpbmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklCVVRFRF9T
VFJJTkcgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBM
RVRWKSB8fCAoIVVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
KQorI2RlZmluZSBVU0VfTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSAxCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjU1MzE0KQorKysgU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBK
b25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92
ZSBvbGQgaU9TIHZlcnNpb24gbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6IFJlbW92ZSBpT1Mg
MTEgdmVyc2lvbiBjaGVja3MuCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aDogUmVtb3ZlIGlPUyAxMiB2ZXJzaW9uIGNoZWNrcy4KKyAgICAgICAgKiBwYWwvc3BpL2NvY29h
L05TS2V5ZWRBcmNoaXZlclNQSS5oOiBSZW1vdmUgaU9TIDExIHZlcnNpb24gY2hlY2tzLgorICAg
ICAgICAqIHBhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmg6IFJlbW92ZSBpT1MgMTEgYW5kIDEy
IHZlcnNpb24gY2hlY2tzLgorCiAyMDIwLTAxLTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgc29tZSB1bm5lZWRlZCBkZWZpbml0aW9ucyBmcm9tIFBs
YXRmb3JtLmggZmFtaWx5IGhlYWRlcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQkocmV2aXNpb24gMjU1MzE0KQor
KysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
Rm91bmRhdGlvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwg
KFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEzMDAwMCkKKyNpZiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8IDEwMTUwMCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShB
UFBMRVRWKQogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBQQUxfRVhQT1JUKQogI2Vsc2UKIEBpbnRlcmZhY2UgQVZQbGF5ZXJJdGVt
IChEaXNhYmxlS1ZPT25TdXByZXNzZXNWaWRlb0xheWVycykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAyNTUzMTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjEzLDcgKzIxMyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVVJMU2Vz
c2lvbkMKIEBwcm9wZXJ0eSAobnVsbGFibGUsIHJlYWR3cml0ZSwgcmV0YWluKSBOU1VSTCAqX3Np
dGVGb3JDb29raWVzOwogQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZp
Z2F0aW9uOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYp
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBCT09MIF9wcmVjb25uZWN0OwogI2VuZGlm
CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NT
UEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaAkocmV2aXNpb24gMjU1MzE0KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4Miw3ICsyODIsNyBA
QCB2b2lkIENHQ29udGV4dFNldFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTCiAKIHZvaWQgQ0dDb250
ZXh0RHJhd0NvbmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBDR1BvaW50
IGNlbnRlciwgQ0dGbG9hdCBhbmdsZSk7CiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkKKyNpZiBI
QVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9VTkRFRFJFQ1QpCiB2b2lkIENHUGF0aEFkZFVu
ZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFibGVQYXRoUmVmLCBjb25zdCBDR0FmZmluZVRy
YW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6ZSBjb3JuZXJzWzRdKTsKICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEku
aAkocmV2aXNpb24gMjU1MzE0KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
SU9TdXJmYWNlU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBXVEZfRVhU
RVJOX0NfRU5ECiAKICNlbHNlCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDExMDAwMAorI2lmIFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCiB0
eXBlZGVmIHVpbnQzMl90IElPU3VyZmFjZUlEOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCShy
ZXZpc2lvbiAyNTUzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tl
eWVkQXJjaGl2ZXJTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDYgQEAKICNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNkZWZp
bmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9BUEkgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDIwMCkg
fHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCi0KLSNkZWZpbmUgVVNF
X1NFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklCVVRFRF9TVFJJTkcgKFBMQVRGT1JNKE1BQykgfHwg
KFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCi0K
ICNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0tleWVkQXJjaGl2ZXJfUHJpdmF0ZS5oPgpJbmRleDog
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNQcm9ncmVzc1NQSS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TUHJvZ3Jlc3NTUEkuaAko
cmV2aXNpb24gMjU1MzE0KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNQ
cm9ncmVzc1NQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNCArMjcsMTEgQEAKIAogI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAKLSNkZWZpbmUgVVNFX05TUFJPR1JFU1NfUFVCTElTSElO
R19TUEkgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPCAxMzAwMDAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNQcm9ncmVzc19Qcml2YXRlLmg+
CiAKICNlbHNlCiAKLSNkZWZpbmUgVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikK
LQotI2lmIFVTRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJCisjaWYgVVNFKE5TUFJPR1JFU1Nf
UFVCTElTSElOR19TUEkpCiAKIEBpbnRlcmZhY2UgTlNQcm9ncmVzcyAoKQogCkBAIC00NSw2ICs0
Miw2IEBACiAKIEBlbmQKIAotI2VuZGlmIC8vIFVTRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJ
CisjZW5kaWYgLy8gVVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCiAKICNlbmRpZiAvLyBu
b3QgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCShyZXZpc2lvbiAyNTUzMTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaAkod29ya2luZyBjb3B5
KQpAQCAtMzQsMTEgKzM0LDExIEBACiAKICNpbXBvcnQgPE1lZGlhUGxheWVyL01QQVZSb3V0aW5n
Q29udHJvbGxlci5oPgogCi0jaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTIwMDAwCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogI2lt
cG9ydCA8TWVkaWFQbGF5ZXIvTVBNZWRpYUNvbnRyb2xzQ29uZmlndXJhdGlvbi5oPgogI2VuZGlm
CiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAgJiYgIVBM
QVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQorI2lmICFQTEFURk9STShXQVRD
SE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKICNpbXBvcnQgPE1lZGlhUGxheWVyL01QTWVkaWFD
b250cm9sc1ZpZXdDb250cm9sbGVyLmg+CiAjZWxzZQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBB
VlJvdXRpbmdTaGVldC5oPgpAQCAtNjQsNyArNjQsNyBAQCB0eXBlZGVmIE5TSW50ZWdlciBNUFJv
dXRlRGlzY292ZXJ5TW9kZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIE1QUm91dGVE
aXNjb3ZlcnlNb2RlIGRpc2NvdmVyeU1vZGU7CiBAZW5kCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFU
Rk9STShBUFBMRVRWKQorI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVU
VikKIAogQGludGVyZmFjZSBNUE1lZGlhQ29udHJvbHNWaWV3Q29udHJvbGxlciA6IFVJVmlld0Nv
bnRyb2xsZXIKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBudWxsYWJsZSkgdm9pZCAoXmRp
ZERpc21pc3NIYW5kbGVyKSh2b2lkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389140</attachid>
            <date>2020-01-29 08:27:09 -0800</date>
            <delta_ts>2020-01-29 13:13:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206905-20200129082708.patch</filename>
            <type>text/plain</type>
            <size>17614</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTUzNTUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUhhdmUuaDogQWRkIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSksIEhBVkUo
U0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORykKKyAgICAgICAgYW5kIEhBVkUo
TlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkuCisKIDIwMjAtMDEtMjggIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFNob3VsZCB1c2Ug
bGlnaHQgdGhlbWUgdW5sZXNzIHdlYnNpdGUgZGVjbGFyZXMgc3VwcG9ydCBmb3IgZGFyayB0aGVt
ZXMgaW4gY29sb3Itc2NoZW1lcyBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHJl
dmlzaW9uIDI1NTM1NSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NzQsMyArNTc0LDE1IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICEoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNDAwKSAm
JiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEhBVkVf
Q0dfUEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVDVCAxCiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKENPQ09BKQorI2RlZmluZSBIQVZFX1NFQ1VSRV9BUkNISVZFUl9BUEkgMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVf
U0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORyAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpIHx8ICghVVNFKEFQUExFX0lOVEVS
TkFMX1NESykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkpCisjZGVmaW5lIEhBVkVfTlNQUk9HUkVT
U19QVUJMSVNISU5HX1NQSSAxCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NTM1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTAxLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
KworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24gbWFjcm9zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBmdW5jdGlvbmFsIGNoYW5n
ZXMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2
ZS9jZi9MZWdhY3lXZWJBcmNoaXZlTWFjLm1tOiBSZXBsYWNlIFVTRShTRUNVUkVfQVJDSElWRVJf
QVBJKSB3aXRoIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSkuCisgICAgICAgICogdGVzdGluZy9j
b2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW06IERpdHRvLgorCiAyMDIwLTAxLTI5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCbG9iIG1lZGlhIGxvYWRp
bmcgZG9lcyBub3Qgd29yayB3aXRoIEdQVVByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwko
cmV2aXNpb24gMjU1MzU1KQorKysgU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAxLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbTogUmVtb3ZlIGlPUyAxMyB2ZXJzaW9u
IGNoZWNrcy4KKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oOiBSZW1vdmUgaU9T
IDExIHZlcnNpb24gY2hlY2tzLgorICAgICAgICAqIHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg6IFVzZSBIQVZFIG1hY3JvIGluc3RlYWQgb2YgdmVyc2lvbiBjaGVja3MuCisgICAgICAgICog
cGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaDogUmVtb3ZlIGlPUyAxMSB2ZXJzaW9uIGNoZWNr
cy4KKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oOiBSZXBsYWNl
IFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKSB3aXRoCisgICAgICAgIEhBVkUoU0VDVVJFX0FSQ0hJ
VkVSX0FQSSkgYW5kIFVTRShTRUNVUkVfQVJDSElWRVJfRk9SX0FUVFJJQlVURURfU1RSSU5HKSB3
aXRoCisgICAgICAgIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORyku
CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9OU1Byb2dyZXNzU1BJLmg6IFJlcGxhY2UgVVNFKE5T
UFJPR1JFU1NfUFVCTElTSElOR19TUEkpIHdpdGgKKyAgICAgICAgSEFWRShOU1BST0dSRVNTX1BV
QkxJU0hJTkdfU1BJKS4KKyAgICAgICAgKiBwYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oOiBS
ZW1vdmUgaU9TIDExIHZlcnNpb24gY2hlY2tzLgorCiAyMDIwLTAxLTI5ICB5b3Vlbm4gZmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFVzZSBBVkFzc2V0V3JpdGVy
RGVsZWdhdGUgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQkocmV2aXNp
b24gMjU1MzU1KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5tbQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAK
LSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEzMDAwMCkKKyNpZiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYm
ICFQTEFURk9STShBUFBMRVRWKQogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBQQUxfRVhQT1JUKQogI2Vsc2UKIEBpbnRlcmZhY2Ug
QVZQbGF5ZXJJdGVtIChEaXNhYmxlS1ZPT25TdXByZXNzZXNWaWRlb0xheWVycykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAy
NTUzNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAko
d29ya2luZyBjb3B5KQpAQCAtMjEzLDcgKzIxMyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIE5TVVJMU2Vzc2lvbkMKIEBwcm9wZXJ0eSAobnVsbGFibGUsIHJlYWR3cml0ZSwgcmV0YWlu
KSBOU1VSTCAqX3NpdGVGb3JDb29raWVzOwogQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgX2lz
VG9wTGV2ZWxOYXZpZ2F0aW9uOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRG
T1JNKEFQUExFVFYpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBCT09MIF9wcmVjb25u
ZWN0OwogI2VuZGlmCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkocmV2aXNpb24gMjU1MzU1KQorKysgU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
Miw3ICsyODIsNyBAQCB2b2lkIENHQ29udGV4dFNldFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTCiAK
IHZvaWQgQ0dDb250ZXh0RHJhd0NvbmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50
UmVmLCBDR1BvaW50IGNlbnRlciwgQ0dGbG9hdCBhbmdsZSk7CiAKLSNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEy
MDAwMCkKKyNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9VTkRFRFJFQ1QpCiB2b2lk
IENHUGF0aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFibGVQYXRoUmVmLCBjb25z
dCBDR0FmZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6ZSBjb3JuZXJzWzRdKTsK
ICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZh
Y2VTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9J
T1N1cmZhY2VTUEkuaAkocmV2aXNpb24gMjU1MzU1KQorKysgU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMs
NyBAQCBXVEZfRVhURVJOX0NfRU5ECiAKICNlbHNlCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA8IDExMDAwMAorI2lmIFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JN
KEFQUExFVFYpCiB0eXBlZGVmIHVpbnQzMl90IElPU3VyZmFjZUlEOwogI2VuZGlmCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNo
aXZlclNQSS5oCShyZXZpc2lvbiAyNTUzNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5
LDcgQEAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKLSNkZWZpbmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9BUEkgKFBMQVRGT1JNKE1BQykgfHwg
KFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDExMDIwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCi0K
LSNkZWZpbmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklCVVRFRF9TVFJJTkcgKFBMQVRG
T1JNKE1BQykgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0o
QVBQTEVUVikpCi0KLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiBIQVZFKFNFQ1VS
RV9BUkNISVZFUl9BUEkpCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEZv
dW5kYXRpb24vTlNLZXllZEFyY2hpdmVyX1ByaXZhdGUuaD4KICNlbHNlCkBAIC01NiwxMSArNTIs
MTEgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAj
ZW5kaWYgLyogVVNFKEFQUExFX0lOVEVSTkFMX1NESykgKi8KLSNlbmRpZiAvKiBVU0UoU0VDVVJF
X0FSQ0hJVkVSX0FQSSkgKi8KKyNlbmRpZiAvKiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpICov
CiAKIGlubGluZSBOU0RhdGEgKl9OdWxsYWJsZSBzZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290
T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdCkKIHsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQ
SSkKKyNpZiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNFcnJvciAqZXJyb3I7CiAg
ICAgTlNEYXRhICpkYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFXaXRoUm9vdE9i
amVjdDpvYmplY3QgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFUyBlcnJvcjomZXJyb3JdOwogICAg
IGlmICghZGF0YSkKQEAgLTczLDcgKzY5LDcgQEAgaW5saW5lIE5TRGF0YSAqX051bGxhYmxlIHNl
Y3VyZWx5QXJjaGl2ZQogCiBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5zZWN1cmVseUFyY2hp
dmVkRGF0YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdCkKIHsKLSNpZiBVU0UoU0VD
VVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNF
cnJvciAqZXJyb3I7CiAgICAgTlNEYXRhICpkYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZl
ZERhdGFXaXRoUm9vdE9iamVjdDpvYmplY3QgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOk5PIGVycm9y
OiZlcnJvcl07CiAgICAgaWYgKCFkYXRhKQpAQCAtOTMsOCArODksOCBAQCBpbmxpbmUgaWQgX051
bGxhYmxlIGluc2VjdXJlbHlVbmFyY2hpdmVPCiAKIGlubGluZSBpZCBfTnVsbGFibGUgdW5hcmNo
aXZlZE9iamVjdE9mQ2xhc3Nlc0Zyb21EYXRhKE5TU2V0PENsYXNzPiAqIF9Ob25udWxsIGNsYXNz
ZXMsIE5TRGF0YSAqIF9Ob25udWxsIGRhdGEpCiB7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9B
UEkpCi0jaWYgIVVTRShTRUNVUkVfQVJDSElWRVJfRk9SX0FUVFJJQlVURURfU1RSSU5HKQorI2lm
IEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiAhSEFWRShTRUNVUkVfQVJDSElWRVJfRk9S
X0FUVFJJQlVURURfU1RSSU5HKQogICAgIC8vIFJlbW92ZSB0aGlzIGNvZGUgd2hlbiB0aGUgZml4
IGZyb20gPHJkYXI6Ly9wcm9ibGVtLzMxMzc2ODMwPiBpcyBkZXBsb3llZCB0byBhbGwgcmVsZXZh
bnQgYnVpbGQgdGFyZ2V0cy4KICAgICBpZiAoW2NsYXNzZXMgY29udGFpbnNPYmplY3Q6W05TQXR0
cmlidXRlZFN0cmluZyBjbGFzc11dKQogICAgICAgICByZXR1cm4gaW5zZWN1cmVseVVuYXJjaGl2
ZU9iamVjdEZyb21EYXRhKGRhdGEpOwpAQCAtMTEyLDcgKzEwOCw3IEBAIGlubGluZSBpZCBfTnVs
bGFibGUgdW5hcmNoaXZlZE9iamVjdE9mQ2wKIAogaW5saW5lIFJldGFpblB0cjxOU0tleWVkQXJj
aGl2ZXI+IHNlY3VyZUFyY2hpdmVyKCkKIHsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkK
KyNpZiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNLZXllZEFyY2hpdmVyICphcmNo
aXZlciA9IFtbTlNLZXllZEFyY2hpdmVyIGFsbG9jXSBpbml0UmVxdWlyaW5nU2VjdXJlQ29kaW5n
OllFU107CiAjZWxzZQogICAgIE5TS2V5ZWRBcmNoaXZlciAqYXJjaGl2ZXIgPSBbW05TS2V5ZWRB
cmNoaXZlciBhbGxvY10gaW5pdF07CkBAIC0xMjMsNyArMTE5LDcgQEAgaW5saW5lIFJldGFpblB0
cjxOU0tleWVkQXJjaGl2ZXI+IHNlY3VyZQogCiBpbmxpbmUgUmV0YWluUHRyPE5TS2V5ZWRVbmFy
Y2hpdmVyPiBzZWN1cmVVbmFyY2hpdmVyRnJvbURhdGEoTlNEYXRhICpfTm9ubnVsbCBkYXRhKQog
ewotI2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQorI2lmIEhBVkUoU0VDVVJFX0FSQ0hJVkVS
X0FQSSkKICAgICBOU0tleWVkVW5hcmNoaXZlciAqdW5hcmNoaXZlciA9IFtbTlNLZXllZFVuYXJj
aGl2ZXIgYWxsb2NdIGluaXRGb3JSZWFkaW5nRnJvbURhdGE6ZGF0YSBlcnJvcjpuaWxdOwogICAg
IHVuYXJjaGl2ZXIuZGVjb2RpbmdGYWlsdXJlUG9saWN5ID0gTlNEZWNvZGluZ0ZhaWx1cmVQb2xp
Y3lSYWlzZUV4Y2VwdGlvbjsKICNlbHNlCkBAIC0xMzUsNyArMTMxLDcgQEAgaW5saW5lIFJldGFp
blB0cjxOU0tleWVkVW5hcmNoaXZlcj4gc2VjdQogCiBpbmxpbmUgaWQgX051bGxhYmxlIGRlY29k
ZU9iamVjdE9mQ2xhc3NGb3JLZXlGcm9tQ29kZXIoQ2xhc3MgX05vbm51bGwgY2xzLCBOU1N0cmlu
ZyAqIF9Ob25udWxsIGtleSwgTlNDb2RlciAqIF9Ob25udWxsIGNvZGVyKQogewotI2lmIFVTRShT
RUNVUkVfQVJDSElWRVJfQVBJKQorI2lmIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKICAgICBy
ZXR1cm4gW2NvZGVyIGRlY29kZU9iamVjdE9mQ2xhc3M6Y2xzIGZvcktleTprZXldOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oY2xzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL05TUHJvZ3Jlc3NTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9OU1Byb2dyZXNzU1BJLmgJKHJldmlzaW9uIDI1NTM1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TUHJvZ3Jlc3NTUEkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTQgKzI3LDExIEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCi0j
ZGVmaW5lIFVTRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTMwMDAwCiAjaW1wb3J0IDxG
b3VuZGF0aW9uL05TUHJvZ3Jlc3NfUHJpdmF0ZS5oPgogCiAjZWxzZQogCi0jZGVmaW5lIFVTRV9O
U1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JN
KFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0KLSNpZiBVU0VfTlNQUk9HUkVTU19QVUJM
SVNISU5HX1NQSQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKIAogQGludGVy
ZmFjZSBOU1Byb2dyZXNzICgpCiAKQEAgLTQ1LDYgKzQyLDYgQEAKIAogQGVuZAogCi0jZW5kaWYg
Ly8gVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkKKyNlbmRpZiAvLyBIQVZFKE5TUFJPR1JF
U1NfUFVCTElTSElOR19TUEkpCiAKICNlbmRpZiAvLyBub3QgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXll
clNQSS5oCShyZXZpc2lvbiAyNTUzNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9p
b3MvTWVkaWFQbGF5ZXJTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDExIEBACiAK
ICNpbXBvcnQgPE1lZGlhUGxheWVyL01QQVZSb3V0aW5nQ29udHJvbGxlci5oPgogCi0jaWYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisjaWYgIVBMQVRGT1JNKFdB
VENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBNZWRp
YUNvbnRyb2xzQ29uZmlndXJhdGlvbi5oPgogI2VuZGlmCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFU
Rk9STShBUFBMRVRWKQorI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVU
VikKICNpbXBvcnQgPE1lZGlhUGxheWVyL01QTWVkaWFDb250cm9sc1ZpZXdDb250cm9sbGVyLmg+
CiAjZWxzZQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBBVlJvdXRpbmdTaGVldC5oPgpAQCAtNjQs
NyArNjQsNyBAQCB0eXBlZGVmIE5TSW50ZWdlciBNUFJvdXRlRGlzY292ZXJ5TW9kZTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIE1QUm91dGVEaXNjb3ZlcnlNb2RlIGRpc2NvdmVyeU1v
ZGU7CiBAZW5kCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDAgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQorI2lmICFQTEFU
Rk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIAogQGludGVyZmFjZSBNUE1lZGlh
Q29udHJvbHNWaWV3Q29udHJvbGxlciA6IFVJVmlld0NvbnRyb2xsZXIKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCBudWxsYWJsZSkgdm9pZCAoXmRpZERpc21pc3NIYW5kbGVyKSh2b2lkKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZU1hYy5tbQkocmV2aXNpb24gMjU1MzU1KQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNDQsNyArNDQsNyBAQCBSZXNvdXJjZVJlc3BvbnNlIExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0
CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAgCiAgICAgTlNVUkxSZXNw
b25zZSAqcmVzcG9uc2UgPSBuaWw7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCisjaWYg
SEFWRShTRUNVUkVfQVJDSElWRVJfQVBJKQogICAgIGF1dG8gdW5hcmNoaXZlciA9IHNlY3VyZVVu
YXJjaGl2ZXJGcm9tRGF0YSgoX19icmlkZ2UgTlNEYXRhICopcmVzcG9uc2VEYXRhKTsKICAgICBA
dHJ5IHsKICAgICAgICAgcmVzcG9uc2UgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNz
OltOU1VSTFJlc3BvbnNlIGNsYXNzXSBmb3JLZXk6TGVnYWN5V2ViQXJjaGl2ZVJlc291cmNlUmVz
cG9uc2VLZXldOwpAQCAtNzIsNyArNzIsNyBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBMZWdhY3lX
ZWJBcmNoaXZlOjpjCiAgICAgaWYgKCFuc1Jlc3BvbnNlKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotI2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQorI2lmIEhBVkUoU0VDVVJFX0FSQ0hJ
VkVSX0FQSSkKICAgICBhdXRvIGFyY2hpdmVyID0gc2VjdXJlQXJjaGl2ZXIoKTsKICAgICBbYXJj
aGl2ZXIgZW5jb2RlT2JqZWN0Om5zUmVzcG9uc2UgZm9yS2V5OkxlZ2FjeVdlYkFyY2hpdmVSZXNv
dXJjZVJlc3BvbnNlS2V5XTsKICAgICByZXR1cm4gcmV0YWluUHRyKChfX2JyaWRnZSBDRkRhdGFS
ZWYpYXJjaGl2ZXIuZ2V0KCkuZW5jb2RlZERhdGEpOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVz
dGluZy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvdGVzdGluZy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0JKHJldmlzaW9u
IDI1NTM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvY29jb2EvV2ViQXJjaGl2ZUR1bXBT
dXBwb3J0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlVGVzdFN1cHBvcnQgewogc3RhdGljIENGVVJMUmVzcG9uc2VSZWYgY3JlYXRlQ0ZVUkxSZXNw
b25zZUZyb21SZXNwb25zZURhdGEoQ0ZEYXRhUmVmIHJlc3BvbnNlRGF0YSkKIHsKICAgICBOU1VS
TFJlc3BvbnNlICpyZXNwb25zZTsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiBI
QVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5h
cmNoaXZlckZyb21EYXRhKChfX2JyaWRnZSBOU0RhdGEgKilyZXNwb25zZURhdGEpOwogICAgIEB0
cnkgewogICAgICAgICByZXNwb25zZSA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6
W05TVVJMUmVzcG9uc2UgY2xhc3NdIGZvcktleTpAIldlYlJlc291cmNlUmVzcG9uc2UiXTsgLy8g
V2ViUmVzb3VyY2VSZXNwb25zZUtleSBpbiBXZWJSZXNvdXJjZS5tCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2
aXNpb24gMjU1MzU1KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMS0yOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CisKKyAgICAgICAgUEFMOiBSZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3Jvcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTA1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvRG93bmxvYWRDb2NvYS5tbTogUmVwbGFjZSBVU0UoTlNQ
Uk9HUkVTU19QVUJMSVNISU5HX1NQSSkKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tOiBEaXR0by4KKwogMjAyMC0wMS0yOSAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gTW92ZSB1bnNldGVudiB0byBXZWJQcm9jZXNzTWFpbi5jcHAgYWZ0ZXIgcjI1NTM0MgpJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvRG93bmxv
YWRDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1tCShyZXZpc2lvbiAyNTUzNTUpCisrKyBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3Jt
Q2FuY2VsTmV0d29ya0xvYWQKIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3JtRGVzdHJveURvd25sb2Fk
KCkKIHsKICAgICBpZiAobV9wcm9ncmVzcykKLSNpZiBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSSkKKyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCiAgICAgICAgIFttX3By
b2dyZXNzIF91bnB1Ymxpc2hdOwogI2Vsc2UKICAgICAgICAgW21fcHJvZ3Jlc3MgdW5wdWJsaXNo
XTsKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIERvd25sb2FkOjpwdWJsaXNoUHJvZ3Jlc3MoY29u
c3QgVVJMCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJvZ3Jlc3MgPSBhZG9wdE5TKFtbV0tE
b3dubG9hZFByb2dyZXNzIGFsbG9jXSBpbml0V2l0aERvd25sb2FkVGFzazptX2Rvd25sb2FkVGFz
ay5nZXQoKSBkb3dubG9hZDoqdGhpcyBVUkw6KE5TVVJMICopdXJsIHNhbmRib3hFeHRlbnNpb246
c2FuZGJveEV4dGVuc2lvbl0pOwotI2lmIFVTRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQor
I2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKICAgICBbbV9wcm9ncmVzcyBfcHVi
bGlzaF07CiAjZWxzZQogICAgIFttX3Byb2dyZXNzIHB1Ymxpc2hdOwpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2Nv
Y29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQkocmV2aXNpb24gMjU1MzU1KQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aERvd25sb2FkVGFzazooTlMKICAgICByZXR1cm4gc2VsZjsKIH0KIAotI2lmIFVTRShOU1BST0dS
RVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkK
IC0gKHZvaWQpX3B1Ymxpc2gKICNlbHNlCiAtICh2b2lkKXB1Ymxpc2gKQEAgLTg5LDIwICs4OSwy
MCBAQCAtICh2b2lkKXB1Ymxpc2gKICAgICBCT09MIGNvbnN1bWVkRXh0ZW5zaW9uID0gbV9zYW5k
Ym94RXh0ZW5zaW9uLT5jb25zdW1lKCk7CiAgICAgQVNTRVJUX1VOVVNFRChjb25zdW1lZEV4dGVu
c2lvbiwgY29uc3VtZWRFeHRlbnNpb24pOwogCi0jaWYgVVNFKE5TUFJPR1JFU1NfUFVCTElTSElO
R19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogICAgIFtzdXBlciBf
cHVibGlzaF07CiAjZWxzZQogICAgIFtzdXBlciBwdWJsaXNoXTsKICNlbmRpZgogfQogCi0jaWYg
VVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJ
U0hJTkdfU1BJKQogLSAodm9pZClfdW5wdWJsaXNoCiAjZWxzZQogLSAodm9pZCl1bnB1Ymxpc2gK
ICNlbmRpZgogewotI2lmIFVTRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUo
TlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKICAgICBbc3VwZXIgX3VucHVibGlzaF07CiAjZWxz
ZQogICAgIFtzdXBlciB1bnB1Ymxpc2hdOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU1MzU2KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDEtMjkgIEpvbmF0aGFu
IEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIFBBTDogUmVtb3ZlIG9sZCBp
T1MgdmVyc2lvbiBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNjkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZFByb2dy
ZXNzLm1tOiBSZXBsYWNlIFVTRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorICAgICAgICB3
aXRoIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKKwogMjAyMC0wMS0yOSAgQ2FybG9z
IEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBGaXggVGVzdFdlYktpdEFQSS9UZXN0SlNDOi9qc2Mvb3B0aW9ucyBBUEkgdGVzdCBhZnRlciBy
MjU1MzE0CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25s
b2FkUHJvZ3Jlc3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb3dubG9hZFByb2dyZXNzLm1tCShyZXZpc2lvbiAyNTUzNTUpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3MubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKXRlYXJEb3duCiAgICAgfQog
CiAgICAgaWYgKG1fcHJvZ3Jlc3NTdWJzY3JpYmVyKSB7Ci0jaWYgVVNFKE5TUFJPR1JFU1NfUFVC
TElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogICAgICAg
ICBbTlNQcm9ncmVzcyBfcmVtb3ZlU3Vic2NyaWJlcjptX3Byb2dyZXNzU3Vic2NyaWJlci5nZXQo
KV07CiAjZWxzZQogICAgICAgICBbTlNQcm9ncmVzcyByZW1vdmVTdWJzY3JpYmVyOm1fcHJvZ3Jl
c3NTdWJzY3JpYmVyLmdldCgpXTsKQEAgLTIxNiw3ICsyMTYsNyBAQCAtICh2b2lkKXN1YnNjcmli
ZUFuZFdhaXRGb3JQcm9ncmVzcwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TUHJv
Z3Jlc3NVbnB1Ymxpc2hpbmdIYW5kbGVyPihuaWwpOwogICAgICAgICB9KTsKIAotI2lmIFVTRShO
U1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSSkKICAgICAgICAgbV9wcm9ncmVzc1N1YnNjcmliZXIgPSBbTlNQcm9ncmVzcyBfYWRkU3Vi
c2NyaWJlckZvckZpbGVVUkw6bV9wcm9ncmVzc1VSTC5nZXQoKSB3aXRoUHVibGlzaGluZ0hhbmRs
ZXI6cHVibGlzaGluZ0hhbmRsZXIuZ2V0KCldOwogI2Vsc2UKICAgICAgICAgbV9wcm9ncmVzc1N1
YnNjcmliZXIgPSBbTlNQcm9ncmVzcyBhZGRTdWJzY3JpYmVyRm9yRmlsZVVSTDptX3Byb2dyZXNz
VVJMLmdldCgpIHdpdGhQdWJsaXNoaW5nSGFuZGxlcjpwdWJsaXNoaW5nSGFuZGxlci5nZXQoKV07
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389175</attachid>
            <date>2020-01-29 13:13:11 -0800</date>
            <delta_ts>2020-01-30 09:47:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206905-20200129131310.patch</filename>
            <type>text/plain</type>
            <size>17676</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTUzNzQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUhhdmUuaDogQWRkIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSksIEhBVkUo
U0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORykKKyAgICAgICAgYW5kIEhBVkUo
TlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkuCisKIDIwMjAtMDEtMjggIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFNob3VsZCB1c2Ug
bGlnaHQgdGhlbWUgdW5sZXNzIHdlYnNpdGUgZGVjbGFyZXMgc3VwcG9ydCBmb3IgZGFyayB0aGVt
ZXMgaW4gY29sb3Itc2NoZW1lcyBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHJl
dmlzaW9uIDI1NTM3NCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NzQsMyArNTc0LDE1IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICEoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNDAwKSAm
JiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEhBVkVf
Q0dfUEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVDVCAxCiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKENPQ09BKQorI2RlZmluZSBIQVZFX1NFQ1VSRV9BUkNISVZFUl9BUEkgMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVf
U0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORyAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpIHx8IChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiAhKGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91
bmRhdGlvbi9DRlByaXYuaD4pKSkKKyNkZWZpbmUgSEFWRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdf
U1BJIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjU1Mzc0KQorKysgU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAt
MDEtMjkgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIFBB
TDogUmVtb3ZlIG9sZCBpT1MgdmVyc2lvbiBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdlcywgY292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdl
YkFyY2hpdmVNYWMubW06IFJlcGxhY2UgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpIHdpdGggSEFW
RShTRUNVUkVfQVJDSElWRVJfQVBJKS4KKyAgICAgICAgKiB0ZXN0aW5nL2NvY29hL1dlYkFyY2hp
dmVEdW1wU3VwcG9ydC5tbTogRGl0dG8uCisKIDIwMjAtMDEtMjkgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIGBEZWNsYXJhdGl2
ZUFuaW1hdGlvbmAgZm9yIENTUyBBbmltYXRpb24gaXMgbm90IGFsd2F5cyBkZXN0cm95ZWQgd2hl
biBjbGFzcyB0aGF0IGFwcGxpZXMgYGFuaW1hdGlvbi1uYW1lYCBpcyByZW1vdmVkCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NTM3NCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wMS0yOSAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisKKyAgICAgICAgUEFMOiBSZW1vdmUg
b2xkIGlPUyB2ZXJzaW9uIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06IFJlbW92
ZSBpT1MgMTMgdmVyc2lvbiBjaGVja3MuCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaDogUmVtb3ZlIGlPUyAxMSB2ZXJzaW9uIGNoZWNrcy4KKyAgICAgICAgKiBwYWwvc3BpL2Nn
L0NvcmVHcmFwaGljc1NQSS5oOiBVc2UgSEFWRSBtYWNybyBpbnN0ZWFkIG9mIHZlcnNpb24gY2hl
Y2tzLgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg6IFJlbW92ZSBpT1Mg
MTEgdmVyc2lvbiBjaGVja3MuCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2
ZXJTUEkuaDogUmVwbGFjZSBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkgd2l0aAorICAgICAgICBI
QVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpIGFuZCBVU0UoU0VDVVJFX0FSQ0hJVkVSX0ZPUl9BVFRS
SUJVVEVEX1NUUklORykgd2l0aAorICAgICAgICBIQVZFKFNFQ1VSRV9BUkNISVZFUl9GT1JfQVRU
UklCVVRFRF9TVFJJTkcpLgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvTlNQcm9ncmVzc1NQSS5o
OiBSZXBsYWNlIFVTRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKSB3aXRoCisgICAgICAgIEhB
VkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkuCisgICAgICAgICogcGFsL3NwaS9pb3MvTWVk
aWFQbGF5ZXJTUEkuaDogUmVtb3ZlIGlPUyAxMSB2ZXJzaW9uIGNoZWNrcy4KKwogMjAyMC0wMS0y
OSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NTM0NS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQkocmV2aXNpb24gMjU1
Mzc0KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEzMDAwMCkKKyNpZiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFU
Rk9STShBUFBMRVRWKQogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBQQUxfRVhQT1JUKQogI2Vsc2UKIEBpbnRlcmZhY2UgQVZQbGF5
ZXJJdGVtIChEaXNhYmxlS1ZPT25TdXByZXNzZXNWaWRlb0xheWVycykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAyNTUzNzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEzLDcgKzIxMyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5T
VVJMU2Vzc2lvbkMKIEBwcm9wZXJ0eSAobnVsbGFibGUsIHJlYWR3cml0ZSwgcmV0YWluKSBOU1VS
TCAqX3NpdGVGb3JDb29raWVzOwogQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgX2lzVG9wTGV2
ZWxOYXZpZ2F0aW9uOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQ
UExFVFYpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBCT09MIF9wcmVjb25uZWN0Owog
I2VuZGlmCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAkocmV2aXNpb24gMjU1Mzc0KQorKysgU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4Miw3ICsy
ODIsNyBAQCB2b2lkIENHQ29udGV4dFNldFN0eWxlKENHQ29udGV4dFJlZiwgQ0dTCiAKIHZvaWQg
Q0dDb250ZXh0RHJhd0NvbmljR3JhZGllbnQoQ0dDb250ZXh0UmVmLCBDR0dyYWRpZW50UmVmLCBD
R1BvaW50IGNlbnRlciwgQ0dGbG9hdCBhbmdsZSk7CiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkK
KyNpZiBIQVZFKENHX1BBVEhfVU5FVkVOX0NPUk5FUlNfUk9VTkRFRFJFQ1QpCiB2b2lkIENHUGF0
aEFkZFVuZXZlbkNvcm5lcnNSb3VuZGVkUmVjdChDR011dGFibGVQYXRoUmVmLCBjb25zdCBDR0Fm
ZmluZVRyYW5zZm9ybSAqLCBDR1JlY3QsIGNvbnN0IENHU2l6ZSBjb3JuZXJzWzRdKTsKICNlbmRp
ZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZh
Y2VTUEkuaAkocmV2aXNpb24gMjU1Mzc0KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvSU9TdXJmYWNlU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBX
VEZfRVhURVJOX0NfRU5ECiAKICNlbHNlCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA8IDExMDAwMAorI2lmIFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExF
VFYpCiB0eXBlZGVmIHVpbnQzMl90IElPU3VyZmFjZUlEOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQ
SS5oCShyZXZpc2lvbiAyNTUzNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9OU0tleWVkQXJjaGl2ZXJTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDcgQEAK
ICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
LSNkZWZpbmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9BUEkgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDIwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCi0KLSNkZWZp
bmUgVVNFX1NFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklCVVRFRF9TVFJJTkcgKFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVU
VikpCi0KLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiBIQVZFKFNFQ1VSRV9BUkNI
SVZFUl9BUEkpCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEZvdW5kYXRp
b24vTlNLZXllZEFyY2hpdmVyX1ByaXZhdGUuaD4KICNlbHNlCkBAIC01NiwxMSArNTIsMTEgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAjZW5kaWYg
LyogVVNFKEFQUExFX0lOVEVSTkFMX1NESykgKi8KLSNlbmRpZiAvKiBVU0UoU0VDVVJFX0FSQ0hJ
VkVSX0FQSSkgKi8KKyNlbmRpZiAvKiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpICovCiAKIGlu
bGluZSBOU0RhdGEgKl9OdWxsYWJsZSBzZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0
KGlkIF9Ob25udWxsIG9iamVjdCkKIHsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNp
ZiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNFcnJvciAqZXJyb3I7CiAgICAgTlNE
YXRhICpkYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdDpv
YmplY3QgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFUyBlcnJvcjomZXJyb3JdOwogICAgIGlmICgh
ZGF0YSkKQEAgLTczLDcgKzY5LDcgQEAgaW5saW5lIE5TRGF0YSAqX051bGxhYmxlIHNlY3VyZWx5
QXJjaGl2ZQogCiBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5zZWN1cmVseUFyY2hpdmVkRGF0
YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdCkKIHsKLSNpZiBVU0UoU0VDVVJFX0FS
Q0hJVkVSX0FQSSkKKyNpZiBIQVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNFcnJvciAq
ZXJyb3I7CiAgICAgTlNEYXRhICpkYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFX
aXRoUm9vdE9iamVjdDpvYmplY3QgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOk5PIGVycm9yOiZlcnJv
cl07CiAgICAgaWYgKCFkYXRhKQpAQCAtOTMsOCArODksOCBAQCBpbmxpbmUgaWQgX051bGxhYmxl
IGluc2VjdXJlbHlVbmFyY2hpdmVPCiAKIGlubGluZSBpZCBfTnVsbGFibGUgdW5hcmNoaXZlZE9i
amVjdE9mQ2xhc3Nlc0Zyb21EYXRhKE5TU2V0PENsYXNzPiAqIF9Ob25udWxsIGNsYXNzZXMsIE5T
RGF0YSAqIF9Ob25udWxsIGRhdGEpCiB7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCi0j
aWYgIVVTRShTRUNVUkVfQVJDSElWRVJfRk9SX0FUVFJJQlVURURfU1RSSU5HKQorI2lmIEhBVkUo
U0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiAhSEFWRShTRUNVUkVfQVJDSElWRVJfRk9SX0FUVFJJ
QlVURURfU1RSSU5HKQogICAgIC8vIFJlbW92ZSB0aGlzIGNvZGUgd2hlbiB0aGUgZml4IGZyb20g
PHJkYXI6Ly9wcm9ibGVtLzMxMzc2ODMwPiBpcyBkZXBsb3llZCB0byBhbGwgcmVsZXZhbnQgYnVp
bGQgdGFyZ2V0cy4KICAgICBpZiAoW2NsYXNzZXMgY29udGFpbnNPYmplY3Q6W05TQXR0cmlidXRl
ZFN0cmluZyBjbGFzc11dKQogICAgICAgICByZXR1cm4gaW5zZWN1cmVseVVuYXJjaGl2ZU9iamVj
dEZyb21EYXRhKGRhdGEpOwpAQCAtMTEyLDcgKzEwOCw3IEBAIGlubGluZSBpZCBfTnVsbGFibGUg
dW5hcmNoaXZlZE9iamVjdE9mQ2wKIAogaW5saW5lIFJldGFpblB0cjxOU0tleWVkQXJjaGl2ZXI+
IHNlY3VyZUFyY2hpdmVyKCkKIHsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiBI
QVZFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNLZXllZEFyY2hpdmVyICphcmNoaXZlciA9
IFtbTlNLZXllZEFyY2hpdmVyIGFsbG9jXSBpbml0UmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFU107
CiAjZWxzZQogICAgIE5TS2V5ZWRBcmNoaXZlciAqYXJjaGl2ZXIgPSBbW05TS2V5ZWRBcmNoaXZl
ciBhbGxvY10gaW5pdF07CkBAIC0xMjMsNyArMTE5LDcgQEAgaW5saW5lIFJldGFpblB0cjxOU0tl
eWVkQXJjaGl2ZXI+IHNlY3VyZQogCiBpbmxpbmUgUmV0YWluUHRyPE5TS2V5ZWRVbmFyY2hpdmVy
PiBzZWN1cmVVbmFyY2hpdmVyRnJvbURhdGEoTlNEYXRhICpfTm9ubnVsbCBkYXRhKQogewotI2lm
IFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQorI2lmIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSkK
ICAgICBOU0tleWVkVW5hcmNoaXZlciAqdW5hcmNoaXZlciA9IFtbTlNLZXllZFVuYXJjaGl2ZXIg
YWxsb2NdIGluaXRGb3JSZWFkaW5nRnJvbURhdGE6ZGF0YSBlcnJvcjpuaWxdOwogICAgIHVuYXJj
aGl2ZXIuZGVjb2RpbmdGYWlsdXJlUG9saWN5ID0gTlNEZWNvZGluZ0ZhaWx1cmVQb2xpY3lSYWlz
ZUV4Y2VwdGlvbjsKICNlbHNlCkBAIC0xMzUsNyArMTMxLDcgQEAgaW5saW5lIFJldGFpblB0cjxO
U0tleWVkVW5hcmNoaXZlcj4gc2VjdQogCiBpbmxpbmUgaWQgX051bGxhYmxlIGRlY29kZU9iamVj
dE9mQ2xhc3NGb3JLZXlGcm9tQ29kZXIoQ2xhc3MgX05vbm51bGwgY2xzLCBOU1N0cmluZyAqIF9O
b25udWxsIGtleSwgTlNDb2RlciAqIF9Ob25udWxsIGNvZGVyKQogewotI2lmIFVTRShTRUNVUkVf
QVJDSElWRVJfQVBJKQorI2lmIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKICAgICByZXR1cm4g
W2NvZGVyIGRlY29kZU9iamVjdE9mQ2xhc3M6Y2xzIGZvcktleTprZXldOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oY2xzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L05TUHJvZ3Jlc3NTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jb2NvYS9OU1Byb2dyZXNzU1BJLmgJKHJldmlzaW9uIDI1NTM3NCkKKysrIFNvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL05TUHJvZ3Jlc3NTUEkuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsMTQgKzI3LDExIEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCi0jZGVmaW5l
IFVTRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTMwMDAwCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL05TUHJvZ3Jlc3NfUHJpdmF0ZS5oPgogCiAjZWxzZQogCi0jZGVmaW5lIFVTRV9OU1BST0dS
RVNTX1BVQkxJU0hJTkdfU1BJIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKFdBVENI
T1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0KLSNpZiBVU0VfTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKIAogQGludGVyZmFjZSBO
U1Byb2dyZXNzICgpCiAKQEAgLTQ1LDYgKzQyLDYgQEAKIAogQGVuZAogCi0jZW5kaWYgLy8gVVNF
X05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkKKyNlbmRpZiAvLyBIQVZFKE5TUFJPR1JFU1NfUFVC
TElTSElOR19TUEkpCiAKICNlbmRpZiAvLyBub3QgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5o
CShyZXZpc2lvbiAyNTUzNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVk
aWFQbGF5ZXJTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDExIEBACiAKICNpbXBv
cnQgPE1lZGlhUGxheWVyL01QQVZSb3V0aW5nQ29udHJvbGxlci5oPgogCi0jaWYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisjaWYgIVBMQVRGT1JNKFdBVENIT1Mp
ICYmICFQTEFURk9STShBUFBMRVRWKQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBNZWRpYUNvbnRy
b2xzQ29uZmlndXJhdGlvbi5oPgogI2VuZGlmCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDAgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShB
UFBMRVRWKQorI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKICNp
bXBvcnQgPE1lZGlhUGxheWVyL01QTWVkaWFDb250cm9sc1ZpZXdDb250cm9sbGVyLmg+CiAjZWxz
ZQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBBVlJvdXRpbmdTaGVldC5oPgpAQCAtNjQsNyArNjQs
NyBAQCB0eXBlZGVmIE5TSW50ZWdlciBNUFJvdXRlRGlzY292ZXJ5TW9kZTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBhc3NpZ24pIE1QUm91dGVEaXNjb3ZlcnlNb2RlIGRpc2NvdmVyeU1vZGU7CiBA
ZW5kCiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAgJiYg
IVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQorI2lmICFQTEFURk9STShX
QVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIAogQGludGVyZmFjZSBNUE1lZGlhQ29udHJv
bHNWaWV3Q29udHJvbGxlciA6IFVJVmlld0NvbnRyb2xsZXIKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBudWxsYWJsZSkgdm9pZCAoXmRpZERpc21pc3NIYW5kbGVyKSh2b2lkKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2Vi
QXJjaGl2ZU1hYy5tbQkocmV2aXNpb24gMjU1Mzc0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDQs
NyArNDQsNyBAQCBSZXNvdXJjZVJlc3BvbnNlIExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0CiAgICAg
ICAgIHJldHVybiBSZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAgCiAgICAgTlNVUkxSZXNwb25zZSAq
cmVzcG9uc2UgPSBuaWw7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCisjaWYgSEFWRShT
RUNVUkVfQVJDSElWRVJfQVBJKQogICAgIGF1dG8gdW5hcmNoaXZlciA9IHNlY3VyZVVuYXJjaGl2
ZXJGcm9tRGF0YSgoX19icmlkZ2UgTlNEYXRhICopcmVzcG9uc2VEYXRhKTsKICAgICBAdHJ5IHsK
ICAgICAgICAgcmVzcG9uc2UgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNzOltOU1VS
TFJlc3BvbnNlIGNsYXNzXSBmb3JLZXk6TGVnYWN5V2ViQXJjaGl2ZVJlc291cmNlUmVzcG9uc2VL
ZXldOwpAQCAtNzIsNyArNzIsNyBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBMZWdhY3lXZWJBcmNo
aXZlOjpjCiAgICAgaWYgKCFuc1Jlc3BvbnNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
I2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQorI2lmIEhBVkUoU0VDVVJFX0FSQ0hJVkVSX0FQ
SSkKICAgICBhdXRvIGFyY2hpdmVyID0gc2VjdXJlQXJjaGl2ZXIoKTsKICAgICBbYXJjaGl2ZXIg
ZW5jb2RlT2JqZWN0Om5zUmVzcG9uc2UgZm9yS2V5OkxlZ2FjeVdlYkFyY2hpdmVSZXNvdXJjZVJl
c3BvbnNlS2V5XTsKICAgICByZXR1cm4gcmV0YWluUHRyKChfX2JyaWRnZSBDRkRhdGFSZWYpYXJj
aGl2ZXIuZ2V0KCkuZW5jb2RlZERhdGEpOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9j
b2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvdGVzdGluZy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0JKHJldmlzaW9uIDI1NTM3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvY29jb2EvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlVGVz
dFN1cHBvcnQgewogc3RhdGljIENGVVJMUmVzcG9uc2VSZWYgY3JlYXRlQ0ZVUkxSZXNwb25zZUZy
b21SZXNwb25zZURhdGEoQ0ZEYXRhUmVmIHJlc3BvbnNlRGF0YSkKIHsKICAgICBOU1VSTFJlc3Bv
bnNlICpyZXNwb25zZTsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKKyNpZiBIQVZFKFNF
Q1VSRV9BUkNISVZFUl9BUEkpCiAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZl
ckZyb21EYXRhKChfX2JyaWRnZSBOU0RhdGEgKilyZXNwb25zZURhdGEpOwogICAgIEB0cnkgewog
ICAgICAgICByZXNwb25zZSA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TVVJM
UmVzcG9uc2UgY2xhc3NdIGZvcktleTpAIldlYlJlc291cmNlUmVzcG9uc2UiXTsgLy8gV2ViUmVz
b3VyY2VSZXNwb25zZUtleSBpbiBXZWJSZXNvdXJjZS5tCkluZGV4OiBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24g
MjU1Mzc0KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0yOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5j
b20+CisKKyAgICAgICAgUEFMOiBSZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3JvcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTA1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvY29jb2EvRG93bmxvYWRDb2NvYS5tbTogUmVwbGFjZSBVU0UoTlNQUk9HUkVT
U19QVUJMSVNISU5HX1NQSSkKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29j
b2EvV0tEb3dubG9hZFByb2dyZXNzLm1tOiBEaXR0by4KKwogMjAyMC0wMS0yOSAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjU1MjE3IGFuZCByMjU1MjE3LgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvY29jb2EvRG93bmxvYWRDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1t
CShyZXZpc2lvbiAyNTUzNzQpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3
IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3JtQ2FuY2VsTmV0d29ya0xvYWQKIHZvaWQgRG93bmxv
YWQ6OnBsYXRmb3JtRGVzdHJveURvd25sb2FkKCkKIHsKICAgICBpZiAobV9wcm9ncmVzcykKLSNp
ZiBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVC
TElTSElOR19TUEkpCiAgICAgICAgIFttX3Byb2dyZXNzIF91bnB1Ymxpc2hdOwogI2Vsc2UKICAg
ICAgICAgW21fcHJvZ3Jlc3MgdW5wdWJsaXNoXTsKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIERv
d25sb2FkOjpwdWJsaXNoUHJvZ3Jlc3MoY29uc3QgVVJMCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcHJvZ3Jlc3MgPSBhZG9wdE5TKFtbV0tEb3dubG9hZFByb2dyZXNzIGFsbG9jXSBpbml0V2l0
aERvd25sb2FkVGFzazptX2Rvd25sb2FkVGFzay5nZXQoKSBkb3dubG9hZDoqdGhpcyBVUkw6KE5T
VVJMICopdXJsIHNhbmRib3hFeHRlbnNpb246c2FuZGJveEV4dGVuc2lvbl0pOwotI2lmIFVTRShO
U1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSSkKICAgICBbbV9wcm9ncmVzcyBfcHVibGlzaF07CiAjZWxzZQogICAgIFttX3Byb2dyZXNz
IHB1Ymxpc2hdOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
Y29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQkocmV2
aXNpb24gMjU1Mzc0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
Y29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERvd25sb2FkVGFzazooTlMKICAgICByZXR1cm4g
c2VsZjsKIH0KIAotI2lmIFVTRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUo
TlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKIC0gKHZvaWQpX3B1Ymxpc2gKICNlbHNlCiAtICh2
b2lkKXB1Ymxpc2gKQEAgLTg5LDIwICs4OSwyMCBAQCAtICh2b2lkKXB1Ymxpc2gKICAgICBCT09M
IGNvbnN1bWVkRXh0ZW5zaW9uID0gbV9zYW5kYm94RXh0ZW5zaW9uLT5jb25zdW1lKCk7CiAgICAg
QVNTRVJUX1VOVVNFRChjb25zdW1lZEV4dGVuc2lvbiwgY29uc3VtZWRFeHRlbnNpb24pOwogCi0j
aWYgVVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BV
QkxJU0hJTkdfU1BJKQogICAgIFtzdXBlciBfcHVibGlzaF07CiAjZWxzZQogICAgIFtzdXBlciBw
dWJsaXNoXTsKICNlbmRpZgogfQogCi0jaWYgVVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkp
CisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogLSAodm9pZClfdW5wdWJsaXNo
CiAjZWxzZQogLSAodm9pZCl1bnB1Ymxpc2gKICNlbmRpZgogewotI2lmIFVTRShOU1BST0dSRVNT
X1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKICAg
ICBbc3VwZXIgX3VucHVibGlzaF07CiAjZWxzZQogICAgIFtzdXBlciB1bnB1Ymxpc2hdOwpJbmRl
eDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjU1Mzc0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjAtMDEtMjkgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgor
CisgICAgICAgIFBBTDogUmVtb3ZlIG9sZCBpT1MgdmVyc2lvbiBtYWNyb3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjkwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Eb3dubG9hZFByb2dyZXNzLm1tOiBSZXBsYWNlIFVTRShOU1BST0dSRVNT
X1BVQkxJU0hJTkdfU1BJKQorICAgICAgICB3aXRoIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSSkKKwogMjAyMC0wMS0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIEdpdmUgdXAgSUMgd2hlbiB1bmtub3duIHN0cnVjdHVyZSB0cmFuc2l0
aW9uIGhhcHBlbnMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RG93bmxvYWRQcm9ncmVzcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3MubW0JKHJldmlzaW9uIDI1NTM3NCkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWRQcm9ncmVzcy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIC0gKHZvaWQpdGVhckRvd24KICAg
ICB9CiAKICAgICBpZiAobV9wcm9ncmVzc1N1YnNjcmliZXIpIHsKLSNpZiBVU0UoTlNQUk9HUkVT
U19QVUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCiAg
ICAgICAgIFtOU1Byb2dyZXNzIF9yZW1vdmVTdWJzY3JpYmVyOm1fcHJvZ3Jlc3NTdWJzY3JpYmVy
LmdldCgpXTsKICNlbHNlCiAgICAgICAgIFtOU1Byb2dyZXNzIHJlbW92ZVN1YnNjcmliZXI6bV9w
cm9ncmVzc1N1YnNjcmliZXIuZ2V0KCldOwpAQCAtMjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQpc3Vi
c2NyaWJlQW5kV2FpdEZvclByb2dyZXNzCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
TlNQcm9ncmVzc1VucHVibGlzaGluZ0hhbmRsZXI+KG5pbCk7CiAgICAgICAgIH0pOwogCi0jaWYg
VVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJ
U0hJTkdfU1BJKQogICAgICAgICBtX3Byb2dyZXNzU3Vic2NyaWJlciA9IFtOU1Byb2dyZXNzIF9h
ZGRTdWJzY3JpYmVyRm9yRmlsZVVSTDptX3Byb2dyZXNzVVJMLmdldCgpIHdpdGhQdWJsaXNoaW5n
SGFuZGxlcjpwdWJsaXNoaW5nSGFuZGxlci5nZXQoKV07CiAjZWxzZQogICAgICAgICBtX3Byb2dy
ZXNzU3Vic2NyaWJlciA9IFtOU1Byb2dyZXNzIGFkZFN1YnNjcmliZXJGb3JGaWxlVVJMOm1fcHJv
Z3Jlc3NVUkwuZ2V0KCkgd2l0aFB1Ymxpc2hpbmdIYW5kbGVyOnB1Ymxpc2hpbmdIYW5kbGVyLmdl
dCgpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389259</attachid>
            <date>2020-01-30 09:47:05 -0800</date>
            <delta_ts>2020-01-30 11:06:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206905-20200130094704.patch</filename>
            <type>text/plain</type>
            <size>19283</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTU0MzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTMwICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybUhhdmUuaDogQWRkIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSku
CisKIDIwMjAtMDEtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFNob3VsZCB1c2UgbGlnaHQgdGhlbWUgdW5sZXNzIHdlYnNpdGUg
ZGVjbGFyZXMgc3VwcG9ydCBmb3IgZGFyayB0aGVtZXMgaW4gY29sb3Itc2NoZW1lcyBwcm9wZXJ0
eQpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHJldmlzaW9uIDI1NTQzMCkKKysrIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzQsMyArNTc0LDcgQEAK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgIShQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE0MDApICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExB
VEZPUk0oQVBQTEVUVikKICNkZWZpbmUgSEFWRV9DR19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5E
RURSRUNUIDEKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQ
TEVUVikgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICEoZGVmaW5lZCBfX2hhc19pbmNsdWRl
ICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5oPikpKQorI2RlZmluZSBI
QVZFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTU0MzApCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wMS0zMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFy
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgUEFMOiBSZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3Jv
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gZnVu
Y3Rpb25hbCBjaGFuZ2VzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbTogUmVtb3ZlIFVTRShTRUNV
UkVfQVJDSElWRVJfQVBJKS4KKyAgICAgICAgKiB0ZXN0aW5nL2NvY29hL1dlYkFyY2hpdmVEdW1w
U3VwcG9ydC5tbTogRGl0dG8uCisKIDIwMjAtMDEtMzAgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5w
YXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB0aGUgYnVpbGQg
d2FybmluZyBzaW5jZSByMjU0OTkxIGFzIGJlbG93LgpJbmRleDogU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTU0MzApCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDEtMzAgIEpvbmF0aGFuIEJlZGFyZCAgPGpi
ZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIFBBTDogUmVtb3ZlIG9sZCBpT1MgdmVyc2lvbiBt
YWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NjkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOiBSZW1vdmUgaU9TIDEzIHZlcnNpb24g
Y2hlY2tzLgorICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6IFJlbW92ZSBpT1Mg
MTEgdmVyc2lvbiBjaGVja3MuCisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aDogVXNlIEhBVkUgbWFjcm8gaW5zdGVhZCBvZiB2ZXJzaW9uIGNoZWNrcy4KKyAgICAgICAgKiBw
YWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oOiBSZW1vdmUgaU9TIDExIHZlcnNpb24gY2hlY2tz
LgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmg6IFJlbW92ZSBV
U0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkgYW5kCisgICAgICAgIFVTRShTRUNVUkVfQVJDSElWRVJf
Rk9SX0FUVFJJQlVURURfU1RSSU5HKS4KKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05TUHJvZ3Jl
c3NTUEkuaDogUmVwbGFjZSBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkgd2l0aAorICAg
ICAgICBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpLgorICAgICAgICAqIHBhbC9zcGkv
aW9zL01lZGlhUGxheWVyU1BJLmg6IFJlbW92ZSBpT1MgMTEgdmVyc2lvbiBjaGVja3MuCisKIDIw
MjAtMDEtMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSB0byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRl
cgpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLm1tCShyZXZpc2lvbiAyNTU0MzApCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3
ICszMCw3IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0
IDx3dGYvU29mdExpbmtpbmcuaD4KIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2lmICEoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSAm
JiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiBTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIFBBTF9FWFBP
UlQpCiAjZWxzZQogQGludGVyZmFjZSBBVlBsYXllckl0ZW0gKERpc2FibGVLVk9PblN1cHJlc3Nl
c1ZpZGVvTGF5ZXJzKQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZO
ZXR3b3JrU1BJLmgJKHJldmlzaW9uIDI1NTQzMCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyArMjEzLDcgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNVUkxTZXNzaW9uQwogQHByb3BlcnR5IChudWxs
YWJsZSwgcmVhZHdyaXRlLCByZXRhaW4pIE5TVVJMICpfc2l0ZUZvckNvb2tpZXM7CiBAcHJvcGVy
dHkgKHJlYWR3cml0ZSkgQk9PTCBfaXNUb3BMZXZlbE5hdmlnYXRpb247CiAjZW5kaWYKLSNpZiBQ
TEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFU
Rk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBhc3NpZ24pIEJPT0wgX3ByZWNvbm5lY3Q7CiAjZW5kaWYKIEBlbmQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCShyZXZpc2lvbiAy
NTU0MzApCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQgQ0dDb250ZXh0U2V0U3R5
bGUoQ0dDb250ZXh0UmVmLCBDR1MKIAogdm9pZCBDR0NvbnRleHREcmF3Q29uaWNHcmFkaWVudChD
R0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYsIENHUG9pbnQgY2VudGVyLCBDR0Zsb2F0IGFuZ2xl
KTsKIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQorI2lmIEhBVkUoQ0dfUEFUSF9VTkVWRU5fQ09S
TkVSU19ST1VOREVEUkVDVCkKIHZvaWQgQ0dQYXRoQWRkVW5ldmVuQ29ybmVyc1JvdW5kZWRSZWN0
KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtICosIENHUmVjdCwgY29u
c3QgQ0dTaXplIGNvcm5lcnNbNF0pOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCShyZXZpc2lvbiAyNTU0MzApCisr
KyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIFdURl9FWFRFUk5fQ19FTkQKIAogI2Vsc2UKIAot
I2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEwMDAwCisjaWYgUExBVEZP
Uk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKIHR5cGVkZWYgdWludDMyX3QgSU9TdXJm
YWNlSUQ7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
TlNLZXllZEFyY2hpdmVyU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgJKHJldmlzaW9uIDI1NTQzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSwxMSArMjksNiBAQAogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2RlZmluZSBVU0VfU0VDVVJFX0FSQ0hJVkVS
X0FQSSAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMjAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8
fCBQTEFURk9STShBUFBMRVRWKSkKLQotI2RlZmluZSBVU0VfU0VDVVJFX0FSQ0hJVkVSX0ZPUl9B
VFRSSUJVVEVEX1NUUklORyAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9S
TShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkKLQotI2lmIFVTRShTRUNVUkVfQVJDSElW
RVJfQVBJKQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L05TS2V5ZWRBcmNoaXZlcl9Qcml2YXRlLmg+CiAjZWxzZQpAQCAtNTYsMzIgKzUxLDIzIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2VuZGlmIC8q
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspICovCi0jZW5kaWYgLyogVVNFKFNFQ1VSRV9BUkNISVZF
Ul9BUEkpICovCiAKIGlubGluZSBOU0RhdGEgKl9OdWxsYWJsZSBzZWN1cmVseUFyY2hpdmVkRGF0
YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdCkKIHsKLSNpZiBVU0UoU0VDVVJFX0FS
Q0hJVkVSX0FQSSkKICAgICBOU0Vycm9yICplcnJvcjsKICAgICBOU0RhdGEgKmRhdGEgPSBbTlNL
ZXllZEFyY2hpdmVyIGFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0Om9iamVjdCByZXF1aXJpbmdT
ZWN1cmVDb2Rpbmc6WUVTIGVycm9yOiZlcnJvcl07CiAgICAgaWYgKCFkYXRhKQogICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZSB0byBhcmNoaXZlIGRhdGE6ICVAIiwgZXJyb3IpOwogICAgIHJldHVy
biBkYXRhOwotI2Vsc2UKLSAgICByZXR1cm4gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFX
aXRoUm9vdE9iamVjdDpvYmplY3RdOwotI2VuZGlmCiB9CiAKIGlubGluZSBOU0RhdGEgKl9OdWxs
YWJsZSBpbnNlY3VyZWx5QXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3QoaWQgX05vbm51bGwgb2Jq
ZWN0KQogewotI2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQogICAgIE5TRXJyb3IgKmVycm9y
OwogICAgIE5TRGF0YSAqZGF0YSA9IFtOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJv
b3RPYmplY3Q6b2JqZWN0IHJlcXVpcmluZ1NlY3VyZUNvZGluZzpOTyBlcnJvcjomZXJyb3JdOwog
ICAgIGlmICghZGF0YSkKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gYXJjaGl2ZSBkYXRh
OiAlQCIsIGVycm9yKTsKICAgICByZXR1cm4gZGF0YTsKLSNlbHNlCi0gICAgcmV0dXJuIFtOU0tl
eWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6b2JqZWN0XTsKLSNlbmRpZgog
fQogCiBpbmxpbmUgaWQgX051bGxhYmxlIGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0
YShOU0RhdGEgKiBfTm9ubnVsbCBkYXRhKQpAQCAtOTMsNTIgKzc5LDI3IEBAIGlubGluZSBpZCBf
TnVsbGFibGUgaW5zZWN1cmVseVVuYXJjaGl2ZU8KIAogaW5saW5lIGlkIF9OdWxsYWJsZSB1bmFy
Y2hpdmVkT2JqZWN0T2ZDbGFzc2VzRnJvbURhdGEoTlNTZXQ8Q2xhc3M+ICogX05vbm51bGwgY2xh
c3NlcywgTlNEYXRhICogX05vbm51bGwgZGF0YSkKIHsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVS
X0FQSSkKLSNpZiAhVVNFKFNFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklCVVRFRF9TVFJJTkcpCi0g
ICAgLy8gUmVtb3ZlIHRoaXMgY29kZSB3aGVuIHRoZSBmaXggZnJvbSA8cmRhcjovL3Byb2JsZW0v
MzEzNzY4MzA+IGlzIGRlcGxveWVkIHRvIGFsbCByZWxldmFudCBidWlsZCB0YXJnZXRzLgotICAg
IGlmIChbY2xhc3NlcyBjb250YWluc09iamVjdDpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0p
Ci0gICAgICAgIHJldHVybiBpbnNlY3VyZWx5VW5hcmNoaXZlT2JqZWN0RnJvbURhdGEoZGF0YSk7
Ci0jZW5kaWYKICAgICBOU0Vycm9yICplcnJvcjsKICAgICBpZCB2YWx1ZSA9IFtOU0tleWVkVW5h
cmNoaXZlciB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzOmNsYXNzZXMgZnJvbURhdGE6ZGF0YSBl
cnJvcjomZXJyb3JdOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIExPR19FUlJPUigiVW5hYmxl
IHRvIHVuYXJjaGl2ZSBkYXRhOiAlQCIsIGVycm9yKTsKICAgICByZXR1cm4gdmFsdWU7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShjbGFzc2VzKTsKLSAgICByZXR1cm4gaW5zZWN1cmVseVVuYXJj
aGl2ZU9iamVjdEZyb21EYXRhKGRhdGEpOwotI2VuZGlmCiB9CiAKIGlubGluZSBSZXRhaW5QdHI8
TlNLZXllZEFyY2hpdmVyPiBzZWN1cmVBcmNoaXZlcigpCiB7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNI
SVZFUl9BUEkpCiAgICAgTlNLZXllZEFyY2hpdmVyICphcmNoaXZlciA9IFtbTlNLZXllZEFyY2hp
dmVyIGFsbG9jXSBpbml0UmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFU107Ci0jZWxzZQotICAgIE5T
S2V5ZWRBcmNoaXZlciAqYXJjaGl2ZXIgPSBbW05TS2V5ZWRBcmNoaXZlciBhbGxvY10gaW5pdF07
Ci0gICAgW2FyY2hpdmVyIHNldFJlcXVpcmVzU2VjdXJlQ29kaW5nOllFU107Ci0jZW5kaWYKICAg
ICByZXR1cm4gYWRvcHROUyhhcmNoaXZlcik7CiB9CiAKIGlubGluZSBSZXRhaW5QdHI8TlNLZXll
ZFVuYXJjaGl2ZXI+IHNlY3VyZVVuYXJjaGl2ZXJGcm9tRGF0YShOU0RhdGEgKl9Ob25udWxsIGRh
dGEpCiB7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNLZXllZFVuYXJjaGl2
ZXIgKnVuYXJjaGl2ZXIgPSBbW05TS2V5ZWRVbmFyY2hpdmVyIGFsbG9jXSBpbml0Rm9yUmVhZGlu
Z0Zyb21EYXRhOmRhdGEgZXJyb3I6bmlsXTsKICAgICB1bmFyY2hpdmVyLmRlY29kaW5nRmFpbHVy
ZVBvbGljeSA9IE5TRGVjb2RpbmdGYWlsdXJlUG9saWN5UmFpc2VFeGNlcHRpb247Ci0jZWxzZQot
ICAgIE5TS2V5ZWRVbmFyY2hpdmVyICp1bmFyY2hpdmVyID0gW1tOU0tleWVkVW5hcmNoaXZlciBh
bGxvY10gaW5pdEZvclJlYWRpbmdXaXRoRGF0YTpkYXRhXTsKLSAgICBbdW5hcmNoaXZlciBzZXRS
ZXF1aXJlc1NlY3VyZUNvZGluZzpZRVNdOwotI2VuZGlmCiAgICAgcmV0dXJuIGFkb3B0TlModW5h
cmNoaXZlcik7CiB9CiAKIGlubGluZSBpZCBfTnVsbGFibGUgZGVjb2RlT2JqZWN0T2ZDbGFzc0Zv
cktleUZyb21Db2RlcihDbGFzcyBfTm9ubnVsbCBjbHMsIE5TU3RyaW5nICogX05vbm51bGwga2V5
LCBOU0NvZGVyICogX05vbm51bGwgY29kZXIpCiB7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9B
UEkpCiAgICAgcmV0dXJuIFtjb2RlciBkZWNvZGVPYmplY3RPZkNsYXNzOmNscyBmb3JLZXk6a2V5
XTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNscyk7Ci0gICAgcmV0dXJuIFtjb2RlciBkZWNv
ZGVPYmplY3RGb3JLZXk6a2V5XTsKLSNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvTlNQcm9ncmVzc1NQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL05TUHJvZ3Jlc3NTUEkuaAkocmV2aXNpb24gMjU1NDMwKQor
KysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNQcm9ncmVzc1NQSS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNywxNCArMjcsMTEgQEAKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAKLSNkZWZpbmUgVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMzAwMDAKICNp
bXBvcnQgPEZvdW5kYXRpb24vTlNQcm9ncmVzc19Qcml2YXRlLmg+CiAKICNlbHNlCiAKLSNkZWZp
bmUgVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwg
UExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLQotI2lmIFVTRV9OU1BST0dS
RVNTX1BVQkxJU0hJTkdfU1BJCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQog
CiBAaW50ZXJmYWNlIE5TUHJvZ3Jlc3MgKCkKIApAQCAtNDUsNiArNDIsNiBAQAogCiBAZW5kCiAK
LSNlbmRpZiAvLyBVU0VfTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSQorI2VuZGlmIC8vIEhBVkUo
TlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKIAogI2VuZGlmIC8vIG5vdCBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxh
eWVyU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01l
ZGlhUGxheWVyU1BJLmgJKHJldmlzaW9uIDI1NTQzMCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMSArMzQs
MTEgQEAKIAogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBBVlJvdXRpbmdDb250cm9sbGVyLmg+CiAK
LSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKKyNpZiAhUExB
VEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjaW1wb3J0IDxNZWRpYVBsYXll
ci9NUE1lZGlhQ29udHJvbHNDb25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIAotI2lmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCAmJiAhUExBVEZPUk0oV0FUQ0hPUykg
JiYgIVBMQVRGT1JNKEFQUExFVFYpCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9S
TShBUFBMRVRWKQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBNZWRpYUNvbnRyb2xzVmlld0NvbnRy
b2xsZXIuaD4KICNlbHNlCiAjaW1wb3J0IDxNZWRpYVBsYXllci9NUEFWUm91dGluZ1NoZWV0Lmg+
CkBAIC02NCw3ICs2NCw3IEBAIHR5cGVkZWYgTlNJbnRlZ2VyIE1QUm91dGVEaXNjb3ZlcnlNb2Rl
OwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTVBSb3V0ZURpc2NvdmVyeU1vZGUgZGlz
Y292ZXJ5TW9kZTsKIEBlbmQKIAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDExMDAwMCAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisj
aWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogCiBAaW50ZXJmYWNl
IE1QTWVkaWFDb250cm9sc1ZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHksIG51bGxhYmxlKSB2b2lkICheZGlkRGlzbWlzc0hhbmRsZXIp
KHZvaWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2Vi
QXJjaGl2ZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9jZi9MZWdhY3lXZWJBcmNoaXZlTWFjLm1tCShyZXZpc2lvbiAyNTU0MzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00NCwxOCArNDQsOSBAQCBSZXNvdXJjZVJlc3BvbnNlIExlZ2FjeVdlYkFyY2hp
dmU6OmNyZWF0CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAgCiAgICAg
TlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBuaWw7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9B
UEkpCiAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZlckZyb21EYXRhKChfX2Jy
aWRnZSBOU0RhdGEgKilyZXNwb25zZURhdGEpOwogICAgIEB0cnkgewogICAgICAgICByZXNwb25z
ZSA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TVVJMUmVzcG9uc2UgY2xhc3Nd
IGZvcktleTpMZWdhY3lXZWJBcmNoaXZlUmVzb3VyY2VSZXNwb25zZUtleV07Ci0jZWxzZQotICAg
IC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzM0MDYzMzEzPiB3ZSBjYW4ndCB1c2Ugc2Vj
dXJlIGNvZGluZyBmb3IgZGVjb2RpbmcgaW4gb2xkZXIgT1Mncy4KLSAgICBhdXRvIHVuYXJjaGl2
ZXIgPSBhZG9wdE5TKFtbTlNLZXllZFVuYXJjaGl2ZXIgYWxsb2NdIGluaXRGb3JSZWFkaW5nV2l0
aERhdGE6KE5TRGF0YSAqKXJlc3BvbnNlRGF0YV0pOwotICAgIEB0cnkgewotICAgICAgICBpZCBy
ZXNwb25zZU9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdEZvcktleTpMZWdhY3lXZWJB
cmNoaXZlUmVzb3VyY2VSZXNwb25zZUtleV07Ci0gICAgICAgIGlmIChbcmVzcG9uc2VPYmplY3Qg
aXNLaW5kT2ZDbGFzczpbTlNVUkxSZXNwb25zZSBjbGFzc11dKQotICAgICAgICAgICAgcmVzcG9u
c2UgPSByZXNwb25zZU9iamVjdDsKLSNlbmRpZgogICAgICAgICBbdW5hcmNoaXZlciBmaW5pc2hE
ZWNvZGluZ107CiAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIE5TKEhUVFApVVJMUmVzcG9uc2U6ICVAIiwg
ZXhjZXB0aW9uKTsKQEAgLTcyLDE5ICs2Myw5IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IExlZ2Fj
eVdlYkFyY2hpdmU6OmMKICAgICBpZiAoIW5zUmVzcG9uc2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgYXV0byBhcmNoaXZlciA9
IHNlY3VyZUFyY2hpdmVyKCk7CiAgICAgW2FyY2hpdmVyIGVuY29kZU9iamVjdDpuc1Jlc3BvbnNl
IGZvcktleTpMZWdhY3lXZWJBcmNoaXZlUmVzb3VyY2VSZXNwb25zZUtleV07CiAgICAgcmV0dXJu
IHJldGFpblB0cigoX19icmlkZ2UgQ0ZEYXRhUmVmKWFyY2hpdmVyLmdldCgpLmVuY29kZWREYXRh
KTsKLSNlbHNlCi0gICAgLy8gQmVjYXVzZSBvZiA8cmRhcjovL3Byb2JsZW0vMzQwNjMzMTM+IHdl
IGNhbid0IHVzZSB0aGlzIGZvciBlbmNvZGluZyBpbiBvbGRlciBPUydzLgotICAgIENGTXV0YWJs
ZURhdGFSZWYgcmVzcG9uc2VEYXRhID0gQ0ZEYXRhQ3JlYXRlTXV0YWJsZSgwLCAwKTsKLSAgICBh
dXRvIGFyY2hpdmVyID0gYWRvcHROUyhbW05TS2V5ZWRBcmNoaXZlciBhbGxvY10gaW5pdEZvcldy
aXRpbmdXaXRoTXV0YWJsZURhdGE6KE5TTXV0YWJsZURhdGEgKilyZXNwb25zZURhdGFdKTsKLSAg
ICBbYXJjaGl2ZXIgZW5jb2RlT2JqZWN0Om5zUmVzcG9uc2UgZm9yS2V5OkxlZ2FjeVdlYkFyY2hp
dmVSZXNvdXJjZVJlc3BvbnNlS2V5XTsKLSAgICBbYXJjaGl2ZXIgZmluaXNoRW5jb2RpbmddOwot
Ci0gICAgcmV0dXJuIGFkb3B0Q0YocmVzcG9uc2VEYXRhKTsKLSNlbmRpZgogfQogCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2NvY29hL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2NvY29hL1dlYkFyY2hpdmVEdW1w
U3VwcG9ydC5tbQkocmV2aXNpb24gMjU1NDMwKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9j
b2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDE2ICs0
Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlVGVzdFN1cHBvcnQgewogc3RhdGljIENGVVJMUmVzcG9u
c2VSZWYgY3JlYXRlQ0ZVUkxSZXNwb25zZUZyb21SZXNwb25zZURhdGEoQ0ZEYXRhUmVmIHJlc3Bv
bnNlRGF0YSkKIHsKICAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZTsKLSNpZiBVU0UoU0VDVVJF
X0FSQ0hJVkVSX0FQSSkKICAgICBhdXRvIHVuYXJjaGl2ZXIgPSBzZWN1cmVVbmFyY2hpdmVyRnJv
bURhdGEoKF9fYnJpZGdlIE5TRGF0YSAqKXJlc3BvbnNlRGF0YSk7CiAgICAgQHRyeSB7CiAgICAg
ICAgIHJlc3BvbnNlID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzczpbTlNVUkxSZXNw
b25zZSBjbGFzc10gZm9yS2V5OkAiV2ViUmVzb3VyY2VSZXNwb25zZSJdOyAvLyBXZWJSZXNvdXJj
ZVJlc3BvbnNlS2V5IGluIFdlYlJlc291cmNlLm0KLSNlbHNlCi0gICAgLy8gQmVjYXVzZSBvZiA8
cmRhcjovL3Byb2JsZW0vMzQwNjMzMTM+IHdlIGNhbid0IHVzZSBzZWN1cmUgY29kaW5nIGZvciBk
ZWNvZGluZyBpbiBvbGRlciBPUydzLgotICAgIGF1dG8gdW5hcmNoaXZlciA9IGFkb3B0TlMoW1tO
U0tleWVkVW5hcmNoaXZlciBhbGxvY10gaW5pdEZvclJlYWRpbmdXaXRoRGF0YTooTlNEYXRhICop
cmVzcG9uc2VEYXRhXSk7Ci0gICAgQHRyeSB7Ci0gICAgICAgIHJlc3BvbnNlID0gW3VuYXJjaGl2
ZXIgZGVjb2RlT2JqZWN0Rm9yS2V5OkAiV2ViUmVzb3VyY2VSZXNwb25zZSJdOyAvLyBXZWJSZXNv
dXJjZVJlc3BvbnNlS2V5IGluIFdlYlJlc291cmNlLm0KLSNlbmRpZgogICAgICAgICBbdW5hcmNo
aXZlciBmaW5pc2hEZWNvZGluZ107CiAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRp
b24pIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIE5TKEhUVFApVVJMUmVz
cG9uc2U6ICVAIiwgZXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTU0MzApCisr
KyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIwLTAxLTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAg
ICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24gbWFjcm9zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9jb2NvYS9Eb3dubG9hZENvY29hLm1tOiBSZW1vdmUgVVNFKE5TUFJPR1JFU1NfUFVCTElTSElO
R19TUEkpCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxv
YWRQcm9ncmVzcy5tbTogRGl0dG8uCisKIDIwMjAtMDEtMzAgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVtb3ZlIHJlcG9ydCBydWxlIGZvciAn
Y29tLmFwcGxlLnJ1bm5pbmdib2FyZCcgZnJvbSB0aGUgTmV0d29yayBhbmQgR1BVIHByb2Nlc3Mg
c2FuZGJveGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9j
b2NvYS9Eb3dubG9hZENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL0Rvd25sb2FkQ29jb2EubW0JKHJldmlzaW9uIDI1NTQz
MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL0Rvd25s
b2FkQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBEb3dubG9h
ZDo6cGxhdGZvcm1DYW5jZWxOZXR3b3JrTG9hZAogdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1EZXN0
cm95RG93bmxvYWQoKQogewogICAgIGlmIChtX3Byb2dyZXNzKQotI2lmIFVTRShOU1BST0dSRVNT
X1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKICAg
ICAgICAgW21fcHJvZ3Jlc3MgX3VucHVibGlzaF07CiAjZWxzZQogICAgICAgICBbbV9wcm9ncmVz
cyB1bnB1Ymxpc2hdOwpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgRG93bmxvYWQ6OnB1Ymxpc2hQ
cm9ncmVzcyhjb25zdCBVUkwKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcm9ncmVzcyA9IGFk
b3B0TlMoW1tXS0Rvd25sb2FkUHJvZ3Jlc3MgYWxsb2NdIGluaXRXaXRoRG93bmxvYWRUYXNrOm1f
ZG93bmxvYWRUYXNrLmdldCgpIGRvd25sb2FkOip0aGlzIFVSTDooTlNVUkwgKil1cmwgc2FuZGJv
eEV4dGVuc2lvbjpzYW5kYm94RXh0ZW5zaW9uXSk7Ci0jaWYgVVNFKE5TUFJPR1JFU1NfUFVCTElT
SElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogICAgIFttX3By
b2dyZXNzIF9wdWJsaXNoXTsKICNlbHNlCiAgICAgW21fcHJvZ3Jlc3MgcHVibGlzaF07CkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2Fk
UHJvZ3Jlc3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCShyZXZpc2lvbiAyNTU0MzApCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2Fk
UHJvZ3Jlc3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcgQEAgLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoRG93bmxvYWRUYXNrOihOUwogICAgIHJldHVybiBzZWxmOwogfQogCi0jaWYg
VVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJ
U0hJTkdfU1BJKQogLSAodm9pZClfcHVibGlzaAogI2Vsc2UKIC0gKHZvaWQpcHVibGlzaApAQCAt
ODksMjAgKzg5LDIwIEBAIC0gKHZvaWQpcHVibGlzaAogICAgIEJPT0wgY29uc3VtZWRFeHRlbnNp
b24gPSBtX3NhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKICAgICBBU1NFUlRfVU5VU0VEKGNv
bnN1bWVkRXh0ZW5zaW9uLCBjb25zdW1lZEV4dGVuc2lvbik7CiAKLSNpZiBVU0UoTlNQUk9HUkVT
U19QVUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCiAg
ICAgW3N1cGVyIF9wdWJsaXNoXTsKICNlbHNlCiAgICAgW3N1cGVyIHB1Ymxpc2hdOwogI2VuZGlm
CiB9CiAKLSNpZiBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJP
R1JFU1NfUFVCTElTSElOR19TUEkpCiAtICh2b2lkKV91bnB1Ymxpc2gKICNlbHNlCiAtICh2b2lk
KXVucHVibGlzaAogI2VuZGlmCiB7Ci0jaWYgVVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkp
CisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogICAgIFtzdXBlciBfdW5wdWJs
aXNoXTsKICNlbHNlCiAgICAgW3N1cGVyIHVucHVibGlzaF07CkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTU0MzApCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMS0z
MCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisKKyAgICAgICAgUEFMOiBS
ZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rv
d25sb2FkUHJvZ3Jlc3MubW06IFJlbW92ZSBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkK
KyAgICAgICAgd2l0aCBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisKIDIwMjAtMDEt
MjkgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHJ1bi1z
YWZhcmkgLyBydW4td2Via2l0LXRlc3RzIC0taW9zLXNpbXVsYXRvciBub3Qgd29ya2luZyB3aXRo
IFhDb2RlIDEzLjMuMSAoMTFDNTA0KQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb3dubG9hZFByb2dyZXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWRQcm9ncmVzcy5tbQkocmV2aXNpb24g
MjU1NDMwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9h
ZFByb2dyZXNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyArMTczLDcgQEAgLSAodm9pZCl0
ZWFyRG93bgogICAgIH0KIAogICAgIGlmIChtX3Byb2dyZXNzU3Vic2NyaWJlcikgewotI2lmIFVT
RShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNI
SU5HX1NQSSkKICAgICAgICAgW05TUHJvZ3Jlc3MgX3JlbW92ZVN1YnNjcmliZXI6bV9wcm9ncmVz
c1N1YnNjcmliZXIuZ2V0KCldOwogI2Vsc2UKICAgICAgICAgW05TUHJvZ3Jlc3MgcmVtb3ZlU3Vi
c2NyaWJlcjptX3Byb2dyZXNzU3Vic2NyaWJlci5nZXQoKV07CkBAIC0yMTYsNyArMjE2LDcgQEAg
LSAodm9pZClzdWJzY3JpYmVBbmRXYWl0Rm9yUHJvZ3Jlc3MKICAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxOU1Byb2dyZXNzVW5wdWJsaXNoaW5nSGFuZGxlcj4obmlsKTsKICAgICAgICAg
fSk7CiAKLSNpZiBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJP
R1JFU1NfUFVCTElTSElOR19TUEkpCiAgICAgICAgIG1fcHJvZ3Jlc3NTdWJzY3JpYmVyID0gW05T
UHJvZ3Jlc3MgX2FkZFN1YnNjcmliZXJGb3JGaWxlVVJMOm1fcHJvZ3Jlc3NVUkwuZ2V0KCkgd2l0
aFB1Ymxpc2hpbmdIYW5kbGVyOnB1Ymxpc2hpbmdIYW5kbGVyLmdldCgpXTsKICNlbHNlCiAgICAg
ICAgIG1fcHJvZ3Jlc3NTdWJzY3JpYmVyID0gW05TUHJvZ3Jlc3MgYWRkU3Vic2NyaWJlckZvckZp
bGVVUkw6bV9wcm9ncmVzc1VSTC5nZXQoKSB3aXRoUHVibGlzaGluZ0hhbmRsZXI6cHVibGlzaGlu
Z0hhbmRsZXIuZ2V0KCldOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389269</attachid>
            <date>2020-01-30 11:06:28 -0800</date>
            <delta_ts>2020-01-30 13:36:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206905-20200130110627.patch</filename>
            <type>text/plain</type>
            <size>19326</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTMwICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24g
bWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHd0
Zi9QbGF0Zm9ybUhhdmUuaDogQWRkIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkuCisK
IDIwMjAtMDEtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIFNob3VsZCB1c2UgbGlnaHQgdGhlbWUgdW5sZXNzIHdlYnNpdGUgZGVj
bGFyZXMgc3VwcG9ydCBmb3IgZGFyayB0aGVtZXMgaW4gY29sb3Itc2NoZW1lcyBwcm9wZXJ0eQpJ
bmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHJldmlzaW9uIDI1NTQzNykKKysrIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzQsMyArNTc0LDcgQEAKICNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIShQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPCAxMDE0MDApICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZP
Uk0oQVBQTEVUVikKICNkZWZpbmUgSEFWRV9DR19QQVRIX1VORVZFTl9DT1JORVJTX1JPVU5ERURS
RUNUIDEKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVU
VikgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICEoZGVmaW5lZCBfX2hhc19pbmNsdWRlICYm
IF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5oPikpKQorI2RlZmluZSBIQVZF
X05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAyMC0wMS0zMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CisKKyAgICAgICAgUEFMOiBSZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3Jvcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTA1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8gZnVuY3Rpb25h
bCBjaGFuZ2VzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbTogUmVtb3ZlIFVTRShTRUNVUkVfQVJD
SElWRVJfQVBJKS4KKyAgICAgICAgKiB0ZXN0aW5nL2NvY29hL1dlYkFyY2hpdmVEdW1wU3VwcG9y
dC5tbTogRGl0dG8uCisKIDIwMjAtMDEtMzAgIERvdWcgS2VsbHkgIDxkb3Vna0BhcHBsZS5jb20+
CiAKICAgICAgICAgQ3Jhc2ggaW4gUmVuZGVyQmxvY2tGbG93OjphZGp1c3RMaW5lUG9zaXRpb25G
b3JQYWdpbmF0aW9uKCkgd2l0aCBjb21wbGV4IGxpbmUgd2l0aG91dCByb290IGJveApJbmRleDog
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDEtMzAgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIFBBTDogUmVtb3Zl
IG9sZCBpT1MgdmVyc2lvbiBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNjkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOiBSZW1vdmUg
aU9TIDEzIHZlcnNpb24gY2hlY2tzLgorICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
Lmg6IFJlbW92ZSBpT1MgMTEgdmVyc2lvbiBjaGVja3MuCisgICAgICAgICogcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaDogVXNlIEhBVkUgbWFjcm8gaW5zdGVhZCBvZiB2ZXJzaW9uIGNoZWNr
cy4KKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oOiBSZW1vdmUgaU9TIDEx
IHZlcnNpb24gY2hlY2tzLgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVy
U1BJLmg6IFJlbW92ZSBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkgYW5kCisgICAgICAgIFVTRShT
RUNVUkVfQVJDSElWRVJfRk9SX0FUVFJJQlVURURfU1RSSU5HKS4KKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL05TUHJvZ3Jlc3NTUEkuaDogUmVwbGFjZSBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5H
X1NQSSkgd2l0aAorICAgICAgICBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpLgorICAg
ICAgICAqIHBhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmg6IFJlbW92ZSBpT1MgMTEgdmVyc2lv
biBjaGVja3MuCisKIDIwMjAtMDEtMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtDb2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSB0byBpbXBsZW1l
bnQgTWVkaWFSZWNvcmRlcgpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCShyZXZpc2lvbiAyNTU0MzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAotI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMw
MDAwKQorI2lmICEoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEIDwgMTAxNTAwKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYp
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5k
YXRpb24sIFBBTF9FWFBPUlQpCiAjZWxzZQogQGludGVyZmFjZSBBVlBsYXllckl0ZW0gKERpc2Fi
bGVLVk9PblN1cHJlc3Nlc1ZpZGVvTGF5ZXJzKQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHJldmlzaW9uIDI1NTQzNykKKysrIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTMsNyArMjEzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNVUkxTZXNzaW9uQwog
QHByb3BlcnR5IChudWxsYWJsZSwgcmVhZHdyaXRlLCByZXRhaW4pIE5TVVJMICpfc2l0ZUZvckNv
b2tpZXM7CiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgQk9PTCBfaXNUb3BMZXZlbE5hdmlnYXRpb247
CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgX3ByZWNvbm5lY3Q7CiAjZW5kaWYKIEBlbmQK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oCShyZXZpc2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQg
Q0dDb250ZXh0U2V0U3R5bGUoQ0dDb250ZXh0UmVmLCBDR1MKIAogdm9pZCBDR0NvbnRleHREcmF3
Q29uaWNHcmFkaWVudChDR0NvbnRleHRSZWYsIENHR3JhZGllbnRSZWYsIENHUG9pbnQgY2VudGVy
LCBDR0Zsb2F0IGFuZ2xlKTsKIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
X19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQorI2lmIEhBVkUoQ0df
UEFUSF9VTkVWRU5fQ09STkVSU19ST1VOREVEUkVDVCkKIHZvaWQgQ0dQYXRoQWRkVW5ldmVuQ29y
bmVyc1JvdW5kZWRSZWN0KENHTXV0YWJsZVBhdGhSZWYsIGNvbnN0IENHQWZmaW5lVHJhbnNmb3Jt
ICosIENHUmVjdCwgY29uc3QgQ0dTaXplIGNvcm5lcnNbNF0pOwogI2VuZGlmCiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCShyZXZp
c2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZh
Y2VTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIFdURl9FWFRFUk5fQ19F
TkQKIAogI2Vsc2UKIAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEw
MDAwCisjaWYgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKIHR5cGVkZWYg
dWludDMyX3QgSU9TdXJmYWNlSUQ7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgJKHJldmlzaW9u
IDI1NTQzNykKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNo
aXZlclNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksNiBAQAogI2ltcG9ydCA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2RlZmluZSBVU0Vf
U0VDVVJFX0FSQ0hJVkVSX0FQSSAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMjAwKSB8fCBQTEFU
Rk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkKLQotI2RlZmluZSBVU0VfU0VDVVJF
X0FSQ0hJVkVSX0ZPUl9BVFRSSUJVVEVEX1NUUklORyAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMw
MDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkKLQotI2lmIFVT
RShTRUNVUkVfQVJDSElWRVJfQVBJKQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL05TS2V5ZWRBcmNoaXZlcl9Qcml2YXRlLmg+CiAjZWxzZQpAQCAtNTYs
MzIgKzUxLDIzIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBOU19BU1NVTUVfTk9OTlVMTF9F
TkQKIAogI2VuZGlmIC8qIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICovCi0jZW5kaWYgLyogVVNF
KFNFQ1VSRV9BUkNISVZFUl9BUEkpICovCiAKIGlubGluZSBOU0RhdGEgKl9OdWxsYWJsZSBzZWN1
cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdCkKIHsKLSNp
ZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKICAgICBOU0Vycm9yICplcnJvcjsKICAgICBOU0Rh
dGEgKmRhdGEgPSBbTlNLZXllZEFyY2hpdmVyIGFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0Om9i
amVjdCByZXF1aXJpbmdTZWN1cmVDb2Rpbmc6WUVTIGVycm9yOiZlcnJvcl07CiAgICAgaWYgKCFk
YXRhKQogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBhcmNoaXZlIGRhdGE6ICVAIiwgZXJy
b3IpOwogICAgIHJldHVybiBkYXRhOwotI2Vsc2UKLSAgICByZXR1cm4gW05TS2V5ZWRBcmNoaXZl
ciBhcmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdDpvYmplY3RdOwotI2VuZGlmCiB9CiAKIGlubGlu
ZSBOU0RhdGEgKl9OdWxsYWJsZSBpbnNlY3VyZWx5QXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Qo
aWQgX05vbm51bGwgb2JqZWN0KQogewotI2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQogICAg
IE5TRXJyb3IgKmVycm9yOwogICAgIE5TRGF0YSAqZGF0YSA9IFtOU0tleWVkQXJjaGl2ZXIgYXJj
aGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6b2JqZWN0IHJlcXVpcmluZ1NlY3VyZUNvZGluZzpOTyBl
cnJvcjomZXJyb3JdOwogICAgIGlmICghZGF0YSkKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUg
dG8gYXJjaGl2ZSBkYXRhOiAlQCIsIGVycm9yKTsKICAgICByZXR1cm4gZGF0YTsKLSNlbHNlCi0g
ICAgcmV0dXJuIFtOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6b2Jq
ZWN0XTsKLSNlbmRpZgogfQogCiBpbmxpbmUgaWQgX051bGxhYmxlIGluc2VjdXJlbHlVbmFyY2hp
dmVPYmplY3RGcm9tRGF0YShOU0RhdGEgKiBfTm9ubnVsbCBkYXRhKQpAQCAtOTMsNTIgKzc5LDI3
IEBAIGlubGluZSBpZCBfTnVsbGFibGUgaW5zZWN1cmVseVVuYXJjaGl2ZU8KIAogaW5saW5lIGlk
IF9OdWxsYWJsZSB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzRnJvbURhdGEoTlNTZXQ8Q2xhc3M+
ICogX05vbm51bGwgY2xhc3NlcywgTlNEYXRhICogX05vbm51bGwgZGF0YSkKIHsKLSNpZiBVU0Uo
U0VDVVJFX0FSQ0hJVkVSX0FQSSkKLSNpZiAhVVNFKFNFQ1VSRV9BUkNISVZFUl9GT1JfQVRUUklC
VVRFRF9TVFJJTkcpCi0gICAgLy8gUmVtb3ZlIHRoaXMgY29kZSB3aGVuIHRoZSBmaXggZnJvbSA8
cmRhcjovL3Byb2JsZW0vMzEzNzY4MzA+IGlzIGRlcGxveWVkIHRvIGFsbCByZWxldmFudCBidWls
ZCB0YXJnZXRzLgotICAgIGlmIChbY2xhc3NlcyBjb250YWluc09iamVjdDpbTlNBdHRyaWJ1dGVk
U3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBpbnNlY3VyZWx5VW5hcmNoaXZlT2JqZWN0
RnJvbURhdGEoZGF0YSk7Ci0jZW5kaWYKICAgICBOU0Vycm9yICplcnJvcjsKICAgICBpZCB2YWx1
ZSA9IFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzOmNsYXNzZXMg
ZnJvbURhdGE6ZGF0YSBlcnJvcjomZXJyb3JdOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIHVuYXJjaGl2ZSBkYXRhOiAlQCIsIGVycm9yKTsKICAgICByZXR1
cm4gdmFsdWU7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjbGFzc2VzKTsKLSAgICByZXR1cm4g
aW5zZWN1cmVseVVuYXJjaGl2ZU9iamVjdEZyb21EYXRhKGRhdGEpOwotI2VuZGlmCiB9CiAKIGlu
bGluZSBSZXRhaW5QdHI8TlNLZXllZEFyY2hpdmVyPiBzZWN1cmVBcmNoaXZlcigpCiB7Ci0jaWYg
VVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAgTlNLZXllZEFyY2hpdmVyICphcmNoaXZlciA9
IFtbTlNLZXllZEFyY2hpdmVyIGFsbG9jXSBpbml0UmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFU107
Ci0jZWxzZQotICAgIE5TS2V5ZWRBcmNoaXZlciAqYXJjaGl2ZXIgPSBbW05TS2V5ZWRBcmNoaXZl
ciBhbGxvY10gaW5pdF07Ci0gICAgW2FyY2hpdmVyIHNldFJlcXVpcmVzU2VjdXJlQ29kaW5nOllF
U107Ci0jZW5kaWYKICAgICByZXR1cm4gYWRvcHROUyhhcmNoaXZlcik7CiB9CiAKIGlubGluZSBS
ZXRhaW5QdHI8TlNLZXllZFVuYXJjaGl2ZXI+IHNlY3VyZVVuYXJjaGl2ZXJGcm9tRGF0YShOU0Rh
dGEgKl9Ob25udWxsIGRhdGEpCiB7Ci0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAg
TlNLZXllZFVuYXJjaGl2ZXIgKnVuYXJjaGl2ZXIgPSBbW05TS2V5ZWRVbmFyY2hpdmVyIGFsbG9j
XSBpbml0Rm9yUmVhZGluZ0Zyb21EYXRhOmRhdGEgZXJyb3I6bmlsXTsKICAgICB1bmFyY2hpdmVy
LmRlY29kaW5nRmFpbHVyZVBvbGljeSA9IE5TRGVjb2RpbmdGYWlsdXJlUG9saWN5UmFpc2VFeGNl
cHRpb247Ci0jZWxzZQotICAgIE5TS2V5ZWRVbmFyY2hpdmVyICp1bmFyY2hpdmVyID0gW1tOU0tl
eWVkVW5hcmNoaXZlciBhbGxvY10gaW5pdEZvclJlYWRpbmdXaXRoRGF0YTpkYXRhXTsKLSAgICBb
dW5hcmNoaXZlciBzZXRSZXF1aXJlc1NlY3VyZUNvZGluZzpZRVNdOwotI2VuZGlmCiAgICAgcmV0
dXJuIGFkb3B0TlModW5hcmNoaXZlcik7CiB9CiAKIGlubGluZSBpZCBfTnVsbGFibGUgZGVjb2Rl
T2JqZWN0T2ZDbGFzc0ZvcktleUZyb21Db2RlcihDbGFzcyBfTm9ubnVsbCBjbHMsIE5TU3RyaW5n
ICogX05vbm51bGwga2V5LCBOU0NvZGVyICogX05vbm51bGwgY29kZXIpCiB7Ci0jaWYgVVNFKFNF
Q1VSRV9BUkNISVZFUl9BUEkpCiAgICAgcmV0dXJuIFtjb2RlciBkZWNvZGVPYmplY3RPZkNsYXNz
OmNscyBmb3JLZXk6a2V5XTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNscyk7Ci0gICAgcmV0
dXJuIFtjb2RlciBkZWNvZGVPYmplY3RGb3JLZXk6a2V5XTsKLSNlbmRpZgogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNQcm9ncmVzc1NQSS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TUHJvZ3Jlc3NTUEkuaAkocmV2
aXNpb24gMjU1NDM3KQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNQcm9n
cmVzc1NQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNCArMjcsMTEgQEAKIAogI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCiAKLSNkZWZpbmUgVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19T
UEkgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPCAxMzAwMDAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNQcm9ncmVzc19Qcml2YXRlLmg+CiAK
ICNlbHNlCiAKLSNkZWZpbmUgVVNFX05TUFJPR1JFU1NfUFVCTElTSElOR19TUEkgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLQot
I2lmIFVTRV9OU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJCisjaWYgSEFWRShOU1BST0dSRVNTX1BV
QkxJU0hJTkdfU1BJKQogCiBAaW50ZXJmYWNlIE5TUHJvZ3Jlc3MgKCkKIApAQCAtNDUsNiArNDIs
NiBAQAogCiBAZW5kCiAKLSNlbmRpZiAvLyBVU0VfTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSQor
I2VuZGlmIC8vIEhBVkUoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKIAogI2VuZGlmIC8vIG5v
dCBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvaW9zL01lZGlhUGxheWVyU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgJKHJldmlzaW9uIDI1NTQzNykKKysrIFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBBVlJvdXRpbmdD
b250cm9sbGVyLmg+CiAKLSNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MjAwMDAKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjaW1w
b3J0IDxNZWRpYVBsYXllci9NUE1lZGlhQ29udHJvbHNDb25maWd1cmF0aW9uLmg+CiAjZW5kaWYK
IAotI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCAmJiAhUExB
VEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisjaWYgIVBMQVRGT1JNKFdBVENI
T1MpICYmICFQTEFURk9STShBUFBMRVRWKQogI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBNZWRpYUNv
bnRyb2xzVmlld0NvbnRyb2xsZXIuaD4KICNlbHNlCiAjaW1wb3J0IDxNZWRpYVBsYXllci9NUEFW
Um91dGluZ1NoZWV0Lmg+CkBAIC02NCw3ICs2NCw3IEBAIHR5cGVkZWYgTlNJbnRlZ2VyIE1QUm91
dGVEaXNjb3ZlcnlNb2RlOwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTVBSb3V0ZURp
c2NvdmVyeU1vZGUgZGlzY292ZXJ5TW9kZTsKIEBlbmQKIAotI2lmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDExMDAwMCAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRG
T1JNKEFQUExFVFYpCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRW
KQogCiBAaW50ZXJmYWNlIE1QTWVkaWFDb250cm9sc1ZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29u
dHJvbGxlcgogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIG51bGxhYmxlKSB2b2lkICheZGlk
RGlzbWlzc0hhbmRsZXIpKHZvaWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hp
dmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlTWFjLm1tCShyZXZpc2lvbiAyNTU0
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZl
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxOCArNDQsOSBAQCBSZXNvdXJjZVJlc3BvbnNl
IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlc3BvbnNl
KCk7CiAgICAgCiAgICAgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBuaWw7Ci0jaWYgVVNFKFNF
Q1VSRV9BUkNISVZFUl9BUEkpCiAgICAgYXV0byB1bmFyY2hpdmVyID0gc2VjdXJlVW5hcmNoaXZl
ckZyb21EYXRhKChfX2JyaWRnZSBOU0RhdGEgKilyZXNwb25zZURhdGEpOwogICAgIEB0cnkgewog
ICAgICAgICByZXNwb25zZSA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6W05TVVJM
UmVzcG9uc2UgY2xhc3NdIGZvcktleTpMZWdhY3lXZWJBcmNoaXZlUmVzb3VyY2VSZXNwb25zZUtl
eV07Ci0jZWxzZQotICAgIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzM0MDYzMzEzPiB3
ZSBjYW4ndCB1c2Ugc2VjdXJlIGNvZGluZyBmb3IgZGVjb2RpbmcgaW4gb2xkZXIgT1Mncy4KLSAg
ICBhdXRvIHVuYXJjaGl2ZXIgPSBhZG9wdE5TKFtbTlNLZXllZFVuYXJjaGl2ZXIgYWxsb2NdIGlu
aXRGb3JSZWFkaW5nV2l0aERhdGE6KE5TRGF0YSAqKXJlc3BvbnNlRGF0YV0pOwotICAgIEB0cnkg
ewotICAgICAgICBpZCByZXNwb25zZU9iamVjdCA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdEZv
cktleTpMZWdhY3lXZWJBcmNoaXZlUmVzb3VyY2VSZXNwb25zZUtleV07Ci0gICAgICAgIGlmIChb
cmVzcG9uc2VPYmplY3QgaXNLaW5kT2ZDbGFzczpbTlNVUkxSZXNwb25zZSBjbGFzc11dKQotICAg
ICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZU9iamVjdDsKLSNlbmRpZgogICAgICAgICBbdW5h
cmNoaXZlciBmaW5pc2hEZWNvZGluZ107CiAgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNl
cHRpb24pIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVjb2RlIE5TKEhUVFApVVJM
UmVzcG9uc2U6ICVAIiwgZXhjZXB0aW9uKTsKQEAgLTcyLDE5ICs2Myw5IEBAIFJldGFpblB0cjxD
RkRhdGFSZWY+IExlZ2FjeVdlYkFyY2hpdmU6OmMKICAgICBpZiAoIW5zUmVzcG9uc2UpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0jaWYgVVNFKFNFQ1VSRV9BUkNISVZFUl9BUEkpCiAgICAg
YXV0byBhcmNoaXZlciA9IHNlY3VyZUFyY2hpdmVyKCk7CiAgICAgW2FyY2hpdmVyIGVuY29kZU9i
amVjdDpuc1Jlc3BvbnNlIGZvcktleTpMZWdhY3lXZWJBcmNoaXZlUmVzb3VyY2VSZXNwb25zZUtl
eV07Ci0gICAgcmV0dXJuIHJldGFpblB0cigoX19icmlkZ2UgQ0ZEYXRhUmVmKWFyY2hpdmVyLmdl
dCgpLmVuY29kZWREYXRhKTsKLSNlbHNlCi0gICAgLy8gQmVjYXVzZSBvZiA8cmRhcjovL3Byb2Js
ZW0vMzQwNjMzMTM+IHdlIGNhbid0IHVzZSB0aGlzIGZvciBlbmNvZGluZyBpbiBvbGRlciBPUydz
LgotICAgIENGTXV0YWJsZURhdGFSZWYgcmVzcG9uc2VEYXRhID0gQ0ZEYXRhQ3JlYXRlTXV0YWJs
ZSgwLCAwKTsKLSAgICBhdXRvIGFyY2hpdmVyID0gYWRvcHROUyhbW05TS2V5ZWRBcmNoaXZlciBh
bGxvY10gaW5pdEZvcldyaXRpbmdXaXRoTXV0YWJsZURhdGE6KE5TTXV0YWJsZURhdGEgKilyZXNw
b25zZURhdGFdKTsKLSAgICBbYXJjaGl2ZXIgZW5jb2RlT2JqZWN0Om5zUmVzcG9uc2UgZm9yS2V5
OkxlZ2FjeVdlYkFyY2hpdmVSZXNvdXJjZVJlc3BvbnNlS2V5XTsKLSAgICBbYXJjaGl2ZXIgZmlu
aXNoRW5jb2RpbmddOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YocmVzcG9uc2VEYXRhKTsKLSNlbmRp
ZgorICAgIHJldHVybiAoX19icmlkZ2UgQ0ZEYXRhUmVmKWFyY2hpdmVyLmdldCgpLmVuY29kZWRE
YXRhOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2NvY29hL1dlYkFyY2hp
dmVEdW1wU3VwcG9ydC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2Nv
Y29hL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5tbQkocmV2aXNpb24gMjU1NDM3KQorKysgU291cmNl
L1dlYkNvcmUvdGVzdGluZy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDE2ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlVGVzdFN1cHBvcnQgewog
c3RhdGljIENGVVJMUmVzcG9uc2VSZWYgY3JlYXRlQ0ZVUkxSZXNwb25zZUZyb21SZXNwb25zZURh
dGEoQ0ZEYXRhUmVmIHJlc3BvbnNlRGF0YSkKIHsKICAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25z
ZTsKLSNpZiBVU0UoU0VDVVJFX0FSQ0hJVkVSX0FQSSkKICAgICBhdXRvIHVuYXJjaGl2ZXIgPSBz
ZWN1cmVVbmFyY2hpdmVyRnJvbURhdGEoKF9fYnJpZGdlIE5TRGF0YSAqKXJlc3BvbnNlRGF0YSk7
CiAgICAgQHRyeSB7CiAgICAgICAgIHJlc3BvbnNlID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0
T2ZDbGFzczpbTlNVUkxSZXNwb25zZSBjbGFzc10gZm9yS2V5OkAiV2ViUmVzb3VyY2VSZXNwb25z
ZSJdOyAvLyBXZWJSZXNvdXJjZVJlc3BvbnNlS2V5IGluIFdlYlJlc291cmNlLm0KLSNlbHNlCi0g
ICAgLy8gQmVjYXVzZSBvZiA8cmRhcjovL3Byb2JsZW0vMzQwNjMzMTM+IHdlIGNhbid0IHVzZSBz
ZWN1cmUgY29kaW5nIGZvciBkZWNvZGluZyBpbiBvbGRlciBPUydzLgotICAgIGF1dG8gdW5hcmNo
aXZlciA9IGFkb3B0TlMoW1tOU0tleWVkVW5hcmNoaXZlciBhbGxvY10gaW5pdEZvclJlYWRpbmdX
aXRoRGF0YTooTlNEYXRhICopcmVzcG9uc2VEYXRhXSk7Ci0gICAgQHRyeSB7Ci0gICAgICAgIHJl
c3BvbnNlID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0Rm9yS2V5OkAiV2ViUmVzb3VyY2VSZXNw
b25zZSJdOyAvLyBXZWJSZXNvdXJjZVJlc3BvbnNlS2V5IGluIFdlYlJlc291cmNlLm0KLSNlbmRp
ZgogICAgICAgICBbdW5hcmNoaXZlciBmaW5pc2hEZWNvZGluZ107CiAgICAgfSBAY2F0Y2ggKE5T
RXhjZXB0aW9uICpleGNlcHRpb24pIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVj
b2RlIE5TKEhUVFApVVJMUmVzcG9uc2U6ICVAIiwgZXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KKworICAgICAgICBQQUw6IFJlbW92ZSBvbGQgaU9TIHZlcnNpb24gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MDUK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1tOiBSZW1vdmUgVVNFKE5TUFJP
R1JFU1NfUFVCTElTSElOR19TUEkpCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbTogRGl0dG8uCisKIDIwMjAtMDEtMzAgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVtb3ZlIHJl
cG9ydCBydWxlIGZvciAnY29tLmFwcGxlLnJ1bm5pbmdib2FyZCcgZnJvbSB0aGUgTmV0d29yayBh
bmQgR1BVIHByb2Nlc3Mgc2FuZGJveGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL0Rvd25sb2FkQ29jb2EubW0J
KHJldmlzaW9uIDI1NTQzNykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL2NvY29hL0Rvd25sb2FkQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcg
QEAgdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1DYW5jZWxOZXR3b3JrTG9hZAogdm9pZCBEb3dubG9h
ZDo6cGxhdGZvcm1EZXN0cm95RG93bmxvYWQoKQogewogICAgIGlmIChtX3Byb2dyZXNzKQotI2lm
IFVTRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQorI2lmIEhBVkUoTlNQUk9HUkVTU19QVUJM
SVNISU5HX1NQSSkKICAgICAgICAgW21fcHJvZ3Jlc3MgX3VucHVibGlzaF07CiAjZWxzZQogICAg
ICAgICBbbV9wcm9ncmVzcyB1bnB1Ymxpc2hdOwpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgRG93
bmxvYWQ6OnB1Ymxpc2hQcm9ncmVzcyhjb25zdCBVUkwKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9wcm9ncmVzcyA9IGFkb3B0TlMoW1tXS0Rvd25sb2FkUHJvZ3Jlc3MgYWxsb2NdIGluaXRXaXRo
RG93bmxvYWRUYXNrOm1fZG93bmxvYWRUYXNrLmdldCgpIGRvd25sb2FkOip0aGlzIFVSTDooTlNV
UkwgKil1cmwgc2FuZGJveEV4dGVuc2lvbjpzYW5kYm94RXh0ZW5zaW9uXSk7Ci0jaWYgVVNFKE5T
UFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdf
U1BJKQogICAgIFttX3Byb2dyZXNzIF9wdWJsaXNoXTsKICNlbHNlCiAgICAgW21fcHJvZ3Jlc3Mg
cHVibGlzaF07CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9j
b2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCShyZXZp
c2lvbiAyNTU0MzcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9j
b2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcg
QEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG93bmxvYWRUYXNrOihOUwogICAgIHJldHVybiBz
ZWxmOwogfQogCi0jaWYgVVNFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShO
U1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogLSAodm9pZClfcHVibGlzaAogI2Vsc2UKIC0gKHZv
aWQpcHVibGlzaApAQCAtODksMjAgKzg5LDIwIEBAIC0gKHZvaWQpcHVibGlzaAogICAgIEJPT0wg
Y29uc3VtZWRFeHRlbnNpb24gPSBtX3NhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKICAgICBB
U1NFUlRfVU5VU0VEKGNvbnN1bWVkRXh0ZW5zaW9uLCBjb25zdW1lZEV4dGVuc2lvbik7CiAKLSNp
ZiBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVC
TElTSElOR19TUEkpCiAgICAgW3N1cGVyIF9wdWJsaXNoXTsKICNlbHNlCiAgICAgW3N1cGVyIHB1
Ymxpc2hdOwogI2VuZGlmCiB9CiAKLSNpZiBVU0UoTlNQUk9HUkVTU19QVUJMSVNISU5HX1NQSSkK
KyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCiAtICh2b2lkKV91bnB1Ymxpc2gK
ICNlbHNlCiAtICh2b2lkKXVucHVibGlzaAogI2VuZGlmCiB7Ci0jaWYgVVNFKE5TUFJPR1JFU1Nf
UFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJTkdfU1BJKQogICAg
IFtzdXBlciBfdW5wdWJsaXNoXTsKICNlbHNlCiAgICAgW3N1cGVyIHVucHVibGlzaF07CkluZGV4
OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNTU0MzcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAyMC0wMS0zMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisK
KyAgICAgICAgUEFMOiBSZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3JvcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3MubW06IFJlbW92ZSBVU0UoTlNQUk9HUkVTU19QVUJM
SVNISU5HX1NQSSkKKyAgICAgICAgd2l0aCBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkp
CisKIDIwMjAtMDEtMzAgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFRlc3RXZWJLaXRBUEk6IFJlLWJhc2VsaW5lIEFjY2Vzc2liaWxpdHlUZXN0cyBmb3Ig
Q2F0YWx5c3QKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93
bmxvYWRQcm9ncmVzcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3MubW0JKHJldmlzaW9uIDI1NTQzNykKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWRQcm9ncmVzcy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIC0gKHZvaWQpdGVhckRvd24KICAgICB9
CiAKICAgICBpZiAobV9wcm9ncmVzc1N1YnNjcmliZXIpIHsKLSNpZiBVU0UoTlNQUk9HUkVTU19Q
VUJMSVNISU5HX1NQSSkKKyNpZiBIQVZFKE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCiAgICAg
ICAgIFtOU1Byb2dyZXNzIF9yZW1vdmVTdWJzY3JpYmVyOm1fcHJvZ3Jlc3NTdWJzY3JpYmVyLmdl
dCgpXTsKICNlbHNlCiAgICAgICAgIFtOU1Byb2dyZXNzIHJlbW92ZVN1YnNjcmliZXI6bV9wcm9n
cmVzc1N1YnNjcmliZXIuZ2V0KCldOwpAQCAtMjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQpc3Vic2Ny
aWJlQW5kV2FpdEZvclByb2dyZXNzCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlNQ
cm9ncmVzc1VucHVibGlzaGluZ0hhbmRsZXI+KG5pbCk7CiAgICAgICAgIH0pOwogCi0jaWYgVVNF
KE5TUFJPR1JFU1NfUFVCTElTSElOR19TUEkpCisjaWYgSEFWRShOU1BST0dSRVNTX1BVQkxJU0hJ
TkdfU1BJKQogICAgICAgICBtX3Byb2dyZXNzU3Vic2NyaWJlciA9IFtOU1Byb2dyZXNzIF9hZGRT
dWJzY3JpYmVyRm9yRmlsZVVSTDptX3Byb2dyZXNzVVJMLmdldCgpIHdpdGhQdWJsaXNoaW5nSGFu
ZGxlcjpwdWJsaXNoaW5nSGFuZGxlci5nZXQoKV07CiAjZWxzZQogICAgICAgICBtX3Byb2dyZXNz
U3Vic2NyaWJlciA9IFtOU1Byb2dyZXNzIGFkZFN1YnNjcmliZXJGb3JGaWxlVVJMOm1fcHJvZ3Jl
c3NVUkwuZ2V0KCkgd2l0aFB1Ymxpc2hpbmdIYW5kbGVyOnB1Ymxpc2hpbmdIYW5kbGVyLmdldCgp
XTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>