<?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>183326</bug_id>
          
          <creation_ts>2018-03-05 02:41:13 -0800</creation_ts>
          <short_desc>CoordinatedGraphicsScene: properly limit data specific to state commit operation</short_desc>
          <delta_ts>2018-03-06 04:13:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1403585</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-05 02:41:13 -0800</bug_when>
    <thetext>CoordinatedGraphicsScene: properly limit data specific to state commit operation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403586</commentid>
    <comment_count>1</comment_count>
      <attachid>334993</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-05 02:47:28 -0800</bug_when>
    <thetext>Created attachment 334993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403911</commentid>
    <comment_count>2</comment_count>
      <attachid>334993</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-03-06 01:05:44 -0800</bug_when>
    <thetext>Comment on attachment 334993
Patch

Why not using a RAII approach? CommitScope could be a class and the cleanups could be done in the destructor which would be called once the variable gets out of scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403937</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 03:32:24 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #2)
&gt; Comment on attachment 334993 [details]
&gt; Patch
&gt; 
&gt; Why not using a RAII approach? CommitScope could be a class and the cleanups
&gt; could be done in the destructor which would be called once the variable gets
&gt; out of scope.

Structs are same as classes, just the default member accessibility is public.

As such, the default destructor ivokes destructors of both containers, effectively cleaning up every object that&apos;s been stored there during the state commit op.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403938</commentid>
    <comment_count>4</comment_count>
      <attachid>334993</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 03:34:22 -0800</bug_when>
    <thetext>Comment on attachment 334993
Patch

Clearing flags on attachment: 334993

Committed r229315: &lt;https://trac.webkit.org/changeset/229315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403939</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 03:34:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403942</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-06 03:35:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/38174962&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403946</commentid>
    <comment_count>7</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-03-06 03:42:38 -0800</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #3)
&gt; (In reply to Sergio Villar Senin from comment #2)
&gt; &gt; Comment on attachment 334993 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Why not using a RAII approach? CommitScope could be a class and the cleanups
&gt; &gt; could be done in the destructor which would be called once the variable gets
&gt; &gt; out of scope.
&gt; 
&gt; Structs are same as classes, just the default member accessibility is public.
&gt; 
&gt; As such, the default destructor ivokes destructors of both containers,
&gt; effectively cleaning up every object that&apos;s been stored there during the
&gt; state commit op.

Not sure if you&apos;re getting my point, what I wanted is to get rid of the explicit .clear()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403957</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-06 04:13:07 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #7)
&gt; (In reply to Zan Dobersek from comment #3)
&gt; &gt; (In reply to Sergio Villar Senin from comment #2)
&gt; &gt; &gt; Comment on attachment 334993 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Why not using a RAII approach? CommitScope could be a class and the cleanups
&gt; &gt; &gt; could be done in the destructor which would be called once the variable gets
&gt; &gt; &gt; out of scope.
&gt; &gt; 
&gt; &gt; Structs are same as classes, just the default member accessibility is public.
&gt; &gt; 
&gt; &gt; As such, the default destructor ivokes destructors of both containers,
&gt; &gt; effectively cleaning up every object that&apos;s been stored there during the
&gt; &gt; state commit op.
&gt; 
&gt; Not sure if you&apos;re getting my point, what I wanted is to get rid of the
&gt; explicit .clear()

Right, it&apos;s not necessary for those to be explicitly called, I&apos;ll remove them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334993</attachid>
            <date>2018-03-05 02:47:28 -0800</date>
            <delta_ts>2018-03-06 03:34:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183326-20180305114726.patch</filename>
            <type>text/plain</type>
            <size>17380</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1NGU2Y2JiNDQzODM2NTgx
NWU0MGNhN2IyZTFmZjNjNzllNzY5ZDcuLjFlODQ4YTQ4MjRiZjM4YWNkNDI4ZDg0NGJlMjgzNjI3
NzkwMDM1ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTgtMDMtMDUgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTogcHJvcGVybHkgbGltaXQgZGF0YSBzcGVjaWZpYyB0byBzdGF0ZSBjb21taXQgb3Bl
cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODMzMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biB0aGUgcHJvY2VzcyBvZiBzdGF0ZSBjb21taXQgaW4gQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LCB0aGUgcmVsZWFzZWQKKyAgICAgICAgaW1hZ2UgYmFja2luZ3MgYW5kIGJhY2tpbmcgc3RvcmVz
IHdpdGggcGVuZGluZyB1cGRhdGVzIGFyZSBzdG9yZWQgaW4KKyAgICAgICAgVmVjdG9yIGFuZCBI
YXNoU2V0IG9iamVjdHMsIHJlc3BlY3RpdmVseS4gSW5zdGVhZCBvZiB0aGVzZSB0d28gb2JqZWN0
cworICAgICAgICBiZWluZyBtZW1iZXIgdmFyaWFibGVzIG9uIHRoZSBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmUgY2xhc3MsIGtlZXAgdGhlbQorICAgICAgICBpbiB0aGUgQ29tbWl0U2NvcGUgc3Ry
dWN0dXJlIHRoYXQncyBsaW1pdGVkIHRvIHRoZSBvcGVyYXRpb25zIGRvbmUgaW4KKyAgICAgICAg
dGhlIGNvbW1pdFNjZW5lU3RhdGUoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIHR3byBtZW1iZXIg
dmFyaWFibGVzIGFyZSBkcm9wcGVkLCBhbmQgdGhlIENvbW1pdFNjb3BlIG9iamVjdCBpcworICAg
ICAgICBwYXNzZWQgYnkgcmVmZXJlbmNlIHRvIGFueSBoZWxwZXIgbWV0aG9kIHRoYXQgbmVlZHMg
dG8gYXBwZW5kIGVpdGhlcgorICAgICAgICBraW5kIG9mIG9iamVjdCB0byB0aGUgcmVzcGVjdGl2
ZSBjb250YWluZXIuIEF0IHRoZSBlbmQgb2YgdGhlIHN0YXRlCisgICAgICAgIGNvbW1pdCwgYmFj
a2luZyBzdG9yZXMgd2l0aCBwZW5kaW5nIHVwZGF0ZXMgaGF2ZSB0aG9zZSB1cGRhdGVzIGFwcGxp
ZWQsCisgICAgICAgIGFuZCB0aGUgdHdvIGNvbnRhaW5lcnMgYXJlIGNsZWFyZWQgb3V0IGFzIHRo
ZSBDb21taXRTY29wZSBvYmplY3QgaXMKKyAgICAgICAgZGVzdHJveWVkLgorCisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllclN0YXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwcmVwYXJlQ29u
dGVudEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6cmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZVRpbGVzSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVRpbGVzSWZOZWVkZWQp
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNJbWFnZUJh
Y2tpbmdzKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRh
dGVJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmU6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZUltYWdlQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y29tbWl0U2NlbmVTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcyk6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVtb3ZlUmVsZWFzZWRJbWFn
ZUJhY2tpbmdzSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmU6OmNvbW1pdFBlbmRpbmdCYWNraW5nU3RvcmVPcGVyYXRpb25zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzU2NlbmUuaDoKKwogMjAxOC0wMy0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBNb3ZlIGN1cnJlbnRDUFVUaW1lIGFuZCBzbGVl
cChTZWNvbmRzKSB0byBDUFVUaW1lLmggYW5kIFNlY29uZHMuaCByZXNwZWN0aXZlbHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCAzNmJkZmZmMjY2ZThlNWQy
MDBlMzlhNGEzMmIzOGY0MmYxM2U0MGJlLi43OTc3MmYxYzE5YTVmNDczY2Q3YjRlNjVlOTJmNmRj
MDQ5NDQzNjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBA
IC0yMTAsNyArMjEwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVy
RmlsdGVyc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIKICAgICBsYXllci0+c2V0
RmlsdGVycyhzdGF0ZS5maWx0ZXJzKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmU6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgbGF5ZXJTdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjpzZXRMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIGxheWVyU3RhdGUsIENvbW1pdFNjb3BlJiBjb21taXRT
Y29wZSkKIHsKICAgICBBU1NFUlQobV9yb290TGF5ZXJJRCAhPSBJbnZhbGlkQ29vcmRpbmF0ZWRM
YXllcklEKTsKICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGlkKTsK
QEAgLTI4MSwxMyArMjgxLDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRM
YXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpCiAgICAgaWYgKGxh
eWVyU3RhdGUuY29tbWl0dGVkU2Nyb2xsT2Zmc2V0Q2hhbmdlZCkKICAgICAgICAgbGF5ZXItPmRp
ZENvbW1pdFNjcm9sbE9mZnNldChsYXllclN0YXRlLmNvbW1pdHRlZFNjcm9sbE9mZnNldCk7CiAK
LSAgICBwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZShsYXllcik7CisgICAgcHJlcGFyZUNvbnRl
bnRCYWNraW5nU3RvcmUobGF5ZXIsIGNvbW1pdFNjb3BlKTsKIAogICAgIC8vIEFwcGx5IE9wZXJh
dGlvbnMuCiAgICAgc2V0TGF5ZXJDaGlsZHJlbklmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsK
ICAgICBjcmVhdGVUaWxlc0lmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsKLSAgICByZW1vdmVU
aWxlc0lmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsKLSAgICB1cGRhdGVUaWxlc0lmTmVlZGVk
KGxheWVyLCBsYXllclN0YXRlKTsKKyAgICByZW1vdmVUaWxlc0lmTmVlZGVkKGxheWVyLCBsYXll
clN0YXRlLCBjb21taXRTY29wZSk7CisgICAgdXBkYXRlVGlsZXNJZk5lZWRlZChsYXllciwgbGF5
ZXJTdGF0ZSwgY29tbWl0U2NvcGUpOwogICAgIHNldExheWVyRmlsdGVyc0lmTmVlZGVkKGxheWVy
LCBsYXllclN0YXRlKTsKICAgICBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChsYXllciwgbGF5
ZXJTdGF0ZSk7CiAgICAgc3luY1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0
ZSk7CkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNl
dFJvb3RMYXllcklEKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklEKQogICAgIG1fcm9vdExheWVy
LT5hZGRDaGlsZChsYXllcik7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpw
cmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyKQordm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnByZXBhcmVDb250ZW50QmFja2luZ1N0b3JlKFRl
eHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIENvbW1pdFNjb3BlJiBjb21taXRTY29wZSkKIHsKICAg
ICBpZiAoIWxheWVyU2hvdWxkSGF2ZUJhY2tpbmdTdG9yZShsYXllcikpIHsKICAgICAgICAgcmVt
b3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQobGF5ZXIpOwpAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZShUZXh0
dXJlTWFwcGVyTGF5ZXIqIGxhCiAgICAgfQogCiAgICAgY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVk
ZWQobGF5ZXIpOwotICAgIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKGxheWVyKTsK
KyAgICByZXNldEJhY2tpbmdTdG9yZVNpemVUb0xheWVyU2l6ZShsYXllciwgY29tbWl0U2NvcGUp
OwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlQmFja2luZ1N0b3Jl
SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllcikKQEAgLTM3NCwxMiArMzc0LDEyIEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpyZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxhCiAgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZShudWxs
cHRyKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlc2V0QmFja2luZ1N0
b3JlU2l6ZVRvTGF5ZXJTaXplKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIpCit2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUoVGV4
dHVyZU1hcHBlckxheWVyKiBsYXllciwgQ29tbWl0U2NvcGUmIGNvbW1pdFNjb3BlKQogewogICAg
IFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gbV9iYWNraW5n
U3RvcmVzLmdldChsYXllcik7CiAgICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7CiAgICAgYmFja2lu
Z1N0b3JlLT5zZXRTaXplKGxheWVyLT5zaXplKCkpOwotICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQ
ZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3JlKTsKKyAgICBjb21taXRTY29wZS5iYWNraW5n
U3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOwogfQogCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVy
TGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUp
CkBAIC0zOTYsNyArMzk2LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0
ZVRpbGVzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY28KICAgICAgICAgYmFj
a2luZ1N0b3JlLT5jcmVhdGVUaWxlKHRpbGUudGlsZUlELCB0aWxlLnNjYWxlKTsKIH0KIAotdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZVRpbGVzSWZOZWVkZWQoVGV4dHVyZU1h
cHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0
YXRlKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZVRpbGVzSWZOZWVkZWQo
VGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUmIHN0YXRlLCBDb21taXRTY29wZSYgY29tbWl0U2NvcGUpCiB7CiAgICAgaWYgKHN0YXRl
LnRpbGVzVG9SZW1vdmUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC00MDgsMTAgKzQw
OCwxMCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVtb3ZlVGlsZXNJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjbwogICAgIGZvciAoYXV0byYgdGlsZSA6IHN0
YXRlLnRpbGVzVG9SZW1vdmUpCiAgICAgICAgIGJhY2tpbmdTdG9yZS0+cmVtb3ZlVGlsZSh0aWxl
KTsKIAotICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0
b3JlKTsKKyAgICBjb21taXRTY29wZS5iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFk
ZChiYWNraW5nU3RvcmUpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6dXBk
YXRlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6dXBkYXRlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25z
dCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUsIENvbW1pdFNjb3BlJiBjb21t
aXRTY29wZSkKIHsKICAgICBpZiAoc3RhdGUudGlsZXNUb1VwZGF0ZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTQyOCw3ICs0MjgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6dXBkYXRlVGlsZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjbwog
ICAgICAgICBBU1NFUlQoc3VyZmFjZUl0ICE9IG1fc3VyZmFjZXMuZW5kKCkpOwogCiAgICAgICAg
IGJhY2tpbmdTdG9yZS0+dXBkYXRlVGlsZSh0aWxlLnRpbGVJRCwgc3VyZmFjZVVwZGF0ZUluZm8u
dXBkYXRlUmVjdCwgdGlsZS50aWxlUmVjdCwgc3VyZmFjZUl0LT52YWx1ZS5jb3B5UmVmKCksIHN1
cmZhY2VVcGRhdGVJbmZvLnN1cmZhY2VPZmZzZXQpOwotICAgICAgICBtX2JhY2tpbmdTdG9yZXNX
aXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9yZSk7CisgICAgICAgIGNvbW1pdFNjb3Bl
LmJhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9yZSk7CiAgICAg
fQogfQogCkBAIC00NTYsMTkgKzQ1NiwxOSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6cmVsZWFzZVVwZGF0ZUF0bGFzZXMoY29uc3QgVmVjdG9yPHVpbnQzMl90PiYgYXRsYQogICAg
ICAgICByZW1vdmVVcGRhdGVBdGxhcyhhdGxhcyk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjpzeW5jSW1hZ2VCYWNraW5ncyhjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGUmIHN0YXRlKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNJbWFnZUJhY2tp
bmdzKGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUsIENvbW1pdFNjb3BlJiBj
b21taXRTY29wZSkKIHsKICAgICBmb3IgKGF1dG8mIGltYWdlIDogc3RhdGUuaW1hZ2VzVG9SZW1v
dmUpCi0gICAgICAgIHJlbW92ZUltYWdlQmFja2luZyhpbWFnZSk7CisgICAgICAgIHJlbW92ZUlt
YWdlQmFja2luZyhpbWFnZSwgY29tbWl0U2NvcGUpOwogCiAgICAgZm9yIChhdXRvJiBpbWFnZSA6
IHN0YXRlLmltYWdlc1RvQ3JlYXRlKQogICAgICAgICBjcmVhdGVJbWFnZUJhY2tpbmcoaW1hZ2Up
OwogCiAgICAgZm9yIChhdXRvJiBpbWFnZSA6IHN0YXRlLmltYWdlc1RvVXBkYXRlKQotICAgICAg
ICB1cGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2UuZmlyc3QsIGltYWdlLnNlY29uZC5jb3B5UmVmKCkp
OworICAgICAgICB1cGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2UuZmlyc3QsIGltYWdlLnNlY29uZC5j
b3B5UmVmKCksIGNvbW1pdFNjb3BlKTsKIAogICAgIGZvciAoYXV0byYgaW1hZ2UgOiBzdGF0ZS5p
bWFnZXNUb0NsZWFyKQotICAgICAgICBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKGltYWdlKTsK
KyAgICAgICAgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhpbWFnZSwgY29tbWl0U2NvcGUpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlSW1hZ2VCYWNraW5nKENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKQEAgLTQ3Nyw3ICs0NzcsNyBAQCB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQgaW1hZwogICAgIG1faW1hZ2VCYWNraW5ncy5hZGQoaW1hZ2VJRCwgQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lE
IGltYWdlSUQsIFJlZlB0cjxOaWNvc2lhOjpCdWZmZXI+JiYgYnVmZmVyKQordm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEIGltYWdlSUQsIFJlZlB0cjxOaWNvc2lhOjpCdWZmZXI+JiYgYnVmZmVyLCBDb21taXRT
Y29wZSYgY29tbWl0U2NvcGUpCiB7CiAgICAgQVNTRVJUKG1faW1hZ2VCYWNraW5ncy5jb250YWlu
cyhpbWFnZUlEKSk7CiAgICAgYXV0byBpdCA9IG1faW1hZ2VCYWNraW5ncy5maW5kKGltYWdlSUQp
OwpAQCAtNDkxLDI0ICs0OTEsMjQgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVw
ZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWcKICAgICBiYWNr
aW5nU3RvcmUtPnNldFNpemUocmVjdC5zaXplKCkpOwogICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRl
VGlsZSgxIC8qIGlkICovLCByZWN0LCByZWN0LCBXVEZNb3ZlKGJ1ZmZlciksIHJlY3QubG9jYXRp
b24oKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tp
bmdTdG9yZSk7CisgICAgY29tbWl0U2NvcGUuYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVy
cy5hZGQoYmFja2luZ1N0b3JlKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFn
ZUlEKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNsZWFySW1hZ2VCYWNraW5nQ29u
dGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBDb21taXRTY29wZSYgY29t
bWl0U2NvcGUpCiB7CiAgICAgQVNTRVJUKG1faW1hZ2VCYWNraW5ncy5jb250YWlucyhpbWFnZUlE
KSk7CiAgICAgYXV0byBpdCA9IG1faW1hZ2VCYWNraW5ncy5maW5kKGltYWdlSUQpOwogICAgIFJl
ZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gaXQtPnZhbHVlOwog
ICAgIGJhY2tpbmdTdG9yZS0+cmVtb3ZlQWxsVGlsZXMoKTsKLSAgICBtX2JhY2tpbmdTdG9yZXNX
aXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9yZSk7CisgICAgY29tbWl0U2NvcGUuYmFj
a2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3JlKTsKIH0KIAotdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRl
ZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
cmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwgQ29t
bWl0U2NvcGUmIGNvbW1pdFNjb3BlKQogewogICAgIEFTU0VSVChtX2ltYWdlQmFja2luZ3MuY29u
dGFpbnMoaW1hZ2VJRCkpOwogCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCBUZXh0dXJlTWFwcGVyTGF5
ZXIgcmVmZXJzIGEgZGFuZ2xpbmcgcG9pbnRlci4KLSAgICBtX3JlbGVhc2VkSW1hZ2VCYWNraW5n
cy5hcHBlbmQobV9pbWFnZUJhY2tpbmdzLnRha2UoaW1hZ2VJRCkpOworICAgIGNvbW1pdFNjb3Bl
LnJlbGVhc2VkSW1hZ2VCYWNraW5ncy5hcHBlbmQobV9pbWFnZUJhY2tpbmdzLnRha2UoaW1hZ2VJ
RCkpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YXNzaWduSW1hZ2VCYWNr
aW5nVG9MYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEIGltYWdlSUQpCkBAIC01MjMsMjQgKzUyMywxMyBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6YXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIq
IGxheQogICAgIGxheWVyLT5zZXRDb250ZW50c0xheWVyKGl0LT52YWx1ZS5nZXQoKSk7CiB9CiAK
LXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpyZW1vdmVSZWxlYXNlZEltYWdlQmFja2lu
Z3NJZk5lZWRlZCgpCi17Ci0gICAgbV9yZWxlYXNlZEltYWdlQmFja2luZ3MuY2xlYXIoKTsKLX0K
LQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNvbW1pdFBlbmRpbmdCYWNraW5nU3Rv
cmVPcGVyYXRpb25zKCkKLXsKLSAgICBmb3IgKGF1dG8mIGJhY2tpbmdTdG9yZSA6IG1fYmFja2lu
Z1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycykKLSAgICAgICAgYmFja2luZ1N0b3JlLT5jb21taXRU
aWxlT3BlcmF0aW9ucygqbV90ZXh0dXJlTWFwcGVyKTsKLQotICAgIG1fYmFja2luZ1N0b3Jlc1dp
dGhQZW5kaW5nQnVmZmVycy5jbGVhcigpOwotfQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6Y29tbWl0U2NlbmVTdGF0ZShjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0
YXRlKQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIENvbW1p
dFNjb3BlIGNvbW1pdFNjb3BlOworCiAgICAgbV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRp
b24gPSBzdGF0ZS5zY3JvbGxQb3NpdGlvbjsKIAogICAgIGNyZWF0ZUxheWVycyhzdGF0ZS5sYXll
cnNUb0NyZWF0ZSk7CkBAIC01NDksMTQgKzUzOCwxNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6Y29tbWl0U2NlbmVTdGF0ZShjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUm
CiAgICAgaWYgKHN0YXRlLnJvb3RDb21wb3NpdGluZ0xheWVyICE9IG1fcm9vdExheWVySUQpCiAg
ICAgICAgIHNldFJvb3RMYXllcklEKHN0YXRlLnJvb3RDb21wb3NpdGluZ0xheWVyKTsKIAotICAg
IHN5bmNJbWFnZUJhY2tpbmdzKHN0YXRlKTsKKyAgICBzeW5jSW1hZ2VCYWNraW5ncyhzdGF0ZSwg
Y29tbWl0U2NvcGUpOwogICAgIHN5bmNVcGRhdGVBdGxhc2VzKHN0YXRlKTsKIAogICAgIGZvciAo
YXV0byYgbGF5ZXIgOiBzdGF0ZS5sYXllcnNUb1VwZGF0ZSkKLSAgICAgICAgc2V0TGF5ZXJTdGF0
ZShsYXllci5maXJzdCwgbGF5ZXIuc2Vjb25kKTsKKyAgICAgICAgc2V0TGF5ZXJTdGF0ZShsYXll
ci5maXJzdCwgbGF5ZXIuc2Vjb25kLCBjb21taXRTY29wZSk7CisKKyAgICBmb3IgKGF1dG8mIGJh
Y2tpbmdTdG9yZSA6IGNvbW1pdFNjb3BlLmJhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMp
CisgICAgICAgIGJhY2tpbmdTdG9yZS0+Y29tbWl0VGlsZU9wZXJhdGlvbnMoKm1fdGV4dHVyZU1h
cHBlcik7CiAKLSAgICBjb21taXRQZW5kaW5nQmFja2luZ1N0b3JlT3BlcmF0aW9ucygpOwotICAg
IHJlbW92ZVJlbGVhc2VkSW1hZ2VCYWNraW5nc0lmTmVlZGVkKCk7CisgICAgY29tbWl0U2NvcGUu
cmVsZWFzZWRJbWFnZUJhY2tpbmdzLmNsZWFyKCk7CisgICAgY29tbWl0U2NvcGUuYmFja2luZ1N0
b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5jbGVhcigpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6cmVuZGVyTmV4dEZyYW1lKCkKQEAgLTU5MSw3ICs1ODMsNiBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAgQVNTRVJUKCFt
X2NsaWVudCk7CiAKICAgICBtX2ltYWdlQmFja2luZ3MuY2xlYXIoKTsKLSAgICBtX3JlbGVhc2Vk
SW1hZ2VCYWNraW5ncy5jbGVhcigpOwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJF
QURFRCkKICAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9wbGF0Zm9ybUxheWVyUHJveGllcy52YWx1
ZXMoKSkKICAgICAgICAgcHJveHktPmludmFsaWRhdGUoKTsKQEAgLTYwNSw3ICs1OTYsNiBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAgbV9m
aXhlZExheWVycy5jbGVhcigpOwogICAgIG1fdGV4dHVyZU1hcHBlciA9IG51bGxwdHI7CiAgICAg
bV9iYWNraW5nU3RvcmVzLmNsZWFyKCk7Ci0gICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdC
dWZmZXJzLmNsZWFyKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjb21t
aXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggODk5ZGM3MTIwYTU1NDE3
NzZiZjE1MGJiMTk2NmJkMGVmMDQxYjc1Ny4uYmMzNTAxMDlmZjFkNzczMmQ5ZjEyMjA5YWQwY2M3
OGRjODg2ZGJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCkBAIC05
NywxNCArOTcsMjMgQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZVVwZGF0ZUF0bGFzZXMoY29u
c3QgVmVjdG9yPHVpbnQzMl90PiYpOwogCiBwcml2YXRlOgorICAgIHN0cnVjdCBDb21taXRTY29w
ZSB7CisgICAgICAgIENvbW1pdFNjb3BlKCkgPSBkZWZhdWx0OworICAgICAgICBDb21taXRTY29w
ZShDb21taXRTY29wZSYpID0gZGVsZXRlOworICAgICAgICBDb21taXRTY29wZSYgb3BlcmF0b3I9
KGNvbnN0IENvbW1pdFNjb3BlJikgPSBkZWxldGU7CisKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxD
b29yZGluYXRlZEJhY2tpbmdTdG9yZT4+IHJlbGVhc2VkSW1hZ2VCYWNraW5nczsKKyAgICAgICAg
SGFzaFNldDxSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+PiBiYWNraW5nU3RvcmVzV2l0
aFBlbmRpbmdCdWZmZXJzOworICAgIH07CisKICAgICB2b2lkIHNldFJvb3RMYXllcklEKFdlYkNv
cmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCk7CiAgICAgdm9pZCBjcmVhdGVMYXllcnMoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRD4mKTsKICAgICB2b2lkIGRlbGV0ZUxheWVy
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklEPiYpOwotICAgIHZvaWQg
c2V0TGF5ZXJTdGF0ZShXZWJDb3JlOjpDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCBzZXRMYXllclN0YXRl
KFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUmLCBDb21taXRTY29wZSYpOwogICAgIHZvaWQgc2V0TGF5ZXJDaGls
ZHJlbklmTmVlZGVkKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7Ci0gICAgdm9pZCB1cGRhdGVUaWxlc0lm
TmVlZGVkKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCB1cGRhdGVUaWxlc0lmTmVlZGVk
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlJiwgQ29tbWl0U2NvcGUmKTsKICAgICB2b2lkIGNyZWF0ZVRpbGVz
SWZOZWVkZWQoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKLSAgICB2b2lkIHJlbW92ZVRpbGVzSWZOZWVk
ZWQoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIHJlbW92ZVRpbGVzSWZOZWVkZWQoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyU3RhdGUmLCBDb21taXRTY29wZSYpOwogICAgIHZvaWQgc2V0TGF5ZXJGaWx0ZXJz
SWZOZWVkZWQoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKICAgICB2b2lkIHNldExheWVyQW5pbWF0aW9u
c0lmTmVlZGVkKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXll
cklmTmVlZGVkKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CkBAIC0xMTQsMTEgKzEyMywxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgUmVmUHRy
PE5pY29zaWE6OkJ1ZmZlcj4mJik7CiAgICAgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyh1aW50MzJf
dCBhdGxhc0lEKTsKIAotICAgIHZvaWQgc3luY0ltYWdlQmFja2luZ3MoY29uc3QgV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7CisgICAgdm9pZCBzeW5jSW1hZ2VCYWNraW5ncyhj
b25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmLCBDb21taXRTY29wZSYpOwog
ICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKFdlYkNvcmU6OkNvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQpOwotICAgIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKFdlYkNvcmU6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQsIFJlZlB0cjxOaWNvc2lhOjpCdWZmZXI+JiYpOwotICAgIHZvaWQgY2xl
YXJJbWFnZUJhY2tpbmdDb250ZW50cyhXZWJDb3JlOjpDb29yZGluYXRlZEltYWdlQmFja2luZ0lE
KTsKLSAgICB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhXZWJDb3JlOjpDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKTsKKyAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhXZWJDb3JlOjpDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lELCBSZWZQdHI8Tmljb3NpYTo6QnVmZmVyPiYmLCBDb21taXRTY29w
ZSYpOworICAgIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhXZWJDb3JlOjpDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lELCBDb21taXRTY29wZSYpOworICAgIHZvaWQgcmVtb3ZlSW1hZ2VC
YWNraW5nKFdlYkNvcmU6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIENvbW1pdFNjb3BlJik7
CiAKICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyQnlJRChXZWJDb3JlOjpD
b29yZGluYXRlZExheWVySUQgaWQpCiAgICAgewpAQCAtMTM5LDE0ICsxNDgsMTIgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRlbGV0ZUxheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCk7CiAK
ICAgICB2b2lkIGFzc2lnbkltYWdlQmFja2luZ1RvTGF5ZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckxheWVyKiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7Ci0gICAgdm9pZCBy
ZW1vdmVSZWxlYXNlZEltYWdlQmFja2luZ3NJZk5lZWRlZCgpOwogICAgIHZvaWQgZW5zdXJlUm9v
dExheWVyKCk7Ci0gICAgdm9pZCBjb21taXRQZW5kaW5nQmFja2luZ1N0b3JlT3BlcmF0aW9ucygp
OwogCi0gICAgdm9pZCBwcmVwYXJlQ29udGVudEJhY2tpbmdTdG9yZShXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyTGF5ZXIqKTsKKyAgICB2b2lkIHByZXBhcmVDb250ZW50QmFja2luZ1N0b3JlKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllciosIENvbW1pdFNjb3BlJik7CiAgICAgdm9pZCBjcmVhdGVC
YWNraW5nU3RvcmVJZk5lZWRlZChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqKTsKICAgICB2
b2lkIHJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
ciopOwotICAgIHZvaWQgcmVzZXRCYWNraW5nU3RvcmVTaXplVG9MYXllclNpemUoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlckxheWVyKik7CisgICAgdm9pZCByZXNldEJhY2tpbmdTdG9yZVNpemVUb0xh
eWVyU2l6ZShXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqLCBDb21taXRTY29wZSYpOwogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQogICAgIHZvaWQgb25OZXdCdWZm
ZXJBdmFpbGFibGUoKSBvdmVycmlkZTsKQEAgLTE1NiwxMCArMTYzLDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVy
OwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBSZWZQ
dHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+PiBtX2ltYWdlQmFja2luZ3M7Ci0gICAgVmVjdG9y
PFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4+IG1fcmVsZWFzZWRJbWFnZUJhY2tpbmdz
OwotCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqLCBSZWZQdHI8Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU+PiBtX2JhY2tpbmdTdG9yZXM7Ci0gICAgSGFzaFNldDxSZWZQ
dHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+PiBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1
ZmZlcnM7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAgICAgSGFz
aE1hcDxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqLCBSZWZQdHI8V2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4+IG1fcGxhdGZvcm1MYXllclByb3hpZXM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>