<?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>101276</bug_id>
          
          <creation_ts>2012-11-05 16:32:57 -0800</creation_ts>
          <short_desc>Prototype chain caching should check that the path from the base object to the slot base involves prototype hops only</short_desc>
          <delta_ts>2012-11-05 17:54:03 -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>JavaScriptCore</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>
          
          <blocked>101147</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759020</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-05 16:32:57 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759021</commentid>
    <comment_count>1</comment_count>
      <attachid>172435</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-05 16:36:40 -0800</bug_when>
    <thetext>Created attachment 172435
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759067</commentid>
    <comment_count>2</comment_count>
      <attachid>172435</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-11-05 17:15:40 -0800</bug_when>
    <thetext>Comment on attachment 172435
the patch

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

&gt; Source/JavaScriptCore/runtime/Operations.h:309
&gt; +            if (cell-&gt;inherits(&amp;JSProxy::s_info))

You could use isProxy here if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759097</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-05 17:52:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 172435 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172435&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Operations.h:309
&gt; &gt; +            if (cell-&gt;inherits(&amp;JSProxy::s_info))
&gt; 
&gt; You could use isProxy here if you like.

Good point.  I changed it to use isProxy(), and moved isProxy() to JSCell as per our discussions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759099</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-05 17:54:03 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/133546</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172435</attachid>
            <date>2012-11-05 16:36:40 -0800</date>
            <delta_ts>2012-11-05 17:15:40 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>fixproxy.patch</filename>
            <type>text/plain</type>
            <size>25872</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzNTQwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDEyLTExLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UHJvdG90eXBlIGNoYWluIGNhY2hpbmcgc2hvdWxkIGNoZWNrIHRoYXQgdGhlIHBhdGggZnJvbSB0
aGUgYmFzZSBvYmplY3QgdG8gdGhlIHNsb3QgYmFzZSBpbnZvbHZlcyBwcm90b3R5cGUgaG9wcyBv
bmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEy
NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFu
Z2VkIG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluKCkgdG8gcmVwb3J0IGFuIGludmFsaWQgcHJvdG90
eXBlIGNoYWluIGlmIGFueSBvYmplY3QgaXMgYSBwcm94eS4KKyAgICAgICAgVGhpcyBjYXRjaGVz
IGNhc2VzIHdoZXJlIG91ciBwcm90b3R5cGUgY2hhaW4gY2hlY2tzIHdvdWxkIGhhdmUgYmVlbiBp
bnN1ZmZpY2llbnQgdG8gZ3VhcmQgYWdhaW5zdAorICAgICAgICBuZXdseSBpbnRyb2R1Y2VkIHBy
b3BlcnRpZXMsIGRlc3BlY2lhbGl6ZWQgcHJvcGVydGllcywgb3IgZGVsZXRlZCBwcm9wZXJ0aWVz
IGluIHRoZSBjaGFpbiBvZgorICAgICAgICBvYmplY3RzIGludm9sdmVkIGluIHRoZSBhY2Nlc3Mu
CisKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6dHJ5
Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REZHOjp0cnlCdWlsZEdldEJ5SURQcm90b0xp
c3QpOgorICAgICAgICAoSlNDOjpERkc6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAgIChKU0M6
OkRGRzo6dHJ5QnVpbGRQdXRCeUlkTGlzdCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjp0cnlDYWNoZVB1dEJ5SUQpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVC
X0ZVTkNUSU9OKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9P
cGVyYXRpb25zLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpub3JtYWxpemVQcm90
b3R5cGVDaGFpbik6CisKIDIwMTItMTEtMDUgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5j
b20+CiAKICAgICAgICAgQmFjayBvdXQgY29udHJvdmVyc2lhbCBjaGFuZ2VzIGZyb20gQnVnIDk4
NjY1LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCShyZXZp
c2lvbiAxMzM1MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsNyArMzI0LDcgQEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVH
ZXRCeUlEKEV4ZWNTdGF0ZSogZQogICAgIAogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHNs
b3QuY2FjaGVkT2Zmc2V0KCk7CiAgICAgc2l6ZV90IGNvdW50ID0gbm9ybWFsaXplUHJvdG90eXBl
Q2hhaW4oZXhlYywgYmFzZVZhbHVlLCBzbG90LnNsb3RCYXNlKCksIHByb3BlcnR5TmFtZSwgb2Zm
c2V0KTsKLSAgICBpZiAoIWNvdW50KQorICAgIGlmIChjb3VudCA9PSBJbnZhbGlkUHJvdG90eXBl
Q2hhaW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cnVjdHVyZUNoYWluKiBwcm90
b3R5cGVDaGFpbiA9IHN0cnVjdHVyZS0+cHJvdG90eXBlQ2hhaW4oZXhlYyk7CkBAIC01NTAsNyAr
NTUwLDcgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlEUHJvdG9MaXN0KEV4ZQogICAgIAog
ICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHNsb3QuY2FjaGVkT2Zmc2V0KCk7CiAgICAgc2l6
ZV90IGNvdW50ID0gbm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oZXhlYywgYmFzZVZhbHVlLCBzbG90
LnNsb3RCYXNlKCksIHByb3BlcnR5TmFtZSwgb2Zmc2V0KTsKLSAgICBpZiAoIWNvdW50KQorICAg
IGlmIChjb3VudCA9PSBJbnZhbGlkUHJvdG90eXBlQ2hhaW4pCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1
Y3R1cmUoKTsKQEAgLTk2NCw3ICs5NjQsOCBAQCBzdGF0aWMgYm9vbCB0cnlDYWNoZVB1dEJ5SUQo
RXhlY1N0YXRlKiBlCiAgICAgICAgICAgICBpZiAoaGFzSW5kZXhpbmdIZWFkZXIob2xkU3RydWN0
dXJlLT5pbmRleGluZ1R5cGUoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBub3JtYWxpemVQcm90b3R5cGVDaGFpbihleGVjLCBiYXNl
Q2VsbCk7CisgICAgICAgICAgICBpZiAobm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oZXhlYywgYmFz
ZUNlbGwpID09IEludmFsaWRQcm90b3R5cGVDaGFpbikKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFN0cnVjdHVyZUNoYWluKiBwcm90b3R5
cGVDaGFpbiA9IHN0cnVjdHVyZS0+cHJvdG90eXBlQ2hhaW4oZXhlYyk7CiAgICAgICAgICAgICAK
QEAgLTEwMzUsNyArMTAzNiw4IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkUHV0QnlJZExpc3QoRXhl
Y1N0YXQKICAgICAgICAgICAgIGlmIChoYXNJbmRleGluZ0hlYWRlcihvbGRTdHJ1Y3R1cmUtPmlu
ZGV4aW5nVHlwZSgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluKGV4ZWMsIGJhc2VDZWxsKTsK
KyAgICAgICAgICAgIGlmIChub3JtYWxpemVQcm90b3R5cGVDaGFpbihleGVjLCBiYXNlQ2VsbCkg
PT0gSW52YWxpZFByb3RvdHlwZUNoYWluKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWlu
ID0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbihleGVjKTsKICAgICAgICAgICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzMzUxNikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NjQsNyArODY0LDEwIEBAIE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2FjaGVQ
dXQKICAgICAgICAgfQogCiAgICAgICAgIC8vIHB1dF9ieV9pZF90cmFuc2l0aW9uIGNoZWNrcyB0
aGUgcHJvdG90eXBlIGNoYWluIGZvciBzZXR0ZXJzLgotICAgICAgICBub3JtYWxpemVQcm90b3R5
cGVDaGFpbihjYWxsRnJhbWUsIGJhc2VDZWxsKTsKKyAgICAgICAgaWYgKG5vcm1hbGl6ZVByb3Rv
dHlwZUNoYWluKGNhbGxGcmFtZSwgYmFzZUNlbGwpID09IEludmFsaWRQcm90b3R5cGVDaGFpbikg
eworICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNvZGVCbG9jaywgcmV0
dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIoZGlyZWN0ID8gY3RpX29wX3B1dF9ieV9pZF9kaXJlY3Rf
Z2VuZXJpYyA6IGN0aV9vcF9wdXRfYnlfaWRfZ2VuZXJpYykpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CiAKICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluID0g
c3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbihjYWxsRnJhbWUpOwogICAgICAgICBBU1NFUlQoc3Ry
dWN0dXJlLT5wcmV2aW91c0lEKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFs
aWRhdGVkKCkpOwpAQCAtOTM3LDcgKzk0MCw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5r
czo6dHJ5Q2FjaGVHZXQKIAogICAgIGlmIChzbG90LnNsb3RCYXNlKCkgPT0gc3RydWN0dXJlLT5w
cm90b3R5cGVGb3JMb29rdXAoY2FsbEZyYW1lKSkgewogICAgICAgICBBU1NFUlQoc2xvdC5zbG90
QmFzZSgpLmlzT2JqZWN0KCkpOwotCisgICAgICAgIAogICAgICAgICBKU09iamVjdCogc2xvdEJh
c2VPYmplY3QgPSBhc09iamVjdChzbG90LnNsb3RCYXNlKCkpOwogICAgICAgICBzaXplX3Qgb2Zm
c2V0ID0gc2xvdC5jYWNoZWRPZmZzZXQoKTsKICAgICAgICAgCkBAIC05NTgsNyArOTYxLDcgQEAg
TkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNoZUdldAogCiAgICAgUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0ID0gc2xvdC5jYWNoZWRPZmZzZXQoKTsKICAgICBzaXplX3QgY291bnQgPSBu
b3JtYWxpemVQcm90b3R5cGVDaGFpbihjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgc2xvdC5zbG90QmFz
ZSgpLCBwcm9wZXJ0eU5hbWUsIG9mZnNldCk7Ci0gICAgaWYgKCFjb3VudCkgeworICAgIGlmIChj
b3VudCA9PSBJbnZhbGlkUHJvdG90eXBlQ2hhaW4pIHsKICAgICAgICAgc3R1YkluZm8tPmFjY2Vz
c1R5cGUgPSBhY2Nlc3NfZ2V0X2J5X2lkX2dlbmVyaWM7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0xODczLDcgKzE4NzYsMTMgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFs
dWUsIG9wXwogICAgICAgICAgICAgaWYgKGxpc3RJbmRleCA9PSAoUE9MWU1PUlBISUNfTElTVF9D
QUNIRV9TSVpFIC0gMSkpCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRy
ZXNzKGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX2dl
dF9ieV9pZF9wcm90b19saXN0X2Z1bGwpKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoc2l6
ZV90IGNvdW50ID0gbm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oY2FsbEZyYW1lLCBiYXNlVmFsdWUs
IHNsb3Quc2xvdEJhc2UoKSwgcHJvcGVydHlOYW1lLCBvZmZzZXQpKSB7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc2l6ZV90IGNvdW50ID0gbm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oY2FsbEZyYW1l
LCBiYXNlVmFsdWUsIHNsb3Quc2xvdEJhc2UoKSwgcHJvcGVydHlOYW1lLCBvZmZzZXQpOworICAg
ICAgICBpZiAoY291bnQgPT0gSW52YWxpZFByb3RvdHlwZUNoYWluKSB7CisgICAgICAgICAgICBj
dGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNT
LCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2ZhaWwpKTsKKyAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICAKICAg
ICAgICAgQVNTRVJUKCFiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25h
cnkoKSk7CiAgICAgICAgIGludCBsaXN0SW5kZXg7CiAgICAgICAgIFBvbHltb3JwaGljQWNjZXNz
U3RydWN0dXJlTGlzdCogcHJvdG90eXBlU3RydWN0dXJlTGlzdCA9IGdldFBvbHltb3JwaGljQWNj
ZXNzU3RydWN0dXJlTGlzdFNsb3QoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGNvZGVCbG9jay0+
b3duZXJFeGVjdXRhYmxlKCksIHN0dWJJbmZvLCBsaXN0SW5kZXgpOwpAQCAtMTg4NSw4ICsxODk0
LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogICAgICAgICAg
ICAgaWYgKGxpc3RJbmRleCA9PSAoUE9MWU1PUlBISUNfTElTVF9DQUNIRV9TSVpFIC0gMSkpCiAg
ICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNvZGVCbG9jaywgU1RV
Ql9SRVRVUk5fQUREUkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX2dldF9ieV9pZF9wcm90b19saXN0
X2Z1bGwpKTsKICAgICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICBjdGlQYXRjaENhbGxCeVJl
dHVybkFkZHJlc3MoY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihj
dGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2ZhaWwpKTsKKyAgICB9CiAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDEzMzUxNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
MDEsMzIgKzEwMDEsMzIgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9p
ZAogICAgICAgICAgICAgICAgICAgICAvLyBiZWxvdyBtYXkgR0MuCiAgICAgICAgICAgICAgICAg
ICAgIHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShsbGludF9vcF9wdXRfYnlfaWQp
OwogCi0gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluKGV4ZWMsIGJh
c2VDZWxsKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIEFTU0VS
VChzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKS0+aXNPYmplY3QoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHBjWzRdLnUuc3RydWN0dXJlLnNldCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGdsb2Jh
bERhdGEsIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZS0+cHJldmlvdXNJ
RCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzSW5saW5lT2Zmc2V0KHNsb3QuY2FjaGVk
T2Zmc2V0KCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgcGNbNV0udS5vcGVyYW5kID0gb2Zm
c2V0SW5JbmxpbmVTdG9yYWdlKHNsb3QuY2FjaGVkT2Zmc2V0KCkpICogc2l6ZW9mKEpTVmFsdWUp
ICsgSlNPYmplY3Q6Om9mZnNldE9mSW5saW5lU3RvcmFnZSgpOwotICAgICAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBvZmZzZXRJ
bkJ1dHRlcmZseShzbG90LmNhY2hlZE9mZnNldCgpKSAqIHNpemVvZihKU1ZhbHVlKTsKLSAgICAg
ICAgICAgICAgICAgICAgcGNbNl0udS5zdHJ1Y3R1cmUuc2V0KAotICAgICAgICAgICAgICAgICAg
ICAgICAgZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgc3RydWN0dXJl
KTsKLSAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIGNoYWluID0gc3RydWN0dXJl
LT5wcm90b3R5cGVDaGFpbihleGVjKTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGNoYWlu
KTsKLSAgICAgICAgICAgICAgICAgICAgcGNbN10udS5zdHJ1Y3R1cmVDaGFpbi5zZXQoCi0gICAg
ICAgICAgICAgICAgICAgICAgICBnbG9iYWxEYXRhLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJs
ZSgpLCBjaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBp
ZiAocGNbOF0udS5vcGVyYW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVQ
cm90b3R5cGVDaGFpbihleGVjLCBiYXNlQ2VsbCkgIT0gSW52YWxpZFByb3RvdHlwZUNoYWluKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5wcmV2aW91c0lEKCkt
PmlzT2JqZWN0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcGNbNF0udS5zdHJ1Y3R1cmUu
c2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbERhdGEsIGNvZGVCbG9jay0+
b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZS0+cHJldmlvdXNJRCgpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChpc0lubGluZU9mZnNldChzbG90LmNhY2hlZE9mZnNldCgpKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNv
ZGUobGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fZGlyZWN0KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBvZmZzZXRJbklubGluZVN0b3JhZ2Uoc2xv
dC5jYWNoZWRPZmZzZXQoKSkgKiBzaXplb2YoSlNWYWx1ZSkgKyBKU09iamVjdDo6b2Zmc2V0T2ZJ
bmxpbmVTdG9yYWdlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKGxsaW50
X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdF9vdXRfb2ZfbGluZSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbmxpbmVP
ZmZzZXQoc2xvdC5jYWNoZWRPZmZzZXQoKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKGxsaW50X29wX3B1dF9ieV9pZF90cmFu
c2l0aW9uX25vcm1hbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKGxsaW50
X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbF9vdXRfb2ZfbGluZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGNbNV0udS5vcGVyYW5kID0gb2Zmc2V0SW5CdXR0ZXJmbHkoc2xv
dC5jYWNoZWRPZmZzZXQoKSkgKiBzaXplb2YoSlNWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBwY1s2XS51LnN0cnVjdHVyZS5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgc3RydWN0dXJlKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFN0cnVjdHVyZUNoYWluKiBjaGFpbiA9IHN0cnVjdHVyZS0+
cHJvdG90eXBlQ2hhaW4oZXhlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2hh
aW4pOworICAgICAgICAgICAgICAgICAgICAgICAgcGNbN10udS5zdHJ1Y3R1cmVDaGFpbi5zZXQo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25l
ckV4ZWN1dGFibGUoKSwgY2hhaW4pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChwY1s4XS51Lm9wZXJhbmQpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNJbmxpbmVPZmZzZXQoc2xvdC5jYWNoZWRPZmZzZXQoKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29k
ZShsbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9kaXJlY3QpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNbMF0u
dS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKGxsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9u
X2RpcmVjdF9vdXRfb2ZfbGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0lubGluZU9mZnNldChzbG90LmNhY2hl
ZE9mZnNldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNbMF0udS5vcGNv
ZGUgPSBMTEludDo6Z2V0T3Bjb2RlKGxsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1h
bCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUobGxpbnRfb3Bf
cHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsX291dF9vZl9saW5lKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxMzM1MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpT
VmFsdWVJbmxpbmVNZXRob2RzLmgiCiAKQEAgLTI5NywxOSArMjk4LDI0IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShjYWxsRnJhbWUsIHYxLCB2Mik7CiAg
ICAgfQogCisjZGVmaW5lIEludmFsaWRQcm90b3R5cGVDaGFpbiAoc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSkKKwogICAgIGlubGluZSBzaXplX3Qgbm9ybWFsaXplUHJvdG90eXBl
Q2hhaW4oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZSwgSlNWYWx1ZSBzbG90QmFz
ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eU9mZnNldCYgc2xvdE9m
ZnNldCkKICAgICB7CiAgICAgICAgIEpTQ2VsbCogY2VsbCA9IGJhc2UuYXNDZWxsKCk7CiAgICAg
ICAgIHNpemVfdCBjb3VudCA9IDA7CiAKICAgICAgICAgd2hpbGUgKHNsb3RCYXNlICE9IGNlbGwp
IHsKKyAgICAgICAgICAgIGlmIChjZWxsLT5pbmhlcml0cygmSlNQcm94eTo6c19pbmZvKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gSW52YWxpZFByb3RvdHlwZUNoYWluOworICAgICAgICAgICAg
CiAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBjZWxsLT5zdHJ1Y3R1cmUoKS0+cHJvdG90eXBlRm9y
TG9va3VwKGNhbGxGcmFtZSk7CiAKICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIHNs
b3RCYXNlIGluIGJhc2UncyBwcm90b3R5cGUgY2hhaW4sIHRoZW4gYmFzZQogICAgICAgICAgICAg
Ly8gbXVzdCBiZSBhIHByb3h5IGZvciBhbm90aGVyIG9iamVjdC4KIAogICAgICAgICAgICAgaWYg
KHYuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEludmFsaWRQcm90b3R5cGVDaGFpbjsKIAogICAgICAgICAgICAgY2VsbCA9IHYuYXND
ZWxsKCk7CiAKQEAgLTMzMiw2ICszMzgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAg
ICAgIHNpemVfdCBjb3VudCA9IDA7CiAgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICBp
ZiAoYmFzZS0+aW5oZXJpdHMoJkpTUHJveHk6OnNfaW5mbykpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEludmFsaWRQcm90b3R5cGVDaGFpbjsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgSlNW
YWx1ZSB2ID0gYmFzZS0+c3RydWN0dXJlKCktPnByb3RvdHlwZUZvckxvb2t1cChjYWxsRnJhbWUp
OwogICAgICAgICAgICAgaWYgKHYuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNv
dW50OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzNTQwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMDUgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBQcm90b3R5cGUgY2hhaW4gY2FjaGluZyBz
aG91bGQgY2hlY2sgdGhhdCB0aGUgcGF0aCBmcm9tIHRoZSBiYXNlIG9iamVjdCB0byB0aGUgc2xv
dCBiYXNlIGludm9sdmVzIHByb3RvdHlwZSBob3BzIG9ubHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTI3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdGVzdCBhbHJlYWR5IGNvdmVyZWQgdGhp
cyBjYXNlLCBidXQgb25seSBmb3IgbWV0aG9kX2NoZWNrLiBNb2RpZmllZCBpdCB0bworICAgICAg
ICBhbHNvIGNvdmVyIHRoZSBnZXRfYnlfaWQgY2FzZS4KKworICAgICAgICAqIGZhc3QvanMvdG9T
dHJpbmctYW5kLXZhbHVlT2Ytb3ZlcnJpZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
anMvdG9TdHJpbmctYW5kLXZhbHVlT2Ytb3ZlcnJpZGUuaHRtbDoKKwogMjAxMi0xMS0wNSAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZWQgZmxha3kgZmFzdC94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3luYy1ldmVudC5odG1sLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1hbmQtdmFsdWVPZi1vdmVycmlkZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1h
bmQtdmFsdWVPZi1vdmVycmlkZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzMzUxNikKKysrIExh
eW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctYW5kLXZhbHVlT2Ytb3ZlcnJpZGUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsOCBAQCBzcGFuIDogW29iamVjdCBIVE1MU3Bh
bkVsZW1lbnRdCiBbc3Bhbl0gOiBbb2JqZWN0IEhUTUxTcGFuRWxlbWVudF0KIFN0cmluZyhzcGFu
KSA6IFtvYmplY3QgSFRNTFNwYW5FbGVtZW50XQogU3RyaW5nKFtzcGFuXSkgOiBbb2JqZWN0IEhU
TUxTcGFuRWxlbWVudF0KK3NwYW4udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHsgW25h
dGl2ZSBjb2RlXSB9CitzcGFuLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiBbb2Jq
ZWN0IFVuZGVmaW5lZF0KIHNwYW4udG9TdHJpbmcoKSA6IFtvYmplY3QgSFRNTFNwYW5FbGVtZW50
XQogW3NwYW5dLnRvU3RyaW5nKCkgOiBbb2JqZWN0IEhUTUxTcGFuRWxlbWVudF0KIHNwYW4udmFs
dWVPZigpIDogW29iamVjdCBIVE1MU3BhbkVsZW1lbnRdCkBAIC0xMyw2ICsxNSw4IEBAIHNwYW4g
OiB2YWx1ZU9mCiBbc3Bhbl0gOiB0b1N0cmluZwogU3RyaW5nKHNwYW4pIDogdG9TdHJpbmcKIFN0
cmluZyhbc3Bhbl0pIDogdG9TdHJpbmcKK3NwYW4udG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHJl
dHVybiAidG9TdHJpbmciOyB9CitzcGFuLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkg
OiB0b1N0cmluZwogc3Bhbi50b1N0cmluZygpIDogdG9TdHJpbmcKIFtzcGFuXS50b1N0cmluZygp
IDogdG9TdHJpbmcKIHNwYW4udmFsdWVPZigpIDogdmFsdWVPZgpAQCAtMjMsNiArMjcsOCBAQCBz
cGFuIDogdmFsdWVPZgogW3NwYW5dIDogdmFsdWVPZgogU3RyaW5nKHNwYW4pIDogdmFsdWVPZgog
U3RyaW5nKFtzcGFuXSkgOiB2YWx1ZU9mCitzcGFuLnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gbmV3IE9iamVjdCgpOyB9CitzcGFuLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJs
ZSkgOiBbb2JqZWN0IE9iamVjdF0KIHNwYW4udG9TdHJpbmcoKSA6IFtvYmplY3QgT2JqZWN0XQog
W3NwYW5dLnRvU3RyaW5nKCkgOiB2YWx1ZU9mCiBzcGFuLnZhbHVlT2YoKSA6IHZhbHVlT2YKQEAg
LTMzLDYgKzM5LDggQEAgc3BhbiA6IHRvU3RyaW5nCiBbc3Bhbl0gOiB0b1N0cmluZwogU3RyaW5n
KHNwYW4pIDogdG9TdHJpbmcKIFN0cmluZyhbc3Bhbl0pIDogdG9TdHJpbmcKK3NwYW4udG9TdHJp
bmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiAndG9TdHJpbmcnOyB9CitzcGFuLnRvU3RyaW5nKCkg
KGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0cmluZwogc3Bhbi50b1N0cmluZygpIDogdG9TdHJp
bmcKIFtzcGFuXS50b1N0cmluZygpIDogdG9TdHJpbmcKIHNwYW4udmFsdWVPZigpIDogW29iamVj
dCBPYmplY3RdCkBAIC00Myw2ICs1MSw4IEBAIFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQog
VHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUK
IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQorc3Bhbi50b1N0cmluZyA6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIG5ldyBPYmplY3QoKTsgfQorc3Bhbi50b1N0cmluZygpIChjYWNoZWQgaW4gdmFy
aWFibGUpIDogW29iamVjdCBPYmplY3RdCiBzcGFuLnRvU3RyaW5nKCkgOiBbb2JqZWN0IE9iamVj
dF0KIFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQogc3Bhbi52YWx1ZU9mKCkgOiBbb2JqZWN0
IE9iamVjdF0KQEAgLTUzLDYgKzYzLDggQEAgc3BhbiA6IHZhbHVlT2YKIEV4Y2VwdGlvbgogRXhj
ZXB0aW9uCiBFeGNlcHRpb24KK3NwYW4udG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHRocm93ICJF
eGNlcHRpb24iOyB9CitFeGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBzcGFuLnZhbHVl
T2YoKSA6IHZhbHVlT2YKQEAgLTYzLDYgKzc1LDggQEAgRXhjZXB0aW9uCiBbc3Bhbl0gOiB0b1N0
cmluZwogU3RyaW5nKHNwYW4pIDogdG9TdHJpbmcKIFN0cmluZyhbc3Bhbl0pIDogdG9TdHJpbmcK
K3NwYW4udG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiAndG9TdHJpbmcnOyB9CitzcGFu
LnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0cmluZwogc3Bhbi50b1N0cmlu
ZygpIDogdG9TdHJpbmcKIFtzcGFuXS50b1N0cmluZygpIDogdG9TdHJpbmcKIEV4Y2VwdGlvbgpA
QCAtNzMsNiArODcsOCBAQCBFeGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRp
b24KK3NwYW4udG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHRocm93ICJFeGNlcHRpb24iOyB9CitF
eGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRpb24KQEAgLTg0LDYgKzEwMCw4
IEBAIHdpbmRvdyA6IFtvYmplY3QgV2luZG93XQogW3dpbmRvd10gOiBbb2JqZWN0IFdpbmRvd10K
IFN0cmluZyh3aW5kb3cpIDogW29iamVjdCBXaW5kb3ddCiBTdHJpbmcoW3dpbmRvd10pIDogW29i
amVjdCBXaW5kb3ddCit3aW5kb3cudG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHsgW25h
dGl2ZSBjb2RlXSB9Cit3aW5kb3cudG9TdHJpbmcoKSAoY2FjaGVkIGluIHZhcmlhYmxlKSA6IFtv
YmplY3QgVW5kZWZpbmVkXQogd2luZG93LnRvU3RyaW5nKCkgOiBbb2JqZWN0IFdpbmRvd10KIFt3
aW5kb3ddLnRvU3RyaW5nKCkgOiBbb2JqZWN0IFdpbmRvd10KIHdpbmRvdy52YWx1ZU9mKCkgOiBb
b2JqZWN0IFdpbmRvd10KQEAgLTk0LDYgKzExMiw4IEBAIHdpbmRvdyA6IHZhbHVlT2YKIFt3aW5k
b3ddIDogdG9TdHJpbmcKIFN0cmluZyh3aW5kb3cpIDogdG9TdHJpbmcKIFN0cmluZyhbd2luZG93
XSkgOiB0b1N0cmluZword2luZG93LnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyByZXR1cm4gInRv
U3RyaW5nIjsgfQord2luZG93LnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0
cmluZwogd2luZG93LnRvU3RyaW5nKCkgOiB0b1N0cmluZwogW3dpbmRvd10udG9TdHJpbmcoKSA6
IHRvU3RyaW5nCiB3aW5kb3cudmFsdWVPZigpIDogdmFsdWVPZgpAQCAtMTA0LDYgKzEyNCw4IEBA
IHdpbmRvdyA6IHZhbHVlT2YKIFt3aW5kb3ddIDogdmFsdWVPZgogU3RyaW5nKHdpbmRvdykgOiB2
YWx1ZU9mCiBTdHJpbmcoW3dpbmRvd10pIDogdmFsdWVPZgord2luZG93LnRvU3RyaW5nIDogZnVu
Y3Rpb24gKCkgeyByZXR1cm4gbmV3IE9iamVjdCgpOyB9Cit3aW5kb3cudG9TdHJpbmcoKSAoY2Fj
aGVkIGluIHZhcmlhYmxlKSA6IFtvYmplY3QgT2JqZWN0XQogd2luZG93LnRvU3RyaW5nKCkgOiBb
b2JqZWN0IE9iamVjdF0KIFt3aW5kb3ddLnRvU3RyaW5nKCkgOiB2YWx1ZU9mCiB3aW5kb3cudmFs
dWVPZigpIDogdmFsdWVPZgpAQCAtMTE0LDYgKzEzNiw4IEBAIHdpbmRvdyA6IHRvU3RyaW5nCiBb
d2luZG93XSA6IHRvU3RyaW5nCiBTdHJpbmcod2luZG93KSA6IHRvU3RyaW5nCiBTdHJpbmcoW3dp
bmRvd10pIDogdG9TdHJpbmcKK3dpbmRvdy50b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsgcmV0dXJu
ICd0b1N0cmluZyc7IH0KK3dpbmRvdy50b1N0cmluZygpIChjYWNoZWQgaW4gdmFyaWFibGUpIDog
dG9TdHJpbmcKIHdpbmRvdy50b1N0cmluZygpIDogdG9TdHJpbmcKIFt3aW5kb3ddLnRvU3RyaW5n
KCkgOiB0b1N0cmluZwogd2luZG93LnZhbHVlT2YoKSA6IFtvYmplY3QgT2JqZWN0XQpAQCAtMTI0
LDYgKzE0OCw4IEBAIFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQogVHlwZUVycm9yOiBObyBk
ZWZhdWx0IHZhbHVlCiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFR5cGVFcnJvcjogTm8g
ZGVmYXVsdCB2YWx1ZQord2luZG93LnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3
IE9iamVjdCgpOyB9Cit3aW5kb3cudG9TdHJpbmcoKSAoY2FjaGVkIGluIHZhcmlhYmxlKSA6IFtv
YmplY3QgT2JqZWN0XQogd2luZG93LnRvU3RyaW5nKCkgOiBbb2JqZWN0IE9iamVjdF0KIFR5cGVF
cnJvcjogTm8gZGVmYXVsdCB2YWx1ZQogd2luZG93LnZhbHVlT2YoKSA6IFtvYmplY3QgT2JqZWN0
XQpAQCAtMTM0LDYgKzE2MCw4IEBAIHdpbmRvdyA6IHZhbHVlT2YKIEV4Y2VwdGlvbgogRXhjZXB0
aW9uCiBFeGNlcHRpb24KK3dpbmRvdy50b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsgdGhyb3cgIkV4
Y2VwdGlvbiI7IH0KK0V4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRpb24KIHdpbmRvdy52YWx1
ZU9mKCkgOiB2YWx1ZU9mCkBAIC0xNDQsNiArMTcyLDggQEAgRXhjZXB0aW9uCiBbd2luZG93XSA6
IHRvU3RyaW5nCiBTdHJpbmcod2luZG93KSA6IHRvU3RyaW5nCiBTdHJpbmcoW3dpbmRvd10pIDog
dG9TdHJpbmcKK3dpbmRvdy50b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICd0b1N0cmlu
Zyc7IH0KK3dpbmRvdy50b1N0cmluZygpIChjYWNoZWQgaW4gdmFyaWFibGUpIDogdG9TdHJpbmcK
IHdpbmRvdy50b1N0cmluZygpIDogdG9TdHJpbmcKIFt3aW5kb3ddLnRvU3RyaW5nKCkgOiB0b1N0
cmluZwogRXhjZXB0aW9uCkBAIC0xNTQsNiArMTg0LDggQEAgRXhjZXB0aW9uCiBFeGNlcHRpb24K
IEV4Y2VwdGlvbgogRXhjZXB0aW9uCit3aW5kb3cudG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHRo
cm93ICJFeGNlcHRpb24iOyB9CitFeGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNl
cHRpb24KQEAgLTE2NSw2ICsxOTcsOCBAQCBOYXZpZ2F0b3IgOiBbb2JqZWN0IE5hdmlnYXRvcl0K
IFtOYXZpZ2F0b3JdIDogW29iamVjdCBOYXZpZ2F0b3JdCiBTdHJpbmcoTmF2aWdhdG9yKSA6IFtv
YmplY3QgTmF2aWdhdG9yXQogU3RyaW5nKFtOYXZpZ2F0b3JdKSA6IFtvYmplY3QgTmF2aWdhdG9y
XQorTmF2aWdhdG9yLnRvU3RyaW5nIDogZnVuY3Rpb24gdG9TdHJpbmcoKSB7IFtuYXRpdmUgY29k
ZV0gfQorTmF2aWdhdG9yLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiBbb2JqZWN0
IFVuZGVmaW5lZF0KIE5hdmlnYXRvci50b1N0cmluZygpIDogW29iamVjdCBOYXZpZ2F0b3JdCiBb
TmF2aWdhdG9yXS50b1N0cmluZygpIDogW29iamVjdCBOYXZpZ2F0b3JdCiBOYXZpZ2F0b3IudmFs
dWVPZigpIDogW29iamVjdCBOYXZpZ2F0b3JdCkBAIC0xNzUsNiArMjA5LDggQEAgTmF2aWdhdG9y
IDogdmFsdWVPZgogW05hdmlnYXRvcl0gOiB0b1N0cmluZwogU3RyaW5nKE5hdmlnYXRvcikgOiB0
b1N0cmluZwogU3RyaW5nKFtOYXZpZ2F0b3JdKSA6IHRvU3RyaW5nCitOYXZpZ2F0b3IudG9TdHJp
bmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiAidG9TdHJpbmciOyB9CitOYXZpZ2F0b3IudG9TdHJp
bmcoKSAoY2FjaGVkIGluIHZhcmlhYmxlKSA6IHRvU3RyaW5nCiBOYXZpZ2F0b3IudG9TdHJpbmco
KSA6IHRvU3RyaW5nCiBbTmF2aWdhdG9yXS50b1N0cmluZygpIDogdG9TdHJpbmcKIE5hdmlnYXRv
ci52YWx1ZU9mKCkgOiB2YWx1ZU9mCkBAIC0xODUsNiArMjIxLDggQEAgTmF2aWdhdG9yIDogdmFs
dWVPZgogW05hdmlnYXRvcl0gOiB2YWx1ZU9mCiBTdHJpbmcoTmF2aWdhdG9yKSA6IHZhbHVlT2YK
IFN0cmluZyhbTmF2aWdhdG9yXSkgOiB2YWx1ZU9mCitOYXZpZ2F0b3IudG9TdHJpbmcgOiBmdW5j
dGlvbiAoKSB7IHJldHVybiBuZXcgT2JqZWN0KCk7IH0KK05hdmlnYXRvci50b1N0cmluZygpIChj
YWNoZWQgaW4gdmFyaWFibGUpIDogW29iamVjdCBPYmplY3RdCiBOYXZpZ2F0b3IudG9TdHJpbmco
KSA6IFtvYmplY3QgT2JqZWN0XQogW05hdmlnYXRvcl0udG9TdHJpbmcoKSA6IHZhbHVlT2YKIE5h
dmlnYXRvci52YWx1ZU9mKCkgOiB2YWx1ZU9mCkBAIC0xOTUsNiArMjMzLDggQEAgTmF2aWdhdG9y
IDogdG9TdHJpbmcKIFtOYXZpZ2F0b3JdIDogdG9TdHJpbmcKIFN0cmluZyhOYXZpZ2F0b3IpIDog
dG9TdHJpbmcKIFN0cmluZyhbTmF2aWdhdG9yXSkgOiB0b1N0cmluZworTmF2aWdhdG9yLnRvU3Ry
aW5nIDogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ3RvU3RyaW5nJzsgfQorTmF2aWdhdG9yLnRvU3Ry
aW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0cmluZwogTmF2aWdhdG9yLnRvU3RyaW5n
KCkgOiB0b1N0cmluZwogW05hdmlnYXRvcl0udG9TdHJpbmcoKSA6IHRvU3RyaW5nCiBOYXZpZ2F0
b3IudmFsdWVPZigpIDogW29iamVjdCBPYmplY3RdCkBAIC0yMDUsNiArMjQ1LDggQEAgVHlwZUVy
cm9yOiBObyBkZWZhdWx0IHZhbHVlCiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFR5cGVF
cnJvcjogTm8gZGVmYXVsdCB2YWx1ZQogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCitOYXZp
Z2F0b3IudG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgT2JqZWN0KCk7IH0KK05h
dmlnYXRvci50b1N0cmluZygpIChjYWNoZWQgaW4gdmFyaWFibGUpIDogW29iamVjdCBPYmplY3Rd
CiBOYXZpZ2F0b3IudG9TdHJpbmcoKSA6IFtvYmplY3QgT2JqZWN0XQogVHlwZUVycm9yOiBObyBk
ZWZhdWx0IHZhbHVlCiBOYXZpZ2F0b3IudmFsdWVPZigpIDogW29iamVjdCBPYmplY3RdCkBAIC0y
MTUsNiArMjU3LDggQEAgTmF2aWdhdG9yIDogdmFsdWVPZgogRXhjZXB0aW9uCiBFeGNlcHRpb24K
IEV4Y2VwdGlvbgorTmF2aWdhdG9yLnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyB0aHJvdyAiRXhj
ZXB0aW9uIjsgfQorRXhjZXB0aW9uCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgogTmF2aWdhdG9yLnZh
bHVlT2YoKSA6IHZhbHVlT2YKQEAgLTIyNSw2ICsyNjksOCBAQCBFeGNlcHRpb24KIFtOYXZpZ2F0
b3JdIDogdG9TdHJpbmcKIFN0cmluZyhOYXZpZ2F0b3IpIDogdG9TdHJpbmcKIFN0cmluZyhbTmF2
aWdhdG9yXSkgOiB0b1N0cmluZworTmF2aWdhdG9yLnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gJ3RvU3RyaW5nJzsgfQorTmF2aWdhdG9yLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJp
YWJsZSkgOiB0b1N0cmluZwogTmF2aWdhdG9yLnRvU3RyaW5nKCkgOiB0b1N0cmluZwogW05hdmln
YXRvcl0udG9TdHJpbmcoKSA6IHRvU3RyaW5nCiBFeGNlcHRpb24KQEAgLTIzNSw2ICsyODEsOCBA
QCBFeGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRpb24KK05hdmlnYXRvci50
b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsgdGhyb3cgIkV4Y2VwdGlvbiI7IH0KK0V4Y2VwdGlvbgog
RXhjZXB0aW9uCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgpAQCAtMjQ2LDYgKzI5NCw4IEBAIEhpc3Rv
cnkgOiBbb2JqZWN0IEhpc3RvcnldCiBbSGlzdG9yeV0gOiBbb2JqZWN0IEhpc3RvcnldCiBTdHJp
bmcoSGlzdG9yeSkgOiBbb2JqZWN0IEhpc3RvcnldCiBTdHJpbmcoW0hpc3RvcnldKSA6IFtvYmpl
Y3QgSGlzdG9yeV0KK0hpc3RvcnkudG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHsgW25h
dGl2ZSBjb2RlXSB9CitIaXN0b3J5LnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiBb
b2JqZWN0IFVuZGVmaW5lZF0KIEhpc3RvcnkudG9TdHJpbmcoKSA6IFtvYmplY3QgSGlzdG9yeV0K
IFtIaXN0b3J5XS50b1N0cmluZygpIDogW29iamVjdCBIaXN0b3J5XQogSGlzdG9yeS52YWx1ZU9m
KCkgOiBbb2JqZWN0IEhpc3RvcnldCkBAIC0yNTYsNiArMzA2LDggQEAgSGlzdG9yeSA6IHZhbHVl
T2YKIFtIaXN0b3J5XSA6IHRvU3RyaW5nCiBTdHJpbmcoSGlzdG9yeSkgOiB0b1N0cmluZwogU3Ry
aW5nKFtIaXN0b3J5XSkgOiB0b1N0cmluZworSGlzdG9yeS50b1N0cmluZyA6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuICJ0b1N0cmluZyI7IH0KK0hpc3RvcnkudG9TdHJpbmcoKSAoY2FjaGVkIGluIHZh
cmlhYmxlKSA6IHRvU3RyaW5nCiBIaXN0b3J5LnRvU3RyaW5nKCkgOiB0b1N0cmluZwogW0hpc3Rv
cnldLnRvU3RyaW5nKCkgOiB0b1N0cmluZwogSGlzdG9yeS52YWx1ZU9mKCkgOiB2YWx1ZU9mCkBA
IC0yNjYsNiArMzE4LDggQEAgSGlzdG9yeSA6IHZhbHVlT2YKIFtIaXN0b3J5XSA6IHZhbHVlT2YK
IFN0cmluZyhIaXN0b3J5KSA6IHZhbHVlT2YKIFN0cmluZyhbSGlzdG9yeV0pIDogdmFsdWVPZgor
SGlzdG9yeS50b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBPYmplY3QoKTsgfQor
SGlzdG9yeS50b1N0cmluZygpIChjYWNoZWQgaW4gdmFyaWFibGUpIDogW29iamVjdCBPYmplY3Rd
CiBIaXN0b3J5LnRvU3RyaW5nKCkgOiBbb2JqZWN0IE9iamVjdF0KIFtIaXN0b3J5XS50b1N0cmlu
ZygpIDogdmFsdWVPZgogSGlzdG9yeS52YWx1ZU9mKCkgOiB2YWx1ZU9mCkBAIC0yNzYsNiArMzMw
LDggQEAgSGlzdG9yeSA6IHRvU3RyaW5nCiBbSGlzdG9yeV0gOiB0b1N0cmluZwogU3RyaW5nKEhp
c3RvcnkpIDogdG9TdHJpbmcKIFN0cmluZyhbSGlzdG9yeV0pIDogdG9TdHJpbmcKK0hpc3Rvcnku
dG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiAndG9TdHJpbmcnOyB9CitIaXN0b3J5LnRv
U3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0cmluZwogSGlzdG9yeS50b1N0cmlu
ZygpIDogdG9TdHJpbmcKIFtIaXN0b3J5XS50b1N0cmluZygpIDogdG9TdHJpbmcKIEhpc3Rvcnku
dmFsdWVPZigpIDogW29iamVjdCBPYmplY3RdCkBAIC0yODYsNiArMzQyLDggQEAgVHlwZUVycm9y
OiBObyBkZWZhdWx0IHZhbHVlCiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFR5cGVFcnJv
cjogTm8gZGVmYXVsdCB2YWx1ZQogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCitIaXN0b3J5
LnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IE9iamVjdCgpOyB9CitIaXN0b3J5
LnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiBbb2JqZWN0IE9iamVjdF0KIEhpc3Rv
cnkudG9TdHJpbmcoKSA6IFtvYmplY3QgT2JqZWN0XQogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZh
bHVlCiBIaXN0b3J5LnZhbHVlT2YoKSA6IFtvYmplY3QgT2JqZWN0XQpAQCAtMjk2LDYgKzM1NCw4
IEBAIEhpc3RvcnkgOiB2YWx1ZU9mCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCitI
aXN0b3J5LnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyB0aHJvdyAiRXhjZXB0aW9uIjsgfQorRXhj
ZXB0aW9uCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgogSGlzdG9yeS52YWx1ZU9mKCkgOiB2YWx1ZU9m
CkBAIC0zMDYsNiArMzY2LDggQEAgRXhjZXB0aW9uCiBbSGlzdG9yeV0gOiB0b1N0cmluZwogU3Ry
aW5nKEhpc3RvcnkpIDogdG9TdHJpbmcKIFN0cmluZyhbSGlzdG9yeV0pIDogdG9TdHJpbmcKK0hp
c3RvcnkudG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiAndG9TdHJpbmcnOyB9CitIaXN0
b3J5LnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0cmluZwogSGlzdG9yeS50
b1N0cmluZygpIDogdG9TdHJpbmcKIFtIaXN0b3J5XS50b1N0cmluZygpIDogdG9TdHJpbmcKIEV4
Y2VwdGlvbgpAQCAtMzE2LDYgKzM3OCw4IEBAIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRp
b24KIEV4Y2VwdGlvbgorSGlzdG9yeS50b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsgdGhyb3cgIkV4
Y2VwdGlvbiI7IH0KK0V4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgpA
QCAtMzI3LDYgKzM5MSw4IEBAIFNlbGVjdGlvbiA6IAogW1NlbGVjdGlvbl0gOiAKIFN0cmluZyhT
ZWxlY3Rpb24pIDogCiBTdHJpbmcoW1NlbGVjdGlvbl0pIDogCitTZWxlY3Rpb24udG9TdHJpbmcg
OiBmdW5jdGlvbiB0b1N0cmluZygpIHsgW25hdGl2ZSBjb2RlXSB9CitUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IKIFNlbGVjdGlvbi50b1N0cmluZygpIDogCiBbU2VsZWN0aW9uXS50b1N0cmluZygpIDog
CiBTZWxlY3Rpb24udmFsdWVPZigpIDogCkBAIC0zMzcsNiArNDAzLDggQEAgU2VsZWN0aW9uIDog
dmFsdWVPZgogW1NlbGVjdGlvbl0gOiB0b1N0cmluZwogU3RyaW5nKFNlbGVjdGlvbikgOiB0b1N0
cmluZwogU3RyaW5nKFtTZWxlY3Rpb25dKSA6IHRvU3RyaW5nCitTZWxlY3Rpb24udG9TdHJpbmcg
OiBmdW5jdGlvbiAoKSB7IHJldHVybiAidG9TdHJpbmciOyB9CitTZWxlY3Rpb24udG9TdHJpbmco
KSAoY2FjaGVkIGluIHZhcmlhYmxlKSA6IHRvU3RyaW5nCiBTZWxlY3Rpb24udG9TdHJpbmcoKSA6
IHRvU3RyaW5nCiBbU2VsZWN0aW9uXS50b1N0cmluZygpIDogdG9TdHJpbmcKIFNlbGVjdGlvbi52
YWx1ZU9mKCkgOiB2YWx1ZU9mCkBAIC0zNDcsNiArNDE1LDggQEAgU2VsZWN0aW9uIDogdmFsdWVP
ZgogW1NlbGVjdGlvbl0gOiB2YWx1ZU9mCiBTdHJpbmcoU2VsZWN0aW9uKSA6IHZhbHVlT2YKIFN0
cmluZyhbU2VsZWN0aW9uXSkgOiB2YWx1ZU9mCitTZWxlY3Rpb24udG9TdHJpbmcgOiBmdW5jdGlv
biAoKSB7IHJldHVybiBuZXcgT2JqZWN0KCk7IH0KK1NlbGVjdGlvbi50b1N0cmluZygpIChjYWNo
ZWQgaW4gdmFyaWFibGUpIDogW29iamVjdCBPYmplY3RdCiBTZWxlY3Rpb24udG9TdHJpbmcoKSA6
IFtvYmplY3QgT2JqZWN0XQogW1NlbGVjdGlvbl0udG9TdHJpbmcoKSA6IHZhbHVlT2YKIFNlbGVj
dGlvbi52YWx1ZU9mKCkgOiB2YWx1ZU9mCkBAIC0zNTcsNiArNDI3LDggQEAgU2VsZWN0aW9uIDog
dG9TdHJpbmcKIFtTZWxlY3Rpb25dIDogdG9TdHJpbmcKIFN0cmluZyhTZWxlY3Rpb24pIDogdG9T
dHJpbmcKIFN0cmluZyhbU2VsZWN0aW9uXSkgOiB0b1N0cmluZworU2VsZWN0aW9uLnRvU3RyaW5n
IDogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ3RvU3RyaW5nJzsgfQorU2VsZWN0aW9uLnRvU3RyaW5n
KCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiB0b1N0cmluZwogU2VsZWN0aW9uLnRvU3RyaW5nKCkg
OiB0b1N0cmluZwogW1NlbGVjdGlvbl0udG9TdHJpbmcoKSA6IHRvU3RyaW5nCiBTZWxlY3Rpb24u
dmFsdWVPZigpIDogW29iamVjdCBPYmplY3RdCkBAIC0zNjcsNiArNDM5LDggQEAgVHlwZUVycm9y
OiBObyBkZWZhdWx0IHZhbHVlCiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFR5cGVFcnJv
cjogTm8gZGVmYXVsdCB2YWx1ZQogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCitTZWxlY3Rp
b24udG9TdHJpbmcgOiBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgT2JqZWN0KCk7IH0KK1NlbGVj
dGlvbi50b1N0cmluZygpIChjYWNoZWQgaW4gdmFyaWFibGUpIDogW29iamVjdCBPYmplY3RdCiBT
ZWxlY3Rpb24udG9TdHJpbmcoKSA6IFtvYmplY3QgT2JqZWN0XQogVHlwZUVycm9yOiBObyBkZWZh
dWx0IHZhbHVlCiBTZWxlY3Rpb24udmFsdWVPZigpIDogW29iamVjdCBPYmplY3RdCkBAIC0zNzcs
NiArNDUxLDggQEAgU2VsZWN0aW9uIDogdmFsdWVPZgogRXhjZXB0aW9uCiBFeGNlcHRpb24KIEV4
Y2VwdGlvbgorU2VsZWN0aW9uLnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyB0aHJvdyAiRXhjZXB0
aW9uIjsgfQorRXhjZXB0aW9uCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgogU2VsZWN0aW9uLnZhbHVl
T2YoKSA6IHZhbHVlT2YKQEAgLTM4Nyw2ICs0NjMsOCBAQCBFeGNlcHRpb24KIFtTZWxlY3Rpb25d
IDogdG9TdHJpbmcKIFN0cmluZyhTZWxlY3Rpb24pIDogdG9TdHJpbmcKIFN0cmluZyhbU2VsZWN0
aW9uXSkgOiB0b1N0cmluZworU2VsZWN0aW9uLnRvU3RyaW5nIDogZnVuY3Rpb24gKCkgeyByZXR1
cm4gJ3RvU3RyaW5nJzsgfQorU2VsZWN0aW9uLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJs
ZSkgOiB0b1N0cmluZwogU2VsZWN0aW9uLnRvU3RyaW5nKCkgOiB0b1N0cmluZwogW1NlbGVjdGlv
bl0udG9TdHJpbmcoKSA6IHRvU3RyaW5nCiBFeGNlcHRpb24KQEAgLTM5Nyw2ICs0NzUsOCBAQCBF
eGNlcHRpb24KIEV4Y2VwdGlvbgogRXhjZXB0aW9uCiBFeGNlcHRpb24KK1NlbGVjdGlvbi50b1N0
cmluZyA6IGZ1bmN0aW9uICgpIHsgdGhyb3cgIkV4Y2VwdGlvbiI7IH0KK0V4Y2VwdGlvbgogRXhj
ZXB0aW9uCiBFeGNlcHRpb24KIEV4Y2VwdGlvbgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy90
b1N0cmluZy1hbmQtdmFsdWVPZi1vdmVycmlkZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvanMvdG9TdHJpbmctYW5kLXZhbHVlT2Ytb3ZlcnJpZGUuaHRtbAkocmV2aXNpb24g
MTMzNTE2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1hbmQtdmFsdWVPZi1vdmVy
cmlkZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw4IEBACiAgICAgICAgICAgICB0
cnkgeyBwcmludCgnWycgKyB0eXBlICsgJ10gOiAnICsgW29iamVjdF0pOyB9IGNhdGNoKGUpIHsg
cHJpbnQoZSk7IH0KICAgICAgICAgICAgIHRyeSB7IHByaW50KCdTdHJpbmcoJyArIHR5cGUgKyAn
KSA6ICcgKyBTdHJpbmcob2JqZWN0KSk7IH0gY2F0Y2goZSkgeyBwcmludChlKTsgfQogICAgICAg
ICAgICAgdHJ5IHsgcHJpbnQoJ1N0cmluZyhbJyArIHR5cGUgKyAnXSkgOiAnICsgU3RyaW5nKFtv
YmplY3RdKSk7IH0gY2F0Y2goZSkgeyBwcmludChlKTsgfQorICAgICAgICAgICAgdHJ5IHsgcHJp
bnQodHlwZSArICcudG9TdHJpbmcgOiAnICsgb2JqZWN0LnRvU3RyaW5nKTsgfSBjYXRjaChlKSB7
IHByaW50KGUpOyB9CisgICAgICAgICAgICB0cnkgeyB2YXIgdG9TdHJpbmcgPSBvYmplY3QudG9T
dHJpbmc7IHByaW50KHR5cGUgKyAnLnRvU3RyaW5nKCkgKGNhY2hlZCBpbiB2YXJpYWJsZSkgOiAn
ICsgdG9TdHJpbmcoKSk7IH0gY2F0Y2goZSkgeyBwcmludChlKTsgfQogICAgICAgICAgICAgdHJ5
IHsgcHJpbnQodHlwZSArICcudG9TdHJpbmcoKSA6ICcgKyBvYmplY3QudG9TdHJpbmcoKSk7IH0g
Y2F0Y2goZSkgeyBwcmludChlKTsgfQogICAgICAgICAgICAgdHJ5IHsgcHJpbnQoJ1snICsgdHlw
ZSArICddLnRvU3RyaW5nKCkgOiAnICsgW29iamVjdF0udG9TdHJpbmcoKSk7IH0gY2F0Y2goZSkg
eyBwcmludChlKTsgfQogICAgICAgICAgICAgdHJ5IHsgcHJpbnQodHlwZSArICcudmFsdWVPZigp
IDogJyArIG9iamVjdC52YWx1ZU9mKCkpOyB9IGNhdGNoKGUpIHsgcHJpbnQoZSk7IH0K
</data>
<flag name="review"
          id="186748"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>