<?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>141717</bug_id>
          
          <creation_ts>2015-02-17 12:04:10 -0800</creation_ts>
          <short_desc>Throwing from an FTL call IC slow path may result in tag registers being clobbered on 64-bit CPUs</short_desc>
          <delta_ts>2015-02-17 12:10:31 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069906</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-17 12:04:10 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069908</commentid>
    <comment_count>1</comment_count>
      <attachid>246758</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-17 12:06:04 -0800</bug_when>
    <thetext>Created attachment 246758
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069909</commentid>
    <comment_count>2</comment_count>
      <attachid>246758</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-02-17 12:08:28 -0800</bug_when>
    <thetext>Comment on attachment 246758
the patch

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

r=me

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1849
&gt; +    # Gotta restore the tag registers. We could be throwing from FTL, which may
&gt; +    # clobber them.

I like this comment better than the JIT one -- can you copy it there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069910</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-17 12:10:31 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/180234</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246758</attachid>
            <date>2015-02-17 12:06:04 -0800</date>
            <delta_ts>2015-02-17 12:08:28 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>27537</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMjMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE1LTAyLTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhyb3dpbmcgZnJvbSBhbiBGVEwgY2FsbCBJQyBzbG93IHBhdGggbWF5IHJlc3VsdCBpbiB0YWcg
cmVnaXN0ZXJzIGJlaW5nIGNsb2JiZXJlZCBvbiA2NC1iaXQgQ1BVcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNzE3CisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzE5ODYzMzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBUaGUgYmVzdCBzb2x1dGlvbiBpcyB0byBlbnN1cmUgdGhhdCB0aGUg
ZW5naW5lIGNhdGNoaW5nIGFuIGV4Y2VwdGlvbiByZXN0b3JlcyB0YWcgcmVnaXN0ZXJzLgorICAg
ICAgICAKKyAgICAgICAgRWFjaCBvZiB0aGVzZSBuZXcgdGVzdCBjYXNlcyByZWxpYWJseSBjcmFz
aGVkIHByaW9yIHRvIHRoaXMgcGF0Y2ggYW5kIHRoZXkgZG9uJ3QgY3Jhc2ggYXQgYWxsIG5vdy4K
KworICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2NhdGNoKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAg
ICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy90aHJvdy1mcm9tLWZ0bC1jYWxsLWljLXNsb3ctcGF0aC1jZWxscy5qczogQWRkZWQu
CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Rocm93LWZyb20tZnRsLWNhbGwtaWMtc2xvdy1wYXRo
LXVuZGVmaW5lZC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Rocm93LWZyb20t
ZnRsLWNhbGwtaWMtc2xvdy1wYXRoLmpzOiBBZGRlZC4KKwogMjAxNS0wMi0xNyAgQ3NhYmEgT3N6
dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtBUk1dIEFkZCB0aGUgbmVj
ZXNzYXJ5IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSBhZnRlciBidWcxNDEzMzIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkocmV2aXNpb24gMTgwMjMx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDkyLDYgKzQ5MiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2Nv
cGUoSW5zdHJ1CiAKIHZvaWQgSklUOjplbWl0X29wX2NhdGNoKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7CisgICAgLy8gUmVzdG9yZSB0aGUgdGFnIHJlZ2lzdGVyIHZhbHVlcy4K
KyAgICBtb3ZlKFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgdGFnVHlwZU51bWJlclJlZ2lz
dGVyKTsKKyAgICBtb3ZlKFRydXN0ZWRJbW02NChUYWdNYXNrKSwgdGFnTWFza1JlZ2lzdGVyKTsK
KyAgICAKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bSksIHJlZ1QzKTsKICAgICBsb2FkNjQo
QWRkcmVzcyhyZWdUMywgVk06OmNhbGxGcmFtZUZvclRocm93T2Zmc2V0KCkpLCBjYWxsRnJhbWVS
ZWdpc3Rlcik7CiAgICAgbG9hZDY0KEFkZHJlc3MocmVnVDMsIFZNOjp2bUVudHJ5RnJhbWVGb3JU
aHJvd09mZnNldCgpKSwgcmVnVDApOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDE4MDIzMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0xODQ1LDYgKzE4NDUsMTEgQEAgX2xsaW50X29wX3RvX3ByaW1p
dGl2ZToKIAogCiBfbGxpbnRfb3BfY2F0Y2g6CisgICAgIyBHb3R0YSByZXN0b3JlIHRoZSB0YWcg
cmVnaXN0ZXJzLiBXZSBjb3VsZCBiZSB0aHJvd2luZyBmcm9tIEZUTCwgd2hpY2ggbWF5CisgICAg
IyBjbG9iYmVyIHRoZW0uCisgICAgbW92ZSBUYWdUeXBlTnVtYmVyLCB0YWdUeXBlTnVtYmVyCisg
ICAgbW92ZSBUYWdNYXNrLCB0YWdNYXNrCisgICAgCiAgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVu
ZCB1cCBmcm9tIHRoZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNlIHRoZQogICAgICMg
bWFjaGluZSBjb2RlIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRj
aCksIGFuZCBmcm9tCiAgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChz
ZWUgX2xsaW50X3Rocm93X3RyYW1wb2xpbmUpLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTgwMjMx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBAIGlmIEpTVkFMVUU2NAogICAgIGNvbnN0
IFZhbHVlVHJ1ZSAgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCAxCiAgICAg
Y29uc3QgVmFsdWVVbmRlZmluZWQgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVk
CiAgICAgY29uc3QgVmFsdWVOdWxsICAgICAgID0gVGFnQml0VHlwZU90aGVyCisgICAgY29uc3Qg
VGFnVHlwZU51bWJlciAgID0gMHhmZmZmMDAwMDAwMDAwMDAwCisgICAgY29uc3QgVGFnTWFzayAg
ICAgICAgID0gVGFnVHlwZU51bWJlciB8IFRhZ0JpdFR5cGVPdGhlcgogZWxzZQogICAgIGNvbnN0
IEludDMyVGFnID0gLTEKICAgICBjb25zdCBCb29sZWFuVGFnID0gLTIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ctZnJvbS1mdGwtY2FsbC1pYy1zbG93LXBh
dGgtY2VsbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90aHJvdy1mcm9tLWZ0bC1jYWxsLWljLXNsb3ctcGF0aC1jZWxscy5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ctZnJvbS1mdGwt
Y2FsbC1pYy1zbG93LXBhdGgtY2VsbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOTIg
QEAKKy8vIEF0dGVtcHRzIHRvIGluZHVjZSBhIGNyYXNoIHJlc3VsdGluZyBmcm9tIHRoZSBGVEwg
ZW1pdHRpbmcgY29kZSB0aGF0IGNsb2JiZXJzIHRoZSB0YWcgcmVnaXN0ZXJzIGFuZCB0aGVuCisv
LyB0aHJvd2luZyBhbiBleGNlcHRpb24gd2l0aG91dCByZXN0b3JpbmcgdGhvc2UgdGFnIHJlZ2lz
dGVycycgdmFsdWVzLgorCitmdW5jdGlvbiBmdGxGdW5jdGlvbihhcnJheSwgY2FsbGVlKSB7Cisg
ICAgLy8gR290dGEgdXNlIGxvdHMgb2YgZ3Bycy4KKyAgICB2YXIgeDAgPSBhcnJheVswXTsKKyAg
ICB2YXIgeDEgPSBhcnJheVsxXTsKKyAgICB2YXIgeDIgPSBhcnJheVsyXTsKKyAgICB2YXIgeDMg
PSBhcnJheVszXTsKKyAgICB2YXIgeDQgPSBhcnJheVs0XTsKKyAgICB2YXIgeDUgPSBhcnJheVs1
XTsKKyAgICB2YXIgeDYgPSBhcnJheVs2XTsKKyAgICB2YXIgeDcgPSBhcnJheVs3XTsKKyAgICB2
YXIgeDggPSBhcnJheVs4XTsKKyAgICB2YXIgeDkgPSBhcnJheVs5XTsKKyAgICB2YXIgeDEwID0g
YXJyYXlbMTBdOworICAgIHZhciB4MTEgPSBhcnJheVsxMV07CisgICAgdmFyIHgxMiA9IGFycmF5
WzEyXTsKKyAgICB2YXIgeDEzID0gYXJyYXlbMTNdOworICAgIHZhciB4MTQgPSBhcnJheVsxNF07
CisgICAgdmFyIHgxNSA9IGFycmF5WzE1XTsKKyAgICB2YXIgeDE2ID0gYXJyYXlbMTZdOworICAg
IHZhciB4MTcgPSBhcnJheVsxN107CisgICAgdmFyIHgxOCA9IGFycmF5WzE4XTsKKyAgICB2YXIg
eDE5ID0gYXJyYXlbMTldOworICAgIHZhciB4MjAgPSBhcnJheVsyMF07CisgICAgdmFyIHgyMSA9
IGFycmF5WzIxXTsKKyAgICB2YXIgeDIyID0gYXJyYXlbMjJdOworICAgIHZhciB4MjMgPSBhcnJh
eVsyM107CisgICAgdmFyIHgyNCA9IGFycmF5WzI0XTsKKyAgICB2YXIgeDI1ID0gYXJyYXlbMjVd
OworICAgIHZhciB4MjYgPSBhcnJheVsyNl07CisgICAgdmFyIHgyNyA9IGFycmF5WzI3XTsKKyAg
ICB2YXIgeDI4ID0gYXJyYXlbMjhdOworICAgIHZhciB4MjkgPSBhcnJheVsyOV07CisgICAgdmFy
IHgzMCA9IGFycmF5WzMwXTsKKyAgICB2YXIgeDMxID0gYXJyYXlbMzFdOworICAgIHZhciB4MzIg
PSBhcnJheVszMl07CisgICAgdmFyIHgzMyA9IGFycmF5WzMzXTsKKyAgICB2YXIgeDM0ID0gYXJy
YXlbMzRdOworICAgIHZhciB4MzUgPSBhcnJheVszNV07CisgICAgdmFyIHgzNiA9IGFycmF5WzM2
XTsKKyAgICB2YXIgeDM3ID0gYXJyYXlbMzddOworICAgIHZhciB4MzggPSBhcnJheVszOF07Cisg
ICAgdmFyIHgzOSA9IGFycmF5WzM5XTsKKyAgICB2YXIgeDQwID0gYXJyYXlbNDBdOworICAgIHZh
ciB4NDEgPSBhcnJheVs0MV07CisgICAgdmFyIHg0MiA9IGFycmF5WzQyXTsKKyAgICB2YXIgeDQz
ID0gYXJyYXlbNDNdOworICAgIHZhciB4NDQgPSBhcnJheVs0NF07CisgICAgdmFyIHg0NSA9IGFy
cmF5WzQ1XTsKKyAgICB2YXIgeDQ2ID0gYXJyYXlbNDZdOworICAgIHZhciB4NDcgPSBhcnJheVs0
N107CisgICAgdmFyIHg0OCA9IGFycmF5WzQ4XTsKKyAgICB2YXIgeDQ5ID0gYXJyYXlbNDldOwor
ICAgIHZhciB4NTAgPSBhcnJheVs1MF07CisgICAgdmFyIHg1MSA9IGFycmF5WzUxXTsKKyAgICB2
YXIgeDUyID0gYXJyYXlbNTJdOworICAgIHZhciB4NTMgPSBhcnJheVs1M107CisgICAgdmFyIHg1
NCA9IGFycmF5WzU0XTsKKyAgICB2YXIgeDU1ID0gYXJyYXlbNTVdOworICAgIHZhciB4NTYgPSBh
cnJheVs1Nl07CisgICAgdmFyIHg1NyA9IGFycmF5WzU3XTsKKyAgICB2YXIgeDU4ID0gYXJyYXlb
NThdOworICAgIHZhciB4NTkgPSBhcnJheVs1OV07CisgICAgdmFyIHg2MCA9IGFycmF5WzYwXTsK
KyAgICB2YXIgeDYxID0gYXJyYXlbNjFdOworICAgIHZhciB4NjIgPSBhcnJheVs2Ml07CisgICAg
dmFyIHg2MyA9IGFycmF5WzYzXTsKKyAgICAKKyAgICAvLyBNYWtlIGEgY2FsbCB0aGF0IHdpbGwg
dGhyb3csIHdoZW4gd2UgYXNrIGl0IHRvLgorICAgIGNhbGxlZSgiaGVsbG8iKTsKKyAgICAKKyAg
ICAvLyBVc2UgYWxsIG9mIHRob3NlIGNyYXp5IHZhbHVlcy4KKyAgICByZXR1cm4gW3gwLCB4MSwg
eDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwg
eDE1LCB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgy
NiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEsIHgzMiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4Mzcs
IHgzOCwgeDM5LCB4NDAsIHg0MSwgeDQyLCB4NDMsIHg0NCwgeDQ1LCB4NDYsIHg0NywgeDQ4LCB4
NDksIHg1MCwgeDUxLCB4NTIsIHg1MywgeDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYw
LCB4NjEsIHg2MiwgeDYzXQorfQorCitub0lubGluZShmdGxGdW5jdGlvbik7CisKKy8vIENyZWF0
ZSBzb21lIGNhbGxlZXMgdGhhdCBhcmUgdG9vIGNyYXp5IHRvIGdldCBpbmxpbmVkIG9yIGRldmly
dHVhbGl6ZWQsIGJ1dCB0aGF0IGRvbid0IGhhdmUgZWZmZWN0cy4KKworZnVuY3Rpb24gaGFwcHlD
YWxsZWUwKCkgeyByZXR1cm4gMCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxKCkgeyByZXR1cm4g
MSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUyKCkgeyByZXR1cm4gMiB9OworZnVuY3Rpb24gaGFw
cHlDYWxsZWUzKCkgeyByZXR1cm4gMyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0KCkgeyByZXR1
cm4gNCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1KCkgeyByZXR1cm4gNSB9OworZnVuY3Rpb24g
aGFwcHlDYWxsZWU2KCkgeyByZXR1cm4gNiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU3KCkgeyBy
ZXR1cm4gNyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU4KCkgeyByZXR1cm4gOCB9OworZnVuY3Rp
b24gaGFwcHlDYWxsZWU5KCkgeyByZXR1cm4gOSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxMCgp
IHsgcmV0dXJuIDEwIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTExKCkgeyByZXR1cm4gMTEgfTsK
K2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMTIoKSB7IHJldHVybiAxMiB9OworZnVuY3Rpb24gaGFwcHlD
YWxsZWUxMygpIHsgcmV0dXJuIDEzIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTE0KCkgeyByZXR1
cm4gMTQgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMTUoKSB7IHJldHVybiAxNSB9OworZnVuY3Rp
b24gaGFwcHlDYWxsZWUxNigpIHsgcmV0dXJuIDE2IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTE3
KCkgeyByZXR1cm4gMTcgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMTgoKSB7IHJldHVybiAxOCB9
OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxOSgpIHsgcmV0dXJuIDE5IH07CitmdW5jdGlvbiBoYXBw
eUNhbGxlZTIwKCkgeyByZXR1cm4gMjAgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMjEoKSB7IHJl
dHVybiAyMSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUyMigpIHsgcmV0dXJuIDIyIH07CitmdW5j
dGlvbiBoYXBweUNhbGxlZTIzKCkgeyByZXR1cm4gMjMgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVl
MjQoKSB7IHJldHVybiAyNCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUyNSgpIHsgcmV0dXJuIDI1
IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTI2KCkgeyByZXR1cm4gMjYgfTsKK2Z1bmN0aW9uIGhh
cHB5Q2FsbGVlMjcoKSB7IHJldHVybiAyNyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUyOCgpIHsg
cmV0dXJuIDI4IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTI5KCkgeyByZXR1cm4gMjkgfTsKK2Z1
bmN0aW9uIGhhcHB5Q2FsbGVlMzAoKSB7IHJldHVybiAzMCB9OworZnVuY3Rpb24gaGFwcHlDYWxs
ZWUzMSgpIHsgcmV0dXJuIDMxIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTMyKCkgeyByZXR1cm4g
MzIgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzMoKSB7IHJldHVybiAzMyB9OworZnVuY3Rpb24g
aGFwcHlDYWxsZWUzNCgpIHsgcmV0dXJuIDM0IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTM1KCkg
eyByZXR1cm4gMzUgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzYoKSB7IHJldHVybiAzNiB9Owor
ZnVuY3Rpb24gaGFwcHlDYWxsZWUzNygpIHsgcmV0dXJuIDM3IH07CitmdW5jdGlvbiBoYXBweUNh
bGxlZTM4KCkgeyByZXR1cm4gMzggfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzkoKSB7IHJldHVy
biAzOSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0MCgpIHsgcmV0dXJuIDQwIH07CitmdW5jdGlv
biBoYXBweUNhbGxlZTQxKCkgeyByZXR1cm4gNDEgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDIo
KSB7IHJldHVybiA0MiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0MygpIHsgcmV0dXJuIDQzIH07
CitmdW5jdGlvbiBoYXBweUNhbGxlZTQ0KCkgeyByZXR1cm4gNDQgfTsKK2Z1bmN0aW9uIGhhcHB5
Q2FsbGVlNDUoKSB7IHJldHVybiA0NSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0NigpIHsgcmV0
dXJuIDQ2IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTQ3KCkgeyByZXR1cm4gNDcgfTsKK2Z1bmN0
aW9uIGhhcHB5Q2FsbGVlNDgoKSB7IHJldHVybiA0OCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0
OSgpIHsgcmV0dXJuIDQ5IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTUwKCkgeyByZXR1cm4gNTAg
fTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNTEoKSB7IHJldHVybiA1MSB9OworZnVuY3Rpb24gaGFw
cHlDYWxsZWU1MigpIHsgcmV0dXJuIDUyIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTUzKCkgeyBy
ZXR1cm4gNTMgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNTQoKSB7IHJldHVybiA1NCB9OworZnVu
Y3Rpb24gaGFwcHlDYWxsZWU1NSgpIHsgcmV0dXJuIDU1IH07CitmdW5jdGlvbiBoYXBweUNhbGxl
ZTU2KCkgeyByZXR1cm4gNTYgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNTcoKSB7IHJldHVybiA1
NyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1OCgpIHsgcmV0dXJuIDU4IH07CitmdW5jdGlvbiBo
YXBweUNhbGxlZTU5KCkgeyByZXR1cm4gNTkgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNjAoKSB7
IHJldHVybiA2MCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU2MSgpIHsgcmV0dXJuIDYxIH07Citm
dW5jdGlvbiBoYXBweUNhbGxlZTYyKCkgeyByZXR1cm4gNjIgfTsKK2Z1bmN0aW9uIGhhcHB5Q2Fs
bGVlNjMoKSB7IHJldHVybiA2MyB9OworCit2YXIgaGFwcHlDYWxsZWVzID0gW2hhcHB5Q2FsbGVl
MCwgaGFwcHlDYWxsZWUxLCBoYXBweUNhbGxlZTIsIGhhcHB5Q2FsbGVlMywgaGFwcHlDYWxsZWU0
LCBoYXBweUNhbGxlZTUsIGhhcHB5Q2FsbGVlNiwgaGFwcHlDYWxsZWU3LCBoYXBweUNhbGxlZTgs
IGhhcHB5Q2FsbGVlOSwgaGFwcHlDYWxsZWUxMCwgaGFwcHlDYWxsZWUxMSwgaGFwcHlDYWxsZWUx
MiwgaGFwcHlDYWxsZWUxMywgaGFwcHlDYWxsZWUxNCwgaGFwcHlDYWxsZWUxNSwgaGFwcHlDYWxs
ZWUxNiwgaGFwcHlDYWxsZWUxNywgaGFwcHlDYWxsZWUxOCwgaGFwcHlDYWxsZWUxOSwgaGFwcHlD
YWxsZWUyMCwgaGFwcHlDYWxsZWUyMSwgaGFwcHlDYWxsZWUyMiwgaGFwcHlDYWxsZWUyMywgaGFw
cHlDYWxsZWUyNCwgaGFwcHlDYWxsZWUyNSwgaGFwcHlDYWxsZWUyNiwgaGFwcHlDYWxsZWUyNywg
aGFwcHlDYWxsZWUyOCwgaGFwcHlDYWxsZWUyOSwgaGFwcHlDYWxsZWUzMCwgaGFwcHlDYWxsZWUz
MSwgaGFwcHlDYWxsZWUzMiwgaGFwcHlDYWxsZWUzMywgaGFwcHlDYWxsZWUzNCwgaGFwcHlDYWxs
ZWUzNSwgaGFwcHlDYWxsZWUzNiwgaGFwcHlDYWxsZWUzNywgaGFwcHlDYWxsZWUzOCwgaGFwcHlD
YWxsZWUzOSwgaGFwcHlDYWxsZWU0MCwgaGFwcHlDYWxsZWU0MSwgaGFwcHlDYWxsZWU0MiwgaGFw
cHlDYWxsZWU0MywgaGFwcHlDYWxsZWU0NCwgaGFwcHlDYWxsZWU0NSwgaGFwcHlDYWxsZWU0Niwg
aGFwcHlDYWxsZWU0NywgaGFwcHlDYWxsZWU0OCwgaGFwcHlDYWxsZWU0OSwgaGFwcHlDYWxsZWU1
MCwgaGFwcHlDYWxsZWU1MSwgaGFwcHlDYWxsZWU1MiwgaGFwcHlDYWxsZWU1MywgaGFwcHlDYWxs
ZWU1NCwgaGFwcHlDYWxsZWU1NSwgaGFwcHlDYWxsZWU1NiwgaGFwcHlDYWxsZWU1NywgaGFwcHlD
YWxsZWU1OCwgaGFwcHlDYWxsZWU1OSwgaGFwcHlDYWxsZWU2MCwgaGFwcHlDYWxsZWU2MSwgaGFw
cHlDYWxsZWU2MiwgaGFwcHlDYWxsZWU2M107CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgaGFwcHlD
YWxsZWVzLmxlbmd0aDsgKytpKQorICAgIG5vSW5saW5lKGhhcHB5Q2FsbGVlc1tpXSk7CisKKy8v
IFVubGlrZSB0aGUgb3RoZXIgdGVzdCAodGhyb3ctZnJvbS1mdGwtY2FsbC1pYy1zbG93LXBhdGgu
anMpLCB3ZSB3YW50IHRvIHBvcHVsYXRlIHRoZSByZWdpc3RlcnMgd2l0aCBjZWxscyBpbgorLy8g
dGhpcyB0ZXN0LgordmFyIGFycmF5ID0gbmV3IEFycmF5KCk7Citmb3IgKHZhciBpID0gMDsgaSA8
IDY0OyArK2kpCisgICAgYXJyYXlbaV0gPSBuZXcgT2JqZWN0KCk7CisKKy8vIE5vdywgZG8gc29t
ZSB3YXJtaW5nIHVwLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmdGxGdW5jdGlvbihhcnJheSwgaGFwcHlDYWxsZWVzW2kgJSBoYXBweUNhbGxl
ZXMubGVuZ3RoXSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gYXJyYXkubGVuZ3RoKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGg6ICIgKyByZXN1bHQ7CisgICAgZm9yICh2YXIg
aiA9IDA7IGogPCByZXN1bHQubGVuZ3RoOyArK2opIHsKKyAgICAgICAgaWYgKHJlc3VsdFtqXSAh
PSBhcnJheVtqXSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGVudHJ5IGF0IGogPSAi
ICsgaiArICI6ICIgKyByZXN1bHQ7CisgICAgfQorfQorCisvLyBGaW5hbGx5LCBhdHRlbXB0IHRv
IHRyaWdnZXIgdGhlIGJ1Zy4KK3ZhciBub3RBQ2VsbCA9IDQyOworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDA7ICsraSkgeworICAgIHRyeSB7CisgICAgICAgIGZ0bEZ1bmN0aW9uKGFycmF5LCBJbnQ4
QXJyYXkpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgaWYgKGUubWVzc2FnZS5pbmRleE9m
KCJub3QgYSBmdW5jdGlvbiIpIDwgMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGV4
Y2VwdGlvbiBtZXNzYWdlOiAiICsgZS5tZXNzYWdlOworICAgICAgICB2YXIgcmVzdWx0ID0gbm90
QUNlbGwuZjsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gdm9pZCAwKSB7CisgICAgICAgICAgICBw
cmludCgiQmFkIG91dGNvbWUgb2YgYWNjZXNzaW5nIGYgb24gbm90QUNlbGwuIik7CisgICAgICAg
ICAgICBwcmludCgiSGVyZSdzIG5vdEFDZWxsOiIsIG5vdEFDZWxsLCBkZXNjcmliZShub3RBQ2Vs
bCkpOworICAgICAgICAgICAgcHJpbnQoIkhlcmUncyB0aGUgcmVzdWx0OiIsIHJlc3VsdCwgZGVz
Y3JpYmUocmVzdWx0KSk7CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBvdXRjb21lIG9m
IGFjY2Vzc2luZyBmIG9uICIgKyBub3RBQ2VsbCArICI6ICIgKyByZXN1bHQ7CisgICAgICAgIH0K
KyAgICAgICAgdmFyIHJlc3VsdDIgPSByZXN1bHQgKyA1OworICAgICAgICB2YXIgcmVzdWx0MyA9
IG5vdEFDZWxsICsgNTsKKyAgICAgICAgaWYgKCIiICsgcmVzdWx0MiAhPSAiTmFOIikKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIG91dGNvbWUgb2YgYWRkaW5nIDUgdG8gcmVzdWx0OiAi
ICsgcmVzdWx0MjsKKyAgICAgICAgaWYgKHJlc3VsdDMgIT0gNDcpCisgICAgICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCBvdXRjb21lIG9mIGFkZGluZyA1IHRvIDQyOiAiICsgcmVzdWx0MzsKKyAg
ICB9Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ct
ZnJvbS1mdGwtY2FsbC1pYy1zbG93LXBhdGgtdW5kZWZpbmVkLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ctZnJvbS1mdGwtY2FsbC1pYy1z
bG93LXBhdGgtdW5kZWZpbmVkLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90aHJvdy1mcm9tLWZ0bC1jYWxsLWljLXNsb3ctcGF0aC11bmRlZmlu
ZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOTIgQEAKKy8vIEF0dGVtcHRzIHRvIGlu
ZHVjZSBhIGNyYXNoIHJlc3VsdGluZyBmcm9tIHRoZSBGVEwgZW1pdHRpbmcgY29kZSB0aGF0IGNs
b2JiZXJzIHRoZSB0YWcgcmVnaXN0ZXJzIGFuZCB0aGVuCisvLyB0aHJvd2luZyBhbiBleGNlcHRp
b24gd2l0aG91dCByZXN0b3JpbmcgdGhvc2UgdGFnIHJlZ2lzdGVycycgdmFsdWVzLgorCitmdW5j
dGlvbiBmdGxGdW5jdGlvbihhcnJheSwgY2FsbGVlKSB7CisgICAgLy8gR290dGEgdXNlIGxvdHMg
b2YgZ3Bycy4KKyAgICB2YXIgeDAgPSBhcnJheVswXTsKKyAgICB2YXIgeDEgPSBhcnJheVsxXTsK
KyAgICB2YXIgeDIgPSBhcnJheVsyXTsKKyAgICB2YXIgeDMgPSBhcnJheVszXTsKKyAgICB2YXIg
eDQgPSBhcnJheVs0XTsKKyAgICB2YXIgeDUgPSBhcnJheVs1XTsKKyAgICB2YXIgeDYgPSBhcnJh
eVs2XTsKKyAgICB2YXIgeDcgPSBhcnJheVs3XTsKKyAgICB2YXIgeDggPSBhcnJheVs4XTsKKyAg
ICB2YXIgeDkgPSBhcnJheVs5XTsKKyAgICB2YXIgeDEwID0gYXJyYXlbMTBdOworICAgIHZhciB4
MTEgPSBhcnJheVsxMV07CisgICAgdmFyIHgxMiA9IGFycmF5WzEyXTsKKyAgICB2YXIgeDEzID0g
YXJyYXlbMTNdOworICAgIHZhciB4MTQgPSBhcnJheVsxNF07CisgICAgdmFyIHgxNSA9IGFycmF5
WzE1XTsKKyAgICB2YXIgeDE2ID0gYXJyYXlbMTZdOworICAgIHZhciB4MTcgPSBhcnJheVsxN107
CisgICAgdmFyIHgxOCA9IGFycmF5WzE4XTsKKyAgICB2YXIgeDE5ID0gYXJyYXlbMTldOworICAg
IHZhciB4MjAgPSBhcnJheVsyMF07CisgICAgdmFyIHgyMSA9IGFycmF5WzIxXTsKKyAgICB2YXIg
eDIyID0gYXJyYXlbMjJdOworICAgIHZhciB4MjMgPSBhcnJheVsyM107CisgICAgdmFyIHgyNCA9
IGFycmF5WzI0XTsKKyAgICB2YXIgeDI1ID0gYXJyYXlbMjVdOworICAgIHZhciB4MjYgPSBhcnJh
eVsyNl07CisgICAgdmFyIHgyNyA9IGFycmF5WzI3XTsKKyAgICB2YXIgeDI4ID0gYXJyYXlbMjhd
OworICAgIHZhciB4MjkgPSBhcnJheVsyOV07CisgICAgdmFyIHgzMCA9IGFycmF5WzMwXTsKKyAg
ICB2YXIgeDMxID0gYXJyYXlbMzFdOworICAgIHZhciB4MzIgPSBhcnJheVszMl07CisgICAgdmFy
IHgzMyA9IGFycmF5WzMzXTsKKyAgICB2YXIgeDM0ID0gYXJyYXlbMzRdOworICAgIHZhciB4MzUg
PSBhcnJheVszNV07CisgICAgdmFyIHgzNiA9IGFycmF5WzM2XTsKKyAgICB2YXIgeDM3ID0gYXJy
YXlbMzddOworICAgIHZhciB4MzggPSBhcnJheVszOF07CisgICAgdmFyIHgzOSA9IGFycmF5WzM5
XTsKKyAgICB2YXIgeDQwID0gYXJyYXlbNDBdOworICAgIHZhciB4NDEgPSBhcnJheVs0MV07Cisg
ICAgdmFyIHg0MiA9IGFycmF5WzQyXTsKKyAgICB2YXIgeDQzID0gYXJyYXlbNDNdOworICAgIHZh
ciB4NDQgPSBhcnJheVs0NF07CisgICAgdmFyIHg0NSA9IGFycmF5WzQ1XTsKKyAgICB2YXIgeDQ2
ID0gYXJyYXlbNDZdOworICAgIHZhciB4NDcgPSBhcnJheVs0N107CisgICAgdmFyIHg0OCA9IGFy
cmF5WzQ4XTsKKyAgICB2YXIgeDQ5ID0gYXJyYXlbNDldOworICAgIHZhciB4NTAgPSBhcnJheVs1
MF07CisgICAgdmFyIHg1MSA9IGFycmF5WzUxXTsKKyAgICB2YXIgeDUyID0gYXJyYXlbNTJdOwor
ICAgIHZhciB4NTMgPSBhcnJheVs1M107CisgICAgdmFyIHg1NCA9IGFycmF5WzU0XTsKKyAgICB2
YXIgeDU1ID0gYXJyYXlbNTVdOworICAgIHZhciB4NTYgPSBhcnJheVs1Nl07CisgICAgdmFyIHg1
NyA9IGFycmF5WzU3XTsKKyAgICB2YXIgeDU4ID0gYXJyYXlbNThdOworICAgIHZhciB4NTkgPSBh
cnJheVs1OV07CisgICAgdmFyIHg2MCA9IGFycmF5WzYwXTsKKyAgICB2YXIgeDYxID0gYXJyYXlb
NjFdOworICAgIHZhciB4NjIgPSBhcnJheVs2Ml07CisgICAgdmFyIHg2MyA9IGFycmF5WzYzXTsK
KyAgICAKKyAgICAvLyBNYWtlIGEgY2FsbCB0aGF0IHdpbGwgdGhyb3csIHdoZW4gd2UgYXNrIGl0
IHRvLgorICAgIGNhbGxlZSgiaGVsbG8iKTsKKyAgICAKKyAgICAvLyBVc2UgYWxsIG9mIHRob3Nl
IGNyYXp5IHZhbHVlcy4KKyAgICByZXR1cm4gW3gwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4
NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LCB4MTYsIHgxNywgeDE4LCB4
MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMw
LCB4MzEsIHgzMiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0MSwg
eDQyLCB4NDMsIHg0NCwgeDQ1LCB4NDYsIHg0NywgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1
MywgeDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzXQorfQor
Citub0lubGluZShmdGxGdW5jdGlvbik7CisKKy8vIENyZWF0ZSBzb21lIGNhbGxlZXMgdGhhdCBh
cmUgdG9vIGNyYXp5IHRvIGdldCBpbmxpbmVkIG9yIGRldmlydHVhbGl6ZWQsIGJ1dCB0aGF0IGRv
bid0IGhhdmUgZWZmZWN0cy4KKworZnVuY3Rpb24gaGFwcHlDYWxsZWUwKCkgeyByZXR1cm4gMCB9
OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxKCkgeyByZXR1cm4gMSB9OworZnVuY3Rpb24gaGFwcHlD
YWxsZWUyKCkgeyByZXR1cm4gMiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUzKCkgeyByZXR1cm4g
MyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0KCkgeyByZXR1cm4gNCB9OworZnVuY3Rpb24gaGFw
cHlDYWxsZWU1KCkgeyByZXR1cm4gNSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU2KCkgeyByZXR1
cm4gNiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU3KCkgeyByZXR1cm4gNyB9OworZnVuY3Rpb24g
aGFwcHlDYWxsZWU4KCkgeyByZXR1cm4gOCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU5KCkgeyBy
ZXR1cm4gOSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxMCgpIHsgcmV0dXJuIDEwIH07CitmdW5j
dGlvbiBoYXBweUNhbGxlZTExKCkgeyByZXR1cm4gMTEgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVl
MTIoKSB7IHJldHVybiAxMiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxMygpIHsgcmV0dXJuIDEz
IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTE0KCkgeyByZXR1cm4gMTQgfTsKK2Z1bmN0aW9uIGhh
cHB5Q2FsbGVlMTUoKSB7IHJldHVybiAxNSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxNigpIHsg
cmV0dXJuIDE2IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTE3KCkgeyByZXR1cm4gMTcgfTsKK2Z1
bmN0aW9uIGhhcHB5Q2FsbGVlMTgoKSB7IHJldHVybiAxOCB9OworZnVuY3Rpb24gaGFwcHlDYWxs
ZWUxOSgpIHsgcmV0dXJuIDE5IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTIwKCkgeyByZXR1cm4g
MjAgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMjEoKSB7IHJldHVybiAyMSB9OworZnVuY3Rpb24g
aGFwcHlDYWxsZWUyMigpIHsgcmV0dXJuIDIyIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTIzKCkg
eyByZXR1cm4gMjMgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMjQoKSB7IHJldHVybiAyNCB9Owor
ZnVuY3Rpb24gaGFwcHlDYWxsZWUyNSgpIHsgcmV0dXJuIDI1IH07CitmdW5jdGlvbiBoYXBweUNh
bGxlZTI2KCkgeyByZXR1cm4gMjYgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMjcoKSB7IHJldHVy
biAyNyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUyOCgpIHsgcmV0dXJuIDI4IH07CitmdW5jdGlv
biBoYXBweUNhbGxlZTI5KCkgeyByZXR1cm4gMjkgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzAo
KSB7IHJldHVybiAzMCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUzMSgpIHsgcmV0dXJuIDMxIH07
CitmdW5jdGlvbiBoYXBweUNhbGxlZTMyKCkgeyByZXR1cm4gMzIgfTsKK2Z1bmN0aW9uIGhhcHB5
Q2FsbGVlMzMoKSB7IHJldHVybiAzMyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUzNCgpIHsgcmV0
dXJuIDM0IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTM1KCkgeyByZXR1cm4gMzUgfTsKK2Z1bmN0
aW9uIGhhcHB5Q2FsbGVlMzYoKSB7IHJldHVybiAzNiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUz
NygpIHsgcmV0dXJuIDM3IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTM4KCkgeyByZXR1cm4gMzgg
fTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzkoKSB7IHJldHVybiAzOSB9OworZnVuY3Rpb24gaGFw
cHlDYWxsZWU0MCgpIHsgcmV0dXJuIDQwIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTQxKCkgeyBy
ZXR1cm4gNDEgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDIoKSB7IHJldHVybiA0MiB9OworZnVu
Y3Rpb24gaGFwcHlDYWxsZWU0MygpIHsgcmV0dXJuIDQzIH07CitmdW5jdGlvbiBoYXBweUNhbGxl
ZTQ0KCkgeyByZXR1cm4gNDQgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDUoKSB7IHJldHVybiA0
NSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0NigpIHsgcmV0dXJuIDQ2IH07CitmdW5jdGlvbiBo
YXBweUNhbGxlZTQ3KCkgeyByZXR1cm4gNDcgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDgoKSB7
IHJldHVybiA0OCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0OSgpIHsgcmV0dXJuIDQ5IH07Citm
dW5jdGlvbiBoYXBweUNhbGxlZTUwKCkgeyByZXR1cm4gNTAgfTsKK2Z1bmN0aW9uIGhhcHB5Q2Fs
bGVlNTEoKSB7IHJldHVybiA1MSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1MigpIHsgcmV0dXJu
IDUyIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTUzKCkgeyByZXR1cm4gNTMgfTsKK2Z1bmN0aW9u
IGhhcHB5Q2FsbGVlNTQoKSB7IHJldHVybiA1NCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1NSgp
IHsgcmV0dXJuIDU1IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTU2KCkgeyByZXR1cm4gNTYgfTsK
K2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNTcoKSB7IHJldHVybiA1NyB9OworZnVuY3Rpb24gaGFwcHlD
YWxsZWU1OCgpIHsgcmV0dXJuIDU4IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTU5KCkgeyByZXR1
cm4gNTkgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNjAoKSB7IHJldHVybiA2MCB9OworZnVuY3Rp
b24gaGFwcHlDYWxsZWU2MSgpIHsgcmV0dXJuIDYxIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTYy
KCkgeyByZXR1cm4gNjIgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNjMoKSB7IHJldHVybiA2MyB9
OworCit2YXIgaGFwcHlDYWxsZWVzID0gW2hhcHB5Q2FsbGVlMCwgaGFwcHlDYWxsZWUxLCBoYXBw
eUNhbGxlZTIsIGhhcHB5Q2FsbGVlMywgaGFwcHlDYWxsZWU0LCBoYXBweUNhbGxlZTUsIGhhcHB5
Q2FsbGVlNiwgaGFwcHlDYWxsZWU3LCBoYXBweUNhbGxlZTgsIGhhcHB5Q2FsbGVlOSwgaGFwcHlD
YWxsZWUxMCwgaGFwcHlDYWxsZWUxMSwgaGFwcHlDYWxsZWUxMiwgaGFwcHlDYWxsZWUxMywgaGFw
cHlDYWxsZWUxNCwgaGFwcHlDYWxsZWUxNSwgaGFwcHlDYWxsZWUxNiwgaGFwcHlDYWxsZWUxNywg
aGFwcHlDYWxsZWUxOCwgaGFwcHlDYWxsZWUxOSwgaGFwcHlDYWxsZWUyMCwgaGFwcHlDYWxsZWUy
MSwgaGFwcHlDYWxsZWUyMiwgaGFwcHlDYWxsZWUyMywgaGFwcHlDYWxsZWUyNCwgaGFwcHlDYWxs
ZWUyNSwgaGFwcHlDYWxsZWUyNiwgaGFwcHlDYWxsZWUyNywgaGFwcHlDYWxsZWUyOCwgaGFwcHlD
YWxsZWUyOSwgaGFwcHlDYWxsZWUzMCwgaGFwcHlDYWxsZWUzMSwgaGFwcHlDYWxsZWUzMiwgaGFw
cHlDYWxsZWUzMywgaGFwcHlDYWxsZWUzNCwgaGFwcHlDYWxsZWUzNSwgaGFwcHlDYWxsZWUzNiwg
aGFwcHlDYWxsZWUzNywgaGFwcHlDYWxsZWUzOCwgaGFwcHlDYWxsZWUzOSwgaGFwcHlDYWxsZWU0
MCwgaGFwcHlDYWxsZWU0MSwgaGFwcHlDYWxsZWU0MiwgaGFwcHlDYWxsZWU0MywgaGFwcHlDYWxs
ZWU0NCwgaGFwcHlDYWxsZWU0NSwgaGFwcHlDYWxsZWU0NiwgaGFwcHlDYWxsZWU0NywgaGFwcHlD
YWxsZWU0OCwgaGFwcHlDYWxsZWU0OSwgaGFwcHlDYWxsZWU1MCwgaGFwcHlDYWxsZWU1MSwgaGFw
cHlDYWxsZWU1MiwgaGFwcHlDYWxsZWU1MywgaGFwcHlDYWxsZWU1NCwgaGFwcHlDYWxsZWU1NSwg
aGFwcHlDYWxsZWU1NiwgaGFwcHlDYWxsZWU1NywgaGFwcHlDYWxsZWU1OCwgaGFwcHlDYWxsZWU1
OSwgaGFwcHlDYWxsZWU2MCwgaGFwcHlDYWxsZWU2MSwgaGFwcHlDYWxsZWU2MiwgaGFwcHlDYWxs
ZWU2M107CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgaGFwcHlDYWxsZWVzLmxlbmd0aDsgKytpKQor
ICAgIG5vSW5saW5lKGhhcHB5Q2FsbGVlc1tpXSk7CisKKy8vIFVubGlrZSB0aGUgb3RoZXIgdGVz
dCAodGhyb3ctZnJvbS1mdGwtY2FsbC1pYy1zbG93LXBhdGguanMpLCB3ZSB3YW50IHRvIHBvcHVs
YXRlIHRoZSByZWdpc3RlcnMgd2l0aCB1bmRlZmluZWQKKy8vIGluIHRoaXMgdGVzdC4KK3ZhciBh
cnJheSA9IG5ldyBBcnJheSgpOworZm9yICh2YXIgaSA9IDA7IGkgPCA2NDsgKytpKQorICAgIGFy
cmF5W2ldID0gdm9pZCAwOworCisvLyBOb3csIGRvIHNvbWUgd2FybWluZyB1cC4KK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZnRsRnVuY3Rpb24o
YXJyYXksIGhhcHB5Q2FsbGVlc1tpICUgaGFwcHlDYWxsZWVzLmxlbmd0aF0pOworICAgIGlmIChy
ZXN1bHQubGVuZ3RoICE9IGFycmF5Lmxlbmd0aCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
bGVuZ3RoOiAiICsgcmVzdWx0OworICAgIGZvciAodmFyIGogPSAwOyBqIDwgcmVzdWx0Lmxlbmd0
aDsgKytqKSB7CisgICAgICAgIGlmIChyZXN1bHRbal0gIT0gYXJyYXlbal0pCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCBlbnRyeSBhdCBqID0gIiArIGogKyAiOiAiICsgcmVzdWx0Owor
ICAgIH0KK30KKworLy8gRmluYWxseSwgYXR0ZW1wdCB0byB0cmlnZ2VyIHRoZSBidWcuCit2YXIg
bm90QUNlbGwgPSA0MjsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICB0cnkg
eworICAgICAgICBmdGxGdW5jdGlvbihhcnJheSwgSW50OEFycmF5KTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGlmIChlLm1lc3NhZ2UuaW5kZXhPZigibm90IGEgZnVuY3Rpb24iKSA8IDAp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBleGNlcHRpb24gbWVzc2FnZTogIiArIGUu
bWVzc2FnZTsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG5vdEFDZWxsLmY7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IHZvaWQgMCkgeworICAgICAgICAgICAgcHJpbnQoIkJhZCBvdXRjb21lIG9mIGFj
Y2Vzc2luZyBmIG9uIG5vdEFDZWxsLiIpOworICAgICAgICAgICAgcHJpbnQoIkhlcmUncyBub3RB
Q2VsbDoiLCBub3RBQ2VsbCwgZGVzY3JpYmUobm90QUNlbGwpKTsKKyAgICAgICAgICAgIHByaW50
KCJIZXJlJ3MgdGhlIHJlc3VsdDoiLCByZXN1bHQsIGRlc2NyaWJlKHJlc3VsdCkpOworICAgICAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgb3V0Y29tZSBvZiBhY2Nlc3NpbmcgZiBvbiAiICsgbm90
QUNlbGwgKyAiOiAiICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHZhciByZXN1bHQyID0g
cmVzdWx0ICsgNTsKKyAgICAgICAgdmFyIHJlc3VsdDMgPSBub3RBQ2VsbCArIDU7CisgICAgICAg
IGlmICgiIiArIHJlc3VsdDIgIT0gIk5hTiIpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCBvdXRjb21lIG9mIGFkZGluZyA1IHRvIHJlc3VsdDogIiArIHJlc3VsdDI7CisgICAgICAgIGlm
IChyZXN1bHQzICE9IDQ3KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgb3V0Y29tZSBv
ZiBhZGRpbmcgNSB0byA0MjogIiArIHJlc3VsdDM7CisgICAgfQorfQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LWZyb20tZnRsLWNhbGwtaWMtc2xvdy1w
YXRoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dGhyb3ctZnJvbS1mdGwtY2FsbC1pYy1zbG93LXBhdGguanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LWZyb20tZnRsLWNhbGwtaWMtc2xv
dy1wYXRoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkyIEBACisvLyBBdHRlbXB0cyB0
byBpbmR1Y2UgYSBjcmFzaCByZXN1bHRpbmcgZnJvbSB0aGUgRlRMIGVtaXR0aW5nIGNvZGUgdGhh
dCBjbG9iYmVycyB0aGUgdGFnIHJlZ2lzdGVycyBhbmQgdGhlbgorLy8gdGhyb3dpbmcgYW4gZXhj
ZXB0aW9uIHdpdGhvdXQgcmVzdG9yaW5nIHRob3NlIHRhZyByZWdpc3RlcnMnIHZhbHVlcy4KKwor
ZnVuY3Rpb24gZnRsRnVuY3Rpb24oYXJyYXksIGNhbGxlZSkgeworICAgIC8vIEdvdHRhIHVzZSBs
b3RzIG9mIGdwcnMuCisgICAgdmFyIHgwID0gYXJyYXlbMF07CisgICAgdmFyIHgxID0gYXJyYXlb
MV07CisgICAgdmFyIHgyID0gYXJyYXlbMl07CisgICAgdmFyIHgzID0gYXJyYXlbM107CisgICAg
dmFyIHg0ID0gYXJyYXlbNF07CisgICAgdmFyIHg1ID0gYXJyYXlbNV07CisgICAgdmFyIHg2ID0g
YXJyYXlbNl07CisgICAgdmFyIHg3ID0gYXJyYXlbN107CisgICAgdmFyIHg4ID0gYXJyYXlbOF07
CisgICAgdmFyIHg5ID0gYXJyYXlbOV07CisgICAgdmFyIHgxMCA9IGFycmF5WzEwXTsKKyAgICB2
YXIgeDExID0gYXJyYXlbMTFdOworICAgIHZhciB4MTIgPSBhcnJheVsxMl07CisgICAgdmFyIHgx
MyA9IGFycmF5WzEzXTsKKyAgICB2YXIgeDE0ID0gYXJyYXlbMTRdOworICAgIHZhciB4MTUgPSBh
cnJheVsxNV07CisgICAgdmFyIHgxNiA9IGFycmF5WzE2XTsKKyAgICB2YXIgeDE3ID0gYXJyYXlb
MTddOworICAgIHZhciB4MTggPSBhcnJheVsxOF07CisgICAgdmFyIHgxOSA9IGFycmF5WzE5XTsK
KyAgICB2YXIgeDIwID0gYXJyYXlbMjBdOworICAgIHZhciB4MjEgPSBhcnJheVsyMV07CisgICAg
dmFyIHgyMiA9IGFycmF5WzIyXTsKKyAgICB2YXIgeDIzID0gYXJyYXlbMjNdOworICAgIHZhciB4
MjQgPSBhcnJheVsyNF07CisgICAgdmFyIHgyNSA9IGFycmF5WzI1XTsKKyAgICB2YXIgeDI2ID0g
YXJyYXlbMjZdOworICAgIHZhciB4MjcgPSBhcnJheVsyN107CisgICAgdmFyIHgyOCA9IGFycmF5
WzI4XTsKKyAgICB2YXIgeDI5ID0gYXJyYXlbMjldOworICAgIHZhciB4MzAgPSBhcnJheVszMF07
CisgICAgdmFyIHgzMSA9IGFycmF5WzMxXTsKKyAgICB2YXIgeDMyID0gYXJyYXlbMzJdOworICAg
IHZhciB4MzMgPSBhcnJheVszM107CisgICAgdmFyIHgzNCA9IGFycmF5WzM0XTsKKyAgICB2YXIg
eDM1ID0gYXJyYXlbMzVdOworICAgIHZhciB4MzYgPSBhcnJheVszNl07CisgICAgdmFyIHgzNyA9
IGFycmF5WzM3XTsKKyAgICB2YXIgeDM4ID0gYXJyYXlbMzhdOworICAgIHZhciB4MzkgPSBhcnJh
eVszOV07CisgICAgdmFyIHg0MCA9IGFycmF5WzQwXTsKKyAgICB2YXIgeDQxID0gYXJyYXlbNDFd
OworICAgIHZhciB4NDIgPSBhcnJheVs0Ml07CisgICAgdmFyIHg0MyA9IGFycmF5WzQzXTsKKyAg
ICB2YXIgeDQ0ID0gYXJyYXlbNDRdOworICAgIHZhciB4NDUgPSBhcnJheVs0NV07CisgICAgdmFy
IHg0NiA9IGFycmF5WzQ2XTsKKyAgICB2YXIgeDQ3ID0gYXJyYXlbNDddOworICAgIHZhciB4NDgg
PSBhcnJheVs0OF07CisgICAgdmFyIHg0OSA9IGFycmF5WzQ5XTsKKyAgICB2YXIgeDUwID0gYXJy
YXlbNTBdOworICAgIHZhciB4NTEgPSBhcnJheVs1MV07CisgICAgdmFyIHg1MiA9IGFycmF5WzUy
XTsKKyAgICB2YXIgeDUzID0gYXJyYXlbNTNdOworICAgIHZhciB4NTQgPSBhcnJheVs1NF07Cisg
ICAgdmFyIHg1NSA9IGFycmF5WzU1XTsKKyAgICB2YXIgeDU2ID0gYXJyYXlbNTZdOworICAgIHZh
ciB4NTcgPSBhcnJheVs1N107CisgICAgdmFyIHg1OCA9IGFycmF5WzU4XTsKKyAgICB2YXIgeDU5
ID0gYXJyYXlbNTldOworICAgIHZhciB4NjAgPSBhcnJheVs2MF07CisgICAgdmFyIHg2MSA9IGFy
cmF5WzYxXTsKKyAgICB2YXIgeDYyID0gYXJyYXlbNjJdOworICAgIHZhciB4NjMgPSBhcnJheVs2
M107CisgICAgCisgICAgLy8gTWFrZSBhIGNhbGwgdGhhdCB3aWxsIHRocm93LCB3aGVuIHdlIGFz
ayBpdCB0by4KKyAgICBjYWxsZWUoImhlbGxvIik7CisgICAgCisgICAgLy8gVXNlIGFsbCBvZiB0
aG9zZSBjcmF6eSB2YWx1ZXMuCisgICAgcmV0dXJuIFt4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4
NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwgeDE2LCB4MTcsIHgx
OCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4Mjks
IHgzMCwgeDMxLCB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4MzgsIHgzOSwgeDQwLCB4
NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsIHg0OCwgeDQ5LCB4NTAsIHg1MSwgeDUy
LCB4NTMsIHg1NCwgeDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4NjIsIHg2M10K
K30KKworbm9JbmxpbmUoZnRsRnVuY3Rpb24pOworCisvLyBDcmVhdGUgc29tZSBjYWxsZWVzIHRo
YXQgYXJlIHRvbyBjcmF6eSB0byBnZXQgaW5saW5lZCBvciBkZXZpcnR1YWxpemVkLCBidXQgdGhh
dCBkb24ndCBoYXZlIGVmZmVjdHMuCisKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMCgpIHsgcmV0dXJu
IDAgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMSgpIHsgcmV0dXJuIDEgfTsKK2Z1bmN0aW9uIGhh
cHB5Q2FsbGVlMigpIHsgcmV0dXJuIDIgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMygpIHsgcmV0
dXJuIDMgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNCgpIHsgcmV0dXJuIDQgfTsKK2Z1bmN0aW9u
IGhhcHB5Q2FsbGVlNSgpIHsgcmV0dXJuIDUgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNigpIHsg
cmV0dXJuIDYgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNygpIHsgcmV0dXJuIDcgfTsKK2Z1bmN0
aW9uIGhhcHB5Q2FsbGVlOCgpIHsgcmV0dXJuIDggfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlOSgp
IHsgcmV0dXJuIDkgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMTAoKSB7IHJldHVybiAxMCB9Owor
ZnVuY3Rpb24gaGFwcHlDYWxsZWUxMSgpIHsgcmV0dXJuIDExIH07CitmdW5jdGlvbiBoYXBweUNh
bGxlZTEyKCkgeyByZXR1cm4gMTIgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMTMoKSB7IHJldHVy
biAxMyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxNCgpIHsgcmV0dXJuIDE0IH07CitmdW5jdGlv
biBoYXBweUNhbGxlZTE1KCkgeyByZXR1cm4gMTUgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMTYo
KSB7IHJldHVybiAxNiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUxNygpIHsgcmV0dXJuIDE3IH07
CitmdW5jdGlvbiBoYXBweUNhbGxlZTE4KCkgeyByZXR1cm4gMTggfTsKK2Z1bmN0aW9uIGhhcHB5
Q2FsbGVlMTkoKSB7IHJldHVybiAxOSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUyMCgpIHsgcmV0
dXJuIDIwIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTIxKCkgeyByZXR1cm4gMjEgfTsKK2Z1bmN0
aW9uIGhhcHB5Q2FsbGVlMjIoKSB7IHJldHVybiAyMiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUy
MygpIHsgcmV0dXJuIDIzIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTI0KCkgeyByZXR1cm4gMjQg
fTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMjUoKSB7IHJldHVybiAyNSB9OworZnVuY3Rpb24gaGFw
cHlDYWxsZWUyNigpIHsgcmV0dXJuIDI2IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTI3KCkgeyBy
ZXR1cm4gMjcgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMjgoKSB7IHJldHVybiAyOCB9OworZnVu
Y3Rpb24gaGFwcHlDYWxsZWUyOSgpIHsgcmV0dXJuIDI5IH07CitmdW5jdGlvbiBoYXBweUNhbGxl
ZTMwKCkgeyByZXR1cm4gMzAgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzEoKSB7IHJldHVybiAz
MSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUzMigpIHsgcmV0dXJuIDMyIH07CitmdW5jdGlvbiBo
YXBweUNhbGxlZTMzKCkgeyByZXR1cm4gMzMgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlMzQoKSB7
IHJldHVybiAzNCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUzNSgpIHsgcmV0dXJuIDM1IH07Citm
dW5jdGlvbiBoYXBweUNhbGxlZTM2KCkgeyByZXR1cm4gMzYgfTsKK2Z1bmN0aW9uIGhhcHB5Q2Fs
bGVlMzcoKSB7IHJldHVybiAzNyB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWUzOCgpIHsgcmV0dXJu
IDM4IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTM5KCkgeyByZXR1cm4gMzkgfTsKK2Z1bmN0aW9u
IGhhcHB5Q2FsbGVlNDAoKSB7IHJldHVybiA0MCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU0MSgp
IHsgcmV0dXJuIDQxIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTQyKCkgeyByZXR1cm4gNDIgfTsK
K2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDMoKSB7IHJldHVybiA0MyB9OworZnVuY3Rpb24gaGFwcHlD
YWxsZWU0NCgpIHsgcmV0dXJuIDQ0IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTQ1KCkgeyByZXR1
cm4gNDUgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDYoKSB7IHJldHVybiA0NiB9OworZnVuY3Rp
b24gaGFwcHlDYWxsZWU0NygpIHsgcmV0dXJuIDQ3IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTQ4
KCkgeyByZXR1cm4gNDggfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNDkoKSB7IHJldHVybiA0OSB9
OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1MCgpIHsgcmV0dXJuIDUwIH07CitmdW5jdGlvbiBoYXBw
eUNhbGxlZTUxKCkgeyByZXR1cm4gNTEgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVlNTIoKSB7IHJl
dHVybiA1MiB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1MygpIHsgcmV0dXJuIDUzIH07CitmdW5j
dGlvbiBoYXBweUNhbGxlZTU0KCkgeyByZXR1cm4gNTQgfTsKK2Z1bmN0aW9uIGhhcHB5Q2FsbGVl
NTUoKSB7IHJldHVybiA1NSB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1NigpIHsgcmV0dXJuIDU2
IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTU3KCkgeyByZXR1cm4gNTcgfTsKK2Z1bmN0aW9uIGhh
cHB5Q2FsbGVlNTgoKSB7IHJldHVybiA1OCB9OworZnVuY3Rpb24gaGFwcHlDYWxsZWU1OSgpIHsg
cmV0dXJuIDU5IH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTYwKCkgeyByZXR1cm4gNjAgfTsKK2Z1
bmN0aW9uIGhhcHB5Q2FsbGVlNjEoKSB7IHJldHVybiA2MSB9OworZnVuY3Rpb24gaGFwcHlDYWxs
ZWU2MigpIHsgcmV0dXJuIDYyIH07CitmdW5jdGlvbiBoYXBweUNhbGxlZTYzKCkgeyByZXR1cm4g
NjMgfTsKKwordmFyIGhhcHB5Q2FsbGVlcyA9IFtoYXBweUNhbGxlZTAsIGhhcHB5Q2FsbGVlMSwg
aGFwcHlDYWxsZWUyLCBoYXBweUNhbGxlZTMsIGhhcHB5Q2FsbGVlNCwgaGFwcHlDYWxsZWU1LCBo
YXBweUNhbGxlZTYsIGhhcHB5Q2FsbGVlNywgaGFwcHlDYWxsZWU4LCBoYXBweUNhbGxlZTksIGhh
cHB5Q2FsbGVlMTAsIGhhcHB5Q2FsbGVlMTEsIGhhcHB5Q2FsbGVlMTIsIGhhcHB5Q2FsbGVlMTMs
IGhhcHB5Q2FsbGVlMTQsIGhhcHB5Q2FsbGVlMTUsIGhhcHB5Q2FsbGVlMTYsIGhhcHB5Q2FsbGVl
MTcsIGhhcHB5Q2FsbGVlMTgsIGhhcHB5Q2FsbGVlMTksIGhhcHB5Q2FsbGVlMjAsIGhhcHB5Q2Fs
bGVlMjEsIGhhcHB5Q2FsbGVlMjIsIGhhcHB5Q2FsbGVlMjMsIGhhcHB5Q2FsbGVlMjQsIGhhcHB5
Q2FsbGVlMjUsIGhhcHB5Q2FsbGVlMjYsIGhhcHB5Q2FsbGVlMjcsIGhhcHB5Q2FsbGVlMjgsIGhh
cHB5Q2FsbGVlMjksIGhhcHB5Q2FsbGVlMzAsIGhhcHB5Q2FsbGVlMzEsIGhhcHB5Q2FsbGVlMzIs
IGhhcHB5Q2FsbGVlMzMsIGhhcHB5Q2FsbGVlMzQsIGhhcHB5Q2FsbGVlMzUsIGhhcHB5Q2FsbGVl
MzYsIGhhcHB5Q2FsbGVlMzcsIGhhcHB5Q2FsbGVlMzgsIGhhcHB5Q2FsbGVlMzksIGhhcHB5Q2Fs
bGVlNDAsIGhhcHB5Q2FsbGVlNDEsIGhhcHB5Q2FsbGVlNDIsIGhhcHB5Q2FsbGVlNDMsIGhhcHB5
Q2FsbGVlNDQsIGhhcHB5Q2FsbGVlNDUsIGhhcHB5Q2FsbGVlNDYsIGhhcHB5Q2FsbGVlNDcsIGhh
cHB5Q2FsbGVlNDgsIGhhcHB5Q2FsbGVlNDksIGhhcHB5Q2FsbGVlNTAsIGhhcHB5Q2FsbGVlNTEs
IGhhcHB5Q2FsbGVlNTIsIGhhcHB5Q2FsbGVlNTMsIGhhcHB5Q2FsbGVlNTQsIGhhcHB5Q2FsbGVl
NTUsIGhhcHB5Q2FsbGVlNTYsIGhhcHB5Q2FsbGVlNTcsIGhhcHB5Q2FsbGVlNTgsIGhhcHB5Q2Fs
bGVlNTksIGhhcHB5Q2FsbGVlNjAsIGhhcHB5Q2FsbGVlNjEsIGhhcHB5Q2FsbGVlNjIsIGhhcHB5
Q2FsbGVlNjNdOworCitmb3IgKHZhciBpID0gMDsgaSA8IGhhcHB5Q2FsbGVlcy5sZW5ndGg7ICsr
aSkKKyAgICBub0lubGluZShoYXBweUNhbGxlZXNbaV0pOworCisvLyBXZSB3YW50IHRoZSBpbnB1
dCBhcnJheSB0byBoYXZlIGFuIGVhc3ktdG8tZGVhbC13aXRoIHR5cGUgdGhhdCBpc24ndCBleGFj
dGx5IHRoZSBzYW1lIGFzIHRoZSB0eXBlIHRoYXQKKy8vIGZ0bEZ1bmN0aW9uIHdpbGwgcmV0dXJu
LgordmFyIGFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpOworZm9yICh2YXIgaSA9IDA7IGkgPCBh
cnJheS5sZW5ndGg7ICsraSkKKyAgICBhcnJheVtpXSA9IGk7CisKKy8vIE5vdywgZG8gc29tZSB3
YXJtaW5nIHVwLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBy
ZXN1bHQgPSBmdGxGdW5jdGlvbihhcnJheSwgaGFwcHlDYWxsZWVzW2kgJSBoYXBweUNhbGxlZXMu
bGVuZ3RoXSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gYXJyYXkubGVuZ3RoKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGg6ICIgKyByZXN1bHQ7CisgICAgZm9yICh2YXIgaiA9
IDA7IGogPCByZXN1bHQubGVuZ3RoOyArK2opIHsKKyAgICAgICAgaWYgKHJlc3VsdFtqXSAhPSBh
cnJheVtqXSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGVudHJ5IGF0IGogPSAiICsg
aiArICI6ICIgKyByZXN1bHQ7CisgICAgfQorfQorCisvLyBGaW5hbGx5LCBhdHRlbXB0IHRvIHRy
aWdnZXIgdGhlIGJ1Zy4KK3ZhciBub3RBQ2VsbCA9IDQyOworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDA7ICsraSkgeworICAgIHRyeSB7CisgICAgICAgIGZ0bEZ1bmN0aW9uKGFycmF5LCBJbnQ4QXJy
YXkpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgaWYgKGUubWVzc2FnZS5pbmRleE9mKCJu
b3QgYSBmdW5jdGlvbiIpIDwgMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGV4Y2Vw
dGlvbiBtZXNzYWdlOiAiICsgZS5tZXNzYWdlOworICAgICAgICB2YXIgcmVzdWx0ID0gbm90QUNl
bGwuZjsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gdm9pZCAwKSB7CisgICAgICAgICAgICBwcmlu
dCgiQmFkIG91dGNvbWUgb2YgYWNjZXNzaW5nIGYgb24gbm90QUNlbGwuIik7CisgICAgICAgICAg
ICBwcmludCgiSGVyZSdzIG5vdEFDZWxsOiIsIG5vdEFDZWxsLCBkZXNjcmliZShub3RBQ2VsbCkp
OworICAgICAgICAgICAgcHJpbnQoIkhlcmUncyB0aGUgcmVzdWx0OiIsIHJlc3VsdCwgZGVzY3Jp
YmUocmVzdWx0KSk7CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBvdXRjb21lIG9mIGFj
Y2Vzc2luZyBmIG9uICIgKyBub3RBQ2VsbCArICI6ICIgKyByZXN1bHQ7CisgICAgICAgIH0KKyAg
ICAgICAgdmFyIHJlc3VsdDIgPSByZXN1bHQgKyA1OworICAgICAgICB2YXIgcmVzdWx0MyA9IG5v
dEFDZWxsICsgNTsKKyAgICAgICAgaWYgKCIiICsgcmVzdWx0MiAhPSAiTmFOIikKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIG91dGNvbWUgb2YgYWRkaW5nIDUgdG8gcmVzdWx0OiAiICsg
cmVzdWx0MjsKKyAgICAgICAgaWYgKHJlc3VsdDMgIT0gNDcpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCBvdXRjb21lIG9mIGFkZGluZyA1IHRvIDQyOiAiICsgcmVzdWx0MzsKKyAgICB9
Cit9CisK
</data>
<flag name="review"
          id="271708"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>