<?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>163993</bug_id>
          
          <creation_ts>2016-10-25 16:00:06 -0700</creation_ts>
          <short_desc>Autoplay muted videos stop playback of any streaming app in the background</short_desc>
          <delta_ts>2017-10-13 13:52:11 -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>Safari 10</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 10</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=177920</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ibrahim Ennafaa">ibrahim</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ibrahim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1244509</commentid>
    <comment_count>0</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2016-10-25 16:00:06 -0700</bug_when>
    <thetext>Summary:
We use autoplay inline muted videos as introduced in iOS10 by Safari browsers. However, when an app is streaming music in the background and we start the video (even muted), the playback of the background app is stopped.
In a recent blogpost on the Webkit blog (https://webkit.org/blog/6784/new-video-policies-for-ios/), these new features were named as a way to replace the animated GIF format. But for the moment, the user experience is disappointing when it comes to this use case. Many of our users are complaining. 

Steps to Reproduce:
1. Open any background streaming sound app 
2. Play a sound
3. Press home button (sound is still playing in the background)
4. Open Safari and load http://misc.teads.tv/demo/product/breitlingWithLogo.html
5. Scroll until you see the video (it will automatically start)

Expected Results:
A good user experience would be to stop the playback only if we activate the sound on the video (user initiated). I guess this is why the requirements around autoplay videos are to have the video muted at start and un-muted only after a user action.

We would expect that a playing muted video doesn&apos;t disrupt with a streaming background app playback as long as the video stays muted.

Actual Results:
The playback of the streaming sound app is stopped when the muted video starts on Safari. 

Version:
Safari 10.0 (iOS10)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246312</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-10-30 18:25:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/29020431&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251074</commentid>
    <comment_count>2</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2016-11-14 12:10:27 -0800</bug_when>
    <thetext>Hi,

Is there any feedback on this issue? It is becoming more and more a blocker on our side and for our publishers.

Here is another test page with a simple video tag on which we have the exact same issue: http://misc.teads.tv.s3.amazonaws.com/demo/product/test-webkit/video.html

Steps:
- Run a sound streaming app
- Sound is playing in background
- Launch Safari with the link above
- Video is started muted and the streaming app is stopped!

Thanks for your help</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251412</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-11-15 01:18:12 -0800</bug_when>
    <thetext>We are aware of the issue and hope to look into it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254742</commentid>
    <comment_count>4</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2016-11-30 05:19:08 -0800</bug_when>
    <thetext>Thanks Jon,

Do you have any precision on a ETA for this issue to be fixed? 

This is becoming a blocker on our side and many publishers &amp; users are complaining.

Is there anything we could do or anyone we could reach out to and get more visibility on the process?

Best,
Ibrahim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260128</commentid>
    <comment_count>5</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2016-12-15 06:07:17 -0800</bug_when>
    <thetext>FYI the bug existed also on Chrome Android. It was fixed since : https://bugs.chromium.org/p/chromium/issues/detail?id=638463

It could help since Chrome is using a fork of Webkit ...

Jon, any news on the prioritization of this bugfix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270180</commentid>
    <comment_count>6</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2017-01-26 05:03:26 -0800</bug_when>
    <thetext>Hi everyone,

Is there any update?

Thanks,
Ibrahim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270210</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-26 08:48:33 -0800</bug_when>
    <thetext>Hi Ibrahim, 

There&apos;s been some work done in https://bugs.webkit.org/show_bug.cgi?id=166347, but there&apos;s still more to do. I&apos;ll keep you updated here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270268</commentid>
    <comment_count>8</comment_count>
      <attachid>299829</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-26 11:43:04 -0800</bug_when>
    <thetext>Created attachment 299829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270275</commentid>
    <comment_count>9</comment_count>
      <attachid>299829</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-01-26 11:54:20 -0800</bug_when>
    <thetext>Comment on attachment 299829
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6851
&gt; +    if (m_isPlayingToWirelessTarget)
&gt; +        return true;

This is obvious, so it is probably worth adding a comment to make sure this isn&apos;t accidentally changed in the future.

&gt; Tools/TestWebKitAPI/Tests/WebKit/ios/video-with-muted-audio-and-webaudio.html:11
&gt; +            function go() {
&gt; +                var audioContext = new webkitAudioContext();
&gt; +                audioContext.resume();
&gt; +
&gt; +                var video = document.getElementsByTagName(&apos;video&apos;)[0];
&gt; +                video.play().then(playing).catch(notPlaying);
&gt; +            }

Nit: funky indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270286</commentid>
    <comment_count>10</comment_count>
      <attachid>299834</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-26 12:36:41 -0800</bug_when>
    <thetext>Created attachment 299834
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270349</commentid>
    <comment_count>11</comment_count>
      <attachid>299854</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-26 14:17:14 -0800</bug_when>
    <thetext>Created attachment 299854
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270359</commentid>
    <comment_count>12</comment_count>
      <attachid>299858</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-26 14:46:33 -0800</bug_when>
    <thetext>Created attachment 299858
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270432</commentid>
    <comment_count>13</comment_count>
      <attachid>299858</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-26 16:39:42 -0800</bug_when>
    <thetext>Comment on attachment 299858
Patch for landing

Clearing flags on attachment: 299858

Committed r211240: &lt;http://trac.webkit.org/changeset/211240&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288280</commentid>
    <comment_count>14</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2017-03-15 15:27:59 -0700</bug_when>
    <thetext>Hi,

Do you have an idea of when this fix is going to be released? Which iOS version will have it included?

Best,
Ibrahim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288487</commentid>
    <comment_count>15</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-16 01:19:34 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Do you have an idea of when this fix is going to be released? Which iOS
&gt; version will have it included?

We don&apos;t discuss release schedules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288674</commentid>
    <comment_count>16</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2017-03-16 12:44:49 -0700</bug_when>
    <thetext>Thanks Jon,

Is there a way to get notified when the fix is going to be deployed?

It is kind of difficult for us to communicate with our clients if we don&apos;t have more information about the fix deploy. They are using our technology which is affected by this bug.

We appreciate the communication and the work done here.

Ibrahim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356889</commentid>
    <comment_count>17</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-10-05 00:27:37 -0700</bug_when>
    <thetext>Not sure why this is still in &quot;new&quot;. Moving to &quot;resolved&quot;. The fix is in iOS 11.

That said we&apos;re getting reports that this is still happening. If that is still the case, please follow b177920.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360179</commentid>
    <comment_count>18</comment_count>
    <who name="Ibrahim Ennafaa">ibrahim</who>
    <bug_when>2017-10-13 13:20:54 -0700</bug_when>
    <thetext>Hi guys,

It looks like there was a regression on this bug. It reappeared with iOS11. It was fixed in one of the iOS 10.x versions. But now  we have the exact same issue with iOS11.

Thanks,
Ibrahim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360210</commentid>
    <comment_count>19</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-10-13 13:52:11 -0700</bug_when>
    <thetext>Moving back to resolved. We&apos;re tracking additional fixed in 177920.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299829</attachid>
            <date>2017-01-26 11:43:04 -0800</date>
            <delta_ts>2017-01-26 11:54:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163993-20170126114102.patch</filename>
            <type>text/plain</type>
            <size>17841</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVmY2QwZWViNDg4YTY2
MjZkMjM4M2U2ODlhYjA1NDhjZDBkYThlYy4uYzczNWRlYjlhMjgzMDAyODYwZTRlZWVmNTE0ZDU4
MDAwZmQzNzg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTAxLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEF1dG9wbGF5IG11dGVkIHZp
ZGVvcyBzdG9wIHBsYXliYWNrIG9mIGFueSBzdHJlYW1pbmcgYXBwIGluIHRoZSBiYWNrZ3JvdW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM5OTMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDIwNDMxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QgaW4gVGVzdFdlYktpdEFQSSwg
V2ViS2l0MS5BdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy4KKworICAgICAgICBQcmV2aW91c2x5LCB3
ZSB3b3VsZCBzZXQgdGhlIGF1ZGlvIHNlc3Npb24gY2F0ZWdvcnkgdG8gInBsYXliYWNrIiBpZiB0
aGVyZSB3YXMgYSBtZWRpYS0KKyAgICAgICAgZWxlbWVudC10eXBlIG1lZGlhIHNlc3Npb24sIGFu
ZCBpZiB0aGVyZSB3YXMgYSBzZXNzaW9uIGNhcGFibGUgb2YgcGxheWluZyBhdWRpby4gQnV0IGJl
Y2F1c2UKKyAgICAgICAgdGhpcyB3YXMgYW4gIm9yIiBvcGVyYXRpb24sIHdlIHdvdWxkIGluY29y
cmVjdGx5IHNldCB0aGUgY2F0ZWdvcnkgdG8gInBsYXliYWNrIiBpZiB0aGVyZSB3YXMKKyAgICAg
ICAgYSB2aWRlbyBlbGVtZW50IGluY2FwYWJsZSBvZiByZW5kZXJpbmcgYXVkaW8gKGR1ZSB0byBi
ZWluZyBtdXRlZCwgd2l0aG91dCBhbiBhdWRpbyB0cmFjaywKKyAgICAgICAgZXRjLiksIGFuZCBh
bHNvIGEgc2Vzc2lvbiBjYXBhYmxlIG9mIHByb2R1Y2luZyBhdWRpbywgc3VjaCBhcyBXZWJBdWRp
by4KKworICAgICAgICBXaXRoIHRoaXMgY2hhbmdlLCB0aGlzIHR1cm5zIGludG8gYW4gImFuZCIg
b3BlcmF0aW9uOyB0aGVyZSBtdXN0IGJlIGEgbWVkaWEgZWxlbWVudCBjYXBhYmxlCisgICAgICAg
IG9mIHJlbmRlcmluZyBhdWRpbyBpbiBvcmRlciB0byBzd2l0Y2ggdGhlIGF1ZGlvIHNlc3Npb24g
Y2F0ZWdvcnkgdG8gInBsYXliYWNrIi4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIG5vIGxv
bmdlciBjYWNoZSB0aGUgdmFsdWUgb2YgImNhblByb2R1Y2VBdWRpbygpIjsgaXQncyBxdWVyaWVk
IGRpcmVjdGx5CisgICAgICAgIHdoZW5ldmVyIHVwZGF0ZVNlc3Npb25TdGF0ZSgpIGlzIGNhbGxl
ZC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y29uc3RydWN0Q29tbW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpjbGVhck1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJlc2VudGF0aW9uVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjaGFyYWN0ZXJpc3RpY3MpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUHJvZHVjZUF1ZGlvKToKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6YWN0aXZlQXVkaW9TZXNzaW9uUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OmNhblByb2R1Y2VBdWRpbyk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6c2V0Q2FuUHJvZHVjZUF1ZGlvKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQ6OmNhblByb2R1Y2VBdWRpbyk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2FuUHJvZHVjZUF1ZGlv
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EuY3BwOgorICAgICAgICAoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1
cGRhdGVTZXNzaW9uU3RhdGUpOgorCiAyMDE3LTAxLTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
ZkBnbWFpbC5jb20+CiAKICAgICAgICAgW1dlYlJUQ10gSW50cm9kdWNlIGxpYndlYnJ0YyBhYnN0
cmFjdGlvbiBmb3IgV0sxL1dLMiBpbXBsZW1lbnRhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCAxMzU4MTUyOWEwM2QxNTRh
NDgyYTZhODE2N2E2YzViOGJjY2Q4MGY5Li5mNDE3ZDQ3OWQzYmFhOWVjMGU2MzZiYjRjOTU4MTUz
NDMwZjk5MmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuY3BwCkBAIC0xODEsOCArMTgxLDYgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OmNvbnN0
cnVjdENvbW1vbigpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYWRkQmVoYXZpb3JSZXN0cmlj
dGlvbihSZXF1aXJlUGFnZUNvbnNlbnRGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb24pOwogI2VuZGlm
Ci0KLSAgICBtX21lZGlhU2Vzc2lvbi0+c2V0Q2FuUHJvZHVjZUF1ZGlvKHRydWUpOwogfQogCiBB
dWRpb0NvbnRleHQ6On5BdWRpb0NvbnRleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggNWMxZTI0ZDgwM2RhMjBjZmYwNDFjNGJiYjA0
ZmI5OTNlY2MzZGI0YS4uYzYzMWYxZjE5ODA1YmI2ZTI3MmM2M2ViMjg4MGEyMjk3YmM5MjAxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBA
IC0zMTcsNiArMzE3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzU2Vla2luZygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJh
Y2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFN0cmluZyBz
b3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNh
blByb2R1Y2VBdWRpbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIEV2
ZW50VGFyZ2V0CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDYwNzRjYzMyOTI4
NGU2YTVmMmQ3YTk2NTgxYTQ5NTRkMWJkM2RiY2IuLmU4NWVkOTZmOWUyZWJmNDIzYmNkNWFkOWFj
NTU2NWVmNmNkOTkwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDY2Miw4ICs0NjYyLDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckNoYXJhY3RlcmlzdGljQ2hhbmdlZChNZWRpYVBsYXllciopCiAgICAgaWYgKCFwYXVzZWQoKSAm
JiAhbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKICAgICAgICAgcGF1
c2VJbnRlcm5hbCgpOwogCi0gICAgbV9tZWRpYVNlc3Npb24tPnNldENhblByb2R1Y2VBdWRpbyht
X3BsYXllciAmJiBtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiBoYXNBdWRpbygpKTsK
LQogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIGRvY3VtZW50KCkudXBkYXRlSXNQbGF5
aW5nTWVkaWEobV9lbGVtZW50SUQpOwogI2Vsc2UKQEAgLTUwODEsNyArNTA3OSw2IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihEZWxheWVkQWN0aW9uVHlwZSBmbGFn
cykKICAgICAgICAgY29uZmlndXJlVGV4dFRyYWNrRGlzcGxheSgpOwogI2VuZGlmCiAKLSAgICBt
X21lZGlhU2Vzc2lvbi0+c2V0Q2FuUHJvZHVjZUF1ZGlvKGZhbHNlKTsKICAgICBtX21lZGlhU2Vz
c2lvbi0+Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogCiAgICAgdXBkYXRlU2xlZXBE
aXNhYmxpbmcoKTsKQEAgLTUyNzMsOCArNTI3MCw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChNZWRpYVBs
CiAgICAgY29uZmlndXJlTWVkaWFDb250cm9scygpOwogICAgIHNjaGVkdWxlRXZlbnQoZXZlbnRO
YW1lcygpLndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkRXZlbnQp
OwogICAgIG1fbWVkaWFTZXNzaW9uLT5pc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXRD
aGFuZ2VkKG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk7Ci0gICAgaWYgKG1faXNQbGF5aW5n
VG9XaXJlbGVzc1RhcmdldCkKLSAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldENhblByb2R1Y2VB
dWRpbyh0cnVlKTsKICAgICB1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRlOjpBc3luY2hyb25v
dXNseSk7CiB9CiAKQEAgLTY4MTgsNyArNjgxMyw3IEBAIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGUgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFUeXBlKCkgY29uc3QKIFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpNZWRpYVR5cGUgSFRNTE1lZGlhRWxlbWVudDo6cHJlc2VudGF0aW9uVHlwZSgp
IGNvbnN0CiB7CiAgICAgaWYgKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCi0gICAg
ICAgIHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9BdWRpbzsKKyAgICAgICAgcmV0
dXJuIG11dGVkKCkgPyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8gOiBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6VmlkZW9BdWRpbzsKIAogICAgIHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
QXVkaW87CiB9CkBAIC02ODUwLDYgKzY4NDUsMTcgQEAgUGxhdGZvcm1NZWRpYVNlc3Npb246OkNo
YXJhY3RlcmlzdGljc0ZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6OmNoYXJhY3RlcmlzdGljcygpIGMK
ICAgICByZXR1cm4gc3RhdGU7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUHJvZHVj
ZUF1ZGlvKCkgY29uc3QKK3sKKyAgICBpZiAobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChtdXRlZCgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gbV9wbGF5ZXIgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVU
QURBVEEgJiYgaGFzQXVkaW8oKTsKK30KKwogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiBzaXpl
X3QgSFRNTE1lZGlhRWxlbWVudDo6bWF4aW11bVNvdXJjZUJ1ZmZlclNpemUoY29uc3QgU291cmNl
QnVmZmVyJiBidWZmZXIpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDI5OTRhYmM1MDg5ZDYyZGYxMjI0MDAzYzgzYzBhY2RiMDAzYzQzMzIuLjMwMDgy
N2ViNzlkNWM3MjQ0MmQ4NWE0N2RkODcyN2I0MjlkNjcwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC03NzYsNiArNzc2LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IHN1cHBvcnRzU2Vla2luZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50
ZXJydXB0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJh
Y2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNh
blByb2R1Y2VBdWRpbygpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURp
ZENoYW5nZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMTY3NjY5YTIwNjA4NDhjYzY4
MTJjZjQ2ZTQ3Nzg2NTk4ZTExNDNlOC4uNzFmMzUzZjE0YmQzYTliMzU2YzA3ZTRjZmM2ODBjM2Ey
ODIyZGE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uLmNwcApAQCAtMzI5LDE2ICszMjksMTIgQEAgYm9vbCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6YWN0aXZlQXVkaW9TZXNzaW9uUmVxdWlyZWQoKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKHN0YXRlKCkgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRl
OjpQbGF5aW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2FuUHJvZHVj
ZUF1ZGlvOworICAgIHJldHVybiBjYW5Qcm9kdWNlQXVkaW8oKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6c2V0Q2FuUHJvZHVjZUF1ZGlvKGJvb2wgY2FuUHJvZHVjZUF1ZGlvKQor
Ym9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKIHsKLSAg
ICBpZiAobV9jYW5Qcm9kdWNlQXVkaW8gPT0gY2FuUHJvZHVjZUF1ZGlvKQotICAgICAgICByZXR1
cm47Ci0gICAgbV9jYW5Qcm9kdWNlQXVkaW8gPSBjYW5Qcm9kdWNlQXVkaW87Ci0KLSAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVj
ZUF1ZGlvQ2hhbmdlZCgqdGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50LmNhblByb2R1Y2VBdWRp
bygpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggNjVkODE1ZGEzMzNhOGIz
ZmUxZjdiNTA2ZDAxZThmYzUyNmEyMWY2OC4uMGQzNTM5ZDIyMDUyMzI5OWY3YTcxZGU2MWNlZmNh
Mzg4ZTgyNTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCkBAIC0xNjIsOCArMTYyLDcgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBib29sIGFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKCk7Ci0gICAgYm9vbCBjYW5Q
cm9kdWNlQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2NhblByb2R1Y2VBdWRpbzsgfQotICAgIHZv
aWQgc2V0Q2FuUHJvZHVjZUF1ZGlvKGJvb2wpOworICAgIGJvb2wgY2FuUHJvZHVjZUF1ZGlvKCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNjaGVkdWxlQ2xpZW50RGF0YUJ1ZmZlcmluZ0NoZWNrKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHJlc2V0UGxheWJhY2tTZXNzaW9uU3RhdGUoKSB7IH0KQEAgLTE4Niw3
ICsxODUsNiBAQCBwcml2YXRlOgogICAgIGludCBtX2ludGVycnVwdGlvbkNvdW50IHsgMCB9Owog
ICAgIGJvb2wgbV9ub3RpZnlpbmdDbGllbnQ7CiAgICAgYm9vbCBtX2lzUGxheWluZ1RvV2lyZWxl
c3NQbGF5YmFja1RhcmdldCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2NhblByb2R1Y2VBdWRpbyB7
IGZhbHNlIH07CiAKICAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
OwogfTsKQEAgLTIxNyw2ICsyMTUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2hvdWxkQnVmZmVyRGF0YShib29sKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgZWxlbWVudElzSGlk
ZGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUHJvZHVj
ZUF1ZGlvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZE92ZXJyaWRlQmFja2dyb3VuZExvYWRpbmdSZXN0cmljdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcAppbmRleCAzZjE0MWY1YTBmZTFh
MzIwOTg0YmM2NjA2MDIxMDg1MTIyNDZkNWUyLi5iM2FhNDZiOWU5OWZkMTg3MTcwM2NkMDlmMGY5
OWQ0YTA3YTViNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTYwLDEzICs2MSwyMCBAQCB2b2lkIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKICAgICBpZiAoIVNldHRp
bmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlb0F1ZGlvKSB8fCBoYXMo
UGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgewotICAgICAgICBpZiAoY2FuUHJvZHVjZUF1
ZGlvKCkpCi0gICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRl
Z29yeShBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2spOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Np
b246OkFtYmllbnRTb3VuZCk7Ci0gICAgfSBlbHNlIGlmIChoYXMoUGxhdGZvcm1NZWRpYVNlc3Np
b246OldlYkF1ZGlvKSkKKyAgICBib29sIGhhc0F1ZGlvTWVkaWFUeXBlID0gZmFsc2U7CisgICAg
Ym9vbCBoYXNBdWRpYmxlQXVkaW9PclZpZGVvTWVkaWFUeXBlID0gYW55T2ZTZXNzaW9ucyhbdGhp
cywgaGFzQXVkaW9NZWRpYVR5cGVdIChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgc2l6
ZV90KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byB0eXBlID0gc2Vzc2lvbi5tZWRpYVR5cGUoKTsK
KyAgICAgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvQXVkaW8gfHwg
dHlwZSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8gfHwgdHlwZSA9PSBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6V2ViQXVkaW8pCisgICAgICAgICAgICBoYXNBdWRpb01lZGlhVHlwZSA9IHRy
dWU7CisgICAgICAgIHJldHVybiAodHlwZSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9B
dWRpbyB8fCB0eXBlID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbykgJiYgc2Vzc2lvbi5j
YW5Qcm9kdWNlQXVkaW8oKTsKKyAgICB9KTsKKworICAgIGlmIChoYXNBdWRpYmxlQXVkaW9PclZp
ZGVvTWVkaWFUeXBlKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2spOworICAgIGVsc2UgaWYgKGhhc0F1
ZGlvTWVkaWFUeXBlKQogICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCk7CisgICAgZWxzZQorICAgICAgICBB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246Ok5v
bmUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA1OTU0NGIyMDdkNTU5ZGM0MjAzNzgzODY5ZTU2YzA0ODIwMDA1NmRkLi45
YzI2MmMyNDJhNGRhYjFmOTRmMzBkNWM0ZTIwOGE0NGY1ZjMyNGJjIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTct
MDEtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQXV0b3Bs
YXkgbXV0ZWQgdmlkZW9zIHN0b3AgcGxheWJhY2sgb2YgYW55IHN0cmVhbWluZyBhcHAgaW4gdGhl
IGJhY2tncm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2Mzk5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkwMjA0MzE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9pb3MvdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbDogQWRk
ZWQuCisKIDIwMTYtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHNjaGVtZSBmb3IgTW9iaWxlTWluaUJyb3dzZXJVSVRlc3RzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGY4ZjljNjk4Y2JjYjcxYzY1NDVlOGI1MWM0YzQzY2EwZjE0OWU5OTYu
LjI0ZDYxMjU0YWU1YzIwNDliMWFlOGY3ZWIzMGE0MmU5MTBjMDA1NTMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC01MDksNiArNTA5LDcgQEAKIAkJQzk1OTg0RjQxRTM2QkM2QjAwMkMwRDQ1
IC8qIGF1dG9wbGF5LWNoZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzk1OTg0RjIxRTM2QkM1NTAwMkMwRDQ1IC8qIGF1dG9wbGF5
LWNoZWNrLmh0bWwgKi87IH07CiAJCUM5NTk4NEY1MUUzNkJDNkIwMDJDMEQ0NSAvKiBhdXRvcGxh
eS1uby1hdWRpby1jaGVjay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM5NTk4NEYzMUUzNkJDNTUwMDJDMEQ0NSAvKiBhdXRvcGxheS1u
by1hdWRpby1jaGVjay5odG1sICovOyB9OwogCQlDOTU5ODRGNzFFMzZCQ0VGMDAyQzBENDUgLyog
dGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTU5ODRGNjFFMzZCQ0Q3MDAyQzBENDUgLyogdGVz
dC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCAqLzsgfTsKKwkJQ0QzMjFCMDQxRTNBODVGQTAwRUIy
MUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMjFCMDMxRTNB
ODRCNzAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwg
Ki87IH07CiAJCUNENTlGNTM0MTlFOTExMEQwMENGMTgzNSAvKiBmaWxlLXdpdGgtbXNlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1
OUY1MzIxOUU5MTBBQTAwQ0YxODM1IC8qIGZpbGUtd2l0aC1tc2UuaHRtbCAqLzsgfTsKIAkJQ0Q1
OUY1MzUxOUU5MTEwRDAwQ0YxODM1IC8qIHRlc3QtbXNlLm1wNCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU5RjUzMzE5RTkxMEJDMDBDRjE4
MzUgLyogdGVzdC1tc2UubXA0ICovOyB9OwogCQlDRDc4RTExRDFEQjdFQTY2MDAxNEEyREUgLyog
RnVsbHNjcmVlbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q3OEUxMUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0
ZS5tbSAqLzsgfTsKQEAgLTYwNyw2ICs2MDgsNyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJ
CQlDRDMyMUIwNDFFM0E4NUZBMDBFQjIxQzggLyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQt
d2ViYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOTU5ODRGNzFFMzZCQ0VG
MDAyQzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlDOTU5ODRGNDFFMzZCQzZCMDAyQzBENDUgLyogYXV0b3BsYXktY2hlY2suaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOTU5ODRGNTFFMzZCQzZCMDAyQzBENDUgLyog
YXV0b3BsYXktbm8tYXVkaW8tY2hlY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEy
NzUsNiArMTI3Nyw3IEBACiAJCUM5NTk4NEYzMUUzNkJDNTUwMDJDMEQ0NSAvKiBhdXRvcGxheS1u
by1hdWRpby1jaGVjay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1dG9wbGF5
LW5vLWF1ZGlvLWNoZWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOTU5
ODRGNjFFMzZCQ0Q3MDAyQzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGgg
PSAidGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEMjI1QzA3MUM0NUE2OTIwMDE0MDc2MSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFyc2VkQ29udGVudFJhbmdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzMjFCMDMxRTNBODRCNzAwRUIy
MUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAidmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8u
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTM5M0M3MTc1N0JBOTcwMEMw
NzEyMyAvKiBNRDUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTUQ1
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MzkzQzkxNzU3QkFDNDAwQzA3
MTIzIC8qIFNIQTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU0hB
MS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ1MUU5MTlFNDFGOUQwMDE2
OTM2RiAvKiBDU1NQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMjMsNiAr
MjIyNiw3IEBACiAJCQkJQ0RDOEU0OEIxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQt
YXVkaW8uaHRtbCAqLywKIAkJCQlDREM4RTQ4QzFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0
aG91dC1hdWRpby5tcDQgKi8sCiAJCQkJQ0RCNDExNTkxRTA5REE4RTAwRUFEMzUyIC8qIHZpZGVv
LXdpdGgtbXV0ZWQtYXVkaW8uaHRtbCAqLywKKwkJCQlDRDMyMUIwMzFFM0E4NEI3MDBFQjIxQzgg
LyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Npb25DYXRl
Z29yeUlPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nl
c3Npb25DYXRlZ29yeUlPUy5tbQppbmRleCBjMzRhYzNiNjJiOGQ1OTE2OWY4NjZiM2IwMDYzOWI0
Yzk3ODE5NDFkLi45NGMwMDg0MzUyMDlmMDIyMzc4ZGI5ZTY5Yzg3NmNhYjlmZTA3N2ZjIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvQXVkaW9TZXNzaW9u
Q2F0ZWdvcnlJT1MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9z
L0F1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TLm1tCkBAIC05Nyw2ICs5NywxNCBAQCBURVNUKFdlYktp
dDEsIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TKQogICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5
aW5nKTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1i
aWVudCgpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdv
cnldKTsKKworICAgIGRpZEJlZ2luUGxheWluZyA9IGZhbHNlOworCisgICAgW3VpV2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ2aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRp
byIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl1dXTsKKworICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKKworICAgIEVY
UEVDVF9XS19TVFJFUShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFW
QXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdp
dGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNzBhYzY4MDk2MWY2OTc3ODQ1ZGEyMDE1MTM5OTZlMjI0ZDhhYjYzCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVv
LXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgICAgIGZ1bmN0aW9uIGdvKCkgeworICAgICAgICAgICAgICAgIHZhciBhdWRpb0NvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgICAgICAgICAgYXVkaW9Db250ZXh0
LnJlc3VtZSgpOworCisgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisgICAgICAgICAgICAgICAgdmlkZW8ucGxheSgp
LnRoZW4ocGxheWluZykuY2F0Y2gobm90UGxheWluZyk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcGxheWluZygpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
J3BsYXlpbmcnKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CisgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAgICAgfSBjYXRjaChlKSB7
IH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkg
b25sb2FkPSJnbygpIj4KKyAgICAgICAgPHZpZGVvIHNyYz0idmlkZW8td2l0aC1hdWRpby5tcDQi
IG11dGVkIHdlYmtpdC1wbGF5c2lubGluZT48L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="321763"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299834</attachid>
            <date>2017-01-26 12:36:41 -0800</date>
            <delta_ts>2017-01-26 12:36:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-163993-20170126123438.patch</filename>
            <type>text/plain</type>
            <size>17990</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVmY2QwZWViNDg4YTY2
MjZkMjM4M2U2ODlhYjA1NDhjZDBkYThlYy4uOTVmMDk4MjI5ODY4ZWQwM2I1NDU3MDE1MzA2MmM2
NTBkOWFhYWM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTAxLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEF1dG9wbGF5IG11dGVkIHZp
ZGVvcyBzdG9wIHBsYXliYWNrIG9mIGFueSBzdHJlYW1pbmcgYXBwIGluIHRoZSBiYWNrZ3JvdW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM5OTMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDIwNDMxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGRlZCB0ZXN0IGluIFRlc3RXZWJLaXRBUEksIFdl
YktpdDEuQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ug
d291bGQgc2V0IHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IHRvICJwbGF5YmFjayIgaWYgdGhl
cmUgd2FzIGEgbWVkaWEtCisgICAgICAgIGVsZW1lbnQtdHlwZSBtZWRpYSBzZXNzaW9uLCBhbmQg
aWYgdGhlcmUgd2FzIGEgc2Vzc2lvbiBjYXBhYmxlIG9mIHBsYXlpbmcgYXVkaW8uIEJ1dCBiZWNh
dXNlCisgICAgICAgIHRoaXMgd2FzIGFuICJvciIgb3BlcmF0aW9uLCB3ZSB3b3VsZCBpbmNvcnJl
Y3RseSBzZXQgdGhlIGNhdGVnb3J5IHRvICJwbGF5YmFjayIgaWYgdGhlcmUgd2FzCisgICAgICAg
IGEgdmlkZW8gZWxlbWVudCBpbmNhcGFibGUgb2YgcmVuZGVyaW5nIGF1ZGlvIChkdWUgdG8gYmVp
bmcgbXV0ZWQsIHdpdGhvdXQgYW4gYXVkaW8gdHJhY2ssCisgICAgICAgIGV0Yy4pLCBhbmQgYWxz
byBhIHNlc3Npb24gY2FwYWJsZSBvZiBwcm9kdWNpbmcgYXVkaW8sIHN1Y2ggYXMgV2ViQXVkaW8u
CisKKyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgdGhpcyB0dXJucyBpbnRvIGFuICJhbmQiIG9w
ZXJhdGlvbjsgdGhlcmUgbXVzdCBiZSBhIG1lZGlhIGVsZW1lbnQgY2FwYWJsZQorICAgICAgICBv
ZiByZW5kZXJpbmcgYXVkaW8gaW4gb3JkZXIgdG8gc3dpdGNoIHRoZSBhdWRpbyBzZXNzaW9uIGNh
dGVnb3J5IHRvICJwbGF5YmFjayIuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCB3ZSBubyBsb25n
ZXIgY2FjaGUgdGhlIHZhbHVlIG9mICJjYW5Qcm9kdWNlQXVkaW8oKSI7IGl0J3MgcXVlcmllZCBk
aXJlY3RseQorICAgICAgICB3aGVuZXZlciB1cGRhdGVTZXNzaW9uU3RhdGUoKSBpcyBjYWxsZWQu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdENvbW1vbik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6Y2xlYXJNZWRpYVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnByZXNlbnRhdGlvblR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2hhcmFjdGVyaXN0aWNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblByb2R1Y2VBdWRpbyk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OmFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjYW5Qcm9kdWNlQXVkaW8pOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OnNldENhblByb2R1Y2VBdWRpbyk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50OjpjYW5Qcm9kdWNlQXVkaW8pOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OmNhblByb2R1Y2VBdWRpbyk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBk
YXRlU2Vzc2lvblN0YXRlKToKKwogMjAxNy0wMS0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubmZA
Z21haWwuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEludHJvZHVjZSBsaWJ3ZWJydGMgYWJzdHJh
Y3Rpb24gZm9yIFdLMS9XSzIgaW1wbGVtZW50YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggMTM1ODE1MjlhMDNkMTU0YTQ4
MmE2YTgxNjdhNmM1YjhiY2NkODBmOS4uZjQxN2Q0NzlkM2JhYTllYzBlNjM2YmI0Yzk1ODE1MzQz
MGY5OTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcApAQCAtMTgxLDggKzE4MSw2IEBAIHZvaWQgQXVkaW9Db250ZXh0Ojpjb25zdHJ1
Y3RDb21tb24oKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGFkZEJlaGF2aW9yUmVzdHJpY3Rp
b24oUmVxdWlyZVBhZ2VDb25zZW50Rm9yQXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKICNlbmRpZgot
Ci0gICAgbV9tZWRpYVNlc3Npb24tPnNldENhblByb2R1Y2VBdWRpbyh0cnVlKTsKIH0KIAogQXVk
aW9Db250ZXh0Ojp+QXVkaW9Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDVjMWUyNGQ4MDNkYTIwY2ZmMDQxYzRiYmIwNGZi
OTkzZWNjM2RiNGEuLmM2MzFmMWYxOTgwNWJiNmUyNzJjNjNlYjI4ODBhMjI5N2JjOTIwMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAt
MzE3LDYgKzMxNyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c1NlZWtpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNr
Z3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBTdHJpbmcgc291
cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5Q
cm9kdWNlQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBFdmVu
dFRhcmdldAogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2MDc0Y2MzMjkyODRl
NmE1ZjJkN2E5NjU4MWE0OTU0ZDFiZDNkYmNiLi42MDg2ZGM4NDU2NWNjZGI0Y2M1OTJlODIwYWZl
MGVhODc0ZjQyZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTQ2NjIsOCArNDY2Miw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJD
aGFyYWN0ZXJpc3RpY0NoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIGlmICghcGF1c2VkKCkgJiYg
IW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHBhdXNl
SW50ZXJuYWwoKTsKIAotICAgIG1fbWVkaWFTZXNzaW9uLT5zZXRDYW5Qcm9kdWNlQXVkaW8obV9w
bGF5ZXIgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgaGFzQXVkaW8oKSk7Ci0K
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBkb2N1bWVudCgpLnVwZGF0ZUlzUGxheWlu
Z01lZGlhKG1fZWxlbWVudElEKTsKICNlbHNlCkBAIC01MDgxLDcgKzUwNzksNiBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoRGVsYXllZEFjdGlvblR5cGUgZmxhZ3Mp
CiAgICAgICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoKTsKICNlbmRpZgogCi0gICAgbV9t
ZWRpYVNlc3Npb24tPnNldENhblByb2R1Y2VBdWRpbyhmYWxzZSk7CiAgICAgbV9tZWRpYVNlc3Np
b24tPmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAogICAgIHVwZGF0ZVNsZWVwRGlz
YWJsaW5nKCk7CkBAIC01MjczLDggKzUyNzAsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoTWVkaWFQbAog
ICAgIGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFt
ZXMoKS53ZWJraXRjdXJyZW50cGxheWJhY2t0YXJnZXRpc3dpcmVsZXNzY2hhbmdlZEV2ZW50KTsK
ICAgICBtX21lZGlhU2Vzc2lvbi0+aXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0Q2hh
bmdlZChtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOwotICAgIGlmIChtX2lzUGxheWluZ1Rv
V2lyZWxlc3NUYXJnZXQpCi0gICAgICAgIG1fbWVkaWFTZXNzaW9uLT5zZXRDYW5Qcm9kdWNlQXVk
aW8odHJ1ZSk7CiAgICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVTdGF0ZTo6QXN5bmNocm9ub3Vz
bHkpOwogfQogCkBAIC02ODE4LDcgKzY4MTMsNyBAQCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVk
aWFUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhVHlwZSgpIGNvbnN0CiBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXNlbnRhdGlvblR5cGUoKSBj
b25zdAogewogICAgIGlmIChoYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKQotICAgICAg
ICByZXR1cm4gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvQXVkaW87CisgICAgICAgIHJldHVy
biBtdXRlZCgpID8gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvIDogUGxhdGZvcm1NZWRpYVNl
c3Npb246OlZpZGVvQXVkaW87CiAKICAgICByZXR1cm4gUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1
ZGlvOwogfQpAQCAtNjg1MCw2ICs2ODQ1LDIxIEBAIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpDaGFy
YWN0ZXJpc3RpY3NGbGFncyBIVE1MTWVkaWFFbGVtZW50OjpjaGFyYWN0ZXJpc3RpY3MoKSBjCiAg
ICAgcmV0dXJuIHN0YXRlOwogfQogCitib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblByb2R1Y2VB
dWRpbygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKKyAg
ICAvLyBCZWNhdXNlIHRoZSByZW1vdGUgdGFyZ2V0IGNvdWxkIHVubXV0ZSBwbGF5YmFjayB3aXRo
b3V0IG5vdGlmeWluZyB1cywgd2UgbXVzdCBhc3N1bWUKKyAgICAvLyB0aGF0IHdlIG1heSBiZSBw
bGF5aW5nIGF1ZGlvLgorICAgIGlmIChtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpCisgICAg
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKKyAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fcGxheWVyICYmIG1fcmVhZHlTdGF0ZSA+PSBIQVZF
X01FVEFEQVRBICYmIGhhc0F1ZGlvKCk7Cit9CisKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
c2l6ZV90IEhUTUxNZWRpYUVsZW1lbnQ6Om1heGltdW1Tb3VyY2VCdWZmZXJTaXplKGNvbnN0IFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAppbmRleCAyOTk0YWJjNTA4OWQ2MmRmMTIyNDAwM2M4M2MwYWNkYjAwM2M0MzMyLi4z
MDA4MjdlYjc5ZDVjNzI0NDJkODVhNDdkZDg3MjdiNDI5ZDY3MDZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzc2LDYgKzc3Niw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBzdXBwb3J0c1NlZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE92
ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVCYWNrZ3JvdW5kTG9hZGluZ1Jlc3RyaWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgcGFnZU11dGVkU3Rh
dGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwCmluZGV4IDE2NzY2OWEyMDYwODQ4
Y2M2ODEyY2Y0NmU0Nzc4NjU5OGUxMTQzZTguLjcxZjM1M2YxNGJkM2E5YjM1NmMwN2U0Y2ZjNjgw
YzNhMjgyMmRhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKQEAgLTMyOSwxNiArMzI5LDEyIEBAIGJvb2wgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmIChzdGF0ZSgpICE9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpT
dGF0ZTo6UGxheWluZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2NhblBy
b2R1Y2VBdWRpbzsKKyAgICByZXR1cm4gY2FuUHJvZHVjZUF1ZGlvKCk7CiB9CiAKLXZvaWQgUGxh
dGZvcm1NZWRpYVNlc3Npb246OnNldENhblByb2R1Y2VBdWRpbyhib29sIGNhblByb2R1Y2VBdWRp
bykKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb246OmNhblByb2R1Y2VBdWRpbygpIGNvbnN0CiB7
Ci0gICAgaWYgKG1fY2FuUHJvZHVjZUF1ZGlvID09IGNhblByb2R1Y2VBdWRpbykKLSAgICAgICAg
cmV0dXJuOwotICAgIG1fY2FuUHJvZHVjZUF1ZGlvID0gY2FuUHJvZHVjZUF1ZGlvOwotCi0gICAg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblBy
b2R1Y2VBdWRpb0NoYW5nZWQoKnRoaXMpOworICAgIHJldHVybiBtX2NsaWVudC5jYW5Qcm9kdWNl
QXVkaW8oKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IDY1ZDgxNWRhMzMz
YThiM2ZlMWY3YjUwNmQwMWU4ZmM1MjZhMjFmNjguLjBkMzUzOWQyMjA1MjMyOTlmN2E3MWRlNjFj
ZWZjYTM4OGU4MjU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMTYyLDggKzE2Miw3IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAgICAgYm9vbCBhY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpOwotICAgIGJvb2wg
Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Qcm9kdWNlQXVkaW87IH0KLSAg
ICB2b2lkIHNldENhblByb2R1Y2VBdWRpbyhib29sKTsKKyAgICBib29sIGNhblByb2R1Y2VBdWRp
bygpIGNvbnN0OwogCiAgICAgdm9pZCBzY2hlZHVsZUNsaWVudERhdGFCdWZmZXJpbmdDaGVjaygp
OwogICAgIHZpcnR1YWwgdm9pZCByZXNldFBsYXliYWNrU2Vzc2lvblN0YXRlKCkgeyB9CkBAIC0x
ODYsNyArMTg1LDYgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pbnRlcnJ1cHRpb25Db3VudCB7IDAg
fTsKICAgICBib29sIG1fbm90aWZ5aW5nQ2xpZW50OwogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dp
cmVsZXNzUGxheWJhY2tUYXJnZXQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9jYW5Qcm9kdWNlQXVk
aW8geyBmYWxzZSB9OwogCiAgICAgZnJpZW5kIGNsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjsKIH07CkBAIC0yMTcsNiArMjE1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHNldFNob3VsZEJ1ZmZlckRhdGEoYm9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIGVsZW1lbnRJ
c0hpZGRlbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhblBy
b2R1Y2VBdWRpbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRPdmVycmlkZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAKaW5kZXggM2YxNDFmNWEw
ZmUxYTMyMDk4NGJjNjYwNjAyMTA4NTEyMjQ2ZDVlMi4uYjNhYTQ2YjllOTlmZDE4NzE3MDNjZDA5
ZjBmOTlkNGEwN2E1YjZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02MCwxMyArNjEsMjAgQEAgdm9pZCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiAgICAgaWYgKCFT
ZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9BdWRpbykgfHwg
aGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbykpIHsKLSAgICAgICAgaWYgKGNhblByb2R1
Y2VBdWRpbygpKQotICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0
Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9T
ZXNzaW9uOjpBbWJpZW50U291bmQpOwotICAgIH0gZWxzZSBpZiAoaGFzKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpXZWJBdWRpbykpCisgICAgYm9vbCBoYXNBdWRpb01lZGlhVHlwZSA9IGZhbHNlOwor
ICAgIGJvb2wgaGFzQXVkaWJsZUF1ZGlvT3JWaWRlb01lZGlhVHlwZSA9IGFueU9mU2Vzc2lvbnMo
W3RoaXMsIGhhc0F1ZGlvTWVkaWFUeXBlXSAoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24s
IHNpemVfdCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gdHlwZSA9IHNlc3Npb24ubWVkaWFUeXBl
KCk7CisgICAgICAgIGlmICh0eXBlID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlb0F1ZGlv
IHx8IHR5cGUgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvIHx8IHR5cGUgPT0gUGxhdGZv
cm1NZWRpYVNlc3Npb246OldlYkF1ZGlvKQorICAgICAgICAgICAgaGFzQXVkaW9NZWRpYVR5cGUg
PSB0cnVlOworICAgICAgICByZXR1cm4gKHR5cGUgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZp
ZGVvQXVkaW8gfHwgdHlwZSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pICYmIHNlc3Np
b24uY2FuUHJvZHVjZUF1ZGlvKCk7CisgICAgfSk7CisKKyAgICBpZiAoaGFzQXVkaWJsZUF1ZGlv
T3JWaWRlb01lZGlhVHlwZSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKTsKKyAgICBlbHNlIGlmICho
YXNBdWRpb01lZGlhVHlwZSkKICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQpOworICAgIGVsc2UKKyAgICAg
ICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9u
OjpOb25lKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNTk1NDRiMjA3ZDU1OWRjNDIwMzc4Mzg2OWU1NmMwNDgyMDAwNTZk
ZC4uYWQ3Y2FkODZmNjkxNmQ1NjVkZTVlNjMzZWUyMjI4NTgyMmM3YTFlZSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE3LTAxLTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEF1
dG9wbGF5IG11dGVkIHZpZGVvcyBzdG9wIHBsYXliYWNrIG9mIGFueSBzdHJlYW1pbmcgYXBwIGlu
IHRoZSBiYWNrZ3JvdW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjM5OTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDIwNDMxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2lvcy92aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1sOiBB
ZGRlZC4KKwogMjAxNi0xMi0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc2NoZW1lIGZvciBNb2JpbGVNaW5pQnJvd3NlclVJVGVzdHMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZjhmOWM2OThjYmNiNzFjNjU0NWU4YjUxYzRjNDNjYTBmMTQ5ZTk5
Ni4uMjRkNjEyNTRhZTVjMjA0OWIxYWU4ZjdlYjMwYTQyZTkxMGMwMDU1MyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUwOSw2ICs1MDksNyBAQAogCQlDOTU5ODRGNDFFMzZCQzZCMDAyQzBE
NDUgLyogYXV0b3BsYXktY2hlY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTU5ODRGMjFFMzZCQzU1MDAyQzBENDUgLyogYXV0b3Bs
YXktY2hlY2suaHRtbCAqLzsgfTsKIAkJQzk1OTg0RjUxRTM2QkM2QjAwMkMwRDQ1IC8qIGF1dG9w
bGF5LW5vLWF1ZGlvLWNoZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzk1OTg0RjMxRTM2QkM1NTAwMkMwRDQ1IC8qIGF1dG9wbGF5
LW5vLWF1ZGlvLWNoZWNrLmh0bWwgKi87IH07CiAJCUM5NTk4NEY3MUUzNkJDRUYwMDJDMEQ0NSAv
KiB0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5NTk4NEY2MUUzNkJDRDcwMDJDMEQ0NSAvKiB0
ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0ICovOyB9OworCQlDRDMyMUIwNDFFM0E4NUZBMDBF
QjIxQzggLyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDMyMUIwMzFF
M0E4NEI3MDBFQjIxQzggLyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRt
bCAqLzsgfTsKIAkJQ0Q1OUY1MzQxOUU5MTEwRDAwQ0YxODM1IC8qIGZpbGUtd2l0aC1tc2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDU5RjUzMjE5RTkxMEFBMDBDRjE4MzUgLyogZmlsZS13aXRoLW1zZS5odG1sICovOyB9OwogCQlD
RDU5RjUzNTE5RTkxMTBEMDBDRjE4MzUgLyogdGVzdC1tc2UubXA0IGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTlGNTMzMTlFOTEwQkMwMENG
MTgzNSAvKiB0ZXN0LW1zZS5tcDQgKi87IH07CiAJCUNENzhFMTFEMURCN0VBNjYwMDE0QTJERSAv
KiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDc4RTExQTFEQjdFQTM2MDAxNEEyREUgLyogRnVsbHNjcmVlbkRlbGVn
YXRlLm1tICovOyB9OwpAQCAtNjA3LDYgKzYwOCw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAor
CQkJCUNEMzIxQjA0MUUzQTg1RkEwMEVCMjFDOCAvKiB2aWRlby13aXRoLW11dGVkLWF1ZGlvLWFu
ZC13ZWJhdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5NTk4NEY3MUUzNkJD
RUYwMDJDMEQ0NSAvKiB0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0IGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCUM5NTk4NEY0MUUzNkJDNkIwMDJDMEQ0NSAvKiBhdXRvcGxheS1jaGVjay5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5NTk4NEY1MUUzNkJDNkIwMDJDMEQ0NSAv
KiBhdXRvcGxheS1uby1hdWRpby1jaGVjay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAt
MTI3NSw2ICsxMjc3LDcgQEAKIAkJQzk1OTg0RjMxRTM2QkM1NTAwMkMwRDQ1IC8qIGF1dG9wbGF5
LW5vLWF1ZGlvLWNoZWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0b3Bs
YXktbm8tYXVkaW8tY2hlY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM5
NTk4NEY2MUUzNkJDRDcwMDJDMEQ0NSAvKiB0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJ0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0QyMjVDMDcxQzQ1QTY5MjAwMTQwNzYxIC8qIFBhcnNlZENvbnRlbnRSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJzZWRDb250ZW50UmFu
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDMyMUIwMzFFM0E4NEI3MDBF
QjIxQzggLyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ2aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRp
by5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MzkzQzcxNzU3QkE5NzAw
QzA3MTIzIC8qIE1ENS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
RDUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDUzOTNDOTE3NTdCQUM0MDBD
MDcxMjMgLyogU0hBMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
SEExLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDUxRTkxOUU0MUY5RDAw
MTY5MzZGIC8qIENTU1BhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIyMyw2
ICsyMjI2LDcgQEAKIAkJCQlDREM4RTQ4QjFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aG91
dC1hdWRpby5odG1sICovLAogCQkJCUNEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13
aXRob3V0LWF1ZGlvLm1wNCAqLywKIAkJCQlDREI0MTE1OTFFMDlEQThFMDBFQUQzNTIgLyogdmlk
ZW8td2l0aC1tdXRlZC1hdWRpby5odG1sICovLAorCQkJCUNEMzIxQjAzMUUzQTg0QjcwMEVCMjFD
OCAvKiB2aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1sICovLAogCQkJKTsK
IAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL0F1ZGlvU2Vzc2lvbkNh
dGVnb3J5SU9TLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL0F1ZGlv
U2Vzc2lvbkNhdGVnb3J5SU9TLm1tCmluZGV4IGMzNGFjM2I2MmI4ZDU5MTY5Zjg2NmIzYjAwNjM5
YjRjOTc4MTk0MWQuLjk0YzAwODQzNTIwOWYwMjIzNzhkYjllNjljODc2Y2FiOWZlMDc3ZmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Np
b25DYXRlZ29yeUlPUy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9p
b3MvQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MubW0KQEAgLTk3LDYgKzk3LDE0IEBAIFRFU1QoV2Vi
S2l0MSwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MpCiAgICAgVXRpbDo6cnVuKCZkaWRCZWdpblBs
YXlpbmcpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKGdldEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlB
bWJpZW50KCksIFtbZ2V0QVZBdWRpb1Nlc3Npb25DbGFzcygpIHNoYXJlZEluc3RhbmNlXSBjYXRl
Z29yeV0pOworCisgICAgZGlkQmVnaW5QbGF5aW5nID0gZmFsc2U7CisKKyAgICBbdWlXZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1
ZGlvIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV1dOworCisgICAgVXRpbDo6cnVuKCZkaWRCZWdpblBsYXlpbmcpOworCisgICAg
RVhQRUNUX1dLX1NUUkVRKGdldEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50KCksIFtbZ2V0
QVZBdWRpb1Nlc3Npb25DbGFzcygpIHNoYXJlZEluc3RhbmNlXSBjYXRlZ29yeV0pOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8t
d2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY0ODE1YWQyZGNmODI5ZGE3NTg0YzFjOTk2NTFhZjFjZjViNWFlZDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3Mvdmlk
ZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbApAQCAtMCwwICsxLDMxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICBmdW5jdGlvbiBnbygpIHsKKyAgICAgICAgICAgIHZhciBhdWRpb0NvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgICAgICBhdWRpb0NvbnRleHQucmVzdW1lKCk7
CisKKyAgICAgICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCd2aWRlbycpWzBdOworICAgICAgICAgICAgdmlkZW8ucGxheSgpLnRoZW4ocGxheWluZykuY2F0
Y2gobm90UGxheWluZyk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwbGF5aW5nKCkg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOworICAgICAgICAg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxi
YWNrOnBsYXlpbmcnOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gbm90UGxheWluZygpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBw
bGF5aW5nJyk7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQorICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9ImdvKCkiPgorICAgICAg
ICA8dmlkZW8gc3JjPSJ2aWRlby13aXRoLWF1ZGlvLm1wNCIgbXV0ZWQgd2Via2l0LXBsYXlzaW5s
aW5lPjwvdmlkZW8+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299854</attachid>
            <date>2017-01-26 14:17:14 -0800</date>
            <delta_ts>2017-01-26 14:45:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-163993-20170126141510.patch</filename>
            <type>text/plain</type>
            <size>19410</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVmY2QwZWViNDg4YTY2
MjZkMjM4M2U2ODlhYjA1NDhjZDBkYThlYy4uNDI0Yzc5Zjg3MDU2NTUxN2EwYWIxMDg2MTYzMzdk
YjJhZTk3ZDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTAxLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEF1dG9wbGF5IG11dGVkIHZp
ZGVvcyBzdG9wIHBsYXliYWNrIG9mIGFueSBzdHJlYW1pbmcgYXBwIGluIHRoZSBiYWNrZ3JvdW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM5OTMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDIwNDMxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGRlZCB0ZXN0IGluIFRlc3RXZWJLaXRBUEksIFdl
YktpdDEuQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ug
d291bGQgc2V0IHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IHRvICJwbGF5YmFjayIgaWYgdGhl
cmUgd2FzIGEgbWVkaWEtCisgICAgICAgIGVsZW1lbnQtdHlwZSBtZWRpYSBzZXNzaW9uLCBhbmQg
aWYgdGhlcmUgd2FzIGEgc2Vzc2lvbiBjYXBhYmxlIG9mIHBsYXlpbmcgYXVkaW8uIEJ1dCBiZWNh
dXNlCisgICAgICAgIHRoaXMgd2FzIGFuICJvciIgb3BlcmF0aW9uLCB3ZSB3b3VsZCBpbmNvcnJl
Y3RseSBzZXQgdGhlIGNhdGVnb3J5IHRvICJwbGF5YmFjayIgaWYgdGhlcmUgd2FzCisgICAgICAg
IGEgdmlkZW8gZWxlbWVudCBpbmNhcGFibGUgb2YgcmVuZGVyaW5nIGF1ZGlvIChkdWUgdG8gYmVp
bmcgbXV0ZWQsIHdpdGhvdXQgYW4gYXVkaW8gdHJhY2ssCisgICAgICAgIGV0Yy4pLCBhbmQgYWxz
byBhIHNlc3Npb24gY2FwYWJsZSBvZiBwcm9kdWNpbmcgYXVkaW8sIHN1Y2ggYXMgV2ViQXVkaW8u
CisKKyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgdGhpcyB0dXJucyBpbnRvIGFuICJhbmQiIG9w
ZXJhdGlvbjsgdGhlcmUgbXVzdCBiZSBhIG1lZGlhIGVsZW1lbnQgY2FwYWJsZQorICAgICAgICBv
ZiByZW5kZXJpbmcgYXVkaW8gaW4gb3JkZXIgdG8gc3dpdGNoIHRoZSBhdWRpbyBzZXNzaW9uIGNh
dGVnb3J5IHRvICJwbGF5YmFjayIuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCB3ZSBubyBsb25n
ZXIgY2FjaGUgdGhlIHZhbHVlIG9mICJjYW5Qcm9kdWNlQXVkaW8oKSI7IGl0J3MgcXVlcmllZCBk
aXJlY3RseQorICAgICAgICB3aGVuZXZlciB1cGRhdGVTZXNzaW9uU3RhdGUoKSBpcyBjYWxsZWQu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdENvbW1vbik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwcmVzZW50
YXRpb25UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNoYXJhY3Rl
cmlzdGljcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5Qcm9kdWNl
QXVkaW8pOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjphY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2FuUHJvZHVjZUF1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjYW5Qcm9kdWNlQXVkaW9DaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpzZXRDYW5Qcm9k
dWNlQXVkaW8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVu
dDo6Y2FuUHJvZHVjZUF1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpjYW5Qcm9kdWNlQXVkaW8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHA6CisgICAgICAgIChQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisKIDIwMTctMDEtMjUgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBJbnRy
b2R1Y2UgbGlid2VicnRjIGFic3RyYWN0aW9uIGZvciBXSzEvV0syIGltcGxlbWVudGF0aW9ucwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmlu
ZGV4IDEzNTgxNTI5YTAzZDE1NGE0ODJhNmE4MTY3YTZjNWI4YmNjZDgwZjkuLmY0MTdkNDc5ZDNi
YWE5ZWMwZTYzNmJiNGM5NTgxNTM0MzBmOTkyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTE4MSw4ICsxODEsNiBAQCB2b2lk
IEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0Q29tbW9uKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBhZGRCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVQYWdlQ29uc2VudEZvckF1ZGlvU3RhcnRS
ZXN0cmljdGlvbik7CiAjZW5kaWYKLQotICAgIG1fbWVkaWFTZXNzaW9uLT5zZXRDYW5Qcm9kdWNl
QXVkaW8odHJ1ZSk7CiB9CiAKIEF1ZGlvQ29udGV4dDo6fkF1ZGlvQ29udGV4dCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCA1YzFlMjRk
ODAzZGEyMGNmZjA0MWM0YmJiMDRmYjk5M2VjYzNkYjRhLi5jNjMxZjFmMTk4MDViYjZlMjcyYzYz
ZWIyODgwYTIyOTdiYzkyMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmgKQEAgLTMxNyw2ICszMTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
c3VwcG9ydHNTZWVraW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBi
b29sIHNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IG92
ZXJyaWRlOworICAgIGJvb2wgY2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggNjA3NGNjMzI5Mjg0ZTZhNWYyZDdhOTY1ODFhNDk1NGQxYmQzZGJjYi4uZDZkYzIy
ZTA1ZTgyMjgxNjdmMGFlMTA3YTFjODlhMTliZjk4ODJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04MzIsNiArODMyLDcgQEAgTm9kZTo6SW5zZXJ0aW9u
Tm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTWVkaWFFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSYKICAgICBpZiAoIW1fZXhwbGljaXRseU11dGVkKSB7CiAgICAgICAgIG1fZXhwbGlj
aXRseU11dGVkID0gdHJ1ZTsKICAgICAgICAgbV9tdXRlZCA9IGhhc0F0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24obXV0ZWRBdHRyKTsKKyAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNhblBy
b2R1Y2VBdWRpb0NoYW5nZWQoKTsKICAgICB9CiAKICAgICByZXR1cm4gSW5zZXJ0aW9uU2hvdWxk
Q2FsbEZpbmlzaGVkSW5zZXJ0aW5nU3VidHJlZTsKQEAgLTE0ODUsNiArMTQ4Niw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29u
dGVudFR5cGUmIGNvbnRlbnRUCiAgICAgaWYgKCFtX2V4cGxpY2l0bHlNdXRlZCkgewogICAgICAg
ICBtX2V4cGxpY2l0bHlNdXRlZCA9IHRydWU7CiAgICAgICAgIG1fbXV0ZWQgPSBoYXNBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKG11dGVkQXR0cik7CisgICAgICAgIG1fbWVkaWFTZXNz
aW9uLT5jYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgfQogCiAgICAgdXBkYXRlVm9sdW1l
KCk7CkBAIC0zMzI5LDYgKzMzMzEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE11dGVk
KGJvb2wgbXV0ZWQpCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICAg
ICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVTdGF0ZTo6QXN5bmNocm9ub3VzbHkpOwogI2VuZGlm
CisgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5jYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAg
fQogCiAgICAgc2NoZWR1bGVVcGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpOwpAQCAtNDY2
Miw4ICs0NjY1LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNoYXJhY3Rl
cmlzdGljQ2hhbmdlZChNZWRpYVBsYXllciopCiAgICAgaWYgKCFwYXVzZWQoKSAmJiAhbV9tZWRp
YVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKICAgICAgICAgcGF1c2VJbnRlcm5h
bCgpOwogCi0gICAgbV9tZWRpYVNlc3Npb24tPnNldENhblByb2R1Y2VBdWRpbyhtX3BsYXllciAm
JiBtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiBoYXNBdWRpbygpKTsKLQogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OKQogICAgIGRvY3VtZW50KCkudXBkYXRlSXNQbGF5aW5nTWVkaWEo
bV9lbGVtZW50SUQpOwogI2Vsc2UKQEAgLTUwODEsOCArNTA4Miw4IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihEZWxheWVkQWN0aW9uVHlwZSBmbGFncykKICAgICAg
ICAgY29uZmlndXJlVGV4dFRyYWNrRGlzcGxheSgpOwogI2VuZGlmCiAKLSAgICBtX21lZGlhU2Vz
c2lvbi0+c2V0Q2FuUHJvZHVjZUF1ZGlvKGZhbHNlKTsKICAgICBtX21lZGlhU2Vzc2lvbi0+Y2xp
ZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworICAgIG1fbWVkaWFTZXNzaW9uLT5jYW5Qcm9k
dWNlQXVkaW9DaGFuZ2VkKCk7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAt
NTI3Myw4ICs1Mjc0LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckN1cnJl
bnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKE1lZGlhUGwKICAgICBjb25maWd1cmVN
ZWRpYUNvbnRyb2xzKCk7CiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0Y3Vy
cmVudHBsYXliYWNrdGFyZ2V0aXN3aXJlbGVzc2NoYW5nZWRFdmVudCk7CiAgICAgbV9tZWRpYVNl
c3Npb24tPmlzUGxheWluZ1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldENoYW5nZWQobV9pc1BsYXlp
bmdUb1dpcmVsZXNzVGFyZ2V0KTsKLSAgICBpZiAobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
KQotICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0Q2FuUHJvZHVjZUF1ZGlvKHRydWUpOworICAg
IG1fbWVkaWFTZXNzaW9uLT5jYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgdXBkYXRlTWVk
aWFTdGF0ZShVcGRhdGVTdGF0ZTo6QXN5bmNocm9ub3VzbHkpOwogfQogCkBAIC02ODE4LDcgKzY4
MTgsNyBAQCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhVHlwZSgpIGNvbnN0CiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIEhUTUxN
ZWRpYUVsZW1lbnQ6OnByZXNlbnRhdGlvblR5cGUoKSBjb25zdAogewogICAgIGlmIChoYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKQotICAgICAgICByZXR1cm4gUGxhdGZvcm1NZWRpYVNl
c3Npb246OlZpZGVvQXVkaW87CisgICAgICAgIHJldHVybiBtdXRlZCgpID8gUGxhdGZvcm1NZWRp
YVNlc3Npb246OlZpZGVvIDogUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvQXVkaW87CiAKICAg
ICByZXR1cm4gUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvOwogfQpAQCAtNjg1MCw2ICs2ODUw
LDIxIEBAIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpDaGFyYWN0ZXJpc3RpY3NGbGFncyBIVE1MTWVk
aWFFbGVtZW50OjpjaGFyYWN0ZXJpc3RpY3MoKSBjCiAgICAgcmV0dXJuIHN0YXRlOwogfQogCiti
b29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblByb2R1Y2VBdWRpbygpIGNvbnN0Cit7CisjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKKyAgICAvLyBCZWNhdXNlIHRoZSByZW1vdGUg
dGFyZ2V0IGNvdWxkIHVubXV0ZSBwbGF5YmFjayB3aXRob3V0IG5vdGlmeWluZyB1cywgd2UgbXVz
dCBhc3N1bWUKKyAgICAvLyB0aGF0IHdlIG1heSBiZSBwbGF5aW5nIGF1ZGlvLgorICAgIGlmICht
X2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlm
CisKKyAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IG1fcGxheWVyICYmIG1fcmVhZHlTdGF0ZSA+PSBIQVZFX01FVEFEQVRBICYmIGhhc0F1ZGlvKCk7
Cit9CisKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogc2l6ZV90IEhUTUxNZWRpYUVsZW1lbnQ6
Om1heGltdW1Tb3VyY2VCdWZmZXJTaXplKGNvbnN0IFNvdXJjZUJ1ZmZlciYgYnVmZmVyKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyOTk0YWJjNTA4
OWQ2MmRmMTIyNDAwM2M4M2MwYWNkYjAwM2M0MzMyLi4zMDA4MjdlYjc5ZDVjNzI0NDJkODVhNDdk
ZDg3MjdiNDI5ZDY3MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtNzc2LDYgKzc3Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c1NlZWtpbmcoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNr
UmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kTG9hZGluZ1Jlc3Ry
aWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25z
dCBmaW5hbDsKIAogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uY3BwCmluZGV4IDE2NzY2OWEyMDYwODQ4Y2M2ODEyY2Y0NmU0Nzc4NjU5OGUxMTQz
ZTguLjU2OWE1YjllMDZlZDk2YzZkMGQ3MGM2NWI4YzUwMWEzMzlmNzY3ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5j
cHAKQEAgLTMyOSwxNSArMzI5LDE2IEBAIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb246OmFjdGl2
ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChz
dGF0ZSgpICE9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGxheWluZykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2NhblByb2R1Y2VBdWRpbzsKKyAgICByZXR1cm4g
Y2FuUHJvZHVjZUF1ZGlvKCk7CiB9CiAKLXZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb246OnNldENh
blByb2R1Y2VBdWRpbyhib29sIGNhblByb2R1Y2VBdWRpbykKK2Jvb2wgUGxhdGZvcm1NZWRpYVNl
c3Npb246OmNhblByb2R1Y2VBdWRpbygpIGNvbnN0CiB7Ci0gICAgaWYgKG1fY2FuUHJvZHVjZUF1
ZGlvID09IGNhblByb2R1Y2VBdWRpbykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fY2FuUHJvZHVj
ZUF1ZGlvID0gY2FuUHJvZHVjZUF1ZGlvOworICAgIHJldHVybiBtX2NsaWVudC5jYW5Qcm9kdWNl
QXVkaW8oKTsKK30KIAordm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2FuUHJvZHVjZUF1ZGlv
Q2hhbmdlZCgpCit7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKnRoaXMpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApp
bmRleCA2NWQ4MTVkYTMzM2E4YjNmZTFmN2I1MDZkMDFlOGZjNTI2YTIxZjY4Li5mZDUyOTRjMzZh
Y2I1NTgyNmEyOTgxM2QyZGVmZmNiZjc5MjFjZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTE2Miw4ICsxNjIs
OCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIGJvb2wgYWN0aXZlQXVkaW9TZXNzaW9uUmVxdWly
ZWQoKTsKLSAgICBib29sIGNhblByb2R1Y2VBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJv
ZHVjZUF1ZGlvOyB9Ci0gICAgdm9pZCBzZXRDYW5Qcm9kdWNlQXVkaW8oYm9vbCk7CisgICAgYm9v
bCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25zdDsKKyAgICB2b2lkIGNhblByb2R1Y2VBdWRpb0NoYW5n
ZWQoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVDbGllbnREYXRhQnVmZmVyaW5nQ2hlY2soKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXRQbGF5YmFja1Nlc3Npb25TdGF0ZSgpIHsgfQpAQCAtMTg2LDcg
KzE4Niw2IEBAIHByaXZhdGU6CiAgICAgaW50IG1faW50ZXJydXB0aW9uQ291bnQgeyAwIH07CiAg
ICAgYm9vbCBtX25vdGlmeWluZ0NsaWVudDsKICAgICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVz
c1BsYXliYWNrVGFyZ2V0IHsgZmFsc2UgfTsKLSAgICBib29sIG1fY2FuUHJvZHVjZUF1ZGlvIHsg
ZmFsc2UgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7
CiB9OwpAQCAtMjE3LDYgKzIxNiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG91bGRCdWZmZXJEYXRhKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBlbGVtZW50SXNIaWRk
ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5Qcm9kdWNl
QXVkaW8oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGUpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
T3ZlcnJpZGVCYWNrZ3JvdW5kTG9hZGluZ1Jlc3RyaWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCmluZGV4IDNmMTQxZjVhMGZlMWEz
MjA5ODRiYzY2MDYwMjEwODUxMjI0NmQ1ZTIuLmIzYWE0NmI5ZTk5ZmQxODcxNzAzY2QwOWYwZjk5
ZDRhMDdhNWI2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjAsMTMgKzYxLDIwIEBAIHZvaWQgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgIGlmICghU2V0dGlu
Z3M6OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvQXVkaW8pIHx8IGhhcyhQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7Ci0gICAgICAgIGlmIChjYW5Qcm9kdWNlQXVk
aW8oKSkKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lv
bjo6QW1iaWVudFNvdW5kKTsKLSAgICB9IGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6V2ViQXVkaW8pKQorICAgIGJvb2wgaGFzQXVkaW9NZWRpYVR5cGUgPSBmYWxzZTsKKyAgICBi
b29sIGhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUgPSBhbnlPZlNlc3Npb25zKFt0aGlz
LCBoYXNBdWRpb01lZGlhVHlwZV0gKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uLCBzaXpl
X3QpIG11dGFibGUgeworICAgICAgICBhdXRvIHR5cGUgPSBzZXNzaW9uLm1lZGlhVHlwZSgpOwor
ICAgICAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9BdWRpbyB8fCB0
eXBlID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbyB8fCB0eXBlID09IFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpXZWJBdWRpbykKKyAgICAgICAgICAgIGhhc0F1ZGlvTWVkaWFUeXBlID0gdHJ1
ZTsKKyAgICAgICAgcmV0dXJuICh0eXBlID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlb0F1
ZGlvIHx8IHR5cGUgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSAmJiBzZXNzaW9uLmNh
blByb2R1Y2VBdWRpbygpOworICAgIH0pOworCisgICAgaWYgKGhhc0F1ZGlibGVBdWRpb09yVmlk
ZW9NZWRpYVR5cGUpCisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgZWxzZSBpZiAoaGFzQXVk
aW9NZWRpYVR5cGUpCiAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKKyAgICBlbHNlCisgICAgICAgIEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Tm9u
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDU5NTQ0YjIwN2Q1NTlkYzQyMDM3ODM4NjllNTZjMDQ4MjAwMDU2ZGQuLmFk
N2NhZDg2ZjY5MTZkNTY1ZGU1ZTYzM2VlMjIyODU4MjJjN2ExZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0w
MS0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBdXRvcGxh
eSBtdXRlZCB2aWRlb3Mgc3RvcCBwbGF5YmFjayBvZiBhbnkgc3RyZWFtaW5nIGFwcCBpbiB0aGUg
YmFja2dyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzOTkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTAyMDQzMT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9pb3MvQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9pb3MvdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbDogQWRkZWQu
CisKIDIwMTYtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHNjaGVtZSBmb3IgTW9iaWxlTWluaUJyb3dzZXJVSVRlc3RzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGY4ZjljNjk4Y2JjYjcxYzY1NDVlOGI1MWM0YzQzY2EwZjE0OWU5OTYuLjI0
ZDYxMjU0YWU1YzIwNDliMWFlOGY3ZWIzMGE0MmU5MTBjMDA1NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC01MDksNiArNTA5LDcgQEAKIAkJQzk1OTg0RjQxRTM2QkM2QjAwMkMwRDQ1IC8q
IGF1dG9wbGF5LWNoZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzk1OTg0RjIxRTM2QkM1NTAwMkMwRDQ1IC8qIGF1dG9wbGF5LWNo
ZWNrLmh0bWwgKi87IH07CiAJCUM5NTk4NEY1MUUzNkJDNkIwMDJDMEQ0NSAvKiBhdXRvcGxheS1u
by1hdWRpby1jaGVjay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM5NTk4NEYzMUUzNkJDNTUwMDJDMEQ0NSAvKiBhdXRvcGxheS1uby1h
dWRpby1jaGVjay5odG1sICovOyB9OwogCQlDOTU5ODRGNzFFMzZCQ0VGMDAyQzBENDUgLyogdGVz
dC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTU5ODRGNjFFMzZCQ0Q3MDAyQzBENDUgLyogdGVzdC13
aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCAqLzsgfTsKKwkJQ0QzMjFCMDQxRTNBODVGQTAwRUIyMUM4
IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMjFCMDMxRTNBODRC
NzAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgKi87
IH07CiAJCUNENTlGNTM0MTlFOTExMEQwMENGMTgzNSAvKiBmaWxlLXdpdGgtbXNlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1OUY1
MzIxOUU5MTBBQTAwQ0YxODM1IC8qIGZpbGUtd2l0aC1tc2UuaHRtbCAqLzsgfTsKIAkJQ0Q1OUY1
MzUxOUU5MTEwRDAwQ0YxODM1IC8qIHRlc3QtbXNlLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU5RjUzMzE5RTkxMEJDMDBDRjE4MzUg
LyogdGVzdC1tc2UubXA0ICovOyB9OwogCQlDRDc4RTExRDFEQjdFQTY2MDAxNEEyREUgLyogRnVs
bHNjcmVlbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q3OEUxMUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5t
bSAqLzsgfTsKQEAgLTYwNyw2ICs2MDgsNyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlD
RDMyMUIwNDFFM0E4NUZBMDBFQjIxQzggLyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2Vi
YXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOTU5ODRGNzFFMzZCQ0VGMDAy
QzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlDOTU5ODRGNDFFMzZCQzZCMDAyQzBENDUgLyogYXV0b3BsYXktY2hlY2suaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOTU5ODRGNTFFMzZCQzZCMDAyQzBENDUgLyogYXV0
b3BsYXktbm8tYXVkaW8tY2hlY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEyNzUs
NiArMTI3Nyw3IEBACiAJCUM5NTk4NEYzMUUzNkJDNTUwMDJDMEQ0NSAvKiBhdXRvcGxheS1uby1h
dWRpby1jaGVjay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1dG9wbGF5LW5v
LWF1ZGlvLWNoZWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOTU5ODRG
NjFFMzZCQ0Q3MDAyQzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAi
dGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMjI1QzA3MUM0NUE2OTIwMDE0MDc2MSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFyc2VkQ29udGVudFJhbmdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzMjFCMDMxRTNBODRCNzAwRUIyMUM4
IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAidmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTM5M0M3MTc1N0JBOTcwMEMwNzEy
MyAvKiBNRDUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTUQ1LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MzkzQzkxNzU3QkFDNDAwQzA3MTIz
IC8qIFNIQTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU0hBMS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ1MUU5MTlFNDFGOUQwMDE2OTM2
RiAvKiBDU1NQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q1NTUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMjMsNiArMjIy
Niw3IEBACiAJCQkJQ0RDOEU0OEIxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQtYXVk
aW8uaHRtbCAqLywKIAkJCQlDREM4RTQ4QzFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aG91
dC1hdWRpby5tcDQgKi8sCiAJCQkJQ0RCNDExNTkxRTA5REE4RTAwRUFEMzUyIC8qIHZpZGVvLXdp
dGgtbXV0ZWQtYXVkaW8uaHRtbCAqLywKKwkJCQlDRDMyMUIwMzFFM0E4NEI3MDBFQjIxQzggLyog
dmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Npb25DYXRlZ29y
eUlPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Np
b25DYXRlZ29yeUlPUy5tbQppbmRleCBjMzRhYzNiNjJiOGQ1OTE2OWY4NjZiM2IwMDYzOWI0Yzk3
ODE5NDFkLi45NGMwMDg0MzUyMDlmMDIyMzc4ZGI5ZTY5Yzg3NmNhYjlmZTA3N2ZjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvQXVkaW9TZXNzaW9uQ2F0
ZWdvcnlJT1MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL0F1
ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TLm1tCkBAIC05Nyw2ICs5NywxNCBAQCBURVNUKFdlYktpdDEs
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TKQogICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5n
KTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVu
dCgpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnld
KTsKKworICAgIGRpZEJlZ2luUGxheWluZyA9IGZhbHNlOworCisgICAgW3VpV2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJ2aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpbyIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dXTsKKworICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKKworICAgIEVYUEVD
VF9XS19TVFJFUShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFWQXVk
aW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgt
bXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9pb3MvdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNDgxNWFkMmRjZjgyOWRhNzU4NGMxYzk5NjUxYWYxY2Y1YjVhZWQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdp
dGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
ZnVuY3Rpb24gZ28oKSB7CisgICAgICAgICAgICB2YXIgYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCgpOworICAgICAgICAgICAgYXVkaW9Db250ZXh0LnJlc3VtZSgpOworCisg
ICAgICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlk
ZW8nKVswXTsKKyAgICAgICAgICAgIHZpZGVvLnBsYXkoKS50aGVuKHBsYXlpbmcpLmNhdGNoKG5v
dFBsYXlpbmcpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcGxheWluZygpIHsKKyAg
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2goZSkgeworICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpw
bGF5aW5nJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG5v
dFBsYXlpbmcoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWlu
ZycpOworICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KKyAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJnbygpIj4KKyAgICAgICAgPHZp
ZGVvIHNyYz0idmlkZW8td2l0aC1hdWRpby5tcDQiIG11dGVkIHdlYmtpdC1wbGF5c2lubGluZT48
L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299858</attachid>
            <date>2017-01-26 14:46:33 -0800</date>
            <delta_ts>2017-01-26 16:39:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-163993-20170126144431.patch</filename>
            <type>text/plain</type>
            <size>19614</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVkMTc4ZGFhZmRiOTA3
M2JmMDA0NGRkY2VjNmVjMjViYjdhNDlmNi4uYjllYzdkNGZlZGY1NjUxMDc5ODczNjI5YWY4NDY5
OWM1YzVkMTcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTAxLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEF1dG9wbGF5IG11dGVkIHZp
ZGVvcyBzdG9wIHBsYXliYWNrIG9mIGFueSBzdHJlYW1pbmcgYXBwIGluIHRoZSBiYWNrZ3JvdW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM5OTMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDIwNDMxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGRlZCB0ZXN0IGluIFRlc3RXZWJLaXRBUEksIFdl
YktpdDEuQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ug
d291bGQgc2V0IHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IHRvICJwbGF5YmFjayIgaWYgdGhl
cmUgd2FzIGEgbWVkaWEtCisgICAgICAgIGVsZW1lbnQtdHlwZSBtZWRpYSBzZXNzaW9uLCBhbmQg
aWYgdGhlcmUgd2FzIGEgc2Vzc2lvbiBjYXBhYmxlIG9mIHBsYXlpbmcgYXVkaW8uIEJ1dCBiZWNh
dXNlCisgICAgICAgIHRoaXMgd2FzIGFuICJvciIgb3BlcmF0aW9uLCB3ZSB3b3VsZCBpbmNvcnJl
Y3RseSBzZXQgdGhlIGNhdGVnb3J5IHRvICJwbGF5YmFjayIgaWYgdGhlcmUgd2FzCisgICAgICAg
IGEgdmlkZW8gZWxlbWVudCBpbmNhcGFibGUgb2YgcmVuZGVyaW5nIGF1ZGlvIChkdWUgdG8gYmVp
bmcgbXV0ZWQsIHdpdGhvdXQgYW4gYXVkaW8gdHJhY2ssCisgICAgICAgIGV0Yy4pLCBhbmQgYWxz
byBhIHNlc3Npb24gY2FwYWJsZSBvZiBwcm9kdWNpbmcgYXVkaW8sIHN1Y2ggYXMgV2ViQXVkaW8u
CisKKyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgdGhpcyB0dXJucyBpbnRvIGFuICJhbmQiIG9w
ZXJhdGlvbjsgdGhlcmUgbXVzdCBiZSBhIG1lZGlhIGVsZW1lbnQgY2FwYWJsZQorICAgICAgICBv
ZiByZW5kZXJpbmcgYXVkaW8gaW4gb3JkZXIgdG8gc3dpdGNoIHRoZSBhdWRpbyBzZXNzaW9uIGNh
dGVnb3J5IHRvICJwbGF5YmFjayIuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCB3ZSBubyBsb25n
ZXIgY2FjaGUgdGhlIHZhbHVlIG9mICJjYW5Qcm9kdWNlQXVkaW8oKSI7IGl0J3MgcXVlcmllZCBk
aXJlY3RseQorICAgICAgICB3aGVuZXZlciB1cGRhdGVTZXNzaW9uU3RhdGUoKSBpcyBjYWxsZWQu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdENvbW1vbik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwcmVzZW50
YXRpb25UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNoYXJhY3Rl
cmlzdGljcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5Qcm9kdWNl
QXVkaW8pOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjphY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2FuUHJvZHVjZUF1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjYW5Qcm9kdWNlQXVkaW9DaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpzZXRDYW5Qcm9k
dWNlQXVkaW8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVu
dDo6Y2FuUHJvZHVjZUF1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpjYW5Qcm9kdWNlQXVkaW8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHA6CisgICAgICAgIChQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisKIDIwMTctMDEtMjYgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEdhbWVwYWRzOiBTb21l
IERQYWRzIGFyZSBzdGlsbCBub3QgZXhwb3NlZCBpbiB0aGUgSElEIGJhY2tlbmQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggMTM1
ODE1MjlhMDNkMTU0YTQ4MmE2YTgxNjdhNmM1YjhiY2NkODBmOS4uZjQxN2Q0NzlkM2JhYTllYzBl
NjM2YmI0Yzk1ODE1MzQzMGY5OTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMTgxLDggKzE4MSw2IEBAIHZvaWQgQXVkaW9D
b250ZXh0Ojpjb25zdHJ1Y3RDb21tb24oKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGFkZEJl
aGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVBhZ2VDb25zZW50Rm9yQXVkaW9TdGFydFJlc3RyaWN0
aW9uKTsKICNlbmRpZgotCi0gICAgbV9tZWRpYVNlc3Npb24tPnNldENhblByb2R1Y2VBdWRpbyh0
cnVlKTsKIH0KIAogQXVkaW9Db250ZXh0Ojp+QXVkaW9Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDVjMWUyNGQ4MDNkYTIw
Y2ZmMDQxYzRiYmIwNGZiOTkzZWNjM2RiNGEuLmM2MzFmMWYxOTgwNWJiNmUyNzJjNjNlYjI4ODBh
MjI5N2JjOTIwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuaApAQCAtMzE3LDYgKzMxNyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0
c1NlZWtpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgc2hv
dWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6SW50ZXJydXB0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgYm9vbCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSB7IHJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCAwMjUwZjFhMDZiYWFhYmFhMWIwZjY0OGE1NTIwMTg0YThkM2ZiMjI2Li5mNGJhZmM4ZjZkMmRm
NWJjM2QyOThhYjcwODMwOTc2MjY4OTZkOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTgzMiw2ICs4MzIsNyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmlj
YXRpb25SZXF1ZXN0IEhUTUxNZWRpYUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2Rl
JgogICAgIGlmICghbV9leHBsaWNpdGx5TXV0ZWQpIHsKICAgICAgICAgbV9leHBsaWNpdGx5TXV0
ZWQgPSB0cnVlOwogICAgICAgICBtX211dGVkID0gaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihtdXRlZEF0dHIpOworICAgICAgICBtX21lZGlhU2Vzc2lvbi0+Y2FuUHJvZHVjZUF1
ZGlvQ2hhbmdlZCgpOwogICAgIH0KIAogICAgIHJldHVybiBJbnNlcnRpb25TaG91bGRDYWxsRmlu
aXNoZWRJbnNlcnRpbmdTdWJ0cmVlOwpAQCAtMTQ4NSw2ICsxNDg2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlw
ZSYgY29udGVudFQKICAgICBpZiAoIW1fZXhwbGljaXRseU11dGVkKSB7CiAgICAgICAgIG1fZXhw
bGljaXRseU11dGVkID0gdHJ1ZTsKICAgICAgICAgbV9tdXRlZCA9IGhhc0F0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24obXV0ZWRBdHRyKTsKKyAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNh
blByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKICAgICB9CiAKICAgICB1cGRhdGVWb2x1bWUoKTsKQEAg
LTMzMzAsNiArMzMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBt
dXRlZCkKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgICAgICB1cGRh
dGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRlOjpBc3luY2hyb25vdXNseSk7CiAjZW5kaWYKKyAgICAg
ICAgbV9tZWRpYVNlc3Npb24tPmNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKICAgICB9CiAKICAg
ICBzY2hlZHVsZVVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CkBAIC00NjYzLDggKzQ2
NjYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWND
aGFuZ2VkKE1lZGlhUGxheWVyKikKICAgICBpZiAoIXBhdXNlZCgpICYmICFtX21lZGlhU2Vzc2lv
bi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICBwYXVzZUludGVybmFsKCk7CiAK
LSAgICBtX21lZGlhU2Vzc2lvbi0+c2V0Q2FuUHJvZHVjZUF1ZGlvKG1fcGxheWVyICYmIG1fcmVh
ZHlTdGF0ZSA+PSBIQVZFX01FVEFEQVRBICYmIGhhc0F1ZGlvKCkpOwotCiAjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT04pCiAgICAgZG9jdW1lbnQoKS51cGRhdGVJc1BsYXlpbmdNZWRpYShtX2VsZW1l
bnRJRCk7CiAjZWxzZQpAQCAtNTA4Miw4ICs1MDgzLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpjbGVhck1lZGlhUGxheWVyKERlbGF5ZWRBY3Rpb25UeXBlIGZsYWdzKQogICAgICAgICBjb25m
aWd1cmVUZXh0VHJhY2tEaXNwbGF5KCk7CiAjZW5kaWYKIAotICAgIG1fbWVkaWFTZXNzaW9uLT5z
ZXRDYW5Qcm9kdWNlQXVkaW8oZmFsc2UpOwogICAgIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRDaGFy
YWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgbV9tZWRpYVNlc3Npb24tPmNhblByb2R1Y2VBdWRp
b0NoYW5nZWQoKTsKIAogICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01Mjc0LDgg
KzUyNzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ3VycmVudFBsYXli
YWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoTWVkaWFQbAogICAgIGNvbmZpZ3VyZU1lZGlhQ29u
dHJvbHMoKTsKICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRjdXJyZW50cGxh
eWJhY2t0YXJnZXRpc3dpcmVsZXNzY2hhbmdlZEV2ZW50KTsKICAgICBtX21lZGlhU2Vzc2lvbi0+
aXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdlZChtX2lzUGxheWluZ1RvV2ly
ZWxlc3NUYXJnZXQpOwotICAgIGlmIChtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpCi0gICAg
ICAgIG1fbWVkaWFTZXNzaW9uLT5zZXRDYW5Qcm9kdWNlQXVkaW8odHJ1ZSk7CisgICAgbV9tZWRp
YVNlc3Npb24tPmNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKICAgICB1cGRhdGVNZWRpYVN0YXRl
KFVwZGF0ZVN0YXRlOjpBc3luY2hyb25vdXNseSk7CiB9CiAKQEAgLTY4MTksNyArNjgxOSw3IEBA
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFU
eXBlKCkgY29uc3QKIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUgSFRNTE1lZGlhRWxl
bWVudDo6cHJlc2VudGF0aW9uVHlwZSgpIGNvbnN0CiB7CiAgICAgaWYgKGhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykpCi0gICAgICAgIHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
VmlkZW9BdWRpbzsKKyAgICAgICAgcmV0dXJuIG11dGVkKCkgPyBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6VmlkZW8gOiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9BdWRpbzsKIAogICAgIHJldHVy
biBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW87CiB9CkBAIC02ODUxLDYgKzY4NTEsMjEgQEAg
UGxhdGZvcm1NZWRpYVNlc3Npb246OkNoYXJhY3RlcmlzdGljc0ZsYWdzIEhUTUxNZWRpYUVsZW1l
bnQ6OmNoYXJhY3RlcmlzdGljcygpIGMKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKK2Jvb2wgSFRN
TE1lZGlhRWxlbWVudDo6Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorICAgIC8vIEJlY2F1c2UgdGhlIHJlbW90ZSB0YXJnZXQg
Y291bGQgdW5tdXRlIHBsYXliYWNrIHdpdGhvdXQgbm90aWZ5aW5nIHVzLCB3ZSBtdXN0IGFzc3Vt
ZQorICAgIC8vIHRoYXQgd2UgbWF5IGJlIHBsYXlpbmcgYXVkaW8uCisgICAgaWYgKG1faXNQbGF5
aW5nVG9XaXJlbGVzc1RhcmdldCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworICAg
IGlmIChtdXRlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9wbGF5
ZXIgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgaGFzQXVkaW8oKTsKK30KKwog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiBzaXplX3QgSFRNTE1lZGlhRWxlbWVudDo6bWF4aW11
bVNvdXJjZUJ1ZmZlclNpemUoY29uc3QgU291cmNlQnVmZmVyJiBidWZmZXIpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDI5OTRhYmM1MDg5ZDYyZGYx
MjI0MDAzYzgzYzBhY2RiMDAzYzQzMzIuLjMwMDgyN2ViNzlkNWM3MjQ0MmQ4NWE0N2RkODcyN2I0
MjlkNjcwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC03NzYs
NiArNzc2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzU2Vla2luZygpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmlj
dGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblByb2R1Y2VBdWRpbygpIGNvbnN0IGZpbmFs
OwogCiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5jcHAKaW5kZXggMTY3NjY5YTIwNjA4NDhjYzY4MTJjZjQ2ZTQ3Nzg2NTk4ZTExNDNlOC4uNTY5
YTViOWUwNmVkOTZjNmQwZDcwYzY1YjhjNTAxYTMzOWY3NjdkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcApAQCAt
MzI5LDE1ICszMjksMTYgQEAgYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6YWN0aXZlQXVkaW9T
ZXNzaW9uUmVxdWlyZWQoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHN0YXRlKCkg
IT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2FuUHJvZHVjZUF1ZGlvOworICAgIHJldHVybiBjYW5Qcm9k
dWNlQXVkaW8oKTsKIH0KIAotdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6c2V0Q2FuUHJvZHVj
ZUF1ZGlvKGJvb2wgY2FuUHJvZHVjZUF1ZGlvKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKIHsKLSAgICBpZiAobV9jYW5Qcm9kdWNlQXVkaW8gPT0g
Y2FuUHJvZHVjZUF1ZGlvKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jYW5Qcm9kdWNlQXVkaW8g
PSBjYW5Qcm9kdWNlQXVkaW87CisgICAgcmV0dXJuIG1fY2xpZW50LmNhblByb2R1Y2VBdWRpbygp
OworfQogCit2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjYW5Qcm9kdWNlQXVkaW9DaGFuZ2Vk
KCkKK3sKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5z
ZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IDY1
ZDgxNWRhMzMzYThiM2ZlMWY3YjUwNmQwMWU4ZmM1MjZhMjFmNjguLmZkNTI5NGMzNmFjYjU1ODI2
YTI5ODEzZDJkZWZmY2JmNzkyMWNkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMTYyLDggKzE2Miw4IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgYm9vbCBhY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpOwot
ICAgIGJvb2wgY2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Qcm9kdWNlQXVk
aW87IH0KLSAgICB2b2lkIHNldENhblByb2R1Y2VBdWRpbyhib29sKTsKKyAgICBib29sIGNhblBy
b2R1Y2VBdWRpbygpIGNvbnN0OworICAgIHZvaWQgY2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwog
CiAgICAgdm9pZCBzY2hlZHVsZUNsaWVudERhdGFCdWZmZXJpbmdDaGVjaygpOwogICAgIHZpcnR1
YWwgdm9pZCByZXNldFBsYXliYWNrU2Vzc2lvblN0YXRlKCkgeyB9CkBAIC0xODYsNyArMTg2LDYg
QEAgcHJpdmF0ZToKICAgICBpbnQgbV9pbnRlcnJ1cHRpb25Db3VudCB7IDAgfTsKICAgICBib29s
IG1fbm90aWZ5aW5nQ2xpZW50OwogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJh
Y2tUYXJnZXQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9jYW5Qcm9kdWNlQXVkaW8geyBmYWxzZSB9
OwogCiAgICAgZnJpZW5kIGNsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKIH07CkBA
IC0yMTcsNiArMjE2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEJ1
ZmZlckRhdGEoYm9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIGVsZW1lbnRJc0hpZGRlbigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhblByb2R1Y2VBdWRpbygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50
ZXJydXB0aW9uVHlwZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRPdmVycmlk
ZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAKaW5kZXggM2YxNDFmNWEwZmUxYTMyMDk4NGJj
NjYwNjAyMTA4NTEyMjQ2ZDVlMi4uYjNhYTQ2YjllOTlmZDE4NzE3MDNjZDA5ZjBmOTlkNGEwN2E1
YjZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC02MCwxMyArNjEsMjAgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiAgICAgaWYgKCFTZXR0aW5nczo6c2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9BdWRpbykgfHwgaGFzKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpBdWRpbykpIHsKLSAgICAgICAgaWYgKGNhblByb2R1Y2VBdWRpbygpKQot
ICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVk
aW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpBbWJp
ZW50U291bmQpOwotICAgIH0gZWxzZSBpZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJB
dWRpbykpCisgICAgYm9vbCBoYXNBdWRpb01lZGlhVHlwZSA9IGZhbHNlOworICAgIGJvb2wgaGFz
QXVkaWJsZUF1ZGlvT3JWaWRlb01lZGlhVHlwZSA9IGFueU9mU2Vzc2lvbnMoW3RoaXMsIGhhc0F1
ZGlvTWVkaWFUeXBlXSAoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24sIHNpemVfdCkgbXV0
YWJsZSB7CisgICAgICAgIGF1dG8gdHlwZSA9IHNlc3Npb24ubWVkaWFUeXBlKCk7CisgICAgICAg
IGlmICh0eXBlID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlb0F1ZGlvIHx8IHR5cGUgPT0g
UGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvIHx8IHR5cGUgPT0gUGxhdGZvcm1NZWRpYVNlc3Np
b246OldlYkF1ZGlvKQorICAgICAgICAgICAgaGFzQXVkaW9NZWRpYVR5cGUgPSB0cnVlOworICAg
ICAgICByZXR1cm4gKHR5cGUgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvQXVkaW8gfHwg
dHlwZSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pICYmIHNlc3Npb24uY2FuUHJvZHVj
ZUF1ZGlvKCk7CisgICAgfSk7CisKKyAgICBpZiAoaGFzQXVkaWJsZUF1ZGlvT3JWaWRlb01lZGlh
VHlwZSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnko
QXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKTsKKyAgICBlbHNlIGlmIChoYXNBdWRpb01lZGlh
VHlwZSkKICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnko
QXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQpOworICAgIGVsc2UKKyAgICAgICAgQXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpOb25lKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMjdlZjkzNDU2NTE1ZjlmZjgxZmEzZTU0YWUzYTM5ZjE4ODY1ZDVhYy4uNmFhNzg0ZGNk
MzE3MjdhZmIzOTZkNWU3MDJmMDExZDA1ZGQzODIyNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAxLTI2ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEF1dG9wbGF5IG11dGVk
IHZpZGVvcyBzdG9wIHBsYXliYWNrIG9mIGFueSBzdHJlYW1pbmcgYXBwIGluIHRoZSBiYWNrZ3Jv
dW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM5
OTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDIwNDMxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lv
cy92aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1sOiBBZGRlZC4KKwogMjAx
Ni0xMi0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c2NoZW1lIGZvciBNb2JpbGVNaW5pQnJvd3NlclVJVGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggODViNTAzNjIwNTQ5ZjZkNjEwOTkwNWMwZDVmM2Q3Mzc0OTljYjYwNC4uMzE5NjFiMjUy
MWExMzNlY2U4NDY5OGZlYzE5NDA3NGFiNzU0MjFlZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTUxMiw2ICs1MTIsNyBAQAogCQlDOTlCNjc1QzFFMzk3MjFBMDBGQzZDODAgLyogYXV0b3Bs
YXktd2l0aC1jb250cm9scy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM5OUI2NzVBMUUzOTcxRkMwMEZDNkM4MCAvKiBhdXRvcGxheS13
aXRoLWNvbnRyb2xzLmh0bWwgKi87IH07CiAJCUM5OUI2NzVEMUUzOTcyMjAwMEZDNkM4MCAvKiBq
cy1wbGF5LXdpdGgtY29udHJvbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTlCNjc1QjFFMzk3MUZDMDBGQzZDODAgLyoganMtcGxh
eS13aXRoLWNvbnRyb2xzLmh0bWwgKi87IH07CiAJCUM5OUI2NzVGMUUzOTczNkYwMEZDNkM4MCAv
KiBuby1hdXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzk5QjY3NUUxRTM5NzM1QzAwRkM2QzgwIC8q
IG5vLWF1dG9wbGF5LXdpdGgtY29udHJvbHMuaHRtbCAqLzsgfTsKKwkJQ0QzMjFCMDQxRTNBODVG
QTAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMjFC
MDMxRTNBODRCNzAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlv
Lmh0bWwgKi87IH07CiAJCUNENTlGNTM0MTlFOTExMEQwMENGMTgzNSAvKiBmaWxlLXdpdGgtbXNl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q1OUY1MzIxOUU5MTBBQTAwQ0YxODM1IC8qIGZpbGUtd2l0aC1tc2UuaHRtbCAqLzsgfTsK
IAkJQ0Q1OUY1MzUxOUU5MTEwRDAwQ0YxODM1IC8qIHRlc3QtbXNlLm1wNCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU5RjUzMzE5RTkxMEJD
MDBDRjE4MzUgLyogdGVzdC1tc2UubXA0ICovOyB9OwogCQlDRDc4RTExRDFEQjdFQTY2MDAxNEEy
REUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5E
ZWxlZ2F0ZS5tbSAqLzsgfTsKQEAgLTYxMyw2ICs2MTQsNyBAQAogCQkJCUM5OUI2NzVGMUUzOTcz
NkYwMEZDNkM4MCAvKiBuby1hdXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQzk5QjY3NUQxRTM5NzIyMDAwRkM2QzgwIC8qIGpzLXBsYXktd2l0aC1j
b250cm9scy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5OUI2NzVDMUUzOTcyMUEw
MEZDNkM4MCAvKiBhdXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCisJCQkJQ0QzMjFCMDQxRTNBODVGQTAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVk
aW8tYW5kLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzk1OTg0Rjcx
RTM2QkNFRjAwMkMwRDQ1IC8qIHRlc3Qtd2l0aG91dC1hdWRpby10cmFjay5tcDQgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJQzk1OTg0RjQxRTM2QkM2QjAwMkMwRDQ1IC8qIGF1dG9wbGF5LWNo
ZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzk1OTg0RjUxRTM2QkM2QjAwMkMw
RDQ1IC8qIGF1dG9wbGF5LW5vLWF1ZGlvLWNoZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xMjg0LDYgKzEyODYsNyBAQAogCQlDOTlCNjc1QjFFMzk3MUZDMDBGQzZDODAgLyoganMt
cGxheS13aXRoLWNvbnRyb2xzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAianMt
cGxheS13aXRoLWNvbnRyb2xzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
OTlCNjc1RTFFMzk3MzVDMDBGQzZDODAgLyogbm8tYXV0b3BsYXktd2l0aC1jb250cm9scy5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm5vLWF1dG9wbGF5LXdpdGgtY29udHJvbHMu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjI1QzA3MUM0NUE2OTIwMDE0
MDc2MSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGFyc2VkQ29udGVudFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QzMjFCMDMxRTNBODRCNzAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVk
aW8tYW5kLXdlYmF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAidmlkZW8t
d2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENTM5M0M3MTc1N0JBOTcwMEMwNzEyMyAvKiBNRDUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTUQ1LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q1MzkzQzkxNzU3QkFDNDAwQzA3MTIzIC8qIFNIQTEuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU0hBMS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENTQ1MUU5MTlFNDFGOUQwMDE2OTM2RiAvKiBDU1NQYXJzZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUGFyc2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzUsNiArMjIzOCw3IEBACiAJCQkJQ0RDOEU0OEIxQkM1
Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCAqLywKIAkJCQlDREM4RTQ4
QzFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5tcDQgKi8sCiAJCQkJQ0RC
NDExNTkxRTA5REE4RTAwRUFEMzUyIC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8uaHRtbCAqLywK
KwkJCQlDRDMyMUIwMzFFM0E4NEI3MDBFQjIxQzggLyogdmlkZW8td2l0aC1tdXRlZC1hdWRpby1h
bmQtd2ViYXVkaW8uaHRtbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9BdWRpb1Nlc3Npb25DYXRlZ29yeUlPUy5tbQppbmRleCBj
MzRhYzNiNjJiOGQ1OTE2OWY4NjZiM2IwMDYzOWI0Yzk3ODE5NDFkLi45NGMwMDg0MzUyMDlmMDIy
Mzc4ZGI5ZTY5Yzg3NmNhYjlmZTA3N2ZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9pb3MvQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TLm1t
CkBAIC05Nyw2ICs5NywxNCBAQCBURVNUKFdlYktpdDEsIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9T
KQogICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKIAogICAgIEVYUEVDVF9XS19TVFJF
UShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFWQXVkaW9TZXNzaW9u
Q2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKKworICAgIGRpZEJlZ2luUGxheWlu
ZyA9IGZhbHNlOworCisgICAgW3VpV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ2aWRl
by13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpbyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKKworICAgIFV0aWw6OnJ1
bigmZGlkQmVnaW5QbGF5aW5nKTsKKworICAgIEVYUEVDVF9XS19TVFJFUShnZXRBVkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJ
bnN0YW5jZV0gY2F0ZWdvcnldKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlv
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1t
dXRlZC1hdWRpby1hbmQtd2ViYXVkaW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDgxNWFkMmRjZjgyOWRh
NzU4NGMxYzk5NjUxYWYxY2Y1YjVhZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1
ZGlvLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZ28oKSB7CisgICAgICAg
ICAgICB2YXIgYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgICAg
ICAgICAgYXVkaW9Db250ZXh0LnJlc3VtZSgpOworCisgICAgICAgICAgICB2YXIgdmlkZW8gPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKyAgICAgICAgICAgIHZp
ZGVvLnBsYXkoKS50aGVuKHBsYXlpbmcpLmNhdGNoKG5vdFBsYXlpbmcpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gcGxheWluZygpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAgICAgfSBjYXRj
aChlKSB7IH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJnbygpIj4KKyAgICAgICAgPHZpZGVvIHNyYz0idmlkZW8td2l0aC1hdWRp
by5tcDQiIG11dGVkIHdlYmtpdC1wbGF5c2lubGluZT48L3ZpZGVvPgorICAgIDwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>