<?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>198945</bug_id>
          
          <creation_ts>2019-06-17 17:21:20 -0700</creation_ts>
          <short_desc>Handle NSProgress calling our cancellation handler on background threads (and calling it more than once)</short_desc>
          <delta_ts>2019-06-18 14:30:25 -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>WebKit Misc.</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>david_quesada</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1545487</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-06-17 17:21:20 -0700</bug_when>
    <thetext>Handle NSProgress calling our cancellation handler on background threads (and calling it more than once)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545489</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-06-17 17:21:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/51392926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545493</commentid>
    <comment_count>2</comment_count>
      <attachid>372300</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-06-17 17:34:31 -0700</bug_when>
    <thetext>Created attachment 372300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545563</commentid>
    <comment_count>3</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2019-06-17 23:05:42 -0700</bug_when>
    <thetext>Is it actually important to prevent the progress cancellation handler from calling cancel() twice? This could still technically happen if the NSProgress is canceled while the UI process cancels the download simultaneously - after one call to cancel() is made and the download is waiting for CFNetwork to deliver the resume data, the other call to cancel() can come in. Previously, this would have caused issues due to the Download&apos;s didCancel() being called multiple times, but as of r245901, it&apos;s safe to call Download::platformCancelNetworkLoad() multiple times. Technically we could add the &quot;don&apos;t allow canceling multiple times&quot; check to Download::cancel(), using the value of m_wasCanceled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545601</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-06-18 07:26:51 -0700</bug_when>
    <thetext>I thought we’d stopped using the SPI path for cancel.

Since we haven’t, you’re right. Also want to add some locking because while sleeping on it I realize this isn’t thread safe the way Foundation makes concurrent calls.

New patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545747</commentid>
    <comment_count>5</comment_count>
      <attachid>372366</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-06-18 12:59:34 -0700</bug_when>
    <thetext>Created attachment 372366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545748</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-06-18 13:01:15 -0700</bug_when>
    <thetext>This new patch:
- Handles the NSProgress cancellation handler being called on any thread
- Handles it being called any number of times
- Handles it being called *concurrently* on different threads
- Handles WebKit::Download::cancel() being called multiple times (e.g. once from an NSProgress cancel and once from WebKit download SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545811</commentid>
    <comment_count>7</comment_count>
      <attachid>372366</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-18 14:30:24 -0700</bug_when>
    <thetext>Comment on attachment 372366
Patch

Clearing flags on attachment: 372366

Committed r246568: &lt;https://trac.webkit.org/changeset/246568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545812</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-18 14:30:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372300</attachid>
            <date>2019-06-17 17:34:31 -0700</date>
            <delta_ts>2019-06-18 12:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198945-20190617173431.patch</filename>
            <type>text/plain</type>
            <size>3450</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNlMzQ0OTBlZGYwNmVlYzBl
MTVmNDI2ZTBmYTQ1ZDc2NzM5ZDM2M2EuLjlkM2FkMzQ2MDdhNzE0NWUzZjJlYWVkNDBiNGNlY2U1
NjE4YTliZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDYtMTcgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEhhbmRsZSBOU1Byb2dyZXNzIGNh
bGxpbmcgb3VyIGNhbmNlbGxhdGlvbiBoYW5kbGVyIG9uIGJhY2tncm91bmQgdGhyZWFkcyAoYW5k
IGNhbGxpbmcgaXQgbW9yZSB0aGFuIG9uY2UpLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTEz
OTI5MjY+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4OTQ1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgeW91
IGhhdmUgYSBkb3dubG9hZCBpbiBwcm9ncmVzcyBhbmQgcXVpY2tseSB0YXAgdGhlIGJ1dHRvbiB0
byBjYW5jZWwgaXQgdHdpY2UsIHRoZW46CisgICAgICAgICAgICAtIE5TUHJvZ3Jlc3MgY2FsbHMg
b3VyIGNhbmNlbGxhdGlvbiBoYW5kbGVyIG9uIGEgbm9uLW1haW4gdGhyZWFkLCB3aGljaCB3ZSBj
YW4ndCBoYW5kbGUuCisgICAgICAgICAgICAtIFRoZXkgZG8gaXQgbW9yZSB0aGFuIG9uY2UsIHdo
aWNoIGlzIGFsc28gYmFkLgorICAgICAgICAKKyAgICAgICAgTGV0J3Mgd29yayBhcm91bmQgdGhh
dC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpjYW5jZWwpOgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbToKKyAgICAgICAgKC1b
V0tEb3dubG9hZFByb2dyZXNzIGluaXRXaXRoRG93bmxvYWRUYXNrOmRvd25sb2FkOlVSTDpzYW5k
Ym94RXh0ZW5zaW9uOl0pOiBNb3ZlIHRoZSB3b3JrIHRvIHRoZSBtYWluIHRocmVhZCwKKyAgICAg
ICAgICBhbmQgY29ycmVjdGx5IG9ubHkgZG8gaXQgb25jZS4KKwogMjAxOS0wNi0xNyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByb3RlY3Qg
U3RvcmFnZU1hbmFnZXI6Om1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlcyB3aXRoIGEgTG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3Bw
CmluZGV4IGUyMTBkMGRjYWJmMDg0NDU1ZGQ0NmEyN2MwZmJjZjJkYTNiZDUyNDcuLjIxNmMzMGM3
YmE3YzM0MmU2MGVkMTZiOGMyYTQwMjkyYTk4NDJlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTg2LDYgKzg2LDgg
QEAgRG93bmxvYWQ6On5Eb3dubG9hZCgpCiAKIHZvaWQgRG93bmxvYWQ6OmNhbmNlbCgpCiB7Cisg
ICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCiAgICAgbV93YXNDYW5jZWxlZCA9
IHRydWU7CiAgICAgaWYgKG1fZG93bmxvYWQpIHsKICAgICAgICAgbV9kb3dubG9hZC0+Y2FuY2Vs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9j
b2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0KaW5kZXggODFiNTkzNzE2MTg5
NWJiMWQ1N2JiODcwY2EyZWE0MjFlZjA3M2ZjYS4uZWE3OWQzYWQxOTk1ODFhZmY2YTQ5YjQ1M2Zi
Yzg3ZDAzMjYwYmQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQpAQCAt
MjksNiArMjksNyBAQAogI2ltcG9ydCAiRG93bmxvYWQuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvTlNQcm9ncmVzc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIHN0YXRpYyB2
b2lkKiBXS0Rvd25sb2FkUHJvZ3Jlc3NCeXRlc0V4cGVjdGVkVG9SZWNlaXZlQ291bnRDb250ZXh0
ID0gJldLRG93bmxvYWRQcm9ncmVzc0J5dGVzRXhwZWN0ZWRUb1JlY2VpdmVDb3VudENvbnRleHQ7
CkBAIC02NSwxMyArNjYsMjcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG93bmxvYWRUYXNr
OihOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sgKil0YXNrIGRvd25sb2FkOigKICAgICBtX3NhbmRi
b3hFeHRlbnNpb24gPSBzYW5kYm94RXh0ZW5zaW9uOwogCiAgICAgc2VsZi5jYW5jZWxsYWJsZSA9
IFlFUzsKLSAgICBzZWxmLmNhbmNlbGxhdGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtT
ZWxmID0gV2Vha09iakNQdHI8V0tEb3dubG9hZFByb2dyZXNzPiB7IHNlbGYgfV0geworCisgICAg
RnVuY3Rpb248dm9pZCgpPiBjYW5jZWxGdW5jdGlvbiA9IFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRy
PFdLRG93bmxvYWRQcm9ncmVzcz4geyBzZWxmIH1dIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxm
ID0gd2Vha1NlbGYuZ2V0KCk7CiAgICAgICAgIGlmICghc3Ryb25nU2VsZikKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBpZiAoYXV0byogZG93bmxvYWQgPSBzdHJvbmdTZWxmLmdldCgp
LT5tX2Rvd25sb2FkKQogICAgICAgICAgICAgZG93bmxvYWQtPmNhbmNlbCgpOworICAgIH07CisK
KyAgICBzZWxmLmNhbmNlbGxhdGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NhbmNlbEZ1bmN0
aW9uID0gV1RGTW92ZShjYW5jZWxGdW5jdGlvbildKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICgh
Y2FuY2VsRnVuY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFpc01h
aW5UaHJlYWQoKSkgeworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGNhbmNl
bEZ1bmN0aW9uKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBj
YW5jZWxGdW5jdGlvbigpOworICAgICAgICBjYW5jZWxGdW5jdGlvbiA9IG51bGxwdHI7CiAgICAg
fSkuZ2V0KCk7CiAKICAgICByZXR1cm4gc2VsZjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372366</attachid>
            <date>2019-06-18 12:59:34 -0700</date>
            <delta_ts>2019-06-18 14:30:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198945-20190618125933.patch</filename>
            <type>text/plain</type>
            <size>4316</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNlMzQ0OTBlZGYwNmVlYzBl
MTVmNDI2ZTBmYTQ1ZDc2NzM5ZDM2M2EuLmJlOGQzZTc3ZWI4ZWI3MjVmYTlkODM2Nzc3MmQ1MTk5
NzA3OTY1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDYtMTggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEhhbmRsZSBOU1Byb2dyZXNzIGNh
bGxpbmcgb3VyIGNhbmNlbGxhdGlvbiBoYW5kbGVyIG9uIGJhY2tncm91bmQgdGhyZWFkcyAoYW5k
IGNhbGxpbmcgaXQgbW9yZSB0aGFuIG9uY2UpLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTEz
OTI5MjY+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4OTQ1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgeW91
IGhhdmUgYSBkb3dubG9hZCBpbiBwcm9ncmVzcyBhbmQgcXVpY2tseSB0YXAgdGhlIGJ1dHRvbiB0
byBjYW5jZWwgaXQgbXVsdGlwbGUgdGltZXMsIHRoZW46CisgICAgICAgICAgICAtIE5TUHJvZ3Jl
c3MgY2FsbHMgb3VyIGNhbmNlbGxhdGlvbiBoYW5kbGVyIG9uIGEgbm9uLW1haW4gdGhyZWFkLCB3
aGljaCB3ZSBjYW4ndCBoYW5kbGUuCisgICAgICAgICAgICAtIFRoZXkgZG8gaXQgbW9yZSB0aGFu
IG9uY2UsIHdoaWNoIGlzIGFsc28gYmFkLgorICAgICAgICAgICAgLSBUaGV5IG1pZ2h0IGV2ZW4g
ZG8gaXQgbXVsdGlwbGUgdGltZXMgY29uY3VycmVudGx5IChvbiBkaWZmZXJlbnQgYmFja2dyb3Vu
ZCBkaXNwYXRjaCBxdWV1ZXMpCisgICAgICAgIAorICAgICAgICBMZXQncyB3b3JrIGFyb3VuZCB0
aGVzZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpjYW5jZWwpOiBEb3VibGUgY2hlY2sgd2UncmUg
b24gdGhlIG1haW4gdGhyZWFkLCBhbmQgaGFuZGxlIGJlaW5nIGNhbGxlZCB0d2ljZS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3Mu
bW06CisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBwZXJmb3JtQ2FuY2VsXSk6IEFjdHVh
bGx5IGNhbmNlbCB0aGUgV2ViS2l0OjpEb3dubG9hZCBpZiB3ZSBzdGlsbCBoYXZlIG9uZS4KKyAg
ICAgICAgKC1bV0tEb3dubG9hZFByb2dyZXNzIHByb2dyZXNzQ2FuY2VsbGVkXSk6IENhbGxlZCB3
aGVuIE5TUHJvZ3Jlc3MgY2FsbHMgdGhlIGNhbmNlbGxhdGlvbiBoYW5kbGVyLCBubyBtYXR0ZXIK
KyAgICAgICAgICB3aGljaCB0aHJlYWQgaXQgZG9lcyBpdCBvbi4gQnkgbGV2ZXJhZ2luZyBzdGQ6
OmNhbGxfb25jZSB3ZSBoYW5kbGUgbXVsdGlwbGUgY2FsbHMgYXMgd2VsbCBhcyBiZWluZyBjYWxs
ZWQKKyAgICAgICAgICBjb25jdXJyZW50bHkgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcy4gY2FsbF9v
bmNlIHB1bnRzIHRoZSAqYWN0dWFsKiBjYW5jZWwgb3BlcmF0aW9uIG9mZiB0byB0aGUgbWFpbiB0
aHJlYWQuCisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBpbml0V2l0aERvd25sb2FkVGFz
azpkb3dubG9hZDpVUkw6c2FuZGJveEV4dGVuc2lvbjpdKTogVGhlIGNhbmNlbGxhdGlvbiBoYW5k
bGVyIGlzCisgICAgICAgICAgbm93IHNpbXBseSBjYWxsaW5nICdwcm9ncmVzc0NhbmNlbGxlZCcg
b24gc2VsZiwgYXNzdW1pbmcgdGhlIHdlYWsgcG9pbnRlciBmb3Igc2VsZiBpcyBzdGlsbCB2YWxp
ZC4KKwogMjAxOS0wNi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFByb3RlY3QgU3RvcmFnZU1hbmFnZXI6Om1fbG9jYWxTdG9yYWdlTmFt
ZXNwYWNlcyB3aXRoIGEgTG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IGUyMTBkMGRjYWJmMDg0NDU1ZGQ0NmEyN2Mw
ZmJjZjJkYTNiZDUyNDcuLmJmMDUxYmY4NmIyMmJiNmJkODk0ZTMwMTI0NzkyNmI3NWI2MWQ5ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAKQEAgLTg2LDcgKzg2LDEyIEBAIERvd25sb2FkOjp+RG93bmxvYWQoKQogCiB2b2lk
IERvd25sb2FkOjpjYW5jZWwoKQogeworICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKworICAgIGlmIChtX3dhc0NhbmNlbGVkKQorICAgICAgICByZXR1cm47CiAgICAgbV93YXND
YW5jZWxlZCA9IHRydWU7CisKICAgICBpZiAobV9kb3dubG9hZCkgewogICAgICAgICBtX2Rvd25s
b2FkLT5jYW5jZWwoKTsKICAgICAgICAgZGlkQ2FuY2VsKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jl
c3MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rv
d25sb2FkUHJvZ3Jlc3MubW0KaW5kZXggODFiNTkzNzE2MTg5NWJiMWQ1N2JiODcwY2EyZWE0MjFl
ZjA3M2ZjYS4uMWI5M2I2Njk4YTk0M2UwY2MyYjU2OTgyOTY1ZjE4MTg2NmNmZmQ5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3du
bG9hZFByb2dyZXNzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQpAQCAtNDEsNiArNDEsMjUgQEAgQGltcGxl
bWVudGF0aW9uIFdLRG93bmxvYWRQcm9ncmVzcyB7CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lv
bkRvd25sb2FkVGFzaz4gbV90YXNrOwogICAgIFdlYktpdDo6RG93bmxvYWQqIG1fZG93bmxvYWQ7
CiAgICAgUmVmUHRyPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
OworICAgIHN0ZDo6b25jZV9mbGFnIG1fcHJvZ3Jlc3NDYW5jZWxPbmNlOworfQorCistICh2b2lk
KXBlcmZvcm1DYW5jZWwKK3sKKyAgICBpZiAobV9kb3dubG9hZCkKKyAgICAgICAgbV9kb3dubG9h
ZC0+Y2FuY2VsKCk7Cit9CisKKy0gKHZvaWQpcHJvZ3Jlc3NDYW5jZWxsZWQKK3sKKyAgICBzdGQ6
OmNhbGxfb25jZShtX3Byb2dyZXNzQ2FuY2VsT25jZSwgW3NlbGZdIHsKKyAgICAgICAgaWYgKCFp
c01haW5UaHJlYWQoKSkgeworICAgICAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yT25NYWlu
VGhyZWFkOkBzZWxlY3RvcihwZXJmb3JtQ2FuY2VsKSB3aXRoT2JqZWN0Om5pbCB3YWl0VW50aWxE
b25lOk5PXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFtzZWxm
IHBlcmZvcm1DYW5jZWxdOworICAgIH0pOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhE
b3dubG9hZFRhc2s6KE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayAqKXRhc2sgZG93bmxvYWQ6KFdl
YktpdDo6RG93bmxvYWQqKWRvd25sb2FkIFVSTDooTlNVUkwgKilmaWxlVVJMIHNhbmRib3hFeHRl
bnNpb246KFJlZlB0cjxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb24+KXNhbmRib3hFeHRlbnNpb24K
QEAgLTY2LDEyICs4NSw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERvd25sb2FkVGFzazoo
TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopdGFzayBkb3dubG9hZDooCiAKICAgICBzZWxmLmNh
bmNlbGxhYmxlID0gWUVTOwogICAgIHNlbGYuY2FuY2VsbGF0aW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0Rvd25sb2FkUHJvZ3Jlc3M+IHsgc2VsZiB9
XSB7Ci0gICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwotICAgICAgICBp
ZiAoIXN0cm9uZ1NlbGYpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGF1dG8q
IGRvd25sb2FkID0gc3Ryb25nU2VsZi5nZXQoKS0+bV9kb3dubG9hZCkKLSAgICAgICAgICAgIGRv
d25sb2FkLT5jYW5jZWwoKTsKKyAgICAgICAgW3dlYWtTZWxmLmdldCgpIHByb2dyZXNzQ2FuY2Vs
bGVkXTsKICAgICB9KS5nZXQoKTsKIAogICAgIHJldHVybiBzZWxmOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>