<?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>133366</bug_id>
          
          <creation_ts>2014-05-28 17:10:54 -0700</creation_ts>
          <short_desc>send external playback properties to fullscreen.</short_desc>
          <delta_ts>2014-10-21 23:30:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>daima.cn</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012323</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-28 17:10:54 -0700</bug_when>
    <thetext>send external playback properties to fullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012325</commentid>
    <comment_count>1</comment_count>
      <attachid>232224</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-28 17:27:12 -0700</bug_when>
    <thetext>Created attachment 232224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012326</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-28 17:28:58 -0700</bug_when>
    <thetext>radar://16733415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012328</commentid>
    <comment_count>3</comment_count>
      <attachid>232224</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-05-28 18:12:03 -0700</bug_when>
    <thetext>Comment on attachment 232224
Patch

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

This looks fine to me, but I am not a WK2 reviewer so you will need get someone else to do the formal r+

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:677
&gt; +void WebVideoFullscreenInterfaceAVKit::setExternalPlayback(bool enabled, String type, String name)

Nit: something like &quot;localizedDeviceName&quot; would be a better name.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:125
&gt; +        || *eventType == eventNames().pauseEvent
&gt; +        || *eventType == eventNames().playEvent
&gt; +        || *eventType == eventNames().ratechangeEvent)

Nit: breaking this line and not the others is odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012458</commentid>
    <comment_count>4</comment_count>
      <attachid>232254</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-29 11:00:51 -0700</bug_when>
    <thetext>Created attachment 232254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012459</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-29 11:01:51 -0700</bug_when>
    <thetext>smfr, please review the WK2 parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012467</commentid>
    <comment_count>6</comment_count>
      <attachid>232254</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-29 11:40:15 -0700</bug_when>
    <thetext>Comment on attachment 232254
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:683
&gt; +    AVPlayerControllerExternalPlaybackType externalPlaybackType = AVPlayerControllerExternalPlaybackTypeNone;
&gt; +    if (type == &quot;airplay&quot;)
&gt; +        externalPlaybackType = AVPlayerControllerExternalPlaybackTypeAirPlay;
&gt; +    else if (type == &quot;tvout&quot;)
&gt; +        externalPlaybackType = AVPlayerControllerExternalPlaybackTypeTVOut;

Can&apos;t we use an enum for these types?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:686
&gt; +    playerController().externalPlaybackAirPlayDeviceLocalizedName = localizedDeviceName;
&gt; +    playerController().externalPlaybackType = externalPlaybackType;

Why do you set these if enabled == false?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h:54
&gt; +    void updateState(const WTF::AtomicString*);

Unclear what the AtomicString represents. States are usually enum values.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:82
&gt; +    static NeverDestroyed&lt;Vector&lt;AtomicString&gt;&gt; events;
&gt; +
&gt; +    if (!events.get().size()) {
&gt; +        events.get().append(eventNames().durationchangeEvent);
&gt; +        events.get().append(eventNames().pauseEvent);
&gt; +        events.get().append(eventNames().playEvent);
&gt; +        events.get().append(eventNames().ratechangeEvent);
&gt; +        events.get().append(eventNames().timeupdateEvent);
&gt; +        events.get().append(eventNames().addtrackEvent);
&gt; +        events.get().append(eventNames().removetrackEvent);
&gt; +        events.get().append(eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent);
&gt; +    }

You should move this into a getter that inits the static the first time.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:99
&gt; +    updateState(nullptr);

Very unclear what this means.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:114
&gt; +void WebVideoFullscreenModelMediaElement::updateState(const WTF::AtomicString* eventType)

This needs to be called updateFromEvent() or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012687</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-30 14:58:34 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 232254 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232254&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:683
&gt; &gt; +    AVPlayerControllerExternalPlaybackType externalPlaybackType = AVPlayerControllerExternalPlaybackTypeNone;
&gt; &gt; +    if (type == &quot;airplay&quot;)
&gt; &gt; +        externalPlaybackType = AVPlayerControllerExternalPlaybackTypeAirPlay;
&gt; &gt; +    else if (type == &quot;tvout&quot;)
&gt; &gt; +        externalPlaybackType = AVPlayerControllerExternalPlaybackTypeTVOut;
&gt; 
&gt; Can&apos;t we use an enum for these types?

Sure.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:686
&gt; &gt; +    playerController().externalPlaybackAirPlayDeviceLocalizedName = localizedDeviceName;
&gt; &gt; +    playerController().externalPlaybackType = externalPlaybackType;
&gt; 
&gt; Why do you set these if enabled == false?

Prevent hysteresis of the properties.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h:54
&gt; &gt; +    void updateState(const WTF::AtomicString*);
&gt; 
&gt; Unclear what the AtomicString represents. States are usually enum values.

renamed to updateForEventName()
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:82
&gt; &gt; +    static NeverDestroyed&lt;Vector&lt;AtomicString&gt;&gt; events;
&gt; &gt; +
&gt; &gt; +    if (!events.get().size()) {
&gt; &gt; +        events.get().append(eventNames().durationchangeEvent);
&gt; &gt; +        events.get().append(eventNames().pauseEvent);
&gt; &gt; +        events.get().append(eventNames().playEvent);
&gt; &gt; +        events.get().append(eventNames().ratechangeEvent);
&gt; &gt; +        events.get().append(eventNames().timeupdateEvent);
&gt; &gt; +        events.get().append(eventNames().addtrackEvent);
&gt; &gt; +        events.get().append(eventNames().removetrackEvent);
&gt; &gt; +        events.get().append(eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent);
&gt; &gt; +    }
&gt; 
&gt; You should move this into a getter that inits the static the first time.

done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:99
&gt; &gt; +    updateState(nullptr);
&gt; 
&gt; Very unclear what this means.

now uses a specific &quot;allEvents&quot; name.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:114
&gt; &gt; +void WebVideoFullscreenModelMediaElement::updateState(const WTF::AtomicString* eventType)
&gt; 
&gt; This needs to be called updateFromEvent() or something.

ok: updateForEventName()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012691</commentid>
    <comment_count>8</comment_count>
      <attachid>232307</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-30 15:51:03 -0700</bug_when>
    <thetext>Created attachment 232307
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012705</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-30 17:11:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 232224 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232224&amp;action=review
&gt; 
&gt; This looks fine to me, but I am not a WK2 reviewer so you will need get someone else to do the formal r+
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:677
&gt; &gt; +void WebVideoFullscreenInterfaceAVKit::setExternalPlayback(bool enabled, String type, String name)
&gt; 
&gt; Nit: something like &quot;localizedDeviceName&quot; would be a better name.

done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:125
&gt; &gt; +        || *eventType == eventNames().pauseEvent
&gt; &gt; +        || *eventType == eventNames().playEvent
&gt; &gt; +        || *eventType == eventNames().ratechangeEvent)
&gt; 
&gt; Nit: breaking this line and not the others is odd.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012717</commentid>
    <comment_count>10</comment_count>
      <attachid>232307</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-05-30 18:52:16 -0700</bug_when>
    <thetext>Comment on attachment 232307
Patch for landing

Attempting to cancel the commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013005</commentid>
    <comment_count>11</comment_count>
      <attachid>232307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-02 14:13:43 -0700</bug_when>
    <thetext>Comment on attachment 232307
Patch for landing

Clearing flags on attachment: 232307

Committed r169545: &lt;http://trac.webkit.org/changeset/169545&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232224</attachid>
            <date>2014-05-28 17:27:12 -0700</date>
            <delta_ts>2014-05-29 11:00:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133366-20140528172648.patch</filename>
            <type>text/plain</type>
            <size>19172</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMzNjY2ZWEyMWY1ZmM0
MDg5OGU4YWYwMzE2NTIyYTRjODYzNTYyOC4uZjgxZTFmMGIyNGViYjQwMTZiNGI4ODc3ZWRmZGQy
OTU0Yjc3ZjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA1LTI4ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kIGV4dGVybmFsIHBs
YXliYWNrIHByb3BlcnRpZXMgdG8gZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzM2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHByb3BlcnR5IHVwZGF0ZXMgaW4gV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQgYW5kIHVwZGF0ZQorICAgICAgICBzZXRF
eHRlcm5hbFBsYXliYWNrIG9uIHdlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3Nj
aGFuZ2VkRXZlbnQuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIGV4cG9ydCBmb3Ig
c2V0RXh0ZXJuYWxQbGF5YmFjay4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDog
bWFrZSBtZWRpYUNvbnRyb2xzSG9zdCBwdWJsaWMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjptZWRpYUNvbnRyb2xzSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOiBhZGQgc2V0RXh0ZXJuYWxQbGF5YmFjaworICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOiBh
ZGQgc2V0RXh0ZXJuYWxQbGF5YmFjaworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGlzUGxheWluZ09uRXh0ZXJuYWxTY3JlZW5dKToKKyAgICAgICAgKCtbV2ViQVZQbGF5ZXJD
b250cm9sbGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nUGxheWluZ09uRXh0ZXJuYWxTY3Jl
ZW5dKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRFeHRl
cm5hbFBsYXliYWNrKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oOiBhZGQgdXBkYXRlU3RhdGUKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW06CisgICAgICAg
IChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVkaWFFbGVtZW50KTog
cmVmYWN0b3IgcHJvcGVydHkgY2hhbmdlcyBpbnRvIHVwZGF0ZVN0YXRlKCkKKyAgICAgICAgKFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpoYW5kbGVFdmVudCk6IHJlZmFjdG9y
IHByb3BlcnR5IGNoYW5nZXMgaW50byB1cGRhdGVTdGF0ZSgpCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlU3RhdGUpOiByZW1vdmUgZHVwbGljYXRl
IGNvZGUsIGltcGxlbWVudCBmb3Igc2V0RXh0ZXJuYWxQbGF5YmFjaworCiAyMDE0LTA1LTI3ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTGlzdHMg
c3R5bGVkIHdpdGggU1ZHIGZvbnRzIGFyZSBub3QgcmVuZGVyZWQgYXMgZXhwZWN0ZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmYTBiN2I2NjU4ZjM2NjQ5Y2RhYzg0NWE5MDMzMzA5OTFmNmIyMjY4Li5jNGM5ZThl
M2Y1NjA4MmY1MjY5YTRkYzE3YzYzYjQ4YWRmOWFiYWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTQtMDUtMjggIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisg
ICAgICAgIFNlbmQgZXh0ZXJuYWwgcGxheWJhY2sgcHJvcGVydGllcyB0byBmdWxsc2NyZWVuLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMzY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBz
ZXRFeHRlcm5hbFBsYXliYWNrLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IGFkZCBzZXRFeHRlcm5hbFBsYXliYWNr
CisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOiBh
ZGQgc2V0RXh0ZXJuYWxQbGF5YmFjaworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW06IGFkZCBzZXRFeHRlcm5hbFBsYXliYWNrCisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEV4dGVybmFsUGxheWJhY2spOiBh
ZGRlZAorCiAyMDE0LTA1LTI3ICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBbd2syXSBQREZQbHVnaW4gc25hcHNob3RzIGFyZSBtaXNwbGFjZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZjRiZmUyYmY2MjdlNGZlMTk0OGJiOTA3YTFlYmEyYjlm
NTJkNWJhMi4uOGQ4YzE1YWM0MzFlMTA5NjFiMTQ0MDMzMmM3YTNlMzY1ZTQ2OTE3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTMzODQsNiArMzM4NCw3IEBAIF9fWk43V2ViQ29yZTMyV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNHNldEN1cnJlbnRUaW1lRWRkCiBfX1pON1dlYkNv
cmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVlbnRlckZ1bGxzY3JlZW5FUjdD
QUxheWVyTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05TXzEwVGltZVJhbmdlc0UKIF9fWk43V2Vi
Q29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxOHNldFZpZGVvRGltZW5zaW9u
c0ViZmYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxOXNl
dEV4dGVybmFsUGxheWJhY2tFYk4zV1RGNlN0cmluZ0VTMl8KIF9fWk43V2ViQ29yZTMyV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyNnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsRVBO
U18yM1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDI4cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbkV2CiBfX1pO
N1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MjlzZXRBdWRpb01lZGlh
U2VsZWN0aW9uT3B0aW9uc0VSS04zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFTlMxXzE1Q3Jh
c2hPbk92ZXJmbG93RUVFeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRl
eCAyODU2Zjk5NmVhODcxMzU4OGMyZmRiMWMxN2IzNDE3NmNmYjhmNDc4Li5lNjQ1ZGMzMzEyZjY0
ZjAwMjY3ZDU0ZTAyN2Q5YWRlODVmM2U1N2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaApAQCAtNDM1LDYgKzQzNSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhZ2VTY2Fs
ZUZhY3RvckNoYW5nZWQoKTsKICNlbmRpZgogCisgICAgTWVkaWFDb250cm9sc0hvc3QqIG1lZGlh
Q29udHJvbHNIb3N0KCkgeyByZXR1cm4gbV9tZWRpYUNvbnRyb2xzSG9zdC5nZXQoKTsgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBib29sKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlLmgKaW5kZXggNGJhYzFhNGRjOGY3MWY4MjM0NGY5MGRhMjI3YWVhMzVlNDNmNTE2Ni4u
YWY4ODVjOGEzOThhYjMxZGJlMDNkNDE5MTA5ODBmYWE3NGVjODRjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNlZWth
YmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1
aW50NjRfdCBzZWxlY3RlZEluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExlZ2libGVN
ZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2
NF90IHNlbGVjdGVkSW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0ZXJuYWxQbGF5
YmFjayhib29sIGVuYWJsZWQsIFN0cmluZyB0eXBlLCBTdHJpbmcgbmFtZSkgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCBmMjI5NTVjMGQ2ZTViYTI5NTMyMDdm
Y2VhNWUxNDAwYzA0Zjg1NjZmLi40ZTNjMWVkYzA5MDcyZjc5NWE4ODY0NTA5ODg0ZGYyMDJkMDNh
NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODMsNiArODMsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMm
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlv
bnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVu
YWJsZWQsIFN0cmluZyB0eXBlLCBTdHJpbmcgbmFtZSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImLCBXZWJDb3JlOjpJbnRSZWN0IGlu
aXRpYWxSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCBmaW5hbFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDVkYjU2
OTdkNDM4NWY1YWE5YjBjNDg2ZDBmZjFhNTJiNWFkYTVjNzAuLjNhMjFmNzQzZGNkNGJkMTY5ODMw
YzZkODMwZWZjNTc1NzY2ZDE0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAg
LTEyMSw2ICsxMjEsMTEgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUlu
ZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAocmV0YWluKSBOU0FycmF5ICpsZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zOwogQHByb3BlcnR5IChyZXRhaW4pIFdlYkFWTWVkaWFTZWxlY3Rp
b25PcHRpb24gKmN1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb247CiAKK0Bwcm9wZXJ0
eSAocmVhZG9ubHksIGdldHRlcj1pc1BsYXlpbmdPbkV4dGVybmFsU2NyZWVuKSBCT09MIHBsYXlp
bmdPbkV4dGVybmFsU2NyZWVuOworQHByb3BlcnR5IChnZXR0ZXI9aXNFeHRlcm5hbFBsYXliYWNr
QWN0aXZlKSBCT09MIGV4dGVybmFsUGxheWJhY2tBY3RpdmU7CitAcHJvcGVydHkgQVZQbGF5ZXJD
b250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5cGUgZXh0ZXJuYWxQbGF5YmFja1R5cGU7CitAcHJv
cGVydHkgKHJldGFpbikgTlNTdHJpbmcgKmV4dGVybmFsUGxheWJhY2tBaXJQbGF5RGV2aWNlTG9j
YWxpemVkTmFtZTsKKwogLSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3
Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNob3VsZEV4aXRGdWxsU2NyZWVuV2l0
aFJlYXNvbjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29uKXJlYXNv
bjsKIEBlbmQKIApAQCAtNDQyLDYgKzQ0NywxNiBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1l
ZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIHNlbGYuZGVsZWdhdGUtPnNlbGVj
dExlZ2libGVNZWRpYU9wdGlvbihpbmRleCAhPSBOU05vdEZvdW5kID8gaW5kZXggOiBVSU5UNjRf
TUFYKTsKIH0KIAorLSAoQk9PTClpc1BsYXlpbmdPbkV4dGVybmFsU2NyZWVuCit7CisgICAgcmV0
dXJuIFtzZWxmIGlzRXh0ZXJuYWxQbGF5YmFja0FjdGl2ZV07Cit9CisKKysgKE5TU2V0ICopa2V5
UGF0aHNGb3JWYWx1ZXNBZmZlY3RpbmdQbGF5aW5nT25FeHRlcm5hbFNjcmVlbgoreworICAgIHJl
dHVybiBbTlNTZXQgc2V0V2l0aE9iamVjdHM6QCJleHRlcm5hbFBsYXliYWNrQWN0aXZlIiwgbmls
XTsKK30KKwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gOiBO
U09iamVjdApAQCAtNjU5LDYgKzY3NCwyMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlYwogICAg
ICAgICBwbGF5ZXJDb250cm9sbGVyKCkuY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlv
biA9IHdlYk9wdGlvbnNbKHNpemVfdClzZWxlY3RlZEluZGV4XTsKIH0KIAordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJs
ZWQsIFN0cmluZyB0eXBlLCBTdHJpbmcgbmFtZSkKK3sKKyAgICBBVlBsYXllckNvbnRyb2xsZXJF
eHRlcm5hbFBsYXliYWNrVHlwZSBleHRlcm5hbFBsYXliYWNrVHlwZSA9IEFWUGxheWVyQ29udHJv
bGxlckV4dGVybmFsUGxheWJhY2tUeXBlTm9uZTsKKyAgICBpZiAodHlwZSA9PSAiYWlycGxheSIp
CisgICAgICAgIGV4dGVybmFsUGxheWJhY2tUeXBlID0gQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJu
YWxQbGF5YmFja1R5cGVBaXJQbGF5OworICAgIGVsc2UgaWYgKHR5cGUgPT0gInR2b3V0IikKKyAg
ICAgICAgZXh0ZXJuYWxQbGF5YmFja1R5cGUgPSBBVlBsYXllckNvbnRyb2xsZXJFeHRlcm5hbFBs
YXliYWNrVHlwZVRWT3V0OworCisgICAgcGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJh
Y2tBaXJQbGF5RGV2aWNlTG9jYWxpemVkTmFtZSA9IG5hbWU7CisgICAgcGxheWVyQ29udHJvbGxl
cigpLmV4dGVybmFsUGxheWJhY2tUeXBlID0gZXh0ZXJuYWxQbGF5YmFja1R5cGU7CisgICAgcGxh
eWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tBY3RpdmUgPSBlbmFibGVkOworICAgIFtt
X3ZpZGVvTGF5ZXJDb250YWluZXIuZ2V0KCkgc2V0SGlkZGVuOmVuYWJsZWRdOworfQorCiB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZv
cm1MYXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKIHsKICAg
ICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVj
dCh0aGlzKTsKQEAgLTY3Myw2ICs3MDIsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcgogICAg
ICAgICBbbV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICAgICAgCiAgICAg
ICAgIG1fdmlkZW9MYXllckNvbnRhaW5lciA9IFtXZWJBVlZpZGVvTGF5ZXIgdmlkZW9MYXllcl07
CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0SGlkZGVuOnBsYXllckNvbnRyb2xs
ZXIoKS5leHRlcm5hbFBsYXliYWNrQWN0aXZlXTsKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRh
aW5lciBhZGRTdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOwogICAgICAgICAKICAgICAgICAg
Q0dTaXplIHZpZGVvU2l6ZSA9IHBsYXllckNvbnRyb2xsZXIoKS5jb250ZW50RGltZW5zaW9uczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKaW5kZXggNDQzOTY1MmVhNDFlMjcxNzQy
OWU4ZDkzODg5NGQ3ZWVmZjFkZTljOS4uMjBlOGVhYTBiOTBjMDhlNjE4OWNjOWIxOTlmZGQ0ZWIz
OTI0YjBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKQEAgLTUxLDYgKzUx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1M
YXllciopOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgV2ViQ29yZTo6RXZlbnQqKSBvdmVycmlkZTsKKyAgICB2b2lk
IHVwZGF0ZVN0YXRlKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nKik7CiAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIHJocykgb3ZlcnJpZGUKICAgICAgICAge3JldHVybiBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudExpc3RlbmVyKj4odGhpcykgPT0gJnJoczt9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCA0OWQxMjA0ZmE1MzM2Yjg1ODk3
NTA4Y2M4NmFiMzNlMTMyMTg2NTEwLi5kNGFiYmI5MTMxMTVhMzFlZGUzYWQ0MWJhMWNiYzhjYjkz
MzBiMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkxvZ2dpbmcu
aCIKKyNpbXBvcnQgIk1lZGlhQ29udHJvbHNIb3N0LmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvRE9NRXZlbnRMaXN0ZW5lci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9FdmVudC5oPgpAQCAtNDYsOCArNDcsMTAgQEAKICNpbXBvcnQgPFdl
YkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+
CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCisKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQoKQpAQCAtNjUsMTQgKzY4LDIyIEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChI
VE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgaWYgKG1fbWVkaWFFbGVtZW50ID09IG1lZGlhRWxl
bWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3Rv
cjxBdG9taWNTdHJpbmc+PiBldmVudHM7CisKKyAgICBpZiAoIWV2ZW50cy5nZXQoKS5zaXplKCkp
IHsKKyAgICAgICAgZXZlbnRzLmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkuZHVyYXRpb25jaGFu
Z2VFdmVudCk7CisgICAgICAgIGV2ZW50cy5nZXQoKS5hcHBlbmQoZXZlbnROYW1lcygpLnBhdXNl
RXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMoKS5wbGF5RXZl
bnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMoKS5yYXRlY2hhbmdl
RXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMoKS50aW1ldXBk
YXRlRXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMoKS5hZGR0
cmFja0V2ZW50KTsKKyAgICAgICAgZXZlbnRzLmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkucmVt
b3ZldHJhY2tFdmVudCk7CisgICAgICAgIGV2ZW50cy5nZXQoKS5hcHBlbmQoZXZlbnROYW1lcygp
LndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkRXZlbnQpOworICAg
IH0KKwogICAgIGlmIChtX21lZGlhRWxlbWVudCAmJiBtX2lzTGlzdGVuaW5nKSB7Ci0gICAgICAg
IG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5kdXJhdGlv
bmNoYW5nZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1v
dmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5wYXVzZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0g
ICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5w
bGF5RXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnJlbW92ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnJhdGVjaGFuZ2VFdmVudCwgdGhpcywgZmFsc2UpOwot
ICAgICAgICBtX21lZGlhRWxlbWVudC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
dGltZXVwZGF0ZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5y
ZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50LCB0aGlzLCBmYWxz
ZSk7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5yZW1vdmV0cmFja0V2ZW50LCB0aGlzLCBmYWxzZSk7CisgICAgICAgIGZvciAoYXV0byBl
dmVudCA6IGV2ZW50cy5nZXQoKSkKKyAgICAgICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgfQogICAgIG1faXNMaXN0ZW5p
bmcgPSBmYWxzZTsKIApAQCAtODEsMjIgKzkyLDExIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRp
CiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9tZWRp
YUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmR1cmF0aW9uY2hhbmdlRXZl
bnQsIHRoaXMsIGZhbHNlKTsKLSAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWVzKCkucGF1c2VFdmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1fbWVkaWFFbGVtZW50
LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5wbGF5RXZlbnQsIHRoaXMsIGZhbHNlKTsK
LSAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkucmF0ZWNo
YW5nZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1f
bWVkaWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50
LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLnJlbW92ZXRyYWNrRXZlbnQsIHRoaXMsIGZhbHNlKTsKKyAgICBmb3IgKGF1dG8g
ZXZlbnQgOiBldmVudHMuZ2V0KCkpCisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExp
c3RlbmVyKGV2ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgbV9pc0xpc3RlbmluZyA9IHRydWU7CiAK
LSAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0RHVyYXRpb24obV9tZWRpYUVsZW1l
bnQtPmR1cmF0aW9uKCkpOwotICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRTZWVr
YWJsZVJhbmdlcygqbV9tZWRpYUVsZW1lbnQtPnNlZWthYmxlKCkpOwotICAgIG1fdmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlLT5zZXRSYXRlKCFtX21lZGlhRWxlbWVudC0+cGF1c2VkKCksIG1fbWVk
aWFFbGVtZW50LT5wbGF5YmFja1JhdGUoKSk7Ci0KLSAgICB1cGRhdGVMZWdpYmxlT3B0aW9ucygp
OwotCi0gICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRUaW1lKG1fbWVk
aWFFbGVtZW50LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5
c3RlbVVwdGltZV0pOworICAgIHVwZGF0ZVN0YXRlKG51bGxwdHIpOwogCiAgICAgaWYgKGlzSFRN
TFZpZGVvRWxlbWVudChtX21lZGlhRWxlbWVudC5nZXQoKSkpIHsKICAgICAgICAgSFRNTFZpZGVv
RWxlbWVudCAqdmlkZW9FbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KG1fbWVkaWFFbGVtZW50
LmdldCgpKTsKQEAgLTEwNywyMyArMTA3LDQ2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OmhhbmRsZUV2ZW50KFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJDb3JlOjpFdmVudCogZXZlbnQpCiB7
Ci0gICAgaWYgKCFtX21lZGlhRWxlbWVudCB8fCAhbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2Up
Ci0gICAgICAgIHJldHVybjsKLQogICAgIExPRyhNZWRpYSwgImhhbmRsZUV2ZW50ICVzIiwgZXZl
bnQtPnR5cGUoKS5jaGFyYWN0ZXJzOCgpKTsKLSAgICAKLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuZHVyYXRpb25jaGFuZ2VFdmVudCkKKyAgICB1cGRhdGVTdGF0ZSgmZXZl
bnQtPnR5cGUoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1l
bnQ6OnVwZGF0ZVN0YXRlKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nKiBldmVudFR5cGUpCit7Cisg
ICAgaWYgKCFtX21lZGlhRWxlbWVudCB8fCAhbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghZXZlbnRUeXBlIHx8ICpldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLmR1cmF0aW9uY2hhbmdlRXZlbnQpCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlLT5zZXREdXJhdGlvbihtX21lZGlhRWxlbWVudC0+ZHVyYXRpb24oKSk7Ci0gICAg
ZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkucGF1c2VFdmVudAotICAgICAg
ICB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5wbGF5RXZlbnQKLSAgICAgICAgfHwg
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkucmF0ZWNoYW5nZUV2ZW50KQorCisgICAgaWYg
KCFldmVudFR5cGUKKyAgICAgICAgfHwgKmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkucGF1c2VF
dmVudAorICAgICAgICB8fCAqZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5wbGF5RXZlbnQKKyAg
ICAgICAgfHwgKmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkucmF0ZWNoYW5nZUV2ZW50KQogICAg
ICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0ZSghbV9tZWRpYUVsZW1lbnQt
PnBhdXNlZCgpLCBtX21lZGlhRWxlbWVudC0+cGxheWJhY2tSYXRlKCkpOwotICAgIGVsc2UgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCkgeworCisgICAg
aWYgKCFldmVudFR5cGUgfHwgKmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2
ZW50KSB7CiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRDdXJyZW50VGlt
ZShtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSwgW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJ
bmZvXSBzeXN0ZW1VcHRpbWVdKTsKICAgICAgICAgLy8gRklYTUU6IDEzMDc4OCAtIGZpbmQgYSBi
ZXR0ZXIgZXZlbnQgdG8gdXBkYXRlIHNlZWthYmxlIHJhbmdlcyBmcm9tLgogICAgICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0U2Vla2FibGVSYW5nZXMoKm1fbWVkaWFFbGVtZW50
LT5zZWVrYWJsZSgpKTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmFkZHRyYWNrRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkucmVtb3Zl
dHJhY2tFdmVudCkKKyAgICB9CisKKyAgICBpZiAoIWV2ZW50VHlwZSB8fCAqZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50IHx8ICpldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnJlbW92ZXRyYWNrRXZlbnQpCiAgICAgICAgIHVwZGF0ZUxlZ2libGVPcHRpb25zKCk7CisKKyAg
ICBpZiAoIWV2ZW50VHlwZSB8fCAqZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRjdXJy
ZW50cGxheWJhY2t0YXJnZXRpc3dpcmVsZXNzY2hhbmdlZEV2ZW50KSB7CisgICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbmUsIChBU0NJSUxpdGVyYWwoIm5v
bmUiKSkpOworCisgICAgICAgIGJvb2wgZW5hYmxlZCA9IG1fbWVkaWFFbGVtZW50LT5tZWRpYVNl
c3Npb24oKS5jdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCptX21lZGlhRWxlbWVudCk7
CisgICAgICAgIFN0cmluZyB0eXBlID0gbm9uZTsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisKKyAg
ICAgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5tZWRpYUNvbnRyb2xzSG9zdCgpKSB7CisgICAgICAg
ICAgICB0eXBlID0gbV9tZWRpYUVsZW1lbnQtPm1lZGlhQ29udHJvbHNIb3N0KCktPmV4dGVybmFs
RGV2aWNlVHlwZSgpOworICAgICAgICAgICAgbmFtZSA9IG1fbWVkaWFFbGVtZW50LT5tZWRpYUNv
bnRyb2xzSG9zdCgpLT5leHRlcm5hbERldmljZURpc3BsYXlOYW1lKCk7CisgICAgICAgIH0KKyAg
ICAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEV4dGVybmFsUGxheWJhY2soZW5h
YmxlZCwgdHlwZSwgbmFtZSk7CisgICAgfQogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2
aWRlb0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA1MGRkYjU1MGNhNDRjYTM2MWZlYWNmNTAyMDNjNGFkZTIzNDMzYmIyLi5iN2I4YjNkYjAx
NTlkYzNkODVlNDM3NjUyM2IwM2U5NzY3OGE0MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsNiArMjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldFNlZWthYmxlUmFuZ2VzVmVjdG9y
KFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiByYW5nZXMpOwogICAgIFNldEF1ZGlv
TWVkaWFTZWxlY3Rpb25PcHRpb25zKFZlY3RvcjxTdHJpbmc+IG9wdGlvbnMsIHVpbnQ2NF90IHNl
bGVjdGVkSW5kZXgpOwogICAgIFNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoVmVjdG9y
PFN0cmluZz4gb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCk7CisgICAgU2V0RXh0ZXJu
YWxQbGF5YmFjayhib29sIGVuYWJsZWQsIFN0cmluZyB0eXBlLCBTdHJpbmcgbmFtZSk7CiAgICAg
U2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcs
IGRvdWJsZSByYXRlKQogICAgIEVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xh
eWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5k
ZXggMzFlNzg3MTVkODgyMjA1ZTQ2NDk3YzI2MDdhZmVjMDRjZjg1NDVlNi4uZDE5MmE2ZDg4MDBk
NWIyMWY1NDVlMmFhN2NkZTQxZWU0MTA2YjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNzMs
NyArNzMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2Vz
KGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlv
bnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRp
b25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKLSAgICAKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIFN0cmluZyB0eXBlLCBTdHJp
bmcgbmFtZSkgb3ZlcnJpZGU7CisKICAgICAvLyBhZGRpdGlvbmFsIGluY29taW5nCiAgICAgdmly
dHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0
RnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZjZjMWE3YjQ0ODRhNDVkNGJk
ZGVkNmE3ZmU0NDEwOGNlZDBmYmYwYS4uMzYxN2ZiZWMzOTIxMDBhMGJkZmFlZjM4MzZiNDFlMGRi
MjFjMzAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0xNjAsNyArMTYwLDEyIEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9u
cyhjb25zdCBWZWN0b3I8U3RyCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMo
b3B0aW9ucywgc2VsZWN0ZWRJbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQotICAgIAorCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEV4dGVybmFsUGxheWJhY2soYm9vbCBl
bmFibGVkLCBTdHJpbmcgdHlwZSwgU3RyaW5nIG5hbWUpCit7CisgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEV4dGVybmFsUGxheWJh
Y2soZW5hYmxlZCwgdHlwZSwgbmFtZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAgbV9p
c0FuaW1hdGluZyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232254</attachid>
            <date>2014-05-29 11:00:51 -0700</date>
            <delta_ts>2014-05-29 11:40:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133366-20140529110027.patch</filename>
            <type>text/plain</type>
            <size>18533</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFlNmRhNTQyZTc0NGYx
ODA0OTE2N2E5ZWJkYjljNmUwMzgxYTkyOS4uZTYwMjUzZWNlNDExMWNiYzA2ZWIwZjkzYzY2NzVh
MGQxYjgyNTY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTI4ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kIGV4dGVybmFsIHBs
YXliYWNrIHByb3BlcnRpZXMgdG8gZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzM2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHByb3BlcnR5IHVwZGF0ZXMgaW4gV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQgYW5kIHVwZGF0ZQorICAgICAgICBzZXRF
eHRlcm5hbFBsYXliYWNrIG9uIHdlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3Nj
aGFuZ2VkRXZlbnQuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIGV4cG9ydCBmb3Ig
c2V0RXh0ZXJuYWxQbGF5YmFjay4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlLmg6IGFkZCBzZXRFeHRlcm5hbFBsYXliYWNrCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6IGFkZCBzZXRFeHRl
cm5hbFBsYXliYWNrCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgaXNQbGF5
aW5nT25FeHRlcm5hbFNjcmVlbl0pOiBhZGRlZAorICAgICAgICAoK1tXZWJBVlBsYXllckNvbnRy
b2xsZXIga2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3RpbmdQbGF5aW5nT25FeHRlcm5hbFNjcmVlbl0p
OiBhZGRlZAorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldEV4
dGVybmFsUGxheWJhY2spOiBhZGRlZCAKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4pOiBhZGRlZAorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oOiBhZGQgdXBkYXRlU3RhdGUK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1l
bnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0
TWVkaWFFbGVtZW50KTogcmVmYWN0b3IgcHJvcGVydHkgY2hhbmdlcyBpbnRvIHVwZGF0ZVN0YXRl
KCkKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpoYW5kbGVF
dmVudCk6IHJlZmFjdG9yIHByb3BlcnR5IGNoYW5nZXMgaW50byB1cGRhdGVTdGF0ZSgpCisgICAg
ICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlU3RhdGUpOiBy
ZW1vdmUgZHVwbGljYXRlIGNvZGUsIGltcGxlbWVudCBmb3Igc2V0RXh0ZXJuYWxQbGF5YmFjawor
CiAyMDE0LTA1LTI5ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAgICAg
ICBQZXJzZXJ2ZSBjYXB0aW9uIHNlbGVjdGlvbiBpbiBmdWxsc2NyZWVuLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDNhMDJjYTdjMThlZjc3ZGY5ZTcyZGY0YWRjM2VlNjE3OWY4YWI2YmYuLjYyODg4YzA0YTY0NDQ2
NjQxYjM1MTExZWNlZDZkM2M0NjJiZmM1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxNC0wNS0yOCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAg
U2VuZCBleHRlcm5hbCBwbGF5YmFjayBwcm9wZXJ0aWVzIHRvIGZ1bGxzY3JlZW4uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkIHNldEV4dGVy
bmFsUGxheWJhY2suCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogYWRkIHNldEV4dGVybmFsUGxheWJhY2sKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6IGFkZCBzZXRF
eHRlcm5hbFBsYXliYWNrCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbTogYWRkIHNldEV4dGVybmFsUGxheWJhY2sKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0RXh0ZXJuYWxQbGF5YmFjayk6IGFkZGVkCisK
IDIwMTQtMDUtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGEgc2FuZGJveCBwcm9maWxlIGZvciBjb20uYXBwbGUuYXBwc3RvcmUuQ29kZVJlZGVl
bWVyTmV0c2NhcGVQbHVnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYjUxMTMyMjExZDY0NmJl
ODBhYWQ1OTE5YTE2YzU0NDRkMjUxODVmOS4uNWQ0YzNiNjdlNmQ5MThhNmE0MTljYmRhYzM0NDM2
ZWVhMzdkYTZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMzODQsNiArMzM4NCw3IEBAIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNHNldEN1cnJlbnRU
aW1lRWRkCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVl
bnRlckZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUzMldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05TXzEwVGlt
ZVJhbmdlc0UKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQx
OHNldFZpZGVvRGltZW5zaW9uc0ViZmYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxOXNldEV4dGVybmFsUGxheWJhY2tFYk4zV1RGNlN0cmluZ0VTMl8KIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyNnNldFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsRVBOU18yM1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsRQogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI4cmVxdWVzdEhpZGVBbmRFeGl0
RnVsbHNjcmVlbkV2CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0MjlzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uc0VSS04zV1RGNlZlY3RvcklOUzFfNlN0
cmluZ0VMbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCmluZGV4
IDRiYWMxYTRkYzhmNzFmODIzNDRmOTBkYTIyN2FlYTM1ZTQzZjUxNjYuLjY2MTAxM2IwZmY4NjZk
MTFjMmIxMzRiZWRjZDY1NzhmY2Y3ZjU2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdlcyhjb25z
dCBUaW1lUmFuZ2VzJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb01lZGlhU2VsZWN0
aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0
ZWRJbmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25P
cHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZElu
ZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEV4dGVybmFsUGxheWJhY2soYm9vbCBlbmFi
bGVkLCBTdHJpbmcgdHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggZjIyOTU1YzBkNmU1YmEyOTUzMjA3
ZmNlYTVlMTQwMGMwNGY4NTY2Zi4uN2ZmZGQyNTYxNjUzZWMyNTliOTJlNTFiOWFhZDhjODU1NDYz
OGViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBUaW1lUmFuZ2Vz
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRl
eCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEV4dGVybmFsUGxheWJhY2soYm9vbCBl
bmFibGVkLCBTdHJpbmcgdHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiwgV2Vi
Q29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2Ny
ZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5tbQppbmRleCA1ZGI1Njk3ZDQzODVmNWFhOWIwYzQ4NmQwZmYxYTUyYjVhZGE1YzcwLi42YjNj
NzI5ZGFjODYwYTkwNjE5ODM1NjlmMzRmZjBkZmY2NzM5YmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lm1tCkBAIC0xMjEsNiArMTIxLDExIEBAIFNPRlRfTElOS19DT05TVEFOVChDb3Jl
TWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiBAcHJvcGVydHkgKHJldGFpbikgTlNB
cnJheSAqbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uczsKIEBwcm9wZXJ0eSAocmV0YWluKSBX
ZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICpjdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9uOwogCitAcHJvcGVydHkgKHJlYWRvbmx5LCBnZXR0ZXI9aXNQbGF5aW5nT25FeHRlcm5hbFNj
cmVlbikgQk9PTCBwbGF5aW5nT25FeHRlcm5hbFNjcmVlbjsKK0Bwcm9wZXJ0eSAoZ2V0dGVyPWlz
RXh0ZXJuYWxQbGF5YmFja0FjdGl2ZSkgQk9PTCBleHRlcm5hbFBsYXliYWNrQWN0aXZlOworQHBy
b3BlcnR5IEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBlIGV4dGVybmFsUGxh
eWJhY2tUeXBlOworQHByb3BlcnR5IChyZXRhaW4pIE5TU3RyaW5nICpleHRlcm5hbFBsYXliYWNr
QWlyUGxheURldmljZUxvY2FsaXplZE5hbWU7CisKIC0gKEJPT0wpcGxheWVyVmlld0NvbnRyb2xs
ZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciBzaG91bGRF
eGl0RnVsbFNjcmVlbldpdGhSZWFzb246KEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNj
cmVlblJlYXNvbilyZWFzb247CiBAZW5kCiAKQEAgLTQ0Miw2ICs0NDcsMTYgQEAgU09GVF9MSU5L
X0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBzZWxm
LmRlbGVnYXRlLT5zZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24oaW5kZXggIT0gTlNOb3RGb3VuZCA/
IGluZGV4IDogVUlOVDY0X01BWCk7CiB9CiAKKy0gKEJPT0wpaXNQbGF5aW5nT25FeHRlcm5hbFNj
cmVlbgoreworICAgIHJldHVybiBbc2VsZiBpc0V4dGVybmFsUGxheWJhY2tBY3RpdmVdOworfQor
CisrIChOU1NldCAqKWtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nUGxheWluZ09uRXh0ZXJuYWxT
Y3JlZW4KK3sKKyAgICByZXR1cm4gW05TU2V0IHNldFdpdGhPYmplY3RzOkAiZXh0ZXJuYWxQbGF5
YmFja0FjdGl2ZSIsIG5pbF07Cit9CisKIEBlbmQKIAogQGludGVyZmFjZSBXZWJBVk1lZGlhU2Vs
ZWN0aW9uT3B0aW9uIDogTlNPYmplY3QKQEAgLTY1OSw2ICs2NzQsMjAgQEAgdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9u
cyhjb25zdCBWZWMKICAgICAgICAgcGxheWVyQ29udHJvbGxlcigpLmN1cnJlbnRMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb24gPSB3ZWJPcHRpb25zWyhzaXplX3Qpc2VsZWN0ZWRJbmRleF07CiB9
CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldEV4dGVybmFsUGxh
eWJhY2soYm9vbCBlbmFibGVkLCBTdHJpbmcgdHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5h
bWUpCit7CisgICAgQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5cGUgZXh0ZXJu
YWxQbGF5YmFja1R5cGUgPSBBVlBsYXllckNvbnRyb2xsZXJFeHRlcm5hbFBsYXliYWNrVHlwZU5v
bmU7CisgICAgaWYgKHR5cGUgPT0gImFpcnBsYXkiKQorICAgICAgICBleHRlcm5hbFBsYXliYWNr
VHlwZSA9IEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBlQWlyUGxheTsKKyAg
ICBlbHNlIGlmICh0eXBlID09ICJ0dm91dCIpCisgICAgICAgIGV4dGVybmFsUGxheWJhY2tUeXBl
ID0gQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5cGVUVk91dDsKKworICAgIHBs
YXllckNvbnRyb2xsZXIoKS5leHRlcm5hbFBsYXliYWNrQWlyUGxheURldmljZUxvY2FsaXplZE5h
bWUgPSBsb2NhbGl6ZWREZXZpY2VOYW1lOworICAgIHBsYXllckNvbnRyb2xsZXIoKS5leHRlcm5h
bFBsYXliYWNrVHlwZSA9IGV4dGVybmFsUGxheWJhY2tUeXBlOworICAgIHBsYXllckNvbnRyb2xs
ZXIoKS5leHRlcm5hbFBsYXliYWNrQWN0aXZlID0gZW5hYmxlZDsKKyAgICBbbV92aWRlb0xheWVy
Q29udGFpbmVyLmdldCgpIHNldEhpZGRlbjplbmFibGVkXTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZp
ZGVvTGF5ZXIsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCiB7CiAgICAgX19ibG9jayBS
ZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CkBA
IC02NzMsNiArNzAyLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKICAgICAgICAgW21fdmlk
ZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CiAgICAgICAgIAogICAgICAgICBtX3ZpZGVv
TGF5ZXJDb250YWluZXIgPSBbV2ViQVZWaWRlb0xheWVyIHZpZGVvTGF5ZXJdOworICAgICAgICBb
bV92aWRlb0xheWVyQ29udGFpbmVyIHNldEhpZGRlbjpwbGF5ZXJDb250cm9sbGVyKCkuZXh0ZXJu
YWxQbGF5YmFja0FjdGl2ZV07CiAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgYWRkU3Vi
bGF5ZXI6bV92aWRlb0xheWVyLmdldCgpXTsKICAgICAgICAgCiAgICAgICAgIENHU2l6ZSB2aWRl
b1NpemUgPSBwbGF5ZXJDb250cm9sbGVyKCkuY29udGVudERpbWVuc2lvbnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbE1lZGlhRWxlbWVudC5oCmluZGV4IDQ0Mzk2NTJlYTQxZTI3MTc0MjllOGQ5Mzg4OTRk
N2VlZmYxZGU5YzkuLjIwZThlYWEwYjkwYzA4ZTYxODljYzliMTk5ZmRkNGViMzkyNGIwYTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqKTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFdlYkNvcmU6OkV2ZW50Kikgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVTdGF0
ZShjb25zdCBXVEY6OkF0b21pY1N0cmluZyopOwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBF
dmVudExpc3RlbmVyJiByaHMpIG92ZXJyaWRlCiAgICAgICAgIHtyZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RXZlbnRMaXN0ZW5lcio+KHRoaXMpID09ICZyaHM7fQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVs
ZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggM2RlMjllY2I2MjQyNTE2NWRlZTkyZTEyMTkzZTRj
MTdmYjlkNTc3MC4uOTY1OTQ3ZTE4YTVmZTk4YWFiNWM2Nzg5ZTJmNWUxYmU5MzViZWVmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtNDcsOCArNDcsMTAgQEAKICNp
bXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhy
ZWFkUnVuLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KKyNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCisKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQoKQpAQCAtNjYsMTQgKzY4
LDIyIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlh
RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgaWYgKG1fbWVkaWFFbGVtZW50ID09
IG1lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxBdG9taWNTdHJpbmc+PiBldmVudHM7CisKKyAgICBpZiAoIWV2ZW50cy5nZXQo
KS5zaXplKCkpIHsKKyAgICAgICAgZXZlbnRzLmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkuZHVy
YXRpb25jaGFuZ2VFdmVudCk7CisgICAgICAgIGV2ZW50cy5nZXQoKS5hcHBlbmQoZXZlbnROYW1l
cygpLnBhdXNlRXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMo
KS5wbGF5RXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMoKS5y
YXRlY2hhbmdlRXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFtZXMo
KS50aW1ldXBkYXRlRXZlbnQpOworICAgICAgICBldmVudHMuZ2V0KCkuYXBwZW5kKGV2ZW50TmFt
ZXMoKS5hZGR0cmFja0V2ZW50KTsKKyAgICAgICAgZXZlbnRzLmdldCgpLmFwcGVuZChldmVudE5h
bWVzKCkucmVtb3ZldHJhY2tFdmVudCk7CisgICAgICAgIGV2ZW50cy5nZXQoKS5hcHBlbmQoZXZl
bnROYW1lcygpLndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkRXZl
bnQpOworICAgIH0KKwogICAgIGlmIChtX21lZGlhRWxlbWVudCAmJiBtX2lzTGlzdGVuaW5nKSB7
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5kdXJhdGlvbmNoYW5nZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgICAgIG1fbWVkaWFFbGVt
ZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5wYXVzZUV2ZW50LCB0aGlzLCBm
YWxzZSk7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZXMoKS5wbGF5RXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQt
PnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnJhdGVjaGFuZ2VFdmVudCwgdGhpcywg
ZmFsc2UpOwotICAgICAgICBtX21lZGlhRWxlbWVudC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgICAgIG1fbWVkaWFF
bGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50LCB0
aGlzLCBmYWxzZSk7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS5yZW1vdmV0cmFja0V2ZW50LCB0aGlzLCBmYWxzZSk7CisgICAgICAgIGZv
ciAoYXV0byBldmVudCA6IGV2ZW50cy5nZXQoKSkKKyAgICAgICAgICAgIG1fbWVkaWFFbGVtZW50
LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgfQogICAgIG1f
aXNMaXN0ZW5pbmcgPSBmYWxzZTsKIApAQCAtODIsMjIgKzkyLDExIEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmR1cmF0aW9u
Y2hhbmdlRXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRM
aXN0ZW5lcihldmVudE5hbWVzKCkucGF1c2VFdmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1fbWVk
aWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5wbGF5RXZlbnQsIHRoaXMs
IGZhbHNlKTsKLSAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVz
KCkucmF0ZWNoYW5nZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV9tZWRpYUVsZW1lbnQtPmFk
ZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCwgdGhpcywgZmFsc2Up
OwotICAgIG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5hZGR0
cmFja0V2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLnJlbW92ZXRyYWNrRXZlbnQsIHRoaXMsIGZhbHNlKTsKKyAgICBm
b3IgKGF1dG8gZXZlbnQgOiBldmVudHMuZ2V0KCkpCisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5h
ZGRFdmVudExpc3RlbmVyKGV2ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgbV9pc0xpc3RlbmluZyA9
IHRydWU7CiAKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0RHVyYXRpb24obV9t
ZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCkpOwotICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
LT5zZXRTZWVrYWJsZVJhbmdlcygqbV9tZWRpYUVsZW1lbnQtPnNlZWthYmxlKCkpOwotICAgIG1f
dmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSYXRlKCFtX21lZGlhRWxlbWVudC0+cGF1c2Vk
KCksIG1fbWVkaWFFbGVtZW50LT5wbGF5YmFja1JhdGUoKSk7Ci0KLSAgICB1cGRhdGVMZWdpYmxl
T3B0aW9ucygpOwotCi0gICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRU
aW1lKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vz
c0luZm9dIHN5c3RlbVVwdGltZV0pOworICAgIHVwZGF0ZVN0YXRlKG51bGxwdHIpOwogCiAgICAg
aWYgKGlzSFRNTFZpZGVvRWxlbWVudChtX21lZGlhRWxlbWVudC5nZXQoKSkpIHsKICAgICAgICAg
SFRNTFZpZGVvRWxlbWVudCAqdmlkZW9FbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KG1fbWVk
aWFFbGVtZW50LmdldCgpKTsKQEAgLTEwOCwyMyArMTA3LDUxIEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50
KiBtZWRpCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OmhhbmRs
ZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJDb3JlOjpFdmVudCog
ZXZlbnQpCiB7Ci0gICAgaWYgKCFtX21lZGlhRWxlbWVudCB8fCAhbV92aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UpCi0gICAgICAgIHJldHVybjsKLQogICAgIExPRyhNZWRpYSwgImhhbmRsZUV2ZW50
ICVzIiwgZXZlbnQtPnR5cGUoKS5jaGFyYWN0ZXJzOCgpKTsKLSAgICAKLSAgICBpZiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZHVyYXRpb25jaGFuZ2VFdmVudCkKKyAgICB1cGRhdGVT
dGF0ZSgmZXZlbnQtPnR5cGUoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZVN0YXRlKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nKiBldmVudFR5
cGUpCit7CisgICAgaWYgKCFtX21lZGlhRWxlbWVudCB8fCAhbV92aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZXZlbnRUeXBlCisgICAgICAgIHx8
ICpldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmR1cmF0aW9uY2hhbmdlRXZlbnQpCiAgICAgICAg
IG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXREdXJhdGlvbihtX21lZGlhRWxlbWVudC0+
ZHVyYXRpb24oKSk7Ci0gICAgZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
cGF1c2VFdmVudAotICAgICAgICB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5wbGF5
RXZlbnQKLSAgICAgICAgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkucmF0ZWNoYW5n
ZUV2ZW50KQorCisgICAgaWYgKCFldmVudFR5cGUKKyAgICAgICAgfHwgKmV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkucGF1c2VFdmVudAorICAgICAgICB8fCAqZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5wbGF5RXZlbnQKKyAgICAgICAgfHwgKmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkucmF0
ZWNoYW5nZUV2ZW50KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0
ZSghbV9tZWRpYUVsZW1lbnQtPnBhdXNlZCgpLCBtX21lZGlhRWxlbWVudC0+cGxheWJhY2tSYXRl
KCkpOwotICAgIGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRpbWV1cGRh
dGVFdmVudCkgeworCisgICAgaWYgKCFldmVudFR5cGUKKyAgICAgICAgfHwgKmV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50KSB7CiAgICAgICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlLT5zZXRDdXJyZW50VGltZShtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUo
KSwgW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdKTsKICAgICAgICAg
Ly8gRklYTUU6IDEzMDc4OCAtIGZpbmQgYSBiZXR0ZXIgZXZlbnQgdG8gdXBkYXRlIHNlZWthYmxl
IHJhbmdlcyBmcm9tLgogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0U2Vl
a2FibGVSYW5nZXMoKm1fbWVkaWFFbGVtZW50LT5zZWVrYWJsZSgpKTsKLSAgICB9IGVsc2UgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFkZHRyYWNrRXZlbnQgfHwgZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkucmVtb3ZldHJhY2tFdmVudCkKKyAgICB9CisKKyAgICBpZiAo
IWV2ZW50VHlwZQorICAgICAgICB8fCAqZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5hZGR0cmFj
a0V2ZW50CisgICAgICAgIHx8ICpldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnJlbW92ZXRyYWNr
RXZlbnQpCiAgICAgICAgIHVwZGF0ZUxlZ2libGVPcHRpb25zKCk7CisKKyAgICBpZiAoIWV2ZW50
VHlwZQorICAgICAgICB8fCAqZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRjdXJyZW50
cGxheWJhY2t0YXJnZXRpc3dpcmVsZXNzY2hhbmdlZEV2ZW50KSB7CisgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbmUsIChBU0NJSUxpdGVyYWwoIm5vbmUi
KSkpOworCisgICAgICAgIGJvb2wgZW5hYmxlZCA9IG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Np
b24oKS5jdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzKCptX21lZGlhRWxlbWVudCk7Cisg
ICAgICAgIFN0cmluZyB0eXBlID0gbm9uZTsKKyAgICAgICAgU3RyaW5nIGxvY2FsaXplZERldmlj
ZU5hbWU7CisKKyAgICAgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5tZWRpYUNvbnRyb2xzSG9zdCgp
KSB7CisgICAgICAgICAgICB0eXBlID0gbV9tZWRpYUVsZW1lbnQtPm1lZGlhQ29udHJvbHNIb3N0
KCktPmV4dGVybmFsRGV2aWNlVHlwZSgpOworICAgICAgICAgICAgbG9jYWxpemVkRGV2aWNlTmFt
ZSA9IG1fbWVkaWFFbGVtZW50LT5tZWRpYUNvbnRyb2xzSG9zdCgpLT5leHRlcm5hbERldmljZURp
c3BsYXlOYW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UtPnNldEV4dGVybmFsUGxheWJhY2soZW5hYmxlZCwgdHlwZSwgbG9jYWxpemVkRGV2aWNlTmFt
ZSk7CisgICAgfQogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1MGRkYjU1MGNh
NDRjYTM2MWZlYWNmNTAyMDNjNGFkZTIzNDMzYmIyLi45NTMyNmI3MDE3Mjk1NjhkYjc5MTNmNmU3
Y2EzODcxNjk5YWIyZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMjcsNiArMjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkgewogICAgIFNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBh
aXI8ZG91YmxlLCBkb3VibGU+PiByYW5nZXMpOwogICAgIFNldEF1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zKFZlY3RvcjxTdHJpbmc+IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwog
ICAgIFNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoVmVjdG9yPFN0cmluZz4gb3B0aW9u
cywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCk7CisgICAgU2V0RXh0ZXJuYWxQbGF5YmFjayhib29s
IGVuYWJsZWQsIFN0cmluZyB0eXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAg
U2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcs
IGRvdWJsZSByYXRlKQogICAgIEVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xh
eWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5k
ZXggMzFlNzg3MTVkODgyMjA1ZTQ2NDk3YzI2MDdhZmVjMDRjZjg1NDVlNi4uZGYzMTE5YmZiMjQ5
YTBlM2Q5ZWZjN2ZjODRmZjYxMTY3YTE4MTkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNzMs
NyArNzMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2Vz
KGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlv
bnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRp
b25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKLSAgICAKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIFN0cmluZyB0eXBlLCBTdHJp
bmcgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7CisKICAgICAvLyBhZGRpdGlvbmFsIGlu
Y29taW5nCiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZjZj
MWE3YjQ0ODRhNDVkNGJkZGVkNmE3ZmU0NDEwOGNlZDBmYmYwYS4uNDczNjU4OTY2ZGJlNjk2OWY5
ZTMyYmRhNWU1ZGI5OWNhYjRjNWQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0xNjAsNyAr
MTYwLDEyIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0TGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldExlZ2libGVNZWRpYVNl
bGVjdGlvbk9wdGlvbnMob3B0aW9ucywgc2VsZWN0ZWRJbmRleCksIG1fcGFnZS0+cGFnZUlEKCkp
OwogfQotICAgIAorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEV4dGVybmFs
UGxheWJhY2soYm9vbCBlbmFibGVkLCBTdHJpbmcgdHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmlj
ZU5hbWUpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OlNldEV4dGVybmFsUGxheWJhY2soZW5hYmxlZCwgdHlwZSwgbG9jYWxpemVk
RGV2aWNlTmFtZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAgbV9pc0FuaW1hdGluZyA9
IGZhbHNlOwo=
</data>
<flag name="review"
          id="256745"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232307</attachid>
            <date>2014-05-30 15:51:03 -0700</date>
            <delta_ts>2014-06-02 14:13:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-133366-20140530155038.patch</filename>
            <type>text/plain</type>
            <size>22660</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFlNmRhNTQyZTc0NGYx
ODA0OTE2N2E5ZWJkYjljNmUwMzgxYTkyOS4uY2Q2Y2EyODliYjgyNzk1MDBhZmU0YjVmMDRjZDlm
MDUxYzk1MWExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTI4ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kIGV4dGVybmFsIHBs
YXliYWNrIHByb3BlcnRpZXMgdG8gZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzM2NgorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KKworICAgICAgICBSZWZhY3RvciBwcm9wZXJ0eSB1cGRhdGVzIGluIFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50IGFuZCB1cGRhdGUKKyAgICAgICAgc2V0RXh0
ZXJuYWxQbGF5YmFjayBvbiB3ZWJraXRjdXJyZW50cGxheWJhY2t0YXJnZXRpc3dpcmVsZXNzY2hh
bmdlZEV2ZW50LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IEFkZCBleHBvcnQgZm9yIHNl
dEV4dGVybmFsUGxheWJhY2suCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS5oOiBhZGQgc2V0RXh0ZXJuYWxQbGF5YmFjaworICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOiBhZGQgc2V0RXh0ZXJu
YWxQbGF5YmFjaworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIGlzUGxheWlu
Z09uRXh0ZXJuYWxTY3JlZW5dKTogYWRkZWQKKyAgICAgICAgKCtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nUGxheWluZ09uRXh0ZXJuYWxTY3JlZW5dKTog
YWRkZWQKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRFeHRl
cm5hbFBsYXliYWNrKTogYWRkZWQKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4pOiBhZGRlZAorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oOiBhZGQgdXBkYXRlRm9yRXZlbnRO
YW1lCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFF
bGVtZW50Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6
OnNldE1lZGlhRWxlbWVudCk6IHJlZmFjdG9yIHByb3BlcnR5IGNoYW5nZXMgaW50byB1cGRhdGVG
b3JFdmVudE5hbWUoKQorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1l
bnQ6OmhhbmRsZUV2ZW50KTogcmVmYWN0b3IgcHJvcGVydHkgY2hhbmdlcyBpbnRvIHVwZGF0ZUZv
ckV2ZW50TmFtZSgpCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dDo6dXBkYXRlRm9yRXZlbnROYW1lKTogcmVtb3ZlIGR1cGxpY2F0ZSBjb2RlLCBpbXBsZW1lbnQg
Zm9yIHNldEV4dGVybmFsUGxheWJhY2sKKwogMjAxNC0wNS0yOSAgSmVyZW15IEpvbmVzICA8amVy
ZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgUGVyc2VydmUgY2FwdGlvbiBzZWxlY3Rpb24gaW4g
ZnVsbHNjcmVlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYTAyY2E3YzE4ZWY3N2RmOWU3MmRmNGFkYzNlZTYx
NzlmOGFiNmJmLi43ODdjYjA0ODE2MTZkMGI0N2RlZjliNGE5OGUxZTc1MzRhZDk2MzZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDUtMjggIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgorCisgICAgICAgIFNlbmQgZXh0ZXJuYWwgcGxheWJhY2sgcHJvcGVydGll
cyB0byBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMzMzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgIEZvcndhcmQgc2V0RXh0ZXJuYWxQbGF5YmFjay4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBhZGQgc2V0
RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6IGFkZCBzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGll
cworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06
IGFkZCBzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGllcworICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRFeHRlcm5hbFBsYXliYWNrUHJvcGVydGllcyk6IGFk
ZGVkCisKIDIwMTQtMDUtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGEgc2FuZGJveCBwcm9maWxlIGZvciBjb20uYXBwbGUuYXBwc3RvcmUuQ29k
ZVJlZGVlbWVyTmV0c2NhcGVQbHVnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYjUxMTMyMjEx
ZDY0NmJlODBhYWQ1OTE5YTE2YzU0NDRkMjUxODVmOS4uODc0MWQ2OTkxYjBiZDdlYmNiNWUwZmQ2
Nzg1YTdmOGM2MzQzMzliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMzODQsNiArMzM4NCw3
IEBAIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNHNldEN1
cnJlbnRUaW1lRWRkCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0MTVlbnRlckZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUz
MldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05T
XzEwVGltZVJhbmdlc0UKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxOHNldFZpZGVvRGltZW5zaW9uc0ViZmYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQxOXNldEV4dGVybmFsUGxheWJhY2tFYk5TXzI3V2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlMjZFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZUVOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MjZzZXRX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEVQTlNfMjNXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEUKIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyOHJlcXVlc3RIaWRl
QW5kRXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDI5c2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNFUktOM1dURjZWZWN0b3JJ
TlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRXkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2Uu
aAppbmRleCA0YmFjMWE0ZGM4ZjcxZjgyMzQ0ZjkwZGEyMjdhZWEzNWU0M2Y1MTY2Li5hYThhYTcw
M2U1ZjliNjJhODgzMDFkNDY1MmE2NDVjN2QyZWU3M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCkBA
IC00MSw2ICs0MSw4IEBAIGNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZW51bSBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0
VHlwZSB7IFRhcmdldFR5cGVOb25lLCBUYXJnZXRUeXBlQWlyUGxheSwgVGFyZ2V0VHlwZVRWT3V0
IH07CisgICAgCiAgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKCkgeyB9
OwogICAgIHZpcnR1YWwgdm9pZCBzZXREdXJhdGlvbihkb3VibGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGlt
ZSkgPSAwOwpAQCAtNDksNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNl
ZWthYmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25z
LCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExlZ2li
bGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVp
bnQ2NF90IHNlbGVjdGVkSW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0ZXJuYWxQ
bGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBTdHJpbmcg
bG9jYWxpemVkRGV2aWNlTmFtZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQuaAppbmRleCBmMjI5NTVjMGQ2ZTViYTI5NTMyMDdmY2VhNWUxNDAwYzA0Zjg1NjZmLi4wOWY1
NWQ5MmI3ZDU5MmM0MTM0NzA4YzEyZTllOWUwOGRiMTExMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dFNlZWthYmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmFsUGxheWJhY2tU
YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImLCBXZWJDb3JlOjpJbnRS
ZWN0IGluaXRpYWxSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oV2ViQ29y
ZTo6SW50UmVjdCBmaW5hbFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4
IDVkYjU2OTdkNDM4NWY1YWE5YjBjNDg2ZDBmZjFhNTJiNWFkYTVjNzAuLjQwOTAwOGVmOTc0OWI5
NTE5ZDdiYTk1OTBmZWZkMzBlZmJlZDUyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
bW0KQEAgLTEyMSw2ICsxMjEsMTEgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NN
VGltZUluZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAocmV0YWluKSBOU0FycmF5ICpsZWdp
YmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zOwogQHByb3BlcnR5IChyZXRhaW4pIFdlYkFWTWVkaWFT
ZWxlY3Rpb25PcHRpb24gKmN1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb247CiAKK0Bw
cm9wZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc1BsYXlpbmdPbkV4dGVybmFsU2NyZWVuKSBCT09M
IHBsYXlpbmdPbkV4dGVybmFsU2NyZWVuOworQHByb3BlcnR5IChnZXR0ZXI9aXNFeHRlcm5hbFBs
YXliYWNrQWN0aXZlKSBCT09MIGV4dGVybmFsUGxheWJhY2tBY3RpdmU7CitAcHJvcGVydHkgQVZQ
bGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5cGUgZXh0ZXJuYWxQbGF5YmFja1R5cGU7
CitAcHJvcGVydHkgKHJldGFpbikgTlNTdHJpbmcgKmV4dGVybmFsUGxheWJhY2tBaXJQbGF5RGV2
aWNlTG9jYWxpemVkTmFtZTsKKwogLSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5
ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNob3VsZEV4aXRGdWxsU2Ny
ZWVuV2l0aFJlYXNvbjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29u
KXJlYXNvbjsKIEBlbmQKIApAQCAtNDQyLDYgKzQ0NywxNiBAQCBTT0ZUX0xJTktfQ09OU1RBTlQo
Q29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIHNlbGYuZGVsZWdhdGUt
PnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbihpbmRleCAhPSBOU05vdEZvdW5kID8gaW5kZXggOiBV
SU5UNjRfTUFYKTsKIH0KIAorLSAoQk9PTClpc1BsYXlpbmdPbkV4dGVybmFsU2NyZWVuCit7Cisg
ICAgcmV0dXJuIFtzZWxmIGlzRXh0ZXJuYWxQbGF5YmFja0FjdGl2ZV07Cit9CisKKysgKE5TU2V0
ICopa2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3RpbmdQbGF5aW5nT25FeHRlcm5hbFNjcmVlbgorewor
ICAgIHJldHVybiBbTlNTZXQgc2V0V2l0aE9iamVjdHM6QCJleHRlcm5hbFBsYXliYWNrQWN0aXZl
IiwgbmlsXTsKK30KKwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRp
b24gOiBOU09iamVjdApAQCAtNjU5LDYgKzY3NCwyMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZl
YwogICAgICAgICBwbGF5ZXJDb250cm9sbGVyKCkuY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlv
bk9wdGlvbiA9IHdlYk9wdGlvbnNbKHNpemVfdClzZWxlY3RlZEluZGV4XTsKIH0KIAordm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0RXh0ZXJuYWxQbGF5YmFjayhib29s
IGVuYWJsZWQsIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlIHRhcmdldFR5cGUsIFN0cmluZyBs
b2NhbGl6ZWREZXZpY2VOYW1lKQoreworICAgIEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxh
eWJhY2tUeXBlIGV4dGVybmFsUGxheWJhY2tUeXBlID0gQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJu
YWxQbGF5YmFja1R5cGVOb25lOworICAgIGlmICh0YXJnZXRUeXBlID09IFRhcmdldFR5cGVBaXJQ
bGF5KQorICAgICAgICBleHRlcm5hbFBsYXliYWNrVHlwZSA9IEFWUGxheWVyQ29udHJvbGxlckV4
dGVybmFsUGxheWJhY2tUeXBlQWlyUGxheTsKKyAgICBlbHNlIGlmICh0YXJnZXRUeXBlID09IFRh
cmdldFR5cGVUVk91dCkKKyAgICAgICAgZXh0ZXJuYWxQbGF5YmFja1R5cGUgPSBBVlBsYXllckNv
bnRyb2xsZXJFeHRlcm5hbFBsYXliYWNrVHlwZVRWT3V0OworCisgICAgcGxheWVyQ29udHJvbGxl
cigpLmV4dGVybmFsUGxheWJhY2tBaXJQbGF5RGV2aWNlTG9jYWxpemVkTmFtZSA9IGxvY2FsaXpl
ZERldmljZU5hbWU7CisgICAgcGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tUeXBl
ID0gZXh0ZXJuYWxQbGF5YmFja1R5cGU7CisgICAgcGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFs
UGxheWJhY2tBY3RpdmUgPSBlbmFibGVkOworICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIuZ2V0
KCkgc2V0SGlkZGVuOmVuYWJsZWRdOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgV2Vi
Q29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKQEAgLTY3Myw2ICs3MDIs
NyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3Jl
ZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICBbbV92aWRlb0xheWVyIHJlbW92
ZUZyb21TdXBlcmxheWVyXTsKICAgICAgICAgCiAgICAgICAgIG1fdmlkZW9MYXllckNvbnRhaW5l
ciA9IFtXZWJBVlZpZGVvTGF5ZXIgdmlkZW9MYXllcl07CisgICAgICAgIFttX3ZpZGVvTGF5ZXJD
b250YWluZXIgc2V0SGlkZGVuOnBsYXllckNvbnRyb2xsZXIoKS5leHRlcm5hbFBsYXliYWNrQWN0
aXZlXTsKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBhZGRTdWJsYXllcjptX3ZpZGVv
TGF5ZXIuZ2V0KCldOwogICAgICAgICAKICAgICAgICAgQ0dTaXplIHZpZGVvU2l6ZSA9IHBsYXll
ckNvbnRyb2xsZXIoKS5jb250ZW50RGltZW5zaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFF
bGVtZW50LmgKaW5kZXggNDQzOTY1MmVhNDFlMjcxNzQyOWU4ZDkzODg5NGQ3ZWVmZjFkZTljOS4u
MDQ0Njk0ZjZiNzNjM2E1YjVlMmMxYjFiYjg3YWVjMWI0ZjcwZGViZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsTWVkaWFFbGVtZW50LmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciopOwogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVFdmVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2Vi
Q29yZTo6RXZlbnQqKSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZUZvckV2ZW50TmFtZShjb25z
dCBXVEY6OkF0b21pY1N0cmluZyYpOwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExp
c3RlbmVyJiByaHMpIG92ZXJyaWRlCiAgICAgICAgIHtyZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RXZlbnRMaXN0ZW5lcio+KHRoaXMpID09ICZyaHM7fQogCkBAIC03MSw2ICs3Miw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90
IGluZGV4KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdU
Rjo6QXRvbWljU3RyaW5nPiYgb2JzZXJ2ZWRFdmVudE5hbWVzKCk7CisgICAgY29uc3QgV1RGOjpB
dG9taWNTdHJpbmcmIGV2ZW50TmFtZUFsbCgpOworICAgIAogICAgIFJlZlB0cjxIVE1MTWVkaWFF
bGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92
aWRlb0Z1bGxzY3JlZW5MYXllcjsKICAgICBib29sIG1faXNMaXN0ZW5pbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRp
YUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggM2RlMjllY2I2MjQyNTE2NWRlZTkyZTEyMTkz
ZTRjMTdmYjlkNTc3MC4uOTA2Zjk4ODc3NjNhMzViMmQ1NzhiMGM4Mjk2ODBhMDFhYjY4M2ZiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtNDcsOCArNDcsMTAgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
VGhyZWFkUnVuLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KKyNpbXBv
cnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCisK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlh
RWxlbWVudDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQoKQpAQCAtNjcsMTMg
KzY5LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKG1fbWVkaWFFbGVtZW50ICYmIG1faXNMaXN0ZW5pbmcpIHsKLSAgICAgICAgbV9tZWRpYUVs
ZW1lbnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmR1cmF0aW9uY2hhbmdlRXZl
bnQsIHRoaXMsIGZhbHNlKTsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnJlbW92ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLnBhdXNlRXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnBsYXlFdmVudCwg
dGhpcywgZmFsc2UpOwotICAgICAgICBtX21lZGlhRWxlbWVudC0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkucmF0ZWNoYW5nZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgICAgIG1f
bWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS50aW1ldXBkYXRl
RXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnJlbW92ZUV2ZW50
TGlzdGVuZXIoZXZlbnROYW1lcygpLmFkZHRyYWNrRXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICAg
ICAgbV9tZWRpYUVsZW1lbnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnJlbW92
ZXRyYWNrRXZlbnQsIHRoaXMsIGZhbHNlKTsKKyAgICAgICAgZm9yIChhdXRvIGV2ZW50TmFtZSA6
IG9ic2VydmVkRXZlbnROYW1lcygpKQorICAgICAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnJlbW92
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCB0aGlzLCBmYWxzZSk7CiAgICAgfQogICAgIG1faXNM
aXN0ZW5pbmcgPSBmYWxzZTsKIApAQCAtODIsMjIgKzc5LDExIEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50
KiBtZWRpCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmR1cmF0aW9uY2hh
bmdlRXZlbnQsIHRoaXMsIGZhbHNlKTsKLSAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0
ZW5lcihldmVudE5hbWVzKCkucGF1c2VFdmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1fbWVkaWFF
bGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5wbGF5RXZlbnQsIHRoaXMsIGZh
bHNlKTsKLSAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
cmF0ZWNoYW5nZUV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCwgdGhpcywgZmFsc2UpOwot
ICAgIG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5hZGR0cmFj
a0V2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLnJlbW92ZXRyYWNrRXZlbnQsIHRoaXMsIGZhbHNlKTsKKyAgICBmb3Ig
KGF1dG8gZXZlbnROYW1lIDogb2JzZXJ2ZWRFdmVudE5hbWVzKCkpCisgICAgICAgIG1fbWVkaWFF
bGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGhpcywgZmFsc2UpOwogICAgIG1f
aXNMaXN0ZW5pbmcgPSB0cnVlOwogCi0gICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNl
dER1cmF0aW9uKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpKTsKLSAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0U2Vla2FibGVSYW5nZXMoKm1fbWVkaWFFbGVtZW50LT5zZWVrYWJs
ZSgpKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0ZSghbV9tZWRpYUVs
ZW1lbnQtPnBhdXNlZCgpLCBtX21lZGlhRWxlbWVudC0+cGxheWJhY2tSYXRlKCkpOwotCi0gICAg
dXBkYXRlTGVnaWJsZU9wdGlvbnMoKTsKLQotICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
LT5zZXRDdXJyZW50VGltZShtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSwgW1tOU1Byb2Nl
c3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdKTsKKyAgICB1cGRhdGVGb3JFdmVudE5h
bWUoZXZlbnROYW1lQWxsKCkpOwogCiAgICAgaWYgKGlzSFRNTFZpZGVvRWxlbWVudChtX21lZGlh
RWxlbWVudC5nZXQoKSkpIHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCAqdmlkZW9FbGVtZW50
ID0gdG9IVE1MVmlkZW9FbGVtZW50KG1fbWVkaWFFbGVtZW50LmdldCgpKTsKQEAgLTEwOCwyMyAr
OTQsNTggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGkKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbE1lZGlhRWxlbWVudDo6aGFuZGxlRXZlbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFdlYkNvcmU6OkV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoIW1fbWVkaWFFbGVt
ZW50IHx8ICFtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgTE9HKE1lZGlhLCAiaGFuZGxlRXZlbnQgJXMiLCBldmVudC0+dHlwZSgpLmNoYXJhY3RlcnM4
KCkpOworICAgIHVwZGF0ZUZvckV2ZW50TmFtZShldmVudC0+dHlwZSgpKTsKK30KKwordm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNv
bnN0IFdURjo6QXRvbWljU3RyaW5nJiBldmVudE5hbWUpCit7CisgICAgaWYgKCFtX21lZGlhRWxl
bWVudCB8fCAhbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCisgICAgICAgIHJldHVybjsKICAg
ICAKLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZHVyYXRpb25jaGFuZ2VF
dmVudCkKKyAgICBib29sIGFsbCA9IGV2ZW50TmFtZSA9PSBldmVudE5hbWVBbGwoKTsKKworICAg
IGlmIChhbGwKKyAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS5kdXJhdGlvbmNo
YW5nZUV2ZW50KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0RHVyYXRp
b24obV9tZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCkpOwotICAgIGVsc2UgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLnBhdXNlRXZlbnQKLSAgICAgICAgfHwgZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkucGxheUV2ZW50Ci0gICAgICAgIHx8IGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLnJhdGVjaGFuZ2VFdmVudCkKKworICAgIGlmIChhbGwKKyAgICAgICAgfHwgZXZl
bnROYW1lID09IGV2ZW50TmFtZXMoKS5wYXVzZUV2ZW50CisgICAgICAgIHx8IGV2ZW50TmFtZSA9
PSBldmVudE5hbWVzKCkucGxheUV2ZW50CisgICAgICAgIHx8IGV2ZW50TmFtZSA9PSBldmVudE5h
bWVzKCkucmF0ZWNoYW5nZUV2ZW50KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZS0+c2V0UmF0ZSghbV9tZWRpYUVsZW1lbnQtPnBhdXNlZCgpLCBtX21lZGlhRWxlbWVudC0+cGxh
eWJhY2tSYXRlKCkpOwotICAgIGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LnRpbWV1cGRhdGVFdmVudCkgeworCisgICAgaWYgKGFsbAorICAgICAgICB8fCBldmVudE5hbWUg
PT0gZXZlbnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCkgewogICAgICAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0Q3VycmVudFRpbWUobV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1l
KCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSk7CiAgICAgICAg
IC8vIEZJWE1FOiAxMzA3ODggLSBmaW5kIGEgYmV0dGVyIGV2ZW50IHRvIHVwZGF0ZSBzZWVrYWJs
ZSByYW5nZXMgZnJvbS4KICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFNl
ZWthYmxlUmFuZ2VzKCptX21lZGlhRWxlbWVudC0+c2Vla2FibGUoKSk7Ci0gICAgfSBlbHNlIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hZGR0cmFja0V2ZW50IHx8IGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLnJlbW92ZXRyYWNrRXZlbnQpCisgICAgfQorCisgICAgaWYg
KGFsbAorICAgICAgICB8fCBldmVudE5hbWUgPT0gZXZlbnROYW1lcygpLmFkZHRyYWNrRXZlbnQK
KyAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS5yZW1vdmV0cmFja0V2ZW50KQog
ICAgICAgICB1cGRhdGVMZWdpYmxlT3B0aW9ucygpOworCisgICAgaWYgKGFsbAorICAgICAgICB8
fCBldmVudE5hbWUgPT0gZXZlbnROYW1lcygpLndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlz
d2lyZWxlc3NjaGFuZ2VkRXZlbnQpIHsKKyAgICAgICAgYm9vbCBlbmFibGVkID0gbV9tZWRpYUVs
ZW1lbnQtPm1lZGlhU2Vzc2lvbigpLmN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3MoKm1f
bWVkaWFFbGVtZW50KTsKKyAgICAgICAgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlOjpFeHRl
cm5hbFBsYXliYWNrVGFyZ2V0VHlwZSB0YXJnZXRUeXBlID0gV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlOjpUYXJnZXRUeXBlTm9uZTsKKyAgICAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU5h
bWU7CisKKyAgICAgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5tZWRpYUNvbnRyb2xzSG9zdCgpKSB7
CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhaXJw
bGF5LCAoQVNDSUlMaXRlcmFsKCJhaXJwbGF5IikpKTsKKyAgICAgICAgICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR2b3V0LCAoQVNDSUlMaXRlcmFsKCJ0dm91dCIp
KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB0eXBlID0gbV9tZWRpYUVsZW1l
bnQtPm1lZGlhQ29udHJvbHNIb3N0KCktPmV4dGVybmFsRGV2aWNlVHlwZSgpOworICAgICAgICAg
ICAgaWYgKHR5cGUgPT0gYWlycGxheSkKKyAgICAgICAgICAgICAgICB0YXJnZXRUeXBlID0gV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlOjpUYXJnZXRUeXBlQWlyUGxheTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gdHZvdXQpCisgICAgICAgICAgICAgICAgdGFyZ2V0VHlwZSA9IFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZTo6VGFyZ2V0VHlwZVRWT3V0OworICAgICAgICAgICAg
bG9jYWxpemVkRGV2aWNlTmFtZSA9IG1fbWVkaWFFbGVtZW50LT5tZWRpYUNvbnRyb2xzSG9zdCgp
LT5leHRlcm5hbERldmljZURpc3BsYXlOYW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgbV92aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEV4dGVybmFsUGxheWJhY2soZW5hYmxlZCwgdGFyZ2V0
VHlwZSwgbG9jYWxpemVkRGV2aWNlTmFtZSk7CisgICAgfQogfQogCiB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyKiB2aWRlb0xheWVyKQpAQCAtMzMzLDQgKzM1NCwyNyBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVMZWdpYmxlT3B0aW9ucygpCiAgICAgbV92
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMo
dHJhY2tEaXNwbGF5TmFtZXMsIHNlbGVjdGVkSW5kZXgpOwogfQogCitjb25zdCBWZWN0b3I8QXRv
bWljU3RyaW5nPiYgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6Om9ic2VydmVk
RXZlbnROYW1lcygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxBdG9taWNT
dHJpbmc+PiBzRXZlbnROYW1lczsKKworICAgIGlmICghc0V2ZW50TmFtZXMuZ2V0KCkuc2l6ZSgp
KSB7CisgICAgICAgIHNFdmVudE5hbWVzLmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkuZHVyYXRp
b25jaGFuZ2VFdmVudCk7CisgICAgICAgIHNFdmVudE5hbWVzLmdldCgpLmFwcGVuZChldmVudE5h
bWVzKCkucGF1c2VFdmVudCk7CisgICAgICAgIHNFdmVudE5hbWVzLmdldCgpLmFwcGVuZChldmVu
dE5hbWVzKCkucGxheUV2ZW50KTsKKyAgICAgICAgc0V2ZW50TmFtZXMuZ2V0KCkuYXBwZW5kKGV2
ZW50TmFtZXMoKS5yYXRlY2hhbmdlRXZlbnQpOworICAgICAgICBzRXZlbnROYW1lcy5nZXQoKS5h
cHBlbmQoZXZlbnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCk7CisgICAgICAgIHNFdmVudE5hbWVz
LmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkuYWRkdHJhY2tFdmVudCk7CisgICAgICAgIHNFdmVu
dE5hbWVzLmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkucmVtb3ZldHJhY2tFdmVudCk7CisgICAg
ICAgIHNFdmVudE5hbWVzLmdldCgpLmFwcGVuZChldmVudE5hbWVzKCkud2Via2l0Y3VycmVudHBs
YXliYWNrdGFyZ2V0aXN3aXJlbGVzc2NoYW5nZWRFdmVudCk7CisgICAgfQorICAgIHJldHVybiBz
RXZlbnROYW1lcy5nZXQoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6ZXZlbnROYW1lQWxsKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFsbEV2ZW50cyI7Cisg
ICAgcmV0dXJuIHNFdmVudE5hbWVBbGw7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKaW5kZXggZDk1Mjc1OWVkNjhjZjkzMjQ2MWFjNWU5MWVkYmM3ZWVlYjdjYjM1Mi4uNmY4
NzNhMGM2NzYzZmJjZjE0MWY1NmQyZTQxNTQ5MzM5NjIxYjJhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oCkBAIC01Nyw3ICs1Nyw4IEBAIHByaXZhdGU6CiAgICAgLy8gVHJhbnNsYXRlIHRv
IEZ1bGxzY3JlZW5JbnRlcmZhY2UKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50
MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCk7CiAgICAgdm9pZCBzZXRTZWVrYWJs
ZVJhbmdlc1ZlY3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mKTsKLQorICAg
IHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJf
dCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CisgICAgCiAgICAgLy8g
RnVsbHNjcmVlbiBPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNTBk
ZGI1NTBjYTQ0Y2EzNjFmZWFjZjUwMjAzYzRhZGUyMzQzM2JiMi4uNTgwMWZmNmRlNGJhNmIxYmJl
NjI1OTEwNjJkZWQzOGI1NWZhNDRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihWZWN0b3I8
c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gcmFuZ2VzKTsKICAgICBTZXRBdWRpb01lZGlhU2Vs
ZWN0aW9uT3B0aW9ucyhWZWN0b3I8U3RyaW5nPiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZElu
ZGV4KTsKICAgICBTZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKFZlY3RvcjxTdHJpbmc+
IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOworICAgIFNldEV4dGVybmFsUGxheWJh
Y2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwgU3RyaW5nIGxv
Y2FsaXplZERldmljZU5hbWUpOwogICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAg
ICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkKICAgICBFbnRlckZ1bGxzY3Jl
ZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzMzk4ZDM4OWFjNmIxODhkNWQx
OTVjNDFlNjIwMTc2ZDU1MDE4MmEzLi4xZmI4ZjNmZThlMTM2ZjIyNGNkNjgxMTFhYmNkNjYwODNk
YWIxMzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtOTIsNiArOTIsMTUgQEAg
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFNlZWthYmxlUmFuZ2VzVmVj
dG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG8KICAgICBzZXRTZWVrYWJsZVJhbmdlcygqdGltZVJhbmdl
cyk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRFeHRlcm5h
bFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0
cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKQoreworICAgIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZTo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZTo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGU+KHRhcmdl
dFR5cGUpOworICAgIAorICAgIEFTU0VSVCh0eXBlID09IFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZTo6VGFyZ2V0VHlwZUFpclBsYXkgfHwgdHlwZSA9PSBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2U6OlRhcmdldFR5cGVUVk91dCB8fCB0eXBlID09IFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZTo6VGFyZ2V0VHlwZU5vbmUpOworICAgIAorICAgIHNldEV4dGVybmFsUGxheWJhY2soZW5h
YmxlZCwgdHlwZSwgbG9jYWxpemVkRGV2aWNlTmFtZSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKIHsKICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RF
eGl0RnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCAzMWU3ODcxNWQ4ODIyMDVlNDY0OTdjMjYwN2FmZWMwNGNmODU0NWU2Li4zNDlkZDJmMWViZjlm
NmU1MmRkOGMzODAwNzIyMzgyODI3MmFjNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC03Myw3
ICs3Myw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMo
Y29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9u
cywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNl
dExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlv
bnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwotICAgIAorICAgIHZpcnR1YWwg
dm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nIGxvY2FsaXplZERl
dmljZU5hbWUpIG92ZXJyaWRlOworCiAgICAgLy8gYWRkaXRpb25hbCBpbmNvbWluZwogICAgIHZp
cnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGY2YzFhN2I0NDg0YTQ1ZDRi
ZGRlZDZhN2ZlNDQxMDhjZWQwZmJmMGEuLjAxNzk3M2NjM2IwZjViZmQ5OGQyMDU4N2ZhZGZmZDdm
MWQzNTU3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMTYwLDcgKzE2MCwxMiBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlv
bnMoY29uc3QgVmVjdG9yPFN0cgogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25z
KG9wdGlvbnMsIHNlbGVjdGVkSW5kZXgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KLSAgICAKKwor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wg
ZW5hYmxlZCwgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlOjpFeHRlcm5hbFBsYXliYWNrVGFy
Z2V0VHlwZSB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSkKK3sKKyAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0
RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoZW5hYmxlZCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHRhcmdldFR5cGUpLCBsb2NhbGl6ZWREZXZpY2VOYW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkK
IHsKICAgICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>