<?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>201381</bug_id>
          
          <creation_ts>2019-08-31 13:28:23 -0700</creation_ts>
          <short_desc>Make &quot;clips compositing descendants&quot; an indirect compositing reason</short_desc>
          <delta_ts>2019-09-03 12:50:18 -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>Compositing</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567000</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-31 13:28:23 -0700</bug_when>
    <thetext>Make &quot;clips compositing descendants&quot; an indirect compositing reason</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567001</commentid>
    <comment_count>1</comment_count>
      <attachid>377805</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-31 13:30:46 -0700</bug_when>
    <thetext>Created attachment 377805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567012</commentid>
    <comment_count>2</comment_count>
      <attachid>377805</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-08-31 15:52:45 -0700</bug_when>
    <thetext>Comment on attachment 377805
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +
&gt; +        Whether a layer has to composite to clip composited descendants is an &quot;indirect&quot; reason,
&gt; +        just like having to composite for filters if there&apos;s a composited descendant. So add
&gt; +        IndirectCompositingReason::Clipping, and have computeIndirectCompositingReason() compute this.

What is the goal/benefit of computing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567014</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-31 16:12:30 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 377805 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377805&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +
&gt; &gt; +        Whether a layer has to composite to clip composited descendants is an &quot;indirect&quot; reason,
&gt; &gt; +        just like having to composite for filters if there&apos;s a composited descendant. So add
&gt; &gt; +        IndirectCompositingReason::Clipping, and have computeIndirectCompositingReason() compute this.
&gt; 
&gt; What is the goal/benefit of computing this?

We already compute this. This patch is some cleanup prior to fixing bug 201330.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567091</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-09-01 17:36:42 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; Comment on attachment 377805 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=377805&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; &gt; +
&gt; &gt; &gt; +        Whether a layer has to composite to clip composited descendants is an &quot;indirect&quot; reason,
&gt; &gt; &gt; +        just like having to composite for filters if there&apos;s a composited descendant. So add
&gt; &gt; &gt; +        IndirectCompositingReason::Clipping, and have computeIndirectCompositingReason() compute this.
&gt; &gt; 
&gt; &gt; What is the goal/benefit of computing this?
&gt; 
&gt; We already compute this. This patch is some cleanup prior to fixing bug
&gt; 201330.

Ok. Can you add that to the ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567212</commentid>
    <comment_count>5</comment_count>
      <attachid>377854</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-09-02 10:00:15 -0700</bug_when>
    <thetext>Created attachment 377854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567442</commentid>
    <comment_count>6</comment_count>
      <attachid>377854</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-03 11:13:01 -0700</bug_when>
    <thetext>Comment on attachment 377854
Patch

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:3069
&gt; +    return IndirectCompositingReason::None;

Would be nice to modernise this to use Optional/OptionSet at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567472</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-09-03 12:49:18 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/249434/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567473</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-03 12:50:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/54986805&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377805</attachid>
            <date>2019-08-31 13:30:46 -0700</date>
            <delta_ts>2019-09-02 10:00:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201381-20190831133046.patch</filename>
            <type>text/plain</type>
            <size>12194</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzllNzNmM2JjMTQxYzM4
MDg2MmExNDI0MWZiN2QwZDExZTExZWNhNS4uNmI1ODI3YjY1NGU1ZmM4NzczMDI2MTMyNGIzZTc2
YzU1MGRkN2Y2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA4LTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgImNsaXBz
IGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIiBhbiBpbmRpcmVjdCBjb21wb3NpdGluZyByZWFzb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZXRoZXIg
YSBsYXllciBoYXMgdG8gY29tcG9zaXRlIHRvIGNsaXAgY29tcG9zaXRlZCBkZXNjZW5kYW50cyBp
cyBhbiAiaW5kaXJlY3QiIHJlYXNvbiwKKyAgICAgICAganVzdCBsaWtlIGhhdmluZyB0byBjb21w
b3NpdGUgZm9yIGZpbHRlcnMgaWYgdGhlcmUncyBhIGNvbXBvc2l0ZWQgZGVzY2VuZGFudC4gU28g
YWRkCisgICAgICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OkNsaXBwaW5nLCBhbmQgaGF2
ZSBjb21wdXRlSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbXB1dGUgdGhpcy4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNv
bXBvc2l0aW5nUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0xheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uc0ZvckNvbXBvc2l0aW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUluZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9ySW5kaXJlY3RSZWFzb24gY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKwog
MjAxOS0wOC0yOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3lzdGVtIHRyYWNpbmcgcG9pbnRzIGZvciBjb21wb3NpdGluZyB1cGRhdGVzLCBh
bmQgdG91Y2gtZXZlbnQgZGlzcGF0Y2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDQ1MWFjM2JjMDk5YTk2ZTlkZWNkOWYxYmRlZmVkZTc2NDJmODIxZmUu
Ljk4OGYyNTQxM2IyNGJhMjQ4NTRjYmQwZmYxMDE5OTEyNmJhNmM1NjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjk0OSw2ICs2OTQ5LDcgQEAgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
biByZWFzb24pCiB7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKICAgICBjYXNlIEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb246Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBJbmRp
cmVjdENvbXBvc2l0aW5nUmVhc29uOjpDbGlwcGluZzogdHMgPDwgImNsaXBwaW5nIjsgYnJlYWs7
CiAgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpTdGFja2luZzogdHMgPDwgInN0
YWNraW5nIjsgYnJlYWs7CiAgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVy
Zmxvd1Njcm9sbFBvc2l0aW9uaW5nOiB0cyA8PCAib3ZlcmZsb3cgcG9zaXRpb25pbmciOyBicmVh
azsKICAgICBjYXNlIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok92ZXJsYXA6IHRzIDw8ICJv
dmVybGFwIjsgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4
IGJjOTRiZDYyOTQ1MzcwMGQ2MzMxZmQ2ZWFjODkzYTRhZmU2OTM3NDIuLjE2NzJkMmFkN2JlNzEw
YTI3OThkMDk1NWY4YWI2YmRjNDUyYmQ0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC0xMTksNiArMTE5LDcgQEAgZW51bSBjbGFzcyBSZXF1ZXN0U3RhdGUgewog
CiBlbnVtIGNsYXNzIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gewogICAgIE5vbmUsCisgICAg
Q2xpcHBpbmcsCiAgICAgU3RhY2tpbmcsCiAgICAgT3ZlcmZsb3dTY3JvbGxQb3NpdGlvbmluZywK
ICAgICBPdmVybGFwLApAQCAtMTIzOCw4ICsxMjM5LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aGFzVHJhbnNmb3JtZWRBbmNlc3RvciA6IDE7CiAgICAgYm9vbCBtX2hhczNEVHJhbnNmb3JtZWRB
bmNlc3RvciA6IDE7CiAKLSAgICB1bnNpZ25lZCBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24g
OiAzOwotICAgIHVuc2lnbmVkIG1fdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFz
b24gOiAyOworICAgIHVuc2lnbmVkIG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA6IDQ7IC8v
IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24KKyAgICB1bnNpZ25lZCBtX3ZpZXdwb3J0Q29uc3Ry
YWluZWROb3RDb21wb3NpdGVkUmVhc29uIDogMjsgLy8gVmlld3BvcnRDb25zdHJhaW5lZE5vdENv
bXBvc2l0ZWRSZWFzb24KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCkBAIC0xMjU3LDcgKzEyNTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQotICAgIHVuc2lnbmVkIG1fYmxlbmRNb2RlIDog
NTsKKyAgICB1bnNpZ25lZCBtX2JsZW5kTW9kZSA6IDU7IC8vIEJsZW5kTW9kZQogICAgIGJvb2wg
bV9oYXNOb3RJc29sYXRlZENvbXBvc2l0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzIDogMTsKICAgICBi
b29sIG1faGFzTm90SXNvbGF0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzIDogMTsKICAgICBib29sIG1f
aGFzTm90SXNvbGF0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzU3RhdHVzRGlydHkgOiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCBiMzUzN2IxMWViNGI1Y2IxODZmNTVlMDY0OTRlY2RkZDUxOWVmMzM2Li4wNDk5MjIzOWViNmU0
OWI0NTgxMjE2MDI2MWYxOWU1YjgzYThhNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTAxNCwyMyArMTAxNCwxOSBA
QCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1l
bnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgIEFTU0VSVCghbGF5ZXIuaGFzTm90SXNvbGF0
ZWRDb21wb3NpdGVkQmxlbmRpbmdEZXNjZW5kYW50cygpIHx8IGxheWVyLmhhc05vdElzb2xhdGVk
QmxlbmRpbmdEZXNjZW5kYW50cygpKTsKICNlbmRpZgogICAgIC8vIE5vdyBjaGVjayBmb3IgcmVh
c29ucyB0byBiZWNvbWUgY29tcG9zaXRlZCB0aGF0IGRlcGVuZCBvbiB0aGUgc3RhdGUgb2YgZGVz
Y2VuZGFudCBsYXllcnMuCi0gICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENv
bXBvc2l0aW5nUmVhc29uOwotICAgIGlmICghd2lsbEJlQ29tcG9zaXRlZCAmJiBjYW5CZUNvbXBv
c2l0ZWQobGF5ZXIpCi0gICAgICAgICYmIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJbmRpcmVjdFJl
YXNvbihsYXllciwgY3VycmVudFN0YXRlLnN1YnRyZWVJc0NvbXBvc2l0aW5nLCBhbnlEZXNjZW5k
YW50SGFzM0RUcmFuc2Zvcm0sIGxheWVyUGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZywgaW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbikpIHsKLSAgICAgICAgbGF5ZXIuc2V0SW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbihpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsKLSAgICAgICAgbGF5ZXJXaWxs
Q29tcG9zaXRlUG9zdERlc2NlbmRhbnRzKCk7CisgICAgaWYgKCF3aWxsQmVDb21wb3NpdGVkICYm
IGNhbkJlQ29tcG9zaXRlZChsYXllcikpIHsKKyAgICAgICAgYXV0byBpbmRpcmVjdFJlYXNvbiA9
IGNvbXB1dGVJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKGxheWVyLCBjdXJyZW50U3RhdGUuc3Vi
dHJlZUlzQ29tcG9zaXRpbmcsIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSwgbGF5ZXJQYWlu
dHNJbnRvUHJvdmlkZWRCYWNraW5nKTsKKyAgICAgICAgaWYgKGluZGlyZWN0UmVhc29uICE9IElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmUpIHsKKyAgICAgICAgICAgIGxheWVyLnNldElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oaW5kaXJlY3RSZWFzb24pOworICAgICAgICAgICAgbGF5
ZXJXaWxsQ29tcG9zaXRlUG9zdERlc2NlbmRhbnRzKCk7CisgICAgICAgIH0KICAgICB9Ci0gICAg
CisKICAgICBpZiAobGF5ZXIucmVmbGVjdGlvbkxheWVyKCkpIHsKICAgICAgICAgLy8gRklYTUU6
IFNob3VsZG4ndCB3ZSBjYWxsIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyB0byBoYW5k
bGUgYSByZWZsZWN0aW9uIG92ZXJsYXBwaW5nIHdpdGggYW5vdGhlciByZW5kZXJlcj8KICAgICAg
ICAgbGF5ZXIucmVmbGVjdGlvbkxheWVyKCktPnNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24o
d2lsbEJlQ29tcG9zaXRlZCA/IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlN0YWNraW5nIDog
SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9uZSk7CiAgICAgfQogCi0gICAgLy8gc2V0SGFz
Q29tcG9zaXRpbmdEZXNjZW5kYW50KCkgbWF5IGhhdmUgY2hhbmdlZCB0aGUgYW5zd2VyIHRvIG5l
ZWRzVG9CZUNvbXBvc2l0ZWQoKSB3aGVuIGNsaXBwaW5nLCBzbyB0ZXN0IHRoYXQgbm93LgotICAg
IGJvb2wgaXNDb21wb3NpdGVkQ2xpcHBpbmdMYXllciA9IGNhbkJlQ29tcG9zaXRlZChsYXllcikg
JiYgY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKGxheWVyKTsKLSAgICBpZiAoaXNDb21wb3Np
dGVkQ2xpcHBpbmdMYXllciAmICF3aWxsQmVDb21wb3NpdGVkKQotICAgICAgICBsYXllcldpbGxD
b21wb3NpdGVQb3N0RGVzY2VuZGFudHMoKTsKLQogICAgIC8vIElmIHdlJ3JlIGJhY2sgYXQgdGhl
IHJvb3QsIGFuZCBubyBvdGhlciBsYXllcnMgbmVlZCB0byBiZSBjb21wb3NpdGVkLCBhbmQgdGhl
IHJvb3QgbGF5ZXIgaXRzZWxmIGRvZXNuJ3QgbmVlZAogICAgIC8vIHRvIGJlIGNvbXBvc2l0ZWQs
IHRoZW4gd2UgY2FuIGRyb3Agb3V0IG9mIGNvbXBvc2l0aW5nIG1vZGUgYWx0b2dldGhlci4gSG93
ZXZlciwgZG9uJ3QgZHJvcCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZQogICAgIC8vIGlmIHRoZXJl
IGFyZSBjb21wb3NpdGVkIGxheWVycyB0aGF0IHdlIGRpZG4ndCBoaXQgaW4gb3VyIHRyYXZlcnNh
bCAoZS5nLiBiZWNhdXNlIG9mIHZpc2liaWxpdHk6aGlkZGVuKS4KQEAgLTIzMjEsNyArMjMxNyw2
IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIo
Y29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBSCiAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlz
IGhhcyBhIGNvbXBvc2l0aW5nIGxheWVyLCBidXQgaXQgbWF5IG5vdCBoYXZlIGJhY2tpbmcuCiAg
ICAgcmV0dXJuIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JUcmFuc2Zvcm0ocmVuZGVyZXIpCiAgICAg
ICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24ocmVuZGVyZXIpCi0gICAgICAg
IHx8IGNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cygqcmVuZGVyZXIubGF5ZXIoKSkKICAgICAg
ICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKHJlbmRlcmVyLCAqcmVuZGVyZXIu
bGF5ZXIoKSwgcXVlcnlEYXRhKQogICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2Fu
dmFzKHJlbmRlcmVyKQogICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yRmlsdGVycyhy
ZW5kZXJlcikKQEAgLTI0NDgsOSArMjQ0Myw2IEBAIE9wdGlvblNldDxDb21wb3NpdGluZ1JlYXNv
bj4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWFzb25zRm9yQ29tcG9zaXRpbmcoY29uc3QKICAg
ICBpZiAoKGNhblJlbmRlcjNEVHJhbnNmb3JtcygpICYmIHJlbmRlcmVyLnN0eWxlKCkuYmFja2Zh
Y2VWaXNpYmlsaXR5KCkgPT0gQmFja2ZhY2VWaXNpYmlsaXR5OjpIaWRkZW4pKQogICAgICAgICBy
ZWFzb25zLmFkZChDb21wb3NpdGluZ1JlYXNvbjo6QmFja2ZhY2VWaXNpYmlsaXR5SGlkZGVuKTsK
IAotICAgIGlmIChjbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMoKnJlbmRlcmVyLmxheWVyKCkp
KQotICAgICAgICByZWFzb25zLmFkZChDb21wb3NpdGluZ1JlYXNvbjo6Q2xpcHNDb21wb3NpdGlu
Z0Rlc2NlbmRhbnRzKTsKLQogICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9u
KHJlbmRlcmVyKSkKICAgICAgICAgcmVhc29ucy5hZGQoQ29tcG9zaXRpbmdSZWFzb246OkFuaW1h
dGlvbik7CiAKQEAgLTI0NjksNiArMjQ2MSw5IEBAIE9wdGlvblNldDxDb21wb3NpdGluZ1JlYXNv
bj4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWFzb25zRm9yQ29tcG9zaXRpbmcoY29uc3QKICAg
ICBzd2l0Y2ggKHJlbmRlcmVyLmxheWVyKCktPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSkg
ewogICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9uZToKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpDbGlwcGluZzoKKyAgICAg
ICAgcmVhc29ucy5hZGQoQ29tcG9zaXRpbmdSZWFzb246OkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5k
YW50cyk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
bjo6U3RhY2tpbmc6CiAgICAgICAgIHJlYXNvbnMuYWRkKENvbXBvc2l0aW5nUmVhc29uOjpTdGFj
a2luZyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzA0Miw0MiArMzAzNywzNiBAQCBib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5n
KGNvbnN0IFJlbmRlcgogICAgIHJldHVybiBsYXllci5oYXNDb21wb3NpdGVkU2Nyb2xsYWJsZU92
ZXJmbG93KCk7CiB9CiAKLS8vIEZJWE1FOiB3aHkgZG9lc24ndCB0aGlzIGhhbmRsZSB0aGUgY2xp
cHBpbmcgY2FzZXM/Ci1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3Np
dGluZ0ZvckluZGlyZWN0UmVhc29uKGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgYm9vbCBoYXND
b21wb3NpdGVkRGVzY2VuZGFudHMsIGJvb2wgaGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRzLCBi
b29sIHBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcsIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24m
IHJlYXNvbikgY29uc3QKK0luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpjb21wdXRlSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihjb25zdCBSZW5kZXJMYXll
ciYgbGF5ZXIsIGJvb2wgaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzLCBib29sIGhhczNEVHJhbnNm
b3JtZWREZXNjZW5kYW50cywgYm9vbCBwYWludHNJbnRvUHJvdmlkZWRCYWNraW5nKSBjb25zdAog
ewogICAgIC8vIFdoZW4gYSBsYXllciBoYXMgY29tcG9zaXRlZCBkZXNjZW5kYW50cywgc29tZSBl
ZmZlY3RzLCBsaWtlIDJkIHRyYW5zZm9ybXMsIGZpbHRlcnMsIG1hc2tzIGV0YyBtdXN0IGJlIGlt
cGxlbWVudGVkCiAgICAgLy8gdmlhIGNvbXBvc2l0aW5nIHNvIHRoYXQgdGhleSBhbHNvIGFwcGx5
IHRvIHRob3NlIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMuCiAgICAgYXV0byYgcmVuZGVyZXIgPSBs
YXllci5yZW5kZXJlcigpOwotICAgIGlmIChoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMgJiYgKGxh
eWVyLmlzb2xhdGVzQ29tcG9zaXRlZEJsZW5kaW5nKCkgfHwgbGF5ZXIudHJhbnNmb3JtKCkgfHwg
cmVuZGVyZXIuY3JlYXRlc0dyb3VwKCkgfHwgcmVuZGVyZXIuaGFzUmVmbGVjdGlvbigpKSkgewot
ICAgICAgICByZWFzb24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpHcmFwaGljYWxFZmZl
Y3Q7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgICBpZiAoaGFzQ29tcG9zaXRlZERl
c2NlbmRhbnRzICYmIChsYXllci5pc29sYXRlc0NvbXBvc2l0ZWRCbGVuZGluZygpIHx8IGxheWVy
LnRyYW5zZm9ybSgpIHx8IHJlbmRlcmVyLmNyZWF0ZXNHcm91cCgpIHx8IHJlbmRlcmVyLmhhc1Jl
ZmxlY3Rpb24oKSkpCisgICAgICAgIHJldHVybiBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpH
cmFwaGljYWxFZmZlY3Q7CiAKICAgICAvLyBBIGxheWVyIHdpdGggcHJlc2VydmUtM2Qgb3IgcGVy
c3BlY3RpdmUgb25seSBuZWVkcyB0byBiZSBjb21wb3NpdGVkIGlmIHRoZXJlIGFyZSBkZXNjZW5k
YW50IGxheWVycyB0aGF0CiAgICAgLy8gd2lsbCBiZSBhZmZlY3RlZCBieSB0aGUgcHJlc2VydmUt
M2Qgb3IgcGVyc3BlY3RpdmUuCiAgICAgaWYgKGhhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50cykg
ewotICAgICAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS50cmFuc2Zvcm1TdHlsZTNEKCkgPT0gVHJh
bnNmb3JtU3R5bGUzRDo6UHJlc2VydmUzRCkgewotICAgICAgICAgICAgcmVhc29uID0gSW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbjo6UHJlc2VydmUzRDsKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9CisgICAgICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLnRyYW5zZm9ybVN0eWxl
M0QoKSA9PSBUcmFuc2Zvcm1TdHlsZTNEOjpQcmVzZXJ2ZTNEKQorICAgICAgICAgICAgcmV0dXJu
IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlByZXNlcnZlM0Q7CiAgICAgCi0gICAgICAgIGlm
IChyZW5kZXJlci5zdHlsZSgpLmhhc1BlcnNwZWN0aXZlKCkpIHsKLSAgICAgICAgICAgIHJlYXNv
biA9IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlBlcnNwZWN0aXZlOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkuaGFz
UGVyc3BlY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBJbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29uOjpQZXJzcGVjdGl2ZTsKICAgICB9CiAKICAgICAvLyBJZiB0aGlzIGxheWVyIHNjcm9sbHMg
aW5kZXBlbmRlbnRseSBmcm9tIHRoZSBsYXllciB0aGF0IGl0IHdvdWxkIHBhaW50IGludG8sIGl0
IG5lZWRzIHRvIGdldCBjb21wb3NpdGVkLgogICAgIGlmICghcGFpbnRzSW50b1Byb3ZpZGVkQmFj
a2luZyAmJiBsYXllci5oYXNDb21wb3NpdGVkU2Nyb2xsaW5nQW5jZXN0b3IoKSkgewogICAgICAg
ICBhdXRvKiBwYWludERlc3RpbmF0aW9uID0gbGF5ZXIucGFpbnRPcmRlclBhcmVudCgpOwotICAg
ICAgICBpZiAocGFpbnREZXN0aW5hdGlvbiAmJiBsYXllclNjcm9sbEJlaGFoYXZpb3JSZWxhdGl2
ZVRvQ29tcG9zaXRlZEFuY2VzdG9yKGxheWVyLCAqcGFpbnREZXN0aW5hdGlvbikgIT0gU2Nyb2xs
UG9zaXRpb25pbmdCZWhhdmlvcjo6Tm9uZSkgewotICAgICAgICAgICAgcmVhc29uID0gSW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmZsb3dTY3JvbGxQb3NpdGlvbmluZzsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgICAgIGlmIChwYWludERlc3RpbmF0aW9u
ICYmIGxheWVyU2Nyb2xsQmVoYWhhdmlvclJlbGF0aXZlVG9Db21wb3NpdGVkQW5jZXN0b3IobGF5
ZXIsICpwYWludERlc3RpbmF0aW9uKSAhPSBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25l
KQorICAgICAgICAgICAgcmV0dXJuIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok92ZXJmbG93
U2Nyb2xsUG9zaXRpb25pbmc7CiAgICAgfQogCi0gICAgcmVhc29uID0gSW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbjo6Tm9uZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gQ2hlY2sgZm9yIGNs
aXBwaW5nIGxhc3Q7IGlmIGNvbXBvc2l0aW5nIGp1c3QgZm9yIGNsaXBwaW5nLCB0aGUgbGF5ZXIg
ZG9lc24ndCBuZWVkIGl0cyBvd24gYmFja2luZyBzdG9yZS4KKyAgICBpZiAoaGFzQ29tcG9zaXRl
ZERlc2NlbmRhbnRzICYmIGNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhsYXllcikpCisgICAg
ICAgIHJldHVybiBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpDbGlwcGluZzsKKworICAgIHJl
dHVybiBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOwogfQogCiBib29sIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6c3R5bGVDaGFuZ2VNYXlBZmZlY3RJbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29ucyhjb25zdCBSZW5kZXJTdHlsZSYgb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdT
dHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaAppbmRleCA4ZGQwMzliYWZkYTYzNTM4Y2UzMjEzZGMzMTM1NjBmYWE4YTRiZGYxLi5kZTZj
ODAzYzI0MmU1MGIyZDgxNTlkOGUxYmFmMGE3M2ZkZWI5YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00OTgsNyArNDk4LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5k
ZXJMYXllck1vZGVsT2JqZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXImLCBSZXF1aXJlc0NvbXBvc2l0
aW5nRGF0YSYpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsaW5nKGNvbnN0IFJlbmRlckxheWVyJiwgUmVxdWlyZXNDb21wb3NpdGluZ0RhdGEmKSBj
b25zdDsKICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JFZGl0YWJsZUltYWdlKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QmKSBjb25zdDsKLSAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdG
b3JJbmRpcmVjdFJlYXNvbihjb25zdCBSZW5kZXJMYXllciYsIGJvb2wgaGFzQ29tcG9zaXRlZERl
c2NlbmRhbnRzLCBib29sIGhhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50cywgYm9vbCBwYWludHNJ
bnRvUHJvdmlkZWRCYWNraW5nLCBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uJikgY29uc3Q7Cisg
ICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBjb21wdXRlSW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbihjb25zdCBSZW5kZXJMYXllciYsIGJvb2wgaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzLCBi
b29sIGhhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50cywgYm9vbCBwYWludHNJbnRvUHJvdmlkZWRC
YWNraW5nKSBjb25zdDsKIAogICAgIHN0YXRpYyBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIGxh
eWVyU2Nyb2xsQmVoYWhhdmlvclJlbGF0aXZlVG9Db21wb3NpdGVkQW5jZXN0b3IoY29uc3QgUmVu
ZGVyTGF5ZXImLCBjb25zdCBSZW5kZXJMYXllciYgY29tcG9zaXRlZEFuY2VzdG9yKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377854</attachid>
            <date>2019-09-02 10:00:15 -0700</date>
            <delta_ts>2019-09-03 11:13:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201381-20190902100014.patch</filename>
            <type>text/plain</type>
            <size>12337</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzllNzNmM2JjMTQxYzM4
MDg2MmExNDI0MWZiN2QwZDExZTExZWNhNS4uMDZhM2E0ZjYzZDE3NzM1OGU1MDM0MGYzZjRjNDFk
ZjMyZTdiZDU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA4LTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgImNsaXBz
IGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIiBhbiBpbmRpcmVjdCBjb21wb3NpdGluZyByZWFzb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZXRoZXIg
YSBsYXllciBoYXMgdG8gY29tcG9zaXRlIHRvIGNsaXAgY29tcG9zaXRlZCBkZXNjZW5kYW50cyBp
cyBhbiAiaW5kaXJlY3QiIHJlYXNvbiwKKyAgICAgICAganVzdCBsaWtlIGhhdmluZyB0byBjb21w
b3NpdGUgZm9yIGZpbHRlcnMgaWYgdGhlcmUncyBhIGNvbXBvc2l0ZWQgZGVzY2VuZGFudC4gU28g
YWRkCisgICAgICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OkNsaXBwaW5nLCBhbmQgaGF2
ZSBjb21wdXRlSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbXB1dGUgdGhpcywKKyAgICAg
ICAgcmVwbGFjaW5nIHRoZSBjb2RlIHRoYXQgcmFuIGluIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVp
cmVtZW50cygpLgorCisgICAgICAgIFRoaXMgaXMgc29tZSBwcmVwYXJhdG9yeSBjbGVhbnVwIGZv
ciB3ZWJraXQub3JnL2IvMjAxMzMwLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5n
TGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpy
ZWFzb25zRm9yQ29tcG9zaXRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpjb21wdXRlSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRp
bmdGb3JJbmRpcmVjdFJlYXNvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDE5LTA4LTI5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJhY2luZyBwb2lu
dHMgZm9yIGNvbXBvc2l0aW5nIHVwZGF0ZXMsIGFuZCB0b3VjaC1ldmVudCBkaXNwYXRjaGluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNDUxYWMzYmMwOTlh
OTZlOWRlY2Q5ZjFiZGVmZWRlNzY0MmY4MjFmZS4uOTg4ZjI1NDEzYjI0YmEyNDg1NGNiZDBmZjEw
MTk5MTI2YmE2YzU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC02OTQ5LDYgKzY5NDksNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHJlYXNvbikKIHsKICAgICBzd2l0Y2ggKHJl
YXNvbikgewogICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9uZTogdHMgPDwg
Im5vbmUiOyBicmVhazsKKyAgICBjYXNlIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OkNsaXBw
aW5nOiB0cyA8PCAiY2xpcHBpbmciOyBicmVhazsKICAgICBjYXNlIEluZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb246OlN0YWNraW5nOiB0cyA8PCAic3RhY2tpbmciOyBicmVhazsKICAgICBjYXNlIElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok92ZXJmbG93U2Nyb2xsUG9zaXRpb25pbmc6IHRzIDw8
ICJvdmVyZmxvdyBwb3NpdGlvbmluZyI7IGJyZWFrOwogICAgIGNhc2UgSW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbjo6T3ZlcmxhcDogdHMgPDwgIm92ZXJsYXAiOyBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggYmM5NGJkNjI5NDUzNzAwZDYzMzFmZDZlYWM4
OTNhNGFmZTY5Mzc0Mi4uMTY3MmQyYWQ3YmU3MTBhMjc5OGQwOTU1ZjhhYjZiZGM0NTJiZDRjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTExOSw2ICsxMTksNyBA
QCBlbnVtIGNsYXNzIFJlcXVlc3RTdGF0ZSB7CiAKIGVudW0gY2xhc3MgSW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbiB7CiAgICAgTm9uZSwKKyAgICBDbGlwcGluZywKICAgICBTdGFja2luZywKICAg
ICBPdmVyZmxvd1Njcm9sbFBvc2l0aW9uaW5nLAogICAgIE92ZXJsYXAsCkBAIC0xMjM4LDggKzEy
MzksOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNUcmFuc2Zvcm1lZEFuY2VzdG9yIDogMTsK
ICAgICBib29sIG1faGFzM0RUcmFuc2Zvcm1lZEFuY2VzdG9yIDogMTsKIAotICAgIHVuc2lnbmVk
IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA6IDM7Ci0gICAgdW5zaWduZWQgbV92aWV3cG9y
dENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiA6IDI7CisgICAgdW5zaWduZWQgbV9pbmRp
cmVjdENvbXBvc2l0aW5nUmVhc29uIDogNDsgLy8gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbgor
ICAgIHVuc2lnbmVkIG1fdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gOiAy
OyAvLyBWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTEyNTcsNyAr
MTI1OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcp
Ci0gICAgdW5zaWduZWQgbV9ibGVuZE1vZGUgOiA1OworICAgIHVuc2lnbmVkIG1fYmxlbmRNb2Rl
IDogNTsgLy8gQmxlbmRNb2RlCiAgICAgYm9vbCBtX2hhc05vdElzb2xhdGVkQ29tcG9zaXRlZEJs
ZW5kaW5nRGVzY2VuZGFudHMgOiAxOwogICAgIGJvb2wgbV9oYXNOb3RJc29sYXRlZEJsZW5kaW5n
RGVzY2VuZGFudHMgOiAxOwogICAgIGJvb2wgbV9oYXNOb3RJc29sYXRlZEJsZW5kaW5nRGVzY2Vu
ZGFudHNTdGF0dXNEaXJ0eSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGIzNTM3YjExZWI0YjVjYjE4NmY1NWUwNjQ5
NGVjZGRkNTE5ZWYzMzYuLjA0OTkyMjM5ZWI2ZTQ5YjQ1ODEyMTYwMjYxZjE5ZTViODNhOGE1N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0xMDE0LDIzICsxMDE0LDE5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAg
ICAgQVNTRVJUKCFsYXllci5oYXNOb3RJc29sYXRlZENvbXBvc2l0ZWRCbGVuZGluZ0Rlc2NlbmRh
bnRzKCkgfHwgbGF5ZXIuaGFzTm90SXNvbGF0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzKCkpOwogI2Vu
ZGlmCiAgICAgLy8gTm93IGNoZWNrIGZvciByZWFzb25zIHRvIGJlY29tZSBjb21wb3NpdGVkIHRo
YXQgZGVwZW5kIG9uIHRoZSBzdGF0ZSBvZiBkZXNjZW5kYW50IGxheWVycy4KLSAgICBJbmRpcmVj
dENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247Ci0gICAgaWYgKCF3
aWxsQmVDb21wb3NpdGVkICYmIGNhbkJlQ29tcG9zaXRlZChsYXllcikKLSAgICAgICAgJiYgcmVx
dWlyZXNDb21wb3NpdGluZ0ZvckluZGlyZWN0UmVhc29uKGxheWVyLCBjdXJyZW50U3RhdGUuc3Vi
dHJlZUlzQ29tcG9zaXRpbmcsIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSwgbGF5ZXJQYWlu
dHNJbnRvUHJvdmlkZWRCYWNraW5nLCBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKSkgewotICAg
ICAgICBsYXllci5zZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKGluZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb24pOwotICAgICAgICBsYXllcldpbGxDb21wb3NpdGVQb3N0RGVzY2VuZGFudHMoKTsK
KyAgICBpZiAoIXdpbGxCZUNvbXBvc2l0ZWQgJiYgY2FuQmVDb21wb3NpdGVkKGxheWVyKSkgewor
ICAgICAgICBhdXRvIGluZGlyZWN0UmVhc29uID0gY29tcHV0ZUluZGlyZWN0Q29tcG9zaXRpbmdS
ZWFzb24obGF5ZXIsIGN1cnJlbnRTdGF0ZS5zdWJ0cmVlSXNDb21wb3NpdGluZywgYW55RGVzY2Vu
ZGFudEhhczNEVHJhbnNmb3JtLCBsYXllclBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcpOworICAg
ICAgICBpZiAoaW5kaXJlY3RSZWFzb24gIT0gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9u
ZSkgeworICAgICAgICAgICAgbGF5ZXIuc2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihpbmRp
cmVjdFJlYXNvbik7CisgICAgICAgICAgICBsYXllcldpbGxDb21wb3NpdGVQb3N0RGVzY2VuZGFu
dHMoKTsKKyAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIGlmIChsYXllci5yZWZsZWN0aW9u
TGF5ZXIoKSkgewogICAgICAgICAvLyBGSVhNRTogU2hvdWxkbid0IHdlIGNhbGwgY29tcHV0ZUNv
bXBvc2l0aW5nUmVxdWlyZW1lbnRzIHRvIGhhbmRsZSBhIHJlZmxlY3Rpb24gb3ZlcmxhcHBpbmcg
d2l0aCBhbm90aGVyIHJlbmRlcmVyPwogICAgICAgICBsYXllci5yZWZsZWN0aW9uTGF5ZXIoKS0+
c2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbih3aWxsQmVDb21wb3NpdGVkID8gSW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbjo6U3RhY2tpbmcgOiBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpO
b25lKTsKICAgICB9CiAKLSAgICAvLyBzZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSBtYXkg
aGF2ZSBjaGFuZ2VkIHRoZSBhbnN3ZXIgdG8gbmVlZHNUb0JlQ29tcG9zaXRlZCgpIHdoZW4gY2xp
cHBpbmcsIHNvIHRlc3QgdGhhdCBub3cuCi0gICAgYm9vbCBpc0NvbXBvc2l0ZWRDbGlwcGluZ0xh
eWVyID0gY2FuQmVDb21wb3NpdGVkKGxheWVyKSAmJiBjbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFu
dHMobGF5ZXIpOwotICAgIGlmIChpc0NvbXBvc2l0ZWRDbGlwcGluZ0xheWVyICYgIXdpbGxCZUNv
bXBvc2l0ZWQpCi0gICAgICAgIGxheWVyV2lsbENvbXBvc2l0ZVBvc3REZXNjZW5kYW50cygpOwot
CiAgICAgLy8gSWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5vIG90aGVyIGxheWVycyBu
ZWVkIHRvIGJlIGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBpdHNlbGYgZG9lc24ndCBu
ZWVkCiAgICAgLy8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4gZHJvcCBvdXQgb2YgY29t
cG9zaXRpbmcgbW9kZSBhbHRvZ2V0aGVyLiBIb3dldmVyLCBkb24ndCBkcm9wIG91dCBvZiBjb21w
b3NpdGluZyBtb2RlCiAgICAgLy8gaWYgdGhlcmUgYXJlIGNvbXBvc2l0ZWQgbGF5ZXJzIHRoYXQg
d2UgZGlkbid0IGhpdCBpbiBvdXIgdHJhdmVyc2FsIChlLmcuIGJlY2F1c2Ugb2YgdmlzaWJpbGl0
eTpoaWRkZW4pLgpAQCAtMjMyMSw3ICsyMzE3LDYgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdMYXllcihjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIFIK
ICAgICAvLyBUaGUgcm9vdCBsYXllciBhbHdheXMgaGFzIGEgY29tcG9zaXRpbmcgbGF5ZXIsIGJ1
dCBpdCBtYXkgbm90IGhhdmUgYmFja2luZy4KICAgICByZXR1cm4gcmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclRyYW5zZm9ybShyZW5kZXJlcikKICAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0Zv
ckFuaW1hdGlvbihyZW5kZXJlcikKLSAgICAgICAgfHwgY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRh
bnRzKCpyZW5kZXJlci5sYXllcigpKQogICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9y
UG9zaXRpb24ocmVuZGVyZXIsICpyZW5kZXJlci5sYXllcigpLCBxdWVyeURhdGEpCiAgICAgICAg
IHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JDYW52YXMocmVuZGVyZXIpCiAgICAgICAgIHx8IHJl
cXVpcmVzQ29tcG9zaXRpbmdGb3JGaWx0ZXJzKHJlbmRlcmVyKQpAQCAtMjQ0OCw5ICsyNDQzLDYg
QEAgT3B0aW9uU2V0PENvbXBvc2l0aW5nUmVhc29uPiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
YXNvbnNGb3JDb21wb3NpdGluZyhjb25zdAogICAgIGlmICgoY2FuUmVuZGVyM0RUcmFuc2Zvcm1z
KCkgJiYgcmVuZGVyZXIuc3R5bGUoKS5iYWNrZmFjZVZpc2liaWxpdHkoKSA9PSBCYWNrZmFjZVZp
c2liaWxpdHk6OkhpZGRlbikpCiAgICAgICAgIHJlYXNvbnMuYWRkKENvbXBvc2l0aW5nUmVhc29u
OjpCYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4pOwogCi0gICAgaWYgKGNsaXBzQ29tcG9zaXRpbmdE
ZXNjZW5kYW50cygqcmVuZGVyZXIubGF5ZXIoKSkpCi0gICAgICAgIHJlYXNvbnMuYWRkKENvbXBv
c2l0aW5nUmVhc29uOjpDbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMpOwotCiAgICAgaWYgKHJl
cXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24ocmVuZGVyZXIpKQogICAgICAgICByZWFzb25z
LmFkZChDb21wb3NpdGluZ1JlYXNvbjo6QW5pbWF0aW9uKTsKIApAQCAtMjQ2OSw2ICsyNDYxLDkg
QEAgT3B0aW9uU2V0PENvbXBvc2l0aW5nUmVhc29uPiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
YXNvbnNGb3JDb21wb3NpdGluZyhjb25zdAogICAgIHN3aXRjaCAocmVuZGVyZXIubGF5ZXIoKS0+
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpKSB7CiAgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uOjpOb25lOgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb246OkNsaXBwaW5nOgorICAgICAgICByZWFzb25zLmFkZChDb21wb3NpdGluZ1Jl
YXNvbjo6Q2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpTdGFja2luZzoKICAgICAgICAgcmVhc29u
cy5hZGQoQ29tcG9zaXRpbmdSZWFzb246OlN0YWNraW5nKTsKICAgICAgICAgYnJlYWs7CkBAIC0z
MDQyLDQyICszMDM3LDM2IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0Nv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyCiAgICAgcmV0dXJuIGxh
eWVyLmhhc0NvbXBvc2l0ZWRTY3JvbGxhYmxlT3ZlcmZsb3coKTsKIH0KIAotLy8gRklYTUU6IHdo
eSBkb2Vzbid0IHRoaXMgaGFuZGxlIHRoZSBjbGlwcGluZyBjYXNlcz8KLWJvb2wgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9ySW5kaXJlY3RSZWFzb24oY29uc3Qg
UmVuZGVyTGF5ZXImIGxheWVyLCBib29sIGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50cywgYm9vbCBo
YXMzRFRyYW5zZm9ybWVkRGVzY2VuZGFudHMsIGJvb2wgcGFpbnRzSW50b1Byb3ZpZGVkQmFja2lu
ZywgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiYgcmVhc29uKSBjb25zdAorSW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVJbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uKGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgYm9vbCBoYXNDb21wb3NpdGVk
RGVzY2VuZGFudHMsIGJvb2wgaGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRzLCBib29sIHBhaW50
c0ludG9Qcm92aWRlZEJhY2tpbmcpIGNvbnN0CiB7CiAgICAgLy8gV2hlbiBhIGxheWVyIGhhcyBj
b21wb3NpdGVkIGRlc2NlbmRhbnRzLCBzb21lIGVmZmVjdHMsIGxpa2UgMmQgdHJhbnNmb3Jtcywg
ZmlsdGVycywgbWFza3MgZXRjIG11c3QgYmUgaW1wbGVtZW50ZWQKICAgICAvLyB2aWEgY29tcG9z
aXRpbmcgc28gdGhhdCB0aGV5IGFsc28gYXBwbHkgdG8gdGhvc2UgY29tcG9zaXRlZCBkZXNjZW5k
YW50cy4KICAgICBhdXRvJiByZW5kZXJlciA9IGxheWVyLnJlbmRlcmVyKCk7Ci0gICAgaWYgKGhh
c0NvbXBvc2l0ZWREZXNjZW5kYW50cyAmJiAobGF5ZXIuaXNvbGF0ZXNDb21wb3NpdGVkQmxlbmRp
bmcoKSB8fCBsYXllci50cmFuc2Zvcm0oKSB8fCByZW5kZXJlci5jcmVhdGVzR3JvdXAoKSB8fCBy
ZW5kZXJlci5oYXNSZWZsZWN0aW9uKCkpKSB7Ci0gICAgICAgIHJlYXNvbiA9IEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb246OkdyYXBoaWNhbEVmZmVjdDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQorICAgIGlmIChoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMgJiYgKGxheWVyLmlzb2xhdGVz
Q29tcG9zaXRlZEJsZW5kaW5nKCkgfHwgbGF5ZXIudHJhbnNmb3JtKCkgfHwgcmVuZGVyZXIuY3Jl
YXRlc0dyb3VwKCkgfHwgcmVuZGVyZXIuaGFzUmVmbGVjdGlvbigpKSkKKyAgICAgICAgcmV0dXJu
IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OkdyYXBoaWNhbEVmZmVjdDsKIAogICAgIC8vIEEg
bGF5ZXIgd2l0aCBwcmVzZXJ2ZS0zZCBvciBwZXJzcGVjdGl2ZSBvbmx5IG5lZWRzIHRvIGJlIGNv
bXBvc2l0ZWQgaWYgdGhlcmUgYXJlIGRlc2NlbmRhbnQgbGF5ZXJzIHRoYXQKICAgICAvLyB3aWxs
IGJlIGFmZmVjdGVkIGJ5IHRoZSBwcmVzZXJ2ZS0zZCBvciBwZXJzcGVjdGl2ZS4KICAgICBpZiAo
aGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRzKSB7Ci0gICAgICAgIGlmIChyZW5kZXJlci5zdHls
ZSgpLnRyYW5zZm9ybVN0eWxlM0QoKSA9PSBUcmFuc2Zvcm1TdHlsZTNEOjpQcmVzZXJ2ZTNEKSB7
Ci0gICAgICAgICAgICByZWFzb24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpQcmVzZXJ2
ZTNEOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJl
bmRlcmVyLnN0eWxlKCkudHJhbnNmb3JtU3R5bGUzRCgpID09IFRyYW5zZm9ybVN0eWxlM0Q6OlBy
ZXNlcnZlM0QpCisgICAgICAgICAgICByZXR1cm4gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6
UHJlc2VydmUzRDsKICAgICAKLSAgICAgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkuaGFzUGVyc3Bl
Y3RpdmUoKSkgewotICAgICAgICAgICAgcmVhc29uID0gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
bjo6UGVyc3BlY3RpdmU7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAg
ICAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS5oYXNQZXJzcGVjdGl2ZSgpKQorICAgICAgICAgICAg
cmV0dXJuIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlBlcnNwZWN0aXZlOwogICAgIH0KIAog
ICAgIC8vIElmIHRoaXMgbGF5ZXIgc2Nyb2xscyBpbmRlcGVuZGVudGx5IGZyb20gdGhlIGxheWVy
IHRoYXQgaXQgd291bGQgcGFpbnQgaW50bywgaXQgbmVlZHMgdG8gZ2V0IGNvbXBvc2l0ZWQuCiAg
ICAgaWYgKCFwYWludHNJbnRvUHJvdmlkZWRCYWNraW5nICYmIGxheWVyLmhhc0NvbXBvc2l0ZWRT
Y3JvbGxpbmdBbmNlc3RvcigpKSB7CiAgICAgICAgIGF1dG8qIHBhaW50RGVzdGluYXRpb24gPSBs
YXllci5wYWludE9yZGVyUGFyZW50KCk7Ci0gICAgICAgIGlmIChwYWludERlc3RpbmF0aW9uICYm
IGxheWVyU2Nyb2xsQmVoYWhhdmlvclJlbGF0aXZlVG9Db21wb3NpdGVkQW5jZXN0b3IobGF5ZXIs
ICpwYWludERlc3RpbmF0aW9uKSAhPSBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25lKSB7
Ci0gICAgICAgICAgICByZWFzb24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVyZmxv
d1Njcm9sbFBvc2l0aW9uaW5nOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0K
KyAgICAgICAgaWYgKHBhaW50RGVzdGluYXRpb24gJiYgbGF5ZXJTY3JvbGxCZWhhaGF2aW9yUmVs
YXRpdmVUb0NvbXBvc2l0ZWRBbmNlc3RvcihsYXllciwgKnBhaW50RGVzdGluYXRpb24pICE9IFNj
cm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6Ok5vbmUpCisgICAgICAgICAgICByZXR1cm4gSW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmZsb3dTY3JvbGxQb3NpdGlvbmluZzsKICAgICB9CiAK
LSAgICByZWFzb24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICAvLyBDaGVjayBmb3IgY2xpcHBpbmcgbGFzdDsgaWYgY29tcG9zaXRpbmcg
anVzdCBmb3IgY2xpcHBpbmcsIHRoZSBsYXllciBkb2Vzbid0IG5lZWQgaXRzIG93biBiYWNraW5n
IHN0b3JlLgorICAgIGlmIChoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMgJiYgY2xpcHNDb21wb3Np
dGluZ0Rlc2NlbmRhbnRzKGxheWVyKSkKKyAgICAgICAgcmV0dXJuIEluZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb246OkNsaXBwaW5nOworCisgICAgcmV0dXJuIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b246Ok5vbmU7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzdHlsZUNoYW5nZU1h
eUFmZmVjdEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb25zKGNvbnN0IFJlbmRlclN0eWxlJiBvbGRT
dHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDhkZDAzOWJhZmRhNjM1Mzhj
ZTMyMTNkYzMxMzU2MGZhYThhNGJkZjEuLmRlNmM4MDNjMjQyZTUwYjJkODE1OWQ4ZTFiYWYwYTcz
ZmRlYjliZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgKQEAgLTQ5OCw3ICs0OTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVxdWly
ZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKFJlbmRlckxheWVyTW9kZWxPYmplY3QmLCBjb25zdCBS
ZW5kZXJMYXllciYsIFJlcXVpcmVzQ29tcG9zaXRpbmdEYXRhJikgY29uc3Q7CiAgICAgYm9vbCBy
ZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIm
LCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNDb21w
b3NpdGluZ0ZvckVkaXRhYmxlSW1hZ2UoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYpIGNvbnN0Owot
ICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0ZvckluZGlyZWN0UmVhc29uKGNvbnN0IFJlbmRl
ckxheWVyJiwgYm9vbCBoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMsIGJvb2wgaGFzM0RUcmFuc2Zv
cm1lZERlc2NlbmRhbnRzLCBib29sIHBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcsIEluZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb24mKSBjb25zdDsKKyAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
IGNvbXB1dGVJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKGNvbnN0IFJlbmRlckxheWVyJiwgYm9v
bCBoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMsIGJvb2wgaGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRh
bnRzLCBib29sIHBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcpIGNvbnN0OwogCiAgICAgc3RhdGlj
IFNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3IgbGF5ZXJTY3JvbGxCZWhhaGF2aW9yUmVsYXRpdmVU
b0NvbXBvc2l0ZWRBbmNlc3Rvcihjb25zdCBSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRlckxheWVy
JiBjb21wb3NpdGVkQW5jZXN0b3IpOwogCg==
</data>
<flag name="review"
          id="393541"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>