<?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>78500</bug_id>
          
          <creation_ts>2012-02-13 08:27:21 -0800</creation_ts>
          <short_desc>Web Inspector: fire stylesheet changed event upon CSS modifications.</short_desc>
          <delta_ts>2012-02-14 00:50:32 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555281</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-13 08:27:21 -0800</bug_when>
    <thetext>This is needed for syncing undo with the revision history.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555282</commentid>
    <comment_count>1</comment_count>
      <attachid>126776</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-13 08:28:52 -0800</bug_when>
    <thetext>Created attachment 126776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555313</commentid>
    <comment_count>2</comment_count>
      <attachid>126776</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-02-13 09:07:05 -0800</bug_when>
    <thetext>Comment on attachment 126776
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.h:160
&gt; +    struct Listener {

Should be class.

&gt; Source/WebCore/inspector/front-end/CSSStyleModel.js:291
&gt; +        this._pendingCommands.push([&quot;CSSAgent.setStyleSheetText&quot;, majorChange]);

The name doesn&apos;t seem to be used, otherwise please introduce a class for the commands.

&gt; LayoutTests/inspector/styles/styles-history.html:40
&gt; +                    next();                

Remove the spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556065</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-14 00:50:32 -0800</bug_when>
    <thetext>Committed r107683: &lt;http://trac.webkit.org/changeset/107683&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126776</attachid>
            <date>2012-02-13 08:28:52 -0800</date>
            <delta_ts>2012-02-13 09:07:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78500-20120213202849.patch</filename>
            <type>text/plain</type>
            <size>44411</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlYzViYTYzMWUzNDc5
NGVkZWJjMDAxMjhkZTljYWZiODQ1OTgxMy4uMTViOWU5NmM0NjVkYTY0Zjg5Nzg5NjEwOTc4Y2Ux
OGFiODQ1ODNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEyLTAyLTEzICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBmaXJlIHN0eWxlc2hlZXQgY2hhbmdlZCBldmVudCB1cG9uIENTUyBtb2RpZmljYXRpb25zLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1MDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OlNldFN0eWxlU2hlZXRU
ZXh0QWN0aW9uOjptZXJnZUlkKToKKyAgICAgICAgKEluc3BlY3RvckNTU0FnZW50OjpTZXRTdHls
ZVNoZWV0VGV4dEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6
U2V0U3R5bGVTaGVldFRleHRBY3Rpb246Om1lcmdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU0FnZW50OjpzZXRTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDU1NBZ2VudDo6YXNJbnNwZWN0b3JTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNTU0FnZW50OjpiaW5kU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NBZ2VudDo6dmlhSW5zcGVjdG9yU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6c3R5bGVTaGVldENoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAg
IChJbnNwZWN0b3JDU1NBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6Okluc3BlY3RvclN0eWxl
U2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6cmVwYXJzZVN0
eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0UnVs
ZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OmFkZFJ1
bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6ZGVsZXRlUnVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0OjpzZXRQcm9wZXJ0eVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6dG9nZ2xlUHJvcGVydHkp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6ZmlyZVN0eWxlU2hlZXRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
U3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5s
aW5lU3R5bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0OjpMaXN0ZW5lcjo6fkxpc3RlbmVy
KToKKyAgICAgICAgKExpc3RlbmVyKToKKyAgICAgICAgKEluc3BlY3RvclN0eWxlU2hlZXQpOgor
ICAgICAgICAoSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5w
cm90b3R5cGUuc2V0UnVsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZS5zZXRSdWxlU2VsZWN0b3IuY2FsbGJhY2spOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmFkZFJ1bGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmFkZFJ1bGUuY2FsbGJhY2spOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9maXJlU3R5bGVTaGVl
dENoYW5nZWQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
cHJvdG90eXBlLl9maXJlU3R5bGVTaGVldENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLnNldFN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fdW5kb1JlcXVlc3RlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3VuZG9Db21wbGV0ZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmlu
c2VydFByb3BlcnR5QXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3Rv
dHlwZS5zZXRUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5
cGUuc2V0VGV4dC5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHku
cHJvdG90eXBlLnNldERpc2FibGVkLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0RGlzYWJsZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnNldFRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU0Rpc3BhdGNoZXIucHJvdG90eXBlLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlwZS5zdHlsZVNoZWV0Q2hhbmdl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2VtdWxhdGVUb3VjaEV2ZW50c0NoYW5n
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5nZXQgdW5kbyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0KToK
KworMjAxMi0wMi0xMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKICAg
ICAgICAgV2ViIEluc3BlY3Rvcjogd3JhcCBzZXR0aW5ncyBzZWxlY3RvciB0ZXh0IGFuZCBhZGRp
bmcgYSBydWxlIHdpdGggdW5kb2FibGUgYWN0aW9ucy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDgyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgppbmRleCBmZmQyMmRlMjFkYjY4ZDhiMjU3MWUxMzMzY2EzZDljZGZiNDY5
OTJlLi5kZjliNGQwMzBlZGFiOTJhYzcwZTVhYzVkODZjYjE0MmM3NzYxMjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNjA3LDEwICsxNjA3LDE0IEBACiAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGRvbWFpbiBleHBvc2VzIENTUyByZWFkL3dyaXRl
IG9wZXJhdGlvbnMuIEFsbCBDU1Mgb2JqZWN0cywgbGlrZSBzdHlsZXNoZWV0cywgcnVsZXMsIGFu
ZCBzdHlsZXMsIGhhdmUgYW4gYXNzb2NpYXRlZCA8Y29kZT5pZDwvY29kZT4gdXNlZCBpbiBzdWJz
ZXF1ZW50IG9wZXJhdGlvbnMgb24gdGhlIHJlbGF0ZWQgb2JqZWN0LiBFYWNoIG9iamVjdCB0eXBl
IGhhcyBhIHNwZWNpZmljIDxjb2RlPmlkPC9jb2RlPiBzdHJ1Y3R1cmUsIGFuZCB0aG9zZSBhcmUg
bm90IGludGVyY2hhbmdlYWJsZSBiZXR3ZWVuIG9iamVjdHMgb2YgZGlmZmVyZW50IGtpbmRzLiBD
U1Mgb2JqZWN0cyBjYW4gYmUgbG9hZGVkIHVzaW5nIHRoZSA8Y29kZT5nZXQqRm9yTm9kZSgpPC9j
b2RlPiBjYWxscyAod2hpY2ggYWNjZXB0IGEgRE9NIG5vZGUgaWQpLiBBbHRlcm5hdGl2ZWx5LCBh
IGNsaWVudCBjYW4gZGlzY292ZXIgYWxsIHRoZSBleGlzdGluZyBzdHlsZXNoZWV0cyB3aXRoIHRo
ZSA8Y29kZT5nZXRBbGxTdHlsZVNoZWV0cygpPC9jb2RlPiBtZXRob2QgYW5kIHN1YnNlcXVlbnRs
eSBsb2FkIHRoZSByZXF1aXJlZCBzdHlsZXNoZWV0IGNvbnRlbnRzIHVzaW5nIHRoZSA8Y29kZT5n
ZXRTdHlsZVNoZWV0W1RleHRdKCk8L2NvZGU+IG1ldGhvZHMuIiwKICAgICAgICAgInR5cGVzIjog
WwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJTdHlsZVNoZWV0SWQiLAor
ICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIkNTU1N0eWxlSWQiLAogICAgICAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0g
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVTaGVldElkIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIkVuY2xvc2luZyBzdHlsZXNoZWV0IGlkZW50aWZpZXIuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJZCIsICIkcmVmIjog
IlN0eWxlU2hlZXRJZCIsICJkZXNjcmlwdGlvbiI6ICJFbmNsb3Npbmcgc3R5bGVzaGVldCBpZGVu
dGlmaWVyLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmRpbmFsIiwgInR5
cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc3R5bGUgb3JkaW5hbCB3aXRoaW4g
dGhlIHN0eWxlc2hlZXQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiVGhpcyBvYmplY3QgaWRlbnRpZmllcyBhIENTUyBzdHlsZSBpbiBhIHVu
aXF1ZSB3YXkuIgpAQCAtMTYxOSw3ICsxNjIzLDcgQEAKICAgICAgICAgICAgICAgICAiaWQiOiAi
Q1NTUnVsZUlkIiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0
eWxlU2hlZXRJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJFbmNsb3Npbmcg
c3R5bGVzaGVldCBpZGVudGlmaWVyLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdHlsZVNoZWV0SWQiLCAiJHJlZiI6ICJTdHlsZVNoZWV0SWQiLCAiZGVzY3JpcHRpb24iOiAi
RW5jbG9zaW5nIHN0eWxlc2hlZXQgaWRlbnRpZmllci4iIH0sCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAib3JkaW5hbCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIHJ1bGUgb3JkaW5hbCB3aXRoaW4gdGhlIHN0eWxlc2hlZXQuIiB9CiAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBvYmplY3QgaWRlbnRp
ZmllcyBhIENTUyBydWxlIGluIGEgdW5pcXVlIHdheS4iCkBAIC0xNjU1LDcgKzE2NTksNyBAQAog
ICAgICAgICAgICAgICAgICJpZCI6ICJDU1NTdHlsZVNoZWV0SGVhZGVyIiwKICAgICAgICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJZCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc3R5bGVzaGVldCBpZGVudGlmaWVyLiJ9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJZCIsICIkcmVmIjogIlN0eWxl
U2hlZXRJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc3R5bGVzaGVldCBpZGVudGlmaWVyLiJ9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZVVSTCIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJTdHlsZXNoZWV0IHJlc291cmNlIFVSTC4ifSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ0aXRsZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJTdHlsZXNoZWV0IHRpdGxlLiJ9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRpc2FibGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJEZW5vdGVz
IHdoZXRoZXIgdGhlIHN0eWxlc2hlZXQgaXMgZGlzYWJsZWQuIn0KQEAgLTE2NjYsNyArMTY3MCw3
IEBACiAgICAgICAgICAgICAgICAgImlkIjogIkNTU1N0eWxlU2hlZXRCb2R5IiwKICAgICAgICAg
ICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
WwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJZCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc3R5bGVzaGVldCBpZGVudGlmaWVyLiJ9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJZCIsICIkcmVmIjogIlN0
eWxlU2hlZXRJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc3R5bGVzaGVldCBpZGVudGlmaWVyLiJ9
LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJ1bGVzIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICIkcmVmIjogIkNTU1J1bGUiIH0sICJkZXNjcmlwdGlvbiI6ICJTdHlsZXNo
ZWV0IHJlc291cmNlIFVSTC4ifSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXh0
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN0
eWxlc2hlZXQgcmVzb3VyY2UgY29udGVudHMgKGlmIGF2YWlsYWJsZSkuIn0KICAgICAgICAgICAg
ICAgICBdLApAQCAtMTgyNyw3ICsxODMxLDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAibmFtZSI6ICJnZXRTdHlsZVNoZWV0IiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlw
ZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZVNoZWV0
SWQiLCAiJHJlZiI6ICJTdHlsZVNoZWV0SWQiIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0
eWxlU2hlZXQiLCAiJHJlZiI6ICJDU1NTdHlsZVNoZWV0Qm9keSIsICJkZXNjcmlwdGlvbiI6ICJT
dHlsZXNoZWV0IGNvbnRlbnRzIGZvciB0aGUgc3BlY2lmaWVkIDxjb2RlPnN0eWxlU2hlZXRJZDwv
Y29kZT4uIiB9CkBAIC0xODM3LDcgKzE4NDEsNyBAQAogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICJuYW1lIjogImdldFN0eWxlU2hlZXRUZXh0IiwKICAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZVNoZWV0SWQi
LCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHls
ZVNoZWV0SWQiLCAiJHJlZiI6ICJTdHlsZVNoZWV0SWQiIH0KICAgICAgICAgICAgICAgICBdLAog
ICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHN0eWxlc2hl
ZXQgdGV4dC4iIH0KQEAgLTE4NDcsNyArMTg1MSw3IEBACiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAic2V0U3R5bGVTaGVldFRleHQiLAogICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJ
ZCIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJz
dHlsZVNoZWV0SWQiLCAiJHJlZiI6ICJTdHlsZVNoZWV0SWQiIH0sCiAgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAgICAg
IF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIG5ldyBzdHlsZXNo
ZWV0IHRleHQsIHRoZXJlYnkgaW52YWxpZGF0aW5nIGFsbCBleGlzdGluZyA8Y29kZT5DU1NTdHls
ZUlkPC9jb2RlPidzIGFuZCA8Y29kZT5DU1NSdWxlSWQ8L2NvZGU+J3MgY29udGFpbmVkIGJ5IHRo
aXMgc3R5bGVzaGVldC4iCkBAIC0xOTIwLDYgKzE5MjQsMTMgQEAKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAibmFtZSI6ICJtZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCIsCiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVzIHdoZW5ldmVyIGEgTWVkaWFRdWVyeSByZXN1
bHQgY2hhbmdlcyAoZm9yIGV4YW1wbGUsIGFmdGVyIGEgYnJvd3NlciB3aW5kb3cgaGFzIGJlZW4g
cmVzaXplZC4pIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnNpZGVycyBvbmx5IHZpZXdw
b3J0LWRlcGVuZGVudCBtZWRpYSBmZWF0dXJlcy4iCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInN0eWxlU2hlZXRDaGFuZ2VkIiwKKyAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdHlsZVNoZWV0SWQiLCAiJHJlZiI6ICJTdHlsZVNoZWV0SWQiIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuZXZlciBhIHN0
eWxlc2hlZXQgaXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiB0aGUgY2xpZW50IG9wZXJhdGlvbi4i
CiAgICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggNGU3MmU0OWM4NjdiNjRhMDY3NDRm
ZjlmYTQ2YzU3MGQ5NTBhMzhiZC4uYjFhYzQ1OTUyZDNmOTk5ODE5ODcyMzI0OGFhYWQ4NzIzZjlj
ZDUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0Fn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCkBAIC0yNjEsNiArMjYxLDE5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIG1lcmdlSWQoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIFN0cmluZzo6Zm9ybWF0KCJTZXRTdHlsZVNoZWV0VGV4dCAlcyIsIG1fc3R5bGVTaGVldC0+
aWQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbWVyZ2UoUGFz
c093blB0cjxBY3Rpb24+IGFjdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVChhY3Rpb24tPm1l
cmdlSWQoKSA9PSBtZXJnZUlkKCkpOworCisgICAgICAgIFNldFN0eWxlU2hlZXRUZXh0QWN0aW9u
KiBvdGhlciA9IHN0YXRpY19jYXN0PFNldFN0eWxlU2hlZXRUZXh0QWN0aW9uKj4oYWN0aW9uLmdl
dCgpKTsKKyAgICAgICAgbV90ZXh0ID0gb3RoZXItPm1fdGV4dDsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBTdHJpbmcgbV9vbGRUZXh0OwpAQCAtNjQyLDcgKzY1
NSw2IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnNldFN0eWxlU2hlZXRUZXh0KEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgbV9kb21BZ2VudC0+aGlzdG9yeSgpLT5wZXJmb3JtKGFkb3B0UHRyKG5ldyBTZXRTdHls
ZVNoZWV0VGV4dEFjdGlvbihpbnNwZWN0b3JTdHlsZVNoZWV0LCB0ZXh0KSksIGVjKTsKICAgICAq
ZXJyb3JTdHJpbmcgPSBJbnNwZWN0b3JET01BZ2VudDo6dG9FcnJvclN0cmluZyhlYyk7Ci0gICAg
bV9kb21BZ2VudC0+aGlzdG9yeSgpLT5tYXJrVW5kb2FibGVTdGF0ZSgpOwogfQogCiB2b2lkIElu
c3BlY3RvckNTU0FnZW50OjpzZXRQcm9wZXJ0eVRleHQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgZnVsbFN0eWxlSWQsIGludCBwcm9wZXJ0
eUluZGV4LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlLCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiYgcmVzdWx0KQpAQCAtNzg4LDcgKzgwMCw3IEBAIEluc3BlY3RvclN0eWxlU2hl
ZXRGb3JJbmxpbmVTdHlsZSogSW5zcGVjdG9yQ1NTQWdlbnQ6OmFzSW5zcGVjdG9yU3R5bGVTaGVl
dChFbGVtCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBTdHJpbmcgbmV3U3R5bGVT
aGVldElkID0gU3RyaW5nOjpudW1iZXIobV9sYXN0U3R5bGVTaGVldElkKyspOwotICAgICAgICBS
ZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlPiBpbnNwZWN0b3JTdHlsZVNo
ZWV0ID0gSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpjcmVhdGUobmV3U3R5bGVT
aGVldElkLCBlbGVtZW50LCAicmVndWxhciIpOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yU3R5
bGVTaGVldEZvcklubGluZVN0eWxlPiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0gSW5zcGVjdG9yU3R5
bGVTaGVldEZvcklubGluZVN0eWxlOjpjcmVhdGUobmV3U3R5bGVTaGVldElkLCBlbGVtZW50LCAi
cmVndWxhciIsIHRoaXMpOwogICAgICAgICBtX2lkVG9JbnNwZWN0b3JTdHlsZVNoZWV0LnNldChu
ZXdTdHlsZVNoZWV0SWQsIGluc3BlY3RvclN0eWxlU2hlZXQpOwogICAgICAgICBtX25vZGVUb0lu
c3BlY3RvclN0eWxlU2hlZXQuc2V0KGVsZW1lbnQsIGluc3BlY3RvclN0eWxlU2hlZXQpOwogICAg
ICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldC5nZXQoKTsKQEAgLTgzMSw3ICs4NDMsNyBA
QCBJbnNwZWN0b3JTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NBZ2VudDo6YmluZFN0eWxlU2hlZXQo
Q1NTU3R5bGVTaGVldCogc3R5bGVTaGVldAogICAgIGlmICghaW5zcGVjdG9yU3R5bGVTaGVldCkg
ewogICAgICAgICBTdHJpbmcgaWQgPSBTdHJpbmc6Om51bWJlcihtX2xhc3RTdHlsZVNoZWV0SWQr
Kyk7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0eWxlU2hlZXQtPmZpbmREb2N1bWVu
dCgpOwotICAgICAgICBpbnNwZWN0b3JTdHlsZVNoZWV0ID0gSW5zcGVjdG9yU3R5bGVTaGVldDo6
Y3JlYXRlKGlkLCBzdHlsZVNoZWV0LCBkZXRlY3RPcmlnaW4oc3R5bGVTaGVldCwgZG9jdW1lbnQp
LCBJbnNwZWN0b3JET01BZ2VudDo6ZG9jdW1lbnRVUkxTdHJpbmcoZG9jdW1lbnQpKTsKKyAgICAg
ICAgaW5zcGVjdG9yU3R5bGVTaGVldCA9IEluc3BlY3RvclN0eWxlU2hlZXQ6OmNyZWF0ZShpZCwg
c3R5bGVTaGVldCwgZGV0ZWN0T3JpZ2luKHN0eWxlU2hlZXQsIGRvY3VtZW50KSwgSW5zcGVjdG9y
RE9NQWdlbnQ6OmRvY3VtZW50VVJMU3RyaW5nKGRvY3VtZW50KSwgdGhpcyk7CiAgICAgICAgIG1f
aWRUb0luc3BlY3RvclN0eWxlU2hlZXQuc2V0KGlkLCBpbnNwZWN0b3JTdHlsZVNoZWV0KTsKICAg
ICAgICAgbV9jc3NTdHlsZVNoZWV0VG9JbnNwZWN0b3JTdHlsZVNoZWV0LnNldChzdHlsZVNoZWV0
LCBpbnNwZWN0b3JTdHlsZVNoZWV0KTsKICAgICB9CkBAIC04NzIsNyArODg0LDcgQEAgSW5zcGVj
dG9yU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OnZpYUluc3BlY3RvclN0eWxlU2hlZXQo
RG9jdW1lbnQqIGRvY3VtZW4KICAgICAgICAgcmV0dXJuIDA7CiAgICAgQ1NTU3R5bGVTaGVldCog
Y3NzU3R5bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KTsK
ICAgICBTdHJpbmcgaWQgPSBTdHJpbmc6Om51bWJlcihtX2xhc3RTdHlsZVNoZWV0SWQrKyk7Ci0g
ICAgaW5zcGVjdG9yU3R5bGVTaGVldCA9IEluc3BlY3RvclN0eWxlU2hlZXQ6OmNyZWF0ZShpZCwg
Y3NzU3R5bGVTaGVldCwgImluc3BlY3RvciIsIEluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudFVS
TFN0cmluZyhkb2N1bWVudCkpOworICAgIGluc3BlY3RvclN0eWxlU2hlZXQgPSBJbnNwZWN0b3JT
dHlsZVNoZWV0OjpjcmVhdGUoaWQsIGNzc1N0eWxlU2hlZXQsICJpbnNwZWN0b3IiLCBJbnNwZWN0
b3JET01BZ2VudDo6ZG9jdW1lbnRVUkxTdHJpbmcoZG9jdW1lbnQpLCB0aGlzKTsKICAgICBtX2lk
VG9JbnNwZWN0b3JTdHlsZVNoZWV0LnNldChpZCwgaW5zcGVjdG9yU3R5bGVTaGVldCk7CiAgICAg
bV9jc3NTdHlsZVNoZWV0VG9JbnNwZWN0b3JTdHlsZVNoZWV0LnNldChjc3NTdHlsZVNoZWV0LCBp
bnNwZWN0b3JTdHlsZVNoZWV0KTsKICAgICBtX2RvY3VtZW50VG9JbnNwZWN0b3JTdHlsZVNoZWV0
LnNldChkb2N1bWVudCwgaW5zcGVjdG9yU3R5bGVTaGVldCk7CkBAIC05NzYsNiArOTg4LDEyIEBA
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVu
dCkKICAgICBpdC0+c2Vjb25kLT5kaWRNb2RpZnlFbGVtZW50QXR0cmlidXRlKCk7CiB9CiAKK3Zv
aWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnN0eWxlU2hlZXRDaGFuZ2VkKEluc3BlY3RvclN0eWxlU2hl
ZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIG1fZnJvbnRl
bmQtPnN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlU2hlZXQtPmlkKCkpOworfQorCiB2b2lkIEluc3Bl
Y3RvckNTU0FnZW50OjpjbGVhclBzZXVkb1N0YXRlKGJvb2wgcmVjYWxjU3R5bGVzKQogewogICAg
IFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gbV9sYXN0RWxlbWVudFdpdGhQc2V1ZG9TdGF0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKaW5kZXggODhi
NDkxYzgwOTU5NDgwZDEzYmI1NzNhYWEyNjRlZmRhZDc5MmNhYi4uZTdlZTc2NTcyOGM1OWI2ZWNm
ZDFkNDE5ZTRlMWUyMWJhZWIyMzViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmgKQEAgLTU0LDcgKzU0LDExIEBAIGNsYXNzIFNlbGVjdG9yUHJvZmls
ZTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKLWNsYXNzIEluc3BlY3RvckNTU0FnZW50IDog
cHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDU1NBZ2VudD4sIHB1YmxpYyBJbnNw
ZWN0b3JET01BZ2VudDo6RE9NTGlzdGVuZXIsIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6Q1NTQ29tbWFuZEhhbmRsZXIgeworY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQKKyAgICA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ1NTQWdlbnQ+CisgICAgLCBwdWJs
aWMgSW5zcGVjdG9yRE9NQWdlbnQ6OkRPTUxpc3RlbmVyCisgICAgLCBwdWJsaWMgSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OkNTU0NvbW1hbmRIYW5kbGVyCisgICAgLCBwdWJsaWMgSW5zcGVj
dG9yU3R5bGVTaGVldDo6TGlzdGVuZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3Bl
Y3RvckNTU0FnZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0
eWxlUnVsZShDU1NSdWxlKik7CkBAIC0xMjUsMTEgKzEyOSwxNCBAQCBwcml2YXRlOgogICAgIFBh
c3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlGb3JSdWxlTGlzdChDU1NSdWxlTGlz
dCogcnVsZUxpc3QpOwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVj
dEZvckF0dHJpYnV0ZXNTdHlsZShFbGVtZW50Kik7CiAKLSAgICAvLyBJbnNwZWN0b3JET01BZ2Vu
dDo6RE9NTGlzdGVuZXIgaW50ZXJmYWNlCisgICAgLy8gSW5zcGVjdG9yRE9NQWdlbnQ6OkRPTUxp
c3RlbmVyIGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZURvY3VtZW50
KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZURPTU5vZGUoTm9kZSopOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQqKTsKIAorICAgIC8vIElu
c3BlY3RvckNTU0FnZW50OjpMaXN0ZW5lciBpbXBsZW1lbnRhdGlvbgorICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZVNoZWV0Q2hhbmdlZChJbnNwZWN0b3JTdHlsZVNoZWV0Kik7CisKICAgICB2b2lkIGNs
ZWFyUHNldWRvU3RhdGUoYm9vbCByZWNhbGNTdHlsZXMpOwogCiAgICAgSW5zcGVjdG9yRnJvbnRl
bmQ6OkNTUyogbV9mcm9udGVuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCBmNzU4Nzg0YTBkYTc0ZjJlOTQyYTkyMTliNTBkYjQ0
ODMwYjI4NTIxLi5mYmJjMTgyNGM5N2I4YTI4MjY5ZGU1MzgwYzY4YjY0ZTM3ODNiOGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBA
IC02NTMsOSArNjUzLDkgQEAgTmV3TGluZUFuZFdoaXRlc3BhY2UmIEluc3BlY3RvclN0eWxlOjpu
ZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMoKSBjb25zdAogICAgIHJldHVybiBtX2Zvcm1h
dDsKIH0KIAotUGFzc1JlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0PiBJbnNwZWN0b3JTdHlsZVNo
ZWV0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxDU1NTdHlsZVNoZWV0PiBw
YWdlU3R5bGVTaGVldCwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgZG9jdW1l
bnRVUkwpCitQYXNzUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXQ+IEluc3BlY3RvclN0eWxlU2hl
ZXQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVmUHRyPENTU1N0eWxlU2hlZXQ+IHBh
Z2VTdHlsZVNoZWV0LCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBkb2N1bWVu
dFVSTCwgTGlzdGVuZXIqIGxpc3RlbmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5z
cGVjdG9yU3R5bGVTaGVldChpZCwgcGFnZVN0eWxlU2hlZXQsIG9yaWdpbiwgZG9jdW1lbnRVUkwp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3RvclN0eWxlU2hlZXQoaWQsIHBhZ2VT
dHlsZVNoZWV0LCBvcmlnaW4sIGRvY3VtZW50VVJMLCBsaXN0ZW5lcikpOwogfQogCiAvLyBzdGF0
aWMKQEAgLTY2NiwxMiArNjY2LDEzIEBAIFN0cmluZyBJbnNwZWN0b3JTdHlsZVNoZWV0OjpzdHls
ZVNoZWV0VVJMKENTU1N0eWxlU2hlZXQqIHBhZ2VTdHlsZVNoZWV0KQogICAgIHJldHVybiBlbXB0
eVN0cmluZygpOwogfQogCi1JbnNwZWN0b3JTdHlsZVNoZWV0OjpJbnNwZWN0b3JTdHlsZVNoZWV0
KGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFnZVN0eWxlU2hl
ZXQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKQorSW5z
cGVjdG9yU3R5bGVTaGVldDo6SW5zcGVjdG9yU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGlkLCBQ
YXNzUmVmUHRyPENTU1N0eWxlU2hlZXQ+IHBhZ2VTdHlsZVNoZWV0LCBjb25zdCBTdHJpbmcmIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBkb2N1bWVudFVSTCwgTGlzdGVuZXIqIGxpc3RlbmVyKQogICAg
IDogbV9pZChpZCkKICAgICAsIG1fcGFnZVN0eWxlU2hlZXQocGFnZVN0eWxlU2hlZXQpCiAgICAg
LCBtX29yaWdpbihvcmlnaW4pCiAgICAgLCBtX2RvY3VtZW50VVJMKGRvY3VtZW50VVJMKQogICAg
ICwgbV9pc1JldmFsaWRhdGluZyhmYWxzZSkKKyAgICAsIG1fbGlzdGVuZXIobGlzdGVuZXIpCiB7
CiAgICAgbV9wYXJzZWRTdHlsZVNoZWV0ID0gbmV3IFBhcnNlZFN0eWxlU2hlZXQoKTsKIH0KQEAg
LTY5NCw2ICs2OTUsNyBAQCB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJlcGFyc2VTdHlsZVNo
ZWV0KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICBtX3BhZ2VTdHlsZVNoZWV0LT5wYXJzZVN0cmlu
Zyh0ZXh0LCBtX3BhZ2VTdHlsZVNoZWV0LT51c2VTdHJpY3RQYXJzaW5nKCkpOwogICAgIG1fcGFn
ZVN0eWxlU2hlZXQtPnN0eWxlU2hlZXRDaGFuZ2VkKCk7CiAgICAgbV9pbnNwZWN0b3JTdHlsZXMu
Y2xlYXIoKTsKKyAgICBmaXJlU3R5bGVTaGVldENoYW5nZWQoKTsKIH0KIAogYm9vbCBJbnNwZWN0
b3JTdHlsZVNoZWV0OjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTc0MCw2ICs3NDIs
NyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnNldFJ1bGVTZWxlY3Rvcihjb25zdCBJbnNw
ZWN0b3JDU1NJZCYgaWQsIGNvbnN0IFN0cmluZwogICAgIFN0cmluZyBzaGVldFRleHQgPSBtX3Bh
cnNlZFN0eWxlU2hlZXQtPnRleHQoKTsKICAgICBzaGVldFRleHQucmVwbGFjZShzb3VyY2VEYXRh
LT5zZWxlY3Rvckxpc3RSYW5nZS5zdGFydCwgc291cmNlRGF0YS0+c2VsZWN0b3JMaXN0UmFuZ2Uu
ZW5kIC0gc291cmNlRGF0YS0+c2VsZWN0b3JMaXN0UmFuZ2Uuc3RhcnQsIHNlbGVjdG9yKTsKICAg
ICBtX3BhcnNlZFN0eWxlU2hlZXQtPnNldFRleHQoc2hlZXRUZXh0KTsKKyAgICBmaXJlU3R5bGVT
aGVldENoYW5nZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNzY4LDYgKzc3MSw4IEBA
IENTU1N0eWxlUnVsZSogSW5zcGVjdG9yU3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcm
IHNlbGVjdG9yLCBFeGNlcHRpb25Db2RlCiAgICAgLy8gVXNpbmcgc2V0VGV4dCgpIGFzIHRoaXMg
b3BlcmF0aW9uIGNoYW5nZXMgdGhlIHN0eWxlIHNoZWV0IHJ1bGUgc2V0LgogICAgIHNldFRleHQo
c3R5bGVTaGVldFRleHQpOwogCisgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7CisKICAgICBy
ZXR1cm4gcnVsZTsKIH0KIApAQCAtNzk3LDYgKzgwMiw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVT
aGVldDo6ZGVsZXRlUnVsZShjb25zdCBJbnNwZWN0b3JDU1NJZCYgaWQsIEV4Y2VwdGlvbkNvZGUm
IGVjCiAgICAgU3RyaW5nIHNoZWV0VGV4dCA9IG1fcGFyc2VkU3R5bGVTaGVldC0+dGV4dCgpOwog
ICAgIHNoZWV0VGV4dC5yZW1vdmUoc291cmNlRGF0YS0+c2VsZWN0b3JMaXN0UmFuZ2Uuc3RhcnQs
IHNvdXJjZURhdGEtPnN0eWxlU291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2UuZW5kIC0gc291cmNl
RGF0YS0+c2VsZWN0b3JMaXN0UmFuZ2Uuc3RhcnQgKyAxKTsKICAgICBtX3BhcnNlZFN0eWxlU2hl
ZXQtPnNldFRleHQoc2hlZXRUZXh0KTsKKyAgICBmaXJlU3R5bGVTaGVldENoYW5nZWQoKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTIyLDcgKzkyOCwxMCBAQCBib29sIEluc3BlY3RvclN0
eWxlU2hlZXQ6OnNldFByb3BlcnR5VGV4dChjb25zdCBJbnNwZWN0b3JDU1NJZCYgaWQsIHVuc2ln
bmVkIHBybwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIGluc3Bl
Y3RvclN0eWxlLT5zZXRQcm9wZXJ0eVRleHQocHJvcGVydHlJbmRleCwgdGV4dCwgb3ZlcndyaXRl
LCBvbGRUZXh0LCBlYyk7CisgICAgYm9vbCBzdWNjZXNzID0gaW5zcGVjdG9yU3R5bGUtPnNldFBy
b3BlcnR5VGV4dChwcm9wZXJ0eUluZGV4LCB0ZXh0LCBvdmVyd3JpdGUsIG9sZFRleHQsIGVjKTsK
KyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7CisgICAg
cmV0dXJuIHN1Y2Nlc3M7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6dG9nZ2xlUHJv
cGVydHkoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlkLCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBi
b29sIGRpc2FibGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtOTM5LDYgKzk0OCw3IEBAIGJvb2wg
SW5zcGVjdG9yU3R5bGVTaGVldDo6dG9nZ2xlUHJvcGVydHkoY29uc3QgSW5zcGVjdG9yQ1NTSWQm
IGlkLCB1bnNpZ25lZCBwcm9wCiAgICAgICAgICAgICByZW1lbWJlckluc3BlY3RvclN0eWxlKGlu
c3BlY3RvclN0eWxlKTsKICAgICAgICAgZWxzZSBpZiAoIWluc3BlY3RvclN0eWxlLT5oYXNEaXNh
YmxlZFByb3BlcnRpZXMoKSkKICAgICAgICAgICAgIGZvcmdldEluc3BlY3RvclN0eWxlKGluc3Bl
Y3RvclN0eWxlLT5jc3NTdHlsZSgpKTsKKyAgICAgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7
CiAgICAgfQogICAgIHJldHVybiBzdWNjZXNzOwogfQpAQCAtOTYwLDYgKzk3MCwxMiBAQCBDU1NT
dHlsZURlY2xhcmF0aW9uKiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpzdHlsZUZvcklkKGNvbnN0IElu
c3BlY3RvckNTU0lkJiBpZCkgYwogICAgIHJldHVybiBydWxlLT5zdHlsZSgpOwogfQogCit2b2lk
IEluc3BlY3RvclN0eWxlU2hlZXQ6OmZpcmVTdHlsZVNoZWV0Q2hhbmdlZCgpCit7CisgICAgaWYg
KG1fbGlzdGVuZXIpCisgICAgICAgIG1fbGlzdGVuZXItPnN0eWxlU2hlZXRDaGFuZ2VkKHRoaXMp
OworfQorCiBQYXNzUmVmUHRyPEluc3BlY3RvclN0eWxlPiBJbnNwZWN0b3JTdHlsZVNoZWV0Ojpp
bnNwZWN0b3JTdHlsZUZvcklkKGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCkKIHsKICAgICBDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IHN0eWxlRm9ySWQoaWQpOwpAQCAtMTI2NCwxMyArMTI4
MCwxMyBAQCB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXQ6OmNvbGxlY3RGbGF0UnVsZXMoUGFzc1Jl
ZlB0cjxDU1NSdWxlTGlzdD4gcnVsZUxpc3QsIFZlYwogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxJ
bnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU+IEluc3BlY3RvclN0eWxlU2hlZXRGb3JJ
bmxpbmVTdHlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCwgY29uc3QgU3RyaW5nJiBvcmlnaW4pCitQYXNzUmVmUHRyPEluc3BlY3RvclN0eWxl
U2hlZXRGb3JJbmxpbmVTdHlsZT4gSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25z
dCBTdHJpbmcmIG9yaWdpbiwgTGlzdGVuZXIqIGxpc3RlbmVyKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlKGlkLCBlbGVtZW50LCBv
cmlnaW4pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3RvclN0eWxlU2hlZXRGb3JJ
bmxpbmVTdHlsZShpZCwgZWxlbWVudCwgb3JpZ2luLCBsaXN0ZW5lcikpOwogfQogCi1JbnNwZWN0
b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVT
dHlsZShjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0
IFN0cmluZyYgb3JpZ2luKQotICAgIDogSW5zcGVjdG9yU3R5bGVTaGVldChpZCwgMCwgb3JpZ2lu
LCAiIikKK0luc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6SW5zcGVjdG9yU3R5bGVT
aGVldEZvcklubGluZVN0eWxlKGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIExpc3RlbmVyKiBsaXN0ZW5lcikKKyAgICA6
IEluc3BlY3RvclN0eWxlU2hlZXQoaWQsIDAsIG9yaWdpbiwgIiIsIGxpc3RlbmVyKQogICAgICwg
bV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX3J1bGVTb3VyY2VEYXRhKDApCiAgICAgLCBtX2lz
U3R5bGVUZXh0VmFsaWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlU2hlZXQuaAppbmRleCBkMzA0Yjc0MmQzNWMyN2FhZTI1N2RkOGM1MWRiYWYxZGU1
MzczMTU1Li4xODRkZDQyYjNlMWFlN2M5ODNmMTdiOTE1ZjRiYzEzZmU4Mzg0NTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKQEAgLTE1Nyw4
ICsxNTcsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5zcGVjdG9yU3R5bGVTaGVldCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEluc3BlY3RvclN0eWxlU2hlZXQ+IHsKIHB1YmxpYzoKKyAgICBzdHJ1Y3Qg
TGlzdGVuZXIgeworICAgICAgICB2aXJ0dWFsIH5MaXN0ZW5lcigpIHsgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgc3R5bGVTaGVldENoYW5nZWQoSW5zcGVjdG9yU3R5bGVTaGVldCopID0gMDsKKyAg
ICB9OworCiAgICAgdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFyYXRpb24qLCBSZWZQdHI8
SW5zcGVjdG9yU3R5bGU+ID4gSW5zcGVjdG9yU3R5bGVNYXA7Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yU3R5bGVTaGVldD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQ
dHI8Q1NTU3R5bGVTaGVldD4gcGFnZVN0eWxlU2hlZXQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBj
b25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3JTdHlsZVNoZWV0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxDU1NTdHls
ZVNoZWV0PiBwYWdlU3R5bGVTaGVldCwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgZG9jdW1lbnRVUkwsIExpc3RlbmVyKik7CiAgICAgc3RhdGljIFN0cmluZyBzdHlsZVNoZWV0
VVJMKENTU1N0eWxlU2hlZXQqIHBhZ2VTdHlsZVNoZWV0KTsKIAogICAgIHZpcnR1YWwgfkluc3Bl
Y3RvclN0eWxlU2hlZXQoKTsKQEAgLTE4MiwxMiArMTg3LDEzIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBnZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdDsKICAgICB2aXJ0dWFsIENT
U1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRm9ySWQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmKSBjb25z
dDsKKyAgICB2b2lkIGZpcmVTdHlsZVNoZWV0Q2hhbmdlZCgpOwogCiAgICAgSW5zcGVjdG9yQ1NT
SWQgcnVsZUlkKENTU1N0eWxlUnVsZSopIGNvbnN0OwogICAgIEluc3BlY3RvckNTU0lkIHN0eWxl
SWQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpIGNvbnN0IHsgcmV0dXJuIHJ1bGVPclN0eWxl
SWQoc3R5bGUpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KGNvbnN0
IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFnZVN0eWxlU2hlZXQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKTsKKyAgICBJbnNw
ZWN0b3JTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4gcGFnZVN0eWxlU2hlZXQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRv
Y3VtZW50VVJMLCBMaXN0ZW5lciopOwogCiAgICAgYm9vbCBjYW5CaW5kKCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW4gIT0gInVzZXJBZ2VudCIgJiYgbV9vcmlnaW4gIT0gInVzZXIiOyB9CiAgICAg
SW5zcGVjdG9yQ1NTSWQgcnVsZU9yU3R5bGVJZChDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkg
Y29uc3Q7CkBAIC0yMjUsMTggKzIzMSwxOSBAQCBwcml2YXRlOgogICAgIFBhcnNlZFN0eWxlU2hl
ZXQqIG1fcGFyc2VkU3R5bGVTaGVldDsKICAgICBJbnNwZWN0b3JTdHlsZU1hcCBtX2luc3BlY3Rv
clN0eWxlczsKICAgICBtdXRhYmxlIFZlY3RvcjxDU1NTdHlsZVJ1bGUqPiBtX2ZsYXRSdWxlczsK
KyAgICBMaXN0ZW5lciogbV9saXN0ZW5lcjsKIH07CiAKIGNsYXNzIEluc3BlY3RvclN0eWxlU2hl
ZXRGb3JJbmxpbmVTdHlsZSA6IHB1YmxpYyBJbnNwZWN0b3JTdHlsZVNoZWV0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVmUHRyPEVsZW1lbnQ+LCBjb25zdCBTdHJp
bmcmIG9yaWdpbik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldEZv
cklubGluZVN0eWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxFbGVtZW50
PiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIExpc3RlbmVyKik7CiAKICAgICB2b2lkIGRpZE1vZGlm
eUVsZW1lbnRBdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VGV4dChTdHJpbmcqIHJl
c3VsdCkgY29uc3Q7CiAgICAgdmlydHVhbCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZUZvcklk
KGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCkgY29uc3QgeyBBU1NFUlRfVU5VU0VEKGlkLCAhaWQu
b3JkaW5hbCgpKTsgcmV0dXJuIGlubGluZVN0eWxlKCk7IH0KIAogcHJvdGVjdGVkOgotICAgIElu
c3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZShjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVm
UHRyPEVsZW1lbnQ+LCBjb25zdCBTdHJpbmcmIG9yaWdpbik7CisgICAgSW5zcGVjdG9yU3R5bGVT
aGVldEZvcklubGluZVN0eWxlKGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8RWxlbWVudD4s
IGNvbnN0IFN0cmluZyYgb3JpZ2luLCBMaXN0ZW5lciopOwogCiAgICAgdmlydHVhbCBEb2N1bWVu
dCogb3duZXJEb2N1bWVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBydWxlU291cmNlRGF0YUZvcihDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkgY29u
c3QgeyBBU1NFUlRfVU5VU0VEKHN0eWxlLCBzdHlsZSA9PSBpbmxpbmVTdHlsZSgpKTsgcmV0dXJu
IG1fcnVsZVNvdXJjZURhdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCA1MDY4NmJhYzRmMjdhNDdlYTRlZGMwMGVi
Y2Q1NGE1MDhjYWU3ZTI0Li5hZDcxODM1ODNmNjUyYmQxNjcyNjU0MjYwOGYxMDlhNDRjNjkxMGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxl
TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHls
ZU1vZGVsLmpzCkBAIC0zNCw2ICszNCw5IEBACiAgKi8KIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsID0gZnVuY3Rpb24oKQogeworICAgIHRoaXMuX3BlbmRpbmdDb21tYW5kcyA9IFtdOworICAg
IFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01B
Z2VudC5FdmVudHMuVW5kb1JlcXVlc3RlZCwgdGhpcy5fdW5kb1JlcXVlc3RlZCwgdGhpcyk7Cisg
ICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRP
TUFnZW50LkV2ZW50cy5VbmRvQ29tcGxldGVkLCB0aGlzLl91bmRvQ29tcGxldGVkLCB0aGlzKTsK
ICAgICBuZXcgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcodGhpcyk7
CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNTU0Rpc3BhdGNoZXIobmV3IFdlYkluc3Bl
Y3Rvci5DU1NEaXNwYXRjaGVyKHRoaXMpKTsKICAgICBDU1NBZ2VudC5lbmFibGUoKTsKQEAgLTE3
Miw3ICsxNzUsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB2YXIgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSA9IChzZWxlY3RlZE5vZGVJZHMu
aW5kZXhPZihub2RlSWQpID49IDApOwogICAgICAgICAgICAgdmFyIHJ1bGUgPSBXZWJJbnNwZWN0
b3IuQ1NTUnVsZS5wYXJzZVBheWxvYWQocnVsZVBheWxvYWQpOwogICAgICAgICAgICAgc3VjY2Vz
c0NhbGxiYWNrKHJ1bGUsIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUpOwotICAgICAgICAgICAgdGhp
cy5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHJ1bGUuaWQuc3R5bGVTaGVldElkLCB0cnVlKTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8qKgpAQCAtMTg1LDYgKzE4Nyw3IEBAIFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICovCiAgICAgICAgIGZ1bmN0aW9u
IGNhbGxiYWNrKG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2ssIG5ld1Nl
bGVjdG9yLCBlcnJvciwgcnVsZVBheWxvYWQpCiAgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMu
X3BlbmRpbmdDb21tYW5kcy5wb3AoKTsKICAgICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAg
ICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKICAgICAgICAgICAgIGVsc2UgewpAQCAtMTk2LDYg
KzE5OSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX3BlbmRpbmdDb21tYW5kcy5wdXNo
KFsiQ1NTQWdlbnQuc2V0UnVsZVNlbGVjdG9yIiwgdHJ1ZV0pOwogICAgICAgICBDU1NBZ2VudC5z
ZXRSdWxlU2VsZWN0b3IocnVsZUlkLCBuZXdTZWxlY3RvciwgY2FsbGJhY2suYmluZCh0aGlzLCBu
b2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBuZXdTZWxlY3RvcikpOwog
ICAgIH0sCiAKQEAgLTIxNSw3ICsyMTksNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSA9IChz
ZWxlY3RlZE5vZGVJZHMuaW5kZXhPZihub2RlSWQpID49IDApOwogICAgICAgICAgICAgdmFyIHJ1
bGUgPSBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wYXJzZVBheWxvYWQocnVsZVBheWxvYWQpOwogICAg
ICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKHJ1bGUsIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUpOwot
ICAgICAgICAgICAgdGhpcy5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHJ1bGUuaWQuc3R5bGVTaGVl
dElkLCB0cnVlKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qKgpAQCAtMjI3LDYgKzIzMCw3IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICovCiAg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNr
LCBzZWxlY3RvciwgZXJyb3IsIHJ1bGVQYXlsb2FkKQogICAgICAgICB7CisgICAgICAgICAgICB0
aGlzLl9wZW5kaW5nQ29tbWFuZHMucG9wKCk7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAg
ICAgICAgICAgICAgICAvLyBJbnZhbGlkIHN5bnRheCBmb3IgYSBzZWxlY3RvcgogICAgICAgICAg
ICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwpAQCAtMjM5LDYgKzI0Myw3IEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CisgICAgICAgIHRoaXMuX3BlbmRpbmdDb21tYW5kcy5wdXNoKFsiQ1NTQWdlbnQuYWRkUnVsZSIs
IHRydWVdKTsKICAgICAgICAgQ1NTQWdlbnQuYWRkUnVsZShub2RlSWQsIHNlbGVjdG9yLCBjYWxs
YmFjay5iaW5kKHRoaXMsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBzZWxlY3Rv
cikpOwogICAgIH0sCiAKQEAgLTI1NSwzNiArMjYwLDQ4IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudCA/
IG5vZGUub3duZXJEb2N1bWVudC5pZCA6IG51bGw7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7ZnVuY3Rpb24oKT19IGNhbGxiYWNrCi0gICAgICovCi0gICAgX2ZpcmVTdHlsZVNo
ZWV0Q2hhbmdlZDogZnVuY3Rpb24oc3R5bGVTaGVldElkLCBtYWpvckNoYW5nZSwgY2FsbGJhY2sp
CisgICAgX2ZpcmVTdHlsZVNoZWV0Q2hhbmdlZDogZnVuY3Rpb24oc3R5bGVTaGVldElkKQogICAg
IHsKLSAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbigpIHt9OworICAgICAg
ICBpZiAoIXRoaXMuX3BlbmRpbmdDb21tYW5kcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgaWYgKCFtYWpvckNoYW5nZSB8fCAhc3R5bGVTaGVldElkIHx8ICF0aGlzLmhh
c0V2ZW50TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5TdHlsZVNo
ZWV0Q2hhbmdlZCkpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIHZhciBjdXJy
ZW50Q29tbWFuZCA9IHRoaXMuX3BlbmRpbmdDb21tYW5kc1t0aGlzLl9wZW5kaW5nQ29tbWFuZHMu
bGVuZ3RoIC0gMV07CisgICAgICAgIHZhciBtYWpvckNoYW5nZSA9IGN1cnJlbnRDb21tYW5kWzFd
OworICAgICAgICAKKyAgICAgICAgaWYgKCFtYWpvckNoYW5nZSB8fCAhc3R5bGVTaGVldElkIHx8
ICF0aGlzLmhhc0V2ZW50TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50
cy5TdHlsZVNoZWV0Q2hhbmdlZCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KIAot
ICAgICAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVycm9yLCBjb250ZW50KQorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhlcnJvciwgY29udGVudCkKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KCFlcnJvcikKICAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVldENoYW5nZWQsIHsgc3R5
bGVTaGVldElkOiBzdHlsZVNoZWV0SWQsIGNvbnRlbnQ6IGNvbnRlbnQsIG1ham9yQ2hhbmdlOiBt
YWpvckNoYW5nZSB9KTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBDU1NBZ2VudC5nZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIG15Y2FsbGJhY2su
YmluZCh0aGlzKSk7CisgICAgICAgIENTU0FnZW50LmdldFN0eWxlU2hlZXRUZXh0KHN0eWxlU2hl
ZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHNldFN0eWxlU2hlZXRU
ZXh0OiBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIG5ld1RleHQsIG1ham9yQ2hhbmdlLCB1c2VyQ2Fs
bGJhY2spCiAgICAgewogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvcikKICAgICAgICAg
ewotICAgICAgICAgICAgIGlmICghZXJyb3IpCi0gICAgICAgICAgICAgICAgIHRoaXMuX2ZpcmVT
dHlsZVNoZWV0Q2hhbmdlZChzdHlsZVNoZWV0SWQsIG1ham9yQ2hhbmdlLCB1c2VyQ2FsbGJhY2sg
PyB1c2VyQ2FsbGJhY2suYmluZCh0aGlzLCBlcnJvcikgOiBudWxsKTsKKyAgICAgICAgICAgIHRo
aXMuX3BlbmRpbmdDb21tYW5kcy5wb3AoKTsKKyAgICAgICAgICAgIGlmICghZXJyb3IgJiYgdXNl
ckNhbGxiYWNrKQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhlcnJvcik7CiAgICAgICAg
IH0KKyAgICAgICAgdGhpcy5fcGVuZGluZ0NvbW1hbmRzLnB1c2goWyJDU1NBZ2VudC5zZXRTdHls
ZVNoZWV0VGV4dCIsIG1ham9yQ2hhbmdlXSk7CiAgICAgICAgIENTU0FnZW50LnNldFN0eWxlU2hl
ZXRUZXh0KHN0eWxlU2hlZXRJZCwgbmV3VGV4dCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAg
ICAgIGlmIChtYWpvckNoYW5nZSkKKyAgICAgICAgICAgIERPTUFnZW50Lm1hcmtVbmRvYWJsZVN0
YXRlKCk7CisgICAgfSwKKworICAgIF91bmRvUmVxdWVzdGVkOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICB0aGlzLl9wZW5kaW5nQ29tbWFuZHMucHVzaChbIkRPTUFnZW50LnVuZG8iLCB0cnVl
XSk7CisgICAgfSwKKworICAgIF91bmRvQ29tcGxldGVkOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB0aGlzLl9wZW5kaW5nQ29tbWFuZHMucG9wKCk7CiAgICAgfQogfQogCkBAIC00NjgsNiAr
NDg1LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBlcnJvciwgcGF5
bG9hZCkKICAgICAgICAgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9wZW5k
aW5nQ29tbWFuZHMucG9wKCk7CiAgICAgICAgICAgICBpZiAoIXVzZXJDYWxsYmFjaykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTQ3NiwxMCArNDk0LDEwIEBAIFdlYkluc3BlY3Rvci5D
U1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB1c2VyQ2Fs
bGJhY2sobnVsbCk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHVzZXJD
YWxsYmFjayhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQocGF5
bG9hZCkpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5fZmlyZVN0eWxl
U2hlZXRDaGFuZ2VkKHRoaXMuaWQuc3R5bGVTaGVldElkLCB0cnVlKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCisgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5fcGVuZGluZ0NvbW1h
bmRzLnB1c2goWyJDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQiLCB0cnVlXSk7CiAgICAgICAgIENT
U0FnZW50LnNldFByb3BlcnR5VGV4dCh0aGlzLmlkLCBpbmRleCwgbmFtZSArICI6ICIgKyB2YWx1
ZSArICI7IiwgZmFsc2UsIGNhbGxiYWNrLmJpbmQodGhpcywgdXNlckNhbGxiYWNrKSk7CiAgICAg
fSwKIApAQCAtNjA0LDE0ICs2MjIsMTMgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGVuYWJsZWRDYWxsYmFjayhzdHlsZSkK
ICAgICAgICAgewotICAgICAgICAgICAgaWYgKHN0eWxlKQotICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5jc3NNb2RlbC5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlLmlkLnN0eWxlU2hl
ZXRJZCwgbWFqb3JDaGFuZ2UsIHVzZXJDYWxsYmFjayA/IHVzZXJDYWxsYmFjay5iaW5kKG51bGws
IHN0eWxlKSA6IG51bGwpOwotICAgICAgICAgICAgZWxzZSBpZiAodXNlckNhbGxiYWNrKQorICAg
ICAgICAgICAgaWYgKHVzZXJDYWxsYmFjaykKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
c3R5bGUpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0
eWxlUGF5bG9hZCkKICAgICAgICAgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVs
Ll9wZW5kaW5nQ29tbWFuZHMucG9wKCk7CiAgICAgICAgICAgICBpZiAoIWVycm9yKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy50ZXh0ID0gcHJvcGVydHlUZXh0OwogICAgICAgICAgICAgICAgIHZh
ciBzdHlsZSA9IFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5bG9hZChz
dHlsZVBheWxvYWQpOwpAQCAtNjIyLDcgKzYzOSw4IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuX2ZpcmVTdHls
ZVNoZWV0Q2hhbmdlZChzdHlsZS5pZC5zdHlsZVNoZWV0SWQsIG1ham9yQ2hhbmdlLCB1c2VyQ2Fs
bGJhY2sgPyB1c2VyQ2FsbGJhY2suYmluZChudWxsLCBzdHlsZSkgOiBudWxsKTsKKyAgICAgICAg
ICAgICAgICBpZiAodXNlckNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJh
Y2soc3R5bGUpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAodXNl
ckNhbGxiYWNrKQogICAgICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CkBAIC02
MzMsNiArNjUxLDcgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHRocm93ICJObyBvd25lclN0eWxlIGZvciBwcm9wZXJ0eSI7CiAKICAgICAgICAg
Ly8gQW4gaW5kZXggcGFzdCBhbGwgdGhlIHByb3BlcnRpZXMgYWRkcyBhIG5ldyBwcm9wZXJ0eSB0
byB0aGUgc3R5bGUuCisgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5fcGVuZGluZ0NvbW1h
bmRzLnB1c2goWyJDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQiLCBtYWpvckNoYW5nZV0pOwogICAg
ICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQodGhpcy5vd25lclN0eWxlLmlkLCB0aGlzLmlu
ZGV4LCBwcm9wZXJ0eVRleHQsIHRoaXMuaW5kZXggPCB0aGlzLm93bmVyU3R5bGUucGFzdExhc3RT
b3VyY2VQcm9wZXJ0eUluZGV4KCksIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICBpZiAo
bWFqb3JDaGFuZ2UpCiAgICAgICAgICAgICBET01BZ2VudC5tYXJrVW5kb2FibGVTdGF0ZSgpOwpA
QCAtNjUzLDYgKzY3Miw3IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0eWxlUGF5bG9hZCkKICAgICAg
ICAgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9wZW5kaW5nQ29tbWFuZHMu
cG9wKCk7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICBpZiAodXNl
ckNhbGxiYWNrKQogICAgICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CkBAIC02
NjIsOSArNjgyLDkgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
bi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKTsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJh
Y2soc3R5bGUpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLl9maXJlU3R5bGVTaGVldENoYW5nZWQodGhpcy5vd25lclN0eWxlLmlkLnN0eWxlU2hlZXRJ
ZCwgZmFsc2UpOwogICAgICAgICB9CiAKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9w
ZW5kaW5nQ29tbWFuZHMucHVzaChbIkNTU0FnZW50LnRvZ2dsZVByb3BlcnR5IiwgZmFsc2VdKTsK
ICAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkodGhpcy5vd25lclN0eWxlLmlkLCB0aGlz
LmluZGV4LCBkaXNhYmxlZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQogfQpAQCAtNzQx
LDEyICs3NjEsMTIgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgICBpZiAodXNlckNhbGxiYWNrKQotICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
ZXJyb3IpOwotICAgICAgICAgICAgIGlmICghZXJyb3IpCi0gICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5jc3NNb2RlbC5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHRoaXMuaWQsIG1ham9yQ2hh
bmdlKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5fcGVuZGluZ0NvbW1hbmRz
LnBvcCgpOworICAgICAgICAgICAgaWYgKHVzZXJDYWxsYmFjaykKKyAgICAgICAgICAgICAgICB1
c2VyQ2FsbGJhY2soZXJyb3IpOwogICAgICAgICB9CiAKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNz
c01vZGVsLl9wZW5kaW5nQ29tbWFuZHMucHVzaChbIkNTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0
IiwgbWFqb3JDaGFuZ2VdKTsKICAgICAgICAgQ1NTQWdlbnQuc2V0U3R5bGVTaGVldFRleHQodGhp
cy5pZCwgbmV3VGV4dCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQogfQpAQCAtODY0LDYg
Kzg4NCwxMSBAQCBXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAg
bWVkaWFRdWVyeVJlc3VsdENoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMu
X2Nzc01vZGVsLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCk7CisgICAgfSwKKworICAgIHN0eWxl
U2hlZXRDaGFuZ2VkOiBmdW5jdGlvbihzdHlsZVNoZWV0SWQpCisgICAgeworICAgICAgICB0aGlz
Ll9jc3NNb2RlbC5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlU2hlZXRJZCk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFn
ZW50LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpp
bmRleCBjMTdmMjAzOTQ0ZmUyYTkyZjI5YTBmZWU5OWFmYjIzNjUyYzE4MTc3Li4yZmIwMTM2OTMw
Y2RjYmEwYTgyNzVkNGVlMDBkMGIyYzQ3OWJhYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTY3Nyw3ICs2NzcsOSBAQCBXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQuRXZlbnRzID0gewogICAgIERvY3VtZW50VXBkYXRlZDogIkRvY3VtZW50
VXBkYXRlZCIsCiAgICAgQ2hpbGROb2RlQ291bnRVcGRhdGVkOiAiQ2hpbGROb2RlQ291bnRVcGRh
dGVkIiwKICAgICBJbnNwZWN0RWxlbWVudFJlcXVlc3RlZDogIkluc3BlY3RFbGVtZW50UmVxdWVz
dGVkIiwKLSAgICBTdHlsZUludmFsaWRhdGVkOiAiU3R5bGVJbnZhbGlkYXRlZCIKKyAgICBTdHls
ZUludmFsaWRhdGVkOiAiU3R5bGVJbnZhbGlkYXRlZCIsCisgICAgVW5kb1JlcXVlc3RlZDogIlVu
ZG9SZXF1ZXN0ZWQiLAorICAgIFVuZG9Db21wbGV0ZWQ6ICJVbmRvQ29tcGxldGVkIgogfQogCiBX
ZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewpAQCAtMTE1OSw2ICsxMTYxLDIxIEBA
IFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgX2VtdWxhdGVUb3VjaEV2
ZW50c0NoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIERPTUFnZW50LnNldFRvdWNo
RW11bGF0aW9uRW5hYmxlZChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZVRvdWNoRXZlbnRz
LmdldCgpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/UHJv
dG9jb2wuRXJyb3IpPX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICB1bmRvOiBmdW5jdGlvbihjYWxs
YmFjaykKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuVW5kb0NvbXBsZXRlZCk7CisgICAgICAgICAgICBjYWxsYmFjayhl
cnJvcik7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLlVuZG9SZXF1ZXN0ZWQpOworICAgICAgICBE
T01BZ2VudC51bmRvKGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCAzNTg1ZTMyYWU5
ZTM2YjJkYzA5OGYxMTE1ZDg4OGEzMTc4N2FkZTMzLi4yOTZhNGZhY2JlMmMzZGRjNGE3NTUyZjU3
NmM1OTk0ZjljMjA5NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC05MjgsNyArOTI4LDcgQEAgV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgaWYgKFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LmV2ZW50SGFzQ3RybE9yTWV0YShldmVudCkgJiYg
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDA1QSIpIHsgLy8gWiBrZXkKLSAgICAgICAgICAg
IERPTUFnZW50LnVuZG8odGhpcy5fdXBkYXRlU2lkZWJhcnMuYmluZCh0aGlzKSk7CisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQudW5kbyh0aGlzLl91cGRhdGVTaWRlYmFycy5iaW5k
KHRoaXMpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTFmOWY2
M2E3ZTQ1ZDg0YzhhMTg1MDMyMjFmYjlmNDkwMzQxNzU5Mi4uZjNkOGQ0NWY2NmZmOTkyMmJiZGY2
OGIyMDQ1MmZiNjM2NWIxYjdlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEyLTAyLTEzICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBmaXJlIHN0eWxlc2hlZXQgY2hhbmdlZCBldmVudCB1cG9uIENTUyBtb2RpZmljYXRpb25z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0Vs
ZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QuZ2VuZXJhdGVVbmRvVGVzdCk6CisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX1NldE91dGVySFRNTFRlc3QuSW5zcGVjdG9yVGVzdC5yZWNvcmRFdmVudCk6CisgICAgICAg
IChpbml0aWFsaXplX1NldE91dGVySFRNTFRlc3QuSW5zcGVjdG9yVGVzdC5zZXRPdXRlckhUTUxV
c2VVbmRvLmJyaW5nQmFjayk6CisgICAgICAgIChpbml0aWFsaXplX1NldE91dGVySFRNTFRlc3Qu
SW5zcGVjdG9yVGVzdC5zZXRPdXRlckhUTUxVc2VVbmRvKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91
bmRvLWFkZC1uZXctcnVsZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdW5kby1h
ZGQtcHJvcGVydHkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8tY2hhbmdl
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91bmRvLXByb3BlcnR5
LXRvZ2dsZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdW5kby1zZXQtc2VsZWN0
b3ItdGV4dC5odG1sOgorCisyMDEyLTAyLTEzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29v
Z2xlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiB3cmFwIHNldHRpbmdzIHNlbGVjdG9y
IHRleHQgYW5kIGFkZGluZyBhIHJ1bGUgd2l0aCB1bmRvYWJsZSBhY3Rpb25zLgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0ODIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggZGVk
ZmFlOWVmNjMyODk5MTc0MDgzMTY4N2U1ZThhNWJmMDU4OGM5My4uMzEyZWY3N2RhMWQ3MTU3MjUx
NzczMDczZDFjOWFkODhhMzc5NWNkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCkBAIC00MTAsNyArNDEwLDcgQEAgSW5zcGVjdG9y
VGVzdC5nZW5lcmF0ZVVuZG9UZXN0ID0gZnVuY3Rpb24odGVzdEJvZHkpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQb3N0LWFjdGlvbjoiKTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0ZXN0Tm9kZSk7Ci0gICAgICAg
ICAgICBET01BZ2VudC51bmRvKHN0ZXAyKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC51bmRvKHN0ZXAyKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRt
bC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1s
LXRlc3QuanMKaW5kZXggMjJjMzc1Y2RhNDNmNGE3M2NiYTk5MzAwZTk1ODExYThiYWM4YWQ4MS4u
MGYzMWYxMWI1MWZjNWI5YjQ3MGE5ODk1NGJiYzk0Y2ZlMmNkYzZlYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLXRlc3QuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLXRlc3QuanMKQEAg
LTMzLDYgKzMzLDggQEAgSW5zcGVjdG9yVGVzdC5zZXRVcFRlc3RTdWl0ZSA9IGZ1bmN0aW9uKG5l
eHQpCiAKIEluc3BlY3RvclRlc3QucmVjb3JkRXZlbnQgPSBmdW5jdGlvbihldmVudE5hbWUsIGV2
ZW50KQogeworICAgIGlmICghZXZlbnQuZGF0YSkKKyAgICAgICAgcmV0dXJuOwogICAgIHZhciBu
b2RlID0gZXZlbnQuZGF0YS5ub2RlIHx8IGV2ZW50LmRhdGE7CiAgICAgdmFyIHBhcmVudCA9IGV2
ZW50LmRhdGEucGFyZW50OwogICAgIGZvciAodmFyIGN1cnJlbnROb2RlID0gcGFyZW50IHx8IG5v
ZGU7IGN1cnJlbnROb2RlOyBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGUpIHsK
QEAgLTcyLDcgKzc0LDcgQEAgSW5zcGVjdG9yVGVzdC5zZXRPdXRlckhUTUxVc2VVbmRvID0gZnVu
Y3Rpb24obmV3VGV4dCwgbmV4dCkKICAgICBmdW5jdGlvbiBicmluZ0JhY2soKQogICAgIHsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuQnJpbmdpbmcgdGhpbmdzIGJhY2tcbiIp
OwotICAgICAgICBET01BZ2VudC51bmRvKEluc3BlY3RvclRlc3QuX2R1bXBPdXRlckhUTUwuYmlu
ZChJbnNwZWN0b3JUZXN0LCB0cnVlLCBuZXh0KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC51bmRvKEluc3BlY3RvclRlc3QuX2R1bXBPdXRlckhUTUwuYmluZChJbnNwZWN0b3JUZXN0
LCB0cnVlLCBuZXh0KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwKaW5kZXggYmVmZGM0ODdmZWRmNGUyYzVmNGFhMDA3
ZDU3YjE5OGYwZTlhMDRmZC4uMWFmN2ExNTIzM2UxMGEwNTQ4YzM1ZDQ1MGFkZmMzMmI2MmViZGIw
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9y
eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3Rvcnku
aHRtbApAQCAtMTAsNiArMTAsNyBAQAogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKKyAgICB2YXIgcGVu
ZGluZ0NhbGxiYWNrcyA9IFtdOwogICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJDYWNoZWRSZXNv
dXJjZXNQcm9jZXNzZWQocnVuVGVzdFN1aXRlKTsKIAogICAgIHZhciBzdHlsZVJlc291cmNlOwpA
QCAtMjUsNiArMjYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc291cmNlLnVybC5pbmRleE9mKCJzdHlsZXMtaGlzdG9yeS5jc3MiKSA9PT0gLTEpCiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIHN0eWxlUmVz
b3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVSZXNvdXJjZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5FdmVudHMuUmV2aXNpb25BZGRlZCwg
ZHVtcEhpc3RvcnkpOwogICAgICAgICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mb3JB
bGxSZXNvdXJjZXModmlzaXRSZXNvdXJjZSk7CkBAIC0zNSwxOSArMzcsMTUgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgZHVtcEhpc3RvcnkoKTsKLSAgICAgICAgICAgICAg
ICAgICAgbmV4dCgpOworICAgICAgICAgICAgICAgICAgICBuZXh0KCk7ICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzdHlsZVJlc291cmNlLnNldENv
bnRlbnQoImJvZHkge1xuICBtYXJnaW46IDE1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59IiwgZmFs
c2UsIGNhbGxiYWNrKTsKICAgICAgICAgICAgIH0sCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRl
c3RTZXRSZXNvdXJjZUNvbnRlbnRNYWpvcihuZXh0KQogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIGR1bXBIaXN0b3J5KCk7Ci0gICAgICAgICAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3R5bGVSZXNvdXJjZS5zZXRDb250ZW50
KCJib2R5IHtcbiAgbWFyZ2luOiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufSIsIHRydWUsIGNh
bGxiYWNrKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yUmV2aXNpb24obmV4dCk7CisgICAgICAg
ICAgICAgICAgc3R5bGVSZXNvdXJjZS5zZXRDb250ZW50KCJib2R5IHtcbiAgbWFyZ2luOiAyMHB4
O1xuICBwYWRkaW5nOiAxMHB4O1xufSIsIHRydWUpOwogICAgICAgICAgICAgfSwKIAogICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldENvbnRlbnRWaWFNb2RlbE1pbm9yKG5leHQpCkBAIC02MSwx
MiArNTksMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5
LnNldFRleHQoIm1hcmdpbjoyNXB4OyIsIGZhbHNlLCBzdGVwMik7CiAgICAgICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCisgICAgICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDIoKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgZHVtcEhpc3RvcnkoKTsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAg
ICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKKwogICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldENvbnRlbnRWaWFNb2RlbE1ham9yKG5leHQpCiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldEZvclJlc291cmNlKHN0ZXAxKTsKQEAg
LTc1LDE0ICs3NCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZTsKICAg
ICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KCJt
YXJnaW4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkuc2V0VGV4dCgibWFyZ2luOjMw
cHg7IiwgdHJ1ZSwgc3RlcDIpOworICAgICAgICAgICAgICAgICAgICB3YWl0Rm9yUmV2aXNpb24o
bmV4dCk7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnNldFRleHQoIm1hcmdpbjozMHB4
OyIsIHRydWUpOwogICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAyKGVycm9yKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgZHVt
cEhpc3RvcnkoKTsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgICAg
IH0gICAgICAgICAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAgICAgIF0pOwogICAgIH0KQEAg
LTExNiw2ICsxMTAsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc3R5bGVSZXNvdXJjZS5oaXN0b3J5Lmxlbmd0aDsgKytpKQogICAgICAgICAgICAgc3R5
bGVSZXNvdXJjZS5oaXN0b3J5W2ldLnJlcXVlc3RDb250ZW50KGR1bXBSZXZpc2lvbi5iaW5kKHRo
aXMsIGkpKTsKICAgICAgICAgc3R5bGVSZXNvdXJjZS5yZXF1ZXN0Q29udGVudChkdW1wUmV2aXNp
b24uYmluZCh0aGlzLCAiPHRpcD4iKSk7CisKKyAgICAgICAgdmFyIGNvcHkgPSBwZW5kaW5nQ2Fs
bGJhY2tzLnNsaWNlKCk7CisgICAgICAgIHBlbmRpbmdDYWxsYmFja3MgPSBbXTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjb3B5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgY29weVtp
XSgpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGR1bXBSZXZpc2lvbihpbmRleCwgY29udGVudCkK
QEAgLTEyMyw2ICsxMjIsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJJdGVtICIgKyBpbmRleCArICI6Iik7CiAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KGNvbnRlbnQpOwogICAgIH0KKworICAgIGZ1bmN0aW9uIHdhaXRGb3JSZXZp
c2lvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHBlbmRpbmdDYWxsYmFja3MucHVzaChjYWxs
YmFjayk7CisgICAgfQogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtbmV3LXJ1bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvdW5kby1hZGQtbmV3LXJ1bGUuaHRtbAppbmRleCA4Nzc4NDYxYzgzNTM0MTE0
MDYyNjc4ZmI4MzFkNzE4MDAyYjNlZTI3Li4wNzQ0NTY4NDdjNGQzNzMzYzQ5YmViYzg1ODdhYTRi
NTRlMzlhZTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8t
YWRkLW5ldy1ydWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRv
LWFkZC1uZXctcnVsZS5odG1sCkBAIC0zMCw3ICszMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAg
ICAgZnVuY3Rpb24gc3RlcDQoKQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQudW5kbygpOworICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQudW5kbygpOwogICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJvdGhlciIsIHN0ZXA1KTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHku
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHkuaHRt
bAppbmRleCBmOWJlYjU5N2JiZTRhYmViMTUzMWQ2NzIzMTY4OTlhNTBlNWY1ZDc5Li4zMjAwYTc0
NmVhYjg3YTQ2MDQ0Njc4M2JlNTNhZTNlZWYxYmE0NTc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS5odG1sCkBAIC0zNCw3ICszNCw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkFmdGVyIGFkZGluZyBwcm9wZXJ0eSIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
ZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIERPTUFnZW50LnVuZG8oc3RlcDMp
OworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQudW5kbyhzdGVwMyk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gc3RlcDMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy91bmRvLWNoYW5nZS1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy91bmRvLWNoYW5nZS1wcm9wZXJ0eS5odG1sCmluZGV4IDIzODI3MmZkYjhhMWUwM2I2ZDEw
MjA1YjliMDViYzllYjIwYzM4NTIuLjc0ZDRiZGIzMzMzNTM2YjdkZGFiOGJhM2JiYzZmOTgzYWVj
MDE0N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1jaGFu
Z2UtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8t
Y2hhbmdlLXByb3BlcnR5Lmh0bWwKQEAgLTI5LDcgKzI5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgY2hhbmdpbmcgcHJv
cGVydHkiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVz
KHRydWUpOwotICAgICAgICBET01BZ2VudC51bmRvKHN0ZXAzKTsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLmRvbUFnZW50LnVuZG8oc3RlcDMpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAzKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1wcm9wZXJ0eS10
b2dnbGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1wcm9wZXJ0eS10
b2dnbGUuaHRtbAppbmRleCBjYTJjZjAzNGVkNzlmNjI3MWQxMzhjMjEzYTA5MjBkYzkyZjk2OTQ1
Li44NmNmNzYxODY4OWY5MmRlMDdkMDJjZDUxMGU0ZTJkMzQ5MmMwNDhlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tcHJvcGVydHktdG9nZ2xlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLXByb3BlcnR5LXRvZ2dsZS5odG1s
CkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB2YXIgdHJlZUl0ZW0g
PSBJbnNwZWN0b3JUZXN0LmdldEVsZW1lbnRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQtd2Vp
Z2h0Iik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFN0eWxlVHJlZUl0ZW0odHJlZUl0ZW0s
ICIiKTsKIAotICAgICAgICBET01BZ2VudC51bmRvKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC51bmRvKCk7CiAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29u
dGFpbmVyIiwgc3RlcDMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy91bmRvLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3VuZG8tc2V0LXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBiZTVhNWQ0YjUw
MDgxYzRhOTFlZDRhZjkwOWIzNzVmYzhlMTBkMDg5Li44MzRjZmQzYTU5ZDBiMTdlMDIxMDE4NjIy
Mzc0ZjgzN2VmYTI4MTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3VuZG8tc2V0LXNlbGVjdG9yLXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3VuZG8tc2V0LXNlbGVjdG9yLXRleHQuaHRtbApAQCAtMjksNyArMjksNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0g
QWZ0ZXIgc2VsZWN0b3IgbW9kaWZpY2F0aW9uID09PSIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIERPTUFnZW50LnVuZG8o
KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDMpOwog
ICAgIH0KIAo=
</data>
<flag name="review"
          id="128688"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>