<?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>179677</bug_id>
          
          <creation_ts>2017-11-14 11:08:57 -0800</creation_ts>
          <short_desc>webkitpy: Standardize Version representation</short_desc>
          <delta_ts>2017-11-28 11:10:49 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=179426</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1371456</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-11-14 11:08:57 -0800</bug_when>
    <thetext>Currently, we construct versions as strings, integers, lists and tuples.  We should standardize these representations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371461</commentid>
    <comment_count>1</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-11-14 11:12:15 -0800</bug_when>
    <thetext>As mentioned in &lt;https://bugs.webkit.org/show_bug.cgi?id=179426&gt;, I think we should standardize the string representation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375212</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-27 16:29:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/35711277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375223</commentid>
    <comment_count>3</comment_count>
      <attachid>327717</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-11-27 16:55:44 -0800</bug_when>
    <thetext>Created attachment 327717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375426</commentid>
    <comment_count>4</comment_count>
      <attachid>327717</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-28 11:10:47 -0800</bug_when>
    <thetext>Comment on attachment 327717
Patch

Clearing flags on attachment: 327717

Committed r225229: &lt;https://trac.webkit.org/changeset/225229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375427</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-28 11:10:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327717</attachid>
            <date>2017-11-27 16:55:44 -0800</date>
            <delta_ts>2017-11-28 11:10:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179677-20171127165543.patch</filename>
            <type>text/plain</type>
            <size>32243</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyNTIwNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDcwIEBACisyMDE3LTExLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhbmRhcmRpemUgVmVyc2lvbiByZXByZXNlbnRhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5Njc3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTcxMTI3Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFuZGFyZGl6ZSBhIHNpbmdsZSBtZXRob2Qg
b2YgcmVwcmVzZW50aW5nIHZlcnNpb25zIGluIHRoZSBWZXJzaW9uIG9iamVjdAorICAgICAgICBj
b25zdHJ1Y3Rvci4gUHJvdmlkZSBzdGF0aWMgbWV0aG9kcyBmb3IgY29udmVydGluZyBzdHJpbmcg
YW5kIGxpc3RzL3R1cGxlcworICAgICAgICB0byBWZXJzaW9uIG9iamVjdHMuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5OgorICAgICAg
ICAoUGxhdGZvcm1JbmZvLl9faW5pdF9fKTogUGFyc2UgVmVyc2lvbiBvYmplY3QgZnJvbSBzdHJp
bmcgaW5zdGVhZCBvZiB1c2luZworICAgICAgICB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIChQ
bGF0Zm9ybUluZm8ueGNvZGVfc2RrX3ZlcnNpb24pOiBEaXR0by4KKyAgICAgICAgKFBsYXRmb3Jt
SW5mby54Y29kZV92ZXJzaW9uKTogRGl0dG8uCisgICAgICAgIChQbGF0Zm9ybUluZm8uX3dpbl92
ZXJzaW9uKTogQ29uc3RydWN0IFZlcnNpb24gb2JqZWN0IGZyb20gbGlzdC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHk6CisgICAg
ICAgIChNb2NrUGxhdGZvcm1JbmZvLnhjb2RlX3Nka192ZXJzaW9uKToKKyAgICAgICAgKE1vY2tQ
bGF0Zm9ybUluZm8ueGNvZGVfdmVyc2lvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vdmVyc2lvbi5weToKKyAgICAgICAgKFZlcnNpb24pOgorICAgICAgICAoVmVyc2lvbi5m
cm9tX3N0cmluZyk6IFBhcnNlIHN0cmluZyBvZiB0aGUgZm9ybSAneC54LngnLgorICAgICAgICAo
VmVyc2lvbi5mcm9tX2l0ZXJhYmxlKTogQ29uc3RydWN0IGEgdmVyc2lvbiBvYmplY3QgZnJvbSBh
IGxpc3QsIHR1cGxlIG9yCisgICAgICAgIG90aGVyIGluZGV4YWJsZSBvYmplY3QuCisgICAgICAg
IChWZXJzaW9uLl9faW5pdF9fKTogQ29uc3RydWN0IGEgVmVyc2lvbiBvYmplY3QgZnJvbSBpbnRl
Z2Vycy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFw
LnB5OgorICAgICAgICAoVmVyc2lvbk5hbWVNYXAuX19pbml0X18pOiBVc2UgaW50ZWdlciBWZXJz
aW9uIGNvbnN0cnVjdG9yLgorICAgICAgICAoVmVyc2lvbk5hbWVNYXAuX2F1dG9tYXBfdG9fbWFq
b3JfdmVyc2lvbik6IERpdHRvLgorICAgICAgICAoVmVyc2lvbk5hbWVNYXAudG9fbmFtZSk6Cisg
ICAgICAgIChWZXJzaW9uTmFtZU1hcC5zdHJpcF9uYW1lX2Zvcm1hdHRpbmcpOiBDb25zdHJ1Y3Qg
VmVyc2lvbiBmcm9tIHN0cmluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92
ZXJzaW9uX25hbWVfbWFwX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVmVyc2lvbk1hcFRlc3RDYXNl
LnRlc3RfbWFjX3ZlcnNpb25fYnlfbmFtZSk6IFVzZSBpbnRlZ2VyIFZlcnNpb24gY29uc3RydWN0
b3IuCisgICAgICAgIChWZXJzaW9uTWFwVGVzdENhc2UudGVzdF9tYWNfbmFtZV9ieV92ZXJzaW9u
KTogRGl0dG8uCisgICAgICAgIChWZXJzaW9uTWFwVGVzdENhc2UudGVzdF9pb3NfbmFtZV9ieV92
ZXJzaW9uKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vdmVyc2lv
bl91bml0dGVzdC5weToKKyAgICAgICAgKFZlcnNpb25UZXN0Q2FzZS50ZXN0X3N0cmluZ19jb25z
dHJ1Y3Rvcik6CisgICAgICAgIChWZXJzaW9uVGVzdENhc2UudGVzdF9mcm9tX2xpc3QpOgorICAg
ICAgICAoVmVyc2lvblRlc3RDYXNlLnRlc3RfZnJvbV90dXBsZSk6CisgICAgICAgIChWZXJzaW9u
VGVzdENhc2UudGVzdF9pbnRfY29uc3RydWN0b3IpOgorICAgICAgICAoVmVyc2lvblRlc3RDYXNl
LnRlc3RfbGVuKToKKyAgICAgICAgKFZlcnNpb25UZXN0Q2FzZS50ZXN0X3NldF9ieV9pbnQpOgor
ICAgICAgICAoVmVyc2lvblRlc3RDYXNlLnRlc3Rfc2V0X2J5X3N0cmluZyk6CisgICAgICAgIChW
ZXJzaW9uVGVzdENhc2UudGVzdF9nZXRfYnlfaW50KToKKyAgICAgICAgKFZlcnNpb25UZXN0Q2Fz
ZS50ZXN0X2dldF9ieV9zdHJpbmcpOgorICAgICAgICAoVmVyc2lvblRlc3RDYXNlLnRlc3Rfc3Ry
aW5nKToKKyAgICAgICAgKFZlcnNpb25UZXN0Q2FzZS50ZXN0X2NvbnRhaW5lZF9pbik6CisgICAg
ICAgIChWZXJzaW9uVGVzdENhc2UudGVzdF9jb21wYXJlX3ZlcnNpb25zKToKKyAgICAgICAgKFZl
cnNpb25UZXN0Q2FzZS50ZXN0X2xpc3RfY29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAo
VmVyc2lvblRlc3RDYXNlLnRlc3RfdHVwbGVfY29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAg
ICAoVmVyc2lvblRlc3RDYXNlLnRlc3RfY29weV9jb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAg
ICAgIChWZXJzaW9uVGVzdENhc2UudGVzdF9ub25lX2NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5OgorICAgICAgICAoSU9TUG9ydC5k
ZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKTogSGFuZGxlIGNhc2Ugd2hlcmUgaW9zX3ZlcnNp
b24gaXMgTm9uZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zX2RldmljZS5w
eToKKyAgICAgICAgKElPU0RldmljZVBvcnQuaW9zX3ZlcnNpb24pOiBSZXR1cm4gTm9uZSByYXRo
ZXIgdGhhbiBhbiBlbXB0eSB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9pb3Nfc2ltdWxhdG9yLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5zaW11bGF0b3Jf
cnVudGltZSk6IFBhcnNlIFZlcnNpb24gb2JqZWN0IGZyb20gc3RyaW5nIGluc3RlYWQKKyAgICAg
ICAgb2YgdXNpbmcgdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5p
b3NfdmVyc2lvbik6IFJldHVybiBOb25lIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlcnNpb24uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0b3IucHk6CisgICAgICAgIChT
aW11bGF0b3IuX3BhcnNlX3J1bnRpbWVzKTogUGFyc2UgVmVyc2lvbiBvYmplY3QgZnJvbSBzdHJp
bmcgaW5zdGVhZCBvZiB1c2luZworICAgICAgICB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIChT
aW11bGF0b3IuX3BhcnNlX2RldmljZXMpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3hjb2RlL3NpbXVsYXRvcl91bml0dGVzdC5weToKKwogMjAxNy0xMS0yNyAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IEJldHRlciBu
YW1lLXZlcnNpb24gbWFwcGluZyAoUGFydCAxKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vdmVyc2lvbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi92ZXJzaW9uLnB5CShyZXZpc2lvbiAyMjUyMDApCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi92ZXJzaW9uLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNSwyNiArMjUsMjQg
QEAgaW1wb3J0IGNvbGxlY3Rpb25zCiAKIGNsYXNzIFZlcnNpb24ob2JqZWN0KToKIAotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB2ZXI9JzAnKToKLSAgICAgICAgc2VsZi5tYWpvciA9IDAKLSAgICAg
ICAgc2VsZi5taW5vciA9IDAKLSAgICAgICAgc2VsZi50aW55ID0gMAotICAgICAgICBzZWxmLm1p
Y3JvID0gMAotICAgICAgICBzZWxmLm5hbm8gPSAwCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodmVy
LCBpbnQpOgotICAgICAgICAgICAgc2VsZi5tYWpvciA9IHZlcgotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2ZXIsIHN0cikgb3IgaXNpbnN0YW5jZSh2ZXIsIHVu
aWNvZGUpOgotICAgICAgICAgICAgZm9yIGkgaW4geHJhbmdlKGxlbih2ZXIuc3BsaXQoJy4nKSkp
OgotICAgICAgICAgICAgICAgIHNlbGZbaV0gPSB2ZXIuc3BsaXQoJy4nKVtpXQotICAgICAgICAg
ICAgcmV0dXJuCi0gICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2ZXIsIFZlcnNpb24pIG9yIGlzaW5z
dGFuY2UodmVyLCBjb2xsZWN0aW9ucy5JdGVyYWJsZSk6Ci0gICAgICAgICAgICBmb3IgaSBpbiB4
cmFuZ2UobGVuKHZlcikpOgotICAgICAgICAgICAgICAgIHNlbGZbaV0gPSB2ZXJbaV0KLSAgICAg
ICAgICAgIHJldHVybgotICAgICAgICBlbGlmIHZlciBpcyBOb25lOgotICAgICAgICAgICAgcmV0
dXJuICAjIEVtcHR5IHZlcnNpb24gaXMgaW1wbGljaXRseSB6ZXJvCi0gICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ1ZlcnNpb24gZXhwZWN0ZWQgdG8gYmUgc3RyaW5nLCBpbnRlZ2VyLCB0dXBsZSBv
ciBsaXN0IG9mIGludGVnZXJzJykKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGZyb21fc3Ry
aW5nKHN0cmluZyk6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHN0cmluZywgc3RyKSBvciBp
c2luc3RhbmNlKHN0cmluZywgdW5pY29kZSkKKyAgICAgICAgcmV0dXJuIFZlcnNpb24uZnJvbV9p
dGVyYWJsZShzdHJpbmcuc3BsaXQoJy4nKSkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg
ZnJvbV9pdGVyYWJsZSh2YWwpOgorICAgICAgICByZXN1bHQgPSBWZXJzaW9uKCkKKyAgICAgICAg
Zm9yIGkgaW4geHJhbmdlKGxlbih2YWwpKToKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IGludCh2
YWxbaV0pCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBt
YWpvcj0wLCBtaW5vcj0wLCB0aW55PTAsIG1pY3JvPTAsIG5hbm89MCk6CisgICAgICAgIHNlbGYu
bWFqb3IgPSBpbnQobWFqb3IpCisgICAgICAgIHNlbGYubWlub3IgPSBpbnQobWlub3IpCisgICAg
ICAgIHNlbGYudGlueSA9IGludCh0aW55KQorICAgICAgICBzZWxmLm1pY3JvID0gaW50KG1pY3Jv
KQorICAgICAgICBzZWxmLm5hbm8gPSBpbnQobmFubykKIAogICAgIGRlZiBfX2xlbl9fKHNlbGYp
OgogICAgICAgICByZXR1cm4gNQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dmVyc2lvbl9uYW1lX21hcC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CShyZXZpc2lvbiAyMjUyMDApCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC00MywzNCArNDMsMzQgQEAgY2xhc3MgVmVyc2lvbk5hbWVNYXAob2JqZWN0KToKICAgICAg
ICAgc2VsZi5kZWZhdWx0X3N5c3RlbV9wbGF0Zm9ybSA9IHBsYXRmb3JtLm9zX25hbWUKICAgICAg
ICAgc2VsZi5tYXBwaW5nWydwdWJsaWMnXSA9IHsKICAgICAgICAgICAgICdtYWMnOiB7Ci0gICAg
ICAgICAgICAgICAgJ0xlb3BhcmQnOiBWZXJzaW9uKCcxMC41JyksCi0gICAgICAgICAgICAgICAg
J1Nub3cgTGVvcGFyZCc6IFZlcnNpb24oJzEwLjYnKSwKLSAgICAgICAgICAgICAgICAnTGlvbic6
IFZlcnNpb24oJzEwLjcnKSwKLSAgICAgICAgICAgICAgICAnTW91bnRhaW4gTGlvbic6IFZlcnNp
b24oJzEwLjgnKSwKLSAgICAgICAgICAgICAgICAnTWF2ZXJpY2tzJzogVmVyc2lvbignMTAuOScp
LAotICAgICAgICAgICAgICAgICdZb3NlbWl0ZSc6IFZlcnNpb24oJzEwLjEwJyksCi0gICAgICAg
ICAgICAgICAgJ0VsIENhcGl0YW4nOiBWZXJzaW9uKCcxMC4xMScpLAotICAgICAgICAgICAgICAg
ICdTaWVycmEnOiBWZXJzaW9uKCcxMC4xMicpLAotICAgICAgICAgICAgICAgICdIaWdoIFNpZXJy
YSc6IFZlcnNpb24oJzEwLjEzJyksCi0gICAgICAgICAgICAgICAgJ0Z1dHVyZSc6IFZlcnNpb24o
JzEwLjE0JyksCisgICAgICAgICAgICAgICAgJ0xlb3BhcmQnOiBWZXJzaW9uKDEwLCA1KSwKKyAg
ICAgICAgICAgICAgICAnU25vdyBMZW9wYXJkJzogVmVyc2lvbigxMCwgNiksCisgICAgICAgICAg
ICAgICAgJ0xpb24nOiBWZXJzaW9uKDEwLCA3KSwKKyAgICAgICAgICAgICAgICAnTW91bnRhaW4g
TGlvbic6IFZlcnNpb24oMTAsIDgpLAorICAgICAgICAgICAgICAgICdNYXZlcmlja3MnOiBWZXJz
aW9uKDEwLCA5KSwKKyAgICAgICAgICAgICAgICAnWW9zZW1pdGUnOiBWZXJzaW9uKDEwLCAxMCks
CisgICAgICAgICAgICAgICAgJ0VsIENhcGl0YW4nOiBWZXJzaW9uKDEwLCAxMSksCisgICAgICAg
ICAgICAgICAgJ1NpZXJyYSc6IFZlcnNpb24oMTAsIDEyKSwKKyAgICAgICAgICAgICAgICAnSGln
aCBTaWVycmEnOiBWZXJzaW9uKDEwLCAxMyksCisgICAgICAgICAgICAgICAgJ0Z1dHVyZSc6IFZl
cnNpb24oMTAsIDE0KSwKICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAnaW9zJzogc2VsZi5f
YXV0b21hcF90b19tYWpvcl92ZXJzaW9uKCdpT1MnLCBtaW5pbXVtPVZlcnNpb24oJzEwJyksIG1h
eGltdW09VmVyc2lvbignMTInKSksCisgICAgICAgICAgICAnaW9zJzogc2VsZi5fYXV0b21hcF90
b19tYWpvcl92ZXJzaW9uKCdpT1MnLCBtaW5pbXVtPVZlcnNpb24oMTApLCBtYXhpbXVtPVZlcnNp
b24oMTIpKSwKICAgICAgICAgICAgICd3aW4nOiB7Ci0gICAgICAgICAgICAgICAgJ1dpbjEwJzog
VmVyc2lvbignMTAnKSwKLSAgICAgICAgICAgICAgICAnOC4xJzogVmVyc2lvbignNi4zJyksCi0g
ICAgICAgICAgICAgICAgJzgnOiBWZXJzaW9uKCc2LjInKSwKLSAgICAgICAgICAgICAgICAnN3Nw
MCc6IFZlcnNpb24oJzYuMS43NjAwJyksCi0gICAgICAgICAgICAgICAgJ1Zpc3RhJzogVmVyc2lv
bignNicpLAotICAgICAgICAgICAgICAgICdYUCc6IFZlcnNpb24oJzUuMScpLAorICAgICAgICAg
ICAgICAgICdXaW4xMCc6IFZlcnNpb24oMTApLAorICAgICAgICAgICAgICAgICc4LjEnOiBWZXJz
aW9uKDYsIDMpLAorICAgICAgICAgICAgICAgICc4JzogVmVyc2lvbig2LCAyKSwKKyAgICAgICAg
ICAgICAgICAnN3NwMCc6IFZlcnNpb24oNiwgMSwgNzYwMCksCisgICAgICAgICAgICAgICAgJ1Zp
c3RhJzogVmVyc2lvbig2KSwKKyAgICAgICAgICAgICAgICAnWFAnOiBWZXJzaW9uKDUsIDEpLAog
ICAgICAgICAgICAgfSwKICAgICAgICAgfQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9h
dXRvbWFwX3RvX21ham9yX3ZlcnNpb24oY2xzLCBwcmVmaXgsIG1pbmltdW09VmVyc2lvbignMScp
LCBtYXhpbXVtPVZlcnNpb24oJzEnKSk6CisgICAgZGVmIF9hdXRvbWFwX3RvX21ham9yX3ZlcnNp
b24oY2xzLCBwcmVmaXgsIG1pbmltdW09VmVyc2lvbigxKSwgbWF4aW11bT1WZXJzaW9uKDEpKToK
ICAgICAgICAgcmVzdWx0ID0ge30KICAgICAgICAgYXNzZXJ0IG1pbmltdW0gPD0gbWF4aW11bQog
ICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoKG1heGltdW0ubWFqb3IgKyAxKSAtIG1pbmltdW0ubWFq
b3IpOgotICAgICAgICAgICAgcmVzdWx0Wyd7fSB7fScuZm9ybWF0KHByZWZpeCwgc3RyKFZlcnNp
b24oc3RyKG1pbmltdW0ubWFqb3IgKyBpKSkpKV0gPSBWZXJzaW9uKHN0cihtaW5pbXVtLm1ham9y
ICsgaSkpCisgICAgICAgICAgICByZXN1bHRbJ3t9IHt9Jy5mb3JtYXQocHJlZml4LCBzdHIoVmVy
c2lvbihtaW5pbXVtLm1ham9yICsgaSkpKV0gPSBWZXJzaW9uKG1pbmltdW0ubWFqb3IgKyBpKQog
ICAgICAgICByZXR1cm4gcmVzdWx0CiAKICAgICBkZWYgdG9fbmFtZShzZWxmLCB2ZXJzaW9uLCBw
bGF0Zm9ybT1Ob25lLCB0YWJsZT0ncHVibGljJyk6CkBAIC03OCw3ICs3OCw2IEBAIGNsYXNzIFZl
cnNpb25OYW1lTWFwKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCB0YWJsZSBpbiBzZWxmLm1hcHBp
bmcKICAgICAgICAgYXNzZXJ0IHBsYXRmb3JtIGluIHNlbGYubWFwcGluZ1t0YWJsZV0KICAgICAg
ICAgY2xvc2VzdF9tYXRjaCA9IChOb25lLCBOb25lKQotICAgICAgICB2ZXJzaW9uID0gVmVyc2lv
bih2ZXJzaW9uKQogICAgICAgICBmb3Igb3NfbmFtZSwgb3NfdmVyc2lvbiBpbiBzZWxmLm1hcHBp
bmdbdGFibGVdW3BsYXRmb3JtXS5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIGlmIHZlcnNpb24g
PT0gb3NfdmVyc2lvbjoKICAgICAgICAgICAgICAgICByZXR1cm4gb3NfbmFtZQpAQCAtOTMsMTMg
KzkyLDEzIEBAIGNsYXNzIFZlcnNpb25OYW1lTWFwKG9iamVjdCk6CiAgICAgICAgICMgPE9TPiBt
YWpvci5taW5vci50aW55IHNob3VsZCBtYXAgdG8gPE9TPiBtYWpvcgogICAgICAgICBpZiAnICcg
aW4gbmFtZToKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBuYW1lID0gJ3t9e30n
LmZvcm1hdCgnJy5qb2luKG5hbWUuc3BsaXQoJyAnKVs6LTFdKSwgVmVyc2lvbihuYW1lLnNwbGl0
KCcgJylbLTFdKS5tYWpvcikKKyAgICAgICAgICAgICAgICBuYW1lID0gJ3t9e30nLmZvcm1hdCgn
Jy5qb2luKG5hbWUuc3BsaXQoJyAnKVs6LTFdKSwgVmVyc2lvbi5mcm9tX3N0cmluZyhuYW1lLnNw
bGl0KCcgJylbLTFdKS5tYWpvcikKICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAg
ICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHRyeToKICAgICAg
ICAgICAgICAgICBzcGxpdCA9IHJlLnNwbGl0KHInXGQnLCBuYW1lKQotICAgICAgICAgICAgICAg
IG5hbWUgPSAne317fScuZm9ybWF0KHNwbGl0WzBdLCBWZXJzaW9uKG5hbWVbKGxlbihzcGxpdCkg
LSAxKTpdKS5tYWpvcikKKyAgICAgICAgICAgICAgICBuYW1lID0gJ3t9e30nLmZvcm1hdChzcGxp
dFswXSwgVmVyc2lvbi5mcm9tX3N0cmluZyhuYW1lWyhsZW4oc3BsaXQpIC0gMSk6XSkubWFqb3Ip
CiAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25fbmFtZV9tYXBfdW5p
dHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdmVy
c2lvbl9uYW1lX21hcF91bml0dGVzdC5weQkocmV2aXNpb24gMjI1MjAwKQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vdmVyc2lvbl9uYW1lX21hcF91bml0dGVzdC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsMTEgKzM2LDExIEBAIGNsYXNzIFZlcnNpb25NYXBUZXN0Q2FzZSh1bml0
dGVzdC5UZXN0Q2EKIAogICAgIGRlZiB0ZXN0X21hY192ZXJzaW9uX2J5X25hbWUoc2VsZik6CiAg
ICAgICAgIG1hcCA9IFZlcnNpb25OYW1lTWFwKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
J21hYycsIFZlcnNpb24oJzEwLjEyJykpLCBtYXAuZnJvbV9uYW1lKCdTaWVycmEnKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgoJ21hYycsIFZlcnNpb24oJzEwLjEyJykpLCBtYXAuZnJvbV9u
YW1lKCdzaWVycmEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoJ21hYycsIFZlcnNpb24o
JzEwLjExJykpLCBtYXAuZnJvbV9uYW1lKCdFbCBDYXBpdGFuJykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoKCdtYWMnLCBWZXJzaW9uKCcxMC4xMScpKSwgbWFwLmZyb21fbmFtZSgnZWxjYXBp
dGFuJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKCdtYWMnLCBWZXJzaW9uKCcxMC4xMScp
KSwgbWFwLmZyb21fbmFtZSgnZWwgQ2FwaXRhbicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCgnbWFjJywgVmVyc2lvbigxMCwgMTIpKSwgbWFwLmZyb21fbmFtZSgnU2llcnJhJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoKCdtYWMnLCBWZXJzaW9uKDEwLCAxMikpLCBtYXAuZnJvbV9u
YW1lKCdzaWVycmEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoJ21hYycsIFZlcnNpb24o
MTAsIDExKSksIG1hcC5mcm9tX25hbWUoJ0VsIENhcGl0YW4nKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgoJ21hYycsIFZlcnNpb24oMTAsIDExKSksIG1hcC5mcm9tX25hbWUoJ2VsY2FwaXRh
bicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgnbWFjJywgVmVyc2lvbigxMCwgMTEpKSwg
bWFwLmZyb21fbmFtZSgnZWwgQ2FwaXRhbicpKQogCiAgICAgZGVmIHRlc3RfaW9zX3ZlcnNpb25f
YnlfbmFtZShzZWxmKToKICAgICAgICAgbWFwID0gVmVyc2lvbk5hbWVNYXAoKQpAQCAtNTIsMTIg
KzUyLDEyIEBAIGNsYXNzIFZlcnNpb25NYXBUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2EKIAogICAg
IGRlZiB0ZXN0X21hY19uYW1lX2J5X3ZlcnNpb24oc2VsZik6CiAgICAgICAgIG1hcCA9IFZlcnNp
b25OYW1lTWFwKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnU2llcnJhJywgbWFwLnRvX25h
bWUodmVyc2lvbj1WZXJzaW9uKCcxMC4xMicpLCBwbGF0Zm9ybT0nbWFjJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0VsIENhcGl0YW4nLCBtYXAudG9fbmFtZSh2ZXJzaW9uPVZlcnNpb24o
JzEwLjExJyksIHBsYXRmb3JtPSdtYWMnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnRWwg
Q2FwaXRhbicsIG1hcC50b19uYW1lKHZlcnNpb249VmVyc2lvbignMTAuMTEuMycpLCBwbGF0Zm9y
bT0nbWFjJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1NpZXJyYScsIG1hcC50b19uYW1l
KHZlcnNpb249VmVyc2lvbigxMCwgMTIpLCBwbGF0Zm9ybT0nbWFjJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ0VsIENhcGl0YW4nLCBtYXAudG9fbmFtZSh2ZXJzaW9uPVZlcnNpb24oMTAs
IDExKSwgcGxhdGZvcm09J21hYycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdFbCBDYXBp
dGFuJywgbWFwLnRvX25hbWUodmVyc2lvbj1WZXJzaW9uKDEwLCAxMSwgMyksIHBsYXRmb3JtPSdt
YWMnKSkKIAogICAgIGRlZiB0ZXN0X2lvc19uYW1lX2J5X3ZlcnNpb24oc2VsZik6CiAgICAgICAg
IG1hcCA9IFZlcnNpb25OYW1lTWFwKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaU9TIDEx
JywgbWFwLnRvX25hbWUodmVyc2lvbj1WZXJzaW9uKCcxMScpLCBwbGF0Zm9ybT0naW9zJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2lPUyAxMCcsIG1hcC50b19uYW1lKHZlcnNpb249VmVy
c2lvbignMTAnKSwgcGxhdGZvcm09J2lvcycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdp
T1MgMTAnLCBtYXAudG9fbmFtZSh2ZXJzaW9uPVZlcnNpb24oJzEwLjMnKSwgcGxhdGZvcm09J2lv
cycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdpT1MgMTEnLCBtYXAudG9fbmFtZSh2ZXJz
aW9uPVZlcnNpb24oMTEpLCBwbGF0Zm9ybT0naW9zJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ2lPUyAxMCcsIG1hcC50b19uYW1lKHZlcnNpb249VmVyc2lvbigxMCksIHBsYXRmb3JtPSdp
b3MnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaU9TIDEwJywgbWFwLnRvX25hbWUodmVy
c2lvbj1WZXJzaW9uKDEwLCAzKSwgcGxhdGZvcm09J2lvcycpKQpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdmVyc2lvbl91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAy
MjUyMDApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX3VuaXR0ZXN0
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyMyArMjgsMjMgQEAgZnJvbSB2ZXJzaW9uIGltcG9y
dCBWZXJzaW9uCiBjbGFzcyBWZXJzaW9uVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAg
ICAgZGVmIHRlc3Rfc3RyaW5nX2NvbnN0cnVjdG9yKHNlbGYpOgotICAgICAgICB2ID0gVmVyc2lv
bignMS4yLjMuNC41JykKKyAgICAgICAgdiA9IFZlcnNpb24uZnJvbV9zdHJpbmcoJzEuMi4zLjQu
NScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi5tYWpvciwgMSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh2Lm1pbm9yLCAyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYudGlueSwg
MykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Lm1pY3JvLCA0KQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHYubmFubywgNSkKIAotICAgIGRlZiB0ZXN0X2xpc3RfY29uc3RydWN0b3Ioc2Vs
Zik6Ci0gICAgICAgIHYgPSBWZXJzaW9uKFsxLCAyLCAzLCA0LCA1XSkKKyAgICBkZWYgdGVzdF9m
cm9tX2xpc3Qoc2VsZik6CisgICAgICAgIHYgPSBWZXJzaW9uLmZyb21faXRlcmFibGUoWzEsIDIs
IDMsIDQsIDVdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYubWFqb3IsIDEpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodi5taW5vciwgMikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2
LnRpbnksIDMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi5taWNybywgNCkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh2Lm5hbm8sIDUpCiAKLSAgICBkZWYgdGVzdF90dXBsZV9jb25zdHJ1
Y3RvcihzZWxmKToKLSAgICAgICAgdiA9IFZlcnNpb24oKDEsIDIsIDMpKQorICAgIGRlZiB0ZXN0
X2Zyb21fdHVwbGUoc2VsZik6CisgICAgICAgIHYgPSB2ID0gVmVyc2lvbi5mcm9tX2l0ZXJhYmxl
KCgxLCAyLCAzKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Lm1ham9yLCAxKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHYubWlub3IsIDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
di50aW55LCAzKQpAQCAtNTcsMjggKzU3LDEyIEBAIGNsYXNzIFZlcnNpb25UZXN0Q2FzZSh1bml0
dGVzdC5UZXN0Q2FzZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Lm1pY3JvLCAwKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHYubmFubywgMCkKIAotICAgIGRlZiB0ZXN0X2NvcHlfY29u
c3RydWN0b3Ioc2VsZik6Ci0gICAgICAgIHYgPSBWZXJzaW9uKFZlcnNpb24oWzEsIDIsIDMsIDQs
IDVdKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Lm1ham9yLCAxKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHYubWlub3IsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi50aW55
LCAzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYubWljcm8sIDQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodi5uYW5vLCA1KQotCi0gICAgZGVmIHRlc3Rfbm9uZV9jb25zdHJ1Y3Rvcihz
ZWxmKToKLSAgICAgICAgdiA9IFZlcnNpb24oTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh2Lm1ham9yLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYubWlub3IsIDApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodi50aW55LCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHYubWljcm8sIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi5uYW5vLCAwKQotCiAgICAg
ZGVmIHRlc3RfbGVuKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihWZXJzaW9u
KCcxLjIuMy40LjUnKSksIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKFZlcnNpb24o
MSwgMiwgMywgNCwgNSkpLCA1KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihWZXJzaW9u
KCkpLCA1KQogCiAgICAgZGVmIHRlc3Rfc2V0X2J5X2ludChzZWxmKToKLSAgICAgICAgdiA9IFZl
cnNpb24oTm9uZSkKKyAgICAgICAgdiA9IFZlcnNpb24oKQogICAgICAgICB2WzBdID0gMQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHYubWFqb3IsIDEpCiAgICAgICAgIHZbMV0gPSAyCkBAIC05
MSw3ICs3NSw3IEBAIGNsYXNzIFZlcnNpb25UZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Lm5hbm8sIDUpCiAKICAgICBkZWYgdGVzdF9zZXRfYnlf
c3RyaW5nKHNlbGYpOgotICAgICAgICB2ID0gVmVyc2lvbihOb25lKQorICAgICAgICB2ID0gVmVy
c2lvbigpCiAgICAgICAgIHZbJ21ham9yJ10gPSAxCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
di5tYWpvciwgMSkKICAgICAgICAgdlsnbWlub3InXSA9IDIKQEAgLTEwNCw3ICs4OCw3IEBAIGNs
YXNzIFZlcnNpb25UZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh2Lm5hbm8sIDUpCiAKICAgICBkZWYgdGVzdF9nZXRfYnlfaW50KHNlbGYpOgotICAg
ICAgICB2ID0gVmVyc2lvbignMS4yLjMuNC41JykKKyAgICAgICAgdiA9IFZlcnNpb24oMSwgMiwg
MywgNCwgNSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2WzBdLCB2Lm1ham9yKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHZbMV0sIHYubWlub3IpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodlsyXSwgdi50aW55KQpAQCAtMTEyLDcgKzk2LDcgQEAgY2xhc3MgVmVyc2lvblRlc3RDYXNl
KHVuaXR0ZXN0LlRlc3RDYXNlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZbNF0sIHYubmFu
bykKIAogICAgIGRlZiB0ZXN0X2dldF9ieV9zdHJpbmcoc2VsZik6Ci0gICAgICAgIHYgPSBWZXJz
aW9uKCcxLjIuMy40LjUnKQorICAgICAgICB2ID0gVmVyc2lvbigxLCAyLCAzLCA0LCA1KQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHZbJ21ham9yJ10sIHYubWFqb3IpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodlsnbWlub3InXSwgdi5taW5vcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh2Wyd0aW55J10sIHYudGlueSkKQEAgLTEyMCwyOSArMTA0LDI5IEBAIGNsYXNzIFZlcnNpb25U
ZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Wydu
YW5vJ10sIHYubmFubykKIAogICAgIGRlZiB0ZXN0X3N0cmluZyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHIoVmVyc2lvbignMS4yLjMnKSksICcxLjIuMycpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RyKFZlcnNpb24oJzEuMi4wJykpLCAnMS4yJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHIoVmVyc2lvbignMS4yJykpLCAnMS4yJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzdHIoVmVyc2lvbignMC4wLjMnKSksICcwLjAuMycpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyKFZlcnNpb24oMSwgMiwgMykpLCAnMS4yLjMnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHN0cihWZXJzaW9uKDEsIDIsIDApKSwgJzEuMicpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyKFZlcnNpb24oMSwgMikpLCAnMS4yJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdHIoVmVyc2lvbigwLCAwLCAzKSksICcwLjAuMycpCiAKICAgICBkZWYgdGVzdF9j
b250YWluZWRfaW4oc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShWZXJzaW9uKCcxMS4x
JykuY29udGFpbmVkX2luKFZlcnNpb24oJzExJykpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
VmVyc2lvbignMTEuMS4yJykuY29udGFpbmVkX2luKFZlcnNpb24oJzExLjEnKSkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoVmVyc2lvbignMTEnKS5jb250YWluZWRfaW4oVmVyc2lvbignMTEu
MScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShWZXJzaW9uKCcxMScpLmNvbnRhaW5lZF9p
bihWZXJzaW9uKCcxMS4xLjInKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoVmVyc2lvbign
MTEuMScpLmNvbnRhaW5lZF9pbihWZXJzaW9uKCcxMS4xLjInKSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShWZXJzaW9uKCcxMScpLmNvbnRhaW5lZF9pbihWZXJzaW9uKCcxMScpKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNpb24oJzExLjEnKS5jb250YWluZWRfaW4oVmVyc2lvbign
MTEuMScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNpb24oJzExLjEuMicpLmNvbnRh
aW5lZF9pbihWZXJzaW9uKCcxMS4xLjInKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShWZXJz
aW9uKCcxMScpLmNvbnRhaW5lZF9pbihWZXJzaW9uKCcxMS4wJykpKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoVmVyc2lvbignMTEuMCcpLmNvbnRhaW5lZF9pbihWZXJzaW9uKCcxMScpKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNpb24oJzExJykuY29udGFpbmVkX2luKFZlcnNpb24o
JzExLjAuMCcpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNpb24oJzExLjAuMCcpLmNv
bnRhaW5lZF9pbihWZXJzaW9uKCcxMScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNp
b24oJzExLjEnKS5jb250YWluZWRfaW4oVmVyc2lvbignMTEuMS4wJykpKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoVmVyc2lvbignMTEuMS4wJykuY29udGFpbmVkX2luKFZlcnNpb24oJzExLjEn
KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShWZXJzaW9uKDExLCAxKS5jb250YWluZWRfaW4o
VmVyc2lvbigxMSkpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoVmVyc2lvbigxMSwgMSwgMiku
Y29udGFpbmVkX2luKFZlcnNpb24oMTEsIDEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShW
ZXJzaW9uKDExKS5jb250YWluZWRfaW4oVmVyc2lvbigxMSwgMSkpKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKFZlcnNpb24oMTEpLmNvbnRhaW5lZF9pbihWZXJzaW9uKDExLCAxLCAyKSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoVmVyc2lvbigxMSwgMSkuY29udGFpbmVkX2luKFZlcnNp
b24oMTEsIDEsIDIpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNpb24oMTEpLmNvbnRh
aW5lZF9pbihWZXJzaW9uKDExKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShWZXJzaW9uKDEx
LCAxKS5jb250YWluZWRfaW4oVmVyc2lvbigxMSwgMSkpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoVmVyc2lvbigxMSwgMSwgMikuY29udGFpbmVkX2luKFZlcnNpb24oMTEsIDEsIDIpKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKFZlcnNpb24oMTEpLmNvbnRhaW5lZF9pbihWZXJzaW9uKDEx
LCAwKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShWZXJzaW9uKDExLCAwKS5jb250YWluZWRf
aW4oVmVyc2lvbigxMSkpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoVmVyc2lvbigxMSkuY29u
dGFpbmVkX2luKFZlcnNpb24oMTEsIDAsIDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFZl
cnNpb24oMTEsIDAsIDApLmNvbnRhaW5lZF9pbihWZXJzaW9uKDExKSkpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShWZXJzaW9uKDExLCAxKS5jb250YWluZWRfaW4oVmVyc2lvbigxMSwgMSwgMCkp
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoVmVyc2lvbigxMSwgMSwgMCkuY29udGFpbmVkX2lu
KFZlcnNpb24oMTEsIDEpKSkKIAogICAgIGRlZiB0ZXN0X2NvbXBhcmVfdmVyc2lvbnMoc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVmVyc2lvbignMS4yLjMnKSwgVmVyc2lvbignMS4y
LjMnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKFZlcnNpb24oJzEuMi40JyksIFZlcnNp
b24oJzEuMi4zJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihWZXJzaW9uKCcxLjMuMicp
LCBWZXJzaW9uKCcxLjIuMycpKQotICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoVmVyc2lvbign
Mi4xLjEnKSwgVmVyc2lvbignMS4yLjMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChWZXJz
aW9uKDEsIDIsIDMpLCBWZXJzaW9uKDEsIDIsIDMpKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0
ZXIoVmVyc2lvbigxLCAyLCA0KSwgVmVyc2lvbigxLCAyLCAzKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRHcmVhdGVyKFZlcnNpb24oMSwgMywgMiksIFZlcnNpb24oMSwgMiwgMykpCisgICAgICAgIHNl
bGYuYXNzZXJ0R3JlYXRlcihWZXJzaW9uKDIsIDEsIDEpLCBWZXJzaW9uKDEsIDIsIDMpKQpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZv
cm1pbmZvLnB5CShyZXZpc2lvbiAyMjUyMDApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNCArNTUs
MTQgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgICAgIHNlbGYub3NfdmVyc2lv
biA9IE5vbmUKIAogICAgICAgICBpZiBzZWxmLm9zX25hbWUuc3RhcnRzd2l0aCgnbWFjJyk6Ci0g
ICAgICAgICAgICB2ZXJzaW9uID0gVmVyc2lvbihwbGF0Zm9ybV9tb2R1bGUubWFjX3ZlcigpWzBd
KQorICAgICAgICAgICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbV9zdHJpbmcocGxhdGZvcm1fbW9k
dWxlLm1hY192ZXIoKVswXSkKICAgICAgICAgZWxpZiBzZWxmLm9zX25hbWUuc3RhcnRzd2l0aCgn
d2luJyk6CiAgICAgICAgICAgICB2ZXJzaW9uID0gc2VsZi5fd2luX3ZlcnNpb24oc3lzX21vZHVs
ZSkKICAgICAgICAgZWxpZiBzZWxmLm9zX25hbWUgPT0gJ2xpbnV4JyBvciBzZWxmLm9zX25hbWUg
PT0gJ2ZyZWVic2QnIG9yIHNlbGYub3NfbmFtZSA9PSAnb3BlbmJzZCcgb3Igc2VsZi5vc19uYW1l
ID09ICduZXRic2QnOgogICAgICAgICAgICAgdmVyc2lvbiA9IE5vbmUKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgICMgTW9zdCBvdGhlciBwbGF0Zm9ybXMgKG5hbWVseSBpT1MpIHJldHVybiBj
b25mb3JtaW5nIHZlcnNpb24gc3RyaW5ncy4KLSAgICAgICAgICAgIHZlcnNpb24gPSBWZXJzaW9u
KHBsYXRmb3JtX21vZHVsZS5yZWxlYXNlKCkpCisgICAgICAgICAgICB2ZXJzaW9uID0gVmVyc2lv
bi5mcm9tX3N0cmluZyhwbGF0Zm9ybV9tb2R1bGUucmVsZWFzZSgpKQogCiAgICAgICAgIHNlbGYu
X2lzX2N5Z3dpbiA9IHN5c19tb2R1bGUucGxhdGZvcm0gPT0gJ2N5Z3dpbicKIApAQCAtMTQ1LDcg
KzE0NSw3IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgICAgICAgICAgIyBBc3N1
bWVzIHRoYXQgeGNydW4gZG9lcyBub3Qgd3JpdGUgdG8gc3RhbmRhcmQgb3V0cHV0IG9uIGZhaWx1
cmUgKGUuZy4gU0RLIGRvZXMgbm90IGV4aXN0KS4KICAgICAgICAgICAgIHhjcnVuX291dHB1dCA9
IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3hjcnVuJywgJy0tc2RrJywgc2RrX25hbWUs
ICctLXNob3ctc2RrLXZlcnNpb24nXSwgcmV0dXJuX3N0ZGVycj1GYWxzZSwgZXJyb3JfaGFuZGxl
cj1FeGVjdXRpdmUuaWdub3JlX2Vycm9yKS5yc3RyaXAoKQogICAgICAgICAgICAgaWYgeGNydW5f
b3V0cHV0OgotICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uKHhjcnVuX291dHB1dCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbi5mcm9tX3N0cmluZyh4Y3J1bl9vdXRwdXQpCiAg
ICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYgeGNvZGVfc2ltY3RsX2xpc3Qoc2VsZik6CkBA
IC0xNTcsNyArMTU3LDcgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIHhj
b2RlX3ZlcnNpb24oc2VsZik6CiAgICAgICAgIGlmIG5vdCBzZWxmLmlzX21hYygpOgogICAgICAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotICAgICAgICByZXR1cm4gVmVyc2lvbihz
ZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWyd4Y29kZWJ1aWxkJywgJy12ZXJzaW9uJ10pLnNw
bGl0KClbMV0pCisgICAgICAgIHJldHVybiBWZXJzaW9uLmZyb21fc3RyaW5nKHNlbGYuX2V4ZWN1
dGl2ZS5ydW5fY29tbWFuZChbJ3hjb2RlYnVpbGQnLCAnLXZlcnNpb24nXSkuc3BsaXQoKVsxXSkK
IAogICAgIGRlZiBfZGV0ZXJtaW5lX29zX25hbWUoc2VsZiwgc3lzX3BsYXRmb3JtKToKICAgICAg
ICAgaWYgc3lzX3BsYXRmb3JtID09ICdkYXJ3aW4nOgpAQCAtMTc4LDggKzE3OCw4IEBAIGNsYXNz
IFBsYXRmb3JtSW5mbyhvYmplY3QpOgogCiAgICAgZGVmIF93aW5fdmVyc2lvbihzZWxmLCBzeXNf
bW9kdWxlKToKICAgICAgICAgaWYgaGFzYXR0cihzeXNfbW9kdWxlLCAnZ2V0d2luZG93c3ZlcnNp
b24nKToKLSAgICAgICAgICAgIHJldHVybiBWZXJzaW9uKHN5c19tb2R1bGUuZ2V0d2luZG93c3Zl
cnNpb24oKVswOjNdKQotICAgICAgICByZXR1cm4gVmVyc2lvbihzZWxmLl93aW5fdmVyc2lvbl9m
cm9tX2NtZCgpKQorICAgICAgICAgICAgcmV0dXJuIFZlcnNpb24uZnJvbV9pdGVyYWJsZShzeXNf
bW9kdWxlLmdldHdpbmRvd3N2ZXJzaW9uKClbMDozXSkKKyAgICAgICAgcmV0dXJuIFZlcnNpb24u
ZnJvbV9pdGVyYWJsZShzZWxmLl93aW5fdmVyc2lvbl9mcm9tX2NtZCgpKQogCiAgICAgZGVmIF93
aW5fdmVyc2lvbl9mcm9tX2NtZChzZWxmKToKICAgICAgICAgIyBOb3RlIHRoYXQgdGhpcyBzaG91
bGQgb25seSBldmVyIGJlIGNhbGxlZCBvbiB3aW5kb3dzLCBzbyB0aGlzIHNob3VsZCBhbHdheXMg
d29yay4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm9fbW9jay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkJKHJldmlzaW9uIDIyNTIwMCkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQkod29y
a2luZyBjb3B5KQpAQCAtNjcsMTAgKzY3LDEwIEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIDgwCiAKICAgICBkZWYgeGNvZGVfc2RrX3ZlcnNpb24oc2Vs
Ziwgc2RrX25hbWUpOgotICAgICAgICByZXR1cm4gVmVyc2lvbignOC4xJykKKyAgICAgICAgcmV0
dXJuIFZlcnNpb24oOCwgMSkKIAogICAgIGRlZiB4Y29kZV92ZXJzaW9uKHNlbGYpOgotICAgICAg
ICByZXR1cm4gVmVyc2lvbignOC4wJykKKyAgICAgICAgcmV0dXJuIFZlcnNpb24oOCwgMCkKIAog
ICAgIGRlZiB4Y29kZV9zaW1jdGxfbGlzdChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuZXhw
ZWN0ZWRfeGNvZGVfc2ltY3RsX2xpc3QKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9pb3MucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5w
eQkocmV2aXNpb24gMjI1MjAwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5w
eQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDE1ICsxMDksMTkgQEAgY2xhc3MgSU9TUG9ydChEYXJ3
aW5Qb3J0KToKICAgICAgICAgd2tfc3RyaW5nID0gJ3drMScKICAgICAgICAgaWYgc2VsZi5nZXRf
b3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKICAgICAgICAgICAgIHdrX3N0cmluZyA9ICd3
azInCi0gICAgICAgIGZhbGxiYWNrX25hbWVzID0gWwotICAgICAgICAgICAgJ3t9LXt9LXt9Jy5m
b3JtYXQoc2VsZi5wb3J0X25hbWUsIHNlbGYuaW9zX3ZlcnNpb24oKS5tYWpvciwgd2tfc3RyaW5n
KSwKLSAgICAgICAgICAgICd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1lLCBzZWxmLmlvc192
ZXJzaW9uKCkubWFqb3IpLAotICAgICAgICAgICAgJ3t9LXt9Jy5mb3JtYXQoc2VsZi5wb3J0X25h
bWUsIHdrX3N0cmluZyksCi0gICAgICAgICAgICBzZWxmLnBvcnRfbmFtZSwKLSAgICAgICAgICAg
ICd7fS17fScuZm9ybWF0KElPU1BvcnQucG9ydF9uYW1lLCBzZWxmLmlvc192ZXJzaW9uKCkubWFq
b3IpLAotICAgICAgICAgICAgJ3t9LXt9Jy5mb3JtYXQoSU9TUG9ydC5wb3J0X25hbWUsIHdrX3N0
cmluZyksCi0gICAgICAgICAgICBJT1NQb3J0LnBvcnRfbmFtZSwKLSAgICAgICAgXQorICAgICAg
ICAjIElmIHdlIGRvbid0IGhhdmUgYSBzcGVjaWZpZWQgdmVyc2lvbiwgdGhhdCBtZWFucyB3ZSB1
c2luZyB0aGUgcG9ydCB3aXRob3V0IGFuIFNESy4KKyAgICAgICAgIyBUaGlzIHVzdWFsbHkgbWVh
bnMgd2UncmUgZG9pbmcgc29tZSB0eXBlIG9mIHRlc3RpbmcuSW4gdGhpcyBjYXNlLCBkb24ndCBh
ZGQgdmVyc2lvbiBmYWxsYmFja3MKKyAgICAgICAgZmFsbGJhY2tfbmFtZXMgPSBbXQorICAgICAg
ICBpZiBzZWxmLmlvc192ZXJzaW9uKCk6CisgICAgICAgICAgICBmYWxsYmFja19uYW1lcy5hcHBl
bmQoJ3t9LXt9LXt9Jy5mb3JtYXQoc2VsZi5wb3J0X25hbWUsIHNlbGYuaW9zX3ZlcnNpb24oKS5t
YWpvciwgd2tfc3RyaW5nKSkKKyAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzLmFwcGVuZCgne30t
e30nLmZvcm1hdChzZWxmLnBvcnRfbmFtZSwgc2VsZi5pb3NfdmVyc2lvbigpLm1ham9yKSkKKyAg
ICAgICAgZmFsbGJhY2tfbmFtZXMuYXBwZW5kKCd7fS17fScuZm9ybWF0KHNlbGYucG9ydF9uYW1l
LCB3a19zdHJpbmcpKQorICAgICAgICBmYWxsYmFja19uYW1lcy5hcHBlbmQoc2VsZi5wb3J0X25h
bWUpCisgICAgICAgIGlmIHNlbGYuaW9zX3ZlcnNpb24oKToKKyAgICAgICAgICAgIGZhbGxiYWNr
X25hbWVzLmFwcGVuZCgne30te30nLmZvcm1hdChJT1NQb3J0LnBvcnRfbmFtZSwgc2VsZi5pb3Nf
dmVyc2lvbigpLm1ham9yKSkKKyAgICAgICAgZmFsbGJhY2tfbmFtZXMuYXBwZW5kKCd7fS17fScu
Zm9ybWF0KElPU1BvcnQucG9ydF9uYW1lLCB3a19zdHJpbmcpKQorICAgICAgICBmYWxsYmFja19u
YW1lcy5hcHBlbmQoSU9TUG9ydC5wb3J0X25hbWUpCisKICAgICAgICAgaWYgc2VsZi5nZXRfb3B0
aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKICAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzLmFw
cGVuZCgnd2syJykKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvc19kZXZp
Y2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvc19kZXZp
Y2UucHkJKHJldmlzaW9uIDIyNTIwMCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9p
b3NfZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIElPU0Rl
dmljZVBvcnQoSU9TUG9ydCk6CiAgICAgQG1lbW9pemVkCiAgICAgZGVmIGlvc192ZXJzaW9uKHNl
bGYpOgogICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3ZlcnNpb24nKToKLSAgICAgICAgICAg
IHJldHVybiBWZXJzaW9uKHNlbGYuZ2V0X29wdGlvbigndmVyc2lvbicpKQorICAgICAgICAgICAg
cmV0dXJuIFZlcnNpb24uZnJvbV9zdHJpbmcoc2VsZi5nZXRfb3B0aW9uKCd2ZXJzaW9uJykpCiAK
ICAgICAgICAgaWYgbm90IGFwcGxlX2FkZGl0aW9ucygpOgogICAgICAgICAgICAgcmFpc2UgUnVu
dGltZUVycm9yKHNlbGYuTk9fT05fREVWSUNFX1RFU1RJTkcpCkBAIC0xMTEsNyArMTExLDcgQEAg
Y2xhc3MgSU9TRGV2aWNlUG9ydChJT1NQb3J0KToKICAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
UnVudGltZUVycm9yKCdNdWx0aXBsZSBjb25uZWN0ZWQgZGV2aWNlcyBoYXZlIGRpZmZlcmVudCBp
T1MgdmVyc2lvbnMnKQogICAgICAgICBpZiB2ZXJzaW9uOgogICAgICAgICAgICAgcmV0dXJuIFZl
cnNpb25OYW1lTWFwLm1hcChzZWxmLmhvc3QucGxhdGZvcm0pLmZyb21fbmFtZSh2ZXJzaW9uKVsx
XQotICAgICAgICByZXR1cm4gVmVyc2lvbih2ZXJzaW9uKQorICAgICAgICByZXR1cm4gTm9uZQog
CiAgICAgIyBGSVhNRTogVGhlc2UgbmVlZCBkZXZpY2UgaW1wbGVtZW50YXRpb25zIDxyZGFyOi8v
cHJvYmxlbS8zMDQ5Nzk5MT4uCiAgICAgZGVmIGNoZWNrX2Zvcl9sZWFrcyhzZWxmLCBwcm9jZXNz
X25hbWUsIHByb2Nlc3NfcGlkKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9p
b3Nfc2ltdWxhdG9yLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9pb3Nfc2ltdWxhdG9yLnB5CShyZXZpc2lvbiAyMjUyMDApCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvaW9zX3NpbXVsYXRvci5weQkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEw
Myw3IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoSU9TUG9ydCk6CiAgICAgICAgIGlmIHJ1bnRp
bWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgIHJ1bnRpbWUgPSBSdW50aW1lLmZyb21faWRlbnRp
ZmllcihydW50aW1lX2lkZW50aWZpZXIpCiAgICAgICAgIGVsaWYgc2VsZi5nZXRfb3B0aW9uKCd2
ZXJzaW9uJyk6Ci0gICAgICAgICAgICBydW50aW1lID0gUnVudGltZS5mcm9tX3ZlcnNpb24oVmVy
c2lvbihzZWxmLmdldF9vcHRpb24oJ3ZlcnNpb24nKSkpCisgICAgICAgICAgICBydW50aW1lID0g
UnVudGltZS5mcm9tX3ZlcnNpb24oVmVyc2lvbi5mcm9tX3N0cmluZyhzZWxmLmdldF9vcHRpb24o
J3ZlcnNpb24nKSkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydW50aW1lID0gUnVudGlt
ZS5mcm9tX3ZlcnNpb24oc2VsZi5ob3N0LnBsYXRmb3JtLnhjb2RlX3Nka192ZXJzaW9uKCdpcGhv
bmVzaW11bGF0b3InKSkKICAgICAgICAgcmV0dXJuIHJ1bnRpbWUKQEAgLTExMiwxMCArMTEyLDEw
IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoSU9TUG9ydCk6CiAgICAgZGVmIGlvc192ZXJzaW9u
KHNlbGYpOgogICAgICAgICBydW50aW1lX2lkZW50aWZpZXIgPSBzZWxmLmdldF9vcHRpb24oJ3J1
bnRpbWUnKQogICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3ZlcnNpb24nKToKLSAgICAgICAg
ICAgIHJldHVybiBWZXJzaW9uKHNlbGYuZ2V0X29wdGlvbigndmVyc2lvbicpKQorICAgICAgICAg
ICAgcmV0dXJuIFZlcnNpb24uZnJvbV9zdHJpbmcoc2VsZi5nZXRfb3B0aW9uKCd2ZXJzaW9uJykp
CiAgICAgICAgIGlmIHJ1bnRpbWVfaWRlbnRpZmllcjoKLSAgICAgICAgICAgIHJldHVybiBWZXJz
aW9uKFJ1bnRpbWUuZnJvbV9pZGVudGlmaWVyKHJ1bnRpbWVfaWRlbnRpZmllcikudmVyc2lvbikK
LSAgICAgICAgcmV0dXJuIFZlcnNpb24oc2VsZi5ob3N0LnBsYXRmb3JtLnhjb2RlX3Nka192ZXJz
aW9uKCdpcGhvbmVzaW11bGF0b3InKSkKKyAgICAgICAgICAgIHJldHVybiBSdW50aW1lLmZyb21f
aWRlbnRpZmllcihydW50aW1lX2lkZW50aWZpZXIpLnZlcnNpb24KKyAgICAgICAgcmV0dXJuIHNl
bGYuaG9zdC5wbGF0Zm9ybS54Y29kZV9zZGtfdmVyc2lvbignaXBob25lc2ltdWxhdG9yJykKIAog
ICAgIGRlZiBzaW11bGF0b3JfZGV2aWNlX3R5cGUoc2VsZik6CiAgICAgICAgIGRldmljZV90eXBl
X2lkZW50aWZpZXIgPSBzZWxmLmdldF9vcHRpb24oJ2RldmljZV90eXBlJykKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CShyZXZpc2lvbiAyMjUyMDApCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRvci5weQkod29ya2luZyBjb3B5
KQpAQCAtMzMzLDcgKzMzMyw3IEBAIGNsYXNzIFNpbXVsYXRvcihvYmplY3QpOgogICAgICAgICAg
ICAgICAgIGlmIGxpbmUgIT0gJz09IERldmljZXMgPT0nOgogICAgICAgICAgICAgICAgICAgICBy
YWlzZSBSdW50aW1lRXJyb3IoJ0V4cGVjdGVkID09IERldmljZXMgPT0gaGVhZGVyIGJ1dCBnb3Q6
ICJ7fSInLmZvcm1hdChsaW5lKSkKICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAg
cnVudGltZSA9IFJ1bnRpbWUodmVyc2lvbj1WZXJzaW9uKHJ1bnRpbWVfbWF0Y2guZ3JvdXAoJ3Zl
cnNpb24nKSksCisgICAgICAgICAgICBydW50aW1lID0gUnVudGltZSh2ZXJzaW9uPVZlcnNpb24u
ZnJvbV9zdHJpbmcocnVudGltZV9tYXRjaC5ncm91cCgndmVyc2lvbicpKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9cnVudGltZV9tYXRjaC5ncm91cCgnaWRlbnRp
ZmllcicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlPXJ1bnRpbWVf
bWF0Y2guZ3JvdXAoJ2F2YWlsYWJpbGl0eScpIGlzIE5vbmUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpc19pbnRlcm5hbF9ydW50aW1lPSgnSW50ZXJuYWwnIGluIHJ1bnRpbWVfbWF0
Y2guZ3JvdXAoJ29zJykpKQpAQCAtMzUxLDcgKzM1MSw3IEBAIGNsYXNzIFNpbXVsYXRvcihvYmpl
Y3QpOgogICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKICAgICAgICAgICAgIHZlcnNpb25fbWF0
Y2ggPSBzZWxmLnZlcnNpb25fcmUubWF0Y2gobGluZSkKICAgICAgICAgICAgIGlmIHZlcnNpb25f
bWF0Y2g6Ci0gICAgICAgICAgICAgICAgY3VycmVudF9ydW50aW1lID0gc2VsZi5ydW50aW1lKHZl
cnNpb249VmVyc2lvbih2ZXJzaW9uX21hdGNoLmdyb3VwKCd2ZXJzaW9uJykpLCBpc19pbnRlcm5h
bF9ydW50aW1lPWJvb2wodmVyc2lvbl9tYXRjaC5ncm91cCgnaW50ZXJuYWwnKSkpCisgICAgICAg
ICAgICAgICAgY3VycmVudF9ydW50aW1lID0gc2VsZi5ydW50aW1lKHZlcnNpb249VmVyc2lvbi5m
cm9tX3N0cmluZyh2ZXJzaW9uX21hdGNoLmdyb3VwKCd2ZXJzaW9uJykpLCBpc19pbnRlcm5hbF9y
dW50aW1lPWJvb2wodmVyc2lvbl9tYXRjaC5ncm91cCgnaW50ZXJuYWwnKSkpCiAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGN1cnJlbnRfcnVudGltZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yX3VuaXR0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yX3Vu
aXR0ZXN0LnB5CShyZXZpc2lvbiAyMjUyMDApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hj
b2RlL3NpbXVsYXRvcl91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3
IEBAIEFwcGxlIFRWIDEwODBwICg1NTI4MUFCRS05QzI3LTQzOEItQUQ1MC0KICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtOC0w
JywgcnVudGltZV9pb3NfOC5pZGVudGlmaWVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRy
dWUsIHJ1bnRpbWVfaW9zXzguYXZhaWxhYmxlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZh
bHNlLCBydW50aW1lX2lvc184LmlzX2ludGVybmFsX3J1bnRpbWUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoVmVyc2lvbihbOCwgMF0pLCBydW50aW1lX2lvc184LnZlcnNpb24pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoVmVyc2lvbig4LCAwKSwgcnVudGltZV9pb3NfOC52ZXJzaW9uKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDExLCBsZW4ocnVudGltZV9pb3NfOC5kZXZpY2VzKSkK
IAogICAgICAgICBkZXZpY2VfaXBob25lXzRzID0gcnVudGltZV9pb3NfOC5kZXZpY2VzWzBdCkBA
IC0yMDgsMjEgKzIwOCwyMSBAQCBBcHBsZSBUViAxMDgwcCAoNTUyODFBQkUtOUMyNy00MzhCLUFE
NTAtCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNp
bVJ1bnRpbWUuaU9TLTgtMC1JbnRlcm5hbCcsIHJ1bnRpbWVfaW9zXzhfaW50ZXJuYWwuaWRlbnRp
ZmllcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgcnVudGltZV9pb3NfOF9pbnRl
cm5hbC5hdmFpbGFibGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgcnVudGltZV9p
b3NfOF9pbnRlcm5hbC5pc19pbnRlcm5hbF9ydW50aW1lKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFZlcnNpb24oWzgsIDBdKSwgcnVudGltZV9pb3NfOF9pbnRlcm5hbC52ZXJzaW9uKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFZlcnNpb24oOCwgMCksIHJ1bnRpbWVfaW9zXzhfaW50ZXJu
YWwudmVyc2lvbikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocnVudGltZV9pb3Nf
OF9pbnRlcm5hbC5kZXZpY2VzKSkKIAogICAgICAgICBydW50aW1lX2lvc184XzQgPSBzaW11bGF0
b3IucnVudGltZXNbMl0KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnY29tLmFwcGxlLkNvcmVT
aW11bGF0b3IuU2ltUnVudGltZS5pT1MtOC00JywgcnVudGltZV9pb3NfOF80LmlkZW50aWZpZXIp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgcnVudGltZV9pb3NfOF80LmF2YWlsYWJs
ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgcnVudGltZV9pb3NfOF80LmlzX2lu
dGVybmFsX3J1bnRpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVmVyc2lvbihbOCwgNCwg
MV0pLCBydW50aW1lX2lvc184XzQudmVyc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChW
ZXJzaW9uKDgsIDQsIDEpLCBydW50aW1lX2lvc184XzQudmVyc2lvbikKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBsZW4ocnVudGltZV9pb3NfOF80LmRldmljZXMpKQogCiAgICAgICAgIHJ1
bnRpbWVfdHZvc185ID0gc2ltdWxhdG9yLnJ1bnRpbWVzWzNdCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ2NvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbVJ1bnRpbWUudHZPUy05LTAnLCBydW50
aW1lX3R2b3NfOS5pZGVudGlmaWVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIHJ1
bnRpbWVfdHZvc185LmF2YWlsYWJsZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwg
cnVudGltZV90dm9zXzkuaXNfaW50ZXJuYWxfcnVudGltZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChWZXJzaW9uKFs5LCAwXSksIHJ1bnRpbWVfdHZvc185LnZlcnNpb24pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVmVyc2lvbig5LCAwKSwgcnVudGltZV90dm9zXzkudmVyc2lvbikKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocnVudGltZV90dm9zXzkuZGV2aWNlcykpCiAK
ICAgICAgICAgZGV2aWNlX2FwcGxlX3R2XzEwODBwID0gcnVudGltZV90dm9zXzkuZGV2aWNlc1sw
XQpAQCAtMjM1LDE0ICsyMzUsMTQgQEAgQXBwbGUgVFYgMTA4MHAgKDU1MjgxQUJFLTlDMjctNDM4
Qi1BRDUwLQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdjb20uYXBwbGUuQ29yZVNpbXVsYXRv
ci5TaW1SdW50aW1lLndhdGNoT1MtMi0wJywgcnVudGltZV93YXRjaG9zXzIuaWRlbnRpZmllcikK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBydW50aW1lX3dhdGNob3NfMi5hdmFpbGFi
bGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIHJ1bnRpbWVfd2F0Y2hvc18yLmlz
X2ludGVybmFsX3J1bnRpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVmVyc2lvbihbMiwg
MF0pLCBydW50aW1lX3dhdGNob3NfMi52ZXJzaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFZlcnNpb24oMiwgMCksIHJ1bnRpbWVfd2F0Y2hvc18yLnZlcnNpb24pCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMiwgbGVuKHJ1bnRpbWVfd2F0Y2hvc18yLmRldmljZXMpKQogCiAgICAgICAg
IHJ1bnRpbWVfaW9zXzEwID0gc2ltdWxhdG9yLnJ1bnRpbWVzWzVdCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2NvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbVJ1bnRpbWUuaU9TLTEwLTAnLCBy
dW50aW1lX2lvc18xMC5pZGVudGlmaWVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUs
IHJ1bnRpbWVfaW9zXzEwLmF2YWlsYWJsZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxz
ZSwgcnVudGltZV9pb3NfMTAuaXNfaW50ZXJuYWxfcnVudGltZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChWZXJzaW9uKFsxMCwgMF0pLCBydW50aW1lX2lvc18xMC52ZXJzaW9uKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFZlcnNpb24oMTAsIDApLCBydW50aW1lX2lvc18xMC52ZXJzaW9u
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihydW50aW1lX2lvc18xMC5kZXZpY2Vz
KSkKIAogICAgICAgICBkZXZpY2VfYXBwbGVfd2F0Y2hfMzhtbSA9IHJ1bnRpbWVfd2F0Y2hvc18y
LmRldmljZXNbMF0KQEAgLTMxNiw3ICszMTYsNyBAQCBpT1MgOC4wIEludGVybmFsICg4LjAgLSBV
bmtub3duKSAoY29tLmFwCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NvbS5hcHBsZS5Db3Jl
U2ltdWxhdG9yLlNpbVJ1bnRpbWUuaU9TLTgtMCcsIHJ1bnRpbWVfaW9zXzguaWRlbnRpZmllcikK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBydW50aW1lX2lvc184LmF2YWlsYWJsZSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgcnVudGltZV9pb3NfOC5pc19pbnRlcm5h
bF9ydW50aW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFZlcnNpb24oWzgsIDBdKSwgcnVu
dGltZV9pb3NfOC52ZXJzaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFZlcnNpb24oOCwg
MCksIHJ1bnRpbWVfaW9zXzgudmVyc2lvbikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4ocnVudGltZV9pb3NfOC5kZXZpY2VzKSkKIAogICAgICAgICBkZXZpY2VfaXBob25lXzRzID0g
cnVudGltZV9pb3NfOC5kZXZpY2VzWzBdCkBAIC0zMjksNyArMzI5LDcgQEAgaU9TIDguMCBJbnRl
cm5hbCAoOC4wIC0gVW5rbm93bikgKGNvbS5hcAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdj
b20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy04LTAtSW50ZXJuYWwnLCBydW50
aW1lX2lvc184X2ludGVybmFsLmlkZW50aWZpZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
RmFsc2UsIHJ1bnRpbWVfaW9zXzhfaW50ZXJuYWwuYXZhaWxhYmxlKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFRydWUsIHJ1bnRpbWVfaW9zXzhfaW50ZXJuYWwuaXNfaW50ZXJuYWxfcnVudGlt
ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChWZXJzaW9uKFs4LCAwXSksIHJ1bnRpbWVfaW9z
XzhfaW50ZXJuYWwudmVyc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChWZXJzaW9uKDgs
IDApLCBydW50aW1lX2lvc184X2ludGVybmFsLnZlcnNpb24pCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMCwgbGVuKHJ1bnRpbWVfaW9zXzhfaW50ZXJuYWwuZGV2aWNlcykpCiAKICAgICBkZWYg
dGVzdF9kZXZpY2VfcGFpcnMoc2VsZik6CkBAIC0zNTcsNyArMzU3LDcgQEAgaU9TIDguMCBJbnRl
cm5hbCAoOC4wIC0gVW5rbm93bikgKGNvbS5hcAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdj
b20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy04LTAnLCBydW50aW1lX2lvc184
LmlkZW50aWZpZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgcnVudGltZV9pb3Nf
OC5hdmFpbGFibGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIHJ1bnRpbWVfaW9z
XzguaXNfaW50ZXJuYWxfcnVudGltZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChWZXJzaW9u
KFs4LCAwXSksIHJ1bnRpbWVfaW9zXzgudmVyc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChWZXJzaW9uKDgsIDApLCBydW50aW1lX2lvc184LnZlcnNpb24pCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMSwgbGVuKHJ1bnRpbWVfaW9zXzguZGV2aWNlcykpCiAKICAgICAgICAgZGV2aWNl
X2lwaG9uZV80cyA9IHJ1bnRpbWVfaW9zXzguZGV2aWNlc1swXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>