<?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>232193</bug_id>
          
          <creation_ts>2021-10-22 20:52:03 -0700</creation_ts>
          <short_desc>Remove unnecessary refcount increase when using m_player in MediaPlayerPrivateRemote</short_desc>
          <delta_ts>2025-04-18 05:33: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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=232124</see_also>
          <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="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>aqeelalamdp</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1808020</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-10-22 20:52:03 -0700</bug_when>
    <thetext>As mentioned in: https://bugs.webkit.org/show_bug.cgi?id=232124#c3

We have a lot of this code pattern:
```
    if (RefPtr player = m_player.get())
        m_player-&gt;addAudioTrack(addResult.iterator-&gt;value);
```

there&apos;s no side effect possible when calling m_player here, so there&apos;s no need to keep a strong reference :

doing:
```
    if (m_player)
        m_player-&gt;addAudioTrack(addResult.iterator-&gt;value);
```

is fine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808021</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-22 20:53:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/84574114&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808294</commentid>
    <comment_count>2</comment_count>
      <attachid>442336</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-10-24 21:32:59 -0700</bug_when>
    <thetext>Created attachment 442336
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442336</attachid>
            <date>2021-10-24 21:32:59 -0700</date>
            <delta_ts>2021-10-24 21:32:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232193-20211025153258.patch</filename>
            <type>text/plain</type>
            <size>19219</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU1MmJiNDNiOGY5ZmQyNzAx
OTg3NDFjOThkNDU3YmU5NDJiYWQ0MzguLmE5YjkxZjkyMjMyMDhhNmI3NTU4ZTI5NDg2ODQ3NDU3
YWJjMzZiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMTAtMjQgIEplYW4tWXZl
cyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3Nhcnkg
cmVmY291bnQgaW5jcmVhc2Ugd2hlbiBhY2Nlc3NpbmcgbV9wbGF5ZXIgaW4gTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzIxOTMKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vODQ1NzQxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRlciBtb3N0IGNpcmN1bXN0
YW5jZXMgaGF2ZSBtX3BsYXllciBiZSBhIFdlYWtQdHIgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeS4K
KyAgICAgICAgfk1lZGlhUGxheWVyIGRlc3Ryb3lzIG1fcHJpdmF0ZSB3aGljaCBpcyBhIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSBhbmQKKyAgICAgICAgb25seSB3ZWFrIHJlZmVyZW5jZXMgdG8g
dGhlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW92ZSBhcmUgaGVsZCwgaW5jbHVkaW5nIGJ5CisgICAg
ICAgIHRoZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuCisgICAgICAgIEhvd2V2ZXIsIHdoZW4g
Y29tcGlsZWQgd2l0aCBSRUxFQVNFX0xPR19ESVNBQkxFRCBub3Qgc2V0LCB0aGUgbG9nZ2VyIGNh
bgorICAgICAgICBob2xkIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGUgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlIHdoaWNoIHdvdWxkIG1ha2UKKyAgICAgICAgdGhlIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSBwb3RlbnRpYWxseSBsaXZlIGxvbmdlciB0aGFuIGl0cyBNZWRpYVBsYXllcgorICAg
ICAgICBvd25lci4KKyAgICAgICAgVGhlcmUgYXJlIG5vIHBvc3NpYmxlIHNpZGUgZWZmZWN0cyB3
aGVyZSBjYWxsaW5nIGEgTWVkaWFQbGF5ZXIgbWV0aG9kcyB3b3VsZAorICAgICAgICBsZWFkIHRv
IHRoZSBNZWRpYVBsYXllcjo6bV9wcml2YXRlIGJlIGRlbGV0ZWQuIFNvIGJhaWxpbmcgb3V0IGVh
cmx5IGlmCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bV9wbGF5ZXIgZ290IGNs
ZWFyZWQgaXMgc3VmZmljaWVudCBhbmQgcHJldmVudHMKKyAgICAgICAgdW5uZWNlc3NhcnkgcmVm
Y291bnQgaW5jcmVhc2VzLgorCisgICAgICAgIE5vIG9ic2VydmFibGUgY2hhbmdlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxh
eWJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5ldHdvcmtTdGF0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnJlYWR5U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjptdXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OmR1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cmF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVGYWlsZWRUb0xvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNoYXJhY3RlcmlzdGljQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmZpcnN0Vmlk
ZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cmVuZGVyaW5nTW9kZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmNoZWNrQWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVtb3Rl
QXVkaW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
YWRkUmVtb3RlVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpyZW1vdmVSZW1vdGVUZXh0VHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2spOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZVJlbW90ZVZpZGVvVHJhY2spOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnVsbHNjcmVlblN0
YW5kYnlDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVkaWFQbGF5ZXJLZXlOZWVkZWQpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OndhaXRpbmdGb3JLZXlDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjppbml0aWFs
aXphdGlvbkRhdGFFbmNvdW50ZXJlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6cmVzb3VyY2VOb3RTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpnZXRSYXdDb29raWVzIGNvbnN0
KToKKwogMjAyMS0xMC0yMiAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAg
ICAgICAgIHZpZGVvIGFwcGVhcnMgYmxhbmsgd2l0aCBvbmx5IGF1ZGlvIHBsYXlpbmcgaWYgdmlk
ZW8gZWxlbWVudCBpc24ndCBhcHBlbmRlZCB0byB0aGUgZG9tIHRyZWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcAppbmRleCA2MmIxMWRmNWVhZmE2MzVkYmQzNmM3MTBkOWQ2ZDVmNjVkOGMz
N2M2Li42ZDlhZDAzYjhiMGFjNTA3ZTZkNzY4MDc5NzQ4ZGU0NjcyN2JiN2NhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xNDEsMTEgKzE0MSwxMCBAQCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1l
ZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJl
cGFyZSkKIHsKLSAgICBSZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCk7Ci0gICAgaWYgKCFw
bGF5ZXIpCisgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBz
Y2FsZSA9IHBsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOworICAgIGF1dG8gc2NhbGUgPSBt
X3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogICAgIGF1dG8gcHJlZmVycmVkRHluYW1p
Y1JhbmdlTW9kZSA9IG1fcGxheWVyLT5wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCk7CiAKICAg
ICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQsIHByZXNl
cnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSwgcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSksIFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGlu
Z0NvbnRleHRJZCkgbXV0YWJsZSB7CkBAIC0xNTUsMTMgKzE1NCwxMiBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1l
ZGlhUGxheWVyOgogICAgICAgICBpZiAoIWlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBSZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0
KCk7Ci0gICAgICAgIGlmICghcGxheWVyKQorICAgICAgICBpZiAoIW1fcGxheWVyKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1fdmlkZW9MYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJS
ZW1vdGUodGhpcywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCksIG1fdmlkZW9G
dWxsc2NyZWVuR3Jhdml0eSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIG1fdmlkZW9M
YXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIobV92aWRlb0xheWVyLmdldCgpLCBzbmFwcGVkSW50
UmVjdChwbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKSk7CisgICAgICAgIG1f
dmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIobV92aWRlb0xheWVyLmdldCgpLCBzbmFw
cGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6ZSgpKTsKICNl
bmRpZgogICAgIH0sIG1faWQpOwogfQpAQCAtMTkzLDggKzE5MSw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYg
Y29udGVudFR5CiAgICAgICAgIGlmICghY3JlYXRlRXh0ZW5zaW9uKCkpIHsKICAgICAgICAgICAg
IFdURkxvZ0Fsd2F5cygiVW5hYmxlIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBoYW5kbGUg
Zm9yIEdQVVByb2Nlc3MgdXJsLlxuIik7CiAgICAgICAgICAgICBtX2NhY2hlZFN0YXRlLm5ldHdv
cmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yOwotICAgICAg
ICAgICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgICAgICAg
ICBwbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIGlmIChtX3BsYXll
cikKKyAgICAgICAgICAgICAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTIwNSwxMiArMjAzLDExIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgUmVmUHRyIHBsYXllciA9IG1fcGxheWVyLmdldCgpOwotICAgICAg
ICBpZiAoIXBsYXllcikKKyAgICAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICB1cGRhdGVDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikp
OwotICAgICAgICBwbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworICAgICAgICBtX3BsYXll
ci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAgLTMzNyw5MSAr
MzM0LDEwMiBAQCBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6Om1vdmllTG9hZFR5cGUoKSBjb25zdAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6bmV0d29ya1N0YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUp
CiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOwogICAgIHVwZGF0ZUNhY2hl
ZFN0YXRlKFdURk1vdmUoc3RhdGUpKTsKLSAgICBpZiAoUmVmUHRyIHBsYXllciA9IG1fcGxheWVy
LmdldCgpKQotICAgICAgICBwbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKKyAgICBtX3Bs
YXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KQogeworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKICAgICBtX2NhY2hlZFN0
YXRlLnJlYWR5U3RhdGUgPSByZWFkeVN0YXRlOwotICAgIGlmIChSZWZQdHIgcGxheWVyID0gbV9w
bGF5ZXIuZ2V0KCkpCi0gICAgICAgIHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKKyAgICBt
X3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnJlYWR5U3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0
ZSkKIHsKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CiAgICAgdXBkYXRlQ2Fj
aGVkU3RhdGUoV1RGTW92ZShzdGF0ZSkpOwotICAgIGlmIChSZWZQdHIgcGxheWVyID0gbV9wbGF5
ZXIuZ2V0KCkpIHsKLSAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOwotICAgICAg
ICBjaGVja0FjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGUoKTsKLSAgICB9CisgICAgbV9wbGF5ZXIt
PnJlYWR5U3RhdGVDaGFuZ2VkKCk7CisgICAgY2hlY2tBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRl
KCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2b2x1bWVDaGFuZ2VkKGRv
dWJsZSB2b2x1bWUpCiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOwogICAg
IG1fdm9sdW1lID0gdm9sdW1lOwotICAgIGlmIChSZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0
KCkpCi0gICAgICAgIHBsYXllci0+dm9sdW1lQ2hhbmdlZCh2b2x1bWUpOworICAgIG1fcGxheWVy
LT52b2x1bWVDaGFuZ2VkKHZvbHVtZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjptdXRlQ2hhbmdlZChib29sIG11dGVkKQogeworICAgIGlmICghbV9wbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKICAgICBtX211dGVkID0gbXV0ZWQ7Ci0gICAgaWYgKFJlZlB0ciBwbGF5ZXIg
PSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgcGxheWVyLT5tdXRlQ2hhbmdlZChtdXRlZCk7Cisg
ICAgbV9wbGF5ZXItPm11dGVDaGFuZ2VkKG11dGVkKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnRpbWVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkK
IHsKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CiAgICAgbV9zZWVraW5nID0g
ZmFsc2U7CiAgICAgdXBkYXRlQ2FjaGVkU3RhdGUoV1RGTW92ZShzdGF0ZSkpOwotICAgIGlmIChS
ZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCi0gICAgICAgIHBsYXllci0+dGltZUNoYW5n
ZWQoKTsKKyAgICBtX3BsYXllci0+dGltZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmR1cmF0aW9uQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYg
c3RhdGUpCiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOwogICAgIHVwZGF0
ZUNhY2hlZFN0YXRlKFdURk1vdmUoc3RhdGUpKTsKLSAgICBpZiAoUmVmUHRyIHBsYXllciA9IG1f
cGxheWVyLmdldCgpKQotICAgICAgICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZCgpOworICAgIG1f
cGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnJhdGVDaGFuZ2VkKGRvdWJsZSByYXRlKQogeworICAgIGlmICghbV9wbGF5ZXIpCisg
ICAgICAgIHJldHVybjsKICAgICBtX3JhdGUgPSByYXRlOwotICAgIGlmIChSZWZQdHIgcGxheWVy
ID0gbV9wbGF5ZXIuZ2V0KCkpCi0gICAgICAgIHBsYXllci0+cmF0ZUNoYW5nZWQoKTsKKyAgICBt
X3BsYXllci0+cmF0ZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKGJvb2wgcGF1c2VkLCBNZWRpYVRpbWUmJiBtZWRpYVRp
bWUsIE1vbm90b25pY1RpbWUmJiB3YWxsVGltZSkKIHsKKyAgICBpZiAoIW1fcGxheWVyKQorICAg
ICAgICByZXR1cm47CiAgICAgbV9jYWNoZWRTdGF0ZS5wYXVzZWQgPSBwYXVzZWQ7CiAgICAgbV9j
YWNoZWRNZWRpYVRpbWUgPSBtZWRpYVRpbWU7CiAgICAgbV9jYWNoZWRNZWRpYVRpbWVRdWVyeVRp
bWUgPSB3YWxsVGltZTsKLSAgICBpZiAoUmVmUHRyIHBsYXllciA9IG1fcGxheWVyLmdldCgpKQot
ICAgICAgICBwbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7CisgICAgbV9wbGF5ZXItPnBs
YXliYWNrU3RhdGVDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjplbmdpbmVGYWlsZWRUb0xvYWQobG9uZyBwbGF0Zm9ybUVycm9yQ29kZSkKIHsKKyAgICBpZiAo
IW1fcGxheWVyKQorICAgICAgICByZXR1cm47CiAgICAgbV9wbGF0Zm9ybUVycm9yQ29kZSA9IHBs
YXRmb3JtRXJyb3JDb2RlOwotICAgIGlmIChSZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkp
Ci0gICAgICAgIHBsYXllci0+cmVtb3RlRW5naW5lRmFpbGVkVG9Mb2FkKCk7CisgICAgbV9wbGF5
ZXItPnJlbW90ZUVuZ2luZUZhaWxlZFRvTG9hZCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUm
JiBzdGF0ZSkKIHsKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CiAgICAgdXBk
YXRlQ2FjaGVkU3RhdGUoV1RGTW92ZShzdGF0ZSkpOwotICAgIGlmIChSZWZQdHIgcGxheWVyID0g
bV9wbGF5ZXIuZ2V0KCkpCi0gICAgICAgIHBsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCk7
CisgICAgbV9wbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5nZWQoV2ViQ29yZTo6RmxvYXRTaXplIG5hdHVy
YWxTaXplKQogeworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKICAgICBtX2Nh
Y2hlZFN0YXRlLm5hdHVyYWxTaXplID0gbmF0dXJhbFNpemU7Ci0gICAgaWYgKFJlZlB0ciBwbGF5
ZXIgPSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgcGxheWVyLT5zaXplQ2hhbmdlZCgpOworICAg
IG1fcGxheWVyLT5zaXplQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25z
dCBNb25vdG9uaWNUaW1lJiBxdWVyeVRpbWUsIGJvb2wgdGltZUlzUHJvZ3Jlc3NpbmcpCkBAIC00
MzQsMTUgKzQ0MiwxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3VycmVudFRp
bWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lLCBjbwogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7CiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUik7Ci0gICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQo
KSkKLSAgICAgICAgcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyAgICBpZiAo
bV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbmRlcmluZ01vZGVDaGFuZ2Vk
KCkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBpZiAoUmVmUHRyIHBsYXll
ciA9IG1fcGxheWVyLmdldCgpKQotICAgICAgICBwbGF5ZXItPnJlbmRlcmluZ01vZGVDaGFuZ2Vk
KCk7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+cmVuZGVyaW5nTW9kZUNo
YW5nZWQoKTsKIH0KIAogU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZW5naW5lRGVz
Y3JpcHRpb24oKSBjb25zdApAQCAtNDgwLDExICs0ODgsMTEgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkKIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNoZWNrQWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZSgp
CiB7Ci0gICAgaWYgKG1fcGxheWVyKSB7Ci0gICAgICAgIGJvb2wgcmVuZGVyaW5nQ2FuQmVBY2Nl
bGVyYXRlZCA9IG1fcGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCk7Ci0gICAgICAg
IGlmIChtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgIT0gcmVuZGVyaW5nQ2FuQmVBY2NlbGVy
YXRlZCkKLSAgICAgICAgICAgIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7Ci0g
ICAgfQorICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBib29sIHJlbmRl
cmluZ0NhbkJlQWNjZWxlcmF0ZWQgPSBtX3BsYXllci0+cmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRl
ZCgpOworICAgIGlmIChtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgIT0gcmVuZGVyaW5nQ2Fu
QmVBY2NlbGVyYXRlZCkKKyAgICAgICAgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQo
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRp
b24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKQEAgLTU4
OCw3ICs1OTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVk
aW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyCiAgICAgICAgIHJldHVybjsKICNl
bmRpZgogCi0gICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKSkKKyAgICBpZiAo
bV9wbGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5hZGRBdWRpb1RyYWNrKGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUpOwogfQogCkBAIC01OTYsOSArNjA0LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpCiB7CiAgICAgQVNTRVJUKG1fYXVkaW9UcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikp
OwogCisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChhdXRvKiB0
cmFjayA9IG1fYXVkaW9UcmFja3MuZ2V0KGlkZW50aWZpZXIpKSB7Ci0gICAgICAgIGlmIChSZWZQ
dHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCi0gICAgICAgICAgICBwbGF5ZXItPnJlbW92ZUF1
ZGlvVHJhY2soKnRyYWNrKTsKKyAgICAgICAgbV9wbGF5ZXItPnJlbW92ZUF1ZGlvVHJhY2soKnRy
YWNrKTsKICAgICAgICAgbV9hdWRpb1RyYWNrcy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgfQog
fQpAQCAtNjE4LDYgKzYyNyw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRS
ZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpCiAgICAgfSk7CiAg
ICAgQVNTRVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAorICAgIGlmICghbV9wbGF5ZXIpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNjI2LDE3ICs2MzgsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmFkZFJlbW90ZVRleHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGkK
ICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSAgICBpZiAoUmVmUHRyIHBsYXllciA9IG1fcGxh
eWVyLmdldCgpKQotICAgICAgICBwbGF5ZXItPmFkZFRleHRUcmFjayhhZGRSZXN1bHQuaXRlcmF0
b3ItPnZhbHVlKTsKKyAgICBtX3BsYXllci0+YWRkVGV4dFRyYWNrKGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVt
b3RlVGV4dFRyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
ICAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAorICAgIGlm
ICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKICAgICBpZiAoYXV0byogdHJhY2sgPSBtX3Rl
eHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKSB7Ci0gICAgICAgIGlmIChSZWZQdHIgcGxheWVyID0g
bV9wbGF5ZXIuZ2V0KCkpCi0gICAgICAgICAgICBwbGF5ZXItPnJlbW92ZVRleHRUcmFjaygqdHJh
Y2spOworICAgICAgICBtX3BsYXllci0+cmVtb3ZlVGV4dFRyYWNrKCp0cmFjayk7CiAgICAgICAg
IG1fdGV4dFRyYWNrcy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgfQogfQpAQCAtNzMzLDYgKzc0
NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byBh
ZGRSZXN1bHQgPSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewogICAgICAg
ICByZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIuZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9u
KSk7CiAgICAgfSk7CkBAIC03NDYsMTcgKzc2MSwxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3Bs
YXllci5nZXQoKSkKLSAgICAgICAgcGxheWVyLT5hZGRWaWRlb1RyYWNrKGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUpOworICAgIG1fcGxheWVyLT5hZGRWaWRlb1RyYWNrKGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3Zl
UmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKG1fdmlkZW9UcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwogCisg
ICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGF1dG8qIHRyYWNr
ID0gbV92aWRlb1RyYWNrcy5nZXQoaWRlbnRpZmllcikpIHsKLSAgICAgICAgaWYgKFJlZlB0ciBw
bGF5ZXIgPSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgICAgIHBsYXllci0+cmVtb3ZlVmlkZW9U
cmFjaygqdHJhY2spOworICAgICAgICBtX3BsYXllci0+cmVtb3ZlVmlkZW9UcmFjaygqdHJhY2sp
OwogICAgICAgICBtX3ZpZGVvVHJhY2tzLnJlbW92ZShpZGVudGlmaWVyKTsKICAgICB9CiB9CkBA
IC03NzgsMTIgKzc5NCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChj
b25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIFJl
ZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKTsKLSAgICAgICAgICAgIGlmICghcGxheWVyKQor
ICAgICAgICAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Ci0g
ICAgICAgICAgICBwbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworICAgICAgICAgICAgbV9w
bGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOwogICAgICAgICB9LCBtX2lkKTsKICAgICAgICAg
bV9tZWRpYVNvdXJjZVByaXZhdGUgPSBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OmNyZWF0ZSht
X21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgaWRlbnRpZmllciwgbV9tYW5hZ2VyLnR5
cGVDYWNoZShtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIpLCAqdGhpcywgY2xpZW50KTsKIApAQCAt
Nzk0LDEyICs4MDksMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHkKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBSZWZQdHIgcGxheWVyID0g
bV9wbGF5ZXIuZ2V0KCk7Ci0gICAgICAgIGlmICghcGxheWVyKQorICAgICAgICBpZiAoIW1fcGxh
eWVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1fY2FjaGVkU3RhdGUubmV0d29y
a1N0YXRlID0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3I7Ci0gICAgICAg
IHBsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworICAgICAgICBtX3BsYXllci0+bmV0d29y
a1N0YXRlQ2hhbmdlZCgpOwogICAgIH0pOwogfQogI2VuZGlmCkBAIC04MTEsMTIgKzgyNSwxMSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUm
KQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKTsKLSAgICAgICAgaWYgKCFwbGF5ZXIpCisg
ICAgICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9j
YWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3Jt
YXRFcnJvcjsKLSAgICAgICAgcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CisgICAgICAg
IG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKQEAg
LTg2NywxMSArODgwLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRl
b0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5Q2hhbmdlZCgpCiB7Ci0g
ICAgUmVmUHRyIHBsYXllciA9IG1fcGxheWVyLmdldCgpOwotICAgIGlmICghcGxheWVyKQorICAg
IGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5
Q2hhbmdlZChwbGF5ZXItPmlzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpKSwgbV9pZCk7CisgICAg
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVv
RnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKG1fcGxheWVyLT5pc1ZpZGVvRnVsbHNjcmVlblN0YW5k
YnkoKSksIG1faWQpOwogfQogI2VuZGlmCiAKQEAgLTEwNDgsOSArMTA2MCwxMCBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQo
Ym9vbCBkaXNhYmxlZCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmN1cnJlbnRQ
bGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wgaXNDdXJyZW50UGxheWJhY2tUYXJn
ZXRXaXJlbGVzcykKIHsKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CiAgICAg
bV9pc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzID0gaXNDdXJyZW50UGxheWJhY2tUYXJn
ZXRXaXJlbGVzczsKLSAgICBpZiAoUmVmUHRyIHBsYXllciA9IG1fcGxheWVyLmdldCgpKQotICAg
ICAgICBwbGF5ZXItPmN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGlzQ3Vy
cmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MpOworICAgIG1fcGxheWVyLT5jdXJyZW50UGxheWJh
Y2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChpc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNz
KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmlzQ3VycmVudFBsYXliYWNr
VGFyZ2V0V2lyZWxlc3MoKSBjb25zdApAQCAtMTE4Myw4ICsxMTk2LDggQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmtleUFkZGVkKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6Om1lZGlhUGxheWVyS2V5TmVlZGVkKElQQzo6RGF0YVJlZmVyZW5jZSYmIG1lc3NhZ2Up
CiB7Ci0gICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgcGxh
eWVyLT5rZXlOZWVkZWQoVWludDhBcnJheTo6Y3JlYXRlKG1lc3NhZ2UuZGF0YSgpLCBtZXNzYWdl
LnNpemUoKSkucHRyKCkpOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgbV9wbGF5ZXItPmtl
eU5lZWRlZChVaW50OEFycmF5OjpjcmVhdGUobWVzc2FnZS5kYXRhKCksIG1lc3NhZ2Uuc2l6ZSgp
KS5wdHIoKSk7CiB9CiAjZW5kaWYKIApAQCAtMTIwOSwxNiArMTIyMiwxOCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0
YW5jZSYgaW5zdGFuYwogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2FpdGluZ0Zv
cktleUNoYW5nZWQoYm9vbCB3YWl0aW5nRm9yS2V5KQogeworICAgIGlmICghbV9wbGF5ZXIpCisg
ICAgICAgIHJldHVybjsKICAgICBtX3dhaXRpbmdGb3JLZXkgPSB3YWl0aW5nRm9yS2V5OwotICAg
IGlmIChSZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCi0gICAgICAgIHBsYXllci0+d2Fp
dGluZ0ZvcktleUNoYW5nZWQoKTsKKyAgICBtX3BsYXllci0+d2FpdGluZ0ZvcktleUNoYW5nZWQo
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKGNvbnN0IFN0cmluZyYgaW5pdERhdGFUeXBlLCBJUEM6OkRhdGFSZWZlcmVu
Y2UmJiBpbml0RGF0YSkKIHsKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CiAg
ICAgYXV0byBpbml0RGF0YUJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUoaW5pdERhdGEuZGF0
YSgpLCBpbml0RGF0YS5zaXplKCkpOwotICAgIGlmIChSZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIu
Z2V0KCkpCi0gICAgICAgIHBsYXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoaW5p
dERhdGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhQnVmZmVyKSk7CisgICAgbV9wbGF5ZXItPmluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGluaXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YUJ1
ZmZlcikpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d2FpdGluZ0Zvcktl
eSgpIGNvbnN0CkBAIC0xNDA4LDIxICsxNDIzLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpyZW1vdmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1v
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXNvdXJjZU5vdFN1cHBvcnRlZCgp
CiB7Ci0gICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgcGxh
eWVyLT5yZXNvdXJjZU5vdFN1cHBvcnRlZCgpOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAg
bV9wbGF5ZXItPnJlc291cmNlTm90U3VwcG9ydGVkKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjphY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKFJl
ZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5nZXQoKSkKLSAgICAgICAgcGxheWVyLT5hY3RpdmVTb3Vy
Y2VCdWZmZXJzQ2hhbmdlZCgpOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgbV9wbGF5ZXIt
PmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmdldFJhd0Nvb2tpZXMoY29uc3Qg
VVJMJiB1cmwsIFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjpHZXRSYXdDb29raWVzQ2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKLSAgICBpZiAoUmVmUHRyIHBsYXllciA9
IG1fcGxheWVyLmdldCgpKQotICAgICAgICBwbGF5ZXItPmdldFJhd0Nvb2tpZXModXJsLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICBtX3Bs
YXllci0+Z2V0UmF3Q29va2llcyh1cmwsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
ICNlbmRpZgogCg==
</data>
<flag name="review"
          id="466798"
          type_id="1"
          status="?"
          setter="jean-yves.avenard"
    />
          </attachment>
      

    </bug>

</bugzilla>