<?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>152850</bug_id>
          
          <creation_ts>2016-01-07 13:29:08 -0800</creation_ts>
          <short_desc>FTL B3 PutById should do exceptions</short_desc>
          <delta_ts>2016-01-07 16:01:48 -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>
          
          <blocked>151686</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1153543</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 13:29:08 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153578</commentid>
    <comment_count>1</comment_count>
      <attachid>268486</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 14:11:30 -0800</bug_when>
    <thetext>Created attachment 268486
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153581</commentid>
    <comment_count>2</comment_count>
      <attachid>268487</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 14:11:58 -0800</bug_when>
    <thetext>Created attachment 268487
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153582</commentid>
    <comment_count>3</comment_count>
      <attachid>268487</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-07 14:13:13 -0800</bug_when>
    <thetext>Comment on attachment 268487
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153631</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 15:00:36 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194730</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153650</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-01-07 15:43:31 -0800</bug_when>
    <thetext>** The following JSC stress test failures have been introduced:
	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.default-ftl
	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-eager
	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-eager-no-cjit
	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-no-cjit-no-inline-validate
	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-no-cjit-validate

&lt;https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20JSC%20%28Tests%29/builds/2311/steps/jscore-test/logs/stdio&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153662</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 15:54:14 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; ** The following JSC stress test failures have been introduced:
&gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.default-ftl
&gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-eager
&gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-eager-
&gt; no-cjit
&gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-no-cjit-
&gt; no-inline-validate
&gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-no-cjit-
&gt; validate
&gt; 
&gt; &lt;https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Release%20JSC%20%28Tests%29/builds/2311/steps/jscore-
&gt; test/logs/stdio&gt;

I&apos;m on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153665</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 16:01:48 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; ** The following JSC stress test failures have been introduced:
&gt; &gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.default-ftl
&gt; &gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-eager
&gt; &gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-eager-
&gt; &gt; no-cjit
&gt; &gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-no-cjit-
&gt; &gt; no-inline-validate
&gt; &gt; 	stress/ftl-put-by-id-setter-exception-interesting-live-state.js.ftl-no-cjit-
&gt; &gt; validate
&gt; &gt; 
&gt; &gt; &lt;https://build.webkit.org/builders/
&gt; &gt; Apple%20El%20Capitan%20Release%20JSC%20%28Tests%29/builds/2311/steps/jscore-
&gt; &gt; test/logs/stdio&gt;
&gt; 
&gt; I&apos;m on it.

Fixed in http://trac.webkit.org/changeset/194740.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268486</attachid>
            <date>2016-01-07 14:11:30 -0800</date>
            <delta_ts>2016-01-07 14:11:58 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17768</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NzIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE2LTAxLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIFB1dEJ5SWQgc2hvdWxkIGRvIGV4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg1MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVkIFB1dEJ5SWQgZXhjZXB0aW9u
IGhhbmRsaW5nIGJ5IGZvbGxvd2luZyB0aGUgaWRpb20gdXNlZCBpbiBHZXRCeUlkLgorCisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QnlJZCk6CisgICAgICAgICogdGVzdHMvc3RyZXNz
L2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhj
ZXB0aW9uLW5vLWNhdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2Vw
dGlvbi1uby1jYXRjaC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1wdXQt
YnktaWQtc2xvdy1leGNlcHRpb24uanM6IEFkZGVkLgorCiAyMDE2LTAxLTA3ICBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVwZGF0ZSB0ZXN0
Q2hlY2tTdWJCYWRJbW0oKSBmb3IgQVJNNjQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21tb24uaAkocmV2aXNpb24gMTk0NzE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAvLyBXZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBleHBl
cmltZW50YWwgdHJhbnNpdGlvbiBmcm9tIExMVk0gdG8gQjMgYXMgdGhlIGJhY2tlbmQgZm9yIHRo
ZSBGVEwuIFdlIGRvbid0CiAvLyB5ZXQga25vdyBob3cgaXQgd2lsbCB0dXJuIG91dC4gRm9yIG5v
dywgdGhpcyBmbGFnIHdpbGwgY29udHJvbCB3aGV0aGVyIEZUTCB1c2VzIEIzLiBSZW1lbWJlciB0
byBzZXQgdGhpcwogLy8gdG8gMCBiZWZvcmUgY29tbWl0dGluZyEKLSNkZWZpbmUgRlRMX1VTRVNf
QjMgMAorI2RlZmluZSBGVExfVVNFU19CMyAxCiAKIHN0cnVjdCBOb2RlOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNp
b24gMTk0NzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NTIsMTQgKzI2NTIsMTcgQEAgcHJpdmF0ZToKICAg
ICAgICAgYXV0byB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbbm9kZS0+aWRlbnRpZmllck51
bWJlcigpXTsKIAogI2lmIEZUTF9VU0VTX0IzCi0gICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMg
ZG8gZXhjZXB0aW9ucy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MTY4NgotCiAgICAgICAgIEIzOjpQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9p
bnQgPSBtX291dC5wYXRjaHBvaW50KFZvaWQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRT
b21lUmVnaXN0ZXIoYmFzZSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3Rl
cih2YWx1ZSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3Jv
U2NyYXRjaFJlZ2lzdGVycygpKTsKIAorICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyBpcyBhIFB1
dEJ5SWRGbHVzaCwgd2UgbWlnaHQgd2FudCB0byBsYXRlLWNsb2JiZXIgdm9sYXRpbGUgcmVnaXN0
ZXJzLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUyODQ4CisKKyAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2Vw
dGlvbkhhbmRsZSA9CisgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMo
cGF0Y2hwb2ludCk7CisKICAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CiAgICAg
ICAgIEVDTUFNb2RlIGVjbWFNb2RlID0gbV9ncmFwaC5leGVjdXRhYmxlRm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYyktPmVjbWFNb2RlKCk7CiAgICAgICAgIApAQCAtMjY2Nyw5ICsyNjcwLDE3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAgICAgIEFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKIAorICAgICAgICAgICAg
ICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCA9CisgICAgICAgICAgICAgICAgICAgIHN0
YXRlLT5qaXRDb2RlLT5jb21tb24uYWRkVW5pcXVlQ2FsbFNpdGVJbmRleChub2RlLT5vcmlnaW4u
c2VtYW50aWMpOworCisgICAgICAgICAgICAgICAgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+
IGV4Y2VwdGlvbnMgPQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVk
dWxlRXhpdENyZWF0aW9uKHBhcmFtcyktPmp1bXBzKGppdCk7CisKKyAgICAgICAgICAgICAgICAv
LyBKUyBzZXR0ZXIgY2FsbCBJQ3MgZ2VuZXJhdGVkIGJ5IHRoZSBQdXRCeUlkIElDIHdpbGwgbmVl
ZCB0aGlzLgorICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3Jl
YXRpb25Gb3JVbndpbmQocGFyYW1zLCBjYWxsU2l0ZUluZGV4KTsKKwogICAgICAgICAgICAgICAg
IGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJVFB1dEJ5SWRHZW5lcmF0b3I+OjpjcmVhdGUoCi0gICAg
ICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwgbm9kZS0+b3JpZ2luLnNlbWFudGljLAot
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLmFkZFVuaXF1ZUNhbGxT
aXRlSW5kZXgobm9kZS0+b3JpZ2luLnNlbWFudGljKSwKKyAgICAgICAgICAgICAgICAgICAgaml0
LmNvZGVCbG9jaygpLCBub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNhbGxTaXRlSW5kZXgsCiAgICAg
ICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBKU1ZhbHVlUmVn
cyhwYXJhbXNbMF0uZ3ByKCkpLAogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJh
bXNbMV0uZ3ByKCkpLCBHUFJJbmZvOjpwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyLCBlY21hTW9k
ZSwKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+b3AoKSA9PSBQdXRCeUlkRGlyZWN0ID8gRGly
ZWN0IDogTm90RGlyZWN0KTsKQEAgLTI2ODEsMTQgKzI2OTIsMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQp
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGRvIHNvbWV0
aGluZy4KLSAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZXhj
ZXB0aW9uczsKLQogICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1
bXAoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbigKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVy
cygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmZXhjZXB0aW9ucywgZ2VuZXJhdG9yLT5zbG93UGF0aEZ1bmN0aW9uKCksIEludmFsaWRH
UFJSZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgZ2Vu
ZXJhdG9yLT5zbG93UGF0aEZ1bmN0aW9uKCksIEludmFsaWRHUFJSZWcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGdlbmVyYXRvci0+c3R1
YkluZm8oKSksIHBhcmFtc1sxXS5ncHIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJhbXNbMF0uZ3ByKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih1aWQpKS5jYWxsKCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmaml0KTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1z
ZXR0ZXItZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNldHRlci1l
eGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0
aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2
MSBAQAorZnVuY3Rpb24gZm9vKG8sIHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVz
dWx0ID0gMTAxOworICAgIHZhciBwZiA9IHAuZzsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAy
OworICAgICAgICBwZisrOworICAgICAgICBvLmYgPSB4ICsgcGY7CisgICAgICAgIG8gPSAxMDQ7
CisgICAgICAgIHBmKys7CisgICAgICAgIHggPSAxMDY7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICByZXR1cm4ge291dGNvbWU6ICJleGNlcHRpb24iLCB2YWx1ZXM6IFtvLCBwZiwgeF19Owor
ICAgIH0KKyAgICByZXR1cm4ge291dGNvbWU6ICJyZXR1cm4iLCB2YWx1ZXM6IFtvLCBwZiwgeF19
OworfQorCitub0lubGluZShmb28pOworCisvLyBXYXJtIHVwIGZvbygpIHdpdGggcG9seW1vcnBo
aWMgb2JqZWN0cyBhbmQgZ2V0dGVycy4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
IHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9u
KHZhbHVlKSB7CisgICAgICAgIHRoaXMuX2YgPSB2YWx1ZTsKKyAgICB9KTsKKyAgICBpZiAoaSAm
IDEpCisgICAgICAgIG9bImkiICsgaV0gPSBpOyAvLyBNYWtlIGl0IHBvbHltb3JwaGljLgorICAg
IHZhciByZXN1bHQgPSBmb28obywge2c6MjAwfSk7CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9
PSAicmV0dXJuIikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAi
ICsgcmVzdWx0Lm91dGNvbWU7CisgICAgaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSAzKQor
ICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyBy
ZXN1bHQudmFsdWVzLmxlbmd0aDsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQor
ICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52
YWx1ZXNbMF07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDIwMikKKyAgICAgICAgdGhy
b3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOwor
ICAgIGlmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDYpCisgICAgICAgIHRocm93ICJFcnJvciBp
biBsb29wOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKKyAgICBpZiAoby5f
ZiAhPSAxMDIgKyAyMDEpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWUg
b2Ygby5fZjogIiArIG8uX2Y7Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCit2YXIg
byA9IHt9Oworby5fX2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgdGhyb3cg
IkVycm9yNDIiOworfSk7Cit2YXIgcmVzdWx0ID0gZm9vKG8sIHtnOjMwMH0pOworaWYgKHJlc3Vs
dC5vdXRjb21lICE9PSAiZXhjZXB0aW9uIikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQg
b3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9
PSAzKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAiICsg
cmVzdWx0LnZhbHVlcy5sZW5ndGg7CitpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gbykKKyAgICB0
aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsK
K2lmIChyZXN1bHQudmFsdWVzWzFdICE9PSAzMDEpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDog
YmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CitpZiAocmVzdWx0LnZhbHVlc1sy
XSAhPT0gMTAyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMl06ICIgKyBy
ZXN1bHQudmFsdWVzWzJdOworaWYgKCJfZiIgaW4gbykKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5k
OiBvIGhhcyBfZi4iOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlvbi1uby1jYXRjaC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2V0dGVy
LWV4Y2VwdGlvbi1uby1jYXRjaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLW5vLWNhdGNo
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7
CisgICAgdmFyIHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB4ID0gMTAyOwor
ICAgIHAgPSAxMDM7CisgICAgby5mID0geCArIHA7CisgICAgbyA9IDEwNDsKKyAgICBwID0gMTA1
OworICAgIHggPSAxMDY7CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBb
bywgcCwgeF19OworfQorCitub0lubGluZShmb28pOworCisvLyBXYXJtIHVwIGZvbygpIHdpdGgg
cG9seW1vcnBoaWMgb2JqZWN0cyBhbmQgZ2V0dGVycy4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVTZXR0ZXJfXygiZiIs
IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICAgIHRoaXMuX2YgPSB2YWx1ZTsKKyAgICB9KTsKKyAg
ICBpZiAoaSAmIDEpCisgICAgICAgIG9bImkiICsgaV0gPSBpOyAvLyBNYWtlIGl0IHBvbHltb3Jw
aGljLgorICAgIHZhciByZXN1bHQgPSBmb28obyk7CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9
PSAicmV0dXJuIikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAi
ICsgcmVzdWx0Lm91dGNvbWU7CisgICAgaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSAzKQor
ICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyBy
ZXN1bHQudmFsdWVzLmxlbmd0aDsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQor
ICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52
YWx1ZXNbMF07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDEwNSkKKyAgICAgICAgdGhy
b3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOwor
ICAgIGlmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDYpCisgICAgICAgIHRocm93ICJFcnJvciBp
biBsb29wOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKKyAgICBpZiAoby5f
ZiAhPSAxMDIgKyAxMDMpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWUg
b2Ygby5fZjogIiArIG8uX2Y7Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCit2YXIg
cmVzdWx0OwordHJ5IHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVTZXR0ZXJfXygi
ZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiRXJyb3I0MiI7CisgICAgfSk7CisgICAg
cmVzdWx0ID0gZm9vKG8sIDEwOCk7Cit9IGNhdGNoIChlKSB7CisgICAgaWYgKGUgIT0gIkVycm9y
NDIiKQorICAgICAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgZXhjZXB0aW9uOiAiICsgZTsK
KyAgICByZXN1bHQgPSB7b3V0Y29tZTogImV4Y2VwdGlvbiJ9OworfQoraWYgKHJlc3VsdC5vdXRj
b21lICE9PSAiZXhjZXB0aW9uIikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgb3V0Y29t
ZTogIiArIHJlc3VsdC5vdXRjb21lOworaWYgKCJfZiIgaW4gbykKKyAgICB0aHJvdyAiRXJyb3Ig
YXQgZW5kOiBvIGhhcyBfZiI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2Vw
dGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNjAgQEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAgdmFyIHggPSAxMDA7CisgICAg
dmFyIHJlc3VsdCA9IDEwMTsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAyOworICAgICAgICBw
ID0gMTAzOworICAgICAgICBvLmYgPSB4ICsgcDsKKyAgICAgICAgbyA9IDEwNDsKKyAgICAgICAg
cCA9IDEwNTsKKyAgICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJl
dHVybiB7b3V0Y29tZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW28sIHAsIHhdfTsKKyAgICB9Cisg
ICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBbbywgcCwgeF19OworfQorCitu
b0lubGluZShmb28pOworCisvLyBXYXJtIHVwIGZvbygpIHdpdGggcG9seW1vcnBoaWMgb2JqZWN0
cyBhbmQgZ2V0dGVycy4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKHZhbHVlKSB7
CisgICAgICAgIHRoaXMuX2YgPSB2YWx1ZTsKKyAgICB9KTsKKyAgICBpZiAoaSAmIDEpCisgICAg
ICAgIG9bImkiICsgaV0gPSBpOyAvLyBNYWtlIGl0IHBvbHltb3JwaGljLgorICAgIHZhciByZXN1
bHQgPSBmb28obyk7CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9PSAicmV0dXJuIikKKyAgICAg
ICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7
CisgICAgaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSAzKQorICAgICAgICB0aHJvdyAiRXJy
b3IgaW4gbG9vcDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0
aDsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQorICAgICAgICB0aHJvdyAiRXJy
b3IgaW4gbG9vcDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1ZXNbMF07CisgICAgaWYg
KHJlc3VsdC52YWx1ZXNbMV0gIT09IDEwNSkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6
IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworICAgIGlmIChyZXN1bHQudmFs
dWVzWzJdICE9PSAxMDYpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVz
WzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKKyAgICBpZiAoby5fZiAhPSAxMDIgKyAxMDMpCisg
ICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWUgb2Ygby5fZjogIiArIG8uX2Y7
Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCit2YXIgbyA9IHt9Oworby5fX2RlZmlu
ZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgIkVycm9yNDIiOworfSk7Cit2
YXIgcmVzdWx0ID0gZm9vKG8sIDEwOCk7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRp
b24iKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91
dGNvbWU7CitpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDMpCisgICAgdGhyb3cgIkVycm9y
IGF0IGVuZDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsK
K2lmIChyZXN1bHQudmFsdWVzWzBdICE9PSBvKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJh
ZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworaWYgKHJlc3VsdC52YWx1ZXNbMV0g
IT09IDEwMykKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVz
dWx0LnZhbHVlc1sxXTsKK2lmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDIpCisgICAgdGhyb3cg
IkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07CitpZiAo
Il9mIiBpbiBvKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IG8gaGFzIF9mLiI7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4
Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi1p
bnRlcmVzdGluZy1saXZlLXN0YXRlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNsb3ctZXhjZXB0aW9uLWludGVyZXN0
aW5nLWxpdmUtc3RhdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NiBAQAorZnVuY3Rp
b24gZm9vKG8sIHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOwor
ICAgIHZhciBwZiA9IHAuZzsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAyOworICAgICAgICBw
ZisrOworICAgICAgICBvLmYgPSB4ICsgcGY7CisgICAgICAgIG8gPSAxMDQ7CisgICAgICAgIHBm
Kys7CisgICAgICAgIHggPSAxMDY7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4g
e291dGNvbWU6ICJleGNlcHRpb24iLCB2YWx1ZXM6IFtvLCBwZiwgeF19OworICAgIH0KKyAgICBy
ZXR1cm4ge291dGNvbWU6ICJyZXR1cm4iLCB2YWx1ZXM6IFtvLCBwZiwgeF19OworfQorCitub0lu
bGluZShmb28pOworCisvLyBXYXJtIHVwIGZvbygpIHdpdGggcG9seW1vcnBoaWMgb2JqZWN0cyBh
bmQgZ2V0dGVycy4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
byA9IHt9OworICAgIGlmIChpICYgMSkKKyAgICAgICAgb1siaSIgKyBpXSA9IGk7IC8vIE1ha2Ug
aXQgcG9seW1vcnBoaWMuCisgICAgdmFyIHJlc3VsdCA9IGZvbyhvLCB7ZzoyMDB9KTsKKyAgICBp
ZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4g
bG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAocmVzdWx0LnZh
bHVlcy5sZW5ndGggIT09IDMpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgbnVt
YmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlmIChyZXN1bHQu
dmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFs
dWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1sxXSAh
PT0gMjAyKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sxXTogIiAr
IHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwNikKKyAg
ICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFs
dWVzWzJdOworICAgIGlmIChvLmYgIT0gMTAyICsgMjAxKQorICAgICAgICB0aHJvdyAiRXJyb3Ig
aW4gbG9vcDogYmFkIHZhbHVlIG9mIG8uZjogIiArIG8uZjsKK30KKworLy8gTm93IHRocm93IGFu
IGV4Y2VwdGlvbi4KK3ZhciBvID0ge307CitvLl9fZGVmaW5lU2V0dGVyX18oImYiLCBmdW5jdGlv
bigpIHsKKyAgICB0aHJvdyAiRXJyb3I0MiI7Cit9KTsKK3ZhciByZXN1bHQgPSBmb28obywge2c6
MzAwfSk7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAgIHRocm93ICJF
cnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CitpZiAocmVzdWx0
LnZhbHVlcy5sZW5ndGggIT09IDMpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG51bWJl
ciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKK2lmIChyZXN1bHQudmFsdWVz
WzBdICE9PSBvKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMF06ICIgKyBy
ZXN1bHQudmFsdWVzWzBdOworaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDMwMSkKKyAgICB0aHJv
dyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKK2lm
IChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFk
IHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi1uby1jYXRj
aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0
bC1wdXQtYnktaWQtc2xvdy1leGNlcHRpb24tbm8tY2F0Y2guanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2xvdy1leGNl
cHRpb24tbm8tY2F0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorZnVuY3Rp
b24gZm9vKG8sIHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOwor
ICAgIHZhciBwZiA9IHAuZzsKKyAgICB4ID0gMTAyOworICAgIHBmKys7CisgICAgby5mID0geCAr
IHBmOworICAgIG8gPSAxMDQ7CisgICAgcGYrKzsKKyAgICB4ID0gMTA2OworICAgIHJldHVybiB7
b3V0Y29tZTogInJldHVybiIsIHZhbHVlczogW28sIHBmLCB4XX07Cit9CisKK25vSW5saW5lKGZv
byk7CisKKy8vIFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3RzIGFuZCBnZXR0
ZXJzLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307
CisgICAgaWYgKGkgJiAxKQorICAgICAgICBvWyJpIiArIGldID0gaTsgLy8gTWFrZSBpdCBwb2x5
bW9ycGhpYy4KKyAgICB2YXIgcmVzdWx0ID0gZm9vKG8sIHtnOjIwMH0pOworICAgIGlmIChyZXN1
bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1bHQudmFsdWVzLmxl
bmd0aCAhPT0gMykKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBudW1iZXIgb2Yg
dmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJlc3VsdC52YWx1ZXNb
MF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06
ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzFdICE9PSAyMDIp
CisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0
LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2KQorICAgICAgICB0
aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07
CisgICAgaWYgKG8uZiAhPSAxMDIgKyAyMDEpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29w
OiBiYWQgdmFsdWUgb2Ygby5mOiAiICsgby5mOworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0
aW9uLgordmFyIHJlc3VsdDsKK3RyeSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVmaW5l
U2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhyb3cgIkVycm9yNDIiOworICAg
IH0pOworICAgIHJlc3VsdCA9IGZvbyhvLCB7ZzozMDB9KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBp
ZiAoZSAhPSAiRXJyb3I0MiIpCisgICAgICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBleGNl
cHRpb246ICIgKyBlOworICAgIHJlc3VsdCA9IHtvdXRjb21lOiAiZXhjZXB0aW9uIn07Cit9Citp
ZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAgIHRocm93ICJFcnJvciBhdCBl
bmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXQt
YnktaWQtc2xvdy1leGNlcHRpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2xvdy1leGNlcHRpb24uanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorIGZ1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAgdmFy
IHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB0cnkgeworICAgICAgICB4ID0g
MTAyOworICAgICAgICBwID0gMTAzOworICAgICAgICBvLmYgPSB4ICsgcDsKKyAgICAgICAgbyA9
IDEwNDsKKyAgICAgICAgcCA9IDEwNTsKKyAgICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIHJldHVybiB7b3V0Y29tZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW28sIHAs
IHhdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBbbywg
cCwgeF19OworfQorCitub0lubGluZShmb28pOworCisvLyBXYXJtIHVwIGZvbygpIHdpdGggcG9s
eW1vcnBoaWMgb2JqZWN0cyBhbmQgZ2V0dGVycy4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIGlmIChpICYgMSkKKyAgICAgICAgb1siaSIg
KyBpXSA9IGk7IC8vIE1ha2UgaXQgcG9seW1vcnBoaWMuCisgICAgdmFyIHJlc3VsdCA9IGZvbyhv
KTsKKyAgICBpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAi
RXJyb3IgaW4gbG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAo
cmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDMpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29w
OiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlm
IChyZXN1bHQudmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29w
OiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZh
bHVlc1sxXSAhPT0gMTA1KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVl
c1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09
IDEwNikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyBy
ZXN1bHQudmFsdWVzWzJdOworICAgIGlmIChvLmYgIT0gMTAyICsgMTAzKQorICAgICAgICB0aHJv
dyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlIG9mIG8uZjogIiArIG8uZjsKK30KKworLy8gTm93
IHRocm93IGFuIGV4Y2VwdGlvbi4KK3ZhciBvID0ge307CitvLl9fZGVmaW5lU2V0dGVyX18oImYi
LCBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyAiRXJyb3I0MiI7Cit9KTsKK3ZhciByZXN1bHQgPSBm
b28obywgMTA4KTsKK2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAgdGhy
b3cgIkVycm9yIGF0IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKK2lmIChy
ZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gMykKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQg
bnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworaWYgKHJlc3VsdC52
YWx1ZXNbMF0gIT09IG8pCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTog
IiArIHJlc3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMTAzKQorICAg
IHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFd
OworaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5k
OiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268487</attachid>
            <date>2016-01-07 14:11:58 -0800</date>
            <delta_ts>2016-01-07 14:13:13 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17179</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NzIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE2LTAxLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIFB1dEJ5SWQgc2hvdWxkIGRvIGV4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg1MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVkIFB1dEJ5SWQgZXhjZXB0aW9u
IGhhbmRsaW5nIGJ5IGZvbGxvd2luZyB0aGUgaWRpb20gdXNlZCBpbiBHZXRCeUlkLgorCisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QnlJZCk6CisgICAgICAgICogdGVzdHMvc3RyZXNz
L2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhj
ZXB0aW9uLW5vLWNhdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2Vw
dGlvbi1uby1jYXRjaC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1wdXQt
YnktaWQtc2xvdy1leGNlcHRpb24uanM6IEFkZGVkLgorCiAyMDE2LTAxLTA3ICBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVwZGF0ZSB0ZXN0
Q2hlY2tTdWJCYWRJbW0oKSBmb3IgQVJNNjQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxOTQ3MTYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjY1MiwxNCArMjY1MiwxNyBAQCBwcml2YXRlOgogICAgICAgICBhdXRvIHVpZCA9IG1f
Z3JhcGguaWRlbnRpZmllcnMoKVtub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOwogCiAjaWYgRlRM
X1VTRVNfQjMKLSAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBkbyBleGNlcHRpb25zLgotICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNjg2Ci0K
ICAgICAgICAgQjM6OlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9p
bnQoVm9pZCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihiYXNlKTsK
ICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKHZhbHVlKTsKICAgICAgICAg
cGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkp
OwogCisgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGlzIGEgUHV0QnlJZEZsdXNoLCB3ZSBtaWdo
dCB3YW50IHRvIGxhdGUtY2xvYmJlciB2b2xhdGlsZSByZWdpc3RlcnMuCisgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI4NDgKKworICAgICAgICBS
ZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KKyAgICAg
ICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKKwogICAg
ICAgICBTdGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKICAgICAgICAgRUNNQU1vZGUgZWNtYU1v
ZGUgPSBtX2dyYXBoLmV4ZWN1dGFibGVGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+ZWNtYU1v
ZGUoKTsKICAgICAgICAgCkBAIC0yNjY3LDkgKzI2NzAsMTcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cyYgcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlIGFsbG93U2NyYXRjaChqaXQpOwogCisgICAgICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZUluZGV4ID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmppdENvZGUtPmNvbW1v
bi5hZGRVbmlxdWVDYWxsU2l0ZUluZGV4KG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisKKyAgICAg
ICAgICAgICAgICBCb3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9ucyA9CisgICAg
ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3JlYXRpb24ocGFy
YW1zKS0+anVtcHMoaml0KTsKKworICAgICAgICAgICAgICAgIC8vIEpTIHNldHRlciBjYWxsIElD
cyBnZW5lcmF0ZWQgYnkgdGhlIFB1dEJ5SWQgSUMgd2lsbCBuZWVkIHRoaXMuCisgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbkZvclVud2luZChwYXJh
bXMsIGNhbGxTaXRlSW5kZXgpOworCiAgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBC
b3g8SklUUHV0QnlJZEdlbmVyYXRvcj46OmNyZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgaml0
LmNvZGVCbG9jaygpLCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCi0gICAgICAgICAgICAgICAgICAg
IHN0YXRlLT5qaXRDb2RlLT5jb21tb24uYWRkVW5pcXVlQ2FsbFNpdGVJbmRleChub2RlLT5vcmln
aW4uc2VtYW50aWMpLAorICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksIG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYywgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5ncHIoKSks
CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5ncHIoKSksIEdQUklu
Zm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIsIGVjbWFNb2RlLAogICAgICAgICAgICAgICAg
ICAgICBub2RlLT5vcCgpID09IFB1dEJ5SWREaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwpA
QCAtMjY4MSwxNCArMjY5MiwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBbPV0g
KENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3Jv
U2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gc29tZXRoaW5nLgotICAgICAgICAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zOwotCiAgICAgICAg
ICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4g
PSBqaXQubGFiZWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2Fs
bCBzbG93UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3Jp
Z2luLnNlbWFudGljLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleGNlcHRpb25zLCBn
ZW5lcmF0b3ItPnNsb3dQYXRoRnVuY3Rpb24oKSwgSW52YWxpZEdQUlJlZywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBnZW5lcmF0b3ItPnNsb3dQYXRoRnVu
Y3Rpb24oKSwgSW52YWxpZEdQUlJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoZ2VuZXJhdG9yLT5zdHViSW5mbygpKSwgcGFyYW1zWzFd
LmdwcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkpLmNhbGwoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZqaXQpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNldHRlci1leGNlcHRpb24taW50
ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlvbi1pbnRlcmVzdGlu
Zy1saXZlLXN0YXRlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNldHRlci1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2
ZS1zdGF0ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYxIEBACitmdW5jdGlvbiBmb28o
bywgcCkgeworICAgIHZhciB4ID0gMTAwOworICAgIHZhciByZXN1bHQgPSAxMDE7CisgICAgdmFy
IHBmID0gcC5nOworICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7CisgICAgICAgIHBmKys7Cisg
ICAgICAgIG8uZiA9IHggKyBwZjsKKyAgICAgICAgbyA9IDEwNDsKKyAgICAgICAgcGYrKzsKKyAg
ICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiB7b3V0Y29t
ZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW28sIHBmLCB4XX07CisgICAgfQorICAgIHJldHVybiB7
b3V0Y29tZTogInJldHVybiIsIHZhbHVlczogW28sIHBmLCB4XX07Cit9CisKK25vSW5saW5lKGZv
byk7CisKKy8vIFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3RzIGFuZCBnZXR0
ZXJzLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307
CisgICAgby5fX2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAg
dGhpcy5fZiA9IHZhbHVlOworICAgIH0pOworICAgIGlmIChpICYgMSkKKyAgICAgICAgb1siaSIg
KyBpXSA9IGk7IC8vIE1ha2UgaXQgcG9seW1vcnBoaWMuCisgICAgdmFyIHJlc3VsdCA9IGZvbyhv
LCB7ZzoyMDB9KTsKKyAgICBpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAg
ICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsK
KyAgICBpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDMpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3Ro
OworICAgIGlmIChyZXN1bHQudmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAo
cmVzdWx0LnZhbHVlc1sxXSAhPT0gMjAyKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDog
YmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1
ZXNbMl0gIT09IDEwNikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNb
Ml06ICIgKyByZXN1bHQudmFsdWVzWzJdOworICAgIGlmIChvLl9mICE9IDEwMiArIDIwMSkKKyAg
ICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZSBvZiBvLl9mOiAiICsgby5fZjsK
K30KKworLy8gTm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK3ZhciBvID0ge307CitvLl9fZGVmaW5l
U2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyAiRXJyb3I0MiI7Cit9KTsKK3Zh
ciByZXN1bHQgPSBmb28obywge2c6MzAwfSk7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNl
cHRpb24iKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0
Lm91dGNvbWU7CitpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDMpCisgICAgdGhyb3cgIkVy
cm9yIGF0IGVuZDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0
aDsKK2lmIChyZXN1bHQudmFsdWVzWzBdICE9PSBvKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6
IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworaWYgKHJlc3VsdC52YWx1ZXNb
MV0gIT09IDMwMSkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzFdOiAiICsg
cmVzdWx0LnZhbHVlc1sxXTsKK2lmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDIpCisgICAgdGhy
b3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07Citp
ZiAoIl9mIiBpbiBvKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IG8gaGFzIF9mLiI7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0
ZXItZXhjZXB0aW9uLW5vLWNhdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLW5vLWNhdGNo
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9m
dGwtcHV0LWJ5LWlkLXNldHRlci1leGNlcHRpb24tbm8tY2F0Y2guanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1NCBAQAorZnVuY3Rpb24gZm9vKG8sIHApIHsKKyAgICB2YXIgeCA9IDEwMDsK
KyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHggPSAxMDI7CisgICAgcCA9IDEwMzsKKyAgICBv
LmYgPSB4ICsgcDsKKyAgICBvID0gMTA0OworICAgIHAgPSAxMDU7CisgICAgeCA9IDEwNjsKKyAg
ICByZXR1cm4ge291dGNvbWU6ICJyZXR1cm4iLCB2YWx1ZXM6IFtvLCBwLCB4XX07Cit9CisKK25v
SW5saW5lKGZvbyk7CisKKy8vIFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3Rz
IGFuZCBnZXR0ZXJzLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciBvID0ge307CisgICAgby5fX2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsK
KyAgICAgICAgdGhpcy5fZiA9IHZhbHVlOworICAgIH0pOworICAgIGlmIChpICYgMSkKKyAgICAg
ICAgb1siaSIgKyBpXSA9IGk7IC8vIE1ha2UgaXQgcG9seW1vcnBoaWMuCisgICAgdmFyIHJlc3Vs
dCA9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAg
ICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsK
KyAgICBpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDMpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3Ro
OworICAgIGlmIChyZXN1bHQudmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAo
cmVzdWx0LnZhbHVlc1sxXSAhPT0gMTA1KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDog
YmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1
ZXNbMl0gIT09IDEwNikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNb
Ml06ICIgKyByZXN1bHQudmFsdWVzWzJdOworICAgIGlmIChvLl9mICE9IDEwMiArIDEwMykKKyAg
ICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZSBvZiBvLl9mOiAiICsgby5fZjsK
K30KKworLy8gTm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK3ZhciByZXN1bHQ7Cit0cnkgeworICAg
IHZhciBvID0ge307CisgICAgby5fX2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHRocm93ICJFcnJvcjQyIjsKKyAgICB9KTsKKyAgICByZXN1bHQgPSBmb28obywgMTA4
KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBpZiAoZSAhPSAiRXJyb3I0MiIpCisgICAgICAgIHRocm93
ICJFcnJvciBhdCBlbmQ6IGJhZCBleGNlcHRpb246ICIgKyBlOworICAgIHJlc3VsdCA9IHtvdXRj
b21lOiAiZXhjZXB0aW9uIn07Cit9CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24i
KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNv
bWU7CitpZiAoIl9mIiBpbiBvKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IG8gaGFzIF9mIjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1z
ZXR0ZXItZXhjZXB0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNl
dHRlci1leGNlcHRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorZnVuY3Rp
b24gZm9vKG8sIHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOwor
ICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7CisgICAgICAgIHAgPSAxMDM7CisgICAgICAgIG8u
ZiA9IHggKyBwOworICAgICAgICBvID0gMTA0OworICAgICAgICBwID0gMTA1OworICAgICAgICB4
ID0gMTA2OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIHtvdXRjb21lOiAiZXhj
ZXB0aW9uIiwgdmFsdWVzOiBbbywgcCwgeF19OworICAgIH0KKyAgICByZXR1cm4ge291dGNvbWU6
ICJyZXR1cm4iLCB2YWx1ZXM6IFtvLCBwLCB4XX07Cit9CisKK25vSW5saW5lKGZvbyk7CisKKy8v
IFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3RzIGFuZCBnZXR0ZXJzLgorZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307CisgICAgby5f
X2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgdGhpcy5fZiA9
IHZhbHVlOworICAgIH0pOworICAgIGlmIChpICYgMSkKKyAgICAgICAgb1siaSIgKyBpXSA9IGk7
IC8vIE1ha2UgaXQgcG9seW1vcnBoaWMuCisgICAgdmFyIHJlc3VsdCA9IGZvbyhvKTsKKyAgICBp
ZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4g
bG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAocmVzdWx0LnZh
bHVlcy5sZW5ndGggIT09IDMpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgbnVt
YmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlmIChyZXN1bHQu
dmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFs
dWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1sxXSAh
PT0gMTA1KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sxXTogIiAr
IHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwNikKKyAg
ICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFs
dWVzWzJdOworICAgIGlmIChvLl9mICE9IDEwMiArIDEwMykKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCB2YWx1ZSBvZiBvLl9mOiAiICsgby5fZjsKK30KKworLy8gTm93IHRocm93
IGFuIGV4Y2VwdGlvbi4KK3ZhciBvID0ge307CitvLl9fZGVmaW5lU2V0dGVyX18oImYiLCBmdW5j
dGlvbigpIHsKKyAgICB0aHJvdyAiRXJyb3I0MiI7Cit9KTsKK3ZhciByZXN1bHQgPSBmb28obywg
MTA4KTsKK2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVy
cm9yIGF0IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKK2lmIChyZXN1bHQu
dmFsdWVzLmxlbmd0aCAhPT0gMykKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgbnVtYmVy
IG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworaWYgKHJlc3VsdC52YWx1ZXNb
MF0gIT09IG8pCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiArIHJl
c3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMTAzKQorICAgIHRocm93
ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworaWYg
KHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQg
dmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKK2lmICgiX2YiIGluIG8pCisgICAgdGhy
b3cgIkVycm9yIGF0IGVuZDogbyBoYXMgX2YuIjsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNsb3ctZXhjZXB0aW9uLWludGVyZXN0aW5n
LWxpdmUtc3RhdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNsb3ctZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3Rh
dGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Z0bC1wdXQtYnktaWQtc2xvdy1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACitmdW5jdGlvbiBmb28obywgcCkgeworICAg
IHZhciB4ID0gMTAwOworICAgIHZhciByZXN1bHQgPSAxMDE7CisgICAgdmFyIHBmID0gcC5nOwor
ICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7CisgICAgICAgIHBmKys7CisgICAgICAgIG8uZiA9
IHggKyBwZjsKKyAgICAgICAgbyA9IDEwNDsKKyAgICAgICAgcGYrKzsKKyAgICAgICAgeCA9IDEw
NjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiB7b3V0Y29tZTogImV4Y2VwdGlv
biIsIHZhbHVlczogW28sIHBmLCB4XX07CisgICAgfQorICAgIHJldHVybiB7b3V0Y29tZTogInJl
dHVybiIsIHZhbHVlczogW28sIHBmLCB4XX07Cit9CisKK25vSW5saW5lKGZvbyk7CisKKy8vIFdh
cm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3RzIGFuZCBnZXR0ZXJzLgorZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307CisgICAgaWYgKGkg
JiAxKQorICAgICAgICBvWyJpIiArIGldID0gaTsgLy8gTWFrZSBpdCBwb2x5bW9ycGhpYy4KKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKG8sIHtnOjIwMH0pOworICAgIGlmIChyZXN1bHQub3V0Y29tZSAh
PT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgb3V0Y29tZTog
IiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gMykK
KyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAiICsg
cmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09IDEwNCkK
KyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQu
dmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzFdICE9PSAyMDIpCisgICAgICAgIHRo
cm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsK
KyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2KQorICAgICAgICB0aHJvdyAiRXJyb3Ig
aW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07CisgICAgaWYgKG8u
ZiAhPSAxMDIgKyAyMDEpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWUg
b2Ygby5mOiAiICsgby5mOworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9uLgordmFyIG8g
PSB7fTsKK28uX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgIHRocm93ICJF
cnJvcjQyIjsKK30pOwordmFyIHJlc3VsdCA9IGZvbyhvLCB7ZzozMDB9KTsKK2lmIChyZXN1bHQu
b3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG91
dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKK2lmIChyZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0g
MykKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJl
c3VsdC52YWx1ZXMubGVuZ3RoOworaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09IG8pCisgICAgdGhy
b3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1ZXNbMF07Citp
ZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMzAxKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJh
ZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworaWYgKHJlc3VsdC52YWx1ZXNbMl0g
IT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVz
dWx0LnZhbHVlc1syXTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9mdGwtcHV0LWJ5LWlkLXNsb3ctZXhjZXB0aW9uLW5vLWNhdGNoLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4
Y2VwdGlvbi1uby1jYXRjaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi1uby1jYXRjaC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACitmdW5jdGlvbiBmb28obywgcCkgeworICAg
IHZhciB4ID0gMTAwOworICAgIHZhciByZXN1bHQgPSAxMDE7CisgICAgdmFyIHBmID0gcC5nOwor
ICAgIHggPSAxMDI7CisgICAgcGYrKzsKKyAgICBvLmYgPSB4ICsgcGY7CisgICAgbyA9IDEwNDsK
KyAgICBwZisrOworICAgIHggPSAxMDY7CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwg
dmFsdWVzOiBbbywgcGYsIHhdfTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworLy8gV2FybSB1cCBm
b28oKSB3aXRoIHBvbHltb3JwaGljIG9iamVjdHMgYW5kIGdldHRlcnMuCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBpZiAoaSAmIDEpCisg
ICAgICAgIG9bImkiICsgaV0gPSBpOyAvLyBNYWtlIGl0IHBvbHltb3JwaGljLgorICAgIHZhciBy
ZXN1bHQgPSBmb28obywge2c6MjAwfSk7CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9PSAicmV0
dXJuIikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAiICsgcmVz
dWx0Lm91dGNvbWU7CisgICAgaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSAzKQorICAgICAg
ICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQu
dmFsdWVzLmxlbmd0aDsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQorICAgICAg
ICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1ZXNb
MF07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDIwMikKKyAgICAgICAgdGhyb3cgIkVy
cm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworICAgIGlm
IChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDYpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29w
OiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKKyAgICBpZiAoby5mICE9IDEw
MiArIDIwMSkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZSBvZiBvLmY6
ICIgKyBvLmY7Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCit2YXIgcmVzdWx0Owor
dHJ5IHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0
aW9uKCkgeworICAgICAgICB0aHJvdyAiRXJyb3I0MiI7CisgICAgfSk7CisgICAgcmVzdWx0ID0g
Zm9vKG8sIHtnOjMwMH0pOworfSBjYXRjaCAoZSkgeworICAgIGlmIChlICE9ICJFcnJvcjQyIikK
KyAgICAgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIGV4Y2VwdGlvbjogIiArIGU7CisgICAg
cmVzdWx0ID0ge291dGNvbWU6ICJleGNlcHRpb24ifTsKK30KK2lmIChyZXN1bHQub3V0Y29tZSAh
PT0gImV4Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG91dGNvbWU6ICIg
KyByZXN1bHQub3V0Y29tZTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9mdGwtcHV0LWJ5LWlkLXNsb3ctZXhjZXB0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlv
bi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZnRsLXB1dC1ieS1pZC1zbG93LWV4Y2VwdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDU1IEBACisgZnVuY3Rpb24gZm9vKG8sIHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIg
cmVzdWx0ID0gMTAxOworICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7CisgICAgICAgIHAgPSAx
MDM7CisgICAgICAgIG8uZiA9IHggKyBwOworICAgICAgICBvID0gMTA0OworICAgICAgICBwID0g
MTA1OworICAgICAgICB4ID0gMTA2OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJu
IHtvdXRjb21lOiAiZXhjZXB0aW9uIiwgdmFsdWVzOiBbbywgcCwgeF19OworICAgIH0KKyAgICBy
ZXR1cm4ge291dGNvbWU6ICJyZXR1cm4iLCB2YWx1ZXM6IFtvLCBwLCB4XX07Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKKy8vIFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3RzIGFu
ZCBnZXR0ZXJzLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBv
ID0ge307CisgICAgaWYgKGkgJiAxKQorICAgICAgICBvWyJpIiArIGldID0gaTsgLy8gTWFrZSBp
dCBwb2x5bW9ycGhpYy4KKyAgICB2YXIgcmVzdWx0ID0gZm9vKG8pOworICAgIGlmIChyZXN1bHQu
b3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQg
b3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1bHQudmFsdWVzLmxlbmd0
aCAhPT0gMykKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBudW1iZXIgb2YgdmFs
dWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMF0g
IT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06ICIg
KyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzFdICE9PSAxMDUpCisg
ICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZh
bHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2KQorICAgICAgICB0aHJv
dyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07Cisg
ICAgaWYgKG8uZiAhPSAxMDIgKyAxMDMpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgdmFsdWUgb2Ygby5mOiAiICsgby5mOworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9u
LgordmFyIG8gPSB7fTsKK28uX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAg
IHRocm93ICJFcnJvcjQyIjsKK30pOwordmFyIHJlc3VsdCA9IGZvbyhvLCAxMDgpOworaWYgKHJl
c3VsdC5vdXRjb21lICE9PSAiZXhjZXB0aW9uIikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBi
YWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3Ro
ICE9PSAzKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAi
ICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CitpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gbykKKyAg
ICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1sw
XTsKK2lmIChyZXN1bHQudmFsdWVzWzFdICE9PSAxMDMpCisgICAgdGhyb3cgIkVycm9yIGF0IGVu
ZDogYmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CitpZiAocmVzdWx0LnZhbHVl
c1syXSAhPT0gMTAyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMl06ICIg
KyByZXN1bHQudmFsdWVzWzJdOworCg==
</data>
<flag name="review"
          id="293452"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>