<?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>204252</bug_id>
          
          <creation_ts>2019-11-15 15:02:14 -0800</creation_ts>
          <short_desc>Python 3: Support run-api-tests</short_desc>
          <delta_ts>2019-11-18 17:52:17 -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=184986</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>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1590679</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-15 15:02:14 -0800</bug_when>
    <thetext>run-api-tests should work with Python 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591233</commentid>
    <comment_count>1</comment_count>
      <attachid>383789</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-18 14:13:37 -0800</bug_when>
    <thetext>Created attachment 383789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591314</commentid>
    <comment_count>2</comment_count>
      <attachid>383789</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-11-18 16:44:11 -0800</bug_when>
    <thetext>Comment on attachment 383789
Patch

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

Looks good to me; unofficial r+.

&gt; Tools/Scripts/webkitpy/api_tests/manager.py:185
&gt; +        test_names = [test for test in test_names for _ in range(self._options.repeat_each)]

Long-standing bug here that this can blow up with a pretty high repeat_each count. Since test_names is stored as a list though, it shouldn&apos;t be any different than it was before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591315</commentid>
    <comment_count>3</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-18 16:45:20 -0800</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591335</commentid>
    <comment_count>4</comment_count>
      <attachid>383789</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-18 17:11:48 -0800</bug_when>
    <thetext>Comment on attachment 383789
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/api_tests/manager.py:185
&gt;&gt; +        test_names = [test for test in test_names for _ in range(self._options.repeat_each)]
&gt; 
&gt; Long-standing bug here that this can blow up with a pretty high repeat_each count. Since test_names is stored as a list though, it shouldn&apos;t be any different than it was before.

True, but if it does blow up, we wouldn&apos;t be able to store the results from the run in RAM anyways, so not sure how useful they would be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591348</commentid>
    <comment_count>5</comment_count>
      <attachid>383814</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-18 17:22:59 -0800</bug_when>
    <thetext>Created attachment 383814
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591377</commentid>
    <comment_count>6</comment_count>
      <attachid>383814</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 17:51:25 -0800</bug_when>
    <thetext>Comment on attachment 383814
Patch for landing

Clearing flags on attachment: 383814

Committed r252616: &lt;https://trac.webkit.org/changeset/252616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591378</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 17:51:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591379</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-18 17:52:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/57306597&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383789</attachid>
            <date>2019-11-18 14:13:37 -0800</date>
            <delta_ts>2019-11-18 17:22:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204252-20191118141336.patch</filename>
            <type>text/plain</type>
            <size>12381</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjU4OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE5LTExLTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogU3VwcG9ydCBydW4tYXBpLXRlc3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
YXBpX3Rlc3RzL21hbmFnZXIucHk6CisgICAgICAgIChNYW5hZ2VyLl9jb2xsZWN0X3Rlc3RzKTog
VXNlIGl0ZW1zIG92ZXIgaXRlcml0ZW1zLgorICAgICAgICAoTWFuYWdlci5fcHJpbnRfdGVzdHNf
cmVzdWx0X3dpdGhfc3RhdHVzKTogVXNlIGNvbXBhdGlibGUgaXRlcml0ZW1zLgorICAgICAgICAo
TWFuYWdlci5ydW4pOiBVc2UgcmFuZ2Ugb3ZlciB4cmFuZ2UsIHVzZSBjb21wYXRpYmxlIGl0ZXJp
dGVtcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHk6Cisg
ICAgICAgIChSdW5uZXIucnVuKTogVXNlIGNvbXBhdGlibGUgaXRlcml0ZW1zLgorICAgICAgICAo
UnVubmVyLnJlc3VsdF9tYXBfYnlfc3RhdHVzKTogRGl0dG8uCisgICAgICAgIChfV29ya2VyLl9y
dW5fc2luZ2xlX3Rlc3QpOiBTZXJ2ZXIgcHJvY2VzcyByZXR1cm5zIGJ5dGUgYXJyYXlzLCBub3Qg
c3RyaW5ncy4KKyAgICAgICAgKF9Xb3JrZXIuaGFuZGxlKTogVXNlIGl0ZW1zIG92ZXIgaXRlcml0
ZW1zLCB1c2UgcmFuZ2Ugb3ZlciB4cmFuZ2UuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbWVzc2FnZV9wb29sLnB5OgorICAgICAgICAoX01lc3NhZ2VQb29sLnJ1bik6IFVzZSBy
YW5nZSBvdmVyIHhyYW5nZS4KKyAgICAgICAgKF9NZXNzYWdlUG9vbC5fc3RhcnRfd29ya2Vycyk6
IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL211bHRpcHJvY2Vzc2lu
Z19ib290c3RyYXAucHk6IFJlbW92ZSB2ZXJzaW9uIGNoZWNrLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5jaGVja19hcGlfdGVzdF9idWls
ZCk6VXNlIGl0ZW1zIG92ZXIgaXRlcml0ZW1zLgorICAgICAgICAoUG9ydC5jb21taXRzX2Zvcl91
cGxvYWQpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3By
b2Nlc3MucHk6CisgICAgICAgIChTZXJ2ZXJQcm9jZXNzLl9yZXNldCk6IFVzZSBieXRlIGFycmF5
IG92ZXIgc3RyaW5nLgorICAgICAgICAoU2VydmVyUHJvY2Vzcy5fcG9wX3N0ZG91dF9saW5lX2lm
X3JlYWR5KTogQ2hlY2sgZm9yIGJ5dGVzIG5ld2xpbmUuCisgICAgICAgIChTZXJ2ZXJQcm9jZXNz
Ll9wb3Bfc3RkZXJyX2xpbmVfaWZfcmVhZHkpOiBEaXR0by4KKwogMjAxOS0xMS0xOCAgS2VpdGgg
Um9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBqc2MgZnJvbSBSZXNv
dXJjZXMgdG8gSGVscGVycwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMv
bWFuYWdlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0
cy9tYW5hZ2VyLnB5CShyZXZpc2lvbiAyNTI1NjMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2FwaV90ZXN0cy9tYW5hZ2VyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw5ICsyNSw5IEBAIGlt
cG9ydCBsb2dnaW5nCiBpbXBvcnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmFwaV90ZXN0cy5ydW5u
ZXIgaW1wb3J0IFJ1bm5lcgorZnJvbSB3ZWJraXRweS5jb21tb24uaXRlcmF0aW9uX2NvbXBhdGli
aWxpdHkgaW1wb3J0IGl0ZXJpdGVtcwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1
dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkucmVzdWx0cy51cGxvYWQgaW1w
b3J0IFVwbG9hZAotCiBmcm9tIHdlYmtpdHB5Lnhjb2RlLnNpbXVsYXRlZF9kZXZpY2UgaW1wb3J0
IERldmljZVJlcXVlc3QsIFNpbXVsYXRlZERldmljZU1hbmFnZXIKIAogX2xvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQpAQCAtOTEsNyArOTEsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVj
dCk6CiAgICAgZGVmIF9jb2xsZWN0X3Rlc3RzKHNlbGYsIGFyZ3MpOgogICAgICAgICBhdmFpbGFi
bGVfdGVzdHMgPSBbXQogICAgICAgICBzcGVjaWZpZWRfYmluYXJpZXMgPSBzZWxmLl9iaW5hcmll
c19mb3JfYXJndW1lbnRzKGFyZ3MpCi0gICAgICAgIGZvciBjYW5vbmljYWxpemVkX2JpbmFyeSwg
cGF0aCBpbiBzZWxmLl9wb3J0LnBhdGhfdG9fYXBpX3Rlc3RfYmluYXJpZXMoKS5pdGVyaXRlbXMo
KToKKyAgICAgICAgZm9yIGNhbm9uaWNhbGl6ZWRfYmluYXJ5LCBwYXRoIGluIHNlbGYuX3BvcnQu
cGF0aF90b19hcGlfdGVzdF9iaW5hcmllcygpLml0ZW1zKCk6CiAgICAgICAgICAgICBpZiBjYW5v
bmljYWxpemVkX2JpbmFyeSBub3QgaW4gc3BlY2lmaWVkX2JpbmFyaWVzOgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAgICAgICAgICAgICB0cnk6CkBAIC0xMjQsNyArMTI0LDcgQEAgY2xhc3Mg
TWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fc3RyZWFtLndyaXRlbG4ocnVubmVy
Lk5BTUVfRk9SX1NUQVRVU1tzdGF0dXNdKQogICAgICAgICAgICAgc2VsZi5fc3RyZWFtLndyaXRl
bG4oJycpCiAgICAgICAgICAgICBuZWVkX25ld2xpbmUgPSBGYWxzZQotICAgICAgICAgICAgZm9y
IHRlc3QsIG91dHB1dCBpbiBtYXBwaW5nLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgZm9yIHRl
c3QsIG91dHB1dCBpbiBpdGVyaXRlbXMobWFwcGluZyk6CiAgICAgICAgICAgICAgICAgbmVlZF9u
ZXdsaW5lID0gTWFuYWdlci5fcHJpbnRfdGVzdF9yZXN1bHQoc2VsZi5fc3RyZWFtLCB0ZXN0LCBv
dXRwdXQpCiAgICAgICAgICAgICBpZiBuZWVkX25ld2xpbmU6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5fc3RyZWFtLndyaXRlbG4oJycpCkBAIC0xODIsMTQgKzE4MiwxNCBAQCBjbGFzcyBNYW5hZ2Vy
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLndyaXRlbG4odGVzdCkKICAg
ICAgICAgICAgIHJldHVybiBNYW5hZ2VyLlNVQ0NFU1MKIAotICAgICAgICB0ZXN0X25hbWVzID0g
W3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9uYW1lcyBmb3IgXyBpbiB4cmFuZ2Uoc2VsZi5fb3B0aW9u
cy5yZXBlYXRfZWFjaCldCisgICAgICAgIHRlc3RfbmFtZXMgPSBbdGVzdCBmb3IgdGVzdCBpbiB0
ZXN0X25hbWVzIGZvciBfIGluIHJhbmdlKHNlbGYuX29wdGlvbnMucmVwZWF0X2VhY2gpXQogICAg
ICAgICBpZiBzZWxmLl9vcHRpb25zLnJlcGVhdF9lYWNoICE9IDE6CiAgICAgICAgICAgICBfbG9n
LmRlYnVnKCdSZXBlYXRpbmcgZWFjaCB0ZXN0IHt9IHRpbWVzJy5mb3JtYXQoc2VsZi5fb3B0aW9u
cy5pdGVyYXRpb25zKSkKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBfbG9nLmluZm8oJ1J1
bm5pbmcgdGVzdHMnKQogICAgICAgICAgICAgcnVubmVyID0gUnVubmVyKHNlbGYuX3BvcnQsIHNl
bGYuX3N0cmVhbSkKLSAgICAgICAgICAgIGZvciBpIGluIHhyYW5nZShzZWxmLl9vcHRpb25zLml0
ZXJhdGlvbnMpOgorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fb3B0aW9ucy5pdGVy
YXRpb25zKToKICAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdcbkl0ZXJhdGlvbiB7fScuZm9y
bWF0KGkgKyAxKSkKICAgICAgICAgICAgICAgICBydW5uZXIucnVuKHRlc3RfbmFtZXMsIGludChz
ZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykgaWYgc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9j
ZXNzZXMgZWxzZSBzZWxmLl9wb3J0LmRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKCkpCiAgICAgICAg
IGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBNYW5h
Z2VyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9wcmludF90ZXN0c19yZXN1bHRfd2l0aF9z
dGF0dXMocnVubmVyLlNUQVRVU19DUkFTSEVELCBydW5uZXIpCiAgICAgICAgICAgICBzZWxmLl9w
cmludF90ZXN0c19yZXN1bHRfd2l0aF9zdGF0dXMocnVubmVyLlNUQVRVU19USU1FT1VULCBydW5u
ZXIpCiAKLSAgICAgICAgICAgIGZvciB0ZXN0LCByZXN1bHQgaW4gcnVubmVyLnJlc3VsdHMuaXRl
cml0ZW1zKCk6CisgICAgICAgICAgICBmb3IgdGVzdCwgcmVzdWx0IGluIGl0ZXJpdGVtcyhydW5u
ZXIucmVzdWx0cyk6CiAgICAgICAgICAgICAgICAgc3RhdHVzX3RvX3N0cmluZyA9IHsKICAgICAg
ICAgICAgICAgICAgICAgcnVubmVyLlNUQVRVU19GQUlMRUQ6ICdGYWlsZWQnLAogICAgICAgICAg
ICAgICAgICAgICBydW5uZXIuU1RBVFVTX0NSQVNIRUQ6ICdDcmFzaGVkJywKQEAgLTI3MSw3ICsy
NzEsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHRlc3Rz
X3NraXBwZWQ9bGVuKHJlc3VsdF9kaWN0aW9uYXJ5WydTa2lwcGVkJ10pLAogICAgICAgICAgICAg
ICAgICksCiAgICAgICAgICAgICAgICAgcmVzdWx0cz17dGVzdDogVXBsb2FkLmNyZWF0ZV90ZXN0
X3Jlc3VsdChhY3R1YWw9c3RhdHVzX3RvX3Rlc3RfcmVzdWx0W3Jlc3VsdFswXV0pCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIHRlc3QsIHJlc3VsdCBpbiBydW5uZXIucmVzdWx0cy5pdGVy
aXRlbXMoKSBpZiByZXN1bHRbMF0gaW4gc3RhdHVzX3RvX3Rlc3RfcmVzdWx0fSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgdGVzdCwgcmVzdWx0IGluIGl0ZXJpdGVtcyhydW5uZXIucmVz
dWx0cykgaWYgcmVzdWx0WzBdIGluIHN0YXR1c190b190ZXN0X3Jlc3VsdH0sCiAgICAgICAgICAg
ICApCiAgICAgICAgICAgICBmb3IgdXJsIGluIHNlbGYuX29wdGlvbnMucmVwb3J0X3VybHM6CiAg
ICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLndyaXRlX3VwZGF0ZSgnVXBsb2FkaW5nIHRvIHt9
IC4uLicuZm9ybWF0KHVybCkpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0
cy9ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVz
dHMvcnVubmVyLnB5CShyZXZpc2lvbiAyNTI1NjMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2FwaV90ZXN0cy9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDEwIEBAIGlt
cG9ydCBsb2dnaW5nCiBpbXBvcnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQg
bWVzc2FnZV9wb29sCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5pdGVyYXRpb25fY29tcGF0aWJpbGl0
eSBpbXBvcnQgaXRlcml0ZW1zCiBmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1w
b3J0IFNlcnZlclByb2Nlc3MsIF9sb2cgYXMgc2VydmVyX3Byb2Nlc3NfbG9nZ2VyCiBmcm9tIHdl
YmtpdHB5Lnhjb2RlLnNpbXVsYXRlZF9kZXZpY2UgaW1wb3J0IFNpbXVsYXRlZERldmljZU1hbmFn
ZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgZGVj
b2RlX2ZvcgogCiAKIGNsYXNzIFJ1bm5lcihvYmplY3QpOgpAQCAtOTAsNyArOTIsNyBAQCBjbGFz
cyBSdW5uZXIob2JqZWN0KToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fbnVtX3dv
cmtlcnMgPSBtaW4obnVtX3dvcmtlcnMsIGxlbihzaGFyZHMpKQogICAgICAgICAgICAgd2l0aCBt
ZXNzYWdlX3Bvb2wuZ2V0KHNlbGYsIGxhbWJkYSBjYWxsZXI6IF9Xb3JrZXIoY2FsbGVyLCBzZWxm
LnBvcnQsIHNoYXJkcyksIHNlbGYuX251bV93b3JrZXJzKSBhcyBwb29sOgotICAgICAgICAgICAg
ICAgIHBvb2wucnVuKCgndGVzdCcsIHNoYXJkKSBmb3Igc2hhcmQsIF8gaW4gc2hhcmRzLml0ZXJp
dGVtcygpKQorICAgICAgICAgICAgICAgIHBvb2wucnVuKCgndGVzdCcsIHNoYXJkKSBmb3Igc2hh
cmQsIF8gaW4gaXRlcml0ZW1zKHNoYXJkcykpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAg
ICBzZXJ2ZXJfcHJvY2Vzc19sb2dnZXIuc2V0TGV2ZWwob3JpZ2luYWxfbGV2ZWwpCiAKQEAgLTEy
OSw3ICsxMzEsNyBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToKIAogICAgIGRlZiByZXN1bHRfbWFw
X2J5X3N0YXR1cyhzZWxmLCBzdGF0dXM9Tm9uZSk6CiAgICAgICAgIG1hcCA9IHt9Ci0gICAgICAg
IGZvciB0ZXN0X25hbWUsIHJlc3VsdCBpbiBzZWxmLnJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAg
ICAgIGZvciB0ZXN0X25hbWUsIHJlc3VsdCBpbiBpdGVyaXRlbXMoc2VsZi5yZXN1bHRzKToKICAg
ICAgICAgICAgIGlmIHJlc3VsdFswXSA9PSBzdGF0dXM6CiAgICAgICAgICAgICAgICAgbWFwW3Rl
c3RfbmFtZV0gPSByZXN1bHRbMV0KICAgICAgICAgcmV0dXJuIG1hcApAQCAtMTc3LDkgKzE3OSwx
MSBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAK
ICAgICAgICAgICAgICAgICBpZiBzdGRlcnJfbGluZToKKyAgICAgICAgICAgICAgICAgICAgc3Rk
ZXJyX2xpbmUgPSBkZWNvZGVfZm9yKHN0ZGVycl9saW5lLCBzdHIpCiAgICAgICAgICAgICAgICAg
ICAgIHN0ZGVycl9idWZmZXIgKz0gc3RkZXJyX2xpbmUKICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wb3N0KCdsb2cnLCBvdXRwdXQ9c3RkZXJyX2xpbmVbOi0xXSkKICAgICAgICAgICAgICAgICBp
ZiBzdGRvdXRfbGluZToKKyAgICAgICAgICAgICAgICAgICAgc3Rkb3V0X2xpbmUgPSBkZWNvZGVf
Zm9yKHN0ZG91dF9saW5lLCBzdHIpCiAgICAgICAgICAgICAgICAgICAgIGlmICcqKlBBU1MqKicg
aW4gc3Rkb3V0X2xpbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIu
U1RBVFVTX1BBU1NFRAogICAgICAgICAgICAgICAgICAgICBlbGlmICcqKkZBSUwqKicgaW4gc3Rk
b3V0X2xpbmU6CkBAIC0xOTgsOCArMjAyLDggQEAgY2xhc3MgX1dvcmtlcihvYmplY3QpOgogICAg
ICAgICAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFUVVNfRkFJTEVECiAKICAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHJlbWFpbmluZ19zdGRlcnIgPSBzZXJ2ZXJfcHJvY2Vzcy5wb3Bf
YWxsX2J1ZmZlcmVkX3N0ZGVycigpCi0gICAgICAgICAgICByZW1haW5pbmdfc3Rkb3V0ID0gc2Vy
dmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRvdXQoKQorICAgICAgICAgICAgcmVtYWlu
aW5nX3N0ZGVyciA9IGRlY29kZV9mb3Ioc2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9z
dGRlcnIoKSwgc3RyKQorICAgICAgICAgICAgcmVtYWluaW5nX3N0ZG91dCA9IGRlY29kZV9mb3Io
c2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRvdXQoKSwgc3RyKQogICAgICAgICAg
ICAgc2VsZi5wb3N0KCdsb2cnLCBvdXRwdXQ9cmVtYWluaW5nX3N0ZGVyciArIHJlbWFpbmluZ19z
dGRvdXQpCiAgICAgICAgICAgICBvdXRwdXRfYnVmZmVyID0gc3RkZXJyX2J1ZmZlciArIHN0ZG91
dF9idWZmZXIgKyByZW1haW5pbmdfc3RkZXJyICsgcmVtYWluaW5nX3N0ZG91dAogICAgICAgICAg
ICAgc2VydmVyX3Byb2Nlc3Muc3RvcCgpCkBAIC0yOTAsNSArMjk0LDUgQEAgY2xhc3MgX1dvcmtl
cihvYmplY3QpOgogICAgICAgICAgICAgaWYgc3BsaXRfdGVzdF9uYW1lWzBdIG5vdCBpbiBiaW5h
cnlfbWFwOgogICAgICAgICAgICAgICAgIGJpbmFyeV9tYXBbc3BsaXRfdGVzdF9uYW1lWzBdXSA9
IFtdCiAgICAgICAgICAgICBiaW5hcnlfbWFwW3NwbGl0X3Rlc3RfbmFtZVswXV0uYXBwZW5kKCcu
Jy5qb2luKHNwbGl0X3Rlc3RfbmFtZVsxOl0pKQotICAgICAgICBmb3IgYmluYXJ5X25hbWUsIHRl
c3RfbGlzdCBpbiBiaW5hcnlfbWFwLml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgYmluYXJ5X25h
bWUsIHRlc3RfbGlzdCBpbiBiaW5hcnlfbWFwLml0ZW1zKCk6CiAgICAgICAgICAgICBzZWxmLl9y
dW5fc2hhcmRfd2l0aF9iaW5hcnkoYmluYXJ5X25hbWUsIHRlc3RfbGlzdCkKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wucHkJKHJldmlzaW9uIDI1
MjU2MykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQko
d29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBfTWVzc2FnZVBvb2wob2JqZWN0
KToKICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gc2hhcmRzOgogICAgICAgICAgICAgc2VsZi5fbWVz
c2FnZXNfdG9fd29ya2VyLnB1dChfTWVzc2FnZShzZWxmLl9uYW1lLCBtZXNzYWdlWzBdLCBtZXNz
YWdlWzE6XSwgZnJvbV91c2VyPVRydWUsIGxvZ3M9KCkpKQogCi0gICAgICAgIGZvciBfIGluIHhy
YW5nZShzZWxmLl9udW1fd29ya2Vycyk6CisgICAgICAgIGZvciBfIGluIHJhbmdlKHNlbGYuX251
bV93b3JrZXJzKToKICAgICAgICAgICAgIHNlbGYuX21lc3NhZ2VzX3RvX3dvcmtlci5wdXQoX01l
c3NhZ2Uoc2VsZi5fbmFtZSwgJ3N0b3AnLCBtZXNzYWdlX2FyZ3M9KCksIGZyb21fdXNlcj1GYWxz
ZSwgbG9ncz0oKSkpCiAKICAgICAgICAgc2VsZi53YWl0KCkKQEAgLTExMCw3ICsxMTAsNyBAQCBj
bGFzcyBfTWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fcnVubmluZ19pbmxp
bmUgb3Igc2VsZi5fY2FuX3BpY2tsZShzZWxmLl9ob3N0KToKICAgICAgICAgICAgIGhvc3QgPSBz
ZWxmLl9ob3N0CiAKLSAgICAgICAgZm9yIHdvcmtlcl9udW1iZXIgaW4geHJhbmdlKHNlbGYuX251
bV93b3JrZXJzKToKKyAgICAgICAgZm9yIHdvcmtlcl9udW1iZXIgaW4gcmFuZ2Uoc2VsZi5fbnVt
X3dvcmtlcnMpOgogICAgICAgICAgICAgd29ya2VyID0gX1dvcmtlcihob3N0LCBzZWxmLl9tZXNz
YWdlc190b19tYW5hZ2VyLCBzZWxmLl9tZXNzYWdlc190b193b3JrZXIsIHNlbGYuX3dvcmtlcl9m
YWN0b3J5LCB3b3JrZXJfbnVtYmVyLCBzZWxmLl9ydW5uaW5nX2lubGluZSwgc2VsZiBpZiBzZWxm
Ll9ydW5uaW5nX2lubGluZSBlbHNlIE5vbmUsIHNlbGYuX3dvcmtlcl9sb2dfbGV2ZWwoKSkKICAg
ICAgICAgICAgIHNlbGYuX3dvcmtlcnMuYXBwZW5kKHdvcmtlcikKICAgICAgICAgICAgIHdvcmtl
ci5zdGFydCgpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tdWx0aXByb2Nl
c3NpbmdfYm9vdHN0cmFwLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL211bHRpcHJvY2Vzc2luZ19ib290c3RyYXAucHkJKHJldmlzaW9uIDI1MjU2MykKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL211bHRpcHJvY2Vzc2luZ19ib290c3RyYXAu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDYgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3Vi
cHJvY2VzcwogaW1wb3J0IHN5cwogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgdmVyc2lv
bl9jaGVjayAgICMgJ3VudXNlZCBpbXBvcnQnIHB5bGludDogZGlzYWJsZT1XMDYxMQotCiAKIGRl
ZiBydW4oKnBhcnRzKToKICAgICB1cCA9IG9zLnBhdGguZGlybmFtZQpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDI1MjU2MykKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNyArMjUxLDcgQEAg
Y2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBpZiBub3Qgc2VsZi5fcm9vdF93YXNfc2V0IGFu
ZCBzZWxmLmdldF9vcHRpb24oJ2J1aWxkJykgYW5kIG5vdCBzZWxmLl9idWlsZF9hcGlfdGVzdHMo
d3RmX29ubHk9KGNhbm9uaWNhbGl6ZWRfYmluYXJpZXMgPT0gWydUZXN0V1RGJ10pKToKICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgIGZvciBiaW5hcnksIHBhdGggaW4gc2VsZi5w
YXRoX3RvX2FwaV90ZXN0X2JpbmFyaWVzKCkuaXRlcml0ZW1zKCk6CisgICAgICAgIGZvciBiaW5h
cnksIHBhdGggaW4gc2VsZi5wYXRoX3RvX2FwaV90ZXN0X2JpbmFyaWVzKCkuaXRlbXMoKToKICAg
ICAgICAgICAgIGlmIGJpbmFyeSBub3QgaW4gY2Fub25pY2FsaXplZF9iaW5hcmllczoKICAgICAg
ICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYgbm90IHNlbGYuX2ZpbGVzeXN0ZW0u
ZXhpc3RzKHBhdGgpOgpAQCAtMTYwNSw3ICsxNjA1LDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgog
ICAgICAgICByZXBvc1snd2Via2l0J10gPSB1cCh1cCh1cCh1cCh1cChvcy5wYXRoLmFic3BhdGgo
X19maWxlX18pKSkpKSkKIAogICAgICAgICBjb21taXRzID0gW10KLSAgICAgICAgZm9yIHJlcG9f
aWQsIHBhdGggaW4gcmVwb3MuaXRlcml0ZW1zKCk6CisgICAgICAgIGZvciByZXBvX2lkLCBwYXRo
IGluIHJlcG9zLml0ZW1zKCk6CiAgICAgICAgICAgICBzY20gPSBTQ01EZXRlY3RvcihzZWxmLl9m
aWxlc3lzdGVtLCBzZWxmLl9leGVjdXRpdmUpLmRldGVjdF9zY21fc3lzdGVtKHBhdGgpCiAgICAg
ICAgICAgICBjb21taXRzLmFwcGVuZChVcGxvYWQuY3JlYXRlX2NvbW1pdCgKICAgICAgICAgICAg
ICAgICByZXBvc2l0b3J5X2lkPXJlcG9faWQsCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzLnB5CShyZXZpc2lvbiAyNTI1NjMpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAg
LTExMCw4ICsxMTAsOCBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgc2VsZi5fcHJvYy5zdGRlcnIgPSBOb25lCiAKICAgICAgICAgc2VsZi5fcHJvYyA9IE5v
bmUKLSAgICAgICAgc2VsZi5fb3V0cHV0ID0gc3RyKCkgICMgYnl0ZXNhcnJheSgpIG9uY2Ugd2Ug
cmVxdWlyZSBQeXRob24gMi42Ci0gICAgICAgIHNlbGYuX2Vycm9yID0gc3RyKCkgICMgYnl0ZXNh
cnJheSgpIG9uY2Ugd2UgcmVxdWlyZSBQeXRob24gMi42CisgICAgICAgIHNlbGYuX291dHB1dCA9
IGInJworICAgICAgICBzZWxmLl9lcnJvciA9IGInJwogICAgICAgICBzZWxmLl9jcmFzaGVkID0g
RmFsc2UKICAgICAgICAgc2VsZi50aW1lZF9vdXQgPSBGYWxzZQogCkBAIC0xODgsMTMgKzE4OCwx
MyBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5f
Y3Jhc2hlZCA9IFRydWUKIAogICAgIGRlZiBfcG9wX3N0ZG91dF9saW5lX2lmX3JlYWR5KHNlbGYp
OgotICAgICAgICBpbmRleF9hZnRlcl9uZXdsaW5lID0gc2VsZi5fb3V0cHV0LmZpbmQoJ1xuJykg
KyAxCisgICAgICAgIGluZGV4X2FmdGVyX25ld2xpbmUgPSBzZWxmLl9vdXRwdXQuZmluZChiJ1xu
JykgKyAxCiAgICAgICAgIGlmIGluZGV4X2FmdGVyX25ld2xpbmUgPiAwOgogICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3BvcF9vdXRwdXRfYnl0ZXMoaW5kZXhfYWZ0ZXJfbmV3bGluZSkKICAgICAg
ICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBfcG9wX3N0ZGVycl9saW5lX2lmX3JlYWR5KHNlbGYp
OgotICAgICAgICBpbmRleF9hZnRlcl9uZXdsaW5lID0gc2VsZi5fZXJyb3IuZmluZCgnXG4nKSAr
IDEKKyAgICAgICAgaW5kZXhfYWZ0ZXJfbmV3bGluZSA9IHNlbGYuX2Vycm9yLmZpbmQoYidcbicp
ICsgMQogICAgICAgICBpZiBpbmRleF9hZnRlcl9uZXdsaW5lID4gMDoKICAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9wb3BfZXJyb3JfYnl0ZXMoaW5kZXhfYWZ0ZXJfbmV3bGluZSkKICAgICAgICAg
cmV0dXJuIE5vbmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383814</attachid>
            <date>2019-11-18 17:22:59 -0800</date>
            <delta_ts>2019-11-18 17:51:25 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204252-20191118172258.patch</filename>
            <type>text/plain</type>
            <size>12459</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjYxMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE5LTExLTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogU3VwcG9ydCBydW4tYXBpLXRlc3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNTIKKworICAgICAgICBS
dWJiZXItc3RhbXBlZCBieSBBYWthc2ggSmFpbi4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvYXBpX3Rlc3RzL21hbmFnZXIucHk6CisgICAgICAgIChNYW5hZ2VyLl9jb2xsZWN0X3Rlc3Rz
KTogVXNlIGl0ZW1zIG92ZXIgaXRlcml0ZW1zLgorICAgICAgICAoTWFuYWdlci5fcHJpbnRfdGVz
dHNfcmVzdWx0X3dpdGhfc3RhdHVzKTogVXNlIGNvbXBhdGlibGUgaXRlcml0ZW1zLgorICAgICAg
ICAoTWFuYWdlci5ydW4pOiBVc2UgcmFuZ2Ugb3ZlciB4cmFuZ2UsIHVzZSBjb21wYXRpYmxlIGl0
ZXJpdGVtcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHk6
CisgICAgICAgIChSdW5uZXIucnVuKTogVXNlIGNvbXBhdGlibGUgaXRlcml0ZW1zLgorICAgICAg
ICAoUnVubmVyLnJlc3VsdF9tYXBfYnlfc3RhdHVzKTogRGl0dG8uCisgICAgICAgIChfV29ya2Vy
Ll9ydW5fc2luZ2xlX3Rlc3QpOiBTZXJ2ZXIgcHJvY2VzcyByZXR1cm5zIGJ5dGUgYXJyYXlzLCBu
b3Qgc3RyaW5ncy4KKyAgICAgICAgKF9Xb3JrZXIuaGFuZGxlKTogVXNlIGl0ZW1zIG92ZXIgaXRl
cml0ZW1zLCB1c2UgcmFuZ2Ugb3ZlciB4cmFuZ2UuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbWVzc2FnZV9wb29sLnB5OgorICAgICAgICAoX01lc3NhZ2VQb29sLnJ1bik6IFVz
ZSByYW5nZSBvdmVyIHhyYW5nZS4KKyAgICAgICAgKF9NZXNzYWdlUG9vbC5fc3RhcnRfd29ya2Vy
cyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL211bHRpcHJvY2Vz
c2luZ19ib290c3RyYXAucHk6IFJlbW92ZSB2ZXJzaW9uIGNoZWNrLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5jaGVja19hcGlfdGVzdF9i
dWlsZCk6VXNlIGl0ZW1zIG92ZXIgaXRlcml0ZW1zLgorICAgICAgICAoUG9ydC5jb21taXRzX2Zv
cl91cGxvYWQpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVy
X3Byb2Nlc3MucHk6CisgICAgICAgIChTZXJ2ZXJQcm9jZXNzLl9yZXNldCk6IFVzZSBieXRlIGFy
cmF5IG92ZXIgc3RyaW5nLgorICAgICAgICAoU2VydmVyUHJvY2Vzcy5fcG9wX3N0ZG91dF9saW5l
X2lmX3JlYWR5KTogQ2hlY2sgZm9yIGJ5dGVzIG5ld2xpbmUuCisgICAgICAgIChTZXJ2ZXJQcm9j
ZXNzLl9wb3Bfc3RkZXJyX2xpbmVfaWZfcmVhZHkpOiBEaXR0by4KKwogMjAxOS0xMS0xOCAgQW5k
cmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgUnVuIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCBvbiBzZWNvbmRhcnkgdGhyZWFkIHRvIHNp
bXVsYXRlIEhJU2VydmljZXMgZHVyaW5nIExheW91dFRlc3RzLgpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9hcGlfdGVzdHMvbWFuYWdlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5CShyZXZpc2lvbiAyNTI2MTMpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw5ICsyNSw5IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdGltZQogCiBmcm9tIHdl
YmtpdHB5LmFwaV90ZXN0cy5ydW5uZXIgaW1wb3J0IFJ1bm5lcgorZnJvbSB3ZWJraXRweS5jb21t
b24uaXRlcmF0aW9uX2NvbXBhdGliaWxpdHkgaW1wb3J0IGl0ZXJpdGVtcwogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0
cHkucmVzdWx0cy51cGxvYWQgaW1wb3J0IFVwbG9hZAotCiBmcm9tIHdlYmtpdHB5Lnhjb2RlLnNp
bXVsYXRlZF9kZXZpY2UgaW1wb3J0IERldmljZVJlcXVlc3QsIFNpbXVsYXRlZERldmljZU1hbmFn
ZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQpAQCAtOTEsNyArOTEsNyBA
QCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF9jb2xsZWN0X3Rlc3RzKHNlbGYsIGFy
Z3MpOgogICAgICAgICBhdmFpbGFibGVfdGVzdHMgPSBbXQogICAgICAgICBzcGVjaWZpZWRfYmlu
YXJpZXMgPSBzZWxmLl9iaW5hcmllc19mb3JfYXJndW1lbnRzKGFyZ3MpCi0gICAgICAgIGZvciBj
YW5vbmljYWxpemVkX2JpbmFyeSwgcGF0aCBpbiBzZWxmLl9wb3J0LnBhdGhfdG9fYXBpX3Rlc3Rf
YmluYXJpZXMoKS5pdGVyaXRlbXMoKToKKyAgICAgICAgZm9yIGNhbm9uaWNhbGl6ZWRfYmluYXJ5
LCBwYXRoIGluIHNlbGYuX3BvcnQucGF0aF90b19hcGlfdGVzdF9iaW5hcmllcygpLml0ZW1zKCk6
CiAgICAgICAgICAgICBpZiBjYW5vbmljYWxpemVkX2JpbmFyeSBub3QgaW4gc3BlY2lmaWVkX2Jp
bmFyaWVzOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICB0cnk6CkBAIC0x
MjQsNyArMTI0LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5f
c3RyZWFtLndyaXRlbG4ocnVubmVyLk5BTUVfRk9SX1NUQVRVU1tzdGF0dXNdKQogICAgICAgICAg
ICAgc2VsZi5fc3RyZWFtLndyaXRlbG4oJycpCiAgICAgICAgICAgICBuZWVkX25ld2xpbmUgPSBG
YWxzZQotICAgICAgICAgICAgZm9yIHRlc3QsIG91dHB1dCBpbiBtYXBwaW5nLml0ZXJpdGVtcygp
OgorICAgICAgICAgICAgZm9yIHRlc3QsIG91dHB1dCBpbiBpdGVyaXRlbXMobWFwcGluZyk6CiAg
ICAgICAgICAgICAgICAgbmVlZF9uZXdsaW5lID0gTWFuYWdlci5fcHJpbnRfdGVzdF9yZXN1bHQo
c2VsZi5fc3RyZWFtLCB0ZXN0LCBvdXRwdXQpCiAgICAgICAgICAgICBpZiBuZWVkX25ld2xpbmU6
CiAgICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLndyaXRlbG4oJycpCkBAIC0xODIsMTQgKzE4
MiwxNCBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fc3Ry
ZWFtLndyaXRlbG4odGVzdCkKICAgICAgICAgICAgIHJldHVybiBNYW5hZ2VyLlNVQ0NFU1MKIAot
ICAgICAgICB0ZXN0X25hbWVzID0gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9uYW1lcyBmb3IgXyBp
biB4cmFuZ2Uoc2VsZi5fb3B0aW9ucy5yZXBlYXRfZWFjaCldCisgICAgICAgIHRlc3RfbmFtZXMg
PSBbdGVzdCBmb3IgdGVzdCBpbiB0ZXN0X25hbWVzIGZvciBfIGluIHJhbmdlKHNlbGYuX29wdGlv
bnMucmVwZWF0X2VhY2gpXQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnJlcGVhdF9lYWNoICE9
IDE6CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCdSZXBlYXRpbmcgZWFjaCB0ZXN0IHt9IHRpbWVz
Jy5mb3JtYXQoc2VsZi5fb3B0aW9ucy5pdGVyYXRpb25zKSkKIAogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBfbG9nLmluZm8oJ1J1bm5pbmcgdGVzdHMnKQogICAgICAgICAgICAgcnVubmVyID0g
UnVubmVyKHNlbGYuX3BvcnQsIHNlbGYuX3N0cmVhbSkKLSAgICAgICAgICAgIGZvciBpIGluIHhy
YW5nZShzZWxmLl9vcHRpb25zLml0ZXJhdGlvbnMpOgorICAgICAgICAgICAgZm9yIGkgaW4gcmFu
Z2Uoc2VsZi5fb3B0aW9ucy5pdGVyYXRpb25zKToKICAgICAgICAgICAgICAgICBfbG9nLmRlYnVn
KCdcbkl0ZXJhdGlvbiB7fScuZm9ybWF0KGkgKyAxKSkKICAgICAgICAgICAgICAgICBydW5uZXIu
cnVuKHRlc3RfbmFtZXMsIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykgaWYgc2Vs
Zi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMgZWxzZSBzZWxmLl9wb3J0LmRlZmF1bHRfY2hpbGRf
cHJvY2Vzc2VzKCkpCiAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKQEAgLTIzNSw3
ICsyMzUsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9wcmlu
dF90ZXN0c19yZXN1bHRfd2l0aF9zdGF0dXMocnVubmVyLlNUQVRVU19DUkFTSEVELCBydW5uZXIp
CiAgICAgICAgICAgICBzZWxmLl9wcmludF90ZXN0c19yZXN1bHRfd2l0aF9zdGF0dXMocnVubmVy
LlNUQVRVU19USU1FT1VULCBydW5uZXIpCiAKLSAgICAgICAgICAgIGZvciB0ZXN0LCByZXN1bHQg
aW4gcnVubmVyLnJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBmb3IgdGVzdCwgcmVz
dWx0IGluIGl0ZXJpdGVtcyhydW5uZXIucmVzdWx0cyk6CiAgICAgICAgICAgICAgICAgc3RhdHVz
X3RvX3N0cmluZyA9IHsKICAgICAgICAgICAgICAgICAgICAgcnVubmVyLlNUQVRVU19GQUlMRUQ6
ICdGYWlsZWQnLAogICAgICAgICAgICAgICAgICAgICBydW5uZXIuU1RBVFVTX0NSQVNIRUQ6ICdD
cmFzaGVkJywKQEAgLTI3MSw3ICsyNzEsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIHRlc3RzX3NraXBwZWQ9bGVuKHJlc3VsdF9kaWN0aW9uYXJ5WydTa2lw
cGVkJ10pLAogICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgcmVzdWx0cz17dGVz
dDogVXBsb2FkLmNyZWF0ZV90ZXN0X3Jlc3VsdChhY3R1YWw9c3RhdHVzX3RvX3Rlc3RfcmVzdWx0
W3Jlc3VsdFswXV0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRlc3QsIHJlc3VsdCBp
biBydW5uZXIucmVzdWx0cy5pdGVyaXRlbXMoKSBpZiByZXN1bHRbMF0gaW4gc3RhdHVzX3RvX3Rl
c3RfcmVzdWx0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdCwgcmVzdWx0IGlu
IGl0ZXJpdGVtcyhydW5uZXIucmVzdWx0cykgaWYgcmVzdWx0WzBdIGluIHN0YXR1c190b190ZXN0
X3Jlc3VsdH0sCiAgICAgICAgICAgICApCiAgICAgICAgICAgICBmb3IgdXJsIGluIHNlbGYuX29w
dGlvbnMucmVwb3J0X3VybHM6CiAgICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLndyaXRlX3Vw
ZGF0ZSgnVXBsb2FkaW5nIHRvIHt9IC4uLicuZm9ybWF0KHVybCkpCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVubmVyLnB5CShyZXZpc2lvbiAyNTI2MTMpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDggKzI1LDEwIEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdGltZQogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbiBpbXBvcnQgbWVzc2FnZV9wb29sCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5p
dGVyYXRpb25fY29tcGF0aWJpbGl0eSBpbXBvcnQgaXRlcml0ZW1zCiBmcm9tIHdlYmtpdHB5LnBv
cnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MsIF9sb2cgYXMgc2VydmVyX3By
b2Nlc3NfbG9nZ2VyCiBmcm9tIHdlYmtpdHB5Lnhjb2RlLnNpbXVsYXRlZF9kZXZpY2UgaW1wb3J0
IFNpbXVsYXRlZERldmljZU1hbmFnZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnVuaWNvZGVfY29t
cGF0aWJpbGl0eSBpbXBvcnQgZGVjb2RlX2ZvcgogCiAKIGNsYXNzIFJ1bm5lcihvYmplY3QpOgpA
QCAtOTAsNyArOTIsNyBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgc2VsZi5fbnVtX3dvcmtlcnMgPSBtaW4obnVtX3dvcmtlcnMsIGxlbihzaGFyZHMp
KQogICAgICAgICAgICAgd2l0aCBtZXNzYWdlX3Bvb2wuZ2V0KHNlbGYsIGxhbWJkYSBjYWxsZXI6
IF9Xb3JrZXIoY2FsbGVyLCBzZWxmLnBvcnQsIHNoYXJkcyksIHNlbGYuX251bV93b3JrZXJzKSBh
cyBwb29sOgotICAgICAgICAgICAgICAgIHBvb2wucnVuKCgndGVzdCcsIHNoYXJkKSBmb3Igc2hh
cmQsIF8gaW4gc2hhcmRzLml0ZXJpdGVtcygpKQorICAgICAgICAgICAgICAgIHBvb2wucnVuKCgn
dGVzdCcsIHNoYXJkKSBmb3Igc2hhcmQsIF8gaW4gaXRlcml0ZW1zKHNoYXJkcykpCiAgICAgICAg
IGZpbmFsbHk6CiAgICAgICAgICAgICBzZXJ2ZXJfcHJvY2Vzc19sb2dnZXIuc2V0TGV2ZWwob3Jp
Z2luYWxfbGV2ZWwpCiAKQEAgLTEyOSw3ICsxMzEsNyBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToK
IAogICAgIGRlZiByZXN1bHRfbWFwX2J5X3N0YXR1cyhzZWxmLCBzdGF0dXM9Tm9uZSk6CiAgICAg
ICAgIG1hcCA9IHt9Ci0gICAgICAgIGZvciB0ZXN0X25hbWUsIHJlc3VsdCBpbiBzZWxmLnJlc3Vs
dHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGZvciB0ZXN0X25hbWUsIHJlc3VsdCBpbiBpdGVyaXRl
bXMoc2VsZi5yZXN1bHRzKToKICAgICAgICAgICAgIGlmIHJlc3VsdFswXSA9PSBzdGF0dXM6CiAg
ICAgICAgICAgICAgICAgbWFwW3Rlc3RfbmFtZV0gPSByZXN1bHRbMV0KICAgICAgICAgcmV0dXJu
IG1hcApAQCAtMTc3LDkgKzE3OSwxMSBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCiAKICAgICAgICAgICAgICAgICBpZiBzdGRlcnJfbGluZToKKyAg
ICAgICAgICAgICAgICAgICAgc3RkZXJyX2xpbmUgPSBkZWNvZGVfZm9yKHN0ZGVycl9saW5lLCBz
dHIpCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl9idWZmZXIgKz0gc3RkZXJyX2xpbmUKICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0KCdsb2cnLCBvdXRwdXQ9c3RkZXJyX2xpbmVbOi0x
XSkKICAgICAgICAgICAgICAgICBpZiBzdGRvdXRfbGluZToKKyAgICAgICAgICAgICAgICAgICAg
c3Rkb3V0X2xpbmUgPSBkZWNvZGVfZm9yKHN0ZG91dF9saW5lLCBzdHIpCiAgICAgICAgICAgICAg
ICAgICAgIGlmICcqKlBBU1MqKicgaW4gc3Rkb3V0X2xpbmU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX1BBU1NFRAogICAgICAgICAgICAgICAgICAgICBl
bGlmICcqKkZBSUwqKicgaW4gc3Rkb3V0X2xpbmU6CkBAIC0xOTgsOCArMjAyLDggQEAgY2xhc3Mg
X1dvcmtlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFUVVNf
RkFJTEVECiAKICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHJlbWFpbmluZ19zdGRlcnIg
PSBzZXJ2ZXJfcHJvY2Vzcy5wb3BfYWxsX2J1ZmZlcmVkX3N0ZGVycigpCi0gICAgICAgICAgICBy
ZW1haW5pbmdfc3Rkb3V0ID0gc2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRvdXQo
KQorICAgICAgICAgICAgcmVtYWluaW5nX3N0ZGVyciA9IGRlY29kZV9mb3Ioc2VydmVyX3Byb2Nl
c3MucG9wX2FsbF9idWZmZXJlZF9zdGRlcnIoKSwgc3RyKQorICAgICAgICAgICAgcmVtYWluaW5n
X3N0ZG91dCA9IGRlY29kZV9mb3Ioc2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRv
dXQoKSwgc3RyKQogICAgICAgICAgICAgc2VsZi5wb3N0KCdsb2cnLCBvdXRwdXQ9cmVtYWluaW5n
X3N0ZGVyciArIHJlbWFpbmluZ19zdGRvdXQpCiAgICAgICAgICAgICBvdXRwdXRfYnVmZmVyID0g
c3RkZXJyX2J1ZmZlciArIHN0ZG91dF9idWZmZXIgKyByZW1haW5pbmdfc3RkZXJyICsgcmVtYWlu
aW5nX3N0ZG91dAogICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3Muc3RvcCgpCkBAIC0yOTAsNSAr
Mjk0LDUgQEAgY2xhc3MgX1dvcmtlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgc3BsaXRfdGVz
dF9uYW1lWzBdIG5vdCBpbiBiaW5hcnlfbWFwOgogICAgICAgICAgICAgICAgIGJpbmFyeV9tYXBb
c3BsaXRfdGVzdF9uYW1lWzBdXSA9IFtdCiAgICAgICAgICAgICBiaW5hcnlfbWFwW3NwbGl0X3Rl
c3RfbmFtZVswXV0uYXBwZW5kKCcuJy5qb2luKHNwbGl0X3Rlc3RfbmFtZVsxOl0pKQotICAgICAg
ICBmb3IgYmluYXJ5X25hbWUsIHRlc3RfbGlzdCBpbiBiaW5hcnlfbWFwLml0ZXJpdGVtcygpOgor
ICAgICAgICBmb3IgYmluYXJ5X25hbWUsIHRlc3RfbGlzdCBpbiBiaW5hcnlfbWFwLml0ZW1zKCk6
CiAgICAgICAgICAgICBzZWxmLl9ydW5fc2hhcmRfd2l0aF9iaW5hcnkoYmluYXJ5X25hbWUsIHRl
c3RfbGlzdCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9v
bC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZXNzYWdl
X3Bvb2wucHkJKHJldmlzaW9uIDI1MjYxMykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL21lc3NhZ2VfcG9vbC5weQkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBjbGFz
cyBfTWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gc2hhcmRzOgog
ICAgICAgICAgICAgc2VsZi5fbWVzc2FnZXNfdG9fd29ya2VyLnB1dChfTWVzc2FnZShzZWxmLl9u
YW1lLCBtZXNzYWdlWzBdLCBtZXNzYWdlWzE6XSwgZnJvbV91c2VyPVRydWUsIGxvZ3M9KCkpKQog
Ci0gICAgICAgIGZvciBfIGluIHhyYW5nZShzZWxmLl9udW1fd29ya2Vycyk6CisgICAgICAgIGZv
ciBfIGluIHJhbmdlKHNlbGYuX251bV93b3JrZXJzKToKICAgICAgICAgICAgIHNlbGYuX21lc3Nh
Z2VzX3RvX3dvcmtlci5wdXQoX01lc3NhZ2Uoc2VsZi5fbmFtZSwgJ3N0b3AnLCBtZXNzYWdlX2Fy
Z3M9KCksIGZyb21fdXNlcj1GYWxzZSwgbG9ncz0oKSkpCiAKICAgICAgICAgc2VsZi53YWl0KCkK
QEAgLTExMCw3ICsxMTAsNyBAQCBjbGFzcyBfTWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAg
aWYgc2VsZi5fcnVubmluZ19pbmxpbmUgb3Igc2VsZi5fY2FuX3BpY2tsZShzZWxmLl9ob3N0KToK
ICAgICAgICAgICAgIGhvc3QgPSBzZWxmLl9ob3N0CiAKLSAgICAgICAgZm9yIHdvcmtlcl9udW1i
ZXIgaW4geHJhbmdlKHNlbGYuX251bV93b3JrZXJzKToKKyAgICAgICAgZm9yIHdvcmtlcl9udW1i
ZXIgaW4gcmFuZ2Uoc2VsZi5fbnVtX3dvcmtlcnMpOgogICAgICAgICAgICAgd29ya2VyID0gX1dv
cmtlcihob3N0LCBzZWxmLl9tZXNzYWdlc190b19tYW5hZ2VyLCBzZWxmLl9tZXNzYWdlc190b193
b3JrZXIsIHNlbGYuX3dvcmtlcl9mYWN0b3J5LCB3b3JrZXJfbnVtYmVyLCBzZWxmLl9ydW5uaW5n
X2lubGluZSwgc2VsZiBpZiBzZWxmLl9ydW5uaW5nX2lubGluZSBlbHNlIE5vbmUsIHNlbGYuX3dv
cmtlcl9sb2dfbGV2ZWwoKSkKICAgICAgICAgICAgIHNlbGYuX3dvcmtlcnMuYXBwZW5kKHdvcmtl
cikKICAgICAgICAgICAgIHdvcmtlci5zdGFydCgpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9tdWx0aXByb2Nlc3NpbmdfYm9vdHN0cmFwLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL211bHRpcHJvY2Vzc2luZ19ib290c3RyYXAucHkJ
KHJldmlzaW9uIDI1MjYxMykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL211bHRp
cHJvY2Vzc2luZ19ib290c3RyYXAucHkJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDYgQEAg
aW1wb3J0IG9zCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCi1mcm9tIHdlYmtpdHB5
LmNvbW1vbiBpbXBvcnQgdmVyc2lvbl9jaGVjayAgICMgJ3VudXNlZCBpbXBvcnQnIHB5bGludDog
ZGlzYWJsZT1XMDYxMQotCiAKIGRlZiBydW4oKnBhcnRzKToKICAgICB1cCA9IG9zLnBhdGguZGly
bmFtZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDI1MjYx
MykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0yNTEsNyArMjUxLDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBpZiBub3Qg
c2VsZi5fcm9vdF93YXNfc2V0IGFuZCBzZWxmLmdldF9vcHRpb24oJ2J1aWxkJykgYW5kIG5vdCBz
ZWxmLl9idWlsZF9hcGlfdGVzdHMod3RmX29ubHk9KGNhbm9uaWNhbGl6ZWRfYmluYXJpZXMgPT0g
WydUZXN0V1RGJ10pKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgIGZvciBi
aW5hcnksIHBhdGggaW4gc2VsZi5wYXRoX3RvX2FwaV90ZXN0X2JpbmFyaWVzKCkuaXRlcml0ZW1z
KCk6CisgICAgICAgIGZvciBiaW5hcnksIHBhdGggaW4gc2VsZi5wYXRoX3RvX2FwaV90ZXN0X2Jp
bmFyaWVzKCkuaXRlbXMoKToKICAgICAgICAgICAgIGlmIGJpbmFyeSBub3QgaW4gY2Fub25pY2Fs
aXplZF9iaW5hcmllczoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYg
bm90IHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKHBhdGgpOgpAQCAtMTYwNSw3ICsxNjA1LDcgQEAg
Y2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICByZXBvc1snd2Via2l0J10gPSB1cCh1cCh1cCh1
cCh1cChvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSkpKSkKIAogICAgICAgICBjb21taXRzID0g
W10KLSAgICAgICAgZm9yIHJlcG9faWQsIHBhdGggaW4gcmVwb3MuaXRlcml0ZW1zKCk6CisgICAg
ICAgIGZvciByZXBvX2lkLCBwYXRoIGluIHJlcG9zLml0ZW1zKCk6CiAgICAgICAgICAgICBzY20g
PSBTQ01EZXRlY3RvcihzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9leGVjdXRpdmUpLmRldGVjdF9z
Y21fc3lzdGVtKHBhdGgpCiAgICAgICAgICAgICBjb21taXRzLmFwcGVuZChVcGxvYWQuY3JlYXRl
X2NvbW1pdCgKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPXJlcG9faWQsCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzLnB5CShyZXZpc2lv
biAyNTI2MTMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3Mu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTExMCw4ICsxMTAsOCBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNz
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy5zdGRlcnIgPSBOb25lCiAKICAg
ICAgICAgc2VsZi5fcHJvYyA9IE5vbmUKLSAgICAgICAgc2VsZi5fb3V0cHV0ID0gc3RyKCkgICMg
Ynl0ZXNhcnJheSgpIG9uY2Ugd2UgcmVxdWlyZSBQeXRob24gMi42Ci0gICAgICAgIHNlbGYuX2Vy
cm9yID0gc3RyKCkgICMgYnl0ZXNhcnJheSgpIG9uY2Ugd2UgcmVxdWlyZSBQeXRob24gMi42Cisg
ICAgICAgIHNlbGYuX291dHB1dCA9IGInJworICAgICAgICBzZWxmLl9lcnJvciA9IGInJwogICAg
ICAgICBzZWxmLl9jcmFzaGVkID0gRmFsc2UKICAgICAgICAgc2VsZi50aW1lZF9vdXQgPSBGYWxz
ZQogCkBAIC0xODgsMTMgKzE4OCwxMyBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgc2VsZi5fY3Jhc2hlZCA9IFRydWUKIAogICAgIGRlZiBfcG9wX3N0ZG91
dF9saW5lX2lmX3JlYWR5KHNlbGYpOgotICAgICAgICBpbmRleF9hZnRlcl9uZXdsaW5lID0gc2Vs
Zi5fb3V0cHV0LmZpbmQoJ1xuJykgKyAxCisgICAgICAgIGluZGV4X2FmdGVyX25ld2xpbmUgPSBz
ZWxmLl9vdXRwdXQuZmluZChiJ1xuJykgKyAxCiAgICAgICAgIGlmIGluZGV4X2FmdGVyX25ld2xp
bmUgPiAwOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BvcF9vdXRwdXRfYnl0ZXMoaW5kZXhf
YWZ0ZXJfbmV3bGluZSkKICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBfcG9wX3N0ZGVy
cl9saW5lX2lmX3JlYWR5KHNlbGYpOgotICAgICAgICBpbmRleF9hZnRlcl9uZXdsaW5lID0gc2Vs
Zi5fZXJyb3IuZmluZCgnXG4nKSArIDEKKyAgICAgICAgaW5kZXhfYWZ0ZXJfbmV3bGluZSA9IHNl
bGYuX2Vycm9yLmZpbmQoYidcbicpICsgMQogICAgICAgICBpZiBpbmRleF9hZnRlcl9uZXdsaW5l
ID4gMDoKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wb3BfZXJyb3JfYnl0ZXMoaW5kZXhfYWZ0
ZXJfbmV3bGluZSkKICAgICAgICAgcmV0dXJuIE5vbmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>