<?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>79662</bug_id>
          
          <creation_ts>2012-02-27 05:06:01 -0800</creation_ts>
          <short_desc>Web Inspector: [Styles] Allow adding CSS properties anywhere in the style declaration, not only at the end</short_desc>
          <delta_ts>2012-02-27 08:37:11 -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>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</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>565584</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-27 05:06:01 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565592</commentid>
    <comment_count>1</comment_count>
      <attachid>129019</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-27 05:28:26 -0800</bug_when>
    <thetext>Created attachment 129019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565617</commentid>
    <comment_count>2</comment_count>
      <attachid>129019</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-27 06:40:17 -0800</bug_when>
    <thetext>Comment on attachment 129019
Patch

Please add the test. It should also cover undo / redo for the corresponding operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565671</commentid>
    <comment_count>3</comment_count>
      <attachid>129042</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-27 08:29:11 -0800</bug_when>
    <thetext>Created attachment 129042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565676</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-27 08:37:11 -0800</bug_when>
    <thetext>Committed r108995: &lt;http://trac.webkit.org/changeset/108995&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129019</attachid>
            <date>2012-02-27 05:28:26 -0800</date>
            <delta_ts>2012-02-27 08:29:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79662-20120227172824.patch</filename>
            <type>text/plain</type>
            <size>17479</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUyOTQ0MTc2NzI3ODgw
NjE2MmNjMGFlZDVhMTE2Mjk3YjQwYTI2Yi4uM2I4MWZlNTdhNTMzNTQ5NTc4MWY2ZDRkZmJhNDc2
M2Y2YmZhZmNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTI3ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW1N0eWxlc10gQWxsb3cgYWRkaW5nIENTUyBwcm9wZXJ0aWVzIGFueXdoZXJlIGluIHRo
ZSBzdHlsZSBkZWNsYXJhdGlvbiwgbm90IG9ubHkgYXQgdGhlIGVuZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2NjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
LnByb3RvdHlwZS5uZXdCbGFua1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQ
cm9wZXJ0eS5wcm90b3R5cGUuc2V0VGV4dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkucHJvdG90eXBlLnNldFZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L01ldHJpY3NTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZXRyaWNzU2lk
ZWJhclBhbmUucHJvdG90eXBlLl9hcHBseVVzZXJJbnB1dCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
dHlsZVByb3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnRpZXNTZWN0aW9uLnByb3RvdHlwZS5faGFuZGxlU2VsZWN0b3JDb250YWluZXJDbGljayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuYWRk
TmV3QmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRy
ZWVFbGVtZW50LnByb3RvdHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50LnByb3RvdHlwZS5lbGVtZW50LnVzZXJJbnB1dC5wcmV2aW91c0NvbnRlbnQu
Y29udGV4dC5tb3ZlRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLnN0eWxlVGV4dC51cGRhdGVJbnRlcmZhY2UubWFqb3JD
aGFuZ2UuaXNSZXZlcnQpOgorCiAyMDEyLTAyLTI3ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFy
bmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBwYWdlL1BhZ2VTdXBw
bGVtZW50LmggZnJvbSBXZWJDb3JlJ3MgVGFyZ2V0LnByaQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IGVjZGJmZDMwODQ4
YjNiNjcwYTIyODViY2FlYzY2NWFmMGFhMDBmNTIuLjNhMWUzODk4MzMyYjBkZWFiYmFjNTA4MDgz
ZDQzNmJmNjlkNGYxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTQ3OCw5ICs0NzgsMTMgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gMDsKICAg
ICB9LAogCi0gICAgbmV3QmxhbmtQcm9wZXJ0eTogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAq
IEBwYXJhbSB7bnVtYmVyPX0gaW5kZXgKKyAgICAgKi8KKyAgICBuZXdCbGFua1Byb3BlcnR5OiBm
dW5jdGlvbihpbmRleCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNT
U1Byb3BlcnR5KHRoaXMsIHRoaXMucGFzdExhc3RTb3VyY2VQcm9wZXJ0eUluZGV4KCksICIiLCAi
IiwgIiIsICJhY3RpdmUiLCB0cnVlLCBmYWxzZSwgZmFsc2UsICIiKTsKKyAgICAgICAgaW5kZXgg
PSAodHlwZW9mIGluZGV4ID09PSAidW5kZWZpbmVkIikgPyB0aGlzLnBhc3RMYXN0U291cmNlUHJv
cGVydHlJbmRleCgpIDogaW5kZXg7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNT
U1Byb3BlcnR5KHRoaXMsIGluZGV4LCAiIiwgIiIsICIiLCAiYWN0aXZlIiwgdHJ1ZSwgZmFsc2Us
IGZhbHNlLCAiIik7CiAgICAgfSwKIAogICAgIGluc2VydFByb3BlcnR5QXQ6IGZ1bmN0aW9uKGlu
ZGV4LCBuYW1lLCB2YWx1ZSwgdXNlckNhbGxiYWNrKQpAQCAtNjE5LDggKzYyMywxNSBAQCBXZWJJ
bnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5z
dGF0dXMgPT09ICJkaXNhYmxlZCI7CiAgICAgfSwKIAotICAgIC8vIFJlcGxhY2VzICJwcm9wZXJ0
eU5hbWU6IHByb3BlcnR5VmFsdWUgWyFpbXBvcnRhbnRdOyIgaW4gdGhlIHN0eWxlc2hlZXQgYnkg
YW4gYXJiaXRyYXJ5IHByb3BlcnR5VGV4dC4KLSAgICBzZXRUZXh0OiBmdW5jdGlvbihwcm9wZXJ0
eVRleHQsIG1ham9yQ2hhbmdlLCB1c2VyQ2FsbGJhY2spCisgICAgLyoqCisgICAgICogUmVwbGFj
ZXMgInByb3BlcnR5TmFtZTogcHJvcGVydHlWYWx1ZSBbIWltcG9ydGFudF07IiBpbiB0aGUgc3R5
bGVzaGVldCBieSBhbiBhcmJpdHJhcnkgcHJvcGVydHlUZXh0LgorICAgICAqIAorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVRleHQKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9y
Q2hhbmdlCisgICAgICogQHBhcmFtIHtib29sZWFufSBvdmVyd3JpdGUKKyAgICAgKiBAcGFyYW0g
e0Z1bmN0aW9uPX0gdXNlckNhbGxiYWNrCisgICAgICovCisgICAgc2V0VGV4dDogZnVuY3Rpb24o
cHJvcGVydHlUZXh0LCBtYWpvckNoYW5nZSwgb3ZlcndyaXRlLCB1c2VyQ2FsbGJhY2spCiAgICAg
ewogICAgICAgICBmdW5jdGlvbiBlbmFibGVkQ2FsbGJhY2soc3R5bGUpCiAgICAgICAgIHsKQEAg
LTY1NiwxMyArNjY3LDE5IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgLy8gQW4gaW5kZXggcGFzdCBhbGwgdGhlIHByb3BlcnRpZXMgYWRkcyBhIG5l
dyBwcm9wZXJ0eSB0byB0aGUgc3R5bGUuCiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5f
cGVuZGluZ0NvbW1hbmRzTWFqb3JTdGF0ZS5wdXNoKG1ham9yQ2hhbmdlKTsKLSAgICAgICAgQ1NT
QWdlbnQuc2V0UHJvcGVydHlUZXh0KHRoaXMub3duZXJTdHlsZS5pZCwgdGhpcy5pbmRleCwgcHJv
cGVydHlUZXh0LCB0aGlzLmluZGV4IDwgdGhpcy5vd25lclN0eWxlLnBhc3RMYXN0U291cmNlUHJv
cGVydHlJbmRleCgpLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgQ1NTQWdlbnQuc2V0
UHJvcGVydHlUZXh0KHRoaXMub3duZXJTdHlsZS5pZCwgdGhpcy5pbmRleCwgcHJvcGVydHlUZXh0
LCBvdmVyd3JpdGUsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBzZXRWYWx1
ZTogZnVuY3Rpb24obmV3VmFsdWUsIG1ham9yQ2hhbmdlLCB1c2VyQ2FsbGJhY2spCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZhbHVlCisgICAgICogQHBhcmFtIHtib29sZWFu
fSBtYWpvckNoYW5nZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3ZlcndyaXRlCisgICAgICog
QHBhcmFtIHtGdW5jdGlvbj19IHVzZXJDYWxsYmFjaworICAgICAqLworICAgIHNldFZhbHVlOiBm
dW5jdGlvbihuZXdWYWx1ZSwgbWFqb3JDaGFuZ2UsIG92ZXJ3cml0ZSwgdXNlckNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdmFyIHRleHQgPSB0aGlzLm5hbWUgKyAiOiAiICsgbmV3VmFsdWUgKyAo
dGhpcy5wcmlvcml0eSA/ICIgISIgKyB0aGlzLnByaW9yaXR5IDogIiIpICsgIjsiCi0gICAgICAg
IHRoaXMuc2V0VGV4dCh0ZXh0LCBtYWpvckNoYW5nZSwgdXNlckNhbGxiYWNrKTsKKyAgICAgICAg
dGhpcy5zZXRUZXh0KHRleHQsIG1ham9yQ2hhbmdlLCBvdmVyd3JpdGUsIHVzZXJDYWxsYmFjayk7
CiAgICAgfSwKIAogICAgIHNldERpc2FibGVkOiBmdW5jdGlvbihkaXNhYmxlZCwgdXNlckNhbGxi
YWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRy
aWNzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01l
dHJpY3NTaWRlYmFyUGFuZS5qcwppbmRleCA2NDY3MDA0YzU1YjMyYmMxYzNjYjhiYjY5YzY3MDI5
NDlmY2NkYmYyLi41ODViNTdlNjg5NGNiMTRkNDM2OWFlMGMzMGRkOGQwMmNmZDc0NDllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFy
UGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NT
aWRlYmFyUGFuZS5qcwpAQCAtNDQzLDcgKzQ0Myw3IEBAIFdlYkluc3BlY3Rvci5NZXRyaWNzU2lk
ZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgICAgICB0aGlzLnByZXZpb3VzUHJvcGVydHlEYXRhQ2FuZGlkYXRlID0gcHJvcGVydHk7Ci0g
ICAgICAgICAgICBwcm9wZXJ0eS5zZXRWYWx1ZSh1c2VySW5wdXQsIGNvbW1pdEVkaXRvciwgY2Fs
bGJhY2spOworICAgICAgICAgICAgcHJvcGVydHkuc2V0VmFsdWUodXNlcklucHV0LCBjb21taXRF
ZGl0b3IsIHRydWUsIGNhbGxiYWNrKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1Np
ZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNT
aWRlYmFyUGFuZS5qcwppbmRleCBkZDI3M2FlOTk1M2M2OGIxZjVlOWRiYjE1MWQ1ZDNjMjhkOWFm
OGY3Li5jNjI4NjAyMTZkMGU2ZTQ0OWQ5NzE0NGJmYzUxODgxMzA3MjJmNzFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBh
bmUuanMKQEAgLTk2Nyw2ICs5NjcsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2Vj
dGlvbiA9IGZ1bmN0aW9uKHBhcmVudFBhbmUsIHN0eWxlUnVsZSwgZWRpdGFibGUsCiAgICAgdmFy
IG9wZW5CcmFjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICBvcGVuQnJh
Y2UudGV4dENvbnRlbnQgPSAiIHsiOwogICAgIHNlbGVjdG9yQ29udGFpbmVyLmFwcGVuZENoaWxk
KG9wZW5CcmFjZSk7CisgICAgc2VsZWN0b3JDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9oYW5kbGVTZWxlY3RvckNvbnRhaW5lckNsaWNrLmJpbmQodGhpcyksIGZhbHNl
KTsKIAogICAgIHZhciBjbG9zZUJyYWNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CiAgICAgY2xvc2VCcmFjZS50ZXh0Q29udGVudCA9ICJ9IjsKQEAgLTk5Niw2ICs5OTcsNyBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbiA9IGZ1bmN0aW9uKHBhcmVudFBhbmUs
IHN0eWxlUnVsZSwgZWRpdGFibGUsCiAgICAgdGhpcy5fc2VsZWN0b3JSZWZFbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuX2NyZWF0ZVJ1bGVPcmlnaW5Ob2RlKCkpOwogICAgIHNlbGVjdG9yQ29udGFp
bmVyLmluc2VydEJlZm9yZSh0aGlzLl9zZWxlY3RvclJlZkVsZW1lbnQsIHNlbGVjdG9yQ29udGFp
bmVyLmZpcnN0Q2hpbGQpOwogICAgIHRoaXMudGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKHNlbGVj
dG9yQ29udGFpbmVyKTsKKyAgICB0aGlzLl9zZWxlY3RvckNvbnRhaW5lciA9IHNlbGVjdG9yQ29u
dGFpbmVyOwogCiAgICAgaWYgKGlzSW5oZXJpdGVkKQogICAgICAgICB0aGlzLmVsZW1lbnQuYWRk
U3R5bGVDbGFzcygic2hvdy1pbmhlcml0ZWQiKTsgLy8gVGhpcyBvbmUgaXMgcmVsYXRlZCB0byBp
bmhlcml0ZWQgcnVsZXMsIG5vdCBjb21wdGVkIHN0eWxlLgpAQCAtMTE2MiwxNSArMTE2NCwyMiBA
QCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHJldHVybiBudWxsOwogICAgIH0sCiAKKyAgICBfaGFuZGxlU2VsZWN0b3JDb250YWluZXJD
bGljazogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09
PSB0aGlzLl9zZWxlY3RvckNvbnRhaW5lcikKKyAgICAgICAgICAgIHRoaXMuYWRkTmV3QmxhbmtQ
cm9wZXJ0eSgwKS5zdGFydEVkaXRpbmcoKTsKKyAgICB9LAorCiAgICAgLyoqCi0gICAgICogQHBh
cmFtIHtudW1iZXI9fSBvcHRpb25hbEluZGV4CisgICAgICogQHBhcmFtIHtudW1iZXI9fSBpbmRl
eAogICAgICAqLwotICAgIGFkZE5ld0JsYW5rUHJvcGVydHk6IGZ1bmN0aW9uKG9wdGlvbmFsSW5k
ZXgpCisgICAgYWRkTmV3QmxhbmtQcm9wZXJ0eTogZnVuY3Rpb24oaW5kZXgpCiAgICAgewogICAg
ICAgICB2YXIgc3R5bGUgPSB0aGlzLnN0eWxlUnVsZS5zdHlsZTsKLSAgICAgICAgdmFyIHByb3Bl
cnR5ID0gc3R5bGUubmV3QmxhbmtQcm9wZXJ0eSgpOworICAgICAgICB2YXIgcHJvcGVydHkgPSBz
dHlsZS5uZXdCbGFua1Byb3BlcnR5KGluZGV4KTsKICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlzLCB0aGlzLl9wYXJlbnRQYW5l
LCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsK
LSAgICAgICAgdGhpcy5wcm9wZXJ0aWVzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQoaXRlbSk7Cisg
ICAgICAgIGluZGV4ID0gcHJvcGVydHkuaW5kZXg7CisgICAgICAgIHRoaXMucHJvcGVydGllc1Ry
ZWVPdXRsaW5lLmluc2VydENoaWxkKGl0ZW0sIGluZGV4KTsKICAgICAgICAgaXRlbS5saXN0SXRl
bUVsZW1lbnQudGV4dENvbnRlbnQgPSAiIjsKICAgICAgICAgaXRlbS5fbmV3UHJvcGVydHkgPSB0
cnVlOwogICAgICAgICBpdGVtLnVwZGF0ZVRpdGxlKCk7CkBAIC0xOTk0LDkgKzIwMDMsMTUgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAg
ICBfc3RhcnRFZGl0aW5nOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuc3Rh
cnRFZGl0aW5nKGV2ZW50LnRhcmdldCk7CiAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigp
OwogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworCisgICAgICAgIGlmIChldmVudC50
YXJnZXQgPT09IHRoaXMubGlzdEl0ZW1FbGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLnNlY3Rp
b24uYWRkTmV3QmxhbmtQcm9wZXJ0eSh0aGlzLnByb3BlcnR5LmluZGV4ICsgMSkuc3RhcnRFZGl0
aW5nKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnN0
YXJ0RWRpdGluZyhldmVudC50YXJnZXQpOwogICAgIH0sCiAKICAgICBfaXNOYW1lRWxlbWVudDog
ZnVuY3Rpb24oZWxlbWVudCkKQEAgLTIyMzMsNiArMjI0OCwxNiBAQCBXZWJJbnNwZWN0b3IuU3R5
bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAK
KyAgICBfZmluZFNpYmxpbmc6IGZ1bmN0aW9uKG1vdmVEaXJlY3Rpb24pCisgICAgeworICAgICAg
ICB2YXIgdGFyZ2V0ID0gdGhpczsKKyAgICAgICAgZG8geworICAgICAgICAgICAgdGFyZ2V0ID0g
KG1vdmVEaXJlY3Rpb24gPT09ICJmb3J3YXJkIiA/IHRhcmdldC5uZXh0U2libGluZyA6IHRhcmdl
dC5wcmV2aW91c1NpYmxpbmcpOworICAgICAgICB9IHdoaWxlKHRhcmdldCAmJiB0YXJnZXQuaW5o
ZXJpdGVkKTsKKworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0sCisKICAgICBlZGl0aW5n
Q29tbWl0dGVkOiBmdW5jdGlvbihlbGVtZW50LCB1c2VySW5wdXQsIHByZXZpb3VzQ29udGVudCwg
Y29udGV4dCwgbW92ZURpcmVjdGlvbikKICAgICB7CiAgICAgICAgIHRoaXMuX3JlbW92ZVByb21w
dCgpOwpAQCAtMjI0NSwxMCArMjI3MCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbW92ZVRvT3RoZXIgPSAoaXNFZGl0
aW5nTmFtZSBeIChtb3ZlRGlyZWN0aW9uID09PSAiZm9yd2FyZCIpKTsKICAgICAgICAgdmFyIGFi
YW5kb25OZXdQcm9wZXJ0eSA9IHRoaXMuX25ld1Byb3BlcnR5ICYmICF1c2VySW5wdXQgJiYgKG1v
dmVUb090aGVyIHx8IGlzRWRpdGluZ05hbWUpOwogICAgICAgICBpZiAobW92ZURpcmVjdGlvbiA9
PT0gImZvcndhcmQiICYmICFpc0VkaXRpbmdOYW1lIHx8IG1vdmVEaXJlY3Rpb24gPT09ICJiYWNr
d2FyZCIgJiYgaXNFZGl0aW5nTmFtZSkgewotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAg
ICAgIG1vdmVUbyA9IChtb3ZlRGlyZWN0aW9uID09PSAiZm9yd2FyZCIgPyBtb3ZlVG8ubmV4dFNp
YmxpbmcgOiBtb3ZlVG8ucHJldmlvdXNTaWJsaW5nKTsKLSAgICAgICAgICAgIH0gd2hpbGUobW92
ZVRvICYmIG1vdmVUby5pbmhlcml0ZWQpOwotCisgICAgICAgICAgICBtb3ZlVG8gPSBtb3ZlVG8u
X2ZpbmRTaWJsaW5nKG1vdmVEaXJlY3Rpb24pOwogICAgICAgICAgICAgaWYgKG1vdmVUbykKICAg
ICAgICAgICAgICAgICBtb3ZlVG9Qcm9wZXJ0eU5hbWUgPSBtb3ZlVG8ubmFtZTsKICAgICAgICAg
ICAgIGVsc2UgaWYgKG1vdmVEaXJlY3Rpb24gPT09ICJmb3J3YXJkIiAmJiAoIXRoaXMuX25ld1By
b3BlcnR5IHx8IHVzZXJJbnB1dCkpCkBAIC0yMzIyLDcgKzIzNDQsOCBAQCBXZWJJbnNwZWN0b3Iu
U3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgaWYgKGFiYW5kb25OZXdQcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIHZh
ciBzZWN0aW9uVG9FZGl0ID0gbW92ZURpcmVjdGlvbiA9PT0gImJhY2t3YXJkIiA/IHNlY3Rpb24g
OiBzZWN0aW9uLm5leHRFZGl0YWJsZVNpYmxpbmcoKTsKKyAgICAgICAgICAgICAgICBtb3ZlVG8g
PSB0aGlzLl9maW5kU2libGluZyhtb3ZlRGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICB2YXIg
c2VjdGlvblRvRWRpdCA9IChtb3ZlVG8gfHwgbW92ZURpcmVjdGlvbiA9PT0gImJhY2t3YXJkIikg
PyBzZWN0aW9uIDogc2VjdGlvbi5uZXh0RWRpdGFibGVTaWJsaW5nKCk7CiAgICAgICAgICAgICAg
ICAgaWYgKHNlY3Rpb25Ub0VkaXQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY3Rpb25U
b0VkaXQucnVsZSkKICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25Ub0VkaXQuc3RhcnRF
ZGl0aW5nU2VsZWN0b3IoKTsKQEAgLTI0MDEsNiArMjQyNCw4IEBAIFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgaWYgKHRoaXMuX25ld1Byb3BlcnR5KQor
ICAgICAgICAgICAgICAgIHRoaXMuX25ld1Byb3BlcnR5SW5TdHlsZSA9IHRydWU7CiAgICAgICAg
ICAgICB0aGlzLnN0eWxlID0gbmV3U3R5bGU7CiAgICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0g
bmV3U3R5bGUucHJvcGVydHlBdCh0aGlzLnByb3BlcnR5LmluZGV4KTsKICAgICAgICAgICAgIHRo
aXMuX3N0eWxlUnVsZS5zdHlsZSA9IHRoaXMuc3R5bGU7CkBAIC0yNDIwLDcgKzI0NDUsOCBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRyYWlsaW5nIGNvbW1lbnRzLgogICAg
ICAgICBpZiAoc3R5bGVUZXh0Lmxlbmd0aCAmJiAhLztccyokLy50ZXN0KHN0eWxlVGV4dCkpCiAg
ICAgICAgICAgICBzdHlsZVRleHQgKz0gIjsiOwotICAgICAgICB0aGlzLnByb3BlcnR5LnNldFRl
eHQoc3R5bGVUZXh0LCBtYWpvckNoYW5nZSwgY2FsbGJhY2suYmluZCh0aGlzLCB1c2VyT3BlcmF0
aW9uRmluaXNoZWRDYWxsYmFjay5iaW5kKG51bGwsIHRoaXMuX3BhcmVudFBhbmUsIHVwZGF0ZUlu
dGVyZmFjZSksIHRoaXMub3JpZ2luYWxQcm9wZXJ0eVRleHQpKTsKKyAgICAgICAgdmFyIG92ZXJ3
cml0ZVByb3BlcnR5ID0gISEoIXRoaXMuX25ld1Byb3BlcnR5IHx8IHRoaXMuX25ld1Byb3BlcnR5
SW5TdHlsZSk7CisgICAgICAgIHRoaXMucHJvcGVydHkuc2V0VGV4dChzdHlsZVRleHQsIG1ham9y
Q2hhbmdlLCBvdmVyd3JpdGVQcm9wZXJ0eSwgY2FsbGJhY2suYmluZCh0aGlzLCB1c2VyT3BlcmF0
aW9uRmluaXNoZWRDYWxsYmFjay5iaW5kKG51bGwsIHRoaXMuX3BhcmVudFBhbmUsIHVwZGF0ZUlu
dGVyZmFjZSksIHRoaXMub3JpZ2luYWxQcm9wZXJ0eVRleHQpKTsKICAgICB9LAogCiAgICAgb25k
YmxjbGljazogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYyM2U1YTJiYWQyMmVjNmFlMTNlYjY2OGYwYzcx
MTgxOWNkMGE1ZjkuLjVhYzY0M2IwMDU0ZDY0MzE4NjE0ZDlmYzgzNjI0NThkMTU0ZjllMmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0yNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZs
b3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtTdHlsZXNdIEFsbG93
IGFkZGluZyBDU1MgcHJvcGVydGllcyBhbnl3aGVyZSBpbiB0aGUgc3R5bGUgZGVjbGFyYXRpb24s
IG5vdCBvbmx5IGF0IHRoZSBlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc5NjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVydHkt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFu
ay1wcm9wZXJ0eS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWZvcm1h
dHRpbmcuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0
bWw6CisKIDIwMTItMDItMjcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZpbmcgPHVsPiwgPGxpPiBpbnNpZGUgc2hhZG93IERPTSB0cmlnZ2VycyBh
c3NlcnRpb24gaW4gdXBkYXRlTGlzdE1hcmtlck51bWJlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVy
dHktZXhwZWN0ZWQudHh0CmluZGV4IDYxYmRjMmI3Y2JkZTEwMzc5ZWRmODg1ZDA1MTAxZDM1Yjlk
ZTI4OGIuLjk4MmEzOGQyYmUyNDZiODRhOGM0NjEyZmZhNDczMTI1MTQ3Mjk5YWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
YWRkLWJsYW5rLXByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAtMTUsOCArMTUsOCBAQCBkaXNwbGF5
OiBibG9jazsKIEFmdGVyIGFwcGVuZDoKIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgp
Ci1mb250LXNpemU6IDEycHg7CiBtYXJnaW4tbGVmdDogM3B4OworZm9udC1zaXplOiAxMnB4Owog
CiA9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQogW2V4cGFuZGVkXSAKQEAgLTI3
LDEwICsyNywxMCBAQCBkaXNwbGF5OiBibG9jazsKIEFmdGVyIGFwcGVuZCBhbmQgY2hhbmdlIG9m
IGEgJ2NvbXBvdW5kJyBwcm9wZXJ0eToKIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgp
Ci1mb250LXNpemU6IDEycHg7CiBtYXJnaW4tbGVmdDogM3B4OwogY29sb3I6IHJlZDsKIGZvbnQt
d2VpZ2h0OiBib2xkOworZm9udC1zaXplOiAxMnB4OwogCiA9PT09PT09PSBNYXRjaGVkIENTUyBS
dWxlcyA9PT09PT09PQogW2V4cGFuZGVkXSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5rLXByb3BlcnR5Lmh0bWwKaW5kZXggZTg0
MjhkMDYxY2IzZjYzYWZlOTFhZTY0NDJiYzZiZTVmYmQ0NjIwYi4uZTllYzc5ODJiZjgwODY2NTc1
Nzk0ODhmODZjYTM4YTAxZDZhNWU2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5rLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5rLXByb3BlcnR5Lmh0bWwKQEAgLTIwLDcg
KzIwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHNlY3Rpb24uZXhwYW5kKCk7CiAKICAg
ICAgICAgLy8gQ3JlYXRlIGFuZCBpbmNyZW1lbnQuCi0gICAgICAgIHRyZWVFbGVtZW50ID0gc2Vj
dGlvbi5hZGROZXdCbGFua1Byb3BlcnR5KCk7CisgICAgICAgIHRyZWVFbGVtZW50ID0gc2VjdGlv
bi5hZGROZXdCbGFua1Byb3BlcnR5KDApOwogICAgICAgICB0cmVlRWxlbWVudC5zdGFydEVkaXRp
bmcoKTsKICAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSAibWFy
Z2luLWxlZnQiOwogICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50
KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwpAQCAtNTYsNyArNTYsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVy
IGFwcGVuZDoiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5
bGVzKHRydWUpOwogCi0gICAgICAgIHRyZWVFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5l
bGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rpb25zWzBdWzFdLmFkZE5ld0JsYW5rUHJv
cGVydHkoKTsKKyAgICAgICAgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1l
bnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMV0uYWRkTmV3QmxhbmtQcm9wZXJ0
eSgxKTsKICAgICAgICAgdHJlZUVsZW1lbnQuc3RhcnRFZGl0aW5nKCk7CiAgICAgICAgIHRyZWVF
bGVtZW50Lm5hbWVFbGVtZW50LnRleHRDb250ZW50ID0gImNvbG9yIjsKICAgICAgICAgdHJlZUVs
ZW1lbnQubmFtZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2
ZW50KCJFbnRlciIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWZvcm1hdHRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLWZvcm1hdHRpbmcuaHRtbAppbmRleCBiYTQ1NTZjMGFlMWFkN2Y3MDc0NTc3Nzc0ZTViMWM5
NTQ0OGEyZmNhLi41NGVjZWZjN2U2ZjAwYTZlMTRkYzA2OTIxOGYxYTNjMTdjMTM2MTljIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1mb3JtYXR0aW5nLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZm9ybWF0dGluZy5o
dG1sCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RGb3JtYXR0ZWRSZW1vdmVTdGFydChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICBm
b3JtYXR0ZWRTdHlsZS5hbGxQcm9wZXJ0aWVzWzBdLnNldFRleHQoIiIsIHRydWUsIGR1bXBGb3Jt
YXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKKyAgICAgICAgICAgIGZvcm1hdHRl
ZFN0eWxlLmFsbFByb3BlcnRpZXNbMF0uc2V0VGV4dCgiIiwgdHJ1ZSwgdHJ1ZSwgZHVtcEZvcm1h
dHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwogICAgICAgICB9LAogCiAgICAgICAg
IGZ1bmN0aW9uIHRlc3RGb3JtYXR0ZWRJbnNlcnRNaWRkbGUobmV4dCkKQEAgLTQ4LDcgKzQ4LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZFJlbW92
ZU1pZGRsZShuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICBmb3JtYXR0ZWRTdHlsZS5hbGxQ
cm9wZXJ0aWVzWzFdLnNldFRleHQoIiIsIHRydWUsIGR1bXBGb3JtYXR0ZWRBbmRDYWxsTmV4dC5i
aW5kKG51bGwsIG5leHQpKTsKKyAgICAgICAgICAgIGZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRp
ZXNbMV0uc2V0VGV4dCgiIiwgdHJ1ZSwgdHJ1ZSwgZHVtcEZvcm1hdHRlZEFuZENhbGxOZXh0LmJp
bmQobnVsbCwgbmV4dCkpOwogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RGb3Jt
YXR0ZWRJbnNlcnRFbmQobmV4dCkKQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAK
ICAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZFJlbW92ZUVuZChuZXh0KQogICAgICAgICB7
Ci0gICAgICAgICAgICBmb3JtYXR0ZWRTdHlsZS5hbGxQcm9wZXJ0aWVzWzNdLnNldFRleHQoIiIs
IHRydWUsIGR1bXBGb3JtYXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKKyAgICAg
ICAgICAgIGZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbM10uc2V0VGV4dCgiIiwgdHJ1ZSwg
dHJ1ZSwgZHVtcEZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwogICAgICAg
ICB9LAogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RGb3JtYXR0ZWREaXNhYmxlU3RhcnQobmV4dCkK
QEAgLTEzMyw3ICsxMzMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0
ZXN0VW5mb3JtYXR0ZWRSZW1vdmVTdGFydChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB1
bmZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMF0uc2V0VGV4dCgiIiwgdHJ1ZSwgZHVtcFVu
Zm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7CisgICAgICAgICAgICB1bmZv
cm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMF0uc2V0VGV4dCgiIiwgdHJ1ZSwgdHJ1ZSwgZHVt
cFVuZm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7CiAgICAgICAgIH0sCiAK
ICAgICAgICAgZnVuY3Rpb24gdGVzdFVuZm9ybWF0dGVkSW5zZXJ0TWlkZGxlKG5leHQpCkBAIC0x
NDMsNyArMTQzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFVu
Zm9ybWF0dGVkUmVtb3ZlTWlkZGxlKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuZm9y
bWF0dGVkU3R5bGUuYWxsUHJvcGVydGllc1sxXS5zZXRUZXh0KCIiLCB0cnVlLCBkdW1wVW5mb3Jt
YXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKKyAgICAgICAgICAgIHVuZm9ybWF0
dGVkU3R5bGUuYWxsUHJvcGVydGllc1sxXS5zZXRUZXh0KCIiLCB0cnVlLCB0cnVlLCBkdW1wVW5m
b3JtYXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKICAgICAgICAgfSwKIAogICAg
ICAgICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0ZWRJbnNlcnRFbmQobmV4dCkKQEAgLTE1Myw3ICsx
NTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0
ZWRSZW1vdmVFbmQobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdW5mb3JtYXR0ZWRTdHls
ZS5hbGxQcm9wZXJ0aWVzWzNdLnNldFRleHQoIiIsIHRydWUsIGR1bXBVbmZvcm1hdHRlZEFuZENh
bGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOworICAgICAgICAgICAgdW5mb3JtYXR0ZWRTdHlsZS5h
bGxQcm9wZXJ0aWVzWzNdLnNldFRleHQoIiIsIHRydWUsIHRydWUsIGR1bXBVbmZvcm1hdHRlZEFu
ZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3RVbmZvcm1hdHRlZERpc2FibGVTdGFydChuZXh0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sCmluZGV4IDMyZDcwNDZmMzJlMWJj
OTNhZDdjYmFiY2E3ODNjMDQ2MzFiNTZjMTIuLjQ2ODk1MzI1ODI5NDNmOGM3YmYxYjYzNTM4M2Ez
YjQ4OGFjNWM0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLWhpc3RvcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1oaXN0b3J5Lmh0bWwKQEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBzdHlsZVNoZWV0LnJ1
bGVzWzBdLnN0eWxlOwogICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBzdHlsZS5n
ZXRMaXZlUHJvcGVydHkoIm1hcmdpbiIpOwotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5z
ZXRUZXh0KCJtYXJnaW46MjVweDsiLCBmYWxzZSwgc3RlcDIpOworICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS5zZXRUZXh0KCJtYXJnaW46MjVweDsiLCBmYWxzZSwgdHJ1ZSwgc3RlcDIpOwog
ICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKQEAg
LTc1LDcgKzc1LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgICAgIHZhciBz
dHlsZSA9IHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGU7CiAgICAgICAgICAgICAgICAgICAgIHZh
ciBwcm9wZXJ0eSA9IHN0eWxlLmdldExpdmVQcm9wZXJ0eSgibWFyZ2luIik7CiAgICAgICAgICAg
ICAgICAgICAgIHdhaXRGb3JSZXZpc2lvbihuZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHkuc2V0VGV4dCgibWFyZ2luOjMwcHg7IiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAg
IHByb3BlcnR5LnNldFRleHQoIm1hcmdpbjozMHB4OyIsIHRydWUsIHRydWUpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129042</attachid>
            <date>2012-02-27 08:29:11 -0800</date>
            <delta_ts>2012-02-27 08:31:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79662-20120227202909.patch</filename>
            <type>text/plain</type>
            <size>28506</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUyOTQ0MTc2NzI3ODgw
NjE2MmNjMGFlZDVhMTE2Mjk3YjQwYTI2Yi4uM2I4MWZlNTdhNTMzNTQ5NTc4MWY2ZDRkZmJhNDc2
M2Y2YmZhZmNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTI3ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW1N0eWxlc10gQWxsb3cgYWRkaW5nIENTUyBwcm9wZXJ0aWVzIGFueXdoZXJlIGluIHRo
ZSBzdHlsZSBkZWNsYXJhdGlvbiwgbm90IG9ubHkgYXQgdGhlIGVuZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk2NjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
LnByb3RvdHlwZS5uZXdCbGFua1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQ
cm9wZXJ0eS5wcm90b3R5cGUuc2V0VGV4dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkucHJvdG90eXBlLnNldFZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L01ldHJpY3NTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZXRyaWNzU2lk
ZWJhclBhbmUucHJvdG90eXBlLl9hcHBseVVzZXJJbnB1dCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
dHlsZVByb3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnRpZXNTZWN0aW9uLnByb3RvdHlwZS5faGFuZGxlU2VsZWN0b3JDb250YWluZXJDbGljayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuYWRk
TmV3QmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRy
ZWVFbGVtZW50LnByb3RvdHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50LnByb3RvdHlwZS5lbGVtZW50LnVzZXJJbnB1dC5wcmV2aW91c0NvbnRlbnQu
Y29udGV4dC5tb3ZlRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLnN0eWxlVGV4dC51cGRhdGVJbnRlcmZhY2UubWFqb3JD
aGFuZ2UuaXNSZXZlcnQpOgorCiAyMDEyLTAyLTI3ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFy
bmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBwYWdlL1BhZ2VTdXBw
bGVtZW50LmggZnJvbSBXZWJDb3JlJ3MgVGFyZ2V0LnByaQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IGVjZGJmZDMwODQ4
YjNiNjcwYTIyODViY2FlYzY2NWFmMGFhMDBmNTIuLjcyYTljZmU5M2M0NGUyY2Q1N2UyOTZiM2Jl
YmRiMTk3NzI4YjlkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTQ3OCw5ICs0NzgsMTMgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gMDsKICAg
ICB9LAogCi0gICAgbmV3QmxhbmtQcm9wZXJ0eTogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAq
IEBwYXJhbSB7bnVtYmVyPX0gaW5kZXgKKyAgICAgKi8KKyAgICBuZXdCbGFua1Byb3BlcnR5OiBm
dW5jdGlvbihpbmRleCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNT
U1Byb3BlcnR5KHRoaXMsIHRoaXMucGFzdExhc3RTb3VyY2VQcm9wZXJ0eUluZGV4KCksICIiLCAi
IiwgIiIsICJhY3RpdmUiLCB0cnVlLCBmYWxzZSwgZmFsc2UsICIiKTsKKyAgICAgICAgaW5kZXgg
PSAodHlwZW9mIGluZGV4ID09PSAidW5kZWZpbmVkIikgPyB0aGlzLnBhc3RMYXN0U291cmNlUHJv
cGVydHlJbmRleCgpIDogaW5kZXg7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNT
U1Byb3BlcnR5KHRoaXMsIGluZGV4LCAiIiwgIiIsICIiLCAiYWN0aXZlIiwgdHJ1ZSwgZmFsc2Us
IGZhbHNlLCAiIik7CiAgICAgfSwKIAogICAgIGluc2VydFByb3BlcnR5QXQ6IGZ1bmN0aW9uKGlu
ZGV4LCBuYW1lLCB2YWx1ZSwgdXNlckNhbGxiYWNrKQpAQCAtNjE5LDggKzYyMywxNSBAQCBXZWJJ
bnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5z
dGF0dXMgPT09ICJkaXNhYmxlZCI7CiAgICAgfSwKIAotICAgIC8vIFJlcGxhY2VzICJwcm9wZXJ0
eU5hbWU6IHByb3BlcnR5VmFsdWUgWyFpbXBvcnRhbnRdOyIgaW4gdGhlIHN0eWxlc2hlZXQgYnkg
YW4gYXJiaXRyYXJ5IHByb3BlcnR5VGV4dC4KLSAgICBzZXRUZXh0OiBmdW5jdGlvbihwcm9wZXJ0
eVRleHQsIG1ham9yQ2hhbmdlLCB1c2VyQ2FsbGJhY2spCisgICAgLyoqCisgICAgICogUmVwbGFj
ZXMgInByb3BlcnR5TmFtZTogcHJvcGVydHlWYWx1ZSBbIWltcG9ydGFudF07IiBpbiB0aGUgc3R5
bGVzaGVldCBieSBhbiBhcmJpdHJhcnkgcHJvcGVydHlUZXh0LgorICAgICAqCisgICAgICogQHBh
cmFtIHtzdHJpbmd9IHByb3BlcnR5VGV4dAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gbWFqb3JD
aGFuZ2UKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG92ZXJ3cml0ZQorICAgICAqIEBwYXJhbSB7
RnVuY3Rpb249fSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KKyAgICBzZXRUZXh0OiBmdW5jdGlvbihw
cm9wZXJ0eVRleHQsIG1ham9yQ2hhbmdlLCBvdmVyd3JpdGUsIHVzZXJDYWxsYmFjaykKICAgICB7
CiAgICAgICAgIGZ1bmN0aW9uIGVuYWJsZWRDYWxsYmFjayhzdHlsZSkKICAgICAgICAgewpAQCAt
NjU2LDEzICs2NjcsMTkgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsK
IAogICAgICAgICAvLyBBbiBpbmRleCBwYXN0IGFsbCB0aGUgcHJvcGVydGllcyBhZGRzIGEgbmV3
IHByb3BlcnR5IHRvIHRoZSBzdHlsZS4KICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9w
ZW5kaW5nQ29tbWFuZHNNYWpvclN0YXRlLnB1c2gobWFqb3JDaGFuZ2UpOwotICAgICAgICBDU1NB
Z2VudC5zZXRQcm9wZXJ0eVRleHQodGhpcy5vd25lclN0eWxlLmlkLCB0aGlzLmluZGV4LCBwcm9w
ZXJ0eVRleHQsIHRoaXMuaW5kZXggPCB0aGlzLm93bmVyU3R5bGUucGFzdExhc3RTb3VyY2VQcm9w
ZXJ0eUluZGV4KCksIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBDU1NBZ2VudC5zZXRQ
cm9wZXJ0eVRleHQodGhpcy5vd25lclN0eWxlLmlkLCB0aGlzLmluZGV4LCBwcm9wZXJ0eVRleHQs
IG92ZXJ3cml0ZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIHNldFZhbHVl
OiBmdW5jdGlvbihuZXdWYWx1ZSwgbWFqb3JDaGFuZ2UsIHVzZXJDYWxsYmFjaykKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFsdWUKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IG1ham9yQ2hhbmdlCisgICAgICogQHBhcmFtIHtib29sZWFufSBvdmVyd3JpdGUKKyAgICAgKiBA
cGFyYW0ge0Z1bmN0aW9uPX0gdXNlckNhbGxiYWNrCisgICAgICovCisgICAgc2V0VmFsdWU6IGZ1
bmN0aW9uKG5ld1ZhbHVlLCBtYWpvckNoYW5nZSwgb3ZlcndyaXRlLCB1c2VyQ2FsbGJhY2spCiAg
ICAgewogICAgICAgICB2YXIgdGV4dCA9IHRoaXMubmFtZSArICI6ICIgKyBuZXdWYWx1ZSArICh0
aGlzLnByaW9yaXR5ID8gIiAhIiArIHRoaXMucHJpb3JpdHkgOiAiIikgKyAiOyIKLSAgICAgICAg
dGhpcy5zZXRUZXh0KHRleHQsIG1ham9yQ2hhbmdlLCB1c2VyQ2FsbGJhY2spOworICAgICAgICB0
aGlzLnNldFRleHQodGV4dCwgbWFqb3JDaGFuZ2UsIG92ZXJ3cml0ZSwgdXNlckNhbGxiYWNrKTsK
ICAgICB9LAogCiAgICAgc2V0RGlzYWJsZWQ6IGZ1bmN0aW9uKGRpc2FibGVkLCB1c2VyQ2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJp
Y3NTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0
cmljc1NpZGViYXJQYW5lLmpzCmluZGV4IDY0NjcwMDRjNTViMzJiYzFjM2NiOGJiNjljNjcwMjk0
OWZjY2RiZjIuLjU4NWI1N2U2ODk0Y2IxNGQ0MzY5YWUwYzMwZGQ4ZDAyY2ZkNzQ0OWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1NpZGViYXJQ
YW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1Np
ZGViYXJQYW5lLmpzCkBAIC00NDMsNyArNDQzLDcgQEAgV2ViSW5zcGVjdG9yLk1ldHJpY3NTaWRl
YmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgICAgIHRoaXMucHJldmlvdXNQcm9wZXJ0eURhdGFDYW5kaWRhdGUgPSBwcm9wZXJ0eTsKLSAg
ICAgICAgICAgIHByb3BlcnR5LnNldFZhbHVlKHVzZXJJbnB1dCwgY29tbWl0RWRpdG9yLCBjYWxs
YmFjayk7CisgICAgICAgICAgICBwcm9wZXJ0eS5zZXRWYWx1ZSh1c2VySW5wdXQsIGNvbW1pdEVk
aXRvciwgdHJ1ZSwgY2FsbGJhY2spOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lk
ZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1Np
ZGViYXJQYW5lLmpzCmluZGV4IGRkMjczYWU5OTUzYzY4YjFmNWU5ZGJiMTUxZDVkM2MyOGQ5YWY4
ZjcuLmM2Mjg2MDIxNmQwZTZlNDQ5ZDk3MTQ0YmZjNTE4ODEzMDcyMmY3MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFu
ZS5qcwpAQCAtOTY3LDYgKzk2Nyw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0
aW9uID0gZnVuY3Rpb24ocGFyZW50UGFuZSwgc3R5bGVSdWxlLCBlZGl0YWJsZSwKICAgICB2YXIg
b3BlbkJyYWNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgIG9wZW5CcmFj
ZS50ZXh0Q29udGVudCA9ICIgeyI7CiAgICAgc2VsZWN0b3JDb250YWluZXIuYXBwZW5kQ2hpbGQo
b3BlbkJyYWNlKTsKKyAgICBzZWxlY3RvckNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX2hhbmRsZVNlbGVjdG9yQ29udGFpbmVyQ2xpY2suYmluZCh0aGlzKSwgZmFsc2Up
OwogCiAgICAgdmFyIGNsb3NlQnJhY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
ICAgICBjbG9zZUJyYWNlLnRleHRDb250ZW50ID0gIn0iOwpAQCAtOTk2LDYgKzk5Nyw3IEBAIFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uID0gZnVuY3Rpb24ocGFyZW50UGFuZSwg
c3R5bGVSdWxlLCBlZGl0YWJsZSwKICAgICB0aGlzLl9zZWxlY3RvclJlZkVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fY3JlYXRlUnVsZU9yaWdpbk5vZGUoKSk7CiAgICAgc2VsZWN0b3JDb250YWlu
ZXIuaW5zZXJ0QmVmb3JlKHRoaXMuX3NlbGVjdG9yUmVmRWxlbWVudCwgc2VsZWN0b3JDb250YWlu
ZXIuZmlyc3RDaGlsZCk7CiAgICAgdGhpcy50aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc2VsZWN0
b3JDb250YWluZXIpOworICAgIHRoaXMuX3NlbGVjdG9yQ29udGFpbmVyID0gc2VsZWN0b3JDb250
YWluZXI7CiAKICAgICBpZiAoaXNJbmhlcml0ZWQpCiAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJzaG93LWluaGVyaXRlZCIpOyAvLyBUaGlzIG9uZSBpcyByZWxhdGVkIHRvIGlu
aGVyaXRlZCBydWxlcywgbm90IGNvbXB0ZWQgc3R5bGUuCkBAIC0xMTYyLDE1ICsxMTY0LDIyIEBA
IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgcmV0dXJuIG51bGw7CiAgICAgfSwKIAorICAgIF9oYW5kbGVTZWxlY3RvckNvbnRhaW5lckNs
aWNrOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC50YXJnZXQgPT09
IHRoaXMuX3NlbGVjdG9yQ29udGFpbmVyKQorICAgICAgICAgICAgdGhpcy5hZGROZXdCbGFua1By
b3BlcnR5KDApLnN0YXJ0RWRpdGluZygpOworICAgIH0sCisKICAgICAvKioKLSAgICAgKiBAcGFy
YW0ge251bWJlcj19IG9wdGlvbmFsSW5kZXgKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGluZGV4
CiAgICAgICovCi0gICAgYWRkTmV3QmxhbmtQcm9wZXJ0eTogZnVuY3Rpb24ob3B0aW9uYWxJbmRl
eCkKKyAgICBhZGROZXdCbGFua1Byb3BlcnR5OiBmdW5jdGlvbihpbmRleCkKICAgICB7CiAgICAg
ICAgIHZhciBzdHlsZSA9IHRoaXMuc3R5bGVSdWxlLnN0eWxlOwotICAgICAgICB2YXIgcHJvcGVy
dHkgPSBzdHlsZS5uZXdCbGFua1Byb3BlcnR5KCk7CisgICAgICAgIHZhciBwcm9wZXJ0eSA9IHN0
eWxlLm5ld0JsYW5rUHJvcGVydHkoaW5kZXgpOwogICAgICAgICB2YXIgaXRlbSA9IG5ldyBXZWJJ
bnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50KHRoaXMsIHRoaXMuX3BhcmVudFBhbmUs
IHRoaXMuc3R5bGVSdWxlLCBzdHlsZSwgcHJvcGVydHksIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwot
ICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZChpdGVtKTsKKyAg
ICAgICAgaW5kZXggPSBwcm9wZXJ0eS5pbmRleDsKKyAgICAgICAgdGhpcy5wcm9wZXJ0aWVzVHJl
ZU91dGxpbmUuaW5zZXJ0Q2hpbGQoaXRlbSwgaW5kZXgpOwogICAgICAgICBpdGVtLmxpc3RJdGVt
RWxlbWVudC50ZXh0Q29udGVudCA9ICIiOwogICAgICAgICBpdGVtLl9uZXdQcm9wZXJ0eSA9IHRy
dWU7CiAgICAgICAgIGl0ZW0udXBkYXRlVGl0bGUoKTsKQEAgLTE5OTQsOSArMjAwMywxNSBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAg
IF9zdGFydEVkaXRpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5zdGFy
dEVkaXRpbmcoZXZlbnQudGFyZ2V0KTsKICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7
CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisKKyAgICAgICAgaWYgKGV2ZW50LnRh
cmdldCA9PT0gdGhpcy5saXN0SXRlbUVsZW1lbnQpIHsKKyAgICAgICAgICAgIHRoaXMuc2VjdGlv
bi5hZGROZXdCbGFua1Byb3BlcnR5KHRoaXMucHJvcGVydHkuaW5kZXggKyAxKS5zdGFydEVkaXRp
bmcoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuc3Rh
cnRFZGl0aW5nKGV2ZW50LnRhcmdldCk7CiAgICAgfSwKIAogICAgIF9pc05hbWVFbGVtZW50OiBm
dW5jdGlvbihlbGVtZW50KQpAQCAtMjIzMyw2ICsyMjQ4LDE2IEBAIFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAor
ICAgIF9maW5kU2libGluZzogZnVuY3Rpb24obW92ZURpcmVjdGlvbikKKyAgICB7CisgICAgICAg
IHZhciB0YXJnZXQgPSB0aGlzOworICAgICAgICBkbyB7CisgICAgICAgICAgICB0YXJnZXQgPSAo
bW92ZURpcmVjdGlvbiA9PT0gImZvcndhcmQiID8gdGFyZ2V0Lm5leHRTaWJsaW5nIDogdGFyZ2V0
LnByZXZpb3VzU2libGluZyk7CisgICAgICAgIH0gd2hpbGUodGFyZ2V0ICYmIHRhcmdldC5pbmhl
cml0ZWQpOworCisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfSwKKwogICAgIGVkaXRpbmdD
b21taXR0ZWQ6IGZ1bmN0aW9uKGVsZW1lbnQsIHVzZXJJbnB1dCwgcHJldmlvdXNDb250ZW50LCBj
b250ZXh0LCBtb3ZlRGlyZWN0aW9uKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVtb3ZlUHJvbXB0
KCk7CkBAIC0yMjQ1LDEwICsyMjcwLDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBtb3ZlVG9PdGhlciA9IChpc0VkaXRp
bmdOYW1lIF4gKG1vdmVEaXJlY3Rpb24gPT09ICJmb3J3YXJkIikpOwogICAgICAgICB2YXIgYWJh
bmRvbk5ld1Byb3BlcnR5ID0gdGhpcy5fbmV3UHJvcGVydHkgJiYgIXVzZXJJbnB1dCAmJiAobW92
ZVRvT3RoZXIgfHwgaXNFZGl0aW5nTmFtZSk7CiAgICAgICAgIGlmIChtb3ZlRGlyZWN0aW9uID09
PSAiZm9yd2FyZCIgJiYgIWlzRWRpdGluZ05hbWUgfHwgbW92ZURpcmVjdGlvbiA9PT0gImJhY2t3
YXJkIiAmJiBpc0VkaXRpbmdOYW1lKSB7Ci0gICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAg
ICAgbW92ZVRvID0gKG1vdmVEaXJlY3Rpb24gPT09ICJmb3J3YXJkIiA/IG1vdmVUby5uZXh0U2li
bGluZyA6IG1vdmVUby5wcmV2aW91c1NpYmxpbmcpOwotICAgICAgICAgICAgfSB3aGlsZShtb3Zl
VG8gJiYgbW92ZVRvLmluaGVyaXRlZCk7Ci0KKyAgICAgICAgICAgIG1vdmVUbyA9IG1vdmVUby5f
ZmluZFNpYmxpbmcobW92ZURpcmVjdGlvbik7CiAgICAgICAgICAgICBpZiAobW92ZVRvKQogICAg
ICAgICAgICAgICAgIG1vdmVUb1Byb3BlcnR5TmFtZSA9IG1vdmVUby5uYW1lOwogICAgICAgICAg
ICAgZWxzZSBpZiAobW92ZURpcmVjdGlvbiA9PT0gImZvcndhcmQiICYmICghdGhpcy5fbmV3UHJv
cGVydHkgfHwgdXNlcklucHV0KSkKQEAgLTIzMjIsNyArMjM0NCw4IEBAIFdlYkluc3BlY3Rvci5T
dHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoYWJhbmRvbk5ld1Byb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgdmFy
IHNlY3Rpb25Ub0VkaXQgPSBtb3ZlRGlyZWN0aW9uID09PSAiYmFja3dhcmQiID8gc2VjdGlvbiA6
IHNlY3Rpb24ubmV4dEVkaXRhYmxlU2libGluZygpOworICAgICAgICAgICAgICAgIG1vdmVUbyA9
IHRoaXMuX2ZpbmRTaWJsaW5nKG1vdmVEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIHZhciBz
ZWN0aW9uVG9FZGl0ID0gKG1vdmVUbyB8fCBtb3ZlRGlyZWN0aW9uID09PSAiYmFja3dhcmQiKSA/
IHNlY3Rpb24gOiBzZWN0aW9uLm5leHRFZGl0YWJsZVNpYmxpbmcoKTsKICAgICAgICAgICAgICAg
ICBpZiAoc2VjdGlvblRvRWRpdCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoc2VjdGlvblRv
RWRpdC5ydWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvblRvRWRpdC5zdGFydEVk
aXRpbmdTZWxlY3RvcigpOwpAQCAtMjQwMSw2ICsyNDI0LDggQEAgV2ViSW5zcGVjdG9yLlN0eWxl
UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBpZiAodGhpcy5fbmV3UHJvcGVydHkpCisg
ICAgICAgICAgICAgICAgdGhpcy5fbmV3UHJvcGVydHlJblN0eWxlID0gdHJ1ZTsKICAgICAgICAg
ICAgIHRoaXMuc3R5bGUgPSBuZXdTdHlsZTsKICAgICAgICAgICAgIHRoaXMucHJvcGVydHkgPSBu
ZXdTdHlsZS5wcm9wZXJ0eUF0KHRoaXMucHJvcGVydHkuaW5kZXgpOwogICAgICAgICAgICAgdGhp
cy5fc3R5bGVSdWxlLnN0eWxlID0gdGhpcy5zdHlsZTsKQEAgLTI0MjAsNyArMjQ0NSw4IEBAIFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAg
ICAvLyBGSVhNRTogdGhpcyBkb2VzIG5vdCBoYW5kbGUgdHJhaWxpbmcgY29tbWVudHMuCiAgICAg
ICAgIGlmIChzdHlsZVRleHQubGVuZ3RoICYmICEvO1xzKiQvLnRlc3Qoc3R5bGVUZXh0KSkKICAg
ICAgICAgICAgIHN0eWxlVGV4dCArPSAiOyI7Ci0gICAgICAgIHRoaXMucHJvcGVydHkuc2V0VGV4
dChzdHlsZVRleHQsIG1ham9yQ2hhbmdlLCBjYWxsYmFjay5iaW5kKHRoaXMsIHVzZXJPcGVyYXRp
b25GaW5pc2hlZENhbGxiYWNrLmJpbmQobnVsbCwgdGhpcy5fcGFyZW50UGFuZSwgdXBkYXRlSW50
ZXJmYWNlKSwgdGhpcy5vcmlnaW5hbFByb3BlcnR5VGV4dCkpOworICAgICAgICB2YXIgb3Zlcndy
aXRlUHJvcGVydHkgPSAhISghdGhpcy5fbmV3UHJvcGVydHkgfHwgdGhpcy5fbmV3UHJvcGVydHlJ
blN0eWxlKTsKKyAgICAgICAgdGhpcy5wcm9wZXJ0eS5zZXRUZXh0KHN0eWxlVGV4dCwgbWFqb3JD
aGFuZ2UsIG92ZXJ3cml0ZVByb3BlcnR5LCBjYWxsYmFjay5iaW5kKHRoaXMsIHVzZXJPcGVyYXRp
b25GaW5pc2hlZENhbGxiYWNrLmJpbmQobnVsbCwgdGhpcy5fcGFyZW50UGFuZSwgdXBkYXRlSW50
ZXJmYWNlKSwgdGhpcy5vcmlnaW5hbFByb3BlcnR5VGV4dCkpOwogICAgIH0sCiAKICAgICBvbmRi
bGNsaWNrOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjIzZTVhMmJhZDIyZWM2YWUxM2ViNjY4ZjBjNzEx
ODE5Y2QwYTVmOS4uZGI2MTMzZjUzNDZiOWZlMDcyOTk2N2U1MjRlYTQxMDNmM2Y3YmM3YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTI3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxv
dkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10gQWxsb3cg
YWRkaW5nIENTUyBwcm9wZXJ0aWVzIGFueXdoZXJlIGluIHRoZSBzdHlsZSBkZWNsYXJhdGlvbiwg
bm90IG9ubHkgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzk2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5r
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZm9ybWF0
dGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3RvcnkuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5Lmh0bWw6
CisKIDIwMTItMDItMjcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZpbmcgPHVsPiwgPGxpPiBpbnNpZGUgc2hhZG93IERPTSB0cmlnZ2VycyBhc3Nl
cnRpb24gaW4gdXBkYXRlTGlzdE1hcmtlck51bWJlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVydHkt
ZXhwZWN0ZWQudHh0CmluZGV4IDYxYmRjMmI3Y2JkZTEwMzc5ZWRmODg1ZDA1MTAxZDM1YjlkZTI4
OGIuLmUzZGMxZmZiNmUxYjg5NTI4NTMzNTZkMDM3MGM3ZjhjNWRlYmY5YjggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRk
LWJsYW5rLXByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAtMTIsMTEgKzEyLDExIEBAIGRpdiAgeyAo
dXNlciBhZ2VudCBzdHlsZXNoZWV0KQogZGlzcGxheTogYmxvY2s7CiAKIAotQWZ0ZXIgYXBwZW5k
OgorQWZ0ZXIgaW5zZXJ0aW9uIGF0IGluZGV4IDA6CiBbZXhwYW5kZWRdIAogZWxlbWVudC5zdHls
ZSAgeyAoKQotZm9udC1zaXplOiAxMnB4OwogbWFyZ2luLWxlZnQ6IDNweDsKK2ZvbnQtc2l6ZTog
MTJweDsKIAogPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KIFtleHBhbmRlZF0g
CkBAIC0yNCwxMSArMjQsMjYgQEAgZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCiBkaXNw
bGF5OiBibG9jazsKIAogCi1BZnRlciBhcHBlbmQgYW5kIGNoYW5nZSBvZiBhICdjb21wb3VuZCcg
cHJvcGVydHk6CitBZnRlciBhcHBlbmRpbmcgYW5kIGNoYW5naW5nIGEgJ2NvbXBvdW5kJyBwcm9w
ZXJ0eToKIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCittYXJnaW4tbGVmdDogM3B4
OwogZm9udC1zaXplOiAxMnB4OworY29sb3I6IHJlZDsKK2ZvbnQtd2VpZ2h0OiBib2xkOworCis9
PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKK2RpdiAgeyAo
dXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTogYmxvY2s7CisKKworQWZ0ZXIgaW5zZXJ0
aW9uIGF0IGluZGV4IDI6CitbZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQogbWFyZ2lu
LWxlZnQ6IDNweDsKK2ZvbnQtc2l6ZTogMTJweDsKKy8tLSBvdmVybG9hZGVkIC0tLyB0aGlyZC1w
cm9wZXJ0eTogdGhpcmQtdmFsdWU7CiBjb2xvcjogcmVkOwogZm9udC13ZWlnaHQ6IGJvbGQ7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFu
ay1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRk
LWJsYW5rLXByb3BlcnR5Lmh0bWwKaW5kZXggZTg0MjhkMDYxY2IzZjYzYWZlOTFhZTY0NDJiYzZi
ZTVmYmQ0NjIwYi4uMTU5YzhiMDg0YmE0N2U0YzQ1YmMxZmRjNzAzNjA0NGZkOWM3ODcyYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5rLXBy
b3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRk
LWJsYW5rLXByb3BlcnR5Lmh0bWwKQEAgLTcsMTIgKzcsMTIgQEAKIGZ1bmN0aW9uIHRlc3QoKQog
ewogICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9y
VGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOworICAg
IEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIGFk
ZEFuZEluY3JlbWVudEZpcnN0UHJvcGVydHkpOwogCiAgICAgdmFyIHRyZWVFbGVtZW50OwogICAg
IHZhciBzZWN0aW9uOwogCi0gICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIGZ1bmN0aW9uIGFkZEFu
ZEluY3JlbWVudEZpcnN0UHJvcGVydHkoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkJlZm9yZSBhcHBlbmQ6Iik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNl
bGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIHNlY3Rpb24uZXhwYW5kKCk7CiAKICAgICAgICAgLy8gQ3JlYXRlIGFuZCBp
bmNyZW1lbnQuCi0gICAgICAgIHRyZWVFbGVtZW50ID0gc2VjdGlvbi5hZGROZXdCbGFua1Byb3Bl
cnR5KCk7CisgICAgICAgIHRyZWVFbGVtZW50ID0gc2VjdGlvbi5hZGROZXdCbGFua1Byb3BlcnR5
KDApOwogICAgICAgICB0cmVlRWxlbWVudC5zdGFydEVkaXRpbmcoKTsKICAgICAgICAgdHJlZUVs
ZW1lbnQubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSAibWFyZ2luLWxlZnQiOwogICAgICAgICB0
cmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRl
S2V5RXZlbnQoIkVudGVyIikpOwpAQCAtMjgsMzUgKzI4LDI5IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiMXB4IjsKICAg
ICAgICAgdHJlZUVsZW1lbnQudmFsdWVFbGVtZW50LmZpcnN0Q2hpbGQuc2VsZWN0KCk7CiAgICAg
ICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3Qu
Y3JlYXRlS2V5RXZlbnQoIlVwIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMoaW5jcmVtZW50UHJvcGVydHkpOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKKyAgICBmdW5jdGlvbiBpbmNyZW1lbnRQcm9wZXJ0eSgpCiAgICAgewogICAgICAg
ICAvLyBJbmNyZW1lbnQgYWdhaW4uCiAgICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5k
aXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIlVwIikpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoY29tbWl0UHJvcGVydHkp
OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICBmdW5jdGlvbiBjb21taXRQcm9w
ZXJ0eSgpCiAgICAgewogICAgICAgICAvLyBDb21taXQuCiAgICAgICAgIHRyZWVFbGVtZW50Lm5h
bWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50
ZXIiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgib3RoZXIiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXA0KTsK
KyAgICAgICAgcmVsb2FkU3R5bGVzKGFkZEFuZENoYW5nZUxhc3RDb21wb3VuZFByb3BlcnR5KTsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiBzdGVwNCgpCisgICAgZnVuY3Rpb24gYWRkQW5kQ2hhbmdl
TGFzdENvbXBvdW5kUHJvcGVydHkoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxl
Y3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDUpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJBZnRlciBhcHBlbmQ6Iik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRl
ciBpbnNlcnRpb24gYXQgaW5kZXggMDoiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2Vs
ZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwogCi0gICAgICAgIHRyZWVFbGVtZW50ID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rpb25zWzBdWzFd
LmFkZE5ld0JsYW5rUHJvcGVydHkoKTsKKyAgICAgICAgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMV0uYWRk
TmV3QmxhbmtQcm9wZXJ0eSgyKTsKICAgICAgICAgdHJlZUVsZW1lbnQuc3RhcnRFZGl0aW5nKCk7
CiAgICAgICAgIHRyZWVFbGVtZW50Lm5hbWVFbGVtZW50LnRleHRDb250ZW50ID0gImNvbG9yIjsK
ICAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKQEAgLTY4LDI3ICs2Miw0MSBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgdHJlZUVsZW1lbnQua2lja0ZyZWVGbG93U3R5bGVFZGl0Rm9yVGVz
dCgpOwogCiAgICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50KElu
c3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDYpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMocmVsb2FkU3R5bGVzLmJpbmQodGhpcywgYWRk
QW5kQ29tbWl0TWlkZGxlUHJvcGVydHkpKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBzdGVwNigp
CisgICAgZnVuY3Rpb24gYWRkQW5kQ29tbWl0TWlkZGxlUHJvcGVydHkoKQogICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJvdGhlciIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDcpOwotICAgIH0KKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGFwcGVuZGluZyBhbmQgY2hhbmdpbmcg
YSAnY29tcG91bmQnIHByb3BlcnR5OiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxl
Y3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7CiAKLSAgICBmdW5jdGlvbiBzdGVwNygpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0
ZWQiLCBzdGVwOCk7Ci0gICAgfQorICAgICAgICB0cmVlRWxlbWVudCA9IFdlYkluc3BlY3Rvci5w
YW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0aW9uc1swXVsxXS5hZGROZXdC
bGFua1Byb3BlcnR5KDIpOworICAgICAgICB0cmVlRWxlbWVudC5zdGFydEVkaXRpbmcoKTsKKyAg
ICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSAidGhpcmQtcHJvcGVy
dHkiOworICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3Bl
Y3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOworICAgICAgICB0cmVlRWxlbWVudC52
YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAidGhpcmQtdmFsdWUiOwogCisgICAgICAgIHRyZWVF
bGVtZW50Lm5hbWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlF
dmVudCgiRW50ZXIiKSk7CisgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlz
cGF0Y2hlcyhyZWxvYWRTdHlsZXMuYmluZCh0aGlzLCBkdW1wQW5kQ29tcGxldGUpKTsKKyAgICB9
CiAKLSAgICBmdW5jdGlvbiBzdGVwOCgpCisgICAgZnVuY3Rpb24gZHVtcEFuZENvbXBsZXRlKCkK
ICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciBhcHBlbmQgYW5k
IGNoYW5nZSBvZiBhICdjb21wb3VuZCcgcHJvcGVydHk6Iik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZnRlciBpbnNlcnRpb24gYXQgaW5kZXggMjoiKTsKICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOworCiAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQorCisgICAgZnVuY3Rpb24gcmVsb2Fk
U3R5bGVzKGNhbGxiYWNrKSB7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJ
ZCgib3RoZXIiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRj
aGVzKG90aGVyQ2FsbGJhY2spOworCisgICAgICAgIGZ1bmN0aW9uIG90aGVyQ2FsbGJhY2soKQor
ICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9y
U3R5bGVzKCJpbnNwZWN0ZWQiLCBjYWxsYmFjayk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
Zm9ybWF0dGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZm9y
bWF0dGluZy5odG1sCmluZGV4IGJhNDU1NmMwYWUxYWQ3ZjcwNzQ1Nzc3NzRlNWIxYzk1NDQ4YTJm
Y2EuLjU0ZWNlZmM3ZTZmMDBhNmUxNGRjMDY5MjE4ZjFhM2MxN2MxMzYxOWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWZvcm1hdHRpbmcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1mb3JtYXR0aW5nLmh0bWwKQEAg
LTM4LDcgKzM4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEZv
cm1hdHRlZFJlbW92ZVN0YXJ0KG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZvcm1hdHRl
ZFN0eWxlLmFsbFByb3BlcnRpZXNbMF0uc2V0VGV4dCgiIiwgdHJ1ZSwgZHVtcEZvcm1hdHRlZEFu
ZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOworICAgICAgICAgICAgZm9ybWF0dGVkU3R5bGUu
YWxsUHJvcGVydGllc1swXS5zZXRUZXh0KCIiLCB0cnVlLCB0cnVlLCBkdW1wRm9ybWF0dGVkQW5k
Q2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7CiAgICAgICAgIH0sCiAKICAgICAgICAgZnVuY3Rp
b24gdGVzdEZvcm1hdHRlZEluc2VydE1pZGRsZShuZXh0KQpAQCAtNDgsNyArNDgsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0Rm9ybWF0dGVkUmVtb3ZlTWlkZGxl
KG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRp
ZXNbMV0uc2V0VGV4dCgiIiwgdHJ1ZSwgZHVtcEZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVs
bCwgbmV4dCkpOworICAgICAgICAgICAgZm9ybWF0dGVkU3R5bGUuYWxsUHJvcGVydGllc1sxXS5z
ZXRUZXh0KCIiLCB0cnVlLCB0cnVlLCBkdW1wRm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxs
LCBuZXh0KSk7CiAgICAgICAgIH0sCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZElu
c2VydEVuZChuZXh0KQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAg
ICBmdW5jdGlvbiB0ZXN0Rm9ybWF0dGVkUmVtb3ZlRW5kKG5leHQpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbM10uc2V0VGV4dCgiIiwgdHJ1ZSwg
ZHVtcEZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOworICAgICAgICAgICAg
Zm9ybWF0dGVkU3R5bGUuYWxsUHJvcGVydGllc1szXS5zZXRUZXh0KCIiLCB0cnVlLCB0cnVlLCBk
dW1wRm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7CiAgICAgICAgIH0sCiAK
ICAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZERpc2FibGVTdGFydChuZXh0KQpAQCAtMTMz
LDcgKzEzMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RVbmZv
cm1hdHRlZFJlbW92ZVN0YXJ0KG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuZm9ybWF0
dGVkU3R5bGUuYWxsUHJvcGVydGllc1swXS5zZXRUZXh0KCIiLCB0cnVlLCBkdW1wVW5mb3JtYXR0
ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKKyAgICAgICAgICAgIHVuZm9ybWF0dGVk
U3R5bGUuYWxsUHJvcGVydGllc1swXS5zZXRUZXh0KCIiLCB0cnVlLCB0cnVlLCBkdW1wVW5mb3Jt
YXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKICAgICAgICAgfSwKIAogICAgICAg
ICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0ZWRJbnNlcnRNaWRkbGUobmV4dCkKQEAgLTE0Myw3ICsx
NDMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0
ZWRSZW1vdmVNaWRkbGUobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdW5mb3JtYXR0ZWRT
dHlsZS5hbGxQcm9wZXJ0aWVzWzFdLnNldFRleHQoIiIsIHRydWUsIGR1bXBVbmZvcm1hdHRlZEFu
ZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOworICAgICAgICAgICAgdW5mb3JtYXR0ZWRTdHls
ZS5hbGxQcm9wZXJ0aWVzWzFdLnNldFRleHQoIiIsIHRydWUsIHRydWUsIGR1bXBVbmZvcm1hdHRl
ZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwogICAgICAgICB9LAogCiAgICAgICAgIGZ1
bmN0aW9uIHRlc3RVbmZvcm1hdHRlZEluc2VydEVuZChuZXh0KQpAQCAtMTUzLDcgKzE1Myw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RVbmZvcm1hdHRlZFJlbW92
ZUVuZChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB1bmZvcm1hdHRlZFN0eWxlLmFsbFBy
b3BlcnRpZXNbM10uc2V0VGV4dCgiIiwgdHJ1ZSwgZHVtcFVuZm9ybWF0dGVkQW5kQ2FsbE5leHQu
YmluZChudWxsLCBuZXh0KSk7CisgICAgICAgICAgICB1bmZvcm1hdHRlZFN0eWxlLmFsbFByb3Bl
cnRpZXNbM10uc2V0VGV4dCgiIiwgdHJ1ZSwgdHJ1ZSwgZHVtcFVuZm9ybWF0dGVkQW5kQ2FsbE5l
eHQuYmluZChudWxsLCBuZXh0KSk7CiAgICAgICAgIH0sCiAKICAgICAgICAgZnVuY3Rpb24gdGVz
dFVuZm9ybWF0dGVkRGlzYWJsZVN0YXJ0KG5leHQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwKaW5kZXggMzJkNzA0NmYzMmUxYmM5M2FkN2Ni
YWJjYTc4M2MwNDYzMWI1NmMxMi4uNDY4OTUzMjU4Mjk0M2Y4YzdiZjFiNjM1MzgzYTNiNDg4YWM1
YzQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlz
dG9yeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3Rv
cnkuaHRtbApAQCAtNTYsNyArNTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IHN0eWxlU2hlZXQucnVsZXNbMF0u
c3R5bGU7CiAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHN0eWxlLmdldExpdmVQ
cm9wZXJ0eSgibWFyZ2luIik7Ci0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnNldFRleHQo
Im1hcmdpbjoyNXB4OyIsIGZhbHNlLCBzdGVwMik7CisgICAgICAgICAgICAgICAgICAgIHByb3Bl
cnR5LnNldFRleHQoIm1hcmdpbjoyNXB4OyIsIGZhbHNlLCB0cnVlLCBzdGVwMik7CiAgICAgICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQpAQCAtNzUsNyAr
NzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0g
c3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZTsKICAgICAgICAgICAgICAgICAgICAgdmFyIHByb3Bl
cnR5ID0gc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KCJtYXJnaW4iKTsKICAgICAgICAgICAgICAgICAg
ICAgd2FpdEZvclJldmlzaW9uKG5leHQpOwotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5z
ZXRUZXh0KCJtYXJnaW46MzBweDsiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVy
dHkuc2V0VGV4dCgibWFyZ2luOjMwcHg7IiwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgICAgICBdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXgg
MzkyZGNmZTA0MDQzODg2MTFiYzExOTJlZTg1Y2U5MmIwNjQ2MzJiNi4uZDNlYzc4OTQ5YjA5MGY1
NDkwYzMwODM2NTVlMDFmZTAyYTM3NzNlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEs
NiArMSw3IEBACiBUZXN0cyB0aGF0IGFkZGluZyBhIHByb3BlcnR5IGlzIHVuZG9uZSBwcm9wZXJs
eS4KIAotSW5pdGlhbCB2YWx1ZQorPT09IExhc3QgcHJvcGVydHkgPT09CisoSW5pdGlhbCB2YWx1
ZSkKIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCiAKQEAgLTE0LDcgKzE1LDcgQEAg
ZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCiBkaXNwbGF5OiBibG9jazsKIAogCi1BZnRl
ciBhZGRpbmcgcHJvcGVydHkKKyhBZnRlciBhZGRpbmcgcHJvcGVydHkpCiBbZXhwYW5kZWRdIAog
ZWxlbWVudC5zdHlsZSAgeyAoKQogCkBAIC0yMiwxNCArMjMsMTQgQEAgZWxlbWVudC5zdHlsZSAg
eyAoKQogW2V4cGFuZGVkXSAKIC5jb250YWluZXIgIHsgKHVuZG8tYWRkLXByb3BlcnR5Lmh0bWw6
NykKIGZvbnQtd2VpZ2h0OiBib2xkOwotbWFyZ2luLWxlZnQ6IDFweDsKK21hcmdpbi1sZWZ0OiAy
cHg7CiAKIFtleHBhbmRlZF0gCiBkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKIGRpc3Bs
YXk6IGJsb2NrOwogCiAKLUFmdGVyIHVuZG8KKyhBZnRlciB1bmRvKQogW2V4cGFuZGVkXSAKIGVs
ZW1lbnQuc3R5bGUgIHsgKCkKIApAQCAtNDMsNyArNDQsNyBAQCBkaXYgIHsgKHVzZXIgYWdlbnQg
c3R5bGVzaGVldCkKIGRpc3BsYXk6IGJsb2NrOwogCiAKLUFmdGVyIHJlZG8KKyhBZnRlciByZWRv
KQogW2V4cGFuZGVkXSAKIGVsZW1lbnQuc3R5bGUgIHsgKCkKIApAQCAtNTEsNyArNTIsMTM3IEBA
IGVsZW1lbnQuc3R5bGUgIHsgKCkKIFtleHBhbmRlZF0gCiAuY29udGFpbmVyICB7ICh1bmRvLWFk
ZC1wcm9wZXJ0eS5odG1sOjcpCiBmb250LXdlaWdodDogYm9sZDsKLW1hcmdpbi1sZWZ0OiAxcHg7
CittYXJnaW4tbGVmdDogMnB4OworCitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0
eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworCis9PT0gRmlyc3QgcHJvcGVydHkgPT09Ciso
SW5pdGlhbCB2YWx1ZSkKK1tleHBhbmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09
PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorLmNvbnRhaW5lciAg
eyAodW5kby1hZGQtcHJvcGVydHkuaHRtbDo3KQorZm9udC13ZWlnaHQ6IGJvbGQ7CittYXJnaW4t
bGVmdDogMnB4OworCitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQp
CitkaXNwbGF5OiBibG9jazsKKworCisoQWZ0ZXIgYWRkaW5nIHByb3BlcnR5KQorW2V4cGFuZGVk
XSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09
PT09PT0KK1tleHBhbmRlZF0gCisuY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5odG1s
OjcpCittYXJnaW4tdG9wOiAwcHg7Citmb250LXdlaWdodDogYm9sZDsKK21hcmdpbi1sZWZ0OiAy
cHg7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3Bs
YXk6IGJsb2NrOworCisKKyhBZnRlciB1bmRvKQorW2V4cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUg
IHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0g
CisuY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5odG1sOjcpCitmb250LXdlaWdodDog
Ym9sZDsKK21hcmdpbi1sZWZ0OiAycHg7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCisKKyhBZnRlciByZWRvKQorW2V4cGFu
ZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMg
PT09PT09PT0KK1tleHBhbmRlZF0gCisuY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5o
dG1sOjcpCittYXJnaW4tdG9wOiAwcHg7Citmb250LXdlaWdodDogYm9sZDsKK21hcmdpbi1sZWZ0
OiAycHg7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rp
c3BsYXk6IGJsb2NrOworCisKKz09PSBNaWRkbGUgcHJvcGVydHkgPT09CisoSW5pdGlhbCB2YWx1
ZSkKK1tleHBhbmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09PT09IE1hdGNoZWQg
Q1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorLmNvbnRhaW5lciAgeyAodW5kby1hZGQt
cHJvcGVydHkuaHRtbDo3KQorbWFyZ2luLXRvcDogMHB4OworZm9udC13ZWlnaHQ6IGJvbGQ7Citt
YXJnaW4tbGVmdDogMnB4OworCitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxl
c2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworCisoQWZ0ZXIgYWRkaW5nIHByb3BlcnR5KQorW2V4
cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVs
ZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCisuY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0
eS5odG1sOjcpCittYXJnaW4tdG9wOiAwcHg7CittYXJnaW4tcmlnaHQ6IDFweDsKK2ZvbnQtd2Vp
Z2h0OiBib2xkOworbWFyZ2luLWxlZnQ6IDJweDsKKworW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNl
ciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTogYmxvY2s7CisKKworKEFmdGVyIHVuZG8pCitb
ZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQorCis9PT09PT09PSBNYXRjaGVkIENTUyBS
dWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKKy5jb250YWluZXIgIHsgKHVuZG8tYWRkLXByb3Bl
cnR5Lmh0bWw6NykKK21hcmdpbi10b3A6IDBweDsKK2ZvbnQtd2VpZ2h0OiBib2xkOworbWFyZ2lu
LWxlZnQ6IDJweDsKKworW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0
KQorZGlzcGxheTogYmxvY2s7CisKKworKEFmdGVyIHJlZG8pCitbZXhwYW5kZWRdIAorZWxlbWVu
dC5zdHlsZSAgeyAoKQorCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4
cGFuZGVkXSAKKy5jb250YWluZXIgIHsgKHVuZG8tYWRkLXByb3BlcnR5Lmh0bWw6NykKK21hcmdp
bi10b3A6IDBweDsKK21hcmdpbi1yaWdodDogMXB4OworZm9udC13ZWlnaHQ6IGJvbGQ7CittYXJn
aW4tbGVmdDogMnB4OwogCiBbZXhwYW5kZWRdIAogZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hl
ZXQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXBy
b3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3Bl
cnR5Lmh0bWwKaW5kZXggYzVlZGM0OTE1NTQwMTkwY2M5Yjc3OGNhMzFhZDY0YjgyZGNkMGRjNi4u
ZjgxNTAxNGU0MzdiY2FmNWVmY2NlOTQyNGE2NDNkOGNjMmY1YWRlYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHkuaHRtbApAQCAtMTMs
NDIgKzEzLDYxIEBACiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIEluc3BlY3RvclRlc3Quc2Vs
ZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAxKTsKKyAgICBJbnNwZWN0
b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCB0ZXN0QXBwZW5k
UHJvcGVydHkuYmluZChudWxsLCB0ZXN0SW5zZXJ0QmVnaW4pKTsKIAotICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKKyAgICBmdW5jdGlvbiB0ZXN0QXBwZW5kUHJvcGVydHkoKQogICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkluaXRpYWwgdmFsdWUiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIHZhciB0
cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0TWF0Y2hlZFN0eWxlUHJvcGVydHlUcmVlSXRlbSgi
Zm9udC13ZWlnaHQiKTsKLSAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdHJlZUl0ZW0uc2VjdGlv
bi5hZGROZXdCbGFua1Byb3BlcnR5KCk7Ci0gICAgICAgIHRyZWVFbGVtZW50LmFwcGx5U3R5bGVU
ZXh0KCJtYXJnaW4tbGVmdDogMXB4IiwgdHJ1ZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LndhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PSBMYXN0IHByb3BlcnR5ID09PSIpOworICAgICAgICB0ZXN0QWRk
UHJvcGVydHkoIm1hcmdpbi1sZWZ0OiAycHgiLCB1bmRlZmluZWQsIHRlc3RJbnNlcnRCZWdpbik7
CiAgICAgfQogCi0gICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRC
ZWdpbigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgYWRk
aW5nIHByb3BlcnR5Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVu
dFN0eWxlcyh0cnVlKTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQudW5kbygpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJvdGhlciIs
IHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBGaXJzdCBwcm9w
ZXJ0eSA9PT0iKTsKKyAgICAgICAgdGVzdEFkZFByb3BlcnR5KCJtYXJnaW4tdG9wOiAwcHgiLCAw
LCB0ZXN0SW5zZXJ0TWlkZGxlKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBzdGVwMygpCisgICAg
ZnVuY3Rpb24gdGVzdEluc2VydE1pZGRsZSgpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQWZ0ZXIgdW5kbyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxl
Y3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50
LnJlZG8oKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
cygiY29udGFpbmVyIiwgc3RlcDQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
PT09IE1pZGRsZSBwcm9wZXJ0eSA9PT0iKTsKKyAgICAgICAgdGVzdEFkZFByb3BlcnR5KCJtYXJn
aW4tcmlnaHQ6IDFweCIsIDEsIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0LmJpbmQoSW5zcGVj
dG9yVGVzdCkpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKKyAgICBmdW5jdGlvbiB0
ZXN0QWRkUHJvcGVydHkocHJvcGVydHlUZXh0LCBpbmRleCwgY2FsbGJhY2spCiAgICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgcmVkbyIpOworCisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIoSW5pdGlhbCB2YWx1ZSkiKTsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworCisgICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3Rv
clRlc3QuZ2V0TWF0Y2hlZFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKKyAg
ICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdHJlZUl0ZW0uc2VjdGlvbi5hZGROZXdCbGFua1Byb3Bl
cnR5KGluZGV4KTsKKyAgICAgICAgdHJlZUVsZW1lbnQuYXBwbHlTdHlsZVRleHQocHJvcGVydHlU
ZXh0LCB0cnVlLCB0cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJj
b250YWluZXIiLCBzdGVwMSk7CisKKyAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgICAgICB7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiKEFmdGVyIGFkZGluZyBwcm9w
ZXJ0eSkiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcyh0cnVlKTsKKworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm90
aGVyIiwgc3RlcDIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQorICAg
ICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiKEFmdGVyIHVuZG8p
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMo
dHJ1ZSk7CisKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZWRvKCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWlu
ZXIiLCBzdGVwMyk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzdGVwMygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIoQWZ0ZXIgcmVkbyki
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0
cnVlKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0KICAgICB9CiB9CiA8L3Nj
cmlwdD4K
</data>
<flag name="review"
          id="131588"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>