<?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>172771</bug_id>
          
          <creation_ts>2017-05-31 12:44:53 -0700</creation_ts>
          <short_desc>PeerConnection should respect tracks that are muted at the time they are added</short_desc>
          <delta_ts>2017-06-02 16:32:47 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=172879</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>lee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314275</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-31 12:44:53 -0700</bug_when>
    <thetext>Currently, it is not the case and muted state is not respected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314276</commentid>
    <comment_count>1</comment_count>
      <attachid>311622</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-31 12:48:06 -0700</bug_when>
    <thetext>Created attachment 311622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314277</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-31 12:48:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/32493091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314282</commentid>
    <comment_count>3</comment_count>
      <attachid>311622</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-31 13:05:31 -0700</bug_when>
    <thetext>Comment on attachment 311622
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:105
&gt; +    if (!m_muted &amp;&amp; m_enabled &amp;&amp; m_blackFrameTimer.isActive()) {
&gt; +        m_blackFrameTimer.stop();
&gt;          return;
&gt;      }
&gt; -    if (m_blackFrameTimer.isActive())
&gt; -        m_blackFrameTimer.stop();
&gt; +
&gt; +    sendBlackFramesIfNeeded();

I would be nice to factor this into a function that can be shared with sourceMutedChanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314289</commentid>
    <comment_count>4</comment_count>
      <attachid>311625</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-31 13:18:41 -0700</bug_when>
    <thetext>Created attachment 311625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314292</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-31 13:21:37 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 311622 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=311622&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:105
&gt; &gt; +    if (!m_muted &amp;&amp; m_enabled &amp;&amp; m_blackFrameTimer.isActive()) {
&gt; &gt; +        m_blackFrameTimer.stop();
&gt; &gt;          return;
&gt; &gt;      }
&gt; &gt; -    if (m_blackFrameTimer.isActive())
&gt; &gt; -        m_blackFrameTimer.stop();
&gt; &gt; +
&gt; &gt; +    sendBlackFramesIfNeeded();
&gt; 
&gt; I would be nice to factor this into a function that can be shared with
&gt; sourceMutedChanged.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314302</commentid>
    <comment_count>6</comment_count>
      <attachid>311625</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-31 13:51:15 -0700</bug_when>
    <thetext>Comment on attachment 311625
Patch

Clearing flags on attachment: 311625

Committed r217624: &lt;http://trac.webkit.org/changeset/217624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314303</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-31 13:51:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311622</attachid>
            <date>2017-05-31 12:48:06 -0700</date>
            <delta_ts>2017-05-31 13:18:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172771-20170531124805.patch</filename>
            <type>text/plain</type>
            <size>17492</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBjODBhNzc1OWE2ZTVm
YWJmMWJkYjRkMGJlNDcwNWVmMWIxNjAzMS4uZjljNzY1MGQ4ZmU4ZTdmYzkwNTdjZjQ0ODBmOTEz
NTVkNzI5ZGUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA1LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQZWVyQ29ubmVjdGlvbiBz
aG91bGQgcmVzcGVjdCB0cmFja3MgdGhhdCBhcmUgbXV0ZWQgYXQgdGhlIHRpbWUgdGhleSBhcmUg
YWRkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Mjc3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiB3ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLXVubXV0ZS5odG1sCisgICAgICAgICAg
ICAgICB3ZWJydGMvdmlkZW8tdW5tdXRlLmh0bWwKKworICAgICAgICBNYWtpbmcgc3VyZSB0aGF0
IG11dGVkL2VuYWJsZWQgc3RhdGUgb2Ygc291cmNlcyBhcmUgY29ycmVjdGx5IGhhbmRsZWQgYXQg
Y3JlYXRpb24gdGltZSBvZiB0aGUgb3V0Z29pbmcgd2VicnRjIHNvdXJjZXMuCisgICAgICAgIFRo
aXMgc2hvdWxkIHRyaWdnZXIgc2lsZW50IGF1ZGlvIGFuZCBibGFjayBmcmFtZXMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6UmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZTo6aW5pdGlhbGl6ZUNvbnZlcnRlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmluaXRpYWxp
emVGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6QWRkT3JVcGRhdGVTaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZTo6UmVtb3ZlU2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRCbGFja0ZyYW1lc0lmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U2l6ZUZyb21Tb3VyY2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpz
ZW5kQmxhY2tGcmFtZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoKKwogMjAxNy0wNS0zMSAgRW1pbGlv
IENvYm9zIMOBbHZhcmV6ICA8ZWNvYm9zQGlnYWxpYS5jb20+CiAKICAgICAgICAgVXNlIHRoZSBy
YXJlIGRhdGEncyBSZW5kZXJTdHlsZSBmb3IgZGlzcGxheTogY29udGVudHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDhjZDgyNjI0ZWQxMzAyNWIy
ZWM0MWNiMWUwZDYwOWE5OWUzNmNjMTMuLjAzMmU0ODFjMzdiZmVlYmU1MDQ0YTg3NDAzZWIwMDIy
NjNmOWM1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3Bw
CkBAIC01MSw2ICs1MSw3IEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6UmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlCiAgICAgLCBtX3NhbXBs
ZUNvbnZlcnRlcihBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShMaWJXZWJSVENBdWRpb0Zv
cm1hdDo6c2FtcGxlUmF0ZSAqIDIpKQogewogICAgIG1fYXVkaW9Tb3VyY2UtPmFkZE9ic2VydmVy
KCp0aGlzKTsKKyAgICBpbml0aWFsaXplQ29udmVydGVyKCk7CiB9CiAKIGJvb2wgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
bmV3U291cmNlKQpAQCAtNTksMTAgKzYwLDE1IEBAIGJvb2wgUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgbmV3U291cmNlCiAg
ICAgbV9hdWRpb1NvdXJjZSA9IFdURk1vdmUobmV3U291cmNlKTsKICAgICBtX2F1ZGlvU291cmNl
LT5hZGRPYnNlcnZlcigqdGhpcyk7CiAKKyAgICBpbml0aWFsaXplQ29udmVydGVyKCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0
aWFsaXplQ29udmVydGVyKCkKK3sKICAgICBtX211dGVkID0gbV9hdWRpb1NvdXJjZS0+bXV0ZWQo
KTsKICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7CiAgICAgbV9zYW1w
bGVDb252ZXJ0ZXItPnNldE11dGVkKG1fbXV0ZWQgfHwgIW1fZW5hYmxlZCk7Ci0gICAgcmV0dXJu
IHRydWU7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzdG9wKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCA4ZGFjZDY3NjMxMjhl
MDdjN2E2ZWNlNzRlZjI1YmNlNTdkNTYyNjEzLi4yNzk0NTM5N2FmY2Y0ODU1MTYyM2ZhNzhiY2E1
MTUwMGEwNGE5ODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5o
CkBAIC03Myw2ICs3Myw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHB1bGxBdWRpb0RhdGEoKTsK
IAorICAgIHZvaWQgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOworCiAgICAgVmVjdG9yPHdlYnJ0Yzo6
QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzOwogICAgIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBtX2F1ZGlvU291cmNlOwogICAgIFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1f
c2FtcGxlQ29udmVydGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmNwcAppbmRleCA0ODVjZDJiOWFlOTMyZjI3ZTM4MjRlZjhjNmJjMmZmM2MxMTQ1YTg3Li5hYTZl
NTUwMzRiMGM1ZTI5MTNmYTU5NWZjMGJmZWJkNDYyZDJlZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZQogICAgICwgbV9ibGFja0ZyYW1lVGltZXIoKnRoaXMsICZSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRPbmVCbGFja0ZyYW1lKQogewogICAgIG1fdmlkZW9Tb3Vy
Y2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLSAgICBzZXRTaXplRnJvbVNvdXJjZSgpOworICAgIGlu
aXRpYWxpemVGcm9tU291cmNlKCk7CiB9CiAKIGJvb2wgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgbmV3U291cmNlKQpAQCAt
NjUsOSArNjUsNyBAQCBib29sIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNl
KFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIG5ld1NvdXJjZQogICAgIG1fdmlkZW9Tb3VyY2Ug
PSBXVEZNb3ZlKG5ld1NvdXJjZSk7CiAgICAgbV92aWRlb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOwogCi0gICAgc2V0U2l6ZUZyb21Tb3VyY2UoKTsKLSAgICBtX211dGVkID0gbV92aWRlb1Nv
dXJjZS0+bXV0ZWQoKTsKLSAgICBtX2VuYWJsZWQgPSBtX3ZpZGVvU291cmNlLT5lbmFibGVkKCk7
CisgICAgaW5pdGlhbGl6ZUZyb21Tb3VyY2UoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
ODUsMTIgKzgzLDEyIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VN
dXRlZENoYW5nZWQoKQogCiAgICAgbV9tdXRlZCA9IG1fdmlkZW9Tb3VyY2UtPm11dGVkKCk7CiAK
LSAgICBpZiAobV9tdXRlZCAmJiBtX3NpbmtzLnNpemUoKSAmJiBtX2VuYWJsZWQpIHsKLSAgICAg
ICAgc2VuZEJsYWNrRnJhbWVzKCk7CisgICAgaWYgKCFtX211dGVkICYmIG1fZW5hYmxlZCAmJiBt
X2JsYWNrRnJhbWVUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIG1fYmxhY2tGcmFtZVRpbWVy
LnN0b3AoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9ibGFja0ZyYW1lVGlt
ZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9ibGFja0ZyYW1lVGltZXIuc3RvcCgpOworCisgICAg
c2VuZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkKQEAgLTk5LDE5ICs5NywyNCBAQCB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQogCiAg
ICAgbV9lbmFibGVkID0gbV92aWRlb1NvdXJjZS0+ZW5hYmxlZCgpOwogCi0gICAgaWYgKCFtX2Vu
YWJsZWQgJiYgbV9zaW5rcy5zaXplKCkgJiYgIW1fbXV0ZWQpIHsKLSAgICAgICAgc2VuZEJsYWNr
RnJhbWVzKCk7CisgICAgaWYgKCFtX211dGVkICYmIG1fZW5hYmxlZCAmJiBtX2JsYWNrRnJhbWVU
aW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIG1fYmxhY2tGcmFtZVRpbWVyLnN0b3AoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9ibGFja0ZyYW1lVGltZXIuaXNBY3RpdmUo
KSkKLSAgICAgICAgbV9ibGFja0ZyYW1lVGltZXIuc3RvcCgpOworCisgICAgc2VuZEJsYWNrRnJh
bWVzSWZOZWVkZWQoKTsKIH0KIAotdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNl
dFNpemVGcm9tU291cmNlKCkKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppbml0
aWFsaXplRnJvbVNvdXJjZSgpCiB7CiAgICAgY29uc3QgYXV0byYgc2V0dGluZ3MgPSBtX3ZpZGVv
U291cmNlLT5zZXR0aW5ncygpOwogICAgIG1fd2lkdGggPSBzZXR0aW5ncy53aWR0aCgpOwogICAg
IG1faGVpZ2h0ID0gc2V0dGluZ3MuaGVpZ2h0KCk7CisKKyAgICBtX211dGVkID0gbV92aWRlb1Nv
dXJjZS0+bXV0ZWQoKTsKKyAgICBtX2VuYWJsZWQgPSBtX3ZpZGVvU291cmNlLT5lbmFibGVkKCk7
CisKKyAgICBzZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOwogfQogCiBib29sIFJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZTo6R2V0U3RhdHMoU3RhdHMqKQpAQCAtMTI4LDE1ICsxMzEsMzYgQEAg
dm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhydGM6OlZp
ZGVvU2lua0ludGVyZmFjZTx3ZWJydGMKIAogICAgIGlmICghbV9zaW5rcy5jb250YWlucyhzaW5r
KSkKICAgICAgICAgbV9zaW5rcy5hcHBlbmQoc2luayk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgeworICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5zZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOworICAgIH0pOwogfQogCiB2b2lkIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6UmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFj
ZTx3ZWJydGM6OlZpZGVvRnJhbWU+KiBzaW5rKQogewogICAgIG1fc2lua3MucmVtb3ZlRmlyc3Qo
c2luayk7CisKKyAgICBpZiAobV9zaW5rcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7Cisg
ICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX2JsYWNrRnJhbWVUaW1lci5pc0FjdGl2ZSgpKQor
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9ibGFja0ZyYW1lVGltZXIuc3RvcCgpOworICAg
IH0pOwogfQogCi12b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2VuZEJsYWNrRnJh
bWVzKCkKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZW5kQmxhY2tGcmFtZXNJ
Zk5lZWRlZCgpCiB7CisgICAgaWYgKG1fYmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9zaW5rcy5zaXplKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghbV9tdXRlZCAmJiBtX2VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAg
IGlmICghbV9ibGFja0ZyYW1lKSB7CiAgICAgICAgIGF1dG8gd2lkdGggPSBtX3dpZHRoOwogICAg
ICAgICBhdXRvIGhlaWdodCA9IG1faGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZS5oCmluZGV4IGQ4MGUyZGVkODM2MTUxNTYzNThhNThjZmEzOWY1Y2Q0ODQ5M2Y4
M2YuLjE3ZjQ3YTQ1MTdiODc0OGUzOWVjMmVkNDczYWM0NTU3MTQ3MTc4ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTYwLDkgKzYwLDkgQEAgcHJpdmF0
ZToKICAgICBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYpOwogCiAgICAgdm9pZCBzZW5kRnJhbWUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
VmlkZW9GcmFtZUJ1ZmZlcj4mJik7Ci0gICAgdm9pZCBzZW5kQmxhY2tGcmFtZXMoKTsKKyAgICB2
b2lkIHNlbmRCbGFja0ZyYW1lc0lmTmVlZGVkKCk7CiAgICAgdm9pZCBzZW5kT25lQmxhY2tGcmFt
ZSgpOwotICAgIHZvaWQgc2V0U2l6ZUZyb21Tb3VyY2UoKTsKKyAgICB2b2lkIGluaXRpYWxpemVG
cm9tU291cmNlKCk7CiAKICAgICAvLyBOb3RpZmllciBBUEkKICAgICB2b2lkIFJlZ2lzdGVyT2Jz
ZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQpAQCAtODQsNyArODQs
NyBAQCBwcml2YXRlOgogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIEFQSQog
ICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VFbmFi
bGVkQ2hhbmdlZCgpIGZpbmFsOwotICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmlu
YWwgeyBzZXRTaXplRnJvbVNvdXJjZSgpOyB9CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5n
ZWQoKSBmaW5hbCB7IGluaXRpYWxpemVGcm9tU291cmNlKCk7IH0KICAgICB2b2lkIHZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiAKICAgICBWZWN0b3I8cnRjOjpWaWRl
b1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODYw
MjFjMDNjZjMyNDEzYmFjNzQ4M2M5ZGIwOTVhZTRiNjY4MGIxNy4uMjBlMjA0NDdjNWM1YmYxZGE4
NjU0Zjg5NmNmOGIwNmMwYTJiZDVkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTMx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQZWVyQ29ubmVj
dGlvbiBzaG91bGQgcmVzcGVjdCB0cmFja3MgdGhhdCBhcmUgbXV0ZWQgYXQgdGhlIHRpbWUgdGhl
eSBhcmUgYWRkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mjc3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2VicnRjL2F1ZGlvLXJlcGxhY2UtdHJhY2suaHRtbDoKKyAgICAgICAgKiB3ZWJydGMv
cGVlci1jb25uZWN0aW9uLWF1ZGlvLXVubXV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tdW5tdXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5qczoKKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tdW5tdXRl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL3ZpZGVvLXVubXV0ZS5odG1s
OiBBZGRlZC4KKwogMjAxNy0wNS0zMSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gTWFyayBqcy9jYWNoZWQtd2luZG93LXByb3Bl
cnRpZXMgdGVzdCBhcyBzbG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8t
cmVwbGFjZS10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL2F1ZGlvLXJlcGxhY2UtdHJh
Y2suaHRtbAppbmRleCA3NjQwMTA2ODE1MjE2ZTRlNTk3ZjY4YWY2YThlZGJkZjhlODM2MTY2Li4w
MTU2ZGRlZDYyMWVlNTc5ODZlNjYzYTAyOTE0ZGNiMjk5YTQwZjNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJydGMvYXVkaW8tcmVwbGFjZS10cmFjay5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy9hdWRpby1yZXBsYWNlLXRyYWNrLmh0bWwKQEAgLTksMTggKzksNiBAQAogPC9oZWFk
PgogPGJvZHk+CiAgICAgPHNjcmlwdD4KLSAgICBhc3luYyBmdW5jdGlvbiBkb0h1bUFuYWx5c2lz
KHN0cmVhbSwgZXhwZWN0ZWQpCi0gICAgewotICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoKTsKLSAgICAgICAgZm9yICh2YXIgY3B0ciA9IDA7IGNwdHIgPCAxMDsg
Y3B0cisrKSB7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IGFuYWx5c2VBdWRpbyhz
dHJlYW0sIDIwMCwgY29udGV4dCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0cy5oZWFyZEh1bSA9
PT0gZXhwZWN0ZWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgYXdhaXQgY29udGV4dC5jbG9zZSgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCiAgICAgdmFyIHNlbmRlcjsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwogICAgIHZhciBzZWNv
bmRTdHJlYW07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9u
LWF1ZGlvLXVubXV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25u
ZWN0aW9uLWF1ZGlvLXVubXV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYwM2VjZDU2OGU2
NmUzNjc5MzQ5MGRkZWNiNDIyYWM3MjcyNmVhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tdW5tdXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBNdXRpbmcgYSBsb2NhbCBhdWRpbyB0cmFjayBiZWZvcmUgYWRk
aW5nIGl0IHNob3VsZCBiZSBjb3JyZWN0bHkgaGFuZGxlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby11bm11dGUuaHRtbCBiL0xheW91dFRl
c3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tdW5tdXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmVjMDAxYTY1M2EyYjI0ZjQ5ZTVkZjAyYjMyMzA1NDk3MWIxZDQzYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tdW5tdXRlLmh0bWwK
QEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QSBtdXRlZCBhdWRpbyB0cmFjayB0aGF0
IGlzIGFkZGVkIHNob3VsZCBub3QgY2F1c2UgYXVkaW8gdG8gYmUgc2VudDwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24odHJ1ZSk7CisKKyAgICAgICAgdmFyIGxvY2FsVHJhY2s7CisgICAgICAgIHJl
dHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KS50
aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAgICAgICAgICAgbG9jYWxUcmFjayA9IGxvY2FsU3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgICAgICAgICBsb2NhbFRyYWNrLmVuYWJsZWQg
PSBmYWxzZTsKKyAgICAgICAgICAgIHZhciByZW1vdGVTdHJlYW07CisgICAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIGNy
ZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKGxvY2FsVHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAg
ICAgICAgICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAg
ICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgcmVtb3RlU3RyZWFtID0gdHJhY2tFdmVudC5zdHJlYW1zWzBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisJICAg
ICAgICByZXR1cm4gZG9IdW1BbmFseXNpcyhyZW1vdGVTdHJlYW0sIGZhbHNlKS50aGVuKChyZXN1
bHQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHJlc3VsdCwgIlNob3Vs
ZCBub3QgaGVhciBodW0iKTsKKyAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBsb2NhbFRyYWNrLmVuYWJsZWQgPSB0cnVlOwor
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgCSAgICAgICAgcmV0dXJuIGRvSHVt
QW5hbHlzaXMocmVtb3RlU3RyZWFtLCB0cnVlKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKHJlc3VsdCwgIlNob3VsZCBoZWFyIGh1bSIpOworICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9LCAi
TXV0aW5nIGEgbG9jYWwgYXVkaW8gdHJhY2sgYmVmb3JlIGFkZGluZyBpdCBzaG91bGQgYmUgY29y
cmVjdGx5IGhhbmRsZWQiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9yb3V0aW5lcy5qcwppbmRleCA4NzRlZGQwOWRlZmE4OWM4MjVjZDAzYWJhMmU4OTEyM2I1Mjlh
NDhlLi5mMjc2NTQ0NWY0ZDIzZmJmMjBiMTNhZWU5ZDJiMzI3OTRmNDc5NGIxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRj
L3JvdXRpbmVzLmpzCkBAIC0xNDUsMyArMTQ1LDE1IEBAIGZ1bmN0aW9uIHdhaXRGb3JWaWRlb1Np
emUodmlkZW8sIHdpZHRoLCBoZWlnaHQsIGNvdW50KQogICAgICAgICByZXR1cm4gd2FpdEZvclZp
ZGVvU2l6ZSh2aWRlbywgd2lkdGgsIGhlaWdodCwgY291bnQpOwogICAgIH0pOwogfQorCithc3lu
YyBmdW5jdGlvbiBkb0h1bUFuYWx5c2lzKHN0cmVhbSwgZXhwZWN0ZWQpCit7CisgICAgdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgZm9yICh2YXIgY3B0ciA9IDA7
IGNwdHIgPCAxMDsgY3B0cisrKSB7CisgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgYW5hbHlz
ZUF1ZGlvKHN0cmVhbSwgMjAwLCBjb250ZXh0KTsKKyAgICAgICAgaWYgKHJlc3VsdHMuaGVhcmRI
dW0gPT09IGV4cGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGF3
YWl0IGNvbnRleHQuY2xvc2UoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tdW5tdXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy92aWRlby11bm11dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZTg4ZTc4MTRj
YzY0ZWUzNGI1Njk1N2YwNTQ0ODllZTRhODdkODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJydGMvdmlkZW8tdW5tdXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKyAg
IAorCitQQVNTIFNldHRpbmcgdmlkZW8gZXhjaGFuZ2UgCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQs
IHZpZGVvIHNob3VsZCBiZSBibGFjayAKK1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hv
dWxkIG5vdCBiZSBibGFjayAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVv
LXVubXV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXVubXV0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE4Y2ExYzAyMjlmOGU4YzNlZTQ5NTBjM2U4ZWZiOWI0NzZiYWIzNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tdW5tdXRlLmh0bWwKQEAgLTAsMCAr
MSw5MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBiYXNpYyB2aWRlbyBl
eGNoYW5nZSBmcm9tIG9mZmVyZXIgdG8gcmVjZWl2ZXI8L3RpdGxlPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9ImxvY2FsVmlkZW8iIGF1
dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAg
ICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBo
ZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9
IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMy
IiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9
ImNhbnZhczMiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNj
cmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CitmdW5j
dGlvbiBpc1ZpZGVvQmxhY2soaWQpCit7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGlkKTsKKyAgICBjYW52YXMud2lkdGggPSB2aWRlby52aWRlb1dpZHRoOworICAg
IGNhbnZhcy5oZWlnaHQgPSB2aWRlby52aWRlb0hlaWdodDsKKyAgICBjYW52YXMuZ2V0Q29udGV4
dCgnMmQnKS5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdo
dCk7CisKKyAgICBpbWFnZURhdGEgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFnZURh
dGEoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICBkYXRhID0gaW1hZ2VE
YXRhLmRhdGE7CisgICAgZm9yICh2YXIgY3B0ciA9IDA7IGNwdHIgPCBjYW52YXMud2lkdGggKiBj
YW52YXMuaGVpZ2h0OyArK2NwdHIpIHsKKyAgICAgICAgLy8gQXBwcm94aW1hdGl2ZWx5IGJsYWNr
IHBpeGVscy4KKyAgICAgICAgaWYgKGRhdGFbNCAqIGNwdHJdID4gMTAgfHwgZGF0YVs0ICogY3B0
ciArIDFdID4gMTAgfHwgZGF0YVs0ICogY3B0ciArIDJdID4gMTApCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBwb2xsVmlk
ZW9CbGFja0NoZWNrKGV4cGVjdGVkLCBpZCwgcmVzb2x2ZSkKK3sKKyAgICBpZiAoaXNWaWRlb0Js
YWNrKGlkKSA9PT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgc2V0VGltZW91dCgoKSA9PiBwb2xsVmlkZW9CbGFja0NoZWNrKGV4
cGVjdGVkLCBpZCwgcmVzb2x2ZSksIDUwKTsKK30KKworZnVuY3Rpb24gY2hlY2tWaWRlb0JsYWNr
KGV4cGVjdGVkLCBpZCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICBwb2xsVmlkZW9CbGFja0NoZWNrKGV4cGVjdGVkLCBpZCwgcmVzb2x2
ZSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJjaGVja1ZpZGVvQmxhY2sgdGlt
ZWQgb3V0IGZvciAiICsgaWQgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RlZCksIDUwMDApOworICAg
IH0pOworfQorCit2YXIgdHJhY2s7Cit2YXIgcmVtb3RlVHJhY2s7Citwcm9taXNlX3Rlc3QoKHRl
c3QpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKworICAgIHJldHVybiBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCwg
ZmFjaW5nTW9kZTogImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAg
ICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgICAgIHRy
YWNrLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgbG9jYWxWaWRlby5zcmNPYmplY3QgPSBsb2Nh
bFN0cmVhbTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsK
KyAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3Ry
ZWFtKTsKKyAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAg
ICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7IAorICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVq
ZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICAgICAgfSk7CisgICAgfSkudGhlbigo
cmVtb3RlU3RyZWFtKSA9PiB7CisgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVh
bTsKKyAgICAgICAgcmV0dXJuIHZpZGVvLnBsYXkoKTsKKyAgICB9KTsKK30sICJTZXR0aW5nIHZp
ZGVvIGV4Y2hhbmdlIik7CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgIHJldHVybiBj
aGVja1ZpZGVvQmxhY2sodHJ1ZSwgImNhbnZhczEiKTsKK30sICJUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAg
dHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxzZSwg
ImNhbnZhczIiKTsKK30sICJUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJs
YWNrIik7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311625</attachid>
            <date>2017-05-31 13:18:41 -0700</date>
            <delta_ts>2017-05-31 13:51:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172771-20170531131840.patch</filename>
            <type>text/plain</type>
            <size>17676</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBjODBhNzc1OWE2ZTVm
YWJmMWJkYjRkMGJlNDcwNWVmMWIxNjAzMS4uOTdlOTI0NWQ4Yjc0MzI0NjY3NzU1NmYxYzllOGEy
OTcxNTZjODZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA1LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQZWVyQ29ubmVjdGlvbiBz
aG91bGQgcmVzcGVjdCB0cmFja3MgdGhhdCBhcmUgbXV0ZWQgYXQgdGhlIHRpbWUgdGhleSBhcmUg
YWRkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Mjc3MQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZXN0
czogd2VicnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby11bm11dGUuaHRtbAorICAgICAgICAgICAg
ICAgd2VicnRjL3ZpZGVvLXVubXV0ZS5odG1sCisKKyAgICAgICAgTWFraW5nIHN1cmUgdGhhdCBt
dXRlZC9lbmFibGVkIHN0YXRlIG9mIHNvdXJjZXMgYXJlIGNvcnJlY3RseSBoYW5kbGVkIGF0IGNy
ZWF0aW9uIHRpbWUgb2YgdGhlIG91dGdvaW5nIHdlYnJ0YyBzb3VyY2VzLgorICAgICAgICBUaGlz
IHNob3VsZCB0cmlnZ2VyIHNpbGVudCBhdWRpbyBhbmQgYmxhY2sgZnJhbWVzLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2U6OmluaXRpYWxpemVDb252ZXJ0ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6UmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppbml0aWFsaXpl
RnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OkFkZE9yVXBkYXRlU2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OlJlbW92ZVNpbmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpzZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNpemVGcm9tU291cmNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2Vu
ZEJsYWNrRnJhbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmg6CisKIDIwMTctMDUtMzEgIEVtaWxpbyBD
b2JvcyDDgWx2YXJleiAgPGVjb2Jvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVzZSB0aGUgcmFy
ZSBkYXRhJ3MgUmVuZGVyU3R5bGUgZm9yIGRpc3BsYXk6IGNvbnRlbnRzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcAppbmRleCA4Y2Q4MjYyNGVkMTMwMjViMmVj
NDFjYjFlMGQ2MDlhOTllMzZjYzEzLi4wMzJlNDgxYzM3YmZlZWJlNTA0NGE4NzQwM2ViMDAyMjYz
ZjljNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApA
QCAtNTEsNiArNTEsNyBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgICwgbV9zYW1wbGVD
b252ZXJ0ZXIoQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoTGliV2ViUlRDQXVkaW9Gb3Jt
YXQ6OnNhbXBsZVJhdGUgKiAyKSkKIHsKICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigq
dGhpcyk7CisgICAgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwogfQogCiBib29sIFJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZTo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIG5l
d1NvdXJjZSkKQEAgLTU5LDEwICs2MCwxNSBAQCBib29sIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIG5ld1NvdXJjZQogICAg
IG1fYXVkaW9Tb3VyY2UgPSBXVEZNb3ZlKG5ld1NvdXJjZSk7CiAgICAgbV9hdWRpb1NvdXJjZS0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOwogCisgICAgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6aW5pdGlh
bGl6ZUNvbnZlcnRlcigpCit7CiAgICAgbV9tdXRlZCA9IG1fYXVkaW9Tb3VyY2UtPm11dGVkKCk7
CiAgICAgbV9lbmFibGVkID0gbV9hdWRpb1NvdXJjZS0+ZW5hYmxlZCgpOwogICAgIG1fc2FtcGxl
Q29udmVydGVyLT5zZXRNdXRlZChtX211dGVkIHx8ICFtX2VuYWJsZWQpOwotICAgIHJldHVybiB0
cnVlOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c3RvcCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggOGRhY2Q2NzYzMTI4ZTA3
YzdhNmVjZTc0ZWYyNWJjZTU3ZDU2MjYxMy4uMjc5NDUzOTdhZmNmNDg1NTE2MjNmYTc4YmNhNTE1
MDBhMDRhOTg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApA
QCAtNzMsNiArNzMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwdWxsQXVkaW9EYXRhKCk7CiAK
KyAgICB2b2lkIGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKKwogICAgIFZlY3Rvcjx3ZWJydGM6OkF1
ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKj4gbV9zaW5rczsKICAgICBSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gbV9hdWRpb1NvdXJjZTsKICAgICBSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX3Nh
bXBsZUNvbnZlcnRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5j
cHAKaW5kZXggNDg1Y2QyYjlhZTkzMmYyN2UzODI0ZWY4YzZiYzJmZjNjMTE0NWE4Ny4uYTViOTZj
N2VhMzNhMDRiZmNkMGViY2E3NWM1NjYzNGI2YTMxNzdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2UKICAgICAsIG1fYmxhY2tGcmFtZVRpbWVyKCp0aGlzLCAmUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpzZW5kT25lQmxhY2tGcmFtZSkKIHsKICAgICBtX3ZpZGVvU291cmNl
LT5hZGRPYnNlcnZlcigqdGhpcyk7Ci0gICAgc2V0U2l6ZUZyb21Tb3VyY2UoKTsKKyAgICBpbml0
aWFsaXplRnJvbVNvdXJjZSgpOwogfQogCiBib29sIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZTo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIG5ld1NvdXJjZSkKQEAgLTY1
LDkgKzY1LDcgQEAgYm9vbCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBuZXdTb3VyY2UKICAgICBtX3ZpZGVvU291cmNlID0g
V1RGTW92ZShuZXdTb3VyY2UpOwogICAgIG1fdmlkZW9Tb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlz
KTsKIAotICAgIHNldFNpemVGcm9tU291cmNlKCk7Ci0gICAgbV9tdXRlZCA9IG1fdmlkZW9Tb3Vy
Y2UtPm11dGVkKCk7Ci0gICAgbV9lbmFibGVkID0gbV92aWRlb1NvdXJjZS0+ZW5hYmxlZCgpOwor
ICAgIGluaXRpYWxpemVGcm9tU291cmNlKCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTc5
LDE4ICs3NywyMyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCgpCiAg
ICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogfQogCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6dXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCkKK3sKKyAgICBpZiAoIW1fbXV0ZWQgJiYg
bV9lbmFibGVkICYmIG1fYmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgbV9i
bGFja0ZyYW1lVGltZXIuc3RvcCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2Vu
ZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKK30KKwogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiB7CiAgICAgQVNTRVJUKG1fbXV0ZWQgIT0gbV92
aWRlb1NvdXJjZS0+bXV0ZWQoKSk7CiAKICAgICBtX211dGVkID0gbV92aWRlb1NvdXJjZS0+bXV0
ZWQoKTsKIAotICAgIGlmIChtX211dGVkICYmIG1fc2lua3Muc2l6ZSgpICYmIG1fZW5hYmxlZCkg
ewotICAgICAgICBzZW5kQmxhY2tGcmFtZXMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZiAobV9ibGFja0ZyYW1lVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9ibGFja0ZyYW1l
VGltZXIuc3RvcCgpOworICAgIHVwZGF0ZUJsYWNrRnJhbWVzU2VuZGluZygpOwogfQogCiB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQpAQCAt
OTksMTkgKzEwMiwxOSBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNl
RW5hYmxlZENoYW5nZWQoKQogCiAgICAgbV9lbmFibGVkID0gbV92aWRlb1NvdXJjZS0+ZW5hYmxl
ZCgpOwogCi0gICAgaWYgKCFtX2VuYWJsZWQgJiYgbV9zaW5rcy5zaXplKCkgJiYgIW1fbXV0ZWQp
IHsKLSAgICAgICAgc2VuZEJsYWNrRnJhbWVzKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgaWYgKG1fYmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fYmxhY2tGcmFt
ZVRpbWVyLnN0b3AoKTsKKyAgICB1cGRhdGVCbGFja0ZyYW1lc1NlbmRpbmcoKTsKIH0KIAotdm9p
ZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNpemVGcm9tU291cmNlKCkKK3ZvaWQg
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppbml0aWFsaXplRnJvbVNvdXJjZSgpCiB7CiAg
ICAgY29uc3QgYXV0byYgc2V0dGluZ3MgPSBtX3ZpZGVvU291cmNlLT5zZXR0aW5ncygpOwogICAg
IG1fd2lkdGggPSBzZXR0aW5ncy53aWR0aCgpOwogICAgIG1faGVpZ2h0ID0gc2V0dGluZ3MuaGVp
Z2h0KCk7CisKKyAgICBtX211dGVkID0gbV92aWRlb1NvdXJjZS0+bXV0ZWQoKTsKKyAgICBtX2Vu
YWJsZWQgPSBtX3ZpZGVvU291cmNlLT5lbmFibGVkKCk7CisKKyAgICBzZW5kQmxhY2tGcmFtZXNJ
Zk5lZWRlZCgpOwogfQogCiBib29sIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6R2V0U3Rh
dHMoU3RhdHMqKQpAQCAtMTI4LDE1ICsxMzEsMzYgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGMK
IAogICAgIGlmICghbV9zaW5rcy5jb250YWlucyhzaW5rKSkKICAgICAgICAgbV9zaW5rcy5hcHBl
bmQoc2luayk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKCkgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kQmxhY2tGcmFtZXNJZk5l
ZWRlZCgpOworICAgIH0pOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6
UmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+KiBz
aW5rKQogewogICAgIG1fc2lua3MucmVtb3ZlRmlyc3Qoc2luayk7CisKKyAgICBpZiAobV9zaW5r
cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7CisgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlz
LT5tX2JsYWNrRnJhbWVUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9ibGFja0ZyYW1lVGltZXIuc3RvcCgpOworICAgIH0pOwogfQogCi12b2lkIFJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZTo6c2VuZEJsYWNrRnJhbWVzKCkKK3ZvaWQgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpzZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpCiB7CisgICAgaWYgKG1f
YmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
bV9zaW5rcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9tdXRlZCAmJiBt
X2VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghbV9ibGFja0ZyYW1lKSB7CiAg
ICAgICAgIGF1dG8gd2lkdGggPSBtX3dpZHRoOwogICAgICAgICBhdXRvIGhlaWdodCA9IG1faGVp
Z2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCmluZGV4IGQ4MGUy
ZGVkODM2MTUxNTYzNThhNThjZmEzOWY1Y2Q0ODQ5M2Y4M2YuLjcyNGY1NzFlZTYzNTk2MjZlYTYy
YzY1MWQ3NWQwMzMzMjQ1OWEzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlLmgKQEAgLTYwLDkgKzYwLDEwIEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKIAogICAgIHZvaWQgc2Vu
ZEZyYW1lKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+JiYpOwot
ICAgIHZvaWQgc2VuZEJsYWNrRnJhbWVzKCk7CisgICAgdm9pZCBzZW5kQmxhY2tGcmFtZXNJZk5l
ZWRlZCgpOwogICAgIHZvaWQgc2VuZE9uZUJsYWNrRnJhbWUoKTsKLSAgICB2b2lkIHNldFNpemVG
cm9tU291cmNlKCk7CisgICAgdm9pZCBpbml0aWFsaXplRnJvbVNvdXJjZSgpOworICAgIHZvaWQg
dXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCk7CiAKICAgICAvLyBOb3RpZmllciBBUEkKICAgICB2
b2lkIFJlZ2lzdGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsg
fQpAQCAtODQsNyArODUsNyBAQCBwcml2YXRlOgogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6
Ok9ic2VydmVyIEFQSQogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAg
dm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsOwotICAgIHZvaWQgc291cmNlU2V0dGlu
Z3NDaGFuZ2VkKCkgZmluYWwgeyBzZXRTaXplRnJvbVNvdXJjZSgpOyB9CisgICAgdm9pZCBzb3Vy
Y2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7IGluaXRpYWxpemVGcm9tU291cmNlKCk7IH0KICAg
ICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiAKICAgICBW
ZWN0b3I8cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lu
a3M7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggODYwMjFjMDNjZjMyNDEzYmFjNzQ4M2M5ZGIwOTVhZTRiNjY4MGIxNy4uZDA3
NjczNWYwYjJkZTRkYTJlMThmZmJkZmNjNWU5ZmQyZDc0ODg0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE3LTA1LTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBQZWVyQ29ubmVjdGlvbiBzaG91bGQgcmVzcGVjdCB0cmFja3MgdGhhdCBhcmUgbXV0ZWQg
YXQgdGhlIHRpbWUgdGhleSBhcmUgYWRkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3Mjc3MQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICAqIHdlYnJ0Yy9hdWRpby1yZXBsYWNlLXRyYWNrLmh0bWw6CisgICAg
ICAgICogd2VicnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby11bm11dGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLXVubXV0ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvcm91dGluZXMuanM6CisgICAgICAgICogd2VicnRj
L3ZpZGVvLXVubXV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy92aWRl
by11bm11dGUuaHRtbDogQWRkZWQuCisKIDIwMTctMDUtMzEgIENsYXVkaW8gU2FhdmVkcmEgIDxj
c2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIE1hcmsganMvY2FjaGVk
LXdpbmRvdy1wcm9wZXJ0aWVzIHRlc3QgYXMgc2xvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2VicnRjL2F1ZGlvLXJlcGxhY2UtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRp
by1yZXBsYWNlLXRyYWNrLmh0bWwKaW5kZXggNzY0MDEwNjgxNTIxNmU0ZTU5N2Y2OGFmNmE4ZWRi
ZGY4ZTgzNjE2Ni4uMDE1NmRkZWQ2MjFlZTU3OTg2ZTY2M2EwMjkxNGRjYjI5OWE0MGYzYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL2F1ZGlvLXJlcGxhY2UtdHJhY2suaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tcmVwbGFjZS10cmFjay5odG1sCkBAIC05LDE4ICs5
LDYgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxzY3JpcHQ+Ci0gICAgYXN5bmMgZnVuY3Rpb24g
ZG9IdW1BbmFseXNpcyhzdHJlYW0sIGV4cGVjdGVkKQotICAgIHsKLSAgICAgICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7Ci0gICAgICAgIGZvciAodmFyIGNwdHIgPSAw
OyBjcHRyIDwgMTA7IGNwdHIrKykgewotICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBh
bmFseXNlQXVkaW8oc3RyZWFtLCAyMDAsIGNvbnRleHQpOwotICAgICAgICAgICAgaWYgKHJlc3Vs
dHMuaGVhcmRIdW0gPT09IGV4cGVjdGVkKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGF3YWl0IGNvbnRleHQuY2xvc2UoKTsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQogICAgIHZhciBzZW5kZXI7CiAgICAgdmFyIHJlbW90ZVN0cmVhbTsK
ICAgICB2YXIgc2Vjb25kU3RyZWFtOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3Bl
ZXItY29ubmVjdGlvbi1hdWRpby11bm11dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
cnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby11bm11dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVmMDNlY2Q1NjhlNjZlMzY3OTM0OTBkZGVjYjQyMmFjNzI3MjZlYWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLXVubXV0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgTXV0aW5nIGEgbG9jYWwgYXVkaW8gdHJh
Y2sgYmVmb3JlIGFkZGluZyBpdCBzaG91bGQgYmUgY29ycmVjdGx5IGhhbmRsZWQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tdW5tdXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLXVubXV0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlYzAwMWE2NTNhMmIyNGY0OWU1ZGYwMmIzMjMwNTQ5NzFiMWQ0M2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlv
LXVubXV0ZS5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkEgbXV0ZWQgYXVk
aW8gdHJhY2sgdGhhdCBpcyBhZGRlZCBzaG91bGQgbm90IGNhdXNlIGF1ZGlvIHRvIGJlIHNlbnQ8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5l
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworCisgICAgICAgIHZhciBsb2NhbFRyYWNr
OworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1
ZGlvOiB0cnVlfSkudGhlbigobG9jYWxTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIGxvY2FsVHJh
Y2sgPSBsb2NhbFN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgICAgICAgICAgbG9jYWxU
cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICB2YXIgcmVtb3RlU3RyZWFtOworICAg
ICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayhsb2NhbFRyYWNrLCBsb2Nh
bFN0cmVhbSk7CisgICAgICAgICAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVN0cmVhbSA9IHRyYWNrRXZlbnQu
c3RyZWFtc1swXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4geworCSAgICAgICAgcmV0dXJuIGRvSHVtQW5hbHlzaXMocmVtb3RlU3RyZWFtLCBmYWxz
ZSkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShy
ZXN1bHQsICJTaG91bGQgbm90IGhlYXIgaHVtIik7CisgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgbG9jYWxUcmFjay5lbmFi
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgIAkgICAgICAg
IHJldHVybiBkb0h1bUFuYWx5c2lzKHJlbW90ZVN0cmVhbSwgdHJ1ZSkudGhlbigocmVzdWx0KSA9
PiB7CisgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShyZXN1bHQsICJTaG91bGQgaGVh
ciBodW0iKTsKKyAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgfSwgIk11dGluZyBhIGxvY2FsIGF1ZGlvIHRyYWNrIGJlZm9yZSBhZGRpbmcgaXQg
c2hvdWxkIGJlIGNvcnJlY3RseSBoYW5kbGVkIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMgYi9MYXlv
dXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKaW5kZXggODc0ZWRkMDlkZWZhODljODI1Y2QwM2Fi
YTJlODkxMjNiNTI5YTQ4ZS4uZjI3NjU0NDVmNGQyM2ZiZjIwYjEzYWVlOWQyYjMyNzk0ZjQ3OTRi
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCisrKyBiL0xheW91
dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwpAQCAtMTQ1LDMgKzE0NSwxNSBAQCBmdW5jdGlvbiB3
YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCB3aWR0aCwgaGVpZ2h0LCBjb3VudCkKICAgICAgICAgcmV0
dXJuIHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHdpZHRoLCBoZWlnaHQsIGNvdW50KTsKICAgICB9
KTsKIH0KKworYXN5bmMgZnVuY3Rpb24gZG9IdW1BbmFseXNpcyhzdHJlYW0sIGV4cGVjdGVkKQor
eworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGZvciAo
dmFyIGNwdHIgPSAwOyBjcHRyIDwgMTA7IGNwdHIrKykgeworICAgICAgICB2YXIgcmVzdWx0cyA9
IGF3YWl0IGFuYWx5c2VBdWRpbyhzdHJlYW0sIDIwMCwgY29udGV4dCk7CisgICAgICAgIGlmIChy
ZXN1bHRzLmhlYXJkSHVtID09PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICBhd2FpdCBjb250ZXh0LmNsb3NlKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXVubXV0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tdW5tdXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41N2U4OGU3ODE0Y2M2NGVlMzRiNTY5NTdmMDU0NDg5ZWU0YTg3ZDgxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXVubXV0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACisgICAKKworUEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlIAorUEFTUyBUcmFj
ayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2sgCitQQVNTIFRyYWNrIGlzIGVuYWJs
ZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYnJ0Yy92aWRlby11bm11dGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby11bm11
dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOGNhMWMwMjI5ZjhlOGMzZWU0OTUwYzNlOGVmYjliNDc2YmFi
MzYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXVubXV0ZS5o
dG1sCkBAIC0wLDAgKzEsOTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3Rpbmcg
YmFzaWMgdmlkZW8gZXhjaGFuZ2UgZnJvbSBvZmZlcmVyIHRvIHJlY2VpdmVyPC90aXRsZT4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJs
b2NhbFZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+
PC92aWRlbz4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUg
d2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxjYW52YXMgaWQ9ImNh
bnZhczEiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZh
cyBpZD0iY2FudmFzMiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAg
ICA8Y2FudmFzIGlkPSJjYW52YXMzIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+
CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0PgorZnVuY3Rpb24gaXNWaWRlb0JsYWNrKGlkKQoreworICAgIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlk
ZW9XaWR0aDsKKyAgICBjYW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisgICAgY2Fu
dmFzLmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdlKHZpZGVvLCAwLCAwLCBjYW52YXMud2lkdGgs
IGNhbnZhcy5oZWlnaHQpOworCisgICAgaW1hZ2VEYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJk
JykuZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAg
ZGF0YSA9IGltYWdlRGF0YS5kYXRhOworICAgIGZvciAodmFyIGNwdHIgPSAwOyBjcHRyIDwgY2Fu
dmFzLndpZHRoICogY2FudmFzLmhlaWdodDsgKytjcHRyKSB7CisgICAgICAgIC8vIEFwcHJveGlt
YXRpdmVseSBibGFjayBwaXhlbHMuCisgICAgICAgIGlmIChkYXRhWzQgKiBjcHRyXSA+IDEwIHx8
IGRhdGFbNCAqIGNwdHIgKyAxXSA+IDEwIHx8IGRhdGFbNCAqIGNwdHIgKyAyXSA+IDEwKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVu
Y3Rpb24gcG9sbFZpZGVvQmxhY2tDaGVjayhleHBlY3RlZCwgaWQsIHJlc29sdmUpCit7CisgICAg
aWYgKGlzVmlkZW9CbGFjayhpZCkgPT09IGV4cGVjdGVkKSB7CisgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNldFRpbWVvdXQoKCkgPT4gcG9sbFZpZGVv
QmxhY2tDaGVjayhleHBlY3RlZCwgaWQsIHJlc29sdmUpLCA1MCk7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrVmlkZW9CbGFjayhleHBlY3RlZCwgaWQpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgcG9sbFZpZGVvQmxhY2tDaGVjayhleHBlY3Rl
ZCwgaWQsIHJlc29sdmUpOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiY2hlY2tW
aWRlb0JsYWNrIHRpbWVkIG91dCBmb3IgIiArIGlkICsgIiBleHBlY3RlZCAiICsgZXhwZWN0ZWQp
LCA1MDAwKTsKKyAgICB9KTsKK30KKwordmFyIHRyYWNrOwordmFyIHJlbW90ZVRyYWNrOworcHJv
bWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisKKyAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDMyMCwg
aGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigobG9jYWxTdHJl
YW0pID0+IHsKKyAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBd
OworICAgICAgICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIGxvY2FsVmlkZW8uc3Jj
T2JqZWN0ID0gbG9jYWxTdHJlYW07CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25u
ZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRy
YWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4g
eworICAgICAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZVRyYWNrID0gdHJhY2tFdmVudC50cmFj
azsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOyAK
KyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgICAgIH0pOwor
ICAgIH0pLnRoZW4oKHJlbW90ZVN0cmVhbSkgPT4geworICAgICAgICB2aWRlby5zcmNPYmplY3Qg
PSByZW1vdGVTdHJlYW07CisgICAgICAgIHJldHVybiB2aWRlby5wbGF5KCk7CisgICAgfSk7Cit9
LCAiU2V0dGluZyB2aWRlbyBleGNoYW5nZSIpOworCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
KyAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKHRydWUsICJjYW52YXMxIik7Cit9LCAiVHJhY2sg
aXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CisKK3Byb21pc2VfdGVzdCgodGVz
dCkgPT4geworICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgIHJldHVybiBjaGVja1ZpZGVv
QmxhY2soZmFsc2UsICJjYW52YXMyIik7Cit9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hv
dWxkIG5vdCBiZSBibGFjayIpOworCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>