<?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>152851</bug_id>
          
          <creation_ts>2016-01-07 13:30:03 -0800</creation_ts>
          <short_desc>FTL B3 JS calls should do exceptions</short_desc>
          <delta_ts>2016-01-07 15:47:58 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>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>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1153546</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 13:30:03 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153629</commentid>
    <comment_count>1</comment_count>
      <attachid>268497</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 14:56:52 -0800</bug_when>
    <thetext>Created attachment 268497
probably ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153642</commentid>
    <comment_count>2</comment_count>
      <attachid>268501</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 15:28:36 -0800</bug_when>
    <thetext>Created attachment 268501
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153649</commentid>
    <comment_count>3</comment_count>
      <attachid>268501</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-07 15:38:06 -0800</bug_when>
    <thetext>Comment on attachment 268501
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153657</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-07 15:47:58 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194739</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268497</attachid>
            <date>2016-01-07 14:56:52 -0800</date>
            <delta_ts>2016-01-07 15:28:36 -0800</delta_ts>
            <desc>probably ok</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>24699</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NzI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE2LTAxLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIEpTIGNhbGxzIHNob3VsZCBkbyBleGNlcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI4NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUNhbGxPckNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVRhaWxDYWxsKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ2FsbE9yQ29uc3RydWN0VmFyYXJncyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWJhZC1jYWxsZWUtZXhjZXB0aW9uLWlu
dGVyZXN0aW5nLWxpdmUtc3RhdGUuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9m
dGwtY2FsbC1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qczogQWRkZWQuCisgICAg
ICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWV4Y2VwdGlvbi1uby1jYXRjaC5qczogQWRkZWQu
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWV4Y2VwdGlvbi5qczogQWRkZWQuCisg
ICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtYmFkLWNhbGxlZS1leGNlcHRp
b24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanM6
IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWV4Y2VwdGlv
bi1uby1jYXRjaC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZh
cmFyZ3MtZXhjZXB0aW9uLmpzOiBBZGRlZC4KKwogMjAxNi0wMS0wNyAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE5NDcxNC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAkocmV2
aXNpb24gMTk0NzI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAvLyBXZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBleHBlcmltZW50YWwgdHJhbnNp
dGlvbiBmcm9tIExMVk0gdG8gQjMgYXMgdGhlIGJhY2tlbmQgZm9yIHRoZSBGVEwuIFdlIGRvbid0
CiAvLyB5ZXQga25vdyBob3cgaXQgd2lsbCB0dXJuIG91dC4gRm9yIG5vdywgdGhpcyBmbGFnIHdp
bGwgY29udHJvbCB3aGV0aGVyIEZUTCB1c2VzIEIzLiBSZW1lbWJlciB0byBzZXQgdGhpcwogLy8g
dG8gMCBiZWZvcmUgY29tbWl0dGluZyEKLSNkZWZpbmUgRlRMX1VTRVNfQjMgMAorI2RlZmluZSBG
VExfVVNFU19CMyAxCiAKIHN0cnVjdCBOb2RlOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE5NDcyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgyMSw3ICs4MjEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0
Q2FsbChOb2RlKiBub2RlCiAgICAgQVNTRVJUKCFpc1RhaWwgfHwgIXN0YXRpY09yaWdpbi5pbmxp
bmVDYWxsRnJhbWUgfHwgIXN0YXRpY09yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmdldENhbGxlclNr
aXBwaW5nVGFpbENhbGxzKCkpOwogICAgIEFTU0VSVCghaXNFbXVsYXRlZFRhaWwgfHwgKHN0YXRp
Y09yaWdpbi5pbmxpbmVDYWxsRnJhbWUgJiYgc3RhdGljT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+
Z2V0Q2FsbGVyU2tpcHBpbmdUYWlsQ2FsbHMoKSkpOwogICAgIENvZGVPcmlnaW4gZHluYW1pY09y
aWdpbiA9Ci0gICAgaXNFbXVsYXRlZFRhaWwgPyAqc3RhdGljT3JpZ2luLmlubGluZUNhbGxGcmFt
ZS0+Z2V0Q2FsbGVyU2tpcHBpbmdUYWlsQ2FsbHMoKSA6IHN0YXRpY09yaWdpbjsKKyAgICAgICAg
aXNFbXVsYXRlZFRhaWwgPyAqc3RhdGljT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Z2V0Q2FsbGVy
U2tpcHBpbmdUYWlsQ2FsbHMoKSA6IHN0YXRpY09yaWdpbjsKIAogICAgIENhbGxTaXRlSW5kZXgg
Y2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxp
bmdPU1JFeGl0SWZOZWVkZWQoZHluYW1pY09yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7CiAgICAg
bV9qaXQuZW1pdFN0b3JlQ2FsbFNpdGVJbmRleChjYWxsU2l0ZSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTk0
NzI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUwMjgsNiArNTAyOCwxMCBAQCBwcml2YXRlOgogCiAgICAgICAg
IFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50NjQpOwog
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRWZWN0b3IoYXJndW1lbnRzKTsKKworICAgICAgICBS
ZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KKyAgICAg
ICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKKyAgICAg
ICAgCiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRj
aFJlZ2lzdGVycygpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJT
ZXQ6OnZvbGF0aWxlUmVnaXN0ZXJzRm9ySlNDYWxsKCkpOwogICAgICAgICBwYXRjaHBvaW50LT5y
ZXN1bHRDb25zdHJhaW50ID0gVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7
CkBAIC01MDM5LDEwICs1MDQzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBBbGxvd01h
Y3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAgICAgICAg
ICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4ID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5h
ZGRVbmlxdWVDYWxsU2l0ZUluZGV4KGNvZGVPcmlnaW4pOwogCi0gICAgICAgICAgICAgICAgLy8g
RklYTUU6IElmIHdlIHdlcmUgaGFuZGxpbmcgZXhjZXB0aW9ucywgdGhlbiBhdCB0aGlzIHBvaW50
IHdlIHdvdWxkIGFzayBvdXIgZGVzY3JpcHRvcgotICAgICAgICAgICAgICAgIC8vIHRvIHByZXBh
cmUgYW5kIHRoZW4gd2Ugd291bGQgbW9kaWZ5IHRoZSBPU1JFeGl0IGRhdGEgc3RydWN0dXJlIGlu
c2lkZSB0aGUKLSAgICAgICAgICAgICAgICAvLyBPU1JFeGl0SGFuZGxlIHRvIGxpbmsgaXQgdXAg
dG8gdGhpcyBjYWxsLgotICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTE2ODYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUt
PnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAK
ICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMigKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoY2FsbFNpdGVJbmRleC5iaXRzKCkpLApAQCAtNTEzMiw2ICs1
MTMzLDkgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gY29udmVuaWVudC4gVGhlIGdlbmVyYXRvciB0
aGVuIHNodWZmbGVzIHRob3NlIGFyZ3VtZW50cyBpbnRvIG91ciBvd24gY2FsbCBmcmFtZSwKICAg
ICAgICAgLy8gZGVzdHJveWluZyBvdXIgZnJhbWUgaW4gdGhlIHByb2Nlc3MuCiAKKyAgICAgICAg
Ly8gTm90ZSB0aGF0IHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCBmb3IgZXhj
ZXB0aW9ucy4gQSB0YWlsIGNhbGwgaXMgb25seSBhCisgICAgICAgIC8vIHRhaWwgY2FsbCBpZiBp
dCBpcyBub3QgaW5zaWRlIGEgdHJ5IGJsb2NrLgorCiAgICAgICAgIFZlY3RvcjxDb25zdHJhaW5l
ZFZhbHVlPiBhcmd1bWVudHM7CiAKICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChDb25zdHJhaW5l
ZFZhbHVlKGpzQ2FsbGVlLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnJlZ1QwKSkpOwpAQCAtNTE2
Miw5ICs1MTY2LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBq
aXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAg
ICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwog
Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoZXJlIG1heSBiZSBzb21lIGV4Y2VwdGlvbiB0
aGluZ3MgdGhhdCBuZWVkIHRvIGhhcHBlbiBoZXJlLgotICAgICAgICAgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2ODYKLQogICAgICAgICAgICAg
ICAgIENhbGxGcmFtZVNodWZmbGVEYXRhIHNodWZmbGVEYXRhOwogICAgICAgICAgICAgICAgIHNo
dWZmbGVEYXRhLm51bUxvY2FscyA9IHN0YXRlLT5qaXRDb2RlLT5jb21tb24uZnJhbWVSZWdpc3Rl
ckNvdW50OwogICAgICAgICAgICAgICAgIHNodWZmbGVEYXRhLmNhbGxlZSA9IFZhbHVlUmVjb3Zl
cnk6OmluR1BSKEdQUkluZm86OnJlZ1QwLCBEYXRhRm9ybWF0SlMpOwpAQCAtNTI3Myw5ICs1Mjc0
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICAKICNpZiBGVExfVVNFU19CMwotICAg
ICAgICAvLyBGSVhNRTogTmVlZCBhIHN0b3J5IGZvciBleGNlcHRpb25zLgotICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNjg2Ci0KICAgICAgICAg
UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CiAK
ICAgICAgICAgLy8gQXBwZW5kIHRoZSBmb3JtcyBvZiB0aGUgYXJndW1lbnRzIHRoYXQgd2Ugd2ls
bCB1c2UgYmVmb3JlIGFueSBjbG9iYmVyaW5nIGhhcHBlbnMuCkBAIC01MjkzLDYgKzUyOTEsOSBA
QCBwcml2YXRlOgogICAgICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKHRoaXNBcmcsIFZhbHVl
UmVwOjpMYXRlQ29sZEFueSk7CiAgICAgICAgIH0KIAorICAgICAgICBSZWZQdHI8UGF0Y2hwb2lu
dEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KKyAgICAgICAgICAgIHByZXBhcmVQ
YXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKKyAgICAgICAgCiAgICAgICAgIHBh
dGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsK
ICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQ6OnZvbGF0aWxlUmVn
aXN0ZXJzRm9ySlNDYWxsKCkpOwogICAgICAgICBwYXRjaHBvaW50LT5yZXN1bHRDb25zdHJhaW50
ID0gVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CkBAIC01MzEyLDExICs1
MzEzLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0
ZUluZGV4ID0KICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRV
bmlxdWVDYWxsU2l0ZUluZGV4KGNvZGVPcmlnaW4pOwogCi0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IFdlIHdvdWxkIGFzayB0aGUgT1NSIGV4aXQgZGVzY3JpcHRvciB0byBwcmVwYXJlIGFuZCB0
aGVuIHdlIHdvdWxkIG1vZGlmeQotICAgICAgICAgICAgICAgIC8vIHRoZSBPU1JFeGl0IGRhdGEg
c3RydWN0dXJlIGluc2lkZSB0aGUgT1NSRXhpdEhhbmRsZSB0byBsaW5rIGl0IHVwIHRvIHRoaXMg
Y2FsbC4KLSAgICAgICAgICAgICAgICAvLyBBbHNvLCB0aGUgZXhjZXB0aW9uIGNoZWNrcyBKdW1w
TGlzdCBzaG91bGQgYmUgbGlua2VkIHRvIHNvbWV3aGVyZS4KLSAgICAgICAgICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNjg2Ci0gICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zOworICAgICAgICAgICAgICAg
IEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0KKyAgICAgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1w
cyhqaXQpOworCisgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRD
cmVhdGlvbkZvclVud2luZChwYXJhbXMsIGNhbGxTaXRlSW5kZXgpOwogCiAgICAgICAgICAgICAg
ICAgaml0LnN0b3JlMzIoCiAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKGNhbGxTaXRlSW5kZXguYml0cygpKSwKQEAgLTUzOTgsNyArNTM5OCw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgYXV0byBjYWxsV2l0aEV4Y2VwdGlvbkNoZWNrID0gWyZdICh2
b2lkKiBjYWxsZWUpIHsKICAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGNhbGxlZSksIEdQUkluZm86Om5vblByZXNlcnZlZE5vbkFyZ3VtZW50
R1BSKTsKICAgICAgICAgICAgICAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uUHJlc2VydmVk
Tm9uQXJndW1lbnRHUFIpOwotICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmFwcGVuZChq
aXQuZW1pdEV4Y2VwdGlvbkNoZWNrKEFzc2VtYmx5SGVscGVyczo6Tm9ybWFsRXhjZXB0aW9uQ2hl
Y2ssIEFzc2VtYmx5SGVscGVyczo6RmFySnVtcFdpZHRoKSk7CisgICAgICAgICAgICAgICAgICAg
IGV4Y2VwdGlvbnMtPmFwcGVuZChqaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKEFzc2VtYmx5SGVscGVy
czo6Tm9ybWFsRXhjZXB0aW9uQ2hlY2ssIEFzc2VtYmx5SGVscGVyczo6RmFySnVtcFdpZHRoKSk7
CiAgICAgICAgICAgICAgICAgfTsKIAogICAgICAgICAgICAgICAgIGF1dG8gYWRqdXN0U3RhY2sg
PSBbJl0gKEdQUlJlZyBhbW91bnQpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZnRsLWNhbGwtYmFkLWNhbGxlZS1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1z
dGF0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Z0bC1jYWxsLWJhZC1jYWxsZWUtZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1j
YWxsLWJhZC1jYWxsZWUtZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorZnVuY3Rpb24gZm9vKGYsIHApIHsKKyAgICB2YXIg
eCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHZhciBwZiA9IHAuZzsKKyAgICB0
cnkgeworICAgICAgICB4ID0gMTAyOworICAgICAgICBwZisrOworICAgICAgICByZXN1bHQgPSBm
KCk7CisgICAgICAgIGYgPSAxMDQ7CisgICAgICAgIHBmKys7CisgICAgICAgIHggPSAxMDY7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4ge291dGNvbWU6ICJleGNlcHRpb24iLCB2
YWx1ZXM6IFtmLCBwZiwgeCwgcmVzdWx0XX07CisgICAgfQorICAgIHJldHVybiB7b3V0Y29tZTog
InJldHVybiIsIHZhbHVlczogW2YsIHBmLCB4LCByZXN1bHRdfTsKK30KKworbm9JbmxpbmUoZm9v
KTsKKworZnVuY3Rpb24gYmFyKCkgeworICAgIHJldHVybiAxMDc7Cit9CisKK25vSW5saW5lKGJh
cik7CisKKy8vIFdhcm0gdXAgZm9vKCkuCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXIsIHtnOjIwMH0pOworICAgIGlmIChyZXN1bHQu
b3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQg
b3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1bHQudmFsdWVzLmxlbmd0
aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBudW1iZXIgb2YgdmFs
dWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMF0g
IT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06ICIg
KyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzFdICE9PSAyMDIpCisg
ICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZh
bHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2KQorICAgICAgICB0aHJv
dyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07Cisg
ICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEwNykKKyAgICAgICAgdGhyb3cgIkVycm9yIGlu
IGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFsdWVzWzNdOworfQorCisvLyBOb3cg
dGhyb3cgYW4gZXhjZXB0aW9uLgordmFyIHJlc3VsdCA9IGZvbygiaGVsbG8iLCB7ZzozMDB9KTsK
K2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0
IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKK2lmIChyZXN1bHQudmFsdWVz
Lmxlbmd0aCAhPT0gNCkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgbnVtYmVyIG9mIHZh
bHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09
ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiArIHJl
c3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMzAxKQorICAgIHRocm93
ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworaWYg
KHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQg
dmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKK2lmIChyZXN1bHQudmFsdWVzWzNdICE9
PSAxMDEpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1szXTogIiArIHJlc3Vs
dC52YWx1ZXNbM107CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZnRsLWNhbGwtZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC1leGNlcHRpb24t
aW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUt
c3RhdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorZnVuY3Rpb24gZm9vKGYs
IHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHZhciBw
ZiA9IHAuZzsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAyOworICAgICAgICBwZisrOworICAg
ICAgICByZXN1bHQgPSBmKCk7CisgICAgICAgIGYgPSAxMDQ7CisgICAgICAgIHBmKys7CisgICAg
ICAgIHggPSAxMDY7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4ge291dGNvbWU6
ICJleGNlcHRpb24iLCB2YWx1ZXM6IFtmLCBwZiwgeCwgcmVzdWx0XX07CisgICAgfQorICAgIHJl
dHVybiB7b3V0Y29tZTogInJldHVybiIsIHZhbHVlczogW2YsIHBmLCB4LCByZXN1bHRdfTsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gYmFyKCkgeworICAgIHJldHVybiAxMDc7Cit9
CisKK25vSW5saW5lKGJhcik7CisKKy8vIFdhcm0gdXAgZm9vKCkuCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXIsIHtnOjIwMH0pOwor
ICAgIGlmIChyZXN1bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1
bHQudmFsdWVzLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJh
ZCBudW1iZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJl
c3VsdC52YWx1ZXNbMF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJh
ZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVz
WzFdICE9PSAyMDIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFd
OiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2
KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3Vs
dC52YWx1ZXNbMl07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEwNykKKyAgICAgICAg
dGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFsdWVzWzNd
OworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9uLgorYmFyID0gZnVuY3Rpb24oKSB7Cisg
ICAgdGhyb3cgIkVycm9yNDIiOworfQordmFyIHJlc3VsdCA9IGZvbyhiYXIsIHtnOjMwMH0pOwor
aWYgKHJlc3VsdC5vdXRjb21lICE9PSAiZXhjZXB0aW9uIikKKyAgICB0aHJvdyAiRXJyb3IgYXQg
ZW5kOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworaWYgKHJlc3VsdC52YWx1ZXMu
bGVuZ3RoICE9PSA0KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBudW1iZXIgb2YgdmFs
dWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CitpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0g
YmFyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQu
dmFsdWVzWzBdOworaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDMwMSkKKyAgICB0aHJvdyAiRXJy
b3IgYXQgZW5kOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKK2lmIChyZXN1
bHQudmFsdWVzWzJdICE9PSAxMDIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVl
c1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07CitpZiAocmVzdWx0LnZhbHVlc1szXSAhPT0gMTAx
KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFs
dWVzWzNdOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1j
YWxsLWV4Y2VwdGlvbi1uby1jYXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWV4Y2VwdGlvbi1uby1jYXRjaC5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtZXhj
ZXB0aW9uLW5vLWNhdGNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKK2Z1bmN0
aW9uIGZvbyhmLCBwKSB7CisgICAgdmFyIHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsK
KyAgICB4ID0gMTAyOworICAgIHAgPSAxMDM7CisgICAgcmVzdWx0ID0gZigpOworICAgIGYgPSAx
MDQ7CisgICAgcCA9IDEwNTsKKyAgICB4ID0gMTA2OworICAgIHJldHVybiB7b3V0Y29tZTogInJl
dHVybiIsIHZhbHVlczogW2YsIHAsIHgsIHJlc3VsdF19OworfQorCitub0lubGluZShmb28pOwor
CitmdW5jdGlvbiBiYXIoKSB7CisgICAgcmV0dXJuIDEwNzsKK30KKworbm9JbmxpbmUoYmFyKTsK
KworLy8gV2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhcik7CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9PSAi
cmV0dXJuIikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAiICsg
cmVzdWx0Lm91dGNvbWU7CisgICAgaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSA0KQorICAg
ICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1
bHQudmFsdWVzLmxlbmd0aDsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQorICAg
ICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1
ZXNbMF07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDEwNSkKKyAgICAgICAgdGhyb3cg
IkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworICAg
IGlmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDYpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBs
b29wOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKKyAgICBpZiAocmVzdWx0
LnZhbHVlc1szXSAhPT0gMTA3KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZh
bHVlc1szXTogIiArIHJlc3VsdC52YWx1ZXNbM107Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNl
cHRpb24uCit2YXIgcmVzdWx0OwordHJ5IHsKKyAgICBiYXIgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgdGhyb3cgIkVycm9yNDIiOworICAgIH0KKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhciwgMTA4
KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBpZiAoZSAhPSAiRXJyb3I0MiIpCisgICAgICAgIHRocm93
ICJFcnJvciBhdCBlbmQ6IGJhZCBleGNlcHRpb246ICIgKyBlOworICAgIHJlc3VsdCA9IHtvdXRj
b21lOiAiZXhjZXB0aW9uIn07Cit9CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24i
KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNv
bWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWV4
Y2VwdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Z0bC1jYWxsLWV4Y2VwdGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtZXhjZXB0aW9uLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTkgQEAKK2Z1bmN0aW9uIGZvbyhmLCBwLCBhcmdzKSB7CisgICAgdmFyIHgg
PSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAy
OworICAgICAgICBwID0gMTAzOworICAgICAgICByZXN1bHQgPSBmLmFwcGx5KHRoaXMsIGFyZ3Mp
OworICAgICAgICBmID0gMTA0OworICAgICAgICBwID0gMTA1OworICAgICAgICB4ID0gMTA2Owor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIHtvdXRjb21lOiAiZXhjZXB0aW9uIiwg
dmFsdWVzOiBbZiwgcCwgeCwgcmVzdWx0XX07CisgICAgfQorICAgIHJldHVybiB7b3V0Y29tZTog
InJldHVybiIsIHZhbHVlczogW2YsIHAsIHgsIHJlc3VsdF19OworfQorCitub0lubGluZShmb28p
OworCitmdW5jdGlvbiBiYXIoYSwgYiwgYykgeworICAgIHJldHVybiBhICsgYiArIGM7Cit9CisK
K25vSW5saW5lKGJhcik7CisKKy8vIFdhcm0gdXAgZm9vKCkuCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXIsIG51bGwsIFsxMDUsIDEs
IDFdKTsKKyAgICBpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJv
dyAiRXJyb3IgaW4gbG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBp
ZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBs
b29wOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAg
IGlmIChyZXN1bHQudmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBs
b29wOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0
LnZhbHVlc1sxXSAhPT0gMTA1KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZh
bHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0g
IT09IDEwNikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIg
KyByZXN1bHQudmFsdWVzWzJdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzNdICE9PSAxMDcpCisg
ICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzNdOiAiICsgcmVzdWx0LnZh
bHVlc1szXTsKK30KKworLy8gTm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK2JhciA9IGZ1bmN0aW9u
KCkgeworICAgIHRocm93ICJFcnJvcjQyIjsKK30KK3ZhciByZXN1bHQgPSBmb28oYmFyLCAxMDgs
IFsxMDUsIDEsIDFdKTsKK2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAg
dGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKK2lm
IChyZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gNCkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBi
YWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworaWYgKHJlc3Vs
dC52YWx1ZXNbMF0gIT09IGJhcikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVz
WzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKK2lmIChyZXN1bHQudmFsdWVzWzFdICE9PSAxMDMp
CisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1
ZXNbMV07CitpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTAyKQorICAgIHRocm93ICJFcnJvciBh
dCBlbmQ6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFsdWVzWzJdOworaWYgKHJlc3VsdC52
YWx1ZXNbM10gIT09IDEwMSkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzNd
OiAiICsgcmVzdWx0LnZhbHVlc1szXTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWJhZC1jYWxsZWUtZXhjZXB0aW9uLWludGVyZXN0
aW5nLWxpdmUtc3RhdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWJhZC1jYWxsZWUtZXhjZXB0aW9uLWludGVyZXN0
aW5nLWxpdmUtc3RhdGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtYmFkLWNhbGxlZS1leGNlcHRpb24taW50ZXJl
c3RpbmctbGl2ZS1zdGF0ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACitmdW5j
dGlvbiBmb28oZiwgcCwgYXJncykgeworICAgIHZhciB4ID0gMTAwOworICAgIHZhciByZXN1bHQg
PSAxMDE7CisgICAgdmFyIHBmID0gcC5nOworICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7Cisg
ICAgICAgIHBmKys7CisgICAgICAgIHJlc3VsdCA9IGYuYXBwbHkodGhpcywgYXJncyk7CisgICAg
ICAgIGYgPSAxMDQ7CisgICAgICAgIHBmKys7CisgICAgICAgIHggPSAxMDY7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICByZXR1cm4ge291dGNvbWU6ICJleGNlcHRpb24iLCB2YWx1ZXM6IFtm
LCBwZiwgeCwgcmVzdWx0XX07CisgICAgfQorICAgIHJldHVybiB7b3V0Y29tZTogInJldHVybiIs
IHZhbHVlczogW2YsIHBmLCB4LCByZXN1bHRdfTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVu
Y3Rpb24gYmFyKGEsIGIsIGMpIHsKKyAgICByZXR1cm4gYSArIGIgKyBjOworfQorCitub0lubGlu
ZShiYXIpOworCisvLyBXYXJtIHVwIGZvbygpLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmFyLCB7ZzoyMDB9LCBbMTA1LCAxLCAxXSk7
CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9PSAicmV0dXJuIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CisgICAgaWYgKHJl
c3VsdC52YWx1ZXMubGVuZ3RoICE9PSA0KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDog
YmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKKyAgICBpZiAo
cmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDog
YmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1ZXNbMF07CisgICAgaWYgKHJlc3VsdC52YWx1
ZXNbMV0gIT09IDIwMikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNb
MV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzJdICE9PSAx
MDYpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVz
dWx0LnZhbHVlc1syXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1szXSAhPT0gMTA3KQorICAgICAg
ICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1szXTogIiArIHJlc3VsdC52YWx1ZXNb
M107Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCit2YXIgcmVzdWx0ID0gZm9vKCJo
ZWxsbyIsIHtnOjMwMH0sIFsxMDUsIDEsIDFdKTsKK2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4
Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1
bHQub3V0Y29tZTsKK2lmIChyZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gNCkKKyAgICB0aHJvdyAi
RXJyb3IgYXQgZW5kOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVu
Z3RoOworaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9y
IGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0
LnZhbHVlc1sxXSAhPT0gMzAxKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNb
MV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikK
KyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVl
c1syXTsKK2lmIChyZXN1bHQudmFsdWVzWzNdICE9PSAxMDEpCisgICAgdGhyb3cgIkVycm9yIGF0
IGVuZDogYmFkIHZhbHVlc1szXTogIiArIHJlc3VsdC52YWx1ZXNbM107CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1leGNlcHRpb24t
aW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLWludGVyZXN0aW5n
LWxpdmUtc3RhdGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3Rh
dGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorZnVuY3Rpb24gZm9vKGYsIHAs
IGFyZ3MpIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHZh
ciBwZiA9IHAuZzsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAyOworICAgICAgICBwZisrOwor
ICAgICAgICByZXN1bHQgPSBmLmFwcGx5KHRoaXMsIGFyZ3MpOworICAgICAgICBmID0gMTA0Owor
ICAgICAgICBwZisrOworICAgICAgICB4ID0gMTA2OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgcmV0dXJuIHtvdXRjb21lOiAiZXhjZXB0aW9uIiwgdmFsdWVzOiBbZiwgcGYsIHgsIHJlc3Vs
dF19OworICAgIH0KKyAgICByZXR1cm4ge291dGNvbWU6ICJyZXR1cm4iLCB2YWx1ZXM6IFtmLCBw
ZiwgeCwgcmVzdWx0XX07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIGJhcihhLCBi
LCBjKSB7CisgICAgcmV0dXJuIGEgKyBiICsgYzsKK30KKworbm9JbmxpbmUoYmFyKTsKKworLy8g
V2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKGJhciwge2c6MjAwfSwgWzEwNSwgMSwgMV0pOworICAgIGlmIChyZXN1
bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1bHQudmFsdWVzLmxl
bmd0aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBudW1iZXIgb2Yg
dmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJlc3VsdC52YWx1ZXNb
MF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06
ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzFdICE9PSAyMDIp
CisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0
LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2KQorICAgICAgICB0
aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07
CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEwNykKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFsdWVzWzNdOworfQorCisvLyBO
b3cgdGhyb3cgYW4gZXhjZXB0aW9uLgorYmFyID0gZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgIkVy
cm9yNDIiOworfQordmFyIHJlc3VsdCA9IGZvbyhiYXIsIHtnOjMwMH0sIFsxMDUsIDEsIDFdKTsK
K2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0
IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKK2lmIChyZXN1bHQudmFsdWVz
Lmxlbmd0aCAhPT0gNCkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgbnVtYmVyIG9mIHZh
bHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09
IGJhcikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0
LnZhbHVlc1swXTsKK2lmIChyZXN1bHQudmFsdWVzWzFdICE9PSAzMDEpCisgICAgdGhyb3cgIkVy
cm9yIGF0IGVuZDogYmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CitpZiAocmVz
dWx0LnZhbHVlc1syXSAhPT0gMTAyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1
ZXNbMl06ICIgKyByZXN1bHQudmFsdWVzWzJdOworaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEw
MSkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzNdOiAiICsgcmVzdWx0LnZh
bHVlc1szXTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
Y2FsbC12YXJhcmdzLWV4Y2VwdGlvbi1uby1jYXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLW5v
LWNhdGNoLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9mdGwtY2FsbC12YXJhcmdzLWV4Y2VwdGlvbi1uby1jYXRjaC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDUxIEBACitmdW5jdGlvbiBmb28oZiwgcCwgYXJncykgeworICAgIHZhciB4
ID0gMTAwOworICAgIHZhciByZXN1bHQgPSAxMDE7CisgICAgeCA9IDEwMjsKKyAgICBwID0gMTAz
OworICAgIHJlc3VsdCA9IGYuYXBwbHkodGhpcywgYXJncyk7CisgICAgZiA9IDEwNDsKKyAgICBw
ID0gMTA1OworICAgIHggPSAxMDY7CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFs
dWVzOiBbZiwgcCwgeCwgcmVzdWx0XX07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9u
IGJhcihhLCBiLCBjKSB7CisgICAgcmV0dXJuIGEgKyBiICsgYzsKK30KKworbm9JbmxpbmUoYmFy
KTsKKworLy8gV2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
IHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhciwgbnVsbCwgWzEwNSwgMSwgMV0pOworICAgIGlm
IChyZXN1bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBs
b29wOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChyZXN1bHQudmFs
dWVzLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCBudW1i
ZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYgKHJlc3VsdC52
YWx1ZXNbMF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1
ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzFdICE9
PSAxMDUpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzFdOiAiICsg
cmVzdWx0LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTA2KQorICAg
ICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1
ZXNbMl07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEwNykKKyAgICAgICAgdGhyb3cg
IkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFsdWVzWzNdOworfQor
CisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9uLgordmFyIHJlc3VsdDsKK3RyeSB7CisgICAgYmFy
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJFcnJvcjQyIjsKKyAgICB9CisgICAgdmFy
IHJlc3VsdCA9IGZvbyhiYXIsIDEwOCwgWzEwNSwgMSwgMV0pOworfSBjYXRjaCAoZSkgeworICAg
IGlmIChlICE9ICJFcnJvcjQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIGV4
Y2VwdGlvbjogIiArIGU7CisgICAgcmVzdWx0ID0ge291dGNvbWU6ICJleGNlcHRpb24ifTsKK30K
K2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2VwdGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0
IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1leGNlcHRpb24uanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC12
YXJhcmdzLWV4Y2VwdGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1leGNlcHRpb24uanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1OSBAQAorZnVuY3Rpb24gZm9vKGYsIHApIHsKKyAgICB2YXIgeCA9IDEw
MDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7Cisg
ICAgICAgIHAgPSAxMDM7CisgICAgICAgIHJlc3VsdCA9IGYoKTsKKyAgICAgICAgZiA9IDEwNDsK
KyAgICAgICAgcCA9IDEwNTsKKyAgICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIHJldHVybiB7b3V0Y29tZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW2YsIHAsIHgsIHJl
c3VsdF19OworICAgIH0KKyAgICByZXR1cm4ge291dGNvbWU6ICJyZXR1cm4iLCB2YWx1ZXM6IFtm
LCBwLCB4LCByZXN1bHRdfTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gYmFyKCkg
eworICAgIHJldHVybiAxMDc7Cit9CisKK25vSW5saW5lKGJhcik7CisKKy8vIFdhcm0gdXAgZm9v
KCkuCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9
IGZvbyhiYXIpOworICAgIGlmIChyZXN1bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAg
IHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOwor
ICAgIGlmIChyZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7
CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChy
ZXN1bHQudmFsdWVzWzFdICE9PSAxMDUpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVl
c1syXSAhPT0gMTA2KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sy
XTogIiArIHJlc3VsdC52YWx1ZXNbMl07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEw
NykKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1
bHQudmFsdWVzWzNdOworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9uLgorYmFyID0gZnVu
Y3Rpb24oKSB7CisgICAgdGhyb3cgIkVycm9yNDIiOworfQordmFyIHJlc3VsdCA9IGZvbyhiYXIs
IDEwOCk7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAgIHRocm93ICJF
cnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CitpZiAocmVzdWx0
LnZhbHVlcy5sZW5ndGggIT09IDQpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG51bWJl
ciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKK2lmIChyZXN1bHQudmFsdWVz
WzBdICE9PSBiYXIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiAr
IHJlc3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMTAzKQorICAgIHRo
cm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOwor
aWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBi
YWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKK2lmIChyZXN1bHQudmFsdWVzWzNd
ICE9PSAxMDEpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1szXTogIiArIHJl
c3VsdC52YWx1ZXNbM107CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268501</attachid>
            <date>2016-01-07 15:28:36 -0800</date>
            <delta_ts>2016-01-07 15:38:06 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>26467</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NzMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE2LTAxLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIEpTIGNhbGxzIHNob3VsZCBkbyBleGNlcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI4NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUNhbGxPckNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVRhaWxDYWxsKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ2FsbE9yQ29uc3RydWN0VmFyYXJncyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWJhZC1hcmdzLWV4Y2VwdGlvbi1pbnRl
cmVzdGluZy1saXZlLXN0YXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRs
LWNhbGwtYmFkLWNhbGxlZS1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qczogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWV4Y2VwdGlvbi1pbnRlcmVzdGlu
Zy1saXZlLXN0YXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWNhbGwt
ZXhjZXB0aW9uLW5vLWNhdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRs
LWNhbGwtZXhjZXB0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWNh
bGwtdmFyYXJncy1iYWQtY2FsbGVlLWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1leGNlcHRp
b24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLW5vLWNhdGNoLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1leGNlcHRpb24uanM6IEFkZGVkLgor
CiAyMDE2LTAxLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
RlRMIEIzIFB1dEJ5SWQgc2hvdWxkIGRvIGV4Y2VwdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTk0
NzMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODIxLDcgKzgyMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICBBU1NFUlQoIWlzVGFpbCB8fCAhc3RhdGljT3JpZ2lu
LmlubGluZUNhbGxGcmFtZSB8fCAhc3RhdGljT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Z2V0Q2Fs
bGVyU2tpcHBpbmdUYWlsQ2FsbHMoKSk7CiAgICAgQVNTRVJUKCFpc0VtdWxhdGVkVGFpbCB8fCAo
c3RhdGljT3JpZ2luLmlubGluZUNhbGxGcmFtZSAmJiBzdGF0aWNPcmlnaW4uaW5saW5lQ2FsbEZy
YW1lLT5nZXRDYWxsZXJTa2lwcGluZ1RhaWxDYWxscygpKSk7CiAgICAgQ29kZU9yaWdpbiBkeW5h
bWljT3JpZ2luID0KLSAgICBpc0VtdWxhdGVkVGFpbCA/ICpzdGF0aWNPcmlnaW4uaW5saW5lQ2Fs
bEZyYW1lLT5nZXRDYWxsZXJTa2lwcGluZ1RhaWxDYWxscygpIDogc3RhdGljT3JpZ2luOworICAg
ICAgICBpc0VtdWxhdGVkVGFpbCA/ICpzdGF0aWNPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5nZXRD
YWxsZXJTa2lwcGluZ1RhaWxDYWxscygpIDogc3RhdGljT3JpZ2luOwogCiAgICAgQ2FsbFNpdGVJ
bmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25I
YW5kbGluZ09TUkV4aXRJZk5lZWRlZChkeW5hbWljT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsK
ICAgICBtX2ppdC5lbWl0U3RvcmVDYWxsU2l0ZUluZGV4KGNhbGxTaXRlKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lv
biAxOTQ3MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZN
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAzNiw2ICs1MDM2LDEwIEBAIHByaXZhdGU6CiAKICAg
ICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2
NCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFZlY3Rvcihhcmd1bWVudHMpOworCisgICAg
ICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQor
ICAgICAgICAgICAgcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwor
ICAgICAgICAKICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9T
Y3JhdGNoUmVnaXN0ZXJzKCkpOwogICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdp
c3RlclNldDo6dm9sYXRpbGVSZWdpc3RlcnNGb3JKU0NhbGwoKSk7CiAgICAgICAgIHBhdGNocG9p
bnQtPnJlc3VsdENvbnN0cmFpbnQgPSBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKQEAgLTUwNDcsMTAgKzUwNTEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIEFs
bG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAg
ICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXggPSBzdGF0ZS0+aml0Q29kZS0+Y29t
bW9uLmFkZFVuaXF1ZUNhbGxTaXRlSW5kZXgoY29kZU9yaWdpbik7CiAKLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSWYgd2Ugd2VyZSBoYW5kbGluZyBleGNlcHRpb25zLCB0aGVuIGF0IHRoaXMg
cG9pbnQgd2Ugd291bGQgYXNrIG91ciBkZXNjcmlwdG9yCi0gICAgICAgICAgICAgICAgLy8gdG8g
cHJlcGFyZSBhbmQgdGhlbiB3ZSB3b3VsZCBtb2RpZnkgdGhlIE9TUkV4aXQgZGF0YSBzdHJ1Y3R1
cmUgaW5zaWRlIHRoZQotICAgICAgICAgICAgICAgIC8vIE9TUkV4aXRIYW5kbGUgdG8gbGluayBp
dCB1cCB0byB0aGlzIGNhbGwuCi0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY4NgorICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhh
bmRsZS0+c2NoZWR1bGVFeGl0Q3JlYXRpb25Gb3JVbndpbmQocGFyYW1zLCBjYWxsU2l0ZUluZGV4
KTsKIAogICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKAogICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjYWxsU2l0ZUluZGV4LmJpdHMoKSksCkBAIC01MTQw
LDYgKzUxNDEsOSBAQCBwcml2YXRlOgogICAgICAgICAvLyBjb252ZW5pZW50LiBUaGUgZ2VuZXJh
dG9yIHRoZW4gc2h1ZmZsZXMgdGhvc2UgYXJndW1lbnRzIGludG8gb3VyIG93biBjYWxsIGZyYW1l
LAogICAgICAgICAvLyBkZXN0cm95aW5nIG91ciBmcmFtZSBpbiB0aGUgcHJvY2Vzcy4KIAorICAg
ICAgICAvLyBOb3RlIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsIGZv
ciBleGNlcHRpb25zLiBBIHRhaWwgY2FsbCBpcyBvbmx5IGEKKyAgICAgICAgLy8gdGFpbCBjYWxs
IGlmIGl0IGlzIG5vdCBpbnNpZGUgYSB0cnkgYmxvY2suCisKICAgICAgICAgVmVjdG9yPENvbnN0
cmFpbmVkVmFsdWU+IGFyZ3VtZW50czsKIAogICAgICAgICBhcmd1bWVudHMuYXBwZW5kKENvbnN0
cmFpbmVkVmFsdWUoanNDYWxsZWUsIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6cmVnVDApKSk7CkBA
IC01MTcwLDkgKzUxNzQsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAg
ICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGpp
dCk7CiAKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhlcmUgbWF5IGJlIHNvbWUgZXhjZXB0
aW9uIHRoaW5ncyB0aGF0IG5lZWQgdG8gaGFwcGVuIGhlcmUuCi0gICAgICAgICAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY4NgotCiAgICAgICAg
ICAgICAgICAgQ2FsbEZyYW1lU2h1ZmZsZURhdGEgc2h1ZmZsZURhdGE7CiAgICAgICAgICAgICAg
ICAgc2h1ZmZsZURhdGEubnVtTG9jYWxzID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5mcmFtZVJl
Z2lzdGVyQ291bnQ7CiAgICAgICAgICAgICAgICAgc2h1ZmZsZURhdGEuY2FsbGVlID0gVmFsdWVS
ZWNvdmVyeTo6aW5HUFIoR1BSSW5mbzo6cmVnVDAsIERhdGFGb3JtYXRKUyk7CkBAIC01MjgxLDkg
KzUyODIsNiBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgIAogI2lmIEZUTF9VU0VTX0Iz
Ci0gICAgICAgIC8vIEZJWE1FOiBOZWVkIGEgc3RvcnkgZm9yIGV4Y2VwdGlvbnMuCi0gICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2ODYKLQogICAg
ICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0
KTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIGZvcm1zIG9mIHRoZSBhcmd1bWVudHMgdGhhdCB3
ZSB3aWxsIHVzZSBiZWZvcmUgYW55IGNsb2JiZXJpbmcgaGFwcGVucy4KQEAgLTUzMDEsNiArNTI5
OSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQodGhpc0FyZywg
VmFsdWVSZXA6OkxhdGVDb2xkQW55KTsKICAgICAgICAgfQogCisgICAgICAgIFJlZlB0cjxQYXRj
aHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQorICAgICAgICAgICAgcHJl
cGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOworICAgICAgICAKICAgICAg
ICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJz
KCkpOwogICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldDo6dm9sYXRp
bGVSZWdpc3RlcnNGb3JKU0NhbGwoKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENvbnN0
cmFpbnQgPSBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKQEAgLTUzMjAs
MTEgKzUzMjEsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNh
bGxTaXRlSW5kZXggPQogICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+aml0Q29kZS0+Y29tbW9u
LmFkZFVuaXF1ZUNhbGxTaXRlSW5kZXgoY29kZU9yaWdpbik7CiAKLSAgICAgICAgICAgICAgICAv
LyBGSVhNRTogV2Ugd291bGQgYXNrIHRoZSBPU1IgZXhpdCBkZXNjcmlwdG9yIHRvIHByZXBhcmUg
YW5kIHRoZW4gd2Ugd291bGQgbW9kaWZ5Ci0gICAgICAgICAgICAgICAgLy8gdGhlIE9TUkV4aXQg
ZGF0YSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBPU1JFeGl0SGFuZGxlIHRvIGxpbmsgaXQgdXAgdG8g
dGhpcyBjYWxsLgotICAgICAgICAgICAgICAgIC8vIEFsc28sIHRoZSBleGNlcHRpb24gY2hlY2tz
IEp1bXBMaXN0IHNob3VsZCBiZSBsaW5rZWQgdG8gc29tZXdoZXJlLgotICAgICAgICAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2ODYKLSAgICAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvbnM7CisgICAgICAgICAg
ICAgICAgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMgPQorICAgICAgICAg
ICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uKHBhcmFtcykt
Pmp1bXBzKGppdCk7CisKKyAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxl
RXhpdENyZWF0aW9uRm9yVW53aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKICAgICAgICAg
ICAgICAgICBqaXQuc3RvcmUzMigKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoY2FsbFNpdGVJbmRleC5iaXRzKCkpLApAQCAtNTQwNiw3ICs1NDA2LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBhdXRvIGNhbGxXaXRoRXhjZXB0aW9uQ2hlY2sgPSBb
Jl0gKHZvaWQqIGNhbGxlZSkgewogICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbGVlKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uQXJn
dW1lbnRHUFIpOwogICAgICAgICAgICAgICAgICAgICBqaXQuY2FsbChHUFJJbmZvOjpub25QcmVz
ZXJ2ZWROb25Bcmd1bWVudEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuYXBw
ZW5kKGppdC5lbWl0RXhjZXB0aW9uQ2hlY2soQXNzZW1ibHlIZWxwZXJzOjpOb3JtYWxFeGNlcHRp
b25DaGVjaywgQXNzZW1ibHlIZWxwZXJzOjpGYXJKdW1wV2lkdGgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgZXhjZXB0aW9ucy0+YXBwZW5kKGppdC5lbWl0RXhjZXB0aW9uQ2hlY2soQXNzZW1ibHlI
ZWxwZXJzOjpOb3JtYWxFeGNlcHRpb25DaGVjaywgQXNzZW1ibHlIZWxwZXJzOjpGYXJKdW1wV2lk
dGgpKTsKICAgICAgICAgICAgICAgICB9OwogCiAgICAgICAgICAgICAgICAgYXV0byBhZGp1c3RT
dGFjayA9IFsmXSAoR1BSUmVnIGFtb3VudCkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC1iYWQtY2FsbGVlLWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1s
aXZlLXN0YXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZnRsLWNhbGwtYmFkLWNhbGxlZS1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZnRsLWNhbGwtYmFkLWNhbGxlZS1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACitmdW5jdGlvbiBmb28oZiwgcCkgeworICAg
IHZhciB4ID0gMTAwOworICAgIHZhciByZXN1bHQgPSAxMDE7CisgICAgdmFyIHBmID0gcC5nOwor
ICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7CisgICAgICAgIHBmKys7CisgICAgICAgIHJlc3Vs
dCA9IGYoKTsKKyAgICAgICAgZiA9IDEwNDsKKyAgICAgICAgcGYrKzsKKyAgICAgICAgeCA9IDEw
NjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiB7b3V0Y29tZTogImV4Y2VwdGlv
biIsIHZhbHVlczogW2YsIHBmLCB4LCByZXN1bHRdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRj
b21lOiAicmV0dXJuIiwgdmFsdWVzOiBbZiwgcGYsIHgsIHJlc3VsdF19OworfQorCitub0lubGlu
ZShmb28pOworCitmdW5jdGlvbiBiYXIoKSB7CisgICAgcmV0dXJuIDEwNzsKK30KKworbm9Jbmxp
bmUoYmFyKTsKKworLy8gV2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhciwge2c6MjAwfSk7CisgICAgaWYgKHJl
c3VsdC5vdXRjb21lICE9PSAicmV0dXJuIikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6
IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CisgICAgaWYgKHJlc3VsdC52YWx1ZXMu
bGVuZ3RoICE9PSA0KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG51bWJlciBv
ZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKKyAgICBpZiAocmVzdWx0LnZhbHVl
c1swXSAhPT0gMTA0KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sw
XTogIiArIHJlc3VsdC52YWx1ZXNbMF07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDIw
MikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1
bHQudmFsdWVzWzFdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDYpCisgICAgICAg
IHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1sy
XTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1szXSAhPT0gMTA3KQorICAgICAgICB0aHJvdyAiRXJy
b3IgaW4gbG9vcDogYmFkIHZhbHVlc1szXTogIiArIHJlc3VsdC52YWx1ZXNbM107Cit9CisKKy8v
IE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCit2YXIgcmVzdWx0ID0gZm9vKCJoZWxsbyIsIHtnOjMw
MH0pOworaWYgKHJlc3VsdC5vdXRjb21lICE9PSAiZXhjZXB0aW9uIikKKyAgICB0aHJvdyAiRXJy
b3IgYXQgZW5kOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworaWYgKHJlc3VsdC52
YWx1ZXMubGVuZ3RoICE9PSA0KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBudW1iZXIg
b2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CitpZiAocmVzdWx0LnZhbHVlc1sw
XSAhPT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzBdOiAi
ICsgcmVzdWx0LnZhbHVlc1swXTsKK2lmIChyZXN1bHQudmFsdWVzWzFdICE9PSAzMDEpCisgICAg
dGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07
CitpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0gMTAyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6
IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFsdWVzWzJdOworaWYgKHJlc3VsdC52YWx1ZXNb
M10gIT09IDEwMSkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzNdOiAiICsg
cmVzdWx0LnZhbHVlc1szXTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9mdGwtY2FsbC1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLWV4Y2Vw
dGlvbi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC1leGNlcHRpb24taW50ZXJlc3Rpbmct
bGl2ZS1zdGF0ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACitmdW5jdGlvbiBm
b28oZiwgcCkgeworICAgIHZhciB4ID0gMTAwOworICAgIHZhciByZXN1bHQgPSAxMDE7CisgICAg
dmFyIHBmID0gcC5nOworICAgIHRyeSB7CisgICAgICAgIHggPSAxMDI7CisgICAgICAgIHBmKys7
CisgICAgICAgIHJlc3VsdCA9IGYoKTsKKyAgICAgICAgZiA9IDEwNDsKKyAgICAgICAgcGYrKzsK
KyAgICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiB7b3V0
Y29tZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW2YsIHBmLCB4LCByZXN1bHRdfTsKKyAgICB9Cisg
ICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBbZiwgcGYsIHgsIHJlc3VsdF19
OworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiBiYXIoKSB7CisgICAgcmV0dXJuIDEw
NzsKK30KKworbm9JbmxpbmUoYmFyKTsKKworLy8gV2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhciwge2c6MjAw
fSk7CisgICAgaWYgKHJlc3VsdC5vdXRjb21lICE9PSAicmV0dXJuIikKKyAgICAgICAgdGhyb3cg
IkVycm9yIGluIGxvb3A6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CisgICAgaWYg
KHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSA0KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9v
cDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKKyAgICBp
ZiAocmVzdWx0LnZhbHVlc1swXSAhPT0gMTA0KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9v
cDogYmFkIHZhbHVlc1swXTogIiArIHJlc3VsdC52YWx1ZXNbMF07CisgICAgaWYgKHJlc3VsdC52
YWx1ZXNbMV0gIT09IDIwMikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1
ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzJdICE9
PSAxMDYpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzJdOiAiICsg
cmVzdWx0LnZhbHVlc1syXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1szXSAhPT0gMTA3KQorICAg
ICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1szXTogIiArIHJlc3VsdC52YWx1
ZXNbM107Cit9CisKKy8vIE5vdyB0aHJvdyBhbiBleGNlcHRpb24uCitiYXIgPSBmdW5jdGlvbigp
IHsKKyAgICB0aHJvdyAiRXJyb3I0MiI7Cit9Cit2YXIgcmVzdWx0ID0gZm9vKGJhciwge2c6MzAw
fSk7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAgIHRocm93ICJFcnJv
ciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CitpZiAocmVzdWx0LnZh
bHVlcy5sZW5ndGggIT09IDQpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG51bWJlciBv
ZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKK2lmIChyZXN1bHQudmFsdWVzWzBd
ICE9PSBiYXIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiArIHJl
c3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMzAxKQorICAgIHRocm93
ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworaWYg
KHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQg
dmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKK2lmIChyZXN1bHQudmFsdWVzWzNdICE9
PSAxMDEpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1szXTogIiArIHJlc3Vs
dC52YWx1ZXNbM107CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZnRsLWNhbGwtZXhjZXB0aW9uLW5vLWNhdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwtZXhjZXB0aW9uLW5vLWNhdGNoLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2Fs
bC1leGNlcHRpb24tbm8tY2F0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAor
ZnVuY3Rpb24gZm9vKGYsIHApIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0g
MTAxOworICAgIHggPSAxMDI7CisgICAgcCA9IDEwMzsKKyAgICByZXN1bHQgPSBmKCk7CisgICAg
ZiA9IDEwNDsKKyAgICBwID0gMTA1OworICAgIHggPSAxMDY7CisgICAgcmV0dXJuIHtvdXRjb21l
OiAicmV0dXJuIiwgdmFsdWVzOiBbZiwgcCwgeCwgcmVzdWx0XX07Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2Z1bmN0aW9uIGJhcigpIHsKKyAgICByZXR1cm4gMTA3OworfQorCitub0lubGluZShi
YXIpOworCisvLyBXYXJtIHVwIGZvbygpLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmFyKTsKKyAgICBpZiAocmVzdWx0Lm91dGNvbWUg
IT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG91dGNvbWU6
ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDQp
CisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiAr
IHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlmIChyZXN1bHQudmFsdWVzWzBdICE9PSAxMDQp
CisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0
LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMTA1KQorICAgICAgICB0
aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07
CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwNikKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFsdWVzWzJdOworICAgIGlmIChy
ZXN1bHQudmFsdWVzWzNdICE9PSAxMDcpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgdmFsdWVzWzNdOiAiICsgcmVzdWx0LnZhbHVlc1szXTsKK30KKworLy8gTm93IHRocm93IGFu
IGV4Y2VwdGlvbi4KK3ZhciByZXN1bHQ7Cit0cnkgeworICAgIGJhciA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICB0aHJvdyAiRXJyb3I0MiI7CisgICAgfQorICAgIHZhciByZXN1bHQgPSBmb28oYmFy
LCAxMDgpOworfSBjYXRjaCAoZSkgeworICAgIGlmIChlICE9ICJFcnJvcjQyIikKKyAgICAgICAg
dGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIGV4Y2VwdGlvbjogIiArIGU7CisgICAgcmVzdWx0ID0g
e291dGNvbWU6ICJleGNlcHRpb24ifTsKK30KK2lmIChyZXN1bHQub3V0Y29tZSAhPT0gImV4Y2Vw
dGlvbiIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQu
b3V0Y29tZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNh
bGwtZXhjZXB0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZnRsLWNhbGwtZXhjZXB0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC1leGNlcHRpb24uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw1OSBAQAorZnVuY3Rpb24gZm9vKGYsIHAsIGFyZ3MpIHsKKyAgICB2
YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHRyeSB7CisgICAgICAgIHgg
PSAxMDI7CisgICAgICAgIHAgPSAxMDM7CisgICAgICAgIHJlc3VsdCA9IGYuYXBwbHkodGhpcywg
YXJncyk7CisgICAgICAgIGYgPSAxMDQ7CisgICAgICAgIHAgPSAxMDU7CisgICAgICAgIHggPSAx
MDY7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4ge291dGNvbWU6ICJleGNlcHRp
b24iLCB2YWx1ZXM6IFtmLCBwLCB4LCByZXN1bHRdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRj
b21lOiAicmV0dXJuIiwgdmFsdWVzOiBbZiwgcCwgeCwgcmVzdWx0XX07Cit9CisKK25vSW5saW5l
KGZvbyk7CisKK2Z1bmN0aW9uIGJhcihhLCBiLCBjKSB7CisgICAgcmV0dXJuIGEgKyBiICsgYzsK
K30KKworbm9JbmxpbmUoYmFyKTsKKworLy8gV2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhciwgbnVsbCwgWzEw
NSwgMSwgMV0pOworICAgIGlmIChyZXN1bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAg
IHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOwor
ICAgIGlmIChyZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7
CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9y
IGluIGxvb3A6IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChy
ZXN1bHQudmFsdWVzWzFdICE9PSAxMDUpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVl
c1syXSAhPT0gMTA2KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sy
XTogIiArIHJlc3VsdC52YWx1ZXNbMl07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEw
NykKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1
bHQudmFsdWVzWzNdOworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9uLgorYmFyID0gZnVu
Y3Rpb24oKSB7CisgICAgdGhyb3cgIkVycm9yNDIiOworfQordmFyIHJlc3VsdCA9IGZvbyhiYXIs
IDEwOCwgWzEwNSwgMSwgMV0pOworaWYgKHJlc3VsdC5vdXRjb21lICE9PSAiZXhjZXB0aW9uIikK
KyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21l
OworaWYgKHJlc3VsdC52YWx1ZXMubGVuZ3RoICE9PSA0KQorICAgIHRocm93ICJFcnJvciBhdCBl
bmQ6IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CitpZiAo
cmVzdWx0LnZhbHVlc1swXSAhPT0gYmFyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2
YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09
IDEwMykKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0
LnZhbHVlc1sxXTsKK2lmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDIpCisgICAgdGhyb3cgIkVy
cm9yIGF0IGVuZDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07CitpZiAocmVz
dWx0LnZhbHVlc1szXSAhPT0gMTAxKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1
ZXNbM106ICIgKyByZXN1bHQudmFsdWVzWzNdOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtYmFkLWFyZ3MtZXhjZXB0aW9uLWludGVy
ZXN0aW5nLWxpdmUtc3RhdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWJhZC1hcmdzLWV4Y2VwdGlvbi1pbnRlcmVz
dGluZy1saXZlLXN0YXRlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWJhZC1hcmdzLWV4Y2VwdGlvbi1pbnRlcmVz
dGluZy1saXZlLXN0YXRlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKK2Z1bmN0
aW9uIGZvbyhmLCBwLCBhcmdzKSB7CisgICAgdmFyIHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9
IDEwMTsKKyAgICB2YXIgcGYgPSBwLmc7CisgICAgdHJ5IHsKKyAgICAgICAgeCA9IDEwMjsKKyAg
ICAgICAgcGYrKzsKKyAgICAgICAgcmVzdWx0ID0gZi5hcHBseSh0aGlzLCBhcmdzKTsKKyAgICAg
ICAgZiA9IDEwNDsKKyAgICAgICAgcGYrKzsKKyAgICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIHJldHVybiB7b3V0Y29tZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW2Ys
IHBmLCB4LCByZXN1bHRdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwg
dmFsdWVzOiBbZiwgcGYsIHgsIHJlc3VsdF19OworfQorCitub0lubGluZShmb28pOworCitmdW5j
dGlvbiBiYXIoYSwgYiwgYykgeworICAgIHJldHVybiBhICsgYiArIGM7Cit9CisKK25vSW5saW5l
KGJhcik7CisKKy8vIFdhcm0gdXAgZm9vKCkuCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXIsIHtnOjIwMH0sIFsxMDUsIDEsIDFdKTsK
KyAgICBpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAiRXJy
b3IgaW4gbG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAocmVz
dWx0LnZhbHVlcy5sZW5ndGggIT09IDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlmIChy
ZXN1bHQudmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBi
YWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZhbHVl
c1sxXSAhPT0gMjAyKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sx
XTogIiArIHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEw
NikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1
bHQudmFsdWVzWzJdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzNdICE9PSAxMDcpCisgICAgICAg
IHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzNdOiAiICsgcmVzdWx0LnZhbHVlc1sz
XTsKK30KKworLy8gTm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK3ZhciByZXN1bHQgPSBmb28oYmFy
LCB7ZzozMDB9LCA0Mik7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAg
IHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7Citp
ZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDQpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDog
YmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKK2lmIChyZXN1
bHQudmFsdWVzWzBdICE9PSBiYXIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVl
c1swXTogIiArIHJlc3VsdC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMzAx
KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFs
dWVzWzFdOworaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3Ig
YXQgZW5kOiBiYWQgdmFsdWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKK2lmIChyZXN1bHQu
dmFsdWVzWzNdICE9PSAxMDEpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1sz
XTogIiArIHJlc3VsdC52YWx1ZXNbM107CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1iYWQtY2FsbGVlLWV4Y2VwdGlvbi1pbnRlcmVz
dGluZy1saXZlLXN0YXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZnRsLWNhbGwtdmFyYXJncy1iYWQtY2FsbGVlLWV4Y2VwdGlvbi1pbnRlcmVz
dGluZy1saXZlLXN0YXRlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWJhZC1jYWxsZWUtZXhjZXB0aW9uLWludGVy
ZXN0aW5nLWxpdmUtc3RhdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorZnVu
Y3Rpb24gZm9vKGYsIHAsIGFyZ3MpIHsKKyAgICB2YXIgeCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0
ID0gMTAxOworICAgIHZhciBwZiA9IHAuZzsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAyOwor
ICAgICAgICBwZisrOworICAgICAgICByZXN1bHQgPSBmLmFwcGx5KHRoaXMsIGFyZ3MpOworICAg
ICAgICBmID0gMTA0OworICAgICAgICBwZisrOworICAgICAgICB4ID0gMTA2OworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIHtvdXRjb21lOiAiZXhjZXB0aW9uIiwgdmFsdWVzOiBb
ZiwgcGYsIHgsIHJlc3VsdF19OworICAgIH0KKyAgICByZXR1cm4ge291dGNvbWU6ICJyZXR1cm4i
LCB2YWx1ZXM6IFtmLCBwZiwgeCwgcmVzdWx0XX07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1
bmN0aW9uIGJhcihhLCBiLCBjKSB7CisgICAgcmV0dXJuIGEgKyBiICsgYzsKK30KKworbm9Jbmxp
bmUoYmFyKTsKKworLy8gV2FybSB1cCBmb28oKS4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhciwge2c6MjAwfSwgWzEwNSwgMSwgMV0p
OworICAgIGlmIChyZXN1bHQub3V0Y29tZSAhPT0gInJldHVybiIpCisgICAgICAgIHRocm93ICJF
cnJvciBpbiBsb29wOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworICAgIGlmIChy
ZXN1bHQudmFsdWVzLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6
IGJhZCBudW1iZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CisgICAgaWYg
KHJlc3VsdC52YWx1ZXNbMF0gIT09IDEwNCkKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6
IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworICAgIGlmIChyZXN1bHQudmFs
dWVzWzFdICE9PSAyMDIpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVz
WzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1syXSAhPT0g
MTA2KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1syXTogIiArIHJl
c3VsdC52YWx1ZXNbMl07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbM10gIT09IDEwNykKKyAgICAg
ICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFsdWVz
WzNdOworfQorCisvLyBOb3cgdGhyb3cgYW4gZXhjZXB0aW9uLgordmFyIHJlc3VsdCA9IGZvbygi
aGVsbG8iLCB7ZzozMDB9LCBbMTA1LCAxLCAxXSk7CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJl
eGNlcHRpb24iKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVz
dWx0Lm91dGNvbWU7CitpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDQpCisgICAgdGhyb3cg
IkVycm9yIGF0IGVuZDogYmFkIG51bWJlciBvZiB2YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxl
bmd0aDsKK2lmIChyZXN1bHQudmFsdWVzWzBdICE9PSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJv
ciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMF06ICIgKyByZXN1bHQudmFsdWVzWzBdOworaWYgKHJlc3Vs
dC52YWx1ZXNbMV0gIT09IDMwMSkKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVz
WzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsKK2lmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDIp
CisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1
ZXNbMl07CitpZiAocmVzdWx0LnZhbHVlc1szXSAhPT0gMTAxKQorICAgIHRocm93ICJFcnJvciBh
dCBlbmQ6IGJhZCB2YWx1ZXNbM106ICIgKyByZXN1bHQudmFsdWVzWzNdOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9u
LWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWV4Y2VwdGlvbi1pbnRlcmVzdGlu
Zy1saXZlLXN0YXRlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1saXZlLXN0
YXRlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKK2Z1bmN0aW9uIGZvbyhmLCBw
LCBhcmdzKSB7CisgICAgdmFyIHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB2
YXIgcGYgPSBwLmc7CisgICAgdHJ5IHsKKyAgICAgICAgeCA9IDEwMjsKKyAgICAgICAgcGYrKzsK
KyAgICAgICAgcmVzdWx0ID0gZi5hcHBseSh0aGlzLCBhcmdzKTsKKyAgICAgICAgZiA9IDEwNDsK
KyAgICAgICAgcGYrKzsKKyAgICAgICAgeCA9IDEwNjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIHJldHVybiB7b3V0Y29tZTogImV4Y2VwdGlvbiIsIHZhbHVlczogW2YsIHBmLCB4LCByZXN1
bHRdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBbZiwg
cGYsIHgsIHJlc3VsdF19OworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiBiYXIoYSwg
YiwgYykgeworICAgIHJldHVybiBhICsgYiArIGM7Cit9CisKK25vSW5saW5lKGJhcik7CisKKy8v
IFdhcm0gdXAgZm9vKCkuCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyhiYXIsIHtnOjIwMH0sIFsxMDUsIDEsIDFdKTsKKyAgICBpZiAocmVz
dWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDog
YmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAocmVzdWx0LnZhbHVlcy5s
ZW5ndGggIT09IDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgbnVtYmVyIG9m
IHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlmIChyZXN1bHQudmFsdWVz
WzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzBd
OiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMjAy
KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sxXTogIiArIHJlc3Vs
dC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwNikKKyAgICAgICAg
dGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFsdWVzWzJd
OworICAgIGlmIChyZXN1bHQudmFsdWVzWzNdICE9PSAxMDcpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgdmFsdWVzWzNdOiAiICsgcmVzdWx0LnZhbHVlc1szXTsKK30KKworLy8g
Tm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK2JhciA9IGZ1bmN0aW9uKCkgeworICAgIHRocm93ICJF
cnJvcjQyIjsKK30KK3ZhciByZXN1bHQgPSBmb28oYmFyLCB7ZzozMDB9LCBbMTA1LCAxLCAxXSk7
CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAgIHRocm93ICJFcnJvciBh
dCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CitpZiAocmVzdWx0LnZhbHVl
cy5sZW5ndGggIT09IDQpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIG51bWJlciBvZiB2
YWx1ZXM6ICIgKyByZXN1bHQudmFsdWVzLmxlbmd0aDsKK2lmIChyZXN1bHQudmFsdWVzWzBdICE9
PSBiYXIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1swXTogIiArIHJlc3Vs
dC52YWx1ZXNbMF07CitpZiAocmVzdWx0LnZhbHVlc1sxXSAhPT0gMzAxKQorICAgIHRocm93ICJF
cnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMV06ICIgKyByZXN1bHQudmFsdWVzWzFdOworaWYgKHJl
c3VsdC52YWx1ZXNbMl0gIT09IDEwMikKKyAgICB0aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFs
dWVzWzJdOiAiICsgcmVzdWx0LnZhbHVlc1syXTsKK2lmIChyZXN1bHQudmFsdWVzWzNdICE9PSAx
MDEpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDogYmFkIHZhbHVlc1szXTogIiArIHJlc3VsdC52
YWx1ZXNbM107CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRs
LWNhbGwtdmFyYXJncy1leGNlcHRpb24tbm8tY2F0Y2guanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2FsbC12YXJhcmdzLWV4Y2VwdGlvbi1u
by1jYXRjaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZnRsLWNhbGwtdmFyYXJncy1leGNlcHRpb24tbm8tY2F0Y2guanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MSBAQAorZnVuY3Rpb24gZm9vKGYsIHAsIGFyZ3MpIHsKKyAgICB2YXIg
eCA9IDEwMDsKKyAgICB2YXIgcmVzdWx0ID0gMTAxOworICAgIHggPSAxMDI7CisgICAgcCA9IDEw
MzsKKyAgICByZXN1bHQgPSBmLmFwcGx5KHRoaXMsIGFyZ3MpOworICAgIGYgPSAxMDQ7CisgICAg
cCA9IDEwNTsKKyAgICB4ID0gMTA2OworICAgIHJldHVybiB7b3V0Y29tZTogInJldHVybiIsIHZh
bHVlczogW2YsIHAsIHgsIHJlc3VsdF19OworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlv
biBiYXIoYSwgYiwgYykgeworICAgIHJldHVybiBhICsgYiArIGM7Cit9CisKK25vSW5saW5lKGJh
cik7CisKKy8vIFdhcm0gdXAgZm9vKCkuCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXIsIG51bGwsIFsxMDUsIDEsIDFdKTsKKyAgICBp
ZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4g
bG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsKKyAgICBpZiAocmVzdWx0LnZh
bHVlcy5sZW5ndGggIT09IDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgbnVt
YmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3RoOworICAgIGlmIChyZXN1bHQu
dmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFs
dWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAocmVzdWx0LnZhbHVlc1sxXSAh
PT0gMTA1KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIHZhbHVlc1sxXTogIiAr
IHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1ZXNbMl0gIT09IDEwNikKKyAg
ICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNbMl06ICIgKyByZXN1bHQudmFs
dWVzWzJdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzNdICE9PSAxMDcpCisgICAgICAgIHRocm93
ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzNdOiAiICsgcmVzdWx0LnZhbHVlc1szXTsKK30K
KworLy8gTm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK3ZhciByZXN1bHQ7Cit0cnkgeworICAgIGJh
ciA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiRXJyb3I0MiI7CisgICAgfQorICAgIHZh
ciByZXN1bHQgPSBmb28oYmFyLCAxMDgsIFsxMDUsIDEsIDFdKTsKK30gY2F0Y2ggKGUpIHsKKyAg
ICBpZiAoZSAhPSAiRXJyb3I0MiIpCisgICAgICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBl
eGNlcHRpb246ICIgKyBlOworICAgIHJlc3VsdCA9IHtvdXRjb21lOiAiZXhjZXB0aW9uIn07Cit9
CitpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJleGNlcHRpb24iKQorICAgIHRocm93ICJFcnJvciBh
dCBlbmQ6IGJhZCBvdXRjb21lOiAiICsgcmVzdWx0Lm91dGNvbWU7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNhbGwt
dmFyYXJncy1leGNlcHRpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1jYWxsLXZhcmFyZ3MtZXhjZXB0aW9uLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNTkgQEAKK2Z1bmN0aW9uIGZvbyhmLCBwKSB7CisgICAgdmFyIHggPSAx
MDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB0cnkgeworICAgICAgICB4ID0gMTAyOwor
ICAgICAgICBwID0gMTAzOworICAgICAgICByZXN1bHQgPSBmKCk7CisgICAgICAgIGYgPSAxMDQ7
CisgICAgICAgIHAgPSAxMDU7CisgICAgICAgIHggPSAxMDY7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICByZXR1cm4ge291dGNvbWU6ICJleGNlcHRpb24iLCB2YWx1ZXM6IFtmLCBwLCB4LCBy
ZXN1bHRdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBb
ZiwgcCwgeCwgcmVzdWx0XX07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIGJhcigp
IHsKKyAgICByZXR1cm4gMTA3OworfQorCitub0lubGluZShiYXIpOworCisvLyBXYXJtIHVwIGZv
bygpLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQg
PSBmb28oYmFyKTsKKyAgICBpZiAocmVzdWx0Lm91dGNvbWUgIT09ICJyZXR1cm4iKQorICAgICAg
ICB0aHJvdyAiRXJyb3IgaW4gbG9vcDogYmFkIG91dGNvbWU6ICIgKyByZXN1bHQub3V0Y29tZTsK
KyAgICBpZiAocmVzdWx0LnZhbHVlcy5sZW5ndGggIT09IDQpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgbnVtYmVyIG9mIHZhbHVlczogIiArIHJlc3VsdC52YWx1ZXMubGVuZ3Ro
OworICAgIGlmIChyZXN1bHQudmFsdWVzWzBdICE9PSAxMDQpCisgICAgICAgIHRocm93ICJFcnJv
ciBpbiBsb29wOiBiYWQgdmFsdWVzWzBdOiAiICsgcmVzdWx0LnZhbHVlc1swXTsKKyAgICBpZiAo
cmVzdWx0LnZhbHVlc1sxXSAhPT0gMTA1KQorICAgICAgICB0aHJvdyAiRXJyb3IgaW4gbG9vcDog
YmFkIHZhbHVlc1sxXTogIiArIHJlc3VsdC52YWx1ZXNbMV07CisgICAgaWYgKHJlc3VsdC52YWx1
ZXNbMl0gIT09IDEwNikKKyAgICAgICAgdGhyb3cgIkVycm9yIGluIGxvb3A6IGJhZCB2YWx1ZXNb
Ml06ICIgKyByZXN1bHQudmFsdWVzWzJdOworICAgIGlmIChyZXN1bHQudmFsdWVzWzNdICE9PSAx
MDcpCisgICAgICAgIHRocm93ICJFcnJvciBpbiBsb29wOiBiYWQgdmFsdWVzWzNdOiAiICsgcmVz
dWx0LnZhbHVlc1szXTsKK30KKworLy8gTm93IHRocm93IGFuIGV4Y2VwdGlvbi4KK2JhciA9IGZ1
bmN0aW9uKCkgeworICAgIHRocm93ICJFcnJvcjQyIjsKK30KK3ZhciByZXN1bHQgPSBmb28oYmFy
LCAxMDgpOworaWYgKHJlc3VsdC5vdXRjb21lICE9PSAiZXhjZXB0aW9uIikKKyAgICB0aHJvdyAi
RXJyb3IgYXQgZW5kOiBiYWQgb3V0Y29tZTogIiArIHJlc3VsdC5vdXRjb21lOworaWYgKHJlc3Vs
dC52YWx1ZXMubGVuZ3RoICE9PSA0KQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCBudW1i
ZXIgb2YgdmFsdWVzOiAiICsgcmVzdWx0LnZhbHVlcy5sZW5ndGg7CitpZiAocmVzdWx0LnZhbHVl
c1swXSAhPT0gYmFyKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbMF06ICIg
KyByZXN1bHQudmFsdWVzWzBdOworaWYgKHJlc3VsdC52YWx1ZXNbMV0gIT09IDEwMykKKyAgICB0
aHJvdyAiRXJyb3IgYXQgZW5kOiBiYWQgdmFsdWVzWzFdOiAiICsgcmVzdWx0LnZhbHVlc1sxXTsK
K2lmIChyZXN1bHQudmFsdWVzWzJdICE9PSAxMDIpCisgICAgdGhyb3cgIkVycm9yIGF0IGVuZDog
YmFkIHZhbHVlc1syXTogIiArIHJlc3VsdC52YWx1ZXNbMl07CitpZiAocmVzdWx0LnZhbHVlc1sz
XSAhPT0gMTAxKQorICAgIHRocm93ICJFcnJvciBhdCBlbmQ6IGJhZCB2YWx1ZXNbM106ICIgKyBy
ZXN1bHQudmFsdWVzWzNdOworCg==
</data>
<flag name="review"
          id="293471"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>