<?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>157008</bug_id>
          
          <creation_ts>2016-04-25 17:27:18 -0700</creation_ts>
          <short_desc>Set WebVideoFullscreenInterfaceMac up as a client of WebPlaybackSessionInterfaceMac to listen for playback state changes</short_desc>
          <delta_ts>2016-04-27 16:26:34 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187138</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-25 17:27:18 -0700</bug_when>
    <thetext>Right now both WebVideoFullscreenInterfaceMac and WebPlaybackSessionInterfaceMac keep track of the playback rate separately. Since WebVideoFullscreenInterfaceMac holds a reference to WebPlaybackSessionInterfaceMac anyway, it should just get its playback rate from WebPlaybackSessionInterfaceMac.

Also, since WebVideoFullscreenInterfaceMac holds onto WebPlaybackSessionInterfaceMac, we can&apos;t let WebPlaybackSessionManagerProxy unregister that WebPlaybackSessionInterfaceMac while WebVideoFullscreenInterfaceMac is still using it. WebVideoFullscreenInterfaceMac should add itself as a client for that WebPlaybackSession context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187139</commentid>
    <comment_count>1</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-25 17:29:02 -0700</bug_when>
    <thetext>Related to &lt;rdar://problem/25840183&gt; and &lt;rdar://problem/25841037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187150</commentid>
    <comment_count>2</comment_count>
      <attachid>277298</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-25 17:57:04 -0700</bug_when>
    <thetext>Created attachment 277298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187238</commentid>
    <comment_count>3</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-25 21:18:54 -0700</bug_when>
    <thetext>Need to make sure WebPlaybackSessionModelMediaElement&apos;s media element is set in WebVideoFullscreenManager::enterVideoFullscreenForVideoElement().  Updated patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187241</commentid>
    <comment_count>4</comment_count>
      <attachid>277328</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-25 21:21:40 -0700</bug_when>
    <thetext>Created attachment 277328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187461</commentid>
    <comment_count>5</comment_count>
      <attachid>277328</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-26 10:45:32 -0700</bug_when>
    <thetext>Comment on attachment 277328
Patch

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

&gt; Source/WebCore/platform/mac/WebPlaybackSessionInterfaceMac.h:47
&gt; +    virtual void playbackRateDidChange() = 0;

this should probably be &quot;void rateChanged(bool isPlaying, float playbackRate)&quot; to match the &quot;setRate(bool, float)&quot; call.  Passing the changed values in the client method would also make the &quot;playbackRate()&quot; getter unnecessary.

&gt; Source/WebCore/platform/mac/WebPlaybackSessionInterfaceMac.h:64
&gt; +    float playbackRate();

Having a getter here is very &quot;model&quot;-y.  I don&apos;t think this is necessary.

&gt; Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:120
&gt; +void WebVideoFullscreenInterfaceMac::playbackRateDidChange()
&gt; +{
&gt;  #if USE(APPLE_INTERNAL_SDK)
&gt; -    [videoFullscreenInterfaceObjC() setRate:isPlaying ? playbackRate : 0.];
&gt; +    [videoFullscreenInterfaceObjC() updatePlaybackRate];
&gt;  #endif
&gt;  }

If this was &quot;::rateChanged(bool isPlaying, float playbackRate)&quot;, then the contents of this method wouldn&apos;t need to change.  It&apos;s also not obvious that the updatePlaybackRate method will do the correct thing here, since setRate() actually passes in two values, and there is only a getter for the second value. Essentially, you&apos;re tying the definition of playbackRate() to the implementation details in the playbackSessionInterface.

&gt; Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.mm:274
&gt; +    m_playbackSessionManager-&gt;ensureModel(contextId).setMediaElement(&amp;videoElement);

I think that it would be better to do this in WebPlaybackSessionManager::createModelAndInterface().  The new media element model would get the videoElement from m_mediaElements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187569</commentid>
    <comment_count>6</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-26 16:19:16 -0700</bug_when>
    <thetext>Thanks for your feedback, Jer.

I&apos;m reworking the patch to address your feedback.  I&apos;ll be removing that playbackRate() getter in WebPlaybackSessionInterfaceMac. Since I won&apos;t exactly make WebVideoFullscreenInterfaceMac get the playback rate from WebPlaybackSessionInterfaceMac, I&apos;ll retitle this bug to:

Set WebVideoFullscreenInterfaceMac up as a client of WebPlaybackSessionInterfaceMac to listen for playback state changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187577</commentid>
    <comment_count>7</comment_count>
      <attachid>277420</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-26 16:34:17 -0700</bug_when>
    <thetext>Created attachment 277420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188001</commentid>
    <comment_count>8</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-27 16:26:34 -0700</bug_when>
    <thetext>Committed:
http://trac.webkit.org/changeset/200157</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277298</attachid>
            <date>2016-04-25 17:57:04 -0700</date>
            <delta_ts>2016-04-25 21:21:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157008-20160425175732.patch</filename>
            <type>text/plain</type>
            <size>16731</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzNjFhMGFiODM0ZTI2
ZGFjNzJhY2ZjZDMzZjZlZTQ0MDI5Y2I0OC4uMTEzYmRhY2Q0M2JiODJkMTM5MWNiMTM0NmI5Y2Vm
MzQwYjE5YjkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTA0LTI1ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEhhdmUgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjIGdldCB0aGUgcGxheWJhY2sgcmF0ZSBmcm9tIFdlYlBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU3MDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmlnaHQgbm93IGJvdGggV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIGFu
ZCBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMga2VlcCB0cmFjayBvZgorICAgICAgICB0
aGUgcGxheWJhY2sgcmF0ZSBzZXBhcmF0ZWx5LiBTaW5jZSBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWMgaG9sZHMgYSByZWZlcmVuY2UgdG8KKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjIGFueXdheSwgaXQgc2hvdWxkIGp1c3QgZ2V0IGl0cyBwbGF5YmFjayByYXRl
IGZyb20KKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLgorCisgICAgICAg
IEZvciBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgdG8gYmUgbm90aWZpZWQgd2hlbiB0
aGUgcGxheWJhY2sgcmF0ZSBjaGFuZ2VzIGluCisgICAgICAgIFdlYlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYywgYWRkIGEgbmV3IFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVu
dCBiYXNlCisgICAgICAgIGNsYXNzIHRoYXQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
IGltcGxlbWVudHMsIHNpbWlsYXIgdG8gdGhlIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Q2xpZW50CisgICAgICAgIG9uIGlPUy4gV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
IHNldHMgaXRzZWxmIGFzIGEgY2xpZW50IG9mIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
YworICAgICAgICBzbyBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMgY2FuIG5vdGlmeSBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgd2hlbmV2ZXIgdGhlCisgICAgICAgIHBsYXli
YWNrIHJhdGUgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6OnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk6CisgICAg
ICAgIFdlIHNob3VsZCBub3QgY2hhbmdlIHRoZSBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudCdzIGludGVyZmFjZSBoZXJlIHNpbmNlIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIK
KyAgICAgICAgaGFzIGFscmVhZHkgc2V0IHRoYXQgdXAgd2hlbiBjcmVhdGluZyB0aGUgY29udGV4
dCBmb3IgdGhpcyBtZWRpYSBlbGVtZW50LgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRWxlbWVudCk6CisgICAgICAgIFNpbWlsYXJseSwgd2Ug
c2hvdWxkIG5vdCBjaGFuZ2UgdGhlIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
J3MgbWVkaWEgZWxlbWVudCBoZXJlIHNpbmNlCisgICAgICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIgaGFzIGFscmVhZHkgc2V0IHRoYXQgdXAgd2hlbiBjcmVhdGluZyB0aGUgY29udGV4dCBm
b3IgdGhpcyBtZWRpYSBlbGVtZW50LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlTWFjQ2xpZW50Ojp+V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
Q2xpZW50KToKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWM6OnNldFJhdGUpOgorICAgICAgICBJZiBhIGNsaWVudCBpcyBzZXQsIGxldCB0aGF0IGNs
aWVudCBrbm93IGFib3V0IHRoZSBjaGFuZ2UgaW4gcGxheWJhY2sgcmF0ZS4KKyAgICAgICAgKFdl
YkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6cGxheWJhY2tSYXRlKToKKyAg
ICAgICAgR2V0IHRoZSByYXRlIGZyb20gdGhlIHBsYXlCYWNrQ29udHJvbHNNYW5hZ2VyKCkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6V2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKToKKyAgICAgICAgU2V0IGl0c2VsZiBhcyBhIGNs
aWVudCBvZiBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6On5XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWMpOgorICAgICAgICBNYWtlIHN1cmUgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjIHdvbid0IGhvbGQgb250byBhIHN0YWxlIHBvaW50ZXIgdG8gaXRzZWxmLgorICAgICAgICAo
V2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbCk6CisgICAgICAgIFdlIHNob3VsZCBub3QgY2hhbmdlIHRoZSBXZWJQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UncyBtb2RlbCBoZXJlLCBzaW5jZSBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyCisgICAgICAgIGhhcyBhbHJlYWR5IHNldCB0aGF0IHVwIHdoZW4gY3JlYXRpbmcgdGhl
IGNvbnRleHQgZm9yIHRoaXMgbWVkaWEgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0UmF0ZSk6CisgICAgICAgIFdlIGRvbid0IGhh
dmUgdG8gdXBkYXRlIHRoZSBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMncyByYXRlIGhl
cmUgYW55bW9yZS4gVGhlIGNoYW5nZQorICAgICAgICBpbiBwbGF5YmFjayByYXRlIGluIFdlYlBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyBzaG91bGQgdHJpZ2dlciBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWM6OnBsYXliYWNrUmF0ZURpZENoYW5nZSgpCisgICAgICAgIHRvIGJlIGNh
bGxlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpwbGF5YmFja1JhdGUpOgorICAgICAgICBH
ZXQgdGhlIHBsYXliYWNrIHJhdGUgZnJvbSBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMu
CisgICAgICAgIChXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnBsYXli
YWNrUmF0ZURpZENoYW5nZSk6CisKIDIwMTYtMDQtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVG9nZ2xpbmcgYW5pbWF0aW9uLXBsYXktc3RhdGUg
Y2FuIHJlLXN0YXJ0IGEgZmluaXNoZWQgYW5pbWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGJkNDI3NTRh
MmY1ZDQ3ZTI1NjFjMmI3NzlkMTA0YzI4NjUxOTQxZS4uNzI0Nzk1NGQ5OWYyNDFlN2Y3ZTQ0MTEy
OTY3NGI3N2Q5ZmY0NDIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA0LTI1
ICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEhhdmUgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjIGdldCB0aGUgcGxheWJhY2sgcmF0ZSBmcm9tIFdlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3MDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2luY2UgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIGhvbGRz
IG9udG8gV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLCB3ZSBjYW4ndCBsZXQKKyAgICAg
ICAgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IHVucmVnaXN0ZXIgdGhlIGNvbnRleHQg
Zm9yIHRoYXQgbWVkaWEgZWxlbWVudCB3aGlsZQorICAgICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMgaXMgc3RpbGwgdXNpbmcgaXQuIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYyBzaG91bGQgYWRkCisgICAgICAgIHRvIHRoZSBjbGllbnQgY291bnQgZm9yIHRoYXQgV2Vi
UGxheWJhY2tTZXNzaW9uIGNvbnRleHQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZU1vZGVsQW5kSW50ZXJmYWNlKToKKyAgICAg
ICAgV2hlbiB0aGUgY29udGV4dCBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgaXMgY3JlYXRlZCB3aXRo
IHRoZSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHksIGl0IHNob3VsZAorICAgICAgICBh
ZGQgb25lIHRvIHRoZSBjbGllbnQgY291bnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQg
aW4gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlbW92ZUNsaWVudEZvckNvbnRleHQpOgorICAg
ICAgICBXaGVuIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB1bnJlZ2lzdGVycyB0aGUg
Y29udGV4dCBmb3IgdGhpcyBtZWRpYSBlbGVtZW50LCBpdCBzaG91bGQKKyAgICAgICAgc3VidHJh
Y3Qgb25lIGZyb20gdGhlIGNsaWVudCBjb3VudCBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4
dCBpbiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIp
OgorICAgICAgICBCYWlsIGVhcmx5IGlmIG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIGlzIHpl
cm8uIE90aGVyd2lzZSwgd2UnZCBlbmQgdXAgc2VuZGluZyBhCisgICAgICAgIENsZWFyUGxheWJh
Y2tDb250cm9sc01hbmFnZXIgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyBpbmFkdmVydGVudGx5
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpjcmVhdGVN
b2RlbEFuZEludGVyZmFjZSk6CisgICAgICAgIFdoZW4gdGhlIGNvbnRleHQgZm9yIHRoZSBtZWRp
YSBlbGVtZW50IGlzIGNyZWF0ZWQgd2l0aCB0aGUgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciwg
aXQgc2hvdWxkCisgICAgICAgIGFkZCBvbmUgdG8gdGhlIGNsaWVudCBjb3VudCBmb3IgdGhlIG1l
ZGlhIGVsZW1lbnQgY29udGV4dCBpbiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZW1vdmVDb250ZXh0KToKKyAg
ICAgICAgV2hlbiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHVucmVnaXN0ZXJzIHRoZSBjb250
ZXh0IGZvciB0aGlzIG1lZGlhIGVsZW1lbnQsIGl0IHNob3VsZAorICAgICAgICBzdWJ0cmFjdCBv
bmUgZnJvbSB0aGUgY2xpZW50IGNvdW50IGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0IGlu
IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuCisKIDIwMTYtMDQtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB1bmRlciAtW1dLV2ViVmlldyBfbWF5
QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBpY3R1cmVdICsgMzIgKFdLV2ViVmlldy5t
bTozMDkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCmluZGV4IDM0YjZi
NWVkMDU4NDQ3YTYxZTBhNzI5MzZkYTFhMDIyOTE4MTEwNDYuLjI5YmM2ZGU1NTk2ZjJlZjAwNzk5
ODU4Zjg4ZjI2NGRlZWY4YzFmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC02Nyw3ICs2Nyw2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQ6OnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZShXZWJWaWRlCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlID0gaW50ZXJmYWNlOwot
ICAgIG1fcGxheWJhY2tTZXNzaW9uTW9kZWwtPnNldFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZShpbnRlcmZhY2UpOwogCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIG1f
dmlkZW9FbGVtZW50KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0Vmlk
ZW9EaW1lbnNpb25zKHRydWUsIG1fdmlkZW9FbGVtZW50LT52aWRlb1dpZHRoKCksIG1fdmlkZW9F
bGVtZW50LT52aWRlb0hlaWdodCgpKTsKQEAgLTc1LDcgKzc0LDYgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
KFdlYlZpZGUKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0
VmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKIHsKLSAgICBtX3Bs
YXliYWNrU2Vzc2lvbk1vZGVsLT5zZXRNZWRpYUVsZW1lbnQodmlkZW9FbGVtZW50KTsKICAgICBp
ZiAobV92aWRlb0VsZW1lbnQgPT0gdmlkZW9FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VNYWMuaAppbmRleCAxOGQyNmJiN2UxZmU0MDQ3MDI2MTk1ZTA5YTUzNzc5
YzIwZTdlN2NlLi5mZmRkODIwMGUzZDhlM2E5NmFmMDAwZWIyMzBkMWI0YjE2NmU2YTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZU1hYy5oCkBAIC00MCw2ICs0MCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw7CiAKK2Ns
YXNzIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjQ2xpZW50KCkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tSYXRlRGlkQ2hhbmdlKCkgPSAwOworfTsKKwogY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjIGZpbmFsCiAgICAg
OiBwdWJsaWMgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlCiAgICAgLCBwdWJsaWMgUmVmQ291
bnRlZDxXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM+IHsKQEAgLTUxLDYgKzU4LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMoKTsK
ICAgICBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbCogd2ViUGxheWJhY2tTZXNzaW9uTW9kZWwoKSBj
b25zdCB7IHJldHVybiBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbChXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bCopOworICAgIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVudCogY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNldENsaWVudChXZWJQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VNYWNDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsg
fQorCisgICAgZmxvYXQgcGxheWJhY2tSYXRlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlc2V0TWVkaWFTdGF0ZSgpIGZpbmFsIHsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
RHVyYXRpb24oZG91YmxlKSBmaW5hbDsKQEAgLTcwLDYgKzgxLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbCogbV9wbGF5YmFja1Nlc3Npb25Nb2RlbCB7
IG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8V2ViUGxheWJhY2tDb250cm9sc01hbmFnZXI+IG1f
cGxheWJhY2tDb250cm9sc01hbmFnZXI7CisgICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjLm1tCmluZGV4IGUwMWRhOTExN2RkOGQzZWJlNDhjMTAyYjIyZDYzM2E2NWY3ODBmMTIu
LjJhNTQzNWQ5N2RlY2ViN2QwMDY2MTE5NDA1NmU3OGQyOWE5ZmU4M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYy5tbQpAQCAtMTU5LDYgKzE1OSwxNCBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZU1hYzo6c2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRl
KQogICAgIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKiBjb250cm9sc01hbmFnZXIgPSBwbGF5
QmFja0NvbnRyb2xzTWFuYWdlcigpOwogCiAgICAgW2NvbnRyb2xzTWFuYWdlciBzZXRSYXRlOmlz
UGxheWluZyA/IHBsYXliYWNrUmF0ZSA6IDAuXTsKKworICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgbV9jbGllbnQtPnBsYXliYWNrUmF0ZURpZENoYW5nZSgpOworfQorCitmbG9hdCBXZWJQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnBsYXliYWNrUmF0ZSgpCit7CisgICAgcmV0dXJuIHBs
YXlCYWNrQ29udHJvbHNNYW5hZ2VyKCkucmF0ZTsKIH0KIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWM6OnNldFNlZWthYmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMmIHRpbWVS
YW5nZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKaW5kZXggZmI4Y2M4Zjc1ZGNiOWNjZjIwYzBi
ZGI0Mzk3NjZkYmYyN2VkNDUwMC4uNTM2Nzg2ZGY2OWY5Yzk3OGJiYjc1MjliMmVhY2FjYTA5NmVj
YmRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaApAQCAtMjksNiArMjksNyBAQAogI2lmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCiAjaW5jbHVk
ZSAiSFRNTE1lZGlhRWxlbWVudEVudW1zLmgiCisjaW5jbHVkZSAiV2ViUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjLmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CkBAIC00OCw2ICs0OSw3IEBAIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOwogCiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMKICAgICA6IHB1
YmxpYyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UKKyAgICAsIHByaXZhdGUgV2ViUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlTWFjQ2xpZW50CiAgICAgLCBwdWJsaWMgUmVmQ291bnRlZDxXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM+IHsKIAogcHVibGljOgpAQCAtOTMsNiArOTUsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtYXlBdXRvbWF0aWNhbGx5U2hvd1Zp
ZGVvUGljdHVyZUluUGljdHVyZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBh
cHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpIHsgfQogCisgICAgZmxvYXQgcGxheWJhY2tSYXRl
KCk7CisgICAgdm9pZCBwbGF5YmFja1JhdGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKwogI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjT2JqQyAqdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQygpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCBmNjFmZWZmMTE2NWQ2ZGZhNTlmMjgx
OTU4YmQ4YTU2YjNiODUxZTUwLi45YTE0MmEyOTNmNGU2MWQzNWMyOGM4Y2UyYzg3YzAyOGRiNWVk
OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTUxLDE2ICs1MSwxOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYyhXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMmIHBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
KHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSkKIHsKKyAgICBtX3BsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZS0+c2V0Q2xpZW50KHRoaXMpOwogfQogCiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWM6On5XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoKQogeworICAgIGlmIChtX3BsYXli
YWNrU2Vzc2lvbkludGVyZmFjZS0+Y2xpZW50KCkgPT0gdGhpcykKKyAgICAgICAgbV9wbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UtPnNldENsaWVudChudWxscHRyKTsKIH0KIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsKiBtb2RlbCkKIHsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
ID0gbW9kZWw7Ci0gICAgbV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UtPnNldFdlYlBsYXliYWNr
U2Vzc2lvbk1vZGVsKG1vZGVsKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWM6OnNldFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKFdlYlZpZGVvRnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyKiBvYnNlcnZlcikKQEAgLTEwMyw5ICsxMDUsMTcgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJy
ZW50VGltZSwgZG91YmxlIGEKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpz
ZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpCiB7CiAgICAgbV9wbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2UtPnNldFJhdGUoaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUpOwor
fQogCitmbG9hdCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU1hYzo6cGxheWJhY2tSYXRlKCkKK3sKKyAgICByZXR1cm4gbV9wbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UtPnBsYXliYWNrUmF0ZSgpOworfQorCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYzo6cGxheWJhY2tSYXRlRGlkQ2hhbmdlKCkKK3sKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQotICAgIFt2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDKCkg
c2V0UmF0ZTppc1BsYXlpbmcgPyBwbGF5YmFja1JhdGUgOiAwLl07CisgICAgW3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU9iakMoKSB1cGRhdGVQbGF5YmFja1JhdGVdOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDAwYzcwNWZkZWQwMzAwNDU2MWFhMzQw
MDc2NTIxMDVmYjlhMzU4MmMuLjYwODM0OWExNjcxZWQ2YTQ4YjA3NTBkNjRkMjgwOGE1NjNhODU2
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMzE4LDYgKzMxOCw3IEBA
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6TW9kZWxJbnRlcmZhY2VUdXBsZSBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJvCiAgICAgUmVmPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
Q29udGV4dD4gbW9kZWwgPSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmNyZWF0ZSgq
dGhpcywgcGxheWJhY2tTZXNzaW9uTW9kZWwsIGNvbnRleHRJZCk7CiAgICAgYXV0byYgcGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlID0gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHktPmVuc3Vy
ZUludGVyZmFjZShjb250ZXh0SWQpOwogICAgIFJlZjxQbGF0Zm9ybVdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZT4gaW50ZXJmYWNlID0gUGxhdGZvcm1XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2U6OmNyZWF0ZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpOworICAgIG1fcGxheWJhY2tTZXNz
aW9uTWFuYWdlclByb3h5LT5hZGRDbGllbnRGb3JDb250ZXh0KGNvbnRleHRJZCk7CiAKICAgICBp
bnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKCZtb2RlbC5nZXQoKSk7CiAgICAg
aW50ZXJmYWNlLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcigmbW9kZWwuZ2V0
KCkpOwpAQCAtMzU5LDYgKzM2MCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpyZW1vdmVDbGllbnRGb3JDb250ZXh0KHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBjbGll
bnRDb3VudC0tOwogCiAgICAgaWYgKGNsaWVudENvdW50IDw9IDApIHsKKyAgICAgICAgbV9wbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHktPnJlbW92ZUNsaWVudEZvckNvbnRleHQoY29udGV4dElk
KTsKICAgICAgICAgbV9jbGllbnRDb3VudHMucmVtb3ZlKGNvbnRleHRJZCk7CiAgICAgICAgIG1f
Y29udGV4dE1hcC5yZW1vdmUoY29udGV4dElkKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLm1tCmluZGV4IDhkOGY5OTM0NjJjNjRhODVhMDA5MjllN2MzNTViNDdhMTFjMWRl
ZjAuLmYwZDI5NjBjNTU4M2M0NDk1NmNjMWFlN2FmNTFiZGFjNGIyYjY0NDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0KQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXI6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoV2ViQ29yZTo6SFRNTE1lZGlh
RQogICAgIGlmIChmb3VuZEl0ZXJhdG9yID09IG1fbWVkaWFFbGVtZW50cy5lbmQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkICE9IGZvdW5k
SXRlcmF0b3ItPnZhbHVlKQorICAgIGlmICghbV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgfHwg
bV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgIT0gZm91bmRJdGVyYXRvci0+dmFsdWUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIHJlbW92ZUNsaWVudEZvckNvbnRleHQobV9jb250cm9sc01hbmFn
ZXJDb250ZXh0SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDI1MjIyNmY3NzIxNjdi
NTU2MTUzMDE5YjdlN2E1N2VkZDE0MTE4YjUuLjM1YmE3NTI2ZmE5ODJiZjVjMzA2MzFiZmFlYzZi
MDZhYmYwZWNjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTE3OSw2ICsxNzksNyBA
QCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpNb2RlbEludGVyZmFjZVR1cGxlIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmNyZWF0ZQogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudD4gbW9kZWwgPSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudDo6Y3JlYXRlKHBsYXliYWNrU2Vzc2lvbk1vZGVsKTsKICAgICBhdXRvJiBwbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2UgPSBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXItPmVuc3VyZUludGVyZmFj
ZShjb250ZXh0SWQpOwogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250
ZXh0PiBpbnRlcmZhY2UgPSBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpjcmVh
dGUoKnRoaXMsIHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSwgY29udGV4dElkKTsKKyAgICBtX3Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXItPmFkZENsaWVudEZvckNvbnRleHQoY29udGV4dElkKTsKIAog
ICAgIGludGVyZmFjZS0+c2V0TGF5ZXJIb3N0aW5nQ29udGV4dChMYXllckhvc3RpbmdDb250ZXh0
OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCkpOwogICAgIG1vZGVsLT5zZXRXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UoaW50ZXJmYWNlLmdldCgpKTsKQEAgLTIxMCw2ICsyMTEs
OCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlbW92ZUNvbnRleHQodWludDY0
X3QgY29udGV4dElkKQogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250
ZXh0PiBpbnRlcmZhY2U7CiAgICAgc3RkOjp0aWUobW9kZWwsIGludGVyZmFjZSkgPSBlbnN1cmVN
b2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogCisgICAgbV9wbGF5YmFja1Nlc3Npb25NYW5h
Z2VyLT5yZW1vdmVDbGllbnRGb3JDb250ZXh0KGNvbnRleHRJZCk7CisKICAgICBSZWZQdHI8SFRN
TFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwtPnZpZGVvRWxlbWVudCgpOwogICAg
IG1vZGVsLT5zZXRWaWRlb0VsZW1lbnQobnVsbHB0cik7CiAgICAgbW9kZWwtPnNldFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZShudWxscHRyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277328</attachid>
            <date>2016-04-25 21:21:40 -0700</date>
            <delta_ts>2016-04-26 16:34:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157008-20160425212208.patch</filename>
            <type>text/plain</type>
            <size>17763</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzNjFhMGFiODM0ZTI2
ZGFjNzJhY2ZjZDMzZjZlZTQ0MDI5Y2I0OC4uZDcyOTliYjg5NDQwNTY4ZTlkYmJlNDJkZjg3MTYy
OWZmOWIxNTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTA0LTI1ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEhhdmUgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjIGdldCB0aGUgcGxheWJhY2sgcmF0ZSBmcm9tIFdlYlBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU3MDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmlnaHQgbm93IGJvdGggV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIGFu
ZCBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMga2VlcCB0cmFjayBvZgorICAgICAgICB0
aGUgcGxheWJhY2sgcmF0ZSBzZXBhcmF0ZWx5LiBTaW5jZSBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWMgaG9sZHMgYSByZWZlcmVuY2UgdG8KKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjIGFueXdheSwgaXQgc2hvdWxkIGp1c3QgZ2V0IGl0cyBwbGF5YmFjayByYXRl
IGZyb20KKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLgorCisgICAgICAg
IEZvciBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgdG8gYmUgbm90aWZpZWQgd2hlbiB0
aGUgcGxheWJhY2sgcmF0ZSBjaGFuZ2VzIGluCisgICAgICAgIFdlYlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYywgYWRkIGEgbmV3IFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVu
dCBiYXNlCisgICAgICAgIGNsYXNzIHRoYXQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
IGltcGxlbWVudHMsIHNpbWlsYXIgdG8gdGhlIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Q2xpZW50CisgICAgICAgIG9uIGlPUy4gV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
IHNldHMgaXRzZWxmIGFzIGEgY2xpZW50IG9mIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
YworICAgICAgICBzbyBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMgY2FuIG5vdGlmeSBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgd2hlbmV2ZXIgdGhlCisgICAgICAgIHBsYXli
YWNrIHJhdGUgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6OnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk6CisgICAg
ICAgIFdlIHNob3VsZCBub3QgY2hhbmdlIHRoZSBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudCdzIGludGVyZmFjZSBoZXJlIHNpbmNlIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIK
KyAgICAgICAgaGFzIGFscmVhZHkgc2V0IHRoYXQgdXAgd2hlbiBjcmVhdGluZyB0aGUgY29udGV4
dCBmb3IgdGhpcyBtZWRpYSBlbGVtZW50LgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRWxlbWVudCk6CisgICAgICAgIFdlIHNob3VsZCBub3Qg
Y2hhbmdlIHRoZSBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudCdzIG1lZGlhIGVs
ZW1lbnQgaGVyZSBiZWNhdXNlCisgICAgICAgIHRoaXMgd2lsbCBiZSBjYWxsZWQgd2l0aCBOVUxM
IHdoZW4gdGhlIGZ1bGxzY3JlZW4gY29udGV4dCBpcyBjbGVhbmVkIHVwLCBidXQgdGhlCisgICAg
ICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50IG1pZ2h0IHN0aWxsIG5lZWQg
dG8gc3RheSBhcm91bmQuIFdlJ2xsIG1ha2Ugc3VyZSB0aGUKKyAgICAgICAgV2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQncyBtZWRpYSBlbGVtZW50IGlzIHNldCB3aGVuIHNldHRp
bmcgdXAgdGhlIGZ1bGxzY3JlZW4KKyAgICAgICAgY29udGV4dCBpbiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgpLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjQ2xpZW50Ojp+V2Vi
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjQ2xpZW50KToKKworICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnNldFJhdGUpOgorICAgICAgICBJZiBh
IGNsaWVudCBpcyBzZXQsIGxldCB0aGF0IGNsaWVudCBrbm93IGFib3V0IHRoZSBjaGFuZ2UgaW4g
cGxheWJhY2sgcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZU1hYzo6cGxheWJhY2tSYXRlKToKKyAgICAgICAgR2V0IHRoZSByYXRlIGZyb20gdGhlIHBs
YXlCYWNrQ29udHJvbHNNYW5hZ2VyKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYzo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKToK
KyAgICAgICAgU2V0IGl0c2VsZiBhcyBhIGNsaWVudCBvZiBXZWJQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWMuCisgICAgICAgIChXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWM6On5XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMpOgorICAgICAgICBNYWtlIHN1cmUg
V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjIHdvbid0IGhvbGQgb250byBhIHN0YWxlIHBv
aW50ZXIgdG8gaXRzZWxmLgorICAgICAgICAoV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlTWFjOjpzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCk6CisgICAgICAgIFdlIHNob3Vs
ZCBub3QgY2hhbmdlIHRoZSBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UncyBtb2RlbCBoZXJl
LCBzaW5jZSBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyCisgICAgICAgIGhhcyBhbHJlYWR5IHNl
dCB0aGF0IHVwIHdoZW4gY3JlYXRpbmcgdGhlIGNvbnRleHQgZm9yIHRoaXMgbWVkaWEgZWxlbWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0
UmF0ZSk6CisgICAgICAgIFdlIGRvbid0IGhhdmUgdG8gdXBkYXRlIHRoZSBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMncyByYXRlIGhlcmUgYW55bW9yZS4gVGhlIGNoYW5nZQorICAgICAg
ICBpbiBwbGF5YmFjayByYXRlIGluIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyBzaG91
bGQgdHJpZ2dlciBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnBsYXliYWNrUmF0ZURp
ZENoYW5nZSgpCisgICAgICAgIHRvIGJlIGNhbGxlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
OjpwbGF5YmFja1JhdGUpOgorICAgICAgICBHZXQgdGhlIHBsYXliYWNrIHJhdGUgZnJvbSBXZWJQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuCisgICAgICAgIChXZWJDb3JlOjpXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnBsYXliYWNrUmF0ZURpZENoYW5nZSk6CisKIDIwMTYtMDQt
MjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVG9n
Z2xpbmcgYW5pbWF0aW9uLXBsYXktc3RhdGUgY2FuIHJlLXN0YXJ0IGEgZmluaXNoZWQgYW5pbWF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOGJkNDI3NTRhMmY1ZDQ3ZTI1NjFjMmI3NzlkMTA0YzI4NjUxOTQx
ZS4uNmNmMzA2YzM3ZjUzNWRmMjMyNmY1YTVkMmEzZDUzZjg3OTIwMjJlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM5IEBACisyMDE2LTA0LTI1ICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29t
PgorCisgICAgICAgIEhhdmUgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIGdldCB0aGUg
cGxheWJhY2sgcmF0ZSBmcm9tIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjIGhvbGRzIG9udG8gV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjLCB3ZSBjYW4ndCBsZXQKKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5IHVucmVnaXN0ZXIgdGhlIGNvbnRleHQgZm9yIHRoYXQgbWVkaWEgZWxlbWVudCB3aGlsZQor
ICAgICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgaXMgc3RpbGwgdXNpbmcgaXQu
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYyBzaG91bGQgYWRkCisgICAgICAgIHRvIHRo
ZSBjbGllbnQgY291bnQgZm9yIHRoYXQgV2ViUGxheWJhY2tTZXNzaW9uIGNvbnRleHQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0
ZU1vZGVsQW5kSW50ZXJmYWNlKToKKyAgICAgICAgV2hlbiB0aGUgY29udGV4dCBmb3IgdGhlIG1l
ZGlhIGVsZW1lbnQgaXMgY3JlYXRlZCB3aXRoIHRoZSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHksIGl0IHNob3VsZAorICAgICAgICBhZGQgb25lIHRvIHRoZSBjbGllbnQgY291bnQgZm9y
IHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQgaW4gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5LgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJl
bW92ZUNsaWVudEZvckNvbnRleHQpOgorICAgICAgICBXaGVuIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eSB1bnJlZ2lzdGVycyB0aGUgY29udGV4dCBmb3IgdGhpcyBtZWRpYSBlbGVtZW50
LCBpdCBzaG91bGQKKyAgICAgICAgc3VidHJhY3Qgb25lIGZyb20gdGhlIGNsaWVudCBjb3VudCBm
b3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4dCBpbiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OmNs
ZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIpOgorICAgICAgICBCYWlsIGVhcmx5IGlmIG1fY29u
dHJvbHNNYW5hZ2VyQ29udGV4dElkIGlzIHplcm8uIE90aGVyd2lzZSwgd2UnZCBlbmQgdXAgc2Vu
ZGluZyBhCisgICAgICAgIENsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIgbWVzc2FnZSB0byB0
aGUgVUkgcHJvY2VzcyBpbmFkdmVydGVudGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpjcmVhdGVNb2RlbEFuZEludGVyZmFjZSk6CisgICAgICAgIFdo
ZW4gdGhlIGNvbnRleHQgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGlzIGNyZWF0ZWQgd2l0aCB0aGUg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciwgaXQgc2hvdWxkCisgICAgICAgIGFkZCBvbmUgdG8g
dGhlIGNsaWVudCBjb3VudCBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4dCBpbiBXZWJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpyZW1vdmVDb250ZXh0KToKKyAgICAgICAgV2hlbiBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyIHVucmVnaXN0ZXJzIHRoZSBjb250ZXh0IGZvciB0aGlzIG1lZGlhIGVsZW1lbnQsIGl0
IHNob3VsZAorICAgICAgICBzdWJ0cmFjdCBvbmUgZnJvbSB0aGUgY2xpZW50IGNvdW50IGZvciB0
aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0IGluIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIE1ha2Ugc3VyZSB0aGUgV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQncyBtZWRpYSBlbGVtZW50IGlzIHNldC4KKwogMjAx
Ni0wNC0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNo
IHVuZGVyIC1bV0tXZWJWaWV3IF9tYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGlj
dHVyZV0gKyAzMiAoV0tXZWJWaWV3Lm1tOjMwOSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW0KaW5kZXggMzRiNmI1ZWQwNTg0NDdhNjFlMGE3MjkzNmRhMWEwMjI5MTgxMTA0
Ni4uMjliYzZkZTU1OTZmMmVmMDA3OTk4NThmODhmMjY0ZGVlZjhjMWY5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAgLTY3LDcgKzY3LDYgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlKFdlYlZpZGUKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UgPSBpbnRlcmZhY2U7Ci0gICAgbV9wbGF5YmFja1Nlc3Npb25Nb2RlbC0+c2V0V2Vi
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKGludGVyZmFjZSk7CiAKICAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UgJiYgbV92aWRlb0VsZW1lbnQpCiAgICAgICAgIG1fdmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlLT5zZXRWaWRlb0RpbWVuc2lvbnModHJ1ZSwgbV92aWRlb0VsZW1lbnQt
PnZpZGVvV2lkdGgoKSwgbV92aWRlb0VsZW1lbnQtPnZpZGVvSGVpZ2h0KCkpOwpAQCAtNzUsNyAr
NzQsNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UoV2ViVmlkZQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCogdmlk
ZW9FbGVtZW50KQogewotICAgIG1fcGxheWJhY2tTZXNzaW9uTW9kZWwtPnNldE1lZGlhRWxlbWVu
dCh2aWRlb0VsZW1lbnQpOwogICAgIGlmIChtX3ZpZGVvRWxlbWVudCA9PSB2aWRlb0VsZW1lbnQp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCmluZGV4IDE4ZDI2YmI3
ZTFmZTQwNDcwMjYxOTVlMDlhNTM3NzljMjBlN2U3Y2UuLmZmZGQ4MjAwZTNkOGUzYTk2YWYwMDBl
YjIzMGQxYjRiMTY2ZTZhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmgKQEAgLTQwLDYgKzQw
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBXZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbDsKIAorY2xhc3MgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWNDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1JhdGVEaWRDaGFu
Z2UoKSA9IDA7Cit9OworCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWMgZmluYWwKICAgICA6IHB1YmxpYyBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2UKICAgICAsIHB1YmxpYyBSZWZDb3VudGVkPFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
Yz4gewpAQCAtNTEsNiArNTgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZU1hYygpOwogICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsKiB3ZWJQ
bGF5YmFja1Nlc3Npb25Nb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTZXNzaW9uTW9k
ZWw7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
KFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsKik7CisgICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZv
aWQgc2V0Q2xpZW50KFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVudCogY2xpZW50
KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisKKyAgICBmbG9hdCBwbGF5YmFja1JhdGUoKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXRNZWRpYVN0YXRlKCkgZmluYWwgeyB9CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREdXJhdGlvbihkb3VibGUpIGZpbmFsOwpAQCAtNzAsNiAr
ODEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsKiBt
X3BsYXliYWNrU2Vzc2lvbk1vZGVsIHsgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxXZWJQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcj4gbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlcjsKKyAgICBXZWJQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWNDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KaW5kZXggZTAxZGE5MTE3ZGQ4ZDNlYmU0
OGMxMDJiMjJkNjMzYTY1Zjc4MGYxMi4uMmE1NDM1ZDk3ZGVjZWI3ZDAwNjYxMTk0MDU2ZTc4ZDI5
YTlmZTgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tCkBAIC0xNTksNiArMTU5LDE0IEBA
IHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpzZXRSYXRlKGJvb2wgaXNQbGF5
aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpCiAgICAgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIq
IGNvbnRyb2xzTWFuYWdlciA9IHBsYXlCYWNrQ29udHJvbHNNYW5hZ2VyKCk7CiAKICAgICBbY29u
dHJvbHNNYW5hZ2VyIHNldFJhdGU6aXNQbGF5aW5nID8gcGxheWJhY2tSYXRlIDogMC5dOworCisg
ICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cGxheWJhY2tSYXRlRGlkQ2hhbmdl
KCk7Cit9CisKK2Zsb2F0IFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6cGxheWJhY2tS
YXRlKCkKK3sKKyAgICByZXR1cm4gcGxheUJhY2tDb250cm9sc01hbmFnZXIoKS5yYXRlOwogfQog
CiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6c2V0U2Vla2FibGVSYW5nZXMo
Y29uc3QgVGltZVJhbmdlcyYgdGltZVJhbmdlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaAppbmRl
eCBmYjhjYzhmNzVkY2I5Y2NmMjBjMGJkYjQzOTc2NmRiZjI3ZWQ0NTAwLi41MzY3ODZkZjY5Zjlj
OTc4YmJiNzUyOWIyZWFjYWNhMDk2ZWNiZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCiAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50RW51bXMuaCIKKyNpbmNs
dWRlICJXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaCIKICNpbmNsdWRlICJXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTQ4LDYgKzQ5LDcgQEAgY2xhc3MgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWw7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYwogICAgIDogcHVibGljIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZQor
ICAgICwgcHJpdmF0ZSBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWNDbGllbnQKICAgICAs
IHB1YmxpYyBSZWZDb3VudGVkPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYz4gewogCiBw
dWJsaWM6CkBAIC05Myw2ICs5NSw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IG1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5QaWN0dXJlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkgeyB9CiAK
KyAgICBmbG9hdCBwbGF5YmFja1JhdGUoKTsKKyAgICB2b2lkIHBsYXliYWNrUmF0ZURpZENoYW5n
ZSgpIG92ZXJyaWRlOworCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICAgICBXRUJDT1JF
X0VYUE9SVCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWNPYmpDICp2aWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VPYmpDKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4
IGY2MWZlZmYxMTY1ZDZkZmE1OWYyODE5NThiZDhhNTZiM2I4NTFlNTAuLjlhMTQyYTI5M2Y0ZTYx
ZDM1YzI4YzhjZTJjODdjMDI4ZGI1ZWQ5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQpA
QCAtNTEsMTYgKzUxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYzo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKFdlYlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZU1hYyYgcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQogICAgIDogbV9w
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2UocGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQogeworICAg
IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLT5zZXRDbGllbnQodGhpcyk7CiB9CiAKIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6fldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
YygpCiB7CisgICAgaWYgKG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLT5jbGllbnQoKSA9PSB0
aGlzKQorICAgICAgICBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZS0+c2V0Q2xpZW50KG51bGxw
dHIpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWwoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwqIG1vZGVsKQogewogICAg
IG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwgPSBtb2RlbDsKLSAgICBtX3BsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZS0+c2V0V2ViUGxheWJhY2tTZXNzaW9uTW9kZWwobW9kZWwpOwogfQogCiB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0V2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIoV2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIqIG9ic2VydmVyKQpAQCAt
MTAzLDkgKzEwNSwxNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0
Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYQogdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXli
YWNrUmF0ZSkKIHsKICAgICBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZS0+c2V0UmF0ZShpc1Bs
YXlpbmcsIHBsYXliYWNrUmF0ZSk7Cit9CiAKK2Zsb2F0IFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYzo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpwbGF5YmFja1JhdGUoKQor
eworICAgIHJldHVybiBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZS0+cGxheWJhY2tSYXRlKCk7
Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpwbGF5YmFja1JhdGVE
aWRDaGFuZ2UoKQorewogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0gICAgW3ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU9iakMoKSBzZXRSYXRlOmlzUGxheWluZyA/IHBsYXliYWNrUmF0ZSA6
IDAuXTsKKyAgICBbdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQygpIHVwZGF0ZVBsYXliYWNr
UmF0ZV07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXgg
MDBjNzA1ZmRlZDAzMDA0NTYxYWEzNDAwNzY1MjEwNWZiOWEzNTgyYy4uNjA4MzQ5YTE2NzFlZDZh
NDhiMDc1MGQ2NGQyODA4YTU2M2E4NTYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tCkBAIC0zMTgsNiArMzE4LDcgQEAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpN
b2RlbEludGVyZmFjZVR1cGxlIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm8KICAgICBSZWY8
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0PiBtb2RlbCA9IFdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsQ29udGV4dDo6Y3JlYXRlKCp0aGlzLCBwbGF5YmFja1Nlc3Npb25Nb2RlbCwgY29udGV4
dElkKTsKICAgICBhdXRvJiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSBtX3BsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eS0+ZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAgICAgUmVmPFBs
YXRmb3JtV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlPiBpbnRlcmZhY2UgPSBQbGF0Zm9ybVdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZTo6Y3JlYXRlKHBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZSk7CisgICAgbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHktPmFkZENsaWVudEZvckNvbnRl
eHQoY29udGV4dElkKTsKIAogICAgIGludGVyZmFjZS0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWwoJm1vZGVsLmdldCgpKTsKICAgICBpbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyKCZtb2RlbC5nZXQoKSk7CkBAIC0zNTksNiArMzYwLDcgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlbW92ZUNsaWVudEZvckNvbnRleHQodWludDY0
X3QgY29udGV4dElkKQogICAgIGNsaWVudENvdW50LS07CiAKICAgICBpZiAoY2xpZW50Q291bnQg
PD0gMCkgeworICAgICAgICBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS0+cmVtb3ZlQ2xp
ZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwogICAgICAgICBtX2NsaWVudENvdW50cy5yZW1vdmUo
Y29udGV4dElkKTsKICAgICAgICAgbV9jb250ZXh0TWFwLnJlbW92ZShjb250ZXh0SWQpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KaW5kZXggOGQ4Zjk5MzQ2MmM2NGE4
NWEwMDkyOWU3YzM1NWI0N2ExMWMxZGVmMC4uZjBkMjk2MGM1NTgzYzQ0OTU2Y2MxYWU3YWY1MWJk
YWM0YjJiNjQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQpAQCAtMjYxLDcgKzI2MSw3IEBA
IHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFu
YWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFCiAgICAgaWYgKGZvdW5kSXRlcmF0b3IgPT0gbV9tZWRp
YUVsZW1lbnRzLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9jb250cm9sc01h
bmFnZXJDb250ZXh0SWQgIT0gZm91bmRJdGVyYXRvci0+dmFsdWUpCisgICAgaWYgKCFtX2NvbnRy
b2xzTWFuYWdlckNvbnRleHRJZCB8fCBtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCAhPSBmb3Vu
ZEl0ZXJhdG9yLT52YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcmVtb3ZlQ2xpZW50Rm9y
Q29udGV4dChtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KaW5kZXggMjUyMjI2Zjc3MjE2N2I1NTYxNTMwMTliN2U3YTU3ZWRkMTQxMThiNS4uMmVlOWU3
YmE0MjJjN2ZiMGZmMTBlMjU4YTZiMjMxNGRlMDMzYmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbQpAQCAtMTc5LDYgKzE3OSw3IEBAIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Ok1vZGVs
SW50ZXJmYWNlVHVwbGUgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlCiAgICAgUmVm
UHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50PiBtb2RlbCA9IFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpjcmVhdGUocGxheWJhY2tTZXNzaW9uTW9kZWwp
OwogICAgIGF1dG8mIHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IG1fcGxheWJhY2tTZXNzaW9u
TWFuYWdlci0+ZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZSA9IFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUNvbnRleHQ6OmNyZWF0ZSgqdGhpcywgcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
LCBjb250ZXh0SWQpOworICAgIG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlci0+YWRkQ2xpZW50Rm9y
Q29udGV4dChjb250ZXh0SWQpOwogCiAgICAgaW50ZXJmYWNlLT5zZXRMYXllckhvc3RpbmdDb250
ZXh0KExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3Mo
KSk7CiAgICAgbW9kZWwtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZShpbnRlcmZhY2Uu
Z2V0KCkpOwpAQCAtMjEwLDYgKzIxMSw4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6cmVtb3ZlQ29udGV4dCh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKICAgICBzdGQ6OnRpZShtb2Rl
bCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAKKyAg
ICBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXItPnJlbW92ZUNsaWVudEZvckNvbnRleHQoY29udGV4
dElkKTsKKwogICAgIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiB2aWRlb0VsZW1lbnQgPSBtb2Rl
bC0+dmlkZW9FbGVtZW50KCk7CiAgICAgbW9kZWwtPnNldFZpZGVvRWxlbWVudChudWxscHRyKTsK
ICAgICBtb2RlbC0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKG51bGxwdHIpOwpAQCAt
MjY4LDYgKzI3MSw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlCiAgICAgUmVmUHRyPFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50PiBtb2RlbDsKICAgICBSZWZQdHI8V2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dD4gaW50ZXJmYWNlOwogICAgIHN0ZDo6dGllKG1v
ZGVsLCBpbnRlcmZhY2UpID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKKyAg
ICBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXItPmVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0TWVk
aWFFbGVtZW50KCZ2aWRlb0VsZW1lbnQpOwogICAgIGFkZENsaWVudEZvckNvbnRleHQoY29udGV4
dElkKTsKICAgICBpZiAoIWludGVyZmFjZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgpKQogICAgICAg
ICBpbnRlcmZhY2UtPnNldExheWVySG9zdGluZ0NvbnRleHQoTGF5ZXJIb3N0aW5nQ29udGV4dDo6
Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277420</attachid>
            <date>2016-04-26 16:34:17 -0700</date>
            <delta_ts>2016-04-27 15:18:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157008-20160426163446.patch</filename>
            <type>text/plain</type>
            <size>17483</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzNjFhMGFiODM0ZTI2
ZGFjNzJhY2ZjZDMzZjZlZTQ0MDI5Y2I0OC4uMjA3MDllMTdlZjMyMDQ4OGI1ZjE2YmVlMmUxNWQ3
MDY0Y2Y3MjdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTA0LTI2ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMgdXAgYXMgYSBjbGllbnQgb2YgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjIHRvIGxpc3RlbiBmb3IgcGxheWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDA4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYyB0byBiZSBub3RpZmllZCB3aGVuIHRoZSBwbGF5YmFjayByYXRlIGNoYW5n
ZXMgaW4KKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLCBhZGQgYSBuZXcg
V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjQ2xpZW50IGJhc2UKKyAgICAgICAgY2xhc3Mg
dGhhdCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgaW1wbGVtZW50cywgc2ltaWxhciB0
byB0aGUgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXRDbGllbnQKKyAgICAgICAgb24g
aU9TLiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgc2V0cyBpdHNlbGYgYXMgYSBjbGll
bnQgb2YgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjCisgICAgICAgIHNvIFdlYlBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYyBjYW4gbm90aWZ5IFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYyB3aGVuZXZlciB0aGUKKyAgICAgICAgcGxheWJhY2sgcmF0ZSBjaGFuZ2VzLgorCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKToKKyAgICAgICAgV2Ugc2hvdWxkIG5vdCBjaGFu
Z2UgdGhlIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50J3MgaW50ZXJmYWNlIGhl
cmUgc2luY2UgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcgorICAgICAgICBoYXMgYWxyZWFkeSBz
ZXQgdGhhdCB1cCB3aGVuIGNyZWF0aW5nIHRoZSBjb250ZXh0IGZvciB0aGlzIG1lZGlhIGVsZW1l
bnQuCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0Vmlk
ZW9FbGVtZW50KToKKyAgICAgICAgV2Ugc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIFdlYlBsYXliYWNr
U2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50J3MgbWVkaWEgZWxlbWVudCBoZXJlIGJlY2F1c2UKKyAg
ICAgICAgdGhpcyB3aWxsIGJlIGNhbGxlZCB3aXRoIE5VTEwgd2hlbiB0aGUgZnVsbHNjcmVlbiBj
b250ZXh0IGlzIGNsZWFuZWQgdXAsIGJ1dCB0aGUKKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQgbWlnaHQgc3RpbGwgbmVlZCB0byBzdGF5IGFyb3VuZC4gV2UnbGwg
bWFrZSBzdXJlIHRoZQorICAgICAgICBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dCdzIG1lZGlhIGVsZW1lbnQgaXMgc2V0IHdoZW4gc2V0dGluZyB1cCB0aGUgZnVsbHNjcmVlbgor
ICAgICAgICBjb250ZXh0IGluIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2Vi
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VNYWNDbGllbnQ6On5XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWNDbGllbnQpOgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYzo6c2V0Q2xpZW50KToKKyAgICAgICAgU2V0IHRoZSBjbGllbnQuIE5vdGlmeSB0
aGUgY2xpZW50IGFib3V0IHRoZSBjdXJyZW50IHBsYXliYWNrIHN0YXRlLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpzZXRSYXRlKToKKyAgICAgICAg
SWYgYSBjbGllbnQgaXMgc2V0LCBsZXQgdGhhdCBjbGllbnQga25vdyBhYm91dCB0aGUgY2hhbmdl
IGluIHBsYXliYWNrIHJhdGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU1hYzo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKToKKyAgICAg
ICAgU2V0IGl0c2VsZiBhcyBhIGNsaWVudCBvZiBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VN
YWMuCisgICAgICAgIChXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6On5X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMpOgorICAgICAgICBNYWtlIHN1cmUgV2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjIHdvbid0IGhvbGQgb250byBhIHN0YWxlIHBvaW50ZXIg
dG8gaXRzZWxmLgorICAgICAgICAoV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjOjpzZXRSYXRlKToKKyAgICAgICAgV2UgZG9uJ3QgaGF2ZSB0byB1cGRhdGUgdGhlIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYydzIHJhdGUgaGVyZSBhbnltb3JlLiBUaGUgY2hhbmdl
CisgICAgICAgIGluIHBsYXliYWNrIHJhdGUgaW4gV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjIHNob3VsZCB0cmlnZ2VyCisgICAgICAgIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yzo6cmF0ZUNoYW5nZWQoKSB0byBiZSBjYWxsZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgUGFzcyBpbiBi
b3RoIHRoZSBpc1BsYXlpbmcgc3RhdGUgYW5kIHRoZSBwbGF5YmFjayByYXRlIHRvIFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hY09iakMuCisKIDIwMTYtMDQtMjUgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVG9nZ2xpbmcgYW5pbWF0aW9uLXBs
YXktc3RhdGUgY2FuIHJlLXN0YXJ0IGEgZmluaXNoZWQgYW5pbWF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
OGJkNDI3NTRhMmY1ZDQ3ZTI1NjFjMmI3NzlkMTA0YzI4NjUxOTQxZS4uZjc1ZGZjZWY1MGUzYTIw
NWVkY2JmNjYyMzNhM2Y5ODQzNTg3Y2RmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisy
MDE2LTA0LTI2ICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgdXAgYXMgYSBjbGllbnQgb2YgV2ViUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlTWFjIHRvIGxpc3RlbiBmb3IgcGxheWJhY2sgc3RhdGUgY2hhbmdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDA4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ug
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIGhvbGRzIG9udG8gV2ViUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlTWFjLCB3ZSBjYW4ndCBsZXQKKyAgICAgICAgV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5IHVucmVnaXN0ZXIgdGhlIGNvbnRleHQgZm9yIHRoYXQgbWVkaWEgZWxlbWVu
dCB3aGlsZQorICAgICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMgaXMgc3RpbGwg
dXNpbmcgaXQuIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYyBzaG91bGQgYWRkCisgICAg
ICAgIHRvIHRoZSBjbGllbnQgY291bnQgZm9yIHRoYXQgV2ViUGxheWJhY2tTZXNzaW9uIGNvbnRl
eHQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1vZGVsQW5kSW50ZXJmYWNlKToKKyAgICAgICAgV2hlbiB0aGUgY29udGV4dCBm
b3IgdGhlIG1lZGlhIGVsZW1lbnQgaXMgY3JlYXRlZCB3aXRoIHRoZSBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHksIGl0IHNob3VsZAorICAgICAgICBhZGQgb25lIHRvIHRoZSBjbGllbnQg
Y291bnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQgaW4gV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5LgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnJlbW92ZUNsaWVudEZvckNvbnRleHQpOgorICAgICAgICBXaGVuIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eSB1bnJlZ2lzdGVycyB0aGUgY29udGV4dCBmb3IgdGhpcyBtZWRp
YSBlbGVtZW50LCBpdCBzaG91bGQKKyAgICAgICAgc3VidHJhY3Qgb25lIGZyb20gdGhlIGNsaWVu
dCBjb3VudCBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4dCBpbiBXZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXI6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIpOgorICAgICAgICBCYWlsIGVhcmx5
IGlmIG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIGlzIHplcm8uIE90aGVyd2lzZSwgd2UnZCBl
bmQgdXAgc2VuZGluZyBhCisgICAgICAgIENsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIgbWVz
c2FnZSB0byB0aGUgVUkgcHJvY2VzcyBpbmFkdmVydGVudGx5LgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpjb250ZXh0SWRGb3JNZWRpYUVsZW1lbnQpOgorICAg
ICAgICBNYWtlIHN1cmUgdGhlIG1vZGVsIGVsZW1lbnQgZm9yIHRoZSBjb250ZXh0IElEIGlzIHNl
dCB0byB0aGUgbWVkaWEgZWxlbWVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6Y3JlYXRlTW9kZWxBbmRJbnRlcmZhY2UpOgorICAgICAgICBXaGVuIHRo
ZSBjb250ZXh0IGZvciB0aGUgbWVkaWEgZWxlbWVudCBpcyBjcmVhdGVkIHdpdGggdGhlIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIsIGl0IHNob3VsZAorICAgICAgICBhZGQgb25lIHRvIHRoZSBj
bGllbnQgY291bnQgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQgaW4gV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6cmVtb3ZlQ29udGV4dCk6CisgICAgICAgIFdoZW4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ciB1bnJlZ2lzdGVycyB0aGUgY29udGV4dCBmb3IgdGhpcyBtZWRpYSBlbGVtZW50LCBpdCBzaG91
bGQKKyAgICAgICAgc3VidHJhY3Qgb25lIGZyb20gdGhlIGNsaWVudCBjb3VudCBmb3IgdGhlIG1l
ZGlhIGVsZW1lbnQgY29udGV4dCBpbiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLgorCiAyMDE2
LTA0LTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2gg
dW5kZXIgLVtXS1dlYlZpZXcgX21heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5QaWN0
dXJlXSArIDMyIChXS1dlYlZpZXcubW06MzA5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5tbQppbmRleCAzNGI2YjVlZDA1ODQ0N2E2MWUwYTcyOTM2ZGExYTAyMjkxODExMDQ2
Li4yOWJjNmRlNTU5NmYyZWYwMDc5OTg1OGY4OGYyNjRkZWVmOGMxZjkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpAQCAtNjcsNyArNjcsNiBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UoV2ViVmlkZQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSA9IGludGVyZmFjZTsKLSAgICBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsLT5zZXRXZWJQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2UoaW50ZXJmYWNlKTsKIAogICAgIGlmIChtX3ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZSAmJiBtX3ZpZGVvRWxlbWVudCkKICAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UtPnNldFZpZGVvRGltZW5zaW9ucyh0cnVlLCBtX3ZpZGVvRWxlbWVudC0+
dmlkZW9XaWR0aCgpLCBtX3ZpZGVvRWxlbWVudC0+dmlkZW9IZWlnaHQoKSk7CkBAIC03NSw3ICs3
NCw2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnNldFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZShXZWJWaWRlCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiB2aWRl
b0VsZW1lbnQpCiB7Ci0gICAgbV9wbGF5YmFja1Nlc3Npb25Nb2RlbC0+c2V0TWVkaWFFbGVtZW50
KHZpZGVvRWxlbWVudCk7CiAgICAgaWYgKG1fdmlkZW9FbGVtZW50ID09IHZpZGVvRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmgKaW5kZXggMThkMjZiYjdl
MWZlNDA0NzAyNjE5NWUwOWE1Mzc3OWMyMGU3ZTdjZS4uYTEzYjNkMzc0NDM2ZGU5MTc2MWYwZDE0
NjNlZGNmNzYxMmRmYTExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaApAQCAtNDAsNiArNDAs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsOwogCitjbGFzcyBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWND
bGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZU1hY0NsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQ
bGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKK307CisKIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyBmaW5hbAogICAgIDogcHVibGljIFdl
YlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZQogICAgICwgcHVibGljIFJlZkNvdW50ZWQ8V2ViUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjPiB7CkBAIC01MSw2ICs1OCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMoKTsKICAgICBXZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbCogd2ViUGxheWJhY2tTZXNzaW9uTW9kZWwoKSBjb25zdCB7IHJldHVy
biBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbChXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbCopOworICAgIFdl
YlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNldENsaWVudChXZWJQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWNDbGllbnQqKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXRNZWRpYVN0
YXRlKCkgZmluYWwgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREdXJhdGlvbihkb3Vi
bGUpIGZpbmFsOwpAQCAtNzAsNiArNzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsKiBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsIHsgbnVsbHB0ciB9Owog
ICAgIFJldGFpblB0cjxXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcj4gbV9wbGF5YmFja0NvbnRy
b2xzTWFuYWdlcjsKKyAgICBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWNDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KaW5k
ZXggZTAxZGE5MTE3ZGQ4ZDNlYmU0OGMxMDJiMjJkNjMzYTY1Zjc4MGYxMi4uZDcwZjdhYTAxNmVi
NGUwYmJlMTRiZTJiZGM0YWI4YWM3NmYyNmEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1t
CkBAIC0xMzIsNiArMTMyLDE2IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
OjpzZXRXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbChXZWJQbGF5YmFja1Nlc3NpCiAgICAgbV9wbGF5
YmFja1Nlc3Npb25Nb2RlbCA9IG1vZGVsOwogfQogCit2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYzo6c2V0Q2xpZW50KFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVu
dCogY2xpZW50KQoreworICAgIG1fY2xpZW50ID0gY2xpZW50OworCisgICAgaWYgKG1fY2xpZW50
KSB7CisgICAgICAgIGZsb2F0IHJhdGUgPSBbcGxheUJhY2tDb250cm9sc01hbmFnZXIoKSByYXRl
XTsKKyAgICAgICAgbV9jbGllbnQtPnJhdGVDaGFuZ2VkKCEhcmF0ZSwgcmF0ZSk7CisgICAgfQor
fQorCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6c2V0RHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKQogewogICAgIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKiBjb250cm9s
c01hbmFnZXIgPSBwbGF5QmFja0NvbnRyb2xzTWFuYWdlcigpOwpAQCAtMTU3LDggKzE2NywxMCBA
QCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6c2V0Q3VycmVudFRpbWUoZG91
YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYQogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWM6OnNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkKIHsKICAg
ICBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlciogY29udHJvbHNNYW5hZ2VyID0gcGxheUJhY2tD
b250cm9sc01hbmFnZXIoKTsKLQogICAgIFtjb250cm9sc01hbmFnZXIgc2V0UmF0ZTppc1BsYXlp
bmcgPyBwbGF5YmFja1JhdGUgOiAwLl07CisKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1f
Y2xpZW50LT5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIHBsYXliYWNrUmF0ZSk7CiB9CiAKIHZvaWQg
V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBU
aW1lUmFuZ2VzJiB0aW1lUmFuZ2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCmluZGV4IGZiOGNj
OGY3NWRjYjljY2YyMGMwYmRiNDM5NzY2ZGJmMjdlZDQ1MDAuLjI5Y2QxYWZhNTljNjg0NzU5MzU2
ZmEzZWIyMTk3ZDBhY2ZkNDk2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKIAogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgorI2luY2x1ZGUgIldl
YlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oIgogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgpAQCAtNDgsNiArNDksNyBAQCBjbGFzcyBXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbDsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlTWFjCiAgICAgOiBwdWJsaWMgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlCisgICAgLCBw
cml2YXRlIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hY0NsaWVudAogICAgICwgcHVibGlj
IFJlZkNvdW50ZWQ8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjPiB7CiAKIHB1YmxpYzoK
QEAgLTkzLDYgKzk1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0
b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZvaWQgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKSB7IH0KIAorICAgIHZv
aWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJp
ZGU7CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogICAgIFdFQkNPUkVfRVhQT1JUIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hY09iakMgKnZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU9iakMoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXggZjYxZmVmZjEx
NjVkNmRmYTU5ZjI4MTk1OGJkOGE1NmIzYjg1MWU1MC4uOWIyNGZmZDRiZjhiMTYwMjJkYzkxNzgw
MDhlMzkwZDY4NTRhYjE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCkBAIC01MSwxNiAr
NTEsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoV2ViUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjJiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgOiBtX3BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiB7CisgICAgbV9wbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UtPnNldENsaWVudCh0aGlzKTsKIH0KIAogV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjOjp+V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKCkKIHsKKyAg
ICBpZiAobV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UtPmNsaWVudCgpID09IHRoaXMpCisgICAg
ICAgIG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogbW9kZWwpCiB7CiAgICAgbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlbCA9IG1vZGVsOwotICAgIG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLT5z
ZXRXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbChtb2RlbCk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihX
ZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCkBAIC0xMDMsOSArMTA1
LDEyIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRDdXJyZW50VGlt
ZShkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBhCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYzo6c2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKQog
ewogICAgIG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLT5zZXRSYXRlKGlzUGxheWluZywgcGxh
eWJhY2tSYXRlKTsKK30KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnJh
dGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpCit7CiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKLSAgICBbdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQygp
IHNldFJhdGU6aXNQbGF5aW5nID8gcGxheWJhY2tSYXRlIDogMC5dOworICAgIFt2aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VPYmpDKCkgdXBkYXRlSXNQbGF5aW5nOmlzUGxheWluZyBuZXdQbGF5YmFj
a1JhdGU6cGxheWJhY2tSYXRlXTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbQppbmRleCAwMGM3MDVmZGVkMDMwMDQ1NjFhYTM0MDA3NjUyMTA1ZmI5YTM1ODJjLi42
MDgzNDlhMTY3MWVkNmE0OGIwNzUwZDY0ZDI4MDhhNTYzYTg1NjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubW0KQEAgLTMxOCw2ICszMTgsNyBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6Ok1vZGVsSW50ZXJmYWNlVHVwbGUgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clBybwogICAgIFJlZjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ+IG1vZGVsID0gV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpjcmVhdGUoKnRoaXMsIHBsYXliYWNrU2Vzc2lv
bk1vZGVsLCBjb250ZXh0SWQpOwogICAgIGF1dG8mIHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9
IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LT5lbnN1cmVJbnRlcmZhY2UoY29udGV4dElk
KTsKICAgICBSZWY8UGxhdGZvcm1XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2U+IGludGVyZmFj
ZSA9IFBsYXRmb3JtV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlOjpjcmVhdGUocGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlKTsKKyAgICBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS0+YWRk
Q2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwogCiAgICAgaW50ZXJmYWNlLT5zZXRXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbCgmbW9kZWwuZ2V0KCkpOwogICAgIGludGVyZmFjZS0+c2V0V2ViVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIoJm1vZGVsLmdldCgpKTsKQEAgLTM1OSw2ICszNjAs
NyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVtb3ZlQ2xpZW50Rm9y
Q29udGV4dCh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgY2xpZW50Q291bnQtLTsKIAogICAgIGlm
IChjbGllbnRDb3VudCA8PSAwKSB7CisgICAgICAgIG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5LT5yZW1vdmVDbGllbnRGb3JDb250ZXh0KGNvbnRleHRJZCk7CiAgICAgICAgIG1fY2xpZW50
Q291bnRzLnJlbW92ZShjb250ZXh0SWQpOwogICAgICAgICBtX2NvbnRleHRNYXAucmVtb3ZlKGNv
bnRleHRJZCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQppbmRleCA4
ZDhmOTkzNDYyYzY0YTg1YTAwOTI5ZTdjMzU1YjQ3YTExYzFkZWYwLi42YmVhNTY2ZTNjNWU5ZTQ3
YmVjYWNmYjk3OGExZDJhNzA5ODIwNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCkBAIC0y
NjEsNyArMjYxLDcgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpjbGVhclBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyKFdlYkNvcmU6OkhUTUxNZWRpYUUKICAgICBpZiAoZm91bmRJdGVy
YXRvciA9PSBtX21lZGlhRWxlbWVudHMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCAhPSBmb3VuZEl0ZXJhdG9yLT52YWx1ZSkKKyAg
ICBpZiAoIW1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHx8IG1fY29udHJvbHNNYW5hZ2VyQ29u
dGV4dElkICE9IGZvdW5kSXRlcmF0b3ItPnZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBy
ZW1vdmVDbGllbnRGb3JDb250ZXh0KG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkKTsKQEAgLTI3
Myw3ICsyNzMsOSBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OmNsZWFyUGxheWJh
Y2tDb250cm9sc01hbmFnZXIoV2ViQ29yZTo6SFRNTE1lZGlhRQogdWludDY0X3QgV2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlcjo6Y29udGV4dElkRm9yTWVkaWFFbGVtZW50KFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWVk
aWFFbGVtZW50cy5lbnN1cmUoJm1lZGlhRWxlbWVudCwgWyZdIHsgcmV0dXJuIG5leHRDb250ZXh0
SWQoKTsgfSk7Ci0gICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgdWlu
dDY0X3QgY29udGV4dElkID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICBlbnN1cmVN
b2RlbChjb250ZXh0SWQpLnNldE1lZGlhRWxlbWVudCgmbWVkaWFFbGVtZW50KTsKKyAgICByZXR1
cm4gY29udGV4dElkOwogfQogCiAjcHJhZ21hIG1hcmsgSW50ZXJmYWNlIHRvIFdlYlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggMjUy
MjI2Zjc3MjE2N2I1NTYxNTMwMTliN2U3YTU3ZWRkMTQxMThiNS4uMzViYTc1MjZmYTk4MmJmNWMz
MDYzMWJmYWVjNmIwNmFiZjBlY2NiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMTc5
LDYgKzE3OSw3IEBAIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Ok1vZGVsSW50ZXJmYWNlVHVw
bGUgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlCiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50PiBtb2RlbCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50OjpjcmVhdGUocGxheWJhY2tTZXNzaW9uTW9kZWwpOwogICAgIGF1dG8m
IHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlci0+ZW5z
dXJlSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZSA9IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNv
bnRleHQ6OmNyZWF0ZSgqdGhpcywgcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLCBjb250ZXh0SWQp
OworICAgIG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlci0+YWRkQ2xpZW50Rm9yQ29udGV4dChjb250
ZXh0SWQpOwogCiAgICAgaW50ZXJmYWNlLT5zZXRMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9z
dGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKSk7CiAgICAgbW9k
ZWwtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZShpbnRlcmZhY2UuZ2V0KCkpOwpAQCAt
MjEwLDYgKzIxMSw4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVtb3ZlQ29u
dGV4dCh1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKICAgICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNl
KSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAKKyAgICBtX3BsYXliYWNr
U2Vzc2lvbk1hbmFnZXItPnJlbW92ZUNsaWVudEZvckNvbnRleHQoY29udGV4dElkKTsKKwogICAg
IFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiB2aWRlb0VsZW1lbnQgPSBtb2RlbC0+dmlkZW9FbGVt
ZW50KCk7CiAgICAgbW9kZWwtPnNldFZpZGVvRWxlbWVudChudWxscHRyKTsKICAgICBtb2RlbC0+
c2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKG51bGxwdHIpOwo=
</data>
<flag name="review"
          id="301629"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
      

    </bug>

</bugzilla>