<?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>146837</bug_id>
          
          <creation_ts>2015-07-10 10:23:57 -0700</creation_ts>
          <short_desc>Media Session: add plumbing for delivering start/end-of-interruption events</short_desc>
          <delta_ts>2015-07-13 16:40:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          <blocked>145411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mrajca</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108651</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-10 10:23:57 -0700</bug_when>
    <thetext>The platform should be able to send start-of-interruption events to MediaSessions so we can invoke the media session interruption algorithm (4.5.2).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108652</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-10 10:24:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/21768356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108659</commentid>
    <comment_count>2</comment_count>
      <attachid>256588</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-10 10:39:05 -0700</bug_when>
    <thetext>Created attachment 256588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108662</commentid>
    <comment_count>3</comment_count>
      <attachid>256589</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-10 10:42:38 -0700</bug_when>
    <thetext>Created attachment 256589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108681</commentid>
    <comment_count>4</comment_count>
      <attachid>256589</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-07-10 10:57:18 -0700</bug_when>
    <thetext>Comment on attachment 256589
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSessionEvents.h:33
&gt; +enum MediaEventType {

This should be &quot;enum class&quot;.

&gt; Source/WebCore/Modules/mediasession/MediaSessionEvents.h:39
&gt; +enum MediaSessionInterruptingCategory {

Ditto.

&gt; Source/WebCore/page/Page.cpp:1230
&gt; +void Page::handleStartOfInterruptionEvent(MediaSessionInterruptingCategory category)
&gt; +{
&gt; +}

Please add notImplemented();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108686</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-10 11:11:27 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 256589 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256589&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaSessionEvents.h:33
&gt; &gt; +enum MediaEventType {
&gt; 
&gt; This should be &quot;enum class&quot;.

These are &quot;enums&quot; so we can cast to them from WKMediaEventTypes. We can&apos;t do that with a strongly-typed &quot;enum class&quot;.

&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaSessionEvents.h:39
&gt; &gt; +enum MediaSessionInterruptingCategory {
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:1230
&gt; &gt; +void Page::handleStartOfInterruptionEvent(MediaSessionInterruptingCategory category)
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; Please add notImplemented();

Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108745</commentid>
    <comment_count>6</comment_count>
      <attachid>256610</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-10 13:50:51 -0700</bug_when>
    <thetext>Created attachment 256610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108763</commentid>
    <comment_count>7</comment_count>
      <attachid>256610</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-10 14:16:44 -0700</bug_when>
    <thetext>Comment on attachment 256610
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2197
&gt; +    switch (wkCategory) {

I realize there&apos;s only one user, but the enum conversion functions are usually separate static methods. Maybe just keep that in mind if we end up needing this code again?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:746
&gt; +    void handleStartOfInterruptionEvent(uint32_t /* WebCore::MediaSessionInterruptingCategory */);

Since this is on WebPage, it should be more clear that it&apos;s about media. Also, maybe just &quot;handleMediaInterruptionEvent&quot;, with a state/phase to indicate whether it&apos;s starting or ending? Won&apos;t you eventually need the end case too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108771</commentid>
    <comment_count>8</comment_count>
      <attachid>256610</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-07-10 14:31:08 -0700</bug_when>
    <thetext>Comment on attachment 256610
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2192
&gt; +void WKPageHandleStartOfInterruptionEvent(WKPageRef page, WKMediaSessionInterruptingCategory wkCategory)

You should COMPILE_ASSERT([value in MediaEventType] == [value in WKMediaEventTypes] for each value to make sure the enums stay in sync. See HTMLTrackElement.cpp for an example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108772</commentid>
    <comment_count>9</comment_count>
      <attachid>256610</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-07-10 14:32:18 -0700</bug_when>
    <thetext>Comment on attachment 256610
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2192
&gt;&gt; +void WKPageHandleStartOfInterruptionEvent(WKPageRef page, WKMediaSessionInterruptingCategory wkCategory)
&gt; 
&gt; You should COMPILE_ASSERT([value in MediaEventType] == [value in WKMediaEventTypes] for each value to make sure the enums stay in sync. See HTMLTrackElement.cpp for an example.

Or rather, if you do that then you can use a static_cast to convert values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109131</commentid>
    <comment_count>10</comment_count>
      <attachid>256706</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 10:43:55 -0700</bug_when>
    <thetext>Created attachment 256706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109133</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 10:46:02 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 256610 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256610&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2197
&gt; &gt; +    switch (wkCategory) {
&gt; 
&gt; I realize there&apos;s only one user, but the enum conversion functions are
&gt; usually separate static methods. Maybe just keep that in mind if we end up
&gt; needing this code again?

Will do.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:746
&gt; &gt; +    void handleStartOfInterruptionEvent(uint32_t /* WebCore::MediaSessionInterruptingCategory */);
&gt; 
&gt; Since this is on WebPage, it should be more clear that it&apos;s about media.
&gt; Also, maybe just &quot;handleMediaInterruptionEvent&quot;, with a state/phase to
&gt; indicate whether it&apos;s starting or ending? Won&apos;t you eventually need the end
&gt; case too?

I renamed it to &apos;handleMediaSessionInterruptionEvent&apos; and added an enum for the event type (currently either start-of-interruption and end-of-interruption).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109134</commentid>
    <comment_count>12</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 10:47:09 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 256610 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256610&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2192
&gt; &gt;&gt; +void WKPageHandleStartOfInterruptionEvent(WKPageRef page, WKMediaSessionInterruptingCategory wkCategory)
&gt; &gt; 
&gt; &gt; You should COMPILE_ASSERT([value in MediaEventType] == [value in WKMediaEventTypes] for each value to make sure the enums stay in sync. See HTMLTrackElement.cpp for an example.
&gt; 
&gt; Or rather, if you do that then you can use a static_cast to convert values.

Added the static assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109143</commentid>
    <comment_count>13</comment_count>
      <attachid>256706</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-13 11:21:05 -0700</bug_when>
    <thetext>Comment on attachment 256706
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:191
&gt; +#include &quot;WKPagePrivate.h&quot;

Put the enums in a new header (probably in Shared/API/C) that you include in both places (and install as a private header), do not import UIProcess API headers here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109151</commentid>
    <comment_count>14</comment_count>
      <attachid>256708</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 11:46:35 -0700</bug_when>
    <thetext>Created attachment 256708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109152</commentid>
    <comment_count>15</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 11:46:45 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 256706 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256706&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:191
&gt; &gt; +#include &quot;WKPagePrivate.h&quot;
&gt; 
&gt; Put the enums in a new header (probably in Shared/API/C) that you include in
&gt; both places (and install as a private header), do not import UIProcess API
&gt; headers here!

That header import was left over from a previous revision of the patch. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109241</commentid>
    <comment_count>16</comment_count>
      <attachid>256708</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-13 15:11:25 -0700</bug_when>
    <thetext>Comment on attachment 256708
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2193
&gt; +// NOTE: The values in the WKMediaSessionInterruptingCategory enum must stay in sync with those in WebCore::MediaSessionInterruptingCategory.

Why must they? You do a proper conversion below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109252</commentid>
    <comment_count>17</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 15:45:55 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 256708 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256708&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2193
&gt; &gt; +// NOTE: The values in the WKMediaSessionInterruptingCategory enum must stay in sync with those in WebCore::MediaSessionInterruptingCategory.
&gt; 
&gt; Why must they? You do a proper conversion below.

We cast from a WKMediaSessionInterruptionEvent to a MediaSessionInterruptionEvent in WebPage.cpp. We need to ensure the enums&apos; values are the same, otherwise we&apos;ll get them mixed up after casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109258</commentid>
    <comment_count>18</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-13 15:52:47 -0700</bug_when>
    <thetext>Committed r186791: &lt;http://trac.webkit.org/changeset/186791&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109281</commentid>
    <comment_count>19</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-13 16:40:37 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; Comment on attachment 256708 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=256708&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:2193
&gt; &gt; &gt; +// NOTE: The values in the WKMediaSessionInterruptingCategory enum must stay in sync with those in WebCore::MediaSessionInterruptingCategory.
&gt; &gt; 
&gt; &gt; Why must they? You do a proper conversion below.
&gt; 
&gt; We cast from a WKMediaSessionInterruptionEvent to a
&gt; MediaSessionInterruptionEvent in WebPage.cpp. We need to ensure the enums&apos;
&gt; values are the same, otherwise we&apos;ll get them mixed up after casting.

I&apos;m not sure why we have a proper conversion function in one direction and just cast in the other direction?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256588</attachid>
            <date>2015-07-10 10:39:05 -0700</date>
            <delta_ts>2015-07-10 10:42:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146837-20150710103807.patch</filename>
            <type>text/plain</type>
            <size>13080</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiZjMwMDMxNmJkZWYz
OTdhNDhlOWQzMjM3OWM3YzEzNDZmMTdhYi4uOTNkZmM1YTExNWZlMjFhZjZiZjJmZWUwZDJiMzhh
ZmQ0ZWE4MjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTEwICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBhZGQg
cGx1bWJpbmcgZm9yIGRlbGl2ZXJpbmcgc3RhcnQtb2YtaW50ZXJydXB0aW9uIGV2ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaDogUmVuYW1lZCBmcm9tICdNZWRpYUV2ZW50
VHlwZXMuaCcuIEluIGFkZGl0aW9uIHRvIGNvbnN0YW50cyBmb3IKKyAgICAgICAgICBtZWRpYSBj
b250cm9sIGV2ZW50cywgd2Ugbm93IGhhdmUgYW4gZW51bSBmb3Igc3RhcnQtb2YtaW50ZXJydXB0
aW9uIGV2ZW50cy4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KTogQWRkZWQgc3R1Yi4KKyAgICAg
ICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxNS0wNy0wOCAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogcmVwb3J0IHRvIGNocm9tZSBjbGllbnQg
J2hhc0FjdGl2ZU1lZGlhRWxlbWVudHMnIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOWU1NWVjZWE5
YzgzYjIyZWJiNDQ2ZjhlZGQ0N2FhM2M0ZDk4M2E1Li5kZDlkNGY5ZjMwYmE1YjhlY2IxMzY5MWRj
MzdiMGRlYTliNjMxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDctMTAg
IE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIFNlc3Npb246
IGFkZCBwbHVtYmluZyBmb3IgZGVsaXZlcmluZyBzdGFydC1vZi1pbnRlcnJ1cHRpb24gZXZlbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlSGFuZGxlU3RhcnRPZkludGVy
cnVwdGlvbkV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3RhcnRPZklu
dGVycnVwdGlvbkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAy
MDE1LTA3LTA5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBSZXBvcnQgdGhlIGZpcnN0IHBhaW50IGFmdGVyIGNvbW1pdHRpbmcgYSBsb2FkIGFzIGEg
cmVuZGVyaW5nIHByb2dyZXNzIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUV2ZW50VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMjdhNTY4OTBlN2QyYmMyNGZiZGYxMGM5NTllODM0ODg0YjZmZTg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEs
NDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgTWVkaWFFdmVudFR5cGVzX2gKLSNkZWZpbmUgTWVkaWFFdmVudFR5cGVzX2gKLQot
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0g
TWVkaWFFdmVudFR5cGUgewotICAgIFBsYXlQYXVzZSwKLSAgICBUcmFja05leHQsCi0gICAgVHJh
Y2tQcmV2aW91cwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1lZGlhRXZlbnRUeXBl
c19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25FdmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkV2ZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0M2I4NDZjYjM5M2ZhM2Y4MjJkZTVm
YTNhZGI3ODM0YzY4MzExY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRp
YVNlc3Npb25FdmVudHNfaAorI2RlZmluZSBNZWRpYVNlc3Npb25FdmVudHNfaAorCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBNZWRpYUV2
ZW50VHlwZSB7CisgICAgUGxheVBhdXNlLAorICAgIFRyYWNrTmV4dCwKKyAgICBUcmFja1ByZXZp
b3VzCit9OworCitlbnVtIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IHsKKyAgICBD
b250ZW50LAorICAgIFRyYW5zaWVudCwKKyAgICBUcmFuc2llbnRTb2xvCit9OworCit9CisKKyNl
bmRpZgorCisjZW5kaWYgLyogTWVkaWFTZXNzaW9uRXZlbnRzX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDgxYjkwOWJmZjJmZjFiM2JlNzRjNjNlNGQzNjQ4YmEwODg1ODUzNmIuLjY4MzYxMzBm
MWExZGZmYmIwMDk4OTc5MThiZTI3YmZlMDBlZTVhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
MTIyNCw2ICsxMjI0LDEwIEBAIHZvaWQgUGFnZTo6aGFuZGxlTWVkaWFFdmVudChNZWRpYUV2ZW50
VHlwZSBldmVudFR5cGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KKwordm9pZCBQYWdlOjpo
YW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZlbnQoTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnkgY2F0ZWdvcnkpCit7Cit9CiAjZW5kaWYKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggMTQyMWY0OWI2ODQ4MmQ2Zjk0ZTgxMDUzMjI5YzQ5YjQ2YjAwZGE5MS4u
NmJiNmM1MDIzNDViN2UzMzlhZDgxNTZmNGM0MTFhNzIyNjQ0ZmY2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
QEAgLTU1LDcgKzU1LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCi0j
aW5jbHVkZSAiTWVkaWFFdmVudFR5cGVzLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uRXZlbnRz
LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00NDIsNiArNDQyLDcgQEAgcHVibGlj
OgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBo
YW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudChNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdD
YXRlZ29yeSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGY5MTNlYWZl
MWEwZTE2Njg5NTg1ZThiMzIzZmU5OWJlMTI5MWYyMzguLjc0M2EwMGExODVkMGI1NTU1NTg0NDFj
Y2YwNWFmMzgwMTExMWQ0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC04MSw3ICs4MSw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICNp
bmNsdWRlICJXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFFdmVudFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25FdmVudHMuaD4K
ICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTIxODksNiArMjE4OSwzMiBA
QCB2b2lkIFdLUGFnZUhhbmRsZU1lZGlhRXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFFdmVu
dFR5cGUgd2tFdmVudFR5cGUpCiAjZW5kaWYKIH0KIAordm9pZCBXS1BhZ2VIYW5kbGVTdGFydE9m
SW50ZXJydXB0aW9uRXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW5nQ2F0ZWdvcnkgd2tDYXRlZ29yeSkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAg
ICBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeSBjYXRlZ29yeTsKKworICAgIHN3aXRj
aCAod2tDYXRlZ29yeSkgeworICAgIGNhc2Uga1dLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnlDb250ZW50OgorICAgICAgICBjYXRlZ29yeSA9IE1lZGlhU2Vzc2lvbkludGVycnVwdGlu
Z0NhdGVnb3J5OjpDb250ZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtXS01lZGlhU2Vz
c2lvbkludGVycnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50OgorICAgICAgICBjYXRlZ29yeSA9IE1l
ZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5OjpUcmFuc2llbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Uga1dLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnlUcmFuc2llbnRT
b2xvOgorICAgICAgICBjYXRlZ29yeSA9IE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5
OjpUcmFuc2llbnRTb2xvOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB0b0ltcGwocGFnZSktPmhhbmRsZVN0
YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudChjYXRlZ29yeSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0od2tDYXRlZ29yeSk7CisjZW5kaWYKK30KKwogdm9p
ZCBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdL
U3RyaW5nUmVmIG1lc3NhZ2VOYW1lUmVmLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHlSZWYpCiB7CiAg
ICAgdG9JbXBsKHBhZ2VSZWYpLT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUodG9JbXBsKG1l
c3NhZ2VOYW1lUmVmKS0+c3RyaW5nKCksIHRvSW1wbChtZXNzYWdlQm9keVJlZikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXggZjk5NWRi
MjA1YmU3Y2U5ZTdhMjkyYTM1NzY1ODY0ZmFmNjk4ZTc2NS4uNzI4ZGMwOTcyODVkZDI0NmQwZjlk
OTI3ZjFlNmE0Yjc5OGRhYmI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0xMTgsOCArMTE4LDE2IEBAIGVudW0gewogfTsKIHR5cGVk
ZWYgdWludDMyX3QgV0tNZWRpYUV2ZW50VHlwZTsKIAorZW51bSB7CisgICAga1dLTWVkaWFTZXNz
aW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnlDb250ZW50LAorICAgIGtXS01lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50LAorICAgIGtXS01lZGlhU2Vzc2lvbkludGVycnVwdGlu
Z0NhdGVnb3J5VHJhbnNpZW50U29sbworfTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpbmdDYXRlZ29yeTsKKwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSGFzTWVkaWFT
ZXNzaW9uV2l0aEFjdGl2ZU1lZGlhRWxlbWVudHMoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JU
IHZvaWQgV0tQYWdlSGFuZGxlTWVkaWFFdmVudChXS1BhZ2VSZWYgcGFnZSwgV0tNZWRpYUV2ZW50
VHlwZSBldmVudCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VIYW5kbGVTdGFydE9mSW50ZXJydXB0
aW9uRXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdv
cnkgY2F0ZWdvcnkpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VMb2FkVVJMV2l0aFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3koV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybCwgYm9vbCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBiM2RmYmRlMDI3NGRmMmVmOTdjNzY2ZjE1ZTIyMWZlZGM2ZjVjYmJm
Li44ZGYxMjE5NDExM2MzNjcwNjcxZjU4YmVlMDA3ODEyNWRhOTA0YzQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzc4Miw2ICszNzgyLDE0IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlw
ZSkKICAgICAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1l
ZGlhRXZlbnQoZXZlbnRUeXBlKSwgbV9wYWdlSUQpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0Nh
dGVnb3J5IGNhdGVnb3J5KQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZVN0YXJ0T2ZJ
bnRlcnJ1cHRpb25FdmVudChjYXRlZ29yeSksIG1fcGFnZUlEKTsKK30KICNlbmRpZgogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0
TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDkxMmFi
OTBkMDgyZjAzMzEzNDk3MGZiNzk1MjZjNTJjOWMxYzU2ZS4uZWM4YzM1N2YyZmYxOGIyN2JlMDk1
OGIxYmQ3Y2IyNGNmZTk3M2MyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtOTQyLDYgKzk0Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
TikKICAgICBib29sIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50czsgfQog
ICAgIHZvaWQgaGFuZGxlTWVkaWFFdmVudChXZWJDb3JlOjpNZWRpYUV2ZW50VHlwZSk7CisgICAg
dm9pZCBoYW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZlbnQoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
SW50ZXJydXB0aW5nQ2F0ZWdvcnkpOwogI2VuZGlmCiAKICAgICAvLyBXZWJQb3B1cE1lbnVQcm94
eTo6Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggZmM0NTE2YzhhNDRlNmU1NDA2OWFkOTUwMzBlNTdiMWQ0MTM0MWY5OC4uZWU1NzY2
ZjYyZmJjODMwOTQ5ZGM2MzkyNDhhZTk2ODc2ODhlNzQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDA0Miw2ICs0MDQyLDExIEBAIHZv
aWQgV2ViUGFnZTo6aGFuZGxlTWVkaWFFdmVudCh1aW50MzJfdCBldmVudFR5cGUpCiB7CiAgICAg
bV9wYWdlLT5oYW5kbGVNZWRpYUV2ZW50KHN0YXRpY19jYXN0PE1lZGlhRXZlbnRUeXBlPihldmVu
dFR5cGUpKTsKIH0KKwordm9pZCBXZWJQYWdlOjpoYW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZl
bnQodWludDMyX3QgaW50ZXJydXB0aW5nQ2F0ZWdvcnkpCit7CisgICAgbV9wYWdlLT5oYW5kbGVT
dGFydE9mSW50ZXJydXB0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8TWVkaWFTZXNzaW9uSW50ZXJydXB0
aW5nQ2F0ZWdvcnk+KGludGVycnVwdGluZ0NhdGVnb3J5KSk7Cit9CiAjZW5kaWYKIAogdm9pZCBX
ZWJQYWdlOjpzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRpYSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYyNmM0
YjVjMDEyMjhkYzZmMzFiNzk5ZmY0YmY1MGQxNWE5MzI3NTIuLjE0ODNhNmMyYWM5NTE1MDc5MGMy
MzAxOGM5YzczOWQxMWE3YmY4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtNzQzLDYgKzc0Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogICAgIHZvaWQgaGFuZGxlTWVkaWFFdmVudCh1aW50MzJfdCAvKiBXZWJD
b3JlOjpNZWRpYUV2ZW50VHlwZSAqLyk7CisgICAgdm9pZCBoYW5kbGVTdGFydE9mSW50ZXJydXB0
aW9uRXZlbnQodWludDMyX3QgLyogV2ViQ29yZTo6TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnkgKi8pOwogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNl
dFBpbm5pbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMDVhODllYzRhY2ZkNTMzMGQwZGE0OGY0MWQzMTMw
YjkyYTdiNzkyMy4uYmIwNWE0MTQxOGNmYjRiYjliZjRjNTYwOWZiNDYwOTUwOWI1MTRhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTMxNCw2ICszMTQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJl
Y2VpdmVyIHsKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIEhhbmRsZU1lZGlhRXZl
bnQodWludDMyX3QgZXZlbnRUeXBlKQorICAgIEhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVu
dCh1aW50MzJfdCBpbnRlcnJ1cHRpbmdDYXRlZ29yeSkKICNlbmRpZgogCiAgICAgLy8gRklYTUU6
IFRoaXMgYSBkdW1teSBtZXNzYWdlLCB0byBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIHBs
YXRmb3JtcyB0aGF0IGRvbid0IHJlcXVpcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256589</attachid>
            <date>2015-07-10 10:42:38 -0700</date>
            <delta_ts>2015-07-10 13:50:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146837-20150710104140.patch</filename>
            <type>text/plain</type>
            <size>18238</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiZjMwMDMxNmJkZWYz
OTdhNDhlOWQzMjM3OWM3YzEzNDZmMTdhYi4uOTNkZmM1YTExNWZlMjFhZjZiZjJmZWUwZDJiMzhh
ZmQ0ZWE4MjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTEwICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBhZGQg
cGx1bWJpbmcgZm9yIGRlbGl2ZXJpbmcgc3RhcnQtb2YtaW50ZXJydXB0aW9uIGV2ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaDogUmVuYW1lZCBmcm9tICdNZWRpYUV2ZW50
VHlwZXMuaCcuIEluIGFkZGl0aW9uIHRvIGNvbnN0YW50cyBmb3IKKyAgICAgICAgICBtZWRpYSBj
b250cm9sIGV2ZW50cywgd2Ugbm93IGhhdmUgYW4gZW51bSBmb3Igc3RhcnQtb2YtaW50ZXJydXB0
aW9uIGV2ZW50cy4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KTogQWRkZWQgc3R1Yi4KKyAgICAg
ICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxNS0wNy0wOCAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogcmVwb3J0IHRvIGNocm9tZSBjbGllbnQg
J2hhc0FjdGl2ZU1lZGlhRWxlbWVudHMnIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOWU1NWVjZWE5
YzgzYjIyZWJiNDQ2ZjhlZGQ0N2FhM2M0ZDk4M2E1Li5kZDlkNGY5ZjMwYmE1YjhlY2IxMzY5MWRj
MzdiMGRlYTliNjMxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDctMTAg
IE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIFNlc3Npb246
IGFkZCBwbHVtYmluZyBmb3IgZGVsaXZlcmluZyBzdGFydC1vZi1pbnRlcnJ1cHRpb24gZXZlbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlSGFuZGxlU3RhcnRPZkludGVy
cnVwdGlvbkV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3RhcnRPZklu
dGVycnVwdGlvbkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAy
MDE1LTA3LTA5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBSZXBvcnQgdGhlIGZpcnN0IHBhaW50IGFmdGVyIGNvbW1pdHRpbmcgYSBsb2FkIGFzIGEg
cmVuZGVyaW5nIHByb2dyZXNzIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUV2ZW50VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMjdhNTY4OTBlN2QyYmMyNGZiZGYxMGM5NTllODM0ODg0YjZmZTg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEs
NDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgTWVkaWFFdmVudFR5cGVzX2gKLSNkZWZpbmUgTWVkaWFFdmVudFR5cGVzX2gKLQot
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0g
TWVkaWFFdmVudFR5cGUgewotICAgIFBsYXlQYXVzZSwKLSAgICBUcmFja05leHQsCi0gICAgVHJh
Y2tQcmV2aW91cwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1lZGlhRXZlbnRUeXBl
c19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25FdmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkV2ZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0M2I4NDZjYjM5M2ZhM2Y4MjJkZTVm
YTNhZGI3ODM0YzY4MzExY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRp
YVNlc3Npb25FdmVudHNfaAorI2RlZmluZSBNZWRpYVNlc3Npb25FdmVudHNfaAorCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBNZWRpYUV2
ZW50VHlwZSB7CisgICAgUGxheVBhdXNlLAorICAgIFRyYWNrTmV4dCwKKyAgICBUcmFja1ByZXZp
b3VzCit9OworCitlbnVtIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IHsKKyAgICBD
b250ZW50LAorICAgIFRyYW5zaWVudCwKKyAgICBUcmFuc2llbnRTb2xvCit9OworCit9CisKKyNl
bmRpZgorCisjZW5kaWYgLyogTWVkaWFTZXNzaW9uRXZlbnRzX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYzczN2U3ZWZk
NDdiMDk2YmI0MWYyZWU5ODM0YTJiN2I0ZDIxZTZhLi4wNmE4ZjA2MDk3MjYyYmM0MWFmZWNiNGQw
ODFiMjE5YjVmZjAwYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzE4LDcgKzU3MTgsNyBAQAogCQlDOTY4QjJFODFCMUU3
NzgxMDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTY4QjJFNzFCMUU3NzgxMDBF
RjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAgKi87IH07CiAJCUM5RDg1
MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlEODUxRUUxQjM5REM3ODAwODUw
NjJFIC8qIE1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzlEQURCQ0IxQjFEM0I5NzAwMUYxN0Q4IC8qIEpTTWVk
aWFTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM5REFEQkM5MUIxRDNCMjUwMDFGMTdEOCAvKiBKU01lZGlhU2Vzc2lvbi5jcHAgKi87IH07
Ci0JCUM5Rjg3Q0ZFMUIyOEY0MEUwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5Rjg3Q0ZEMUIyOEU1RjYw
MDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlDOUY4N0NGRTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFT
ZXNzaW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMgLyogTWVkaWFTZXNzaW9uRXZlbnRzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0EzQkY2N0Mx
MEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBT
Y3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBT
Y3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0
NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8q
IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwpAQCAtMTMzMDksNyArMTMzMDksNyBAQAog
CQlDOUQ4NTFFRTFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uTWV0YWRhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlEQURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpT
TWVkaWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TWVkaWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlEQURCQ0Ex
QjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFFdmVudFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBNZWRpYVNlc3Npb25FdmVudHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFTZXNzaW9uRXZlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmlt
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0NjQ0MUYwMDBD
MjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0NjU1LDEzICsxNDY1NSwxMyBAQAogCQkJCUM5NjhCMkU3MUIxRTc3ODEw
MEVGMUY4MSAvKiBIVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmNwcCAqLywKIAkJCQlDOTY4
QjJFNjFCMUU3MkY3MDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5oICov
LAogCQkJCUM5NjhCMkU1MUIxRTcwNDUwMEVGMUY4MSAvKiBIVE1MTWVkaWFFbGVtZW50TWVkaWFT
ZXNzaW9uLmlkbCAqLywKLQkJCQlDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMgLyogTWVkaWFFdmVu
dFR5cGVzLmggKi8sCiAJCQkJQzkwODQzQ0QxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3Rl
Q29udHJvbHMuY3BwICovLAogCQkJCUM5MDg0M0NFMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJl
bW90ZUNvbnRyb2xzLmggKi8sCiAJCQkJQzkzNDU4QkIxQjE4RDc3RTAwODhFRTEyIC8qIE1lZGlh
UmVtb3RlQ29udHJvbHMuaWRsICovLAogCQkJCUM5MDI3RjNGMUIxRDBBRDIwMEJGQkZFRiAvKiBN
ZWRpYVNlc3Npb24uY3BwICovLAogCQkJCUM5MDI3RjQwMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRp
YVNlc3Npb24uaCAqLywKIAkJCQlDOTAyN0YzRTFCMUQwQUI5MDBCRkJGRUYgLyogTWVkaWFTZXNz
aW9uLmlkbCAqLywKKwkJCQlDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMgLyogTWVkaWFTZXNzaW9u
RXZlbnRzLmggKi8sCiAJCQkJQzkwRjY1NTMxQjIyNTM5NjAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwICovLAogCQkJCUM5MEY2NTU0MUIyMjUzOTYwMDIxNjNBMSAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJQzlEODUxRUUxQjM5REM3ODAwODUwNjJFIC8qIE1lZGlh
U2Vzc2lvbk1ldGFkYXRhLmggKi8sCkBAIC0yNTg5Nyw3ICsyNTg5Nyw2IEBACiAJCQkJRkQ2RjI1
MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxlbWVudFNl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0FEMENENjMzMTAwMEZBREE3NSAvKiBN
ZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlDOUY4N0NGRTFCMjhGNDBFMDA5NzlCODMg
LyogTWVkaWFFdmVudFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyMjBBMzlEQUJB
MDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTZE
MUVDMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1OTI1LDYgKzI1OTI0LDcgQEAKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAz
ODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RCRUFF
QUQxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDOTAyN0Y0MjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDOUY4N0NGRTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFTZXNz
aW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTBGNjU1NjFCMjI1M0JFMDAyMTYzQTEg
LyogTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0
NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4MWI5MDliZmYyZmYxYjNiZTc0YzYz
ZTRkMzY0OGJhMDg4NTg1MzZiLi42ODM2MTMwZjFhMWRmZmJiMDA5ODk3OTE4YmUyN2JmZTAwZWU1
YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEyMjQsNiArMTIyNCwxMCBAQCB2b2lkIFBhZ2U6
OmhhbmRsZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5cGUgZXZlbnRUeXBlKQogICAgICAgICBicmVh
azsKICAgICB9CiB9CisKK3ZvaWQgUGFnZTo6aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50
KE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5KQoreworfQogI2VuZGlm
CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE0MjFmNDliNjg0ODJk
NmY5NGU4MTA1MzIyOWM0OWI0NmIwMGRhOTEuLjZiYjZjNTAyMzQ1YjdlMzM5YWQ4MTU2ZjRjNDEx
YTcyMjY0NGZmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC01NSw3ICs1NSw3IEBACiAjZW5kaWYKIAog
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQotI2luY2x1ZGUgIk1lZGlhRXZlbnRUeXBlcy5oIgor
I2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkV2ZW50cy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0Mg
ewpAQCAtNDQyLDYgKzQ0Miw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
KQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaGFuZGxlTWVkaWFFdmVudChNZWRpYUV2ZW50VHlw
ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBoYW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZl
bnQoTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnkpOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAppbmRleCBmOTEzZWFmZTFhMGUxNjY4OTU4NWU4YjMyM2ZlOTliZTEyOTFm
MjM4Li43NDNhMDBhMTg1ZDBiNTU1NTU4NDQxY2NmMDVhZjM4MDExMTFkNDg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtODEsNyArODEsNyBAQAogCiAj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhRXZlbnRUeXBlcy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFTZXNzaW9uRXZlbnRzLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC0yMTg5LDYgKzIxODksMzIgQEAgdm9pZCBXS1BhZ2VIYW5kbGVNZWRpYUV2ZW50
KFdLUGFnZVJlZiBwYWdlLCBXS01lZGlhRXZlbnRUeXBlIHdrRXZlbnRUeXBlKQogI2VuZGlmCiB9
CiAKK3ZvaWQgV0tQYWdlSGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KFdLUGFnZVJlZiBw
YWdlLCBXS01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IHdrQ2F0ZWdvcnkpCit7Cisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCisgICAgTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnkgY2F0ZWdvcnk7CisKKyAgICBzd2l0Y2ggKHdrQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIGtX
S01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Q29udGVudDoKKyAgICAgICAgY2F0ZWdv
cnkgPSBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeTo6Q29udGVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRyYW5z
aWVudDoKKyAgICAgICAgY2F0ZWdvcnkgPSBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29y
eTo6VHJhbnNpZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtXS01lZGlhU2Vzc2lvbklu
dGVycnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50U29sbzoKKyAgICAgICAgY2F0ZWdvcnkgPSBNZWRp
YVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeTo6VHJhbnNpZW50U29sbzsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
CisgICAgdG9JbXBsKHBhZ2UpLT5oYW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZlbnQoY2F0ZWdv
cnkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKHdr
Q2F0ZWdvcnkpOworI2VuZGlmCit9CisKIHZvaWQgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVk
QnVuZGxlKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZVJlZiwgV0tU
eXBlUmVmIG1lc3NhZ2VCb2R5UmVmKQogewogICAgIHRvSW1wbChwYWdlUmVmKS0+cG9zdE1lc3Nh
Z2VUb0luamVjdGVkQnVuZGxlKHRvSW1wbChtZXNzYWdlTmFtZVJlZiktPnN0cmluZygpLCB0b0lt
cGwobWVzc2FnZUJvZHlSZWYpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlUHJpdmF0ZS5oCmluZGV4IGY5OTVkYjIwNWJlN2NlOWU3YTI5MmEzNTc2NTg2NGZhZjY5
OGU3NjUuLjcyOGRjMDk3Mjg1ZGQyNDZkMGY5ZDkyN2YxZTZhNGI3OThkYWJiNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaApAQCAtMTE4LDgg
KzExOCwxNiBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIHVpbnQzMl90IFdLTWVkaWFFdmVudFR5cGU7
CiAKK2VudW0geworICAgIGtXS01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Q29udGVu
dCwKKyAgICBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRyYW5zaWVudCwKKyAg
ICBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRyYW5zaWVudFNvbG8KK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk7CisKIFdL
X0VYUE9SVCBib29sIFdLUGFnZUhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRz
KFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUhhbmRsZU1lZGlhRXZlbnQo
V0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFFdmVudFR5cGUgZXZlbnQpOworV0tfRVhQT1JUIHZvaWQg
V0tQYWdlSGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KFdLUGFnZVJlZiBwYWdlLCBXS01l
ZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5KTsKIAogV0tfRVhQT1JUIHZv
aWQgV0tQYWdlTG9hZFVSTFdpdGhTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KFdLUGFnZVJl
ZiBwYWdlLCBXS1VSTFJlZiB1cmwsIGJvb2wgc2hvdWxkT3BlbkV4dGVybmFsVVJMcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjNkZmJkZTAyNzRk
ZjJlZjk3Yzc2NmYxNWUyMjFmZWRjNmY1Y2JiZi4uOGRmMTIxOTQxMTNjMzY3MDY3MWY1OGJlZTAw
NzgxMjVkYTkwNGM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTM3ODIsNiArMzc4MiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlTWVkaWFF
dmVudChNZWRpYUV2ZW50VHlwZSBldmVudFR5cGUpCiAgICAgCiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5kbGVNZWRpYUV2ZW50KGV2ZW50VHlwZSksIG1fcGFnZUlE
KTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVu
dChNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeSBjYXRlZ29yeSkKK3sKKyAgICBpZiAo
IWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpIYW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZlbnQoY2F0ZWdvcnkpLCBt
X3BhZ2VJRCk7Cit9CiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldE1heVN0YXJ0TWVk
aWFXaGVuSW5XaW5kb3coYm9vbCBtYXlTdGFydE1lZGlhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ5MTJhYjkwZDA4MmYwMzMxMzQ5NzBmYjc5NTI2YzUyYzlj
MWM1NmUuLmVjOGMzNTdmMmZmMThiMjdiZTA5NThiMWJkN2NiMjRjZmU5NzNjMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk0Miw2ICs5NDIsNyBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgYm9vbCBoYXNNZWRpYVNlc3Npb25X
aXRoQWN0aXZlTWVkaWFFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzTWVkaWFTZXNzaW9u
V2l0aEFjdGl2ZU1lZGlhRWxlbWVudHM7IH0KICAgICB2b2lkIGhhbmRsZU1lZGlhRXZlbnQoV2Vi
Q29yZTo6TWVkaWFFdmVudFR5cGUpOworICAgIHZvaWQgaGFuZGxlU3RhcnRPZkludGVycnVwdGlv
bkV2ZW50KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5KTsKICNlbmRp
ZgogCiAgICAgLy8gV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZjNDUxNmM4YTQ0ZTZlNTQwNjlh
ZDk1MDMwZTU3YjFkNDEzNDFmOTguLmVlNTc2NmY2MmZiYzgzMDk0OWRjNjM5MjQ4YWU5Njg3Njg4
ZTc0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTQwNDIsNiArNDA0MiwxMSBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZU1lZGlhRXZlbnQo
dWludDMyX3QgZXZlbnRUeXBlKQogewogICAgIG1fcGFnZS0+aGFuZGxlTWVkaWFFdmVudChzdGF0
aWNfY2FzdDxNZWRpYUV2ZW50VHlwZT4oZXZlbnRUeXBlKSk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6
aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KHVpbnQzMl90IGludGVycnVwdGluZ0NhdGVn
b3J5KQoreworICAgIG1fcGFnZS0+aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KHN0YXRp
Y19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5PihpbnRlcnJ1cHRpbmdDYXRl
Z29yeSkpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5J
bldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmMjZjNGI1YzAxMjI4ZGM2ZjMxYjc5OWZmNGJmNTBkMTVh
OTMyNzUyLi4xNDgzYTZjMmFjOTUxNTA3OTBjMjMwMThjOWM3MzlkMTFhN2JmODE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc0Myw2ICs3NDMs
NyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2b2lkIGhhbmRs
ZU1lZGlhRXZlbnQodWludDMyX3QgLyogV2ViQ29yZTo6TWVkaWFFdmVudFR5cGUgKi8pOworICAg
IHZvaWQgaGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KHVpbnQzMl90IC8qIFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5ICovKTsKICNlbmRpZgogCiAgICAgdm9p
ZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDA1
YTg5ZWM0YWNmZDUzMzBkMGRhNDhmNDFkMzEzMGI5MmE3Yjc5MjMuLmJiMDVhNDE0MThjZmI0YmI5
YmY0YzU2MDlmYjQ2MDk1MDliNTE0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTQsNiArMzE0LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKICAgICBIYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSkKKyAgICBI
YW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZlbnQodWludDMyX3QgaW50ZXJydXB0aW5nQ2F0ZWdv
cnkpCiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBUaGlzIGEgZHVtbXkgbWVzc2FnZSwgdG8gYXZv
aWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCByZXF1aXJlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256610</attachid>
            <date>2015-07-10 13:50:51 -0700</date>
            <delta_ts>2015-07-13 10:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146837-20150710134948.patch</filename>
            <type>text/plain</type>
            <size>18491</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiZjMwMDMxNmJkZWYz
OTdhNDhlOWQzMjM3OWM3YzEzNDZmMTdhYi4uOTNkZmM1YTExNWZlMjFhZjZiZjJmZWUwZDJiMzhh
ZmQ0ZWE4MjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTEwICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBhZGQg
cGx1bWJpbmcgZm9yIGRlbGl2ZXJpbmcgc3RhcnQtb2YtaW50ZXJydXB0aW9uIGV2ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaDogUmVuYW1lZCBmcm9tICdNZWRpYUV2ZW50
VHlwZXMuaCcuIEluIGFkZGl0aW9uIHRvIGNvbnN0YW50cyBmb3IKKyAgICAgICAgICBtZWRpYSBj
b250cm9sIGV2ZW50cywgd2Ugbm93IGhhdmUgYW4gZW51bSBmb3Igc3RhcnQtb2YtaW50ZXJydXB0
aW9uIGV2ZW50cy4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6aGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KTogQWRkZWQgc3R1Yi4KKyAgICAg
ICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxNS0wNy0wOCAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogcmVwb3J0IHRvIGNocm9tZSBjbGllbnQg
J2hhc0FjdGl2ZU1lZGlhRWxlbWVudHMnIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOWU1NWVjZWE5
YzgzYjIyZWJiNDQ2ZjhlZGQ0N2FhM2M0ZDk4M2E1Li5kZDlkNGY5ZjMwYmE1YjhlY2IxMzY5MWRj
MzdiMGRlYTliNjMxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDctMTAg
IE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIFNlc3Npb246
IGFkZCBwbHVtYmluZyBmb3IgZGVsaXZlcmluZyBzdGFydC1vZi1pbnRlcnJ1cHRpb24gZXZlbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlSGFuZGxlU3RhcnRPZkludGVy
cnVwdGlvbkV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3RhcnRPZklu
dGVycnVwdGlvbkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAy
MDE1LTA3LTA5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBSZXBvcnQgdGhlIGZpcnN0IHBhaW50IGFmdGVyIGNvbW1pdHRpbmcgYSBsb2FkIGFzIGEg
cmVuZGVyaW5nIHByb2dyZXNzIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUV2ZW50VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMjdhNTY4OTBlN2QyYmMyNGZiZGYxMGM5NTllODM0ODg0YjZmZTg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEs
NDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgTWVkaWFFdmVudFR5cGVzX2gKLSNkZWZpbmUgTWVkaWFFdmVudFR5cGVzX2gKLQot
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0g
TWVkaWFFdmVudFR5cGUgewotICAgIFBsYXlQYXVzZSwKLSAgICBUcmFja05leHQsCi0gICAgVHJh
Y2tQcmV2aW91cwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1lZGlhRXZlbnRUeXBl
c19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25FdmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkV2ZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0M2I4NDZjYjM5M2ZhM2Y4MjJkZTVm
YTNhZGI3ODM0YzY4MzExY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRp
YVNlc3Npb25FdmVudHNfaAorI2RlZmluZSBNZWRpYVNlc3Npb25FdmVudHNfaAorCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBNZWRpYUV2
ZW50VHlwZSB7CisgICAgUGxheVBhdXNlLAorICAgIFRyYWNrTmV4dCwKKyAgICBUcmFja1ByZXZp
b3VzCit9OworCitlbnVtIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IHsKKyAgICBD
b250ZW50LAorICAgIFRyYW5zaWVudCwKKyAgICBUcmFuc2llbnRTb2xvCit9OworCit9CisKKyNl
bmRpZgorCisjZW5kaWYgLyogTWVkaWFTZXNzaW9uRXZlbnRzX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYzczN2U3ZWZk
NDdiMDk2YmI0MWYyZWU5ODM0YTJiN2I0ZDIxZTZhLi4wNmE4ZjA2MDk3MjYyYmM0MWFmZWNiNGQw
ODFiMjE5YjVmZjAwYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzE4LDcgKzU3MTgsNyBAQAogCQlDOTY4QjJFODFCMUU3
NzgxMDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTY4QjJFNzFCMUU3NzgxMDBF
RjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAgKi87IH07CiAJCUM5RDg1
MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlEODUxRUUxQjM5REM3ODAwODUw
NjJFIC8qIE1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzlEQURCQ0IxQjFEM0I5NzAwMUYxN0Q4IC8qIEpTTWVk
aWFTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM5REFEQkM5MUIxRDNCMjUwMDFGMTdEOCAvKiBKU01lZGlhU2Vzc2lvbi5jcHAgKi87IH07
Ci0JCUM5Rjg3Q0ZFMUIyOEY0MEUwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5Rjg3Q0ZEMUIyOEU1RjYw
MDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlDOUY4N0NGRTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFT
ZXNzaW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMgLyogTWVkaWFTZXNzaW9uRXZlbnRzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0EzQkY2N0Mx
MEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBT
Y3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBT
Y3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0
NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8q
IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwpAQCAtMTMzMDksNyArMTMzMDksNyBAQAog
CQlDOUQ4NTFFRTFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uTWV0YWRhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlEQURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpT
TWVkaWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TWVkaWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlEQURCQ0Ex
QjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFFdmVudFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBNZWRpYVNlc3Npb25FdmVudHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFTZXNzaW9uRXZlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmlt
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0NjQ0MUYwMDBD
MjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0NjU1LDEzICsxNDY1NSwxMyBAQAogCQkJCUM5NjhCMkU3MUIxRTc3ODEw
MEVGMUY4MSAvKiBIVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmNwcCAqLywKIAkJCQlDOTY4
QjJFNjFCMUU3MkY3MDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5oICov
LAogCQkJCUM5NjhCMkU1MUIxRTcwNDUwMEVGMUY4MSAvKiBIVE1MTWVkaWFFbGVtZW50TWVkaWFT
ZXNzaW9uLmlkbCAqLywKLQkJCQlDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMgLyogTWVkaWFFdmVu
dFR5cGVzLmggKi8sCiAJCQkJQzkwODQzQ0QxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3Rl
Q29udHJvbHMuY3BwICovLAogCQkJCUM5MDg0M0NFMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJl
bW90ZUNvbnRyb2xzLmggKi8sCiAJCQkJQzkzNDU4QkIxQjE4RDc3RTAwODhFRTEyIC8qIE1lZGlh
UmVtb3RlQ29udHJvbHMuaWRsICovLAogCQkJCUM5MDI3RjNGMUIxRDBBRDIwMEJGQkZFRiAvKiBN
ZWRpYVNlc3Npb24uY3BwICovLAogCQkJCUM5MDI3RjQwMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRp
YVNlc3Npb24uaCAqLywKIAkJCQlDOTAyN0YzRTFCMUQwQUI5MDBCRkJGRUYgLyogTWVkaWFTZXNz
aW9uLmlkbCAqLywKKwkJCQlDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMgLyogTWVkaWFTZXNzaW9u
RXZlbnRzLmggKi8sCiAJCQkJQzkwRjY1NTMxQjIyNTM5NjAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwICovLAogCQkJCUM5MEY2NTU0MUIyMjUzOTYwMDIxNjNBMSAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJQzlEODUxRUUxQjM5REM3ODAwODUwNjJFIC8qIE1lZGlh
U2Vzc2lvbk1ldGFkYXRhLmggKi8sCkBAIC0yNTg5Nyw3ICsyNTg5Nyw2IEBACiAJCQkJRkQ2RjI1
MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxlbWVudFNl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0FEMENENjMzMTAwMEZBREE3NSAvKiBN
ZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlDOUY4N0NGRTFCMjhGNDBFMDA5NzlCODMg
LyogTWVkaWFFdmVudFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyMjBBMzlEQUJB
MDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTZE
MUVDMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1OTI1LDYgKzI1OTI0LDcgQEAKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAz
ODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RCRUFF
QUQxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDOTAyN0Y0MjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDOUY4N0NGRTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFTZXNz
aW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTBGNjU1NjFCMjI1M0JFMDAyMTYzQTEg
LyogTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0
NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4MWI5MDliZmYyZmYxYjNiZTc0YzYz
ZTRkMzY0OGJhMDg4NTg1MzZiLi4zMzg2ZWU4MWFjY2NlYTNjYzYyMzllOTcwMzMxZDhiYmRiYjdi
MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJNZWRp
YUNhblN0YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU3RhdGVOb3RpZmllci5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5j
bHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgpAQCAtMTIyNCw2ICsxMjI1LDExIEBAIHZvaWQgUGFn
ZTo6aGFuZGxlTWVkaWFFdmVudChNZWRpYUV2ZW50VHlwZSBldmVudFR5cGUpCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KKwordm9pZCBQYWdlOjpoYW5kbGVTdGFydE9mSW50ZXJydXB0aW9uRXZl
bnQoTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnkgY2F0ZWdvcnkpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KICNlbmRpZgogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCAxNDIxZjQ5YjY4NDgyZDZmOTRlODEwNTMyMjljNDliNDZiMDBkYTkxLi42YmI2
YzUwMjM0NWI3ZTMzOWFkODE1NmY0YzQxMWE3MjI2NDRmZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
NTUsNyArNTUsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKLSNpbmNs
dWRlICJNZWRpYUV2ZW50VHlwZXMuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25FdmVudHMuaCIK
ICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQ0Miw2ICs0NDIsNyBAQCBwdWJsaWM6CiAK
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRs
ZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaGFu
ZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVn
b3J5KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggZjkxM2VhZmUxYTBl
MTY2ODk1ODVlOGIzMjNmZTk5YmUxMjkxZjIzOC4uNzQzYTAwYTE4NWQwYjU1NTU1ODQ0MWNjZjA1
YWYzODAxMTExZDQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKQEAgLTgxLDcgKzgxLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogI2luY2x1
ZGUgIldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUV2
ZW50VHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbkV2ZW50cy5oPgogI2Vu
ZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjE4OSw2ICsyMTg5LDMyIEBAIHZv
aWQgV0tQYWdlSGFuZGxlTWVkaWFFdmVudChXS1BhZ2VSZWYgcGFnZSwgV0tNZWRpYUV2ZW50VHlw
ZSB3a0V2ZW50VHlwZSkKICNlbmRpZgogfQogCit2b2lkIFdLUGFnZUhhbmRsZVN0YXJ0T2ZJbnRl
cnJ1cHRpb25FdmVudChXS1BhZ2VSZWYgcGFnZSwgV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdD
YXRlZ29yeSB3a0NhdGVnb3J5KQoreworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgIE1l
ZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5OworCisgICAgc3dpdGNoICh3
a0NhdGVnb3J5KSB7CisgICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29y
eUNvbnRlbnQ6CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnk6OkNvbnRlbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dLTWVkaWFTZXNzaW9u
SW50ZXJydXB0aW5nQ2F0ZWdvcnlUcmFuc2llbnQ6CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFT
ZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk6OlRyYW5zaWVudDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRyYW5zaWVudFNvbG86
CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk6OlRy
YW5zaWVudFNvbG87CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHRvSW1wbChwYWdlKS0+aGFuZGxlU3RhcnRP
ZkludGVycnVwdGlvbkV2ZW50KGNhdGVnb3J5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBh
Z2UpOworICAgIFVOVVNFRF9QQVJBTSh3a0NhdGVnb3J5KTsKKyNlbmRpZgorfQorCiB2b2lkIFdL
UGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWVSZWYsIFdLVHlwZVJlZiBtZXNzYWdlQm9keVJlZikKIHsKICAgICB0
b0ltcGwocGFnZVJlZiktPnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZSh0b0ltcGwobWVzc2Fn
ZU5hbWVSZWYpLT5zdHJpbmcoKSwgdG9JbXBsKG1lc3NhZ2VCb2R5UmVmKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCBmOTk1ZGIyMDVi
ZTdjZTllN2EyOTJhMzU3NjU4NjRmYWY2OThlNzY1Li43MjhkYzA5NzI4NWRkMjQ2ZDBmOWQ5Mjdm
MWU2YTRiNzk4ZGFiYjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VQcml2YXRlLmgKQEAgLTExOCw4ICsxMTgsMTYgQEAgZW51bSB7CiB9OwogdHlwZWRlZiB1
aW50MzJfdCBXS01lZGlhRXZlbnRUeXBlOwogCitlbnVtIHsKKyAgICBrV0tNZWRpYVNlc3Npb25J
bnRlcnJ1cHRpbmdDYXRlZ29yeUNvbnRlbnQsCisgICAga1dLTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW5nQ2F0ZWdvcnlUcmFuc2llbnQsCisgICAga1dLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnlUcmFuc2llbnRTb2xvCit9OwordHlwZWRlZiB1aW50MzJfdCBXS01lZGlhU2Vzc2lvbklu
dGVycnVwdGluZ0NhdGVnb3J5OworCiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VIYXNNZWRpYVNlc3Np
b25XaXRoQWN0aXZlTWVkaWFFbGVtZW50cyhXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9p
ZCBXS1BhZ2VIYW5kbGVNZWRpYUV2ZW50KFdLUGFnZVJlZiBwYWdlLCBXS01lZGlhRXZlbnRUeXBl
IGV2ZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZUhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25F
dmVudChXS1BhZ2VSZWYgcGFnZSwgV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeSBj
YXRlZ29yeSk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUxvYWRVUkxXaXRoU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeShXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsLCBib29sIHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGIzZGZiZGUwMjc0ZGYyZWY5N2M3NjZmMTVlMjIxZmVkYzZmNWNiYmYuLjhk
ZjEyMTk0MTEzYzM2NzA2NzFmNThiZWUwMDc4MTI1ZGE5MDRjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNzgyLDYgKzM3ODIsMTQgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmhhbmRsZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5cGUgZXZlbnRUeXBlKQog
ICAgIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlTWVkaWFF
dmVudChldmVudFR5cGUpLCBtX3BhZ2VJRCk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5k
bGVTdGFydE9mSW50ZXJydXB0aW9uRXZlbnQoTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdv
cnkgY2F0ZWdvcnkpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlU3RhcnRPZkludGVy
cnVwdGlvbkV2ZW50KGNhdGVnb3J5KSwgbV9wYWdlSUQpOworfQogI2VuZGlmCiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRp
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0OTEyYWI5MGQw
ODJmMDMzMTM0OTcwZmI3OTUyNmM1MmM5YzFjNTZlLi5lYzhjMzU3ZjJmZjE4YjI3YmUwOTU4YjFi
ZDdjYjI0Y2ZlOTczYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC05NDIsNiArOTQyLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQog
ICAgIGJvb2wgaGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1lZGlhRWxlbWVudHMoKSBjb25zdCB7
IHJldHVybiBtX2hhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzOyB9CiAgICAg
dm9pZCBoYW5kbGVNZWRpYUV2ZW50KFdlYkNvcmU6Ok1lZGlhRXZlbnRUeXBlKTsKKyAgICB2b2lk
IGhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudChXZWJDb3JlOjpNZWRpYVNlc3Npb25JbnRl
cnJ1cHRpbmdDYXRlZ29yeSk7CiAjZW5kaWYKIAogICAgIC8vIFdlYlBvcHVwTWVudVByb3h5OjpD
bGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBmYzQ1MTZjOGE0NGU2ZTU0MDY5YWQ5NTAzMGU1N2IxZDQxMzQxZjk4Li5lZTU3NjZmNjJm
YmM4MzA5NDlkYzYzOTI0OGFlOTY4NzY4OGU3NDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MDQyLDYgKzQwNDIsMTEgQEAgdm9pZCBX
ZWJQYWdlOjpoYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSkKIHsKICAgICBtX3Bh
Z2UtPmhhbmRsZU1lZGlhRXZlbnQoc3RhdGljX2Nhc3Q8TWVkaWFFdmVudFR5cGU+KGV2ZW50VHlw
ZSkpOwogfQorCit2b2lkIFdlYlBhZ2U6OmhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25FdmVudCh1
aW50MzJfdCBpbnRlcnJ1cHRpbmdDYXRlZ29yeSkKK3sKKyAgICBtX3BhZ2UtPmhhbmRsZVN0YXJ0
T2ZJbnRlcnJ1cHRpb25FdmVudChzdGF0aWNfY2FzdDxNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdD
YXRlZ29yeT4oaW50ZXJydXB0aW5nQ2F0ZWdvcnkpKTsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBh
Z2U6OnNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBtYXlTdGFydE1lZGlhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjI2YzRiNWMw
MTIyOGRjNmYzMWI3OTlmZjRiZjUwZDE1YTkzMjc1Mi4uMTQ4M2E2YzJhYzk1MTUwNzkwYzIzMDE4
YzljNzM5ZDExYTdiZjgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC03NDMsNiArNzQzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT04pCiAgICAgdm9pZCBoYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IC8qIFdlYkNvcmU6
Ok1lZGlhRXZlbnRUeXBlICovKTsKKyAgICB2b2lkIGhhbmRsZVN0YXJ0T2ZJbnRlcnJ1cHRpb25F
dmVudCh1aW50MzJfdCAvKiBXZWJDb3JlOjpNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29y
eSAqLyk7CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlu
bmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCAwNWE4OWVjNGFjZmQ1MzMwZDBkYTQ4ZjQxZDMxMzBiOTJh
N2I3OTIzLi5iYjA1YTQxNDE4Y2ZiNGJiOWJmNGM1NjA5ZmI0NjA5NTA5YjUxNGFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMzE0LDYgKzMxNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgSGFuZGxlTWVkaWFFdmVudCh1
aW50MzJfdCBldmVudFR5cGUpCisgICAgSGFuZGxlU3RhcnRPZkludGVycnVwdGlvbkV2ZW50KHVp
bnQzMl90IGludGVycnVwdGluZ0NhdGVnb3J5KQogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogVGhp
cyBhIGR1bW15IG1lc3NhZ2UsIHRvIGF2b2lkIGJyZWFraW5nIHRoZSBidWlsZCBmb3IgcGxhdGZv
cm1zIHRoYXQgZG9uJ3QgcmVxdWlyZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256706</attachid>
            <date>2015-07-13 10:43:55 -0700</date>
            <delta_ts>2015-07-13 11:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146837-20150713104252.patch</filename>
            <type>text/plain</type>
            <size>21400</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiZjMwMDMxNmJkZWYz
OTdhNDhlOWQzMjM3OWM3YzEzNDZmMTdhYi4uOTQxZGQwOGYwMmZlODgwYTFiYzVlYzc4MmMyY2Jl
ODNmNzE2NTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTEzICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBhZGQg
cGx1bWJpbmcgZm9yIGRlbGl2ZXJpbmcgc3RhcnQvZW5kLW9mLWludGVycnVwdGlvbiBldmVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjgzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uRXZlbnRzLmg6IFJlbmFtZWQgZnJvbSBNZWRpYUV2
ZW50VHlwZXMuaCBhbmQgYWRkZWQgbmV3IGNvbnN0YW50cyBmb3IKKyAgICAgICAgICBpbnRlcnJ1
cHRpb24gZXZlbnRzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogUmVuYW1lZCBNZWRpYUV2ZW50VHlwZXMuaC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDogQWRk
ZWQgc3R1Yi4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBBZGRlZCBzdHViLgorCiAyMDE1LTA3
LTA4ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNz
aW9uOiByZXBvcnQgdG8gY2hyb21lIGNsaWVudCAnaGFzQWN0aXZlTWVkaWFFbGVtZW50cycgY2hh
bmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDI5ZTU1ZWNlYTljODNiMjJlYmI0NDZmOGVkZDQ3YWEzYzRkOTgz
YTUuLjAxZDRlZDRlZTQ5YzgzNDg0MzU4ODQyZGNlNzNiMTI4ZDVhYTIxNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNy0xMyAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5j
b20+CisKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogYWRkIHBsdW1iaW5nIGZvciBkZWxpdmVyaW5n
IHN0YXJ0L2VuZC1vZi1pbnRlcnJ1cHRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4MzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlSGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFu
ZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlv
bkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE1LTA3LTA5
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZXBv
cnQgdGhlIGZpcnN0IHBhaW50IGFmdGVyIGNvbW1pdHRpbmcgYSBsb2FkIGFzIGEgcmVuZGVyaW5n
IHByb2dyZXNzIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYUV2ZW50VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
MjdhNTY4OTBlN2QyYmMyNGZiZGYxMGM5NTllODM0ODg0YjZmZTg3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
TWVkaWFFdmVudFR5cGVzX2gKLSNkZWZpbmUgTWVkaWFFdmVudFR5cGVzX2gKLQotI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gTWVkaWFFdmVu
dFR5cGUgewotICAgIFBsYXlQYXVzZSwKLSAgICBUcmFja05leHQsCi0gICAgVHJhY2tQcmV2aW91
cwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1lZGlhRXZlbnRUeXBlc19oICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25FdmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkV2ZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiMzRjMWM1ZTQ0OTg0YzMxZmViYWNlMzQyMDNiOGUz
ZTk2Mzk5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVNlc3Npb25F
dmVudHNfaAorI2RlZmluZSBNZWRpYVNlc3Npb25FdmVudHNfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBNZWRpYUV2ZW50VHlwZSB7
CisgICAgUGxheVBhdXNlLAorICAgIFRyYWNrTmV4dCwKKyAgICBUcmFja1ByZXZpb3VzCit9Owor
CitlbnVtIE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50IHsKKyAgICBTdGFydE9mSW50ZXJy
dXB0aW9uLAorICAgIEVuZE9mSW50ZXJydXB0aW9uCit9OworCitlbnVtIE1lZGlhU2Vzc2lvbklu
dGVycnVwdGluZ0NhdGVnb3J5IHsKKyAgICBDb250ZW50LAorICAgIFRyYW5zaWVudCwKKyAgICBU
cmFuc2llbnRTb2xvCit9OworCit9CisKKyNlbmRpZgorCisjZW5kaWYgLyogTWVkaWFTZXNzaW9u
RXZlbnRzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmYzczN2U3ZWZkNDdiMDk2YmI0MWYyZWU5ODM0YTJiN2I0ZDIxZTZh
Li5iM2RkYTM0ZjJkYmRmODU4YTU4YmE0MmRkODAyYmZiYmU0YTkzNTEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzE4LDcg
KzU3MTgsNyBAQAogCQlDOTY4QjJFODFCMUU3NzgxMDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVu
dE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDOTY4QjJFNzFCMUU3NzgxMDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlh
U2Vzc2lvbi5jcHAgKi87IH07CiAJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNl
c3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzlEODUxRUUxQjM5REM3ODAwODUwNjJFIC8qIE1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzlEQURC
Q0IxQjFEM0I5NzAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5REFEQkM5MUIxRDNCMjUwMDFGMTdEOCAv
KiBKU01lZGlhU2Vzc2lvbi5jcHAgKi87IH07Ci0JCUM5Rjg3Q0ZFMUIyOEY0MEUwMDk3OUI4MyAv
KiBNZWRpYUV2ZW50VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDOUY4N0NG
RTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFTZXNzaW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMg
LyogTWVkaWFTZXNzaW9uRXZlbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1h
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
M0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNB
M0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUz
IC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9
OwpAQCAtMTMzMDksNyArMTMzMDksNyBAQAogCQlDOUQ4NTFFRTFCMzlEQzc4MDA4NTA2MkUgLyog
TWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlE
QURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzlEQURCQ0ExQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAv
KiBNZWRpYUV2ZW50VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFFdmVudFR5cGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBN
ZWRpYVNlc3Npb25FdmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25FdmVudHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8q
IFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2
N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2NTUsMTMgKzE0NjU1LDEz
IEBACiAJCQkJQzk2OEIyRTcxQjFFNzc4MTAwRUYxRjgxIC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRp
YVNlc3Npb24uY3BwICovLAogCQkJCUM5NjhCMkU2MUIxRTcyRjcwMEVGMUY4MSAvKiBIVE1MTWVk
aWFFbGVtZW50TWVkaWFTZXNzaW9uLmggKi8sCiAJCQkJQzk2OEIyRTUxQjFFNzA0NTAwRUYxRjgx
IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVNlc3Npb24uaWRsICovLAotCQkJCUM5Rjg3Q0ZEMUIy
OEU1RjYwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAqLywKIAkJCQlDOTA4NDNDRDFCMThF
NDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi8sCiAJCQkJQzkwODQzQ0Ux
QjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCAqLywKIAkJCQlDOTM0NThC
QjFCMThENzdFMDA4OEVFMTIgLyogTWVkaWFSZW1vdGVDb250cm9scy5pZGwgKi8sCiAJCQkJQzkw
MjdGM0YxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi8sCiAJCQkJQzkwMjdG
NDAxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oICovLAogCQkJCUM5MDI3RjNFMUIx
RDBBQjkwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaWRsICovLAorCQkJCUM5Rjg3Q0ZEMUIyOEU1
RjYwMDk3OUI4MyAvKiBNZWRpYVNlc3Npb25FdmVudHMuaCAqLywKIAkJCQlDOTBGNjU1MzFCMjI1
Mzk2MDAyMTYzQTEgLyogTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJQzkwRjY1NTQx
QjIyNTM5NjAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQlDOUQ4NTFF
RTFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLywKQEAgLTI1ODk3
LDcgKzI1ODk3LDYgQEAKIAkJCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0ZFOTlERDE4ODA3QTdE
MDAyNTY2NDggLyogTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0
NjEzQUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUM5Rjg3Q0ZFMUIyOEY0MEUwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBNkQxRUMxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJh
Z21lbnRVUklQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4MDBFMEExOTUxNkUwMEE4
RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjU5MjUsNiArMjU5MjQsNyBA
QAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREJFQUVBRDE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxl
Y3Rpb25Hcm91cEFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5MDI3RjQyMUIxRDBBRDIw
MEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUM5Rjg3Q0ZFMUIy
OEY0MEUwMDk3OUI4MyAvKiBNZWRpYVNlc3Npb25FdmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM5MEY2NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlEODUxRjAxQjM5REM3ODAwODUwNjJFIC8q
IE1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IDgxYjkwOWJmZjJmZjFiM2JlNzRjNjNlNGQzNjQ4YmEwODg1ODUzNmIuLjVjMGI0Njc2OGZi
NzcwMmQyOWQyMmZmYzJiY2QwZmI1MmY3YmVlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTcs
NiArNTcsNyBAQAogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
Ik5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQ
YWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCkBAIC0x
MjI0LDYgKzEyMjUsMTEgQEAgdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRU
eXBlIGV2ZW50VHlwZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQorCit2b2lkIFBhZ2U6Omhh
bmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50KE1lZGlhU2Vzc2lvbkludGVycnVwdGlv
bkV2ZW50IGV2ZW50LCBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeSBjYXRlZ29yeSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQogI2VuZGlmCiAKICNpZiAhQVNTRVJUX0RJU0FC
TEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE0MjFmNDliNjg0ODJkNmY5NGU4MTA1MzIyOWM0OWI0NmIw
MGRhOTEuLjEzZjMxOGFkNDllZDBmNjkzNDc3YjgwMjEwOTExMGU3ZjgwOTFlMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC01NSw3ICs1NSw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQotI2luY2x1ZGUgIk1lZGlhRXZlbnRUeXBlcy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lv
bkV2ZW50cy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQyLDYgKzQ0Miw3IEBA
IHB1YmxpYzoKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgaGFuZGxlTWVkaWFFdmVudChNZWRpYUV2ZW50VHlwZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBoYW5kbGVNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudChNZWRpYVNlc3Npb25J
bnRlcnJ1cHRpb25FdmVudCwgTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnkpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBmOTEzZWFmZTFhMGUxNjY4OTU4NWU4
YjMyM2ZlOTliZTEyOTFmMjM4Li4xMjQ0NjExMmNmODYzMGJiMmUxZWIyMjAwZmQ0ZWU3Njc0OTA3
MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtODEs
NyArODEsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAjaW5jbHVkZSAiV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhRXZlbnRUeXBlcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uRXZlbnRzLmg+CiAjZW5kaWYKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMTg5LDYgKzIxODksNTYgQEAgdm9pZCBXS1BhZ2VI
YW5kbGVNZWRpYUV2ZW50KFdLUGFnZVJlZiBwYWdlLCBXS01lZGlhRXZlbnRUeXBlIHdrRXZlbnRU
eXBlKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKy8vIE5PVEU6IFRo
ZSB2YWx1ZXMgaW4gdGhlIFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnkgZW51bSBt
dXN0IHN0YXkgaW4gc3luYyB3aXRoIHRob3NlIGluIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5LgorQ09NUElMRV9BU1NFUlQoTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5n
Q2F0ZWdvcnk6OkNvbnRlbnQgPT0gc3RhdGljX2Nhc3Q8TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5n
Q2F0ZWdvcnk+KGtXS01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Q29udGVudCksIE1l
ZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5RW51bUNvbnRlbnRfSXNfV3JvbmdfU2hvdWxk
X0JlX2tXS01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Q29udGVudCk7CitDT01QSUxF
X0FTU0VSVChNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeTo6VHJhbnNpZW50ID09IHN0
YXRpY19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5PihrV0tNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRyYW5zaWVudCksIE1lZGlhU2Vzc2lvbkludGVycnVwdGlu
Z0NhdGVnb3J5RW51bVRyYW5zaWVudF9Jc19Xcm9uZ19TaG91bGRfQmVfa1dLTWVkaWFTZXNzaW9u
SW50ZXJydXB0aW5nQ2F0ZWdvcnlUcmFuc2llbnQpOworQ09NUElMRV9BU1NFUlQoTWVkaWFTZXNz
aW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk6OlRyYW5zaWVudFNvbG8gPT0gc3RhdGljX2Nhc3Q8TWVk
aWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk+KGtXS01lZGlhU2Vzc2lvbkludGVycnVwdGlu
Z0NhdGVnb3J5VHJhbnNpZW50U29sbyksIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5
RW51bVRyYW5zaWVudFNvbG9fSXNfV3JvbmdfU2hvdWxkX0JlX2tXS01lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50U29sbyk7CisKK0NPTVBJTEVfQVNTRVJUKE1lZGlhU2Vz
c2lvbkludGVycnVwdGlvbkV2ZW50OjpTdGFydE9mSW50ZXJydXB0aW9uID09IHN0YXRpY19jYXN0
PE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50PihrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRp
b25FdmVudFN0YXJ0T2ZJbnRlcnJ1cHRpb24pLCBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVu
dEVudW1TdGFydE9mSW50ZXJydXB0aW9uX0lzX1dyb25nX1Nob3VsZF9CZV9rV0tNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25FdmVudFN0YXJ0T2ZJbnRlcnJ1cHRpb24pOworQ09NUElMRV9BU1NFUlQo
TWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQ6OkVuZE9mSW50ZXJydXB0aW9uID09IHN0YXRp
Y19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50PihrV0tNZWRpYVNlc3Npb25JbnRl
cnJ1cHRpb25FdmVudEVuZE9mSW50ZXJydXB0aW9uKSwgTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9u
RXZlbnRFbnVtRW5kT2ZJbnRlcnJ1cHRpb25fSXNfV3JvbmdfU2hvdWxkX0JlX2tXS01lZGlhU2Vz
c2lvbkludGVycnVwdGlvbkV2ZW50RW5kT2ZJbnRlcnJ1cHRpb24pOworI2VuZGlmCisKK3ZvaWQg
V0tQYWdlSGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoV0tQYWdlUmVmIHBhZ2Us
IFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQgd2tFdmVudCwgV0tNZWRpYVNlc3Npb25J
bnRlcnJ1cHRpbmdDYXRlZ29yeSB3a0NhdGVnb3J5KQoreworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQorICAgIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5OworCisg
ICAgc3dpdGNoICh3a0NhdGVnb3J5KSB7CisgICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1
cHRpbmdDYXRlZ29yeUNvbnRlbnQ6CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFTZXNzaW9uSW50
ZXJydXB0aW5nQ2F0ZWdvcnk6OkNvbnRlbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dL
TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnlUcmFuc2llbnQ6CisgICAgICAgIGNhdGVn
b3J5ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk6OlRyYW5zaWVudDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRy
YW5zaWVudFNvbG86CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5n
Q2F0ZWdvcnk6OlRyYW5zaWVudFNvbG87CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIE1lZGlhU2Vzc2lvbklu
dGVycnVwdGlvbkV2ZW50IGV2ZW50OworCisgICAgc3dpdGNoICh3a0V2ZW50KSB7CisgICAgY2Fz
ZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudFN0YXJ0T2ZJbnRlcnJ1cHRpb246Cisg
ICAgICAgIGV2ZW50ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQ6OlN0YXJ0T2ZJbnRl
cnJ1cHRpb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dLTWVkaWFTZXNzaW9uSW50ZXJy
dXB0aW9uRXZlbnRFbmRPZkludGVycnVwdGlvbjoKKyAgICAgICAgZXZlbnQgPSBNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25FdmVudDo6RW5kT2ZJbnRlcnJ1cHRpb247CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IHRvSW1wbChwYWdlKS0+aGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoZXZlbnQs
IGNhdGVnb3J5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9Q
QVJBTSh3a0V2ZW50KTsKKyAgICBVTlVTRURfUEFSQU0od2tDYXRlZ29yeSk7CisjZW5kaWYKK30K
Kwogdm9pZCBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoV0tQYWdlUmVmIHBhZ2VS
ZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lUmVmLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHlSZWYp
CiB7CiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUodG9J
bXBsKG1lc3NhZ2VOYW1lUmVmKS0+c3RyaW5nKCksIHRvSW1wbChtZXNzYWdlQm9keVJlZikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXgg
Zjk5NWRiMjA1YmU3Y2U5ZTdhMjkyYTM1NzY1ODY0ZmFmNjk4ZTc2NS4uYjljYjRlYWRlNWE2OGNh
OTg4ZmFkOGExYzY1MWI0ZjYwMzA0ZjBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0xMTgsOCArMTE4LDIyIEBAIGVudW0gewogfTsK
IHR5cGVkZWYgdWludDMyX3QgV0tNZWRpYUV2ZW50VHlwZTsKIAorZW51bSB7CisgICAga1dLTWVk
aWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnlDb250ZW50LAorICAgIGtXS01lZGlhU2Vzc2lv
bkludGVycnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50LAorICAgIGtXS01lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50U29sbworfTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZWRp
YVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeTsKKworZW51bSB7CisgICAga1dLTWVkaWFTZXNz
aW9uSW50ZXJydXB0aW9uRXZlbnRTdGFydE9mSW50ZXJydXB0aW9uLAorICAgIGtXS01lZGlhU2Vz
c2lvbkludGVycnVwdGlvbkV2ZW50RW5kT2ZJbnRlcnJ1cHRpb24KK307Cit0eXBlZGVmIHVpbnQz
Ml90IFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQ7CisKIFdLX0VYUE9SVCBib29sIFdL
UGFnZUhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzKFdLUGFnZVJlZiBwYWdl
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUhhbmRsZU1lZGlhRXZlbnQoV0tQYWdlUmVmIHBhZ2Us
IFdLTWVkaWFFdmVudFR5cGUgZXZlbnQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlSGFuZGxlTWVk
aWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFTZXNzaW9u
SW50ZXJydXB0aW9uRXZlbnQgZXZlbnQsIFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdv
cnkgY2F0ZWdvcnkpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VMb2FkVVJMV2l0aFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3koV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybCwgYm9vbCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBiM2RmYmRlMDI3NGRmMmVmOTdjNzY2ZjE1ZTIyMWZlZGM2ZjVjYmJm
Li4wZDc0ODg4NzAxMTMwZDZjZGY0ZTZjZDk4NmZhMGFmMWFkODUyMTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzc4Miw2ICszNzgyLDE0IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlw
ZSkKICAgICAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1l
ZGlhRXZlbnQoZXZlbnRUeXBlKSwgbV9wYWdlSUQpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW9uRXZlbnQgZXZlbnQsIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5
KQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlv
bkV2ZW50KGV2ZW50LCBjYXRlZ29yeSksIG1fcGFnZUlEKTsKK30KICNlbmRpZgogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVk
aWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDkxMmFiOTBk
MDgyZjAzMzEzNDk3MGZiNzk1MjZjNTJjOWMxYzU2ZS4uZDQ0MmE5ZDY5ODE5ODRkOWEzYjc1MzE0
MDIxYTkzZTBmMzY0YWY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtOTQyLDYgKzk0Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikK
ICAgICBib29sIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50czsgfQogICAg
IHZvaWQgaGFuZGxlTWVkaWFFdmVudChXZWJDb3JlOjpNZWRpYUV2ZW50VHlwZSk7CisgICAgdm9p
ZCBoYW5kbGVNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudChXZWJDb3JlOjpNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25FdmVudCwgV2ViQ29yZTo6TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnkpOwogI2VuZGlmCiAKICAgICAvLyBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZmM0NTE2
YzhhNDRlNmU1NDA2OWFkOTUwMzBlNTdiMWQ0MTM0MWY5OC4uNjBkZmM0ZThmN2VlYjRjYmYzZmE1
ZDhiYTBiZGE3Nzg3MTE4MTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMTg3LDYgKzE4NywxMCBAQAogI2luY2x1ZGUgIldlYkRldmlj
ZVByb3hpbWl0eUNsaWVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikK
KyNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09B
KQogI2luY2x1ZGUgIlBERlBsdWdpbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLmgiCkBAIC00MDQyLDYgKzQwNDYsMTEgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVNZWRp
YUV2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSkKIHsKICAgICBtX3BhZ2UtPmhhbmRsZU1lZGlhRXZl
bnQoc3RhdGljX2Nhc3Q8TWVkaWFFdmVudFR5cGU+KGV2ZW50VHlwZSkpOwogfQorCit2b2lkIFdl
YlBhZ2U6OmhhbmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50KHVpbnQzMl90IGV2ZW50
LCB1aW50MzJfdCBjYXRlZ29yeSkKK3sKKyAgICBtX3BhZ2UtPmhhbmRsZU1lZGlhU2Vzc2lvbklu
dGVycnVwdGlvbkV2ZW50KHN0YXRpY19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50
PihldmVudCksIHN0YXRpY19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Pihj
YXRlZ29yeSkpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3RhcnRNZWRpYVdo
ZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmMjZjNGI1YzAxMjI4ZGM2ZjMxYjc5OWZmNGJmNTBk
MTVhOTMyNzUyLi5lNjQxODkxZTBkMTYwM2I0MTg4YjI1OTM2ZTI1Yjg0MThkMGRlYjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc0Myw2ICs3
NDMsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2b2lkIGhh
bmRsZU1lZGlhRXZlbnQodWludDMyX3QgLyogV2ViQ29yZTo6TWVkaWFFdmVudFR5cGUgKi8pOwor
ICAgIHZvaWQgaGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQodWludDMyX3QgLyog
V2ViQ29yZTo6TWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQgKi8sIHVpbnQzMl90IC8qIFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5ICovKTsKICNlbmRpZgogCiAg
ICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5nKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDA1YTg5ZWM0YWNmZDUzMzBkMGRhNDhmNDFkMzEzMGI5MmE3Yjc5MjMuLjVhOWEyMTNhYzYz
ZWFlMWMzN2JlOTQ2ZDg1N2Y2ZDEwOTY2ZWQ4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTQsNiArMzE0
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTikKICAgICBIYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSkK
KyAgICBIYW5kbGVNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudCh1aW50MzJfdCBldmVudCwg
dWludDMyX3QgaW50ZXJydXB0aW5nQ2F0ZWdvcnkpCiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBU
aGlzIGEgZHVtbXkgbWVzc2FnZSwgdG8gYXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBwbGF0
Zm9ybXMgdGhhdCBkb24ndCByZXF1aXJlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256708</attachid>
            <date>2015-07-13 11:46:35 -0700</date>
            <delta_ts>2015-07-13 15:11:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146837-20150713114532.patch</filename>
            <type>text/plain</type>
            <size>21179</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiZjMwMDMxNmJkZWYz
OTdhNDhlOWQzMjM3OWM3YzEzNDZmMTdhYi4uOTQxZGQwOGYwMmZlODgwYTFiYzVlYzc4MmMyY2Jl
ODNmNzE2NTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTEzICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBhZGQg
cGx1bWJpbmcgZm9yIGRlbGl2ZXJpbmcgc3RhcnQvZW5kLW9mLWludGVycnVwdGlvbiBldmVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjgzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uRXZlbnRzLmg6IFJlbmFtZWQgZnJvbSBNZWRpYUV2
ZW50VHlwZXMuaCBhbmQgYWRkZWQgbmV3IGNvbnN0YW50cyBmb3IKKyAgICAgICAgICBpbnRlcnJ1
cHRpb24gZXZlbnRzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogUmVuYW1lZCBNZWRpYUV2ZW50VHlwZXMuaC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDogQWRk
ZWQgc3R1Yi4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOiBBZGRlZCBzdHViLgorCiAyMDE1LTA3
LTA4ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNz
aW9uOiByZXBvcnQgdG8gY2hyb21lIGNsaWVudCAnaGFzQWN0aXZlTWVkaWFFbGVtZW50cycgY2hh
bmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDI5ZTU1ZWNlYTljODNiMjJlYmI0NDZmOGVkZDQ3YWEzYzRkOTgz
YTUuLjAxZDRlZDRlZTQ5YzgzNDg0MzU4ODQyZGNlNzNiMTI4ZDVhYTIxNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNy0xMyAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5j
b20+CisKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogYWRkIHBsdW1iaW5nIGZvciBkZWxpdmVyaW5n
IHN0YXJ0L2VuZC1vZi1pbnRlcnJ1cHRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4MzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlSGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFu
ZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlv
bkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE1LTA3LTA5
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZXBv
cnQgdGhlIGZpcnN0IHBhaW50IGFmdGVyIGNvbW1pdHRpbmcgYSBsb2FkIGFzIGEgcmVuZGVyaW5n
IHByb2dyZXNzIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYUV2ZW50VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
MjdhNTY4OTBlN2QyYmMyNGZiZGYxMGM5NTllODM0ODg0YjZmZTg3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhRXZlbnRUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
TWVkaWFFdmVudFR5cGVzX2gKLSNkZWZpbmUgTWVkaWFFdmVudFR5cGVzX2gKLQotI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gTWVkaWFFdmVu
dFR5cGUgewotICAgIFBsYXlQYXVzZSwKLSAgICBUcmFja05leHQsCi0gICAgVHJhY2tQcmV2aW91
cwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1lZGlhRXZlbnRUeXBlc19oICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25FdmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkV2ZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiMzRjMWM1ZTQ0OTg0YzMxZmViYWNlMzQyMDNiOGUz
ZTk2Mzk5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVNlc3Npb25F
dmVudHNfaAorI2RlZmluZSBNZWRpYVNlc3Npb25FdmVudHNfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBNZWRpYUV2ZW50VHlwZSB7
CisgICAgUGxheVBhdXNlLAorICAgIFRyYWNrTmV4dCwKKyAgICBUcmFja1ByZXZpb3VzCit9Owor
CitlbnVtIE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50IHsKKyAgICBTdGFydE9mSW50ZXJy
dXB0aW9uLAorICAgIEVuZE9mSW50ZXJydXB0aW9uCit9OworCitlbnVtIE1lZGlhU2Vzc2lvbklu
dGVycnVwdGluZ0NhdGVnb3J5IHsKKyAgICBDb250ZW50LAorICAgIFRyYW5zaWVudCwKKyAgICBU
cmFuc2llbnRTb2xvCit9OworCit9CisKKyNlbmRpZgorCisjZW5kaWYgLyogTWVkaWFTZXNzaW9u
RXZlbnRzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmYzczN2U3ZWZkNDdiMDk2YmI0MWYyZWU5ODM0YTJiN2I0ZDIxZTZh
Li5iM2RkYTM0ZjJkYmRmODU4YTU4YmE0MmRkODAyYmZiYmU0YTkzNTEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzE4LDcg
KzU3MTgsNyBAQAogCQlDOTY4QjJFODFCMUU3NzgxMDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVu
dE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDOTY4QjJFNzFCMUU3NzgxMDBFRjFGODEgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlh
U2Vzc2lvbi5jcHAgKi87IH07CiAJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNl
c3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzlEODUxRUUxQjM5REM3ODAwODUwNjJFIC8qIE1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzlEQURC
Q0IxQjFEM0I5NzAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5REFEQkM5MUIxRDNCMjUwMDFGMTdEOCAv
KiBKU01lZGlhU2Vzc2lvbi5jcHAgKi87IH07Ci0JCUM5Rjg3Q0ZFMUIyOEY0MEUwMDk3OUI4MyAv
KiBNZWRpYUV2ZW50VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDOUY4N0NG
RTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFTZXNzaW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUY4N0NGRDFCMjhFNUY2MDA5NzlCODMg
LyogTWVkaWFTZXNzaW9uRXZlbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1h
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
M0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNB
M0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUz
IC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9
OwpAQCAtMTMzMDksNyArMTMzMDksNyBAQAogCQlDOUQ4NTFFRTFCMzlEQzc4MDA4NTA2MkUgLyog
TWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlE
QURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzlEQURCQ0ExQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAv
KiBNZWRpYUV2ZW50VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFFdmVudFR5cGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Rjg3Q0ZEMUIyOEU1RjYwMDk3OUI4MyAvKiBN
ZWRpYVNlc3Npb25FdmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25FdmVudHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8q
IFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2
N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2NTUsMTMgKzE0NjU1LDEz
IEBACiAJCQkJQzk2OEIyRTcxQjFFNzc4MTAwRUYxRjgxIC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRp
YVNlc3Npb24uY3BwICovLAogCQkJCUM5NjhCMkU2MUIxRTcyRjcwMEVGMUY4MSAvKiBIVE1MTWVk
aWFFbGVtZW50TWVkaWFTZXNzaW9uLmggKi8sCiAJCQkJQzk2OEIyRTUxQjFFNzA0NTAwRUYxRjgx
IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVNlc3Npb24uaWRsICovLAotCQkJCUM5Rjg3Q0ZEMUIy
OEU1RjYwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCAqLywKIAkJCQlDOTA4NDNDRDFCMThF
NDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi8sCiAJCQkJQzkwODQzQ0Ux
QjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCAqLywKIAkJCQlDOTM0NThC
QjFCMThENzdFMDA4OEVFMTIgLyogTWVkaWFSZW1vdGVDb250cm9scy5pZGwgKi8sCiAJCQkJQzkw
MjdGM0YxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi8sCiAJCQkJQzkwMjdG
NDAxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oICovLAogCQkJCUM5MDI3RjNFMUIx
RDBBQjkwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaWRsICovLAorCQkJCUM5Rjg3Q0ZEMUIyOEU1
RjYwMDk3OUI4MyAvKiBNZWRpYVNlc3Npb25FdmVudHMuaCAqLywKIAkJCQlDOTBGNjU1MzFCMjI1
Mzk2MDAyMTYzQTEgLyogTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJQzkwRjY1NTQx
QjIyNTM5NjAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQlDOUQ4NTFF
RTFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLywKQEAgLTI1ODk3
LDcgKzI1ODk3LDYgQEAKIAkJCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0ZFOTlERDE4ODA3QTdE
MDAyNTY2NDggLyogTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0
NjEzQUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUM5Rjg3Q0ZFMUIyOEY0MEUwMDk3OUI4MyAvKiBNZWRpYUV2ZW50VHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBNkQxRUMxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJh
Z21lbnRVUklQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4MDBFMEExOTUxNkUwMEE4
RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjU5MjUsNiArMjU5MjQsNyBA
QAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREJFQUVBRDE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxl
Y3Rpb25Hcm91cEFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5MDI3RjQyMUIxRDBBRDIw
MEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUM5Rjg3Q0ZFMUIy
OEY0MEUwMDk3OUI4MyAvKiBNZWRpYVNlc3Npb25FdmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM5MEY2NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlEODUxRjAxQjM5REM3ODAwODUwNjJFIC8q
IE1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IDgxYjkwOWJmZjJmZjFiM2JlNzRjNjNlNGQzNjQ4YmEwODg1ODUzNmIuLjVjMGI0Njc2OGZi
NzcwMmQyOWQyMmZmYzJiY2QwZmI1MmY3YmVlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTcs
NiArNTcsNyBAQAogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
Ik5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQ
YWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCkBAIC0x
MjI0LDYgKzEyMjUsMTEgQEAgdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRU
eXBlIGV2ZW50VHlwZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQorCit2b2lkIFBhZ2U6Omhh
bmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50KE1lZGlhU2Vzc2lvbkludGVycnVwdGlv
bkV2ZW50IGV2ZW50LCBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeSBjYXRlZ29yeSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQogI2VuZGlmCiAKICNpZiAhQVNTRVJUX0RJU0FC
TEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE0MjFmNDliNjg0ODJkNmY5NGU4MTA1MzIyOWM0OWI0NmIw
MGRhOTEuLjEzZjMxOGFkNDllZDBmNjkzNDc3YjgwMjEwOTExMGU3ZjgwOTFlMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC01NSw3ICs1NSw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQotI2luY2x1ZGUgIk1lZGlhRXZlbnRUeXBlcy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lv
bkV2ZW50cy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQyLDYgKzQ0Miw3IEBA
IHB1YmxpYzoKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgaGFuZGxlTWVkaWFFdmVudChNZWRpYUV2ZW50VHlwZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBoYW5kbGVNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudChNZWRpYVNlc3Npb25J
bnRlcnJ1cHRpb25FdmVudCwgTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnkpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBmOTEzZWFmZTFhMGUxNjY4OTU4NWU4
YjMyM2ZlOTliZTEyOTFmMjM4Li4xMjQ0NjExMmNmODYzMGJiMmUxZWIyMjAwZmQ0ZWU3Njc0OTA3
MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtODEs
NyArODEsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAjaW5jbHVkZSAiV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhRXZlbnRUeXBlcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uRXZlbnRzLmg+CiAjZW5kaWYKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMTg5LDYgKzIxODksNTYgQEAgdm9pZCBXS1BhZ2VI
YW5kbGVNZWRpYUV2ZW50KFdLUGFnZVJlZiBwYWdlLCBXS01lZGlhRXZlbnRUeXBlIHdrRXZlbnRU
eXBlKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKy8vIE5PVEU6IFRo
ZSB2YWx1ZXMgaW4gdGhlIFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnkgZW51bSBt
dXN0IHN0YXkgaW4gc3luYyB3aXRoIHRob3NlIGluIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5LgorQ09NUElMRV9BU1NFUlQoTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5n
Q2F0ZWdvcnk6OkNvbnRlbnQgPT0gc3RhdGljX2Nhc3Q8TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5n
Q2F0ZWdvcnk+KGtXS01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Q29udGVudCksIE1l
ZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5RW51bUNvbnRlbnRfSXNfV3JvbmdfU2hvdWxk
X0JlX2tXS01lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5Q29udGVudCk7CitDT01QSUxF
X0FTU0VSVChNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeTo6VHJhbnNpZW50ID09IHN0
YXRpY19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5PihrV0tNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRyYW5zaWVudCksIE1lZGlhU2Vzc2lvbkludGVycnVwdGlu
Z0NhdGVnb3J5RW51bVRyYW5zaWVudF9Jc19Xcm9uZ19TaG91bGRfQmVfa1dLTWVkaWFTZXNzaW9u
SW50ZXJydXB0aW5nQ2F0ZWdvcnlUcmFuc2llbnQpOworQ09NUElMRV9BU1NFUlQoTWVkaWFTZXNz
aW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk6OlRyYW5zaWVudFNvbG8gPT0gc3RhdGljX2Nhc3Q8TWVk
aWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk+KGtXS01lZGlhU2Vzc2lvbkludGVycnVwdGlu
Z0NhdGVnb3J5VHJhbnNpZW50U29sbyksIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5
RW51bVRyYW5zaWVudFNvbG9fSXNfV3JvbmdfU2hvdWxkX0JlX2tXS01lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50U29sbyk7CisKK0NPTVBJTEVfQVNTRVJUKE1lZGlhU2Vz
c2lvbkludGVycnVwdGlvbkV2ZW50OjpTdGFydE9mSW50ZXJydXB0aW9uID09IHN0YXRpY19jYXN0
PE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50PihrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRp
b25FdmVudFN0YXJ0T2ZJbnRlcnJ1cHRpb24pLCBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVu
dEVudW1TdGFydE9mSW50ZXJydXB0aW9uX0lzX1dyb25nX1Nob3VsZF9CZV9rV0tNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25FdmVudFN0YXJ0T2ZJbnRlcnJ1cHRpb24pOworQ09NUElMRV9BU1NFUlQo
TWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQ6OkVuZE9mSW50ZXJydXB0aW9uID09IHN0YXRp
Y19jYXN0PE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50PihrV0tNZWRpYVNlc3Npb25JbnRl
cnJ1cHRpb25FdmVudEVuZE9mSW50ZXJydXB0aW9uKSwgTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9u
RXZlbnRFbnVtRW5kT2ZJbnRlcnJ1cHRpb25fSXNfV3JvbmdfU2hvdWxkX0JlX2tXS01lZGlhU2Vz
c2lvbkludGVycnVwdGlvbkV2ZW50RW5kT2ZJbnRlcnJ1cHRpb24pOworI2VuZGlmCisKK3ZvaWQg
V0tQYWdlSGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoV0tQYWdlUmVmIHBhZ2Us
IFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQgd2tFdmVudCwgV0tNZWRpYVNlc3Npb25J
bnRlcnJ1cHRpbmdDYXRlZ29yeSB3a0NhdGVnb3J5KQoreworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQorICAgIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5OworCisg
ICAgc3dpdGNoICh3a0NhdGVnb3J5KSB7CisgICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1
cHRpbmdDYXRlZ29yeUNvbnRlbnQ6CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFTZXNzaW9uSW50
ZXJydXB0aW5nQ2F0ZWdvcnk6OkNvbnRlbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dL
TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnlUcmFuc2llbnQ6CisgICAgICAgIGNhdGVn
b3J5ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnk6OlRyYW5zaWVudDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeVRy
YW5zaWVudFNvbG86CisgICAgICAgIGNhdGVnb3J5ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5n
Q2F0ZWdvcnk6OlRyYW5zaWVudFNvbG87CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIE1lZGlhU2Vzc2lvbklu
dGVycnVwdGlvbkV2ZW50IGV2ZW50OworCisgICAgc3dpdGNoICh3a0V2ZW50KSB7CisgICAgY2Fz
ZSBrV0tNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudFN0YXJ0T2ZJbnRlcnJ1cHRpb246Cisg
ICAgICAgIGV2ZW50ID0gTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQ6OlN0YXJ0T2ZJbnRl
cnJ1cHRpb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dLTWVkaWFTZXNzaW9uSW50ZXJy
dXB0aW9uRXZlbnRFbmRPZkludGVycnVwdGlvbjoKKyAgICAgICAgZXZlbnQgPSBNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25FdmVudDo6RW5kT2ZJbnRlcnJ1cHRpb247CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IHRvSW1wbChwYWdlKS0+aGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoZXZlbnQs
IGNhdGVnb3J5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9Q
QVJBTSh3a0V2ZW50KTsKKyAgICBVTlVTRURfUEFSQU0od2tDYXRlZ29yeSk7CisjZW5kaWYKK30K
Kwogdm9pZCBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoV0tQYWdlUmVmIHBhZ2VS
ZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lUmVmLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHlSZWYp
CiB7CiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUodG9J
bXBsKG1lc3NhZ2VOYW1lUmVmKS0+c3RyaW5nKCksIHRvSW1wbChtZXNzYWdlQm9keVJlZikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXgg
Zjk5NWRiMjA1YmU3Y2U5ZTdhMjkyYTM1NzY1ODY0ZmFmNjk4ZTc2NS4uYjljYjRlYWRlNWE2OGNh
OTg4ZmFkOGExYzY1MWI0ZjYwMzA0ZjBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0xMTgsOCArMTE4LDIyIEBAIGVudW0gewogfTsK
IHR5cGVkZWYgdWludDMyX3QgV0tNZWRpYUV2ZW50VHlwZTsKIAorZW51bSB7CisgICAga1dLTWVk
aWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdvcnlDb250ZW50LAorICAgIGtXS01lZGlhU2Vzc2lv
bkludGVycnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50LAorICAgIGtXS01lZGlhU2Vzc2lvbkludGVy
cnVwdGluZ0NhdGVnb3J5VHJhbnNpZW50U29sbworfTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZWRp
YVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeTsKKworZW51bSB7CisgICAga1dLTWVkaWFTZXNz
aW9uSW50ZXJydXB0aW9uRXZlbnRTdGFydE9mSW50ZXJydXB0aW9uLAorICAgIGtXS01lZGlhU2Vz
c2lvbkludGVycnVwdGlvbkV2ZW50RW5kT2ZJbnRlcnJ1cHRpb24KK307Cit0eXBlZGVmIHVpbnQz
Ml90IFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQ7CisKIFdLX0VYUE9SVCBib29sIFdL
UGFnZUhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzKFdLUGFnZVJlZiBwYWdl
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUhhbmRsZU1lZGlhRXZlbnQoV0tQYWdlUmVmIHBhZ2Us
IFdLTWVkaWFFdmVudFR5cGUgZXZlbnQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlSGFuZGxlTWVk
aWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFTZXNzaW9u
SW50ZXJydXB0aW9uRXZlbnQgZXZlbnQsIFdLTWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0ZWdv
cnkgY2F0ZWdvcnkpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VMb2FkVVJMV2l0aFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3koV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybCwgYm9vbCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBiM2RmYmRlMDI3NGRmMmVmOTdjNzY2ZjE1ZTIyMWZlZGM2ZjVjYmJm
Li4wZDc0ODg4NzAxMTMwZDZjZGY0ZTZjZDk4NmZhMGFmMWFkODUyMTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzc4Miw2ICszNzgyLDE0IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlw
ZSkKICAgICAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1l
ZGlhRXZlbnQoZXZlbnRUeXBlKSwgbV9wYWdlSUQpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQoTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW9uRXZlbnQgZXZlbnQsIE1lZGlhU2Vzc2lvbkludGVycnVwdGluZ0NhdGVnb3J5IGNhdGVnb3J5
KQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlv
bkV2ZW50KGV2ZW50LCBjYXRlZ29yeSksIG1fcGFnZUlEKTsKK30KICNlbmRpZgogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVk
aWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDkxMmFiOTBk
MDgyZjAzMzEzNDk3MGZiNzk1MjZjNTJjOWMxYzU2ZS4uZDQ0MmE5ZDY5ODE5ODRkOWEzYjc1MzE0
MDIxYTkzZTBmMzY0YWY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtOTQyLDYgKzk0Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikK
ICAgICBib29sIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50czsgfQogICAg
IHZvaWQgaGFuZGxlTWVkaWFFdmVudChXZWJDb3JlOjpNZWRpYUV2ZW50VHlwZSk7CisgICAgdm9p
ZCBoYW5kbGVNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudChXZWJDb3JlOjpNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25FdmVudCwgV2ViQ29yZTo6TWVkaWFTZXNzaW9uSW50ZXJydXB0aW5nQ2F0
ZWdvcnkpOwogI2VuZGlmCiAKICAgICAvLyBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZmM0NTE2
YzhhNDRlNmU1NDA2OWFkOTUwMzBlNTdiMWQ0MTM0MWY5OC4uMGQ1ZWM5MzEzYjY1NDA1NDY5OTAy
MTIzMjU2OTJiZjE4NjI0OGRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtNDA0Miw2ICs0MDQyLDExIEBAIHZvaWQgV2ViUGFnZTo6aGFu
ZGxlTWVkaWFFdmVudCh1aW50MzJfdCBldmVudFR5cGUpCiB7CiAgICAgbV9wYWdlLT5oYW5kbGVN
ZWRpYUV2ZW50KHN0YXRpY19jYXN0PE1lZGlhRXZlbnRUeXBlPihldmVudFR5cGUpKTsKIH0KKwor
dm9pZCBXZWJQYWdlOjpoYW5kbGVNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25FdmVudCh1aW50MzJf
dCBldmVudCwgdWludDMyX3QgY2F0ZWdvcnkpCit7CisgICAgbV9wYWdlLT5oYW5kbGVNZWRpYVNl
c3Npb25JbnRlcnJ1cHRpb25FdmVudChzdGF0aWNfY2FzdDxNZWRpYVNlc3Npb25JbnRlcnJ1cHRp
b25FdmVudD4oZXZlbnQpLCBzdGF0aWNfY2FzdDxNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRl
Z29yeT4oY2F0ZWdvcnkpKTsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OnNldE1heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBtYXlTdGFydE1lZGlhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjI2YzRiNWMwMTIyOGRjNmYzMWI3OTlm
ZjRiZjUwZDE1YTkzMjc1Mi4uZTY0MTg5MWUwZDE2MDNiNDE4OGIyNTkzNmUyNWI4NDE4ZDBkZWI3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03
NDMsNiArNzQzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAg
dm9pZCBoYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IC8qIFdlYkNvcmU6Ok1lZGlhRXZlbnRUeXBl
ICovKTsKKyAgICB2b2lkIGhhbmRsZU1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50KHVpbnQz
Ml90IC8qIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkludGVycnVwdGlvbkV2ZW50ICovLCB1aW50MzJf
dCAvKiBXZWJDb3JlOjpNZWRpYVNlc3Npb25JbnRlcnJ1cHRpbmdDYXRlZ29yeSAqLyk7CiAjZW5k
aWYKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCAwNWE4OWVjNGFjZmQ1MzMwZDBkYTQ4ZjQxZDMxMzBiOTJhN2I3OTIzLi41YTlh
MjEzYWM2M2VhZTFjMzdiZTk0NmQ4NTdmNmQxMDk2NmVkOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzE0
LDYgKzMxNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgSGFuZGxlTWVkaWFFdmVudCh1aW50MzJfdCBldmVu
dFR5cGUpCisgICAgSGFuZGxlTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uRXZlbnQodWludDMyX3Qg
ZXZlbnQsIHVpbnQzMl90IGludGVycnVwdGluZ0NhdGVnb3J5KQogI2VuZGlmCiAKICAgICAvLyBG
SVhNRTogVGhpcyBhIGR1bW15IG1lc3NhZ2UsIHRvIGF2b2lkIGJyZWFraW5nIHRoZSBidWlsZCBm
b3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3QgcmVxdWlyZQo=
</data>
<flag name="review"
          id="281809"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>