<?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>188094</bug_id>
          
          <creation_ts>2018-07-27 08:56:43 -0700</creation_ts>
          <short_desc>[Media] Avoid unnecessarily constructing *TrackList objects</short_desc>
          <delta_ts>2018-07-27 09:59:17 -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>
          
          <blocked>187284</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1445705</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-27 08:56:43 -0700</bug_when>
    <thetext>Avoid unnecessarily constructing *TrackList objects. For e.g.:
1   com.apple.WebCore             	0x00007fff4ef9ca1e WebCore::TextTrackList::TextTrackList(WebCore::HTMLMediaElement*, WebCore::ScriptExecutionContext*) + 14
2   com.apple.WebCore             	0x00007fff4ef9ed48 WebCore::HTMLMediaElement::textTracks() + 56
3   com.apple.WebCore             	0x00007fff4f293aca WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions() + 122
4   com.apple.WebCore             	0x00007fff4f29343e WebCore::PlaybackSessionModelMediaElement::updateForEventName(WTF::AtomicString const&amp;) + 1742
5   com.apple.WebCore             	0x00007fff4f29286f WebCore::PlaybackSessionModelMediaElement::setMediaElement(WebCore::HTMLMediaElement*) + 1103
6   com.apple.WebKit              	0x00007fff509a603c WebKit::PlaybackSessionManager::setUpPlaybackControlsManager(WebCore::HTMLMediaElement&amp;) + 542
7   com.apple.WebCore             	0x00007fff4fca9b4b WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer() + 235
8   com.apple.WebCore             	0x00007fff4eedf908 WebCore::HTMLMediaElement::stop() + 120</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445706</commentid>
    <comment_count>1</comment_count>
      <attachid>345915</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-27 08:58:34 -0700</bug_when>
    <thetext>Created attachment 345915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445713</commentid>
    <comment_count>2</comment_count>
      <attachid>345915</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-27 09:48:08 -0700</bug_when>
    <thetext>Comment on attachment 345915
Patch

Very nice, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445720</commentid>
    <comment_count>3</comment_count>
      <attachid>345915</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-27 09:58:27 -0700</bug_when>
    <thetext>Comment on attachment 345915
Patch

Clearing flags on attachment: 345915

Committed r234312: &lt;https://trac.webkit.org/changeset/234312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445721</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-27 09:58:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445722</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-27 09:59:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/42664442&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345915</attachid>
            <date>2018-07-27 08:58:34 -0700</date>
            <delta_ts>2018-07-27 09:58:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188094-20180727085834.patch</filename>
            <type>text/plain</type>
            <size>22570</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZmN2ZjODdlNjE4NTI4
NDJjMTQ5NGEzNjE2OGRjZjEwODQ0MWVmNy4uNGQ0NTU2YTAyMzA4YmZkNjA3ZWUyZDU0Y2I0NGQ2
ZjZhNjE0M2E1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhXSBBdm9pZCB1bm5l
Y2Vzc2FyaWx5IGNvbnN0cnVjdGluZyAqVHJhY2tMaXN0IG9iamVjdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF2b2lkIHVubmVjZXNzYXJpbHkgY29u
c3RydWN0aW5nICpUcmFja0xpc3Qgb2JqZWN0cyBhcyB0aGlzIGlzIHByZXZlbnRpbmcgdXMgZnJv
bSBtYWtpbmcgdGhlbQorICAgICAgICBBY3RpdmVET01PYmplY3RzLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6YWRkQXVkaW9UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjphZGRUZXh0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6YWRkVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpl
bnN1cmVBdWRpb1RyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpl
bnN1cmVUZXh0VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVu
c3VyZVZpZGVvVHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNl
dFNlbGVjdGVkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OmF1ZGlvVHJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnRleHRUcmFja3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6dmlkZW9UcmFja3MpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja3Mg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrcyBj
b25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RF
bGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUZXh0U3Ryb2tlU3R5bGUpOgor
ICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFjazo6c2V0S2luZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnRyYWNrSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjp0cmFja0luZGV4UmVsYXRpdmVUb1Jl
bmRlcmVkVHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c2V0TGFuZ3VhZ2Up
OgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrOjpzZXRLaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNl
dExhbmd1YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyk6
CisKIDIwMTgtMDctMjYgIEFuZHkgVmFuV2Fnb25lciAgPGFuZHlAdmFud2Fnb25lci5mYW1pbHk+
CiAKICAgICAgICAgW0lOVExdIFJlbW92ZSBJTlRMIHN1Yi1mZWF0dXJlIGNvbXBpbGUgZmxhZ3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAKaW5kZXggYzg4ZTM5NGQzOWEwNzAxZjQwMWNlYjYzZmY5NjRjMDYwMzU1ZDI5MS4uZTg1Yzkx
YjI1YTY5MWIwNmY2ZDllZTg5MTFlOTUwYzllYjc3OTE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTcyOSw3ICs3Mjks
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAvLyA1LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxl
ZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJl
IGEgc2ltcGxlIGV2ZW50CiAgICAgICAgIC8vIG5hbWVkIGNoYW5nZSBhdCB0aGUgSFRNTE1lZGlh
RWxlbWVudCBhdWRpb1RyYWNrcyBsaXN0LgogICAgICAgICBpZiAocmVtb3ZlZEVuYWJsZWRBdWRp
b1RyYWNrKQotICAgICAgICAgICAgbWVkaWFFbGVtZW50KCktPmF1ZGlvVHJhY2tzKCkuc2NoZWR1
bGVDaGFuZ2VFdmVudCgpOworICAgICAgICAgICAgbWVkaWFFbGVtZW50KCktPmVuc3VyZUF1ZGlv
VHJhY2tzKCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogICAgIH0KIAogICAgIC8vIDYuIExldCBT
b3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2Jq
ZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KQEAgLTc2OSw3ICs3Njks
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAvLyA3LjQgSWYgdGhlIHJlbW92ZWQgc2VsZWN0
ZWQgdmlkZW8gdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudAogICAgICAgICAvLyBuYW1lZCBjaGFuZ2UgYXQgdGhlIEhUTUxNZWRp
YUVsZW1lbnQgdmlkZW9UcmFja3MgbGlzdC4KICAgICAgICAgaWYgKHJlbW92ZWRTZWxlY3RlZFZp
ZGVvVHJhY2spCi0gICAgICAgICAgICBtZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja3MoKS5zY2hl
ZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgICAgICBtZWRpYUVsZW1lbnQoKS0+ZW5zdXJlVmlk
ZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAgICAgfQogCiAgICAgLy8gOC4gTGV0
IFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QgZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2Jq
ZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci50ZXh0VHJhY2tzLgpAQCAtODA5LDcgKzgwOSw3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291
cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgIC8vIDkuNCBJZiB0aGUgcmVtb3ZlZCBlbmFibGVk
IHRleHQgdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
IHNpbXBsZSBldmVudAogICAgICAgICAvLyBuYW1lZCBjaGFuZ2UgYXQgdGhlIEhUTUxNZWRpYUVs
ZW1lbnQgdGV4dFRyYWNrcyBsaXN0LgogICAgICAgICBpZiAocmVtb3ZlZEVuYWJsZWRUZXh0VHJh
Y2spCi0gICAgICAgICAgICBtZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hh
bmdlRXZlbnQoKTsKKyAgICAgICAgICAgIG1lZGlhRWxlbWVudCgpLT5lbnN1cmVUZXh0VHJhY2tz
KCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogICAgIH0KIAogICAgIC8vIDEwLiBJZiBzb3VyY2VC
dWZmZXIgaXMgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhlbiByZW1vdmUgc291cmNlQnVmZmVy
IGZyb20gYWN0aXZlU291cmNlQnVmZmVycyAuLi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA4NjhhYzg4MjYyYWIzMTM0
Mjc0NDhkMGY3MGE5YzcyMTA4NTI3YjMyLi4xZmEzOTc0Nzk3YWUyNDE3NWEyNzMwZjE2MWZhMTEw
ZWEwZjM4NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xMDg4LDcgKzEwODgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
cjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29u
c3QgSW5pdAogICAgICAgICAgICAgLy8gNS4yLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVz
dGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAg
ICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50
IGludGVyZmFjZSwgYXQgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8g
cmVmZXJlbmNlZCBieSB0aGUgYXVkaW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFF
bGVtZW50LgotICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT5hdWRpb1RyYWNr
cygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAgICAgICBtX3NvdXJj
ZS0+bWVkaWFFbGVtZW50KCktPmVuc3VyZUF1ZGlvVHJhY2tzKCkuYXBwZW5kKG5ld0F1ZGlvVHJh
Y2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4yLjggQ3JlYXRlIGEgbmV3IHRyYWNr
IGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMgdHJhY2suCiAgICAgICAgICAg
ICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnMobmV3QXVkaW9UcmFjay0+aWQoKSkp
OwpAQCAtMTEyNyw3ICsxMTI3LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXQKICAgICAgICAg
ICAgIC8vIDUuMy43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBh
ZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAvLyBub3Qg
Y2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRo
ZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkgdGhl
IHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KLSAgICAgICAg
ICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja3MoKS5hcHBlbmQobmV3Vmlk
ZW9UcmFjay5jb3B5UmVmKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgp
LT5lbnN1cmVWaWRlb1RyYWNrcygpLmFwcGVuZChuZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7CiAK
ICAgICAgICAgICAgIC8vIDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUg
Y29kZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNr
QnVmZmVyTWFwLmNvbnRhaW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKQEAgLTExNjMsNyArMTE2
Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0CiAgICAgICAgICAgICAvLyA1LjQuNiBRdWV1
ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVGV4dFRyYWNrTGlzdCBv
YmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkgdGhlIHRleHRUcmFja3MgYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgotICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlh
RWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7Cisg
ICAgICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPmVuc3VyZVRleHRUcmFja3MoKS5h
cHBlbmQoV1RGTW92ZShuZXdUZXh0VHJhY2spKTsKIAogICAgICAgICAgICAgLy8gNS40LjcgQ3Jl
YXRlIGEgbmV3IHRyYWNrIGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMgdHJh
Y2suCiAgICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnModGV4dFRy
YWNrUHJpdmF0ZS5pZCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCA5MTU1NDI3ZTc1NDMzNDJlNzg3MTBmNTZiNThjNTQ1ZDI0ZWQ0MTA5Li5lMmY5YTM3
MDE4MDFhNDM3YmNiMTI3MjYwYWY5NmZmNzQwYTY0MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQwMTIsNyArNDAxMiw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6Y2xvc2VDYXB0aW9uVHJhY2tzQ2hhbmdlZCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6YWRkQXVkaW9UcmFjayhSZWY8QXVkaW9UcmFjaz4mJiB0cmFjaykKIHsKLSAgICBhdWRp
b1RyYWNrcygpLmFwcGVuZChXVEZNb3ZlKHRyYWNrKSk7CisgICAgZW5zdXJlQXVkaW9UcmFja3Mo
KS5hcHBlbmQoV1RGTW92ZSh0cmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFk
ZFRleHRUcmFjayhSZWY8VGV4dFRyYWNrPiYmIHRyYWNrKQpAQCAtNDAyNSwxNCArNDAyNSwxNCBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFkZFRleHRUcmFjayhSZWY8VGV4dFRyYWNrPiYmIHRy
YWNrKQogICAgICAgICAgICAgbV9jYXB0aW9uRGlzcGxheU1vZGUgPSBwYWdlLT5ncm91cCgpLmNh
cHRpb25QcmVmZXJlbmNlcygpLmNhcHRpb25EaXNwbGF5TW9kZSgpOwogICAgIH0KIAotICAgIHRl
eHRUcmFja3MoKS5hcHBlbmQoV1RGTW92ZSh0cmFjaykpOworICAgIGVuc3VyZVRleHRUcmFja3Mo
KS5hcHBlbmQoV1RGTW92ZSh0cmFjaykpOwogCiAgICAgY2xvc2VDYXB0aW9uVHJhY2tzQ2hhbmdl
ZCgpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFkZFZpZGVvVHJhY2soUmVmPFZpZGVv
VHJhY2s+JiYgdHJhY2spCiB7Ci0gICAgdmlkZW9UcmFja3MoKS5hcHBlbmQoV1RGTW92ZSh0cmFj
aykpOworICAgIGVuc3VyZVZpZGVvVHJhY2tzKCkuYXBwZW5kKFdURk1vdmUodHJhY2spKTsKIH0K
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVBdWRpb1RyYWNrKFJlZjxBdWRpb1RyYWNr
PiYmIHRyYWNrKQpAQCAtNDExMCw3ICs0MTEwLDcgQEAgRXhjZXB0aW9uT3I8VGV4dFRyYWNrJj4g
SFRNTE1lZGlhRWxlbWVudDo6YWRkVGV4dFRyYWNrKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QK
ICAgICByZXR1cm4gdHJhY2tSZWZlcmVuY2U7CiB9CiAKLUF1ZGlvVHJhY2tMaXN0JiBIVE1MTWVk
aWFFbGVtZW50OjphdWRpb1RyYWNrcygpCitBdWRpb1RyYWNrTGlzdCYgSFRNTE1lZGlhRWxlbWVu
dDo6ZW5zdXJlQXVkaW9UcmFja3MoKQogewogICAgIGlmICghbV9hdWRpb1RyYWNrcykKICAgICAg
ICAgbV9hdWRpb1RyYWNrcyA9IEF1ZGlvVHJhY2tMaXN0OjpjcmVhdGUodGhpcywgQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwpAQCAtNDExOCw3ICs0MTE4LDcgQEAg
QXVkaW9UcmFja0xpc3QmIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tzKCkKICAgICByZXR1
cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRUcmFja0xpc3QmIEhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja3MoKQorVGV4dFRyYWNrTGlzdCYgSFRNTE1lZGlhRWxlbWVudDo6ZW5zdXJlVGV4
dFRyYWNrcygpCiB7CiAgICAgaWYgKCFtX3RleHRUcmFja3MpCiAgICAgICAgIG1fdGV4dFRyYWNr
cyA9IFRleHRUcmFja0xpc3Q6OmNyZWF0ZSh0aGlzLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CkBAIC00MTI2LDcgKzQxMjYsNyBAQCBUZXh0VHJhY2tMaXN0JiBI
VE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tzKCkKICAgICByZXR1cm4gKm1fdGV4dFRyYWNrczsK
IH0KIAotVmlkZW9UcmFja0xpc3QmIEhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tzKCkKK1Zp
ZGVvVHJhY2tMaXN0JiBIVE1MTWVkaWFFbGVtZW50OjplbnN1cmVWaWRlb1RyYWNrcygpCiB7CiAg
ICAgaWYgKCFtX3ZpZGVvVHJhY2tzKQogICAgICAgICBtX3ZpZGVvVHJhY2tzID0gVmlkZW9UcmFj
a0xpc3Q6OmNyZWF0ZSh0aGlzLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CkBAIC00NDA3LDI1ICs0NDA3LDI1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlz
aWJpbGl0eURpZENoYW5nZSgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U2VsZWN0ZWRU
ZXh0VHJhY2soVGV4dFRyYWNrKiB0cmFja1RvU2VsZWN0KQogewotICAgIFRleHRUcmFja0xpc3Qm
IHRyYWNrTGlzdCA9IHRleHRUcmFja3MoKTsKLSAgICBpZiAoIXRyYWNrTGlzdC5sZW5ndGgoKSkK
KyAgICBhdXRvKiB0cmFja0xpc3QgPSB0ZXh0VHJhY2tzKCk7CisgICAgaWYgKCF0cmFja0xpc3Qg
fHwgIXRyYWNrTGlzdC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0cmFj
a1RvU2VsZWN0ID09IFRleHRUcmFjazo6Y2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtKCkpIHsKICAg
ICAgICAgaWYgKGNhcHRpb25EaXNwbGF5TW9kZSgpICE9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OkF1dG9tYXRpYykKICAgICAgICAgICAgIG1fdGV4dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVu
dCgpOwogICAgIH0gZWxzZSBpZiAodHJhY2tUb1NlbGVjdCA9PSBUZXh0VHJhY2s6OmNhcHRpb25N
ZW51T2ZmSXRlbSgpKSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwLCBsZW5ndGggPSB0cmFja0xp
c3QubGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRyYWNrTGlzdC5pdGVt
KGkpLT5zZXRNb2RlKFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpOworICAgICAgICBmb3IgKGlu
dCBpID0gMCwgbGVuZ3RoID0gdHJhY2tMaXN0LT5sZW5ndGgoKTsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgdHJhY2tMaXN0LT5pdGVtKGkpLT5zZXRNb2RlKFRleHRUcmFjazo6TW9kZTo6
RGlzYWJsZWQpOwogCi0gICAgICAgIGlmIChjYXB0aW9uRGlzcGxheU1vZGUoKSAhPSBDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpGb3JjZWRPbmx5ICYmICF0cmFja0xpc3QuaXNDaGFuZ2VFdmVudFNj
aGVkdWxlZCgpKQorICAgICAgICBpZiAoY2FwdGlvbkRpc3BsYXlNb2RlKCkgIT0gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6Rm9yY2VkT25seSAmJiAhdHJhY2tMaXN0LT5pc0NoYW5nZUV2ZW50U2No
ZWR1bGVkKCkpCiAgICAgICAgICAgICBtX3RleHRUcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoIXRyYWNrVG9TZWxlY3QgfHwgIXRyYWNrTGlz
dC5jb250YWlucygqdHJhY2tUb1NlbGVjdCkpCisgICAgICAgIGlmICghdHJhY2tUb1NlbGVjdCB8
fCAhdHJhY2tMaXN0LT5jb250YWlucygqdHJhY2tUb1NlbGVjdCkpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgZm9yIChpbnQgaSA9IDAsIGxlbmd0aCA9IHRyYWNrTGlzdC5sZW5ndGgo
KTsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp0cmFja0xp
c3QuaXRlbShpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDAsIGxlbmd0aCA9IHRyYWNrTGlzdC0+
bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAq
dHJhY2tMaXN0LT5pdGVtKGkpOwogICAgICAgICAgICAgaWYgKCZ0cmFjayAhPSB0cmFja1RvU2Vs
ZWN0KQogICAgICAgICAgICAgICAgIHRyYWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpEaXNh
YmxlZCk7CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IGNkNjEwMDBkN2UxNjBhODY1NmQ1NTI3MTM5NmYzNWE0ODgwNTI5MzYuLjc2ODE5
MDk2OTk2M2Y2MDBiMmY4YzNjNDgxMTg1MzMyN2M2ODViMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zMzAsOSArMzMwLDEyIEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgRXhjZXB0aW9uT3I8VGV4dFRyYWNrJj4gYWRkVGV4dFRyYWNr
KGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSk7CiAKLSAgICBBdWRpb1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKLSAgICBUZXh0
VHJhY2tMaXN0JiB0ZXh0VHJhY2tzKCk7Ci0gICAgVmlkZW9UcmFja0xpc3QmIHZpZGVvVHJhY2tz
KCk7CisgICAgQXVkaW9UcmFja0xpc3QmIGVuc3VyZUF1ZGlvVHJhY2tzKCk7CisgICAgVGV4dFRy
YWNrTGlzdCYgZW5zdXJlVGV4dFRyYWNrcygpOworICAgIFZpZGVvVHJhY2tMaXN0JiBlbnN1cmVW
aWRlb1RyYWNrcygpOworICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpIGNvbnN0IHsg
cmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KCk7IH0KKyAgICBUZXh0VHJhY2tMaXN0KiB0ZXh0VHJh
Y2tzKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0VHJhY2tzLmdldCgpOyB9CisgICAgVmlkZW9UcmFj
a0xpc3QqIHZpZGVvVHJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb1RyYWNrcy5nZXQoKTsg
fQogCiAgICAgQ3VlTGlzdCBjdXJyZW50bHlBY3RpdmVDdWVzKCkgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50bHlBY3RpdmVDdWVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaWRsCmluZGV4IDNlZjYxMzgzOWRkZjU4MjI4OTk5ZTNlOGI1NGQ4NzMwMDRlMmIwNGYuLjhh
ZmNjNWJhMGNkMGI1YTVjZWE0MjllODVlNmJhMjU3OWI2NGMzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtMTEwLDkgKzExMCw5IEBAIHR5cGVkZWYgKAog
ICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEsIEVuYWJsZWRBdFJ1bnRpbWU9RW5jcnlw
dGVkTWVkaWFBUEldIFByb21pc2U8dm9pZD4gc2V0TWVkaWFLZXlzKE1lZGlhS2V5cz8gbWVkaWFL
ZXlzKTsKIAogICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgTWF5VGhyb3dFeGNlcHRpb25d
IFRleHRUcmFjayBhZGRUZXh0VHJhY2soRE9NU3RyaW5nIGtpbmQsIG9wdGlvbmFsIERPTVN0cmlu
ZyBsYWJlbCA9ICIiLCBvcHRpb25hbCBET01TdHJpbmcgbGFuZ3VhZ2UgPSAiIik7Ci0gICAgW0Nv
bmRpdGlvbmFsPVZJREVPX1RSQUNLXSByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9UcmFja0xpc3Qg
YXVkaW9UcmFja3M7Ci0gICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSByZWFkb25seSBhdHRy
aWJ1dGUgVGV4dFRyYWNrTGlzdCB0ZXh0VHJhY2tzOwotICAgIFtDb25kaXRpb25hbD1WSURFT19U
UkFDS10gcmVhZG9ubHkgYXR0cmlidXRlIFZpZGVvVHJhY2tMaXN0IHZpZGVvVHJhY2tzOworICAg
IFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgSW1wbGVtZW50ZWRBcz1lbnN1cmVBdWRpb1RyYWNr
c10gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvVHJhY2tMaXN0IGF1ZGlvVHJhY2tzOworICAgIFtD
b25kaXRpb25hbD1WSURFT19UUkFDSywgSW1wbGVtZW50ZWRBcz1lbnN1cmVUZXh0VHJhY2tzXSBy
ZWFkb25seSBhdHRyaWJ1dGUgVGV4dFRyYWNrTGlzdCB0ZXh0VHJhY2tzOworICAgIFtDb25kaXRp
b25hbD1WSURFT19UUkFDSywgSW1wbGVtZW50ZWRBcz1lbnN1cmVWaWRlb1RyYWNrc10gcmVhZG9u
bHkgYXR0cmlidXRlIFZpZGVvVHJhY2tMaXN0IHZpZGVvVHJhY2tzOwogCiAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVkaWFHcm91cDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IGM0MTAyNWY1OGQ2
Y2RjYjJhYjlkZWExMDk5ZTc1ZDU4ZjM5MzYzN2IuLjllNjNkZTE5ODgyZTU2ZTZlNDE5ZThmNmQ3
MDIwZTFkNTRmMDEyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTc2MCw3ICs3NjAsNyBAQCB2b2lkIE1lZGlhQ29u
dHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAg
aWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbWVkaWFFbGVt
ZW50LT50ZXh0VHJhY2tzKCkubGVuZ3RoKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnRleHRU
cmFja3MoKSB8fCAhbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICByZWJ1aWxkVHJhY2tMaXN0TWVudSgpOwpAQCAtODIxLDE0ICs4MjEs
MTQgQEAgdm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnJl
YnVpbGRUcmFja0xpc3RNZW51KCkKICAgICBpZiAoIW1lZGlhRWxlbWVudCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVGV4dFRyYWNrTGlzdCYgdHJhY2tMaXN0ID0gbWVkaWFFbGVtZW50LT50ZXh0
VHJhY2tzKCk7Ci0gICAgaWYgKCF0cmFja0xpc3QubGVuZ3RoKCkpCisgICAgYXV0byogdHJhY2tM
aXN0ID0gbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCk7CisgICAgaWYgKCF0cmFja0xpc3QgfHwg
IXRyYWNrTGlzdC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghZG9jdW1l
bnQoKS5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5j
ZXMgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKLSAg
ICBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHRyYWNrc0Zvck1lbnUgPSBjYXB0aW9uUHJlZmVy
ZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudSgmdHJhY2tMaXN0KTsKKyAgICBWZWN0b3I8UmVm
UHRyPFRleHRUcmFjaz4+IHRyYWNrc0Zvck1lbnUgPSBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVk
VHJhY2tMaXN0Rm9yTWVudSh0cmFja0xpc3QpOwogCiAgICAgYXV0byBjYXB0aW9uc0hlYWRlciA9
IEhUTUxIZWFkaW5nRWxlbWVudDo6Y3JlYXRlKGgzVGFnLCBkb2N1bWVudCgpKTsKICAgICBjYXB0
aW9uc0hlYWRlci0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0VHJh
Y2tTdWJ0aXRsZXNUZXh0KCkpKTsKQEAgLTEyNjksMTIgKzEyNjksMTMgQEAgdm9pZCBNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUZXh0U3Ryb2tlU3R5bGUoKQog
ICAgIC8vIEZJWE1FOiBTaW5jZSBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG1vcmUgdGhhbiBvbmUg
dGV4dCB0cmFjayBlbmFibGVkLCB0aGUgZm9sbG93aW5nIGNvZGUgbWF5IG5vdCBmaW5kIHRoZSBj
b3JyZWN0IGxhbmd1YWdlLgogICAgIC8vIFRoZSBkZWZhdWx0IFVJIG9ubHkgYWxsb3dzIGEgdXNl
ciB0byBlbmFibGUgb25lIHRyYWNrIGF0IGEgdGltZSwgc28gaXQgc2hvdWxkIGJlIE9LIGZvciBu
b3csIGJ1dCB3ZSBzaG91bGQgY29uc2lkZXIgZG9pbmcKICAgICAvLyB0aGlzIGRpZmZlcmVudGx5
LCBzZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk4NzU+Lgot
ICAgIGF1dG8mIHRyYWNrcyA9IG1lZGlhRWxlbWVudC0+dGV4dFRyYWNrcygpOwotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCB0cmFja3MubGVuZ3RoKCk7ICsraSkgewotICAgICAgICBhdXRv
IHRyYWNrID0gdHJhY2tzLml0ZW0oaSk7Ci0gICAgICAgIGlmICh0cmFjayAmJiB0cmFjay0+bW9k
ZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykgewotICAgICAgICAgICAgbGFuZ3VhZ2Ug
PSB0cmFjay0+dmFsaWRCQ1A0N0xhbmd1YWdlKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBp
ZiAoYXV0byogdHJhY2tzID0gbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCkpIHsKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRyYWNrcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAg
ICAgICAgYXV0byB0cmFjayA9IHRyYWNrcy0+aXRlbShpKTsKKyAgICAgICAgICAgIGlmICh0cmFj
ayAmJiB0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykgeworICAgICAg
ICAgICAgICAgIGxhbmd1YWdlID0gdHJhY2stPnZhbGlkQkNQNDdMYW5ndWFnZSgpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNjhmYmVhZjhkZDY0MDE5ZTc3
MjUzMDZlZjU3YjU1YWRhNjk4MTQxNS4uY2IxNGU0OWYzOGIxMDZhNGEwZjFiOGRiYzQwYWUwZDRk
MWRlYTAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtMTg5
LDcgKzE4OSw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5kKEtpbmQgbmV3S2luZCkKICAgICAv
LyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQg
dGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRy
YWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgaWYgKG1lZGlhRWxl
bWVudCgpKQotICAgICAgICBtZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hh
bmdlRXZlbnQoKTsKKyAgICAgICAgbWVkaWFFbGVtZW50KCktPmVuc3VyZVRleHRUcmFja3MoKS5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAjZW5kaWYKIAogICAgIGlmIChtX2NsaWVudCAmJiBvbGRL
aW5kICE9IG1fa2luZCkKQEAgLTQ0MCw3ICs0NDAsNyBAQCBpbnQgVGV4dFRyYWNrOjp0cmFja0lu
ZGV4KCkKIHsKICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwogICAgIGlmICghbV90cmFja0lu
ZGV4KQotICAgICAgICBtX3RyYWNrSW5kZXggPSBtX21lZGlhRWxlbWVudC0+dGV4dFRyYWNrcygp
LmdldFRyYWNrSW5kZXgoKnRoaXMpOworICAgICAgICBtX3RyYWNrSW5kZXggPSBtX21lZGlhRWxl
bWVudC0+ZW5zdXJlVGV4dFRyYWNrcygpLmdldFRyYWNrSW5kZXgoKnRoaXMpOwogICAgIHJldHVy
biBtX3RyYWNrSW5kZXgudmFsdWUoKTsKIH0KIApAQCAtNDY3LDcgKzQ2Nyw3IEBAIGludCBUZXh0
VHJhY2s6OnRyYWNrSW5kZXhSZWxhdGl2ZVRvUmVuZGVyZWRUcmFja3MoKQogewogICAgIEFTU0VS
VChtX21lZGlhRWxlbWVudCk7CiAgICAgaWYgKCFtX3JlbmRlcmVkVHJhY2tJbmRleCkKLSAgICAg
ICAgbV9yZW5kZXJlZFRyYWNrSW5kZXggPSBtX21lZGlhRWxlbWVudC0+dGV4dFRyYWNrcygpLmdl
dFRyYWNrSW5kZXhSZWxhdGl2ZVRvUmVuZGVyZWRUcmFja3MoKnRoaXMpOworICAgICAgICBtX3Jl
bmRlcmVkVHJhY2tJbmRleCA9IG1fbWVkaWFFbGVtZW50LT5lbnN1cmVUZXh0VHJhY2tzKCkuZ2V0
VHJhY2tJbmRleFJlbGF0aXZlVG9SZW5kZXJlZFRyYWNrcygqdGhpcyk7CiAgICAgcmV0dXJuIG1f
cmVuZGVyZWRUcmFja0luZGV4LnZhbHVlKCk7CiB9CiAKQEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lk
IFRleHRUcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAg
ICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2Ug
YXQgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4
dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgaWYgKG1lZGlh
RWxlbWVudCgpKQotICAgICAgICBtZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrcygpLnNjaGVkdWxl
Q2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbWVkaWFFbGVtZW50KCktPmVuc3VyZVRleHRUcmFja3Mo
KS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggMWE0YTI5MzFlM2UyMDQwZDljOWVmZmVmMGI1YWI0
Mzg2ZWZkMTJhOS4uNzVjOTdlNmNlOTBiNjI4ZGMyMzY0N2QyMmE2ZmZkOWZhOTg1MTJiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0xODksNyArMTg5LDcg
QEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYga2luZCkKIAog
ICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5n
ZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUg
dmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgotICAgIG1lZGlh
RWxlbWVudCgpLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICBtZWRp
YUVsZW1lbnQoKS0+ZW5zdXJlVmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9
CiAKIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5n
dWFnZSkKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIFZpZGVvVHJhY2s6OnNldExhbmd1YWdlKGNv
bnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBWaWRlb1RyYWNrTGlzdCBvYmpl
Y3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhl
IEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgaWYgKG1lZGlhRWxlbWVudCgpKQotICAgICAgICBtZWRp
YUVsZW1lbnQoKS0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAg
IG1lZGlhRWxlbWVudCgpLT5lbnN1cmVWaWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCmluZGV4IDg3
YjUxMDlhNTAzZWI0NWE1ZjNjZWE2ZThiZDc5NTA3MTY4NGZjNTYuLmExMWI3MGMxZWQyOTZjZTBj
ZDFlYzE3OThkZjYxZDE3ZmQwMjczZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
Lm1tCkBAIC02NiwxNSArNjYsMTcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudDo6c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWwKICAgICBpZiAo
bV9tZWRpYUVsZW1lbnQgJiYgbV9pc0xpc3RlbmluZykgewogICAgICAgICBmb3IgKGF1dG8mIGV2
ZW50TmFtZSA6IG9ic2VydmVkRXZlbnROYW1lcygpKQogICAgICAgICAgICAgbV9tZWRpYUVsZW1l
bnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCAqdGhpcywgZmFsc2UpOwotICAgICAg
ICBhdXRvJiBhdWRpb1RyYWNrcyA9IG1fbWVkaWFFbGVtZW50LT5hdWRpb1RyYWNrcygpOwotICAg
ICAgICBhdWRpb1RyYWNrcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50cy5hZGR0cmFja0V2ZW50
LCAqdGhpcywgZmFsc2UpOwotICAgICAgICBhdWRpb1RyYWNrcy5yZW1vdmVFdmVudExpc3RlbmVy
KGV2ZW50cy5jaGFuZ2VFdmVudCwgKnRoaXMsIGZhbHNlKTsKLSAgICAgICAgYXVkaW9UcmFja3Mu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudHMucmVtb3ZldHJhY2tFdmVudCwgKnRoaXMsIGZhbHNl
KTsKLQotICAgICAgICBhdXRvJiB0ZXh0VHJhY2tzID0gbV9tZWRpYUVsZW1lbnQtPmF1ZGlvVHJh
Y2tzKCk7Ci0gICAgICAgIHRleHRUcmFja3MucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudHMuYWRk
dHJhY2tFdmVudCwgKnRoaXMsIGZhbHNlKTsKLSAgICAgICAgdGV4dFRyYWNrcy5yZW1vdmVFdmVu
dExpc3RlbmVyKGV2ZW50cy5jaGFuZ2VFdmVudCwgKnRoaXMsIGZhbHNlKTsKLSAgICAgICAgdGV4
dFRyYWNrcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50cy5yZW1vdmV0cmFja0V2ZW50LCAqdGhp
cywgZmFsc2UpOworICAgICAgICBpZiAoYXV0byogYXVkaW9UcmFja3MgPSBtX21lZGlhRWxlbWVu
dC0+YXVkaW9UcmFja3MoKSkgeworICAgICAgICAgICAgYXVkaW9UcmFja3MtPnJlbW92ZUV2ZW50
TGlzdGVuZXIoZXZlbnRzLmFkZHRyYWNrRXZlbnQsICp0aGlzLCBmYWxzZSk7CisgICAgICAgICAg
ICBhdWRpb1RyYWNrcy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudHMuY2hhbmdlRXZlbnQsICp0
aGlzLCBmYWxzZSk7CisgICAgICAgICAgICBhdWRpb1RyYWNrcy0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudHMucmVtb3ZldHJhY2tFdmVudCwgKnRoaXMsIGZhbHNlKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmIChhdXRvKiB0ZXh0VHJhY2tzID0gbV9tZWRpYUVsZW1lbnQtPmF1ZGlvVHJhY2tz
KCkpIHsKKyAgICAgICAgICAgIHRleHRUcmFja3MtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRz
LmFkZHRyYWNrRXZlbnQsICp0aGlzLCBmYWxzZSk7CisgICAgICAgICAgICB0ZXh0VHJhY2tzLT5y
ZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50cy5jaGFuZ2VFdmVudCwgKnRoaXMsIGZhbHNlKTsKKyAg
ICAgICAgICAgIHRleHRUcmFja3MtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRzLnJlbW92ZXRy
YWNrRXZlbnQsICp0aGlzLCBmYWxzZSk7CisgICAgICAgIH0KICAgICB9CiAgICAgbV9pc0xpc3Rl
bmluZyA9IGZhbHNlOwogCkBAIC04NywxMiArODksMTIgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWwKICAgICAgICAgZm9yIChhdXRvJiBldmVudE5hbWUgOiBvYnNlcnZlZEV2ZW50TmFtZXMoKSkK
ICAgICAgICAgICAgIG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwg
KnRoaXMsIGZhbHNlKTsKIAotICAgICAgICBhdXRvJiBhdWRpb1RyYWNrcyA9IG1fbWVkaWFFbGVt
ZW50LT5hdWRpb1RyYWNrcygpOworICAgICAgICBhdXRvJiBhdWRpb1RyYWNrcyA9IG1fbWVkaWFF
bGVtZW50LT5lbnN1cmVBdWRpb1RyYWNrcygpOwogICAgICAgICBhdWRpb1RyYWNrcy5hZGRFdmVu
dExpc3RlbmVyKGV2ZW50cy5hZGR0cmFja0V2ZW50LCAqdGhpcywgZmFsc2UpOwogICAgICAgICBh
dWRpb1RyYWNrcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50cy5jaGFuZ2VFdmVudCwgKnRoaXMsIGZh
bHNlKTsKICAgICAgICAgYXVkaW9UcmFja3MuYWRkRXZlbnRMaXN0ZW5lcihldmVudHMucmVtb3Zl
dHJhY2tFdmVudCwgKnRoaXMsIGZhbHNlKTsKIAotICAgICAgICBhdXRvJiB0ZXh0VHJhY2tzID0g
bV9tZWRpYUVsZW1lbnQtPmF1ZGlvVHJhY2tzKCk7CisgICAgICAgIGF1dG8mIHRleHRUcmFja3Mg
PSBtX21lZGlhRWxlbWVudC0+ZW5zdXJlVGV4dFRyYWNrcygpOwogICAgICAgICB0ZXh0VHJhY2tz
LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRzLmFkZHRyYWNrRXZlbnQsICp0aGlzLCBmYWxzZSk7CiAg
ICAgICAgIHRleHRUcmFja3MuYWRkRXZlbnRMaXN0ZW5lcihldmVudHMuY2hhbmdlRXZlbnQsICp0
aGlzLCBmYWxzZSk7CiAgICAgICAgIHRleHRUcmFja3MuYWRkRXZlbnRMaXN0ZW5lcihldmVudHMu
cmVtb3ZldHJhY2tFdmVudCwgKnRoaXMsIGZhbHNlKTsKQEAgLTMzMiwxNSArMzM0LDE1IEBAIHZv
aWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU2VsZWN0aW9u
T3B0aW9ucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIGNhcHRpb25QcmVmZXJlbmNl
cyA9IG1fbWVkaWFFbGVtZW50LT5kb2N1bWVudCgpLnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJl
ZmVyZW5jZXMoKTsKLSAgICBhdXRvJiB0ZXh0VHJhY2tzID0gbV9tZWRpYUVsZW1lbnQtPnRleHRU
cmFja3MoKTsKLSAgICBpZiAodGV4dFRyYWNrcy5sZW5ndGgoKSkKLSAgICAgICAgbV9sZWdpYmxl
VHJhY2tzRm9yTWVudSA9IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0ZWRUcmFja0xpc3RGb3JNZW51
KCZ0ZXh0VHJhY2tzKTsKKyAgICBhdXRvKiB0ZXh0VHJhY2tzID0gbV9tZWRpYUVsZW1lbnQtPnRl
eHRUcmFja3MoKTsKKyAgICBpZiAodGV4dFRyYWNrcyAmJiB0ZXh0VHJhY2tzLT5sZW5ndGgoKSkK
KyAgICAgICAgbV9sZWdpYmxlVHJhY2tzRm9yTWVudSA9IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0
ZWRUcmFja0xpc3RGb3JNZW51KHRleHRUcmFja3MpOwogICAgIGVsc2UKICAgICAgICAgbV9sZWdp
YmxlVHJhY2tzRm9yTWVudS5jbGVhcigpOwogCi0gICAgYXV0byYgYXVkaW9UcmFja3MgPSBtX21l
ZGlhRWxlbWVudC0+YXVkaW9UcmFja3MoKTsKLSAgICBpZiAoYXVkaW9UcmFja3MubGVuZ3RoKCkg
PiAxKQotICAgICAgICBtX2F1ZGlvVHJhY2tzRm9yTWVudSA9IGNhcHRpb25QcmVmZXJlbmNlcy5z
b3J0ZWRUcmFja0xpc3RGb3JNZW51KCZhdWRpb1RyYWNrcyk7CisgICAgYXV0byogYXVkaW9UcmFj
a3MgPSBtX21lZGlhRWxlbWVudC0+YXVkaW9UcmFja3MoKTsKKyAgICBpZiAoYXVkaW9UcmFja3Mg
JiYgYXVkaW9UcmFja3MtPmxlbmd0aCgpID4gMSkKKyAgICAgICAgbV9hdWRpb1RyYWNrc0Zvck1l
bnUgPSBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNr
cyk7CiAgICAgZWxzZQogICAgICAgICBtX2F1ZGlvVHJhY2tzRm9yTWVudS5jbGVhcigpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>