<?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>154931</bug_id>
          
          <creation_ts>2016-03-02 14:32:15 -0800</creation_ts>
          <short_desc>[ES6] Implement Proxy.[[SetPrototypeOf]]</short_desc>
          <delta_ts>2016-03-03 19:43:22 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1169946</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-02 14:32:15 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170305</commentid>
    <comment_count>1</comment_count>
      <attachid>272769</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-03 12:39:08 -0800</bug_when>
    <thetext>Created attachment 272769
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170468</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-03 19:43:22 -0800</bug_when>
    <thetext>thanks for the review.
Landed in:
http://trac.webkit.org/changeset/197544</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272769</attachid>
            <date>2016-03-03 12:39:08 -0800</date>
            <delta_ts>2016-03-03 17:18:12 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>19470</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTEzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE2LTAzLTAzICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFtFUzZdIEltcGxlbWVudCBQcm94eS5bW1NldFByb3RvdHlwZU9mXV0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDkzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYSBzdHJhaWdo
dCBmb3J3YXJkIGltcGxlbWVudGF0aW9uIG9mIFByb3h5LltbU2V0UHJvdG90eXBlT2ZdXQorICAg
ICAgICB3aXRoIHJlc3BlY3QgdG8gc2VjdGlvbiA5LjUuMiBvZiB0aGUgRUNNQVNjcmlwdCBzcGVj
LgorICAgICAgICBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1wcm94eS1vYmpl
Y3QtaW50ZXJuYWwtbWV0aG9kcy1hbmQtaW50ZXJuYWwtc2xvdHMtc2V0cHJvdG90eXBlb2Ytdgor
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpwdXRJbmxpbmVTbG93KToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0
Ojppc0V4dGVuc2libGUpOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybVNldFBy
b3RvdHlwZSk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0OjpzZXRQcm90b3R5cGUpOgorICAg
ICAgICAoSlNDOjpQcm94eU9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGlt
ZS9Qcm94eU9iamVjdC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1zZXQtcHJvdG90
eXBlLW9mLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydCk6CisgICAgICAgICh0aHJvdy5uZXcu
RXJyb3IubGV0LmhhbmRsZXIuZ2V0IHNldFByb3RvdHlwZU9mKToKKyAgICAgICAgKHRocm93Lm5l
dy5FcnJvci5zZXQgbGV0KToKKyAgICAgICAgKHRocm93Lm5ldy5FcnJvci5zZXQgY2F0Y2gpOgor
ICAgICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKGFzc2VydC5sZXQuaGFuZGxlci5z
ZXRQcm90b3R5cGVPZik6CisgICAgICAgIChhc3NlcnQuc2V0IGxldCk6CisgICAgICAgIChhc3Nl
cnQuc2V0IGNhdGNoKToKKyAgICAgICAgKGxldC5oYW5kbGVyLnNldFByb3RvdHlwZU9mKToKKyAg
ICAgICAgKHNldCBsZXQpOgorICAgICAgICAoc2V0IGNhdGNoKToKKwogMjAxNi0wMy0wMyAgU2Fh
bSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbW1NldFByb3RvdHlwZU9m
XV0gaXNuJ3QgcHJvcGVybHkgaW1wbGVtZW50ZWQgZXZlcnl3aGVyZQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMTk3NTEyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MjksNyArNDI5LDcgQEAgdm9pZCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhFeGVjU3Rh
dGUqIAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAg
ICBpZiAob2JqLT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlKSB7CisgICAgICAgIGlmIChvYmot
PnR5cGUoKSA9PSBQcm94eU9iamVjdFR5cGUgJiYgcHJvcGVydHlOYW1lICE9IHZtLnByb3BlcnR5
TmFtZXMtPnVuZGVyc2NvcmVQcm90bykgewogICAgICAgICAgICAgUHJveHlPYmplY3QqIHByb3h5
ID0ganNDYXN0PFByb3h5T2JqZWN0Kj4ob2JqKTsKICAgICAgICAgICAgIHByb3h5LT5Qcm94eU9i
amVjdDo6cHV0KHByb3h5LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAg
ICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eU9iamVjdC5jcHAJKHJldmlzaW9uIDE5NzUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA3LDYgKzQwNywx
MSBAQCB2b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtUHV0KEV4ZWNTdGF0ZSogCiB2b2lkIFByb3h5
T2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVy
dHlOYW1lcy0+dW5kZXJzY29yZVByb3RvKSB7CisgICAgICAgIEJhc2U6OnB1dChjZWxsLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIFByb3h5T2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFByb3h5T2JqZWN0Kj4oY2VsbCk7
CiAgICAgYXV0byBwZXJmb3JtRGVmYXVsdFB1dCA9IFsmXSAoKSB7CiAgICAgICAgIEpTT2JqZWN0
KiB0YXJnZXQgPSBqc0Nhc3Q8SlNPYmplY3QqPih0aGlzT2JqZWN0LT50YXJnZXQoKSk7CkBAIC03
MDgsNiArNzEzLDY2IEBAIGJvb2wgUHJveHlPYmplY3Q6OmlzRXh0ZW5zaWJsZShKU09iamVjdCoK
ICAgICByZXR1cm4ganNDYXN0PFByb3h5T2JqZWN0Kj4ob2JqZWN0KS0+cGVyZm9ybUlzRXh0ZW5z
aWJsZShleGVjKTsKIH0KIAorYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybVNldFByb3RvdHlwZShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcHJvdG90eXBlLCBib29sIHNob3VsZFRocm93SWZDYW50
U2V0KQoreworICAgIEFTU0VSVChwcm90b3R5cGUuaXNPYmplY3QoKSB8fCBwcm90b3R5cGUuaXNO
dWxsKCkpOworCisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKworICAgIEpTVmFsdWUgaGFuZGxl
clZhbHVlID0gdGhpcy0+aGFuZGxlcigpOworICAgIGlmIChoYW5kbGVyVmFsdWUuaXNOdWxsKCkp
IHsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlByb3h5ICdo
YW5kbGVyJyBpcyBudWxsLiBJdCBzaG91bGQgYmUgYW4gT2JqZWN0LiIpKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2Jq
ZWN0Kj4oaGFuZGxlclZhbHVlKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlw
ZSBjYWxsVHlwZTsKKyAgICBKU1ZhbHVlIHNldFByb3RvdHlwZU9mTWV0aG9kID0gaGFuZGxlci0+
Z2V0TWV0aG9kKGV4ZWMsIGNhbGxEYXRhLCBjYWxsVHlwZSwgbWFrZUlkZW50aWZpZXIodm0sICJz
ZXRQcm90b3R5cGVPZiIpLCBBU0NJSUxpdGVyYWwoIidzZXRQcm90b3R5cGVPZicgcHJvcGVydHkg
b2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlLiIpKTsKKyAgICBpZiAodm0u
ZXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEpTT2JqZWN0KiB0YXJn
ZXQgPSB0aGlzLT50YXJnZXQoKTsKKyAgICBpZiAoc2V0UHJvdG90eXBlT2ZNZXRob2QuaXNVbmRl
ZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIHRhcmdldC0+c2V0UHJvdG90eXBlKHZtLCBleGVjLCBw
cm90b3R5cGUsIHNob3VsZFRocm93SWZDYW50U2V0KTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7CisgICAgYXJndW1l
bnRzLmFwcGVuZChwcm90b3R5cGUpOworICAgIEpTVmFsdWUgdHJhcFJlc3VsdCA9IGNhbGwoZXhl
Yywgc2V0UHJvdG90eXBlT2ZNZXRob2QsIGNhbGxUeXBlLCBjYWxsRGF0YSwgaGFuZGxlciwgYXJn
dW1lbnRzKTsKKyAgICBpZiAodm0uZXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGJvb2wgdHJhcFJlc3VsdEFzQm9vbCA9IHRyYXBSZXN1bHQudG9Cb29sZWFuKGV4ZWMp
OworICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIGlmICghdHJhcFJlc3VsdEFzQm9vbCkgeworICAgICAgICBpZiAoc2hvdWxkVGhyb3dJZkNh
bnRTZXQpCisgICAgICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
UHJveHkgJ3NldFByb3RvdHlwZU9mJyByZXR1cm5lZCBmYWxzZSBpbmRpY2F0aW5nIGl0IGNvdWxk
IG5vdCBzZXQgdGhlIHByb3RvdHlwZSB2YWx1ZS4gVGhlIG9wZXJhdGlvbiB3YXMgZXhwZWN0ZWQg
dG8gc3VjY2VlZC4iKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29s
IHRhcmdldElzRXh0ZW5zaWJsZSA9IHRhcmdldC0+aXNFeHRlbnNpYmxlKGV4ZWMpOworICAgIGlm
ICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICh0YXJnZXRJ
c0V4dGVuc2libGUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSlNWYWx1ZSB0YXJnZXRQ
cm90b3R5cGUgPSB0YXJnZXQtPnByb3RvdHlwZSgpOworICAgIGlmICghc2FtZVZhbHVlKGV4ZWMs
IHByb3RvdHlwZSwgdGFyZ2V0UHJvdG90eXBlKSkgeworICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgJ3NldFByb3RvdHlwZU9mJyB0cmFwIHJldHVybmVk
IHRydWUgd2hlbiBpdHMgdGFyZ2V0IGlzIG5vbi1leHRlbnNpYmxlIGFuZCB0aGUgbmV3IHByb3Rv
dHlwZSB2YWx1ZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgcHJvdG90eXBlIHZhbHVl
LiBJdCBzaG91bGQgaGF2ZSByZXR1cm5lZCBmYWxzZS4iKSk7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBQcm94eU9iamVjdDo6c2V0
UHJvdG90eXBlKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBwcm90
b3R5cGUsIGJvb2wgc2hvdWxkVGhyb3dJZkNhbnRTZXQpCit7CisgICAgcmV0dXJuIGpzQ2FzdDxQ
cm94eU9iamVjdCo+KG9iamVjdCktPnBlcmZvcm1TZXRQcm90b3R5cGUoZXhlYywgcHJvdG90eXBl
LCBzaG91bGRUaHJvd0lmQ2FudFNldCk7Cit9CisKIHZvaWQgUHJveHlPYmplY3Q6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBQcm94eU9i
amVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KGNlbGwpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCShyZXZpc2lvbiAxOTc1
MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgZGVs
ZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgcHJldmVudEV4dGVuc2lvbnMoSlNPYmplY3QqLCBFeGVj
U3RhdGUqKTsKICAgICBzdGF0aWMgYm9vbCBpc0V4dGVuc2libGUoSlNPYmplY3QqLCBFeGVjU3Rh
dGUqKTsKKyAgICBzdGF0aWMgYm9vbCBzZXRQcm90b3R5cGUoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBKU1ZhbHVlIHByb3RvdHlwZSwgYm9vbCBzaG91bGRUaHJvd0lmQ2FudFNldCk7CiAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24oRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKQEAgLTgyLDYgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1Q
dXQoRXhlY1N0YXRlKiwgSlNWYWx1ZSBwdXRWYWx1ZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSwgUGVyZm9ybURlZmF1bHRQdXRGdW5jdGlvbik7CiAgICAgYm9vbCBwZXJmb3JtUHJl
dmVudEV4dGVuc2lvbnMoRXhlY1N0YXRlKik7CiAgICAgYm9vbCBwZXJmb3JtSXNFeHRlbnNpYmxl
KEV4ZWNTdGF0ZSopOworICAgIGJvb2wgcGVyZm9ybVNldFByb3RvdHlwZShFeGVjU3RhdGUqLCBK
U1ZhbHVlIHByb3RvdHlwZSwgYm9vbCBzaG91bGRUaHJvd0lmQ2FudFNldCk7CiAKICAgICBXcml0
ZUJhcnJpZXI8SlNPYmplY3Q+IG1fdGFyZ2V0OwogICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBt
X2hhbmRsZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5
LXNldC1wcm90b3R5cGUtb2YuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9wcm94eS1zZXQtcHJvdG90eXBlLW9mLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1zZXQtcHJvdG90eXBlLW9m
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDE2IEBACitmdW5jdGlvbiBhc3NlcnQoYikg
eworICAgIGlmICghYikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNzZXJ0aW9uISIp
OworfQorCit7CisgICAgbGV0IHRhcmdldCA9IHt9OworICAgIGxldCBlcnJvciA9IG51bGw7Cisg
ICAgbGV0IGhhbmRsZXIgPSB7CisgICAgICAgIGdldCBzZXRQcm90b3R5cGVPZigpIHsKKyAgICAg
ICAgICAgIGVycm9yID0gbmV3IEVycm9yOworICAgICAgICAgICAgdGhyb3cgZXJyb3I7CisgICAg
ICAgIH0KKyAgICB9OworICAgIAorICAgIGxldCBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhh
bmRsZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsKKyAgICAgICAgbGV0
IHNldHRlcnMgPSBbCisgICAgICAgICAgICAoKSA9PiBSZWZsZWN0LnNldFByb3RvdHlwZU9mKHBy
b3h5LCB7fSksCisgICAgICAgICAgICAoKSA9PiBPYmplY3Quc2V0UHJvdG90eXBlT2YocHJveHks
IHt9KSwKKyAgICAgICAgICAgICgpID0+IHByb3h5Ll9fcHJvdG9fXyA9IHt9LAorICAgICAgICBd
OworICAgICAgICBmb3IgKGxldCBzZXQgb2Ygc2V0dGVycykgeworICAgICAgICAgICAgbGV0IHRo
cmV3ID0gZmFsc2U7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNldCgpOwor
ICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGUgPT09IGVy
cm9yKTsKKyAgICAgICAgICAgICAgICB0aHJldyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBhc3NlcnQodGhyZXcpOworICAgICAgICB9CisgICAgfQorfQorCit7CisgICAgbGV0
IHRhcmdldCA9IHt9OworICAgIGxldCBlcnJvciA9IG51bGw7CisgICAgbGV0IGhhbmRsZXIgPSB7
CisgICAgICAgIHNldFByb3RvdHlwZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGVycm9y
ID0gbmV3IEVycm9yOworICAgICAgICAgICAgdGhyb3cgZXJyb3I7CisgICAgICAgIH0KKyAgICB9
OworICAgIAorICAgIGxldCBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpOworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsKKyAgICAgICAgbGV0IHNldHRlcnMgPSBb
CisgICAgICAgICAgICAoKSA9PiBSZWZsZWN0LnNldFByb3RvdHlwZU9mKHByb3h5LCB7fSksCisg
ICAgICAgICAgICAoKSA9PiBPYmplY3Quc2V0UHJvdG90eXBlT2YocHJveHksIHt9KSwKKyAgICAg
ICAgICAgICgpID0+IHByb3h5Ll9fcHJvdG9fXyA9IHt9LAorICAgICAgICBdOworICAgICAgICBm
b3IgKGxldCBzZXQgb2Ygc2V0dGVycykgeworICAgICAgICAgICAgbGV0IHRocmV3ID0gZmFsc2U7
CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNldCgpOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGUgPT09IGVycm9yKTsKKyAgICAg
ICAgICAgICAgICB0aHJldyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3Nl
cnQodGhyZXcpOworICAgICAgICB9CisgICAgfQorfQorCit7CisgICAgbGV0IHRhcmdldCA9IHt9
OworICAgIGxldCBlcnJvciA9IG51bGw7CisgICAgbGV0IGhhbmRsZXIgPSB7CisgICAgICAgIHNl
dFByb3RvdHlwZU9mOiAyNQorICAgIH07CisgICAgCisgICAgbGV0IHByb3h5ID0gbmV3IFByb3h5
KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7IGkrKykgewor
ICAgICAgICBsZXQgc2V0dGVycyA9IFsKKyAgICAgICAgICAgICgpID0+IFJlZmxlY3Quc2V0UHJv
dG90eXBlT2YocHJveHksIHt9KSwKKyAgICAgICAgICAgICgpID0+IE9iamVjdC5zZXRQcm90b3R5
cGVPZihwcm94eSwge30pLAorICAgICAgICAgICAgKCkgPT4gcHJveHkuX19wcm90b19fID0ge30s
CisgICAgICAgIF07CisgICAgICAgIGZvciAobGV0IHNldCBvZiBzZXR0ZXJzKSB7CisgICAgICAg
ICAgICBsZXQgdGhyZXcgPSBmYWxzZTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgc2V0KCk7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQoZS50b1N0cmluZygpID09PSAiVHlwZUVycm9yOiAnc2V0UHJvdG90eXBlT2YnIHByb3BlcnR5
IG9mIGEgUHJveHkncyBoYW5kbGVyIHNob3VsZCBiZSBjYWxsYWJsZS4iKTsKKyAgICAgICAgICAg
ICAgICB0aHJldyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnQodGhy
ZXcpOworICAgICAgICB9CisgICAgfQorfQorCit7CisgICAgbGV0IHRhcmdldCA9IHt9OworICAg
IHRhcmdldC5fX3Byb3RvX18gPSBudWxsOworICAgIGxldCBoYW5kbGVyID0geworICAgICAgICBz
ZXRQcm90b3R5cGVPZjogZnVuY3Rpb24odGhlVGFyZ2V0LCB2YWx1ZSkgeworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIGxldCBwcm94eSA9IG5l
dyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBp
KyspIHsKKyAgICAgICAgbGV0IHNldHRlcnMgPSBbCisgICAgICAgICAgICAoKSA9PiBSZWZsZWN0
LnNldFByb3RvdHlwZU9mKHByb3h5LCB7fSksCisgICAgICAgICAgICAoKSA9PiBPYmplY3Quc2V0
UHJvdG90eXBlT2YocHJveHksIHt9KSwKKyAgICAgICAgICAgICgpID0+IHByb3h5Ll9fcHJvdG9f
XyA9IHt9LAorICAgICAgICBdOworICAgICAgICBmb3IgKGxldCBzZXQgb2Ygc2V0dGVycykgewor
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHNldCgpOworICAgICAgICAgICAgYXNzZXJ0KHJlc3Vs
dCk7CisgICAgICAgICAgICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpID09
PSBudWxsKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiB3aGVuIHdlIGltcGxlbWVudCBQcm94eS5b
W0dldFByb3RvdHlwZU9mXV0gdGhpcyBzaG91bGQgd29yay4KKyAgICAgICAgICAgIC8vYXNzZXJ0
KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YocHJveHkpID09PSBudWxsKTsKKyAgICAgICAgICAgIC8v
YXNzZXJ0KHByb3h5Ll9fcHJvdG9fXyA9PT0gbnVsbCk7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K3sKKyAgICBsZXQgdGFyZ2V0ID0ge307CisgICAgdGFyZ2V0Ll9fcHJvdG9fXyA9IG51bGw7Cisg
ICAgbGV0IGhhbmRsZXIgPSB7CisgICAgICAgIHNldFByb3RvdHlwZU9mOiBmdW5jdGlvbih0aGVU
YXJnZXQsIHZhbHVlKSB7CisgICAgICAgICAgICBhc3NlcnQodGhlVGFyZ2V0ID09PSB0YXJnZXQp
OworICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YodGhlVGFyZ2V0LCB2
YWx1ZSk7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIGxldCBwcm94eSA9IG5ldyBQcm94
eSh0YXJnZXQsIGhhbmRsZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsK
KyAgICAgICAgbGV0IG9iaiA9IHt9OworICAgICAgICBsZXQgc2V0dGVycyA9IFsKKyAgICAgICAg
ICAgICgpID0+IFJlZmxlY3Quc2V0UHJvdG90eXBlT2YocHJveHksIG9iaiksCisgICAgICAgICAg
ICAoKSA9PiBPYmplY3Quc2V0UHJvdG90eXBlT2YocHJveHksIG9iaiksCisgICAgICAgICAgICAo
KSA9PiBwcm94eS5fX3Byb3RvX18gPSBvYmosCisgICAgICAgIF07CisgICAgICAgIGZvciAobGV0
IHNldCBvZiBzZXR0ZXJzKSB7CisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gc2V0KCk7CisgICAg
ICAgICAgICBhc3NlcnQocmVzdWx0KTsKKyAgICAgICAgICAgIGFzc2VydChSZWZsZWN0LmdldFBy
b3RvdHlwZU9mKHRhcmdldCkgPT09IG9iaik7CisgICAgICAgICAgICAvLyBGSVhNRTogd2hlbiB3
ZSBpbXBsZW1lbnQgUHJveHkuW1tHZXRQcm90b3R5cGVPZl1dIHRoaXMgc2hvdWxkIHdvcmsuCisg
ICAgICAgICAgICAvL2Fzc2VydChSZWZsZWN0LmdldFByb3RvdHlwZU9mKHByb3h5KSA9PT0gb2Jq
KTsKKyAgICAgICAgICAgIC8vYXNzZXJ0KHByb3h5Ll9fcHJvdG9fXyA9PT0gb2JqKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworeworICAgIGxldCB0YXJnZXQgPSB7fTsKKyAgICB0YXJnZXQuX19w
cm90b19fID0gbnVsbDsKKyAgICBSZWZsZWN0LnByZXZlbnRFeHRlbnNpb25zKHRhcmdldCk7Cisg
ICAgbGV0IGNhbGxlZCA9IGZhbHNlOworICAgIGxldCBoYW5kbGVyID0geworICAgICAgICBzZXRQ
cm90b3R5cGVPZjogZnVuY3Rpb24odGhlVGFyZ2V0LCB2YWx1ZSkgeworICAgICAgICAgICAgY2Fs
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGFzc2VydCh0aGVUYXJnZXQgPT09IHRhcmdldCk7Cisg
ICAgICAgICAgICBhc3NlcnQodmFsdWUgIT09IG51bGwpOworICAgICAgICAgICAgUmVmbGVjdC5z
ZXRQcm90b3R5cGVPZih0aGVUYXJnZXQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgfTsKKyAgICAKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkodGFy
Z2V0LCBoYW5kbGVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7CisgICAg
ICAgIGxldCBvYmogPSB7fTsKKyAgICAgICAgbGV0IHNldHRlcnMgPSBbCisgICAgICAgICAgICAo
KSA9PiBSZWZsZWN0LnNldFByb3RvdHlwZU9mKHByb3h5LCBvYmopLAorICAgICAgICAgICAgKCkg
PT4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHByb3h5LCBvYmopLAorICAgICAgICAgICAgKCkgPT4g
cHJveHkuX19wcm90b19fID0gb2JqLAorICAgICAgICBdOworICAgICAgICBmb3IgKGxldCBzZXQg
b2Ygc2V0dGVycykgeworICAgICAgICAgICAgbGV0IHRocmV3ID0gZmFsc2U7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgIHNldCgpOworICAgICAgICAgICAgfSBjYXRjaChlKSB7
CisgICAgICAgICAgICAgICAgdGhyZXcgPSB0cnVlOworICAgICAgICAgICAgICAgIGFzc2VydChj
YWxsZWQpOworICAgICAgICAgICAgICAgIGNhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAg
IGFzc2VydChlLnRvU3RyaW5nKCkgPT09ICJUeXBlRXJyb3I6IFByb3h5ICdzZXRQcm90b3R5cGVP
ZicgdHJhcCByZXR1cm5lZCB0cnVlIHdoZW4gaXRzIHRhcmdldCBpcyBub24tZXh0ZW5zaWJsZSBh
bmQgdGhlIG5ldyBwcm90b3R5cGUgdmFsdWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50
IHByb3RvdHlwZSB2YWx1ZS4gSXQgc2hvdWxkIGhhdmUgcmV0dXJuZWQgZmFsc2UuIik7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGFzc2VydCh0aHJldyk7CisgICAgICAgICAgICBhc3Nl
cnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpID09PSBudWxsKTsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiB3aGVuIHdlIGltcGxlbWVudCBQcm94eS5bW0dldFByb3RvdHlwZU9mXV0gdGhp
cyBzaG91bGQgd29yay4KKyAgICAgICAgICAgIC8vYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBl
T2YocHJveHkpID09PSBudWxsKTsKKyAgICAgICAgICAgIC8vYXNzZXJ0KHByb3h5Ll9fcHJvdG9f
XyA9PT0gbnVsbCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3sKKyAgICBsZXQgdGFyZ2V0ID0g
e307CisgICAgdGFyZ2V0Ll9fcHJvdG9fXyA9IG51bGw7CisgICAgUmVmbGVjdC5wcmV2ZW50RXh0
ZW5zaW9ucyh0YXJnZXQpOworICAgIGxldCBjYWxsZWQgPSBmYWxzZTsKKyAgICBsZXQgaGFuZGxl
ciA9IHsKKyAgICAgICAgc2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uKHRoZVRhcmdldCwgdmFsdWUp
IHsKKyAgICAgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgICAgICAgICBhc3NlcnQodGhlVGFy
Z2V0ID09PSB0YXJnZXQpOworICAgICAgICAgICAgYXNzZXJ0KHZhbHVlID09PSBudWxsKTsKKyAg
ICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldFByb3RvdHlwZU9mKHRoZVRhcmdldCwgdmFsdWUp
OworICAgICAgICB9CisgICAgfTsKKyAgICAKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkodGFy
Z2V0LCBoYW5kbGVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7CisgICAg
ICAgIGxldCBwcm90byA9IG51bGw7CisgICAgICAgIGxldCBzZXR0ZXJzID0gWworICAgICAgICAg
ICAgWygpID0+IFJlZmxlY3Quc2V0UHJvdG90eXBlT2YocHJveHksIG51bGwpLCB0cnVlXSwKKyAg
ICAgICAgICAgIFsoKSA9PiBPYmplY3Quc2V0UHJvdG90eXBlT2YocHJveHksIG51bGwpLCBwcm94
eV0sCisgICAgICAgICAgICBbKCkgPT4gcHJveHkuX19wcm90b19fID0gbnVsbCwgbnVsbF0KKyAg
ICAgICAgXTsKKyAgICAgICAgZm9yIChsZXQgW3NldCwgZXhwZWN0ZWRSZXN1bHRdIG9mIHNldHRl
cnMpIHsKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBzZXQoKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZXN1bHQgPT09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIGFzc2VydChjYWxsZWQp
OworICAgICAgICAgICAgY2FsbGVkID0gZmFsc2U7CisgICAgICAgICAgICBhc3NlcnQoUmVmbGVj
dC5nZXRQcm90b3R5cGVPZih0YXJnZXQpID09PSBudWxsKTsKKyAgICAgICAgICAgIC8vIEZJWE1F
OiB3aGVuIHdlIGltcGxlbWVudCBQcm94eS5bW0dldFByb3RvdHlwZU9mXV0gdGhpcyBzaG91bGQg
d29yay4KKyAgICAgICAgICAgIC8vYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YocHJveHkp
ID09PSBudWxsKTsKKyAgICAgICAgICAgIC8vYXNzZXJ0KHByb3h5Ll9fcHJvdG9fXyA9PT0gbnVs
bCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3sKKyAgICBsZXQgdGFyZ2V0ID0ge307CisgICAg
bGV0IG9iaiA9IHt9OworICAgIHRhcmdldC5fX3Byb3RvX18gPSBvYmo7CisgICAgUmVmbGVjdC5w
cmV2ZW50RXh0ZW5zaW9ucyh0YXJnZXQpOworICAgIGxldCBjYWxsZWQgPSBmYWxzZTsKKyAgICBs
ZXQgaGFuZGxlciA9IHsKKyAgICAgICAgc2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uKHRoZVRhcmdl
dCwgdmFsdWUpIHsKKyAgICAgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgICAgICAgICBhc3Nl
cnQodGhlVGFyZ2V0ID09PSB0YXJnZXQpOworICAgICAgICAgICAgYXNzZXJ0KHZhbHVlID09PSBv
YmopOworICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YodGhlVGFyZ2V0
LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIGxldCBwcm94eSA9IG5ldyBQ
cm94eSh0YXJnZXQsIGhhbmRsZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKysp
IHsKKyAgICAgICAgbGV0IHByb3RvID0gbnVsbDsKKyAgICAgICAgbGV0IHNldHRlcnMgPSBbCisg
ICAgICAgICAgICBbKCkgPT4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihwcm94eSwgb2JqKSwgdHJ1
ZV0sCisgICAgICAgICAgICBbKCkgPT4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHByb3h5LCBvYmop
LCBwcm94eV0sCisgICAgICAgICAgICBbKCkgPT4gcHJveHkuX19wcm90b19fID0gb2JqLCBvYmpd
CisgICAgICAgIF07CisgICAgICAgIGZvciAobGV0IFtzZXQsIGV4cGVjdGVkUmVzdWx0XSBvZiBz
ZXR0ZXJzKSB7CisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gc2V0KCk7CisgICAgICAgICAgICBh
c3NlcnQocmVzdWx0ID09PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgICAgICBhc3NlcnQoY2Fs
bGVkKTsKKyAgICAgICAgICAgIGNhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgYXNzZXJ0KFJl
ZmxlY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KSA9PT0gb2JqKTsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiB3aGVuIHdlIGltcGxlbWVudCBQcm94eS5bW0dldFByb3RvdHlwZU9mXV0gdGhpcyBzaG91
bGQgd29yay4KKyAgICAgICAgICAgIC8vYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YocHJv
eHkpID09PSBudWxsKTsKKyAgICAgICAgICAgIC8vYXNzZXJ0KHByb3h5Ll9fcHJvdG9fXyA9PT0g
bnVsbCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3sKKyAgICBsZXQgdGFyZ2V0ID0ge307Cisg
ICAgdGFyZ2V0Ll9fcHJvdG9fXyA9IG51bGw7CisgICAgUmVmbGVjdC5wcmV2ZW50RXh0ZW5zaW9u
cyh0YXJnZXQpOworICAgIGxldCBoYW5kbGVyID0geworICAgICAgICBzZXRQcm90b3R5cGVPZjog
ZnVuY3Rpb24odGhlVGFyZ2V0LCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qu
c2V0UHJvdG90eXBlT2YodGhlVGFyZ2V0LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9OworICAg
IAorICAgIGxldCBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpOworICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsKKyAgICAgICAgbGV0IG9iaiA9IHt9OworICAgICAg
ICBsZXQgdGhyZXcgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE9iamVjdC5z
ZXRQcm90b3R5cGVPZihwcm94eSwgb2JqKTsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgICB0aHJldyA9IHRydWU7CisgICAgICAgICAgICBhc3NlcnQoZS50b1N0cmluZygpID09PSAi
VHlwZUVycm9yOiBQcm94eSAnc2V0UHJvdG90eXBlT2YnIHJldHVybmVkIGZhbHNlIGluZGljYXRp
bmcgaXQgY291bGQgbm90IHNldCB0aGUgcHJvdG90eXBlIHZhbHVlLiBUaGUgb3BlcmF0aW9uIHdh
cyBleHBlY3RlZCB0byBzdWNjZWVkLiIpOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KHRo
cmV3KTsKKyAgICAgICAgYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KSA9PT0g
bnVsbCk7CisgICAgICAgIC8vIEZJWE1FOiB3aGVuIHdlIGltcGxlbWVudCBQcm94eS5bW0dldFBy
b3RvdHlwZU9mXV0gdGhpcyBzaG91bGQgd29yay4KKyAgICAgICAgLy9hc3NlcnQoUmVmbGVjdC5n
ZXRQcm90b3R5cGVPZihwcm94eSkgPT09IG51bGwpOworICAgICAgICAvL2Fzc2VydChwcm94eS5f
X3Byb3RvX18gPT09IG51bGwpOworICAgIH0KK30KKworeworICAgIGxldCB0YXJnZXQgPSB7fTsK
KyAgICB0YXJnZXQuX19wcm90b19fID0gbnVsbDsKKyAgICBSZWZsZWN0LnByZXZlbnRFeHRlbnNp
b25zKHRhcmdldCk7CisgICAgbGV0IGhhbmRsZXIgPSB7CisgICAgICAgIHNldFByb3RvdHlwZU9m
OiBmdW5jdGlvbih0aGVUYXJnZXQsIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gUmVmbGVj
dC5zZXRQcm90b3R5cGVPZih0aGVUYXJnZXQsIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgCisgICAgbGV0IHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCA1MDA7IGkrKykgeworICAgICAgICBsZXQgb2JqID0ge307CisgICAg
ICAgIGxldCB0aHJldyA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcHJveHku
X19wcm90b19fID0gb2JqOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIHRocmV3
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGFzc2VydChlLnRvU3RyaW5nKCkgPT09ICJUeXBlRXJyb3I6
IFByb3h5ICdzZXRQcm90b3R5cGVPZicgcmV0dXJuZWQgZmFsc2UgaW5kaWNhdGluZyBpdCBjb3Vs
ZCBub3Qgc2V0IHRoZSBwcm90b3R5cGUgdmFsdWUuIFRoZSBvcGVyYXRpb24gd2FzIGV4cGVjdGVk
IHRvIHN1Y2NlZWQuIik7CisgICAgICAgIH0KKworICAgICAgICBhc3NlcnQodGhyZXcpOworICAg
ICAgICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpID09PSBudWxsKTsKKyAg
ICAgICAgLy8gRklYTUU6IHdoZW4gd2UgaW1wbGVtZW50IFByb3h5LltbR2V0UHJvdG90eXBlT2Zd
XSB0aGlzIHNob3VsZCB3b3JrLgorICAgICAgICAvL2Fzc2VydChSZWZsZWN0LmdldFByb3RvdHlw
ZU9mKHByb3h5KSA9PT0gbnVsbCk7CisgICAgICAgIC8vYXNzZXJ0KHByb3h5Ll9fcHJvdG9fXyA9
PT0gbnVsbCk7CisgICAgfQorfQorCit7CisgICAgbGV0IHRhcmdldCA9IHt9OworICAgIHRhcmdl
dC5fX3Byb3RvX18gPSBudWxsOworICAgIFJlZmxlY3QucHJldmVudEV4dGVuc2lvbnModGFyZ2V0
KTsKKworICAgIGxldCBjYWxsZWQgPSBmYWxzZTsKKyAgICBsZXQgaGFuZGxlciA9IHsKKyAgICAg
ICAgc2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uKHRoZVRhcmdldCwgdmFsdWUpIHsKKyAgICAgICAg
ICAgIGNhbGxlZCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXRQcm90b3R5
cGVPZih0aGVUYXJnZXQsIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgbGV0
IHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCA1MDA7IGkrKykgeworICAgICAgICBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5
cGVPZihwcm94eSwge30pOworICAgICAgICBhc3NlcnQoIXJlc3VsdCk7CisgICAgICAgIGFzc2Vy
dChSZWZsZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCkgPT09IG51bGwpOworCisgICAgICAgIGFz
c2VydChjYWxsZWQpOworICAgICAgICBjYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgLy8gRklYTUU6
IHdoZW4gd2UgaW1wbGVtZW50IFByb3h5LltbR2V0UHJvdG90eXBlT2ZdXSB0aGlzIHNob3VsZCB3
b3JrLgorICAgICAgICAvL2Fzc2VydChSZWZsZWN0LmdldFByb3RvdHlwZU9mKHByb3h5KSA9PT0g
bnVsbCk7CisgICAgICAgIC8vYXNzZXJ0KHByb3h5Ll9fcHJvdG9fXyA9PT0gbnVsbCk7CisgICAg
fQorfQorCit7CisgICAgbGV0IHRhcmdldCA9IHt9OworICAgIHRhcmdldC5fX3Byb3RvX18gPSBu
dWxsOworICAgIFJlZmxlY3QucHJldmVudEV4dGVuc2lvbnModGFyZ2V0KTsKKworICAgIGxldCBj
YWxsZWQgPSBmYWxzZTsKKyAgICBsZXQgaGFuZGxlciA9IHsKKyAgICAgICAgc2V0UHJvdG90eXBl
T2Y6IGZ1bmN0aW9uKHRoZVRhcmdldCwgdmFsdWUpIHsKKyAgICAgICAgICAgIGNhbGxlZCA9IHRy
dWU7CisgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZih0aGVUYXJnZXQs
IHZhbHVlKTsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgbGV0IHByb3h5ID0gbmV3IFBy
b3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7IGkrKykg
eworICAgICAgICBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihwcm94eSwgbnVs
bCk7CisgICAgICAgIGFzc2VydChyZXN1bHQpOworICAgICAgICBhc3NlcnQoUmVmbGVjdC5nZXRQ
cm90b3R5cGVPZih0YXJnZXQpID09PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0KGNhbGxlZCk7Cisg
ICAgICAgIGNhbGxlZCA9IGZhbHNlOworCisgICAgICAgIC8vIEZJWE1FOiB3aGVuIHdlIGltcGxl
bWVudCBQcm94eS5bW0dldFByb3RvdHlwZU9mXV0gdGhpcyBzaG91bGQgd29yay4KKyAgICAgICAg
Ly9hc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZihwcm94eSkgPT09IG51bGwpOworICAgICAg
ICAvL2Fzc2VydChwcm94eS5fX3Byb3RvX18gPT09IG51bGwpOworICAgIH0KK30KKworeworICAg
IGxldCB0YXJnZXQgPSB7fTsKKyAgICBsZXQgaGFuZGxlciA9IHsKKyAgICAgICAgc2V0UHJvdG90
eXBlT2Y6IG51bGwKKyAgICB9OworICAgIAorICAgIGxldCBwcm94eSA9IG5ldyBQcm94eSh0YXJn
ZXQsIGhhbmRsZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsKKyAgICAg
ICAgbGV0IG9iaiA9IHt9OworICAgICAgICBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5
cGVPZihwcm94eSwgb2JqKTsKKyAgICAgICAgYXNzZXJ0KHJlc3VsdCk7CisgICAgICAgIGFzc2Vy
dChSZWZsZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCkgPT09IG9iaik7CisgICAgfQorfQorCit7
CisgICAgbGV0IHRhcmdldCA9IHt9OworICAgIGxldCBoYW5kbGVyID0geworICAgICAgICBzZXRQ
cm90b3R5cGVPZjogdW5kZWZpbmVkCisgICAgfTsKKyAgICAKKyAgICBsZXQgcHJveHkgPSBuZXcg
UHJveHkodGFyZ2V0LCBoYW5kbGVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsr
KSB7CisgICAgICAgIGxldCBvYmogPSB7fTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFJlZmxlY3Qu
c2V0UHJvdG90eXBlT2YocHJveHksIG9iaik7CisgICAgICAgIGFzc2VydChyZXN1bHQpOworICAg
ICAgICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpID09PSBvYmopOworICAg
IH0KK30KKworeworICAgIGxldCB0YXJnZXQgPSB7fTsKKyAgICBsZXQgaGFuZGxlciA9IHsgfTsK
KyAgICAKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKTsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7CisgICAgICAgIGxldCBvYmogPSB7fTsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IFJlZmxlY3Quc2V0UHJvdG90eXBlT2YocHJveHksIG9iaik7Cisg
ICAgICAgIGFzc2VydChyZXN1bHQpOworICAgICAgICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5
cGVPZih0YXJnZXQpID09PSBvYmopOworICAgIH0KK30K
</data>
<flag name="review"
          id="297537"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>