<?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>78209</bug_id>
          
          <creation_ts>2012-02-09 00:14:45 -0800</creation_ts>
          <short_desc>Perf-o-matic should update memcache in taskqueue</short_desc>
          <delta_ts>2012-02-09 12:20:45 -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>WebKit Website</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>552914</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 00:14:45 -0800</bug_when>
    <thetext>webkit-perf.appspot.com takes forever to load right now because we update manifest, dashboard, etc... on demand. It creates memcache on demand but we should be doing in taskqueue instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552920</commentid>
    <comment_count>1</comment_count>
      <attachid>126251</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 00:24:23 -0800</bug_when>
    <thetext>Created attachment 126251
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552925</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 00:33:43 -0800</bug_when>
    <thetext>FWIW, I&apos;ve already pushed this version to webkit-perf.appspot.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553373</commentid>
    <comment_count>3</comment_count>
      <attachid>126251</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-09 11:49:22 -0800</bug_when>
    <thetext>Comment on attachment 126251
Fixes the bug

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

&gt; Websites/webkit-perf.appspot.com/controller.py:47
&gt; +        self.response.headers[&apos;Content-Type&apos;] = &apos;application/json; charset=utf-8&apos;

You shouldn&apos;t need a charset parameter for application/json.  It&apos;s always UTF-8.  charset parameters are only for text/... MIME types.

&gt; Websites/webkit-perf.appspot.com/controller.py:65
&gt; +        self.response.headers[&apos;Content-Type&apos;] = &apos;application/json; charset=utf-8&apos;

ditto

&gt; Websites/webkit-perf.appspot.com/controller.py:83
&gt; +        self.response.headers[&apos;Content-Type&apos;] = &apos;application/json; charset=utf-8&apos;

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553380</commentid>
    <comment_count>4</comment_count>
      <attachid>126251</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 11:53:50 -0800</bug_when>
    <thetext>Comment on attachment 126251
Fixes the bug

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

&gt;&gt; Websites/webkit-perf.appspot.com/controller.py:47
&gt;&gt; +        self.response.headers[&apos;Content-Type&apos;] = &apos;application/json; charset=utf-8&apos;
&gt; 
&gt; You shouldn&apos;t need a charset parameter for application/json.  It&apos;s always UTF-8.  charset parameters are only for text/... MIME types.

I see. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553408</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 12:20:45 -0800</bug_when>
    <thetext>Committed r107274: &lt;http://trac.webkit.org/changeset/107274&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126251</attachid>
            <date>2012-02-09 00:24:23 -0800</date>
            <delta_ts>2012-02-09 11:53:50 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-78209-20120209002422.patch</filename>
            <type>text/plain</type>
            <size>17288</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzE4
OSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAy
LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFBlcmYtby1t
YXRpYyBzaG91bGQgdXBkYXRlIG1lbWNhY2hlIGluIHRhc2txdWV1ZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgZGFzaGJvYXJkLCBtYW5pZmVz
dCwgYW5kIHJ1bnMgbWVtY2FjaGVzIGluIHRhc2txdWV1ZS4KKyAgICAgICAgQWxzbyBjZW50cmFs
aXplZCB0aGUgbWFuYWdlbWVudCBvZiBjYWNoZXMgaW4gY29udHJvbGxlci5weS4KKworICAgICAg
ICAqIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2FwcC55YW1sOgorICAgICAgICAq
IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2NvbnRyb2xsZXIucHk6IEFkZGVkLgor
ICAgICAgICAoY2FjaGVfbWFuaWZlc3QpOgorICAgICAgICAoc2NoZWR1bGVfbWFuaWZlc3RfdXBk
YXRlKToKKyAgICAgICAgKENhY2hlZE1hbmlmZXN0SGFuZGxlcik6CisgICAgICAgIChDYWNoZWRN
YW5pZmVzdEhhbmRsZXIuZ2V0KToKKyAgICAgICAgKGNhY2hlX2Rhc2hib2FyZCk6CisgICAgICAg
IChzY2hlZHVsZV9kYXNoYm9hcmRfdXBkYXRlKToKKyAgICAgICAgKENhY2hlZERhc2hib2FyZEhh
bmRsZXIpOgorICAgICAgICAoQ2FjaGVkRGFzaGJvYXJkSGFuZGxlci5nZXQpOgorICAgICAgICAo
Y2FjaGVfcnVucyk6CisgICAgICAgIChzY2hlZHVsZV9ydW5zX3VwZGF0ZSk6CisgICAgICAgIChD
YWNoZWRSdW5zSGFuZGxlcik6CisgICAgICAgIChDYWNoZWRSdW5zSGFuZGxlci5nZXQpOgorICAg
ICAgICAqIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2NyZWF0ZV9oYW5kbGVyLnB5
OgorICAgICAgICAoQ3JlYXRlSGFuZGxlci5wb3N0KToKKyAgICAgICAgKiBXZWJzaXRlcy93ZWJr
aXQtcGVyZi5hcHBzcG90LmNvbS9kYXNoYm9hcmRfaGFuZGxlci5weToKKyAgICAgICAgKERhc2hi
b2FyZEhhbmRsZXIucG9zdCk6CisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3Bv
dC5jb20vbWFpbi5weToKKyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNv
bS9tYW5pZmVzdF9oYW5kbGVyLnB5OgorICAgICAgICAoTWFuaWZlc3RIYW5kbGVyLnBvc3QpOgor
ICAgICAgICAqIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzX2hh
bmRsZXIucHk6CisgICAgICAgIChNZXJnZVRlc3RzSGFuZGxlci5wb3N0KToKKyAgICAgICAgKiBX
ZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9yZXBvcnRfaGFuZGxlci5weToKKyAgICAg
ICAgKFJlcG9ydEhhbmRsZXIucG9zdCk6CisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYu
YXBwc3BvdC5jb20vcnVuc19oYW5kbGVyLnB5OgorICAgICAgICAoUnVuc0hhbmRsZXIucG9zdCk6
CisKIDIwMTItMDItMDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmVwbGFjZW1lbnQgdGV4dCBzaG91bGQgYmUgYXZhaWxhYmxlIGZyb20gdGhlIG1hcmtl
ci4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2FwcC55YW1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2FwcC55YW1sCShyZXZp
c2lvbiAxMDcxNDcpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9hcHAueWFt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIGFwcGxpY2F0aW9uOiB3ZWJraXQtcGVy
ZgotdmVyc2lvbjogMTEKK3ZlcnNpb246IDEyCiBydW50aW1lOiBweXRob24yNwogYXBpX3ZlcnNp
b246IDEKIHRocmVhZHNhZmU6IGZhbHNlCkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBz
cG90LmNvbS9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJm
LmFwcHNwb3QuY29tL2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDApCisrKyBXZWJzaXRlcy93ZWJr
aXQtcGVyZi5hcHBzcG90LmNvbS9jb250cm9sbGVyLnB5CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDk5IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
d2ViYXBwMgorZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgbWVtY2FjaGUKK2Zyb20g
Z29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IHRhc2txdWV1ZQorCitmcm9tIG1vZGVscyBpbXBv
cnQgVGVzdAorCisKK2RlZiBjYWNoZV9tYW5pZmVzdChjYWNoZSk6CisgICAgbWVtY2FjaGUuc2V0
KCdtYW5pZmVzdCcsIGNhY2hlKQorCisKK2RlZiBzY2hlZHVsZV9tYW5pZmVzdF91cGRhdGUoKToK
KyAgICB0YXNrcXVldWUuYWRkKHVybD0nL2FwaS90ZXN0L3VwZGF0ZScpCisKKworY2xhc3MgQ2Fj
aGVkTWFuaWZlc3RIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiBnZXQo
c2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAn
YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcKKyAgICAgICAgbWFuaWZlc3QgPSBtZW1j
YWNoZS5nZXQoJ21hbmlmZXN0JykKKyAgICAgICAgaWYgbWFuaWZlc3Q6CisgICAgICAgICAgICBz
ZWxmLnJlc3BvbnNlLm91dC53cml0ZShtYW5pZmVzdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHNjaGVkdWxlX21hbmlmZXN0X3VwZGF0ZSgpCisKKworZGVmIGNhY2hlX2Rhc2hib2FyZChj
YWNoZSk6CisgICAgbWVtY2FjaGUuc2V0KCdkYXNoYm9hcmQnLCBjYWNoZSkKKworCitkZWYgc2No
ZWR1bGVfZGFzaGJvYXJkX3VwZGF0ZSgpOgorICAgIHRhc2txdWV1ZS5hZGQodXJsPScvYXBpL3Rl
c3QvZGFzaGJvYXJkL3VwZGF0ZScpCisKKworY2xhc3MgQ2FjaGVkRGFzaGJvYXJkSGFuZGxlcih3
ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICBzZWxm
LnJlc3BvbnNlLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247IGNo
YXJzZXQ9dXRmLTgnCisgICAgICAgIGRhc2hib2FyZCA9IG1lbWNhY2hlLmdldCgnZGFzaGJvYXJk
JykKKyAgICAgICAgaWYgZGFzaGJvYXJkOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQu
d3JpdGUoZGFzaGJvYXJkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2NoZWR1bGVfZGFz
aGJvYXJkX3VwZGF0ZSgpCisKKworZGVmIGNhY2hlX3J1bnModGVzdF9pZCwgYnJhbmNoX2lkLCBw
bGF0Zm9ybV9pZCwgY2FjaGUpOgorICAgIG1lbWNhY2hlLnNldChUZXN0LmNhY2hlX2tleSh0ZXN0
X2lkLCBicmFuY2hfaWQsIHBsYXRmb3JtX2lkKSwgY2FjaGUpCisKKworZGVmIHNjaGVkdWxlX3J1
bnNfdXBkYXRlKHRlc3RfaWQsIGJyYW5jaF9pZCwgcGxhdGZvcm1faWQpOgorICAgIHRhc2txdWV1
ZS5hZGQodXJsPScvYXBpL3Rlc3QvcnVucy91cGRhdGUnLCBwYXJhbXM9eydpZCc6IHRlc3RfaWQs
ICdicmFuY2hpZCc6IGJyYW5jaF9pZCwgJ3BsYXRmb3JtaWQnOiBwbGF0Zm9ybV9pZH0pCisKKwor
Y2xhc3MgQ2FjaGVkUnVuc0hhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVm
IGdldChzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUn
XSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JworCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHRlc3RfaWQgPSBpbnQoc2VsZi5yZXF1ZXN0LmdldCgnaWQnLCAwKSkKKyAgICAg
ICAgICAgIGJyYW5jaF9pZCA9IGludChzZWxmLnJlcXVlc3QuZ2V0KCdicmFuY2hpZCcsIDApKQor
ICAgICAgICAgICAgcGxhdGZvcm1faWQgPSBpbnQoc2VsZi5yZXF1ZXN0LmdldCgncGxhdGZvcm1p
ZCcsIDApKQorICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgIyBGSVhNRTog
T3V0cHV0IGFuIGVycm9yIGhlcmUKKyAgICAgICAgICAgIHRlc3RfaWQgPSAwCisgICAgICAgICAg
ICBicmFuY2hfaWQgPSAwCisgICAgICAgICAgICBwbGF0Zm9ybV9pZCA9IDAKKworICAgICAgICBy
dW5zID0gbWVtY2FjaGUuZ2V0KFRlc3QuY2FjaGVfa2V5KHRlc3RfaWQsIGJyYW5jaF9pZCwgcGxh
dGZvcm1faWQpKQorICAgICAgICBpZiBydW5zOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5v
dXQud3JpdGUocnVucykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNjaGVkdWxlX3J1bnNf
dXBkYXRlKHRlc3RfaWQsIGJyYW5jaF9pZCwgcGxhdGZvcm1faWQpCkluZGV4OiBXZWJzaXRlcy93
ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jcmVhdGVfaGFuZGxlci5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jcmVhdGVfaGFuZGxlci5weQkocmV2aXNp
b24gMTA3MTQ3KQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vY3JlYXRlX2hh
bmRsZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMSBAQAogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCiBpbXBvcnQgd2ViYXBwMgotZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgbWVt
Y2FjaGUKIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IGRiCiAKIGltcG9ydCBqc29u
CiAKK2Zyb20gY29udHJvbGxlciBpbXBvcnQgc2NoZWR1bGVfZGFzaGJvYXJkX3VwZGF0ZQogZnJv
bSBtb2RlbHMgaW1wb3J0IEJ1aWxkZXIKIGZyb20gbW9kZWxzIGltcG9ydCBCcmFuY2gKIGZyb20g
bW9kZWxzIGltcG9ydCBOdW1lcmljSWRIb2xkZXIKQEAgLTQyLDcgKzQyLDcgQEAgZnJvbSBtb2Rl
bHMgaW1wb3J0IGNyZWF0ZV9pbl90cmFuc2FjdGlvbgogCiBjbGFzcyBDcmVhdGVIYW5kbGVyKHdl
YmFwcDIuUmVxdWVzdEhhbmRsZXIpOgogICAgIGRlZiBwb3N0KHNlbGYsIG1vZGVsKToKLSAgICAg
ICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICd0ZXh0L3BsYWluOyBj
aGFyc2V0PXV0Zi04JzsKKyAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5
cGUnXSA9ICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04JwogCiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIHBheWxvYWQgPSBqc29uLmxvYWRzKHNlbGYucmVxdWVzdC5ib2R5KQpAQCAtNjMsNyAr
NjMsNyBAQCBjbGFzcyBDcmVhdGVIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsCiAgICAgICAg
ICAgICBlcnJvciA9ICJVbmtub3duIG1vZGVsIHR5cGU6ICVzXG4iICUgbW9kZWwKIAogICAgICAg
ICAjIE5vIG5lZWQgdG8gY2xlYXIgbWFuaWZlc3Qgb3IgcnVucyBzaW5jZSB0aGV5IG9ubHkgY29u
dGFpbiBvbmVzIHdpdGggdGVzdCByZXN1bHRzCi0gICAgICAgIG1lbWNhY2hlLmRlbGV0ZSgnZGFz
aGJvYXJkJykKKyAgICAgICAgc2NoZWR1bGVfZGFzaGJvYXJkX3VwZGF0ZSgpCiAgICAgICAgIHNl
bGYucmVzcG9uc2Uub3V0LndyaXRlKGVycm9yICsgJ1xuJyBpZiBlcnJvciBlbHNlICdPSycpCiAK
ICAgICBkZWYgX2NyZWF0ZV9idWlsZGVyKHNlbGYsIG5hbWUsIHBhc3N3b3JkKToKSW5kZXg6IFdl
YnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2Rhc2hib2FyZF9oYW5kbGVyLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2Rhc2hib2FyZF9oYW5k
bGVyLnB5CShyZXZpc2lvbiAxMDcxNDcpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90
LmNvbS9kYXNoYm9hcmRfaGFuZGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDkg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IHdlYmFwcDIKLWZyb20gZ29vZ2xlLmFwcGVuZ2lu
ZS5hcGkgaW1wb3J0IG1lbWNhY2hlCi0KIGltcG9ydCBqc29uCiAKK2Zyb20gY29udHJvbGxlciBp
bXBvcnQgY2FjaGVfZGFzaGJvYXJkCiBmcm9tIG1vZGVscyBpbXBvcnQgQnVpbGRlcgogZnJvbSBt
b2RlbHMgaW1wb3J0IEJyYW5jaAogZnJvbSBtb2RlbHMgaW1wb3J0IFBsYXRmb3JtCkBAIC0zOSwx
NCArMzgsMTIgQEAgZnJvbSBtb2RlbHMgaW1wb3J0IFRlc3QKIAogCiBjbGFzcyBEYXNoYm9hcmRI
YW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgotICAgIGRlZiBnZXQoc2VsZik6Ci0gICAg
ICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24v
anNvbjsgY2hhcnNldD11dGYtOCc7Ci0gICAgICAgIGNhY2hlID0gbWVtY2FjaGUuZ2V0KCdkYXNo
Ym9hcmQnKQotICAgICAgICBpZiBjYWNoZToKLSAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0
LndyaXRlKGNhY2hlKQotICAgICAgICAgICAgcmV0dXJuCi0KKyAgICBkZWYgcG9zdChzZWxmKToK
KyAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICd0ZXh0L3Bs
YWluOyBjaGFyc2V0PXV0Zi04JwogICAgICAgICB3ZWJraXRfdHJ1bmsgPSBCcmFuY2guZ2V0X2J5
X2tleV9uYW1lKCd3ZWJraXQtdHJ1bmsnKQorICAgICAgICBpZiBub3Qgd2Via2l0X3RydW5rOgor
ICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoIkJBRDogbm8gd2Via2l0LXRydW5r
IikKKyAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgICMgRklYTUU6IERldGVybWluZSBwb3B1
bGFyIGJyYW5jaGVzLCBwbGF0Zm9ybXMsIGFuZCB0ZXN0cwogICAgICAgICBkYXNoYm9hcmQgPSB7
CkBAIC02Miw2ICs1OSw1IEBAIGNsYXNzIERhc2hib2FyZEhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0
SGEKICAgICAgICAgZm9yIHRlc3QgaW4gVGVzdC5hbGwoKToKICAgICAgICAgICAgIGRhc2hib2Fy
ZFsndGVzdFRvSWQnXVt0ZXN0Lm5hbWVdID0gdGVzdC5pZAogCi0gICAgICAgIHJlc3VsdCA9IGpz
b24uZHVtcHMoZGFzaGJvYXJkKQotICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZShyZXN1
bHQpCi0gICAgICAgIG1lbWNhY2hlLmFkZCgnZGFzaGJvYXJkJywgcmVzdWx0KQorICAgICAgICBj
YWNoZV9kYXNoYm9hcmQoanNvbi5kdW1wcyhkYXNoYm9hcmQpKQorICAgICAgICBzZWxmLnJlc3Bv
bnNlLm91dC53cml0ZSgnT0snKQpJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5j
b20vbWFpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNv
bS9tYWluLnB5CShyZXZpc2lvbiAxMDcxNDcpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBz
cG90LmNvbS9tYWluLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw2ICsyMCw5IEBAIGZyb20gZ29v
Z2xlLmFwcGVuZ2luZS5leHQud2ViYXBwIGltcG9ydCAKIAogaW1wb3J0IGpzb24KIAorZnJvbSBj
b250cm9sbGVyIGltcG9ydCBDYWNoZWREYXNoYm9hcmRIYW5kbGVyCitmcm9tIGNvbnRyb2xsZXIg
aW1wb3J0IENhY2hlZE1hbmlmZXN0SGFuZGxlcgorZnJvbSBjb250cm9sbGVyIGltcG9ydCBDYWNo
ZWRSdW5zSGFuZGxlcgogZnJvbSBjcmVhdGVfaGFuZGxlciBpbXBvcnQgQ3JlYXRlSGFuZGxlcgog
ZnJvbSBkYXNoYm9hcmRfaGFuZGxlciBpbXBvcnQgRGFzaGJvYXJkSGFuZGxlcgogZnJvbSBtYW5p
ZmVzdF9oYW5kbGVyIGltcG9ydCBNYW5pZmVzdEhhbmRsZXIKQEAgLTMyLDEwICszNSwxMyBAQCBy
b3V0ZXMgPSBbCiAgICAgKCcvYWRtaW4vcmVwb3J0Lz8nLCBBZG1pblJlcG9ydEhhbmRsZXIpLAog
ICAgICgnL2FkbWluL21lcmdlLXRlc3RzLz8nLCBNZXJnZVRlc3RzSGFuZGxlciksCiAgICAgKCcv
YWRtaW4vY3JlYXRlLyguKiknLCBDcmVhdGVIYW5kbGVyKSwKLSAgICAoJy9hcGkvdGVzdC8/Jywg
TWFuaWZlc3RIYW5kbGVyKSwKKyAgICAoJy9hcGkvdGVzdC8/JywgQ2FjaGVkTWFuaWZlc3RIYW5k
bGVyKSwKKyAgICAoJy9hcGkvdGVzdC91cGRhdGUnLCBNYW5pZmVzdEhhbmRsZXIpLAogICAgICgn
L2FwaS90ZXN0L3JlcG9ydC8/JywgUmVwb3J0SGFuZGxlciksCi0gICAgKCcvYXBpL3Rlc3QvcnVu
cy8/JywgUnVuc0hhbmRsZXIpLAotICAgICgnL2FwaS90ZXN0L2Rhc2hib2FyZC8/JywgRGFzaGJv
YXJkSGFuZGxlciksCisgICAgKCcvYXBpL3Rlc3QvcnVucy8/JywgQ2FjaGVkUnVuc0hhbmRsZXIp
LAorICAgICgnL2FwaS90ZXN0L3J1bnMvdXBkYXRlJywgUnVuc0hhbmRsZXIpLAorICAgICgnL2Fw
aS90ZXN0L2Rhc2hib2FyZC8/JywgQ2FjaGVkRGFzaGJvYXJkSGFuZGxlciksCisgICAgKCcvYXBp
L3Rlc3QvZGFzaGJvYXJkL3VwZGF0ZScsIERhc2hib2FyZEhhbmRsZXIpLAogXQogCiAKSW5kZXg6
IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21hbmlmZXN0X2hhbmRsZXIucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWFuaWZlc3RfaGFu
ZGxlci5weQkocmV2aXNpb24gMTA3MTQ3KQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3Bv
dC5jb20vbWFuaWZlc3RfaGFuZGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDEw
IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCB3ZWJhcHAyCi1mcm9tIGdvb2dsZS5hcHBlbmdp
bmUuYXBpIGltcG9ydCBtZW1jYWNoZQogCiBpbXBvcnQganNvbgogCitmcm9tIGNvbnRyb2xsZXIg
aW1wb3J0IGNhY2hlX21hbmlmZXN0CiBmcm9tIG1vZGVscyBpbXBvcnQgQnVpbGRlcgogZnJvbSBt
b2RlbHMgaW1wb3J0IEJyYW5jaAogZnJvbSBtb2RlbHMgaW1wb3J0IFBsYXRmb3JtCkBAIC0zOSwx
MiArMzksOCBAQCBmcm9tIG1vZGVscyBpbXBvcnQgVGVzdAogCiAKIGNsYXNzIE1hbmlmZXN0SGFu
ZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKLSAgICBkZWYgZ2V0KHNlbGYpOgotICAgICAg
ICBzZWxmLnJlc3BvbnNlLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ3RleHQvcGxhaW47IGNo
YXJzZXQ9dXRmLTgnOwotICAgICAgICBjYWNoZSA9IG1lbWNhY2hlLmdldCgnbWFuaWZlc3QnKQot
ICAgICAgICBpZiBjYWNoZToKLSAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKGNh
Y2hlKQotICAgICAgICAgICAgcmV0dXJuCisgICAgZGVmIHBvc3Qoc2VsZik6CisgICAgICAgIHNl
bGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbjsgY2hhcnNl
dD11dGYtOCcKIAogICAgICAgICB0ZXN0X21hcCA9IHt9CiAgICAgICAgIHBsYXRmb3JtX2lkX21h
cCA9IHt9CkBAIC04OCw2ICs4NCw1IEBAIGNsYXNzIE1hbmlmZXN0SGFuZGxlcih3ZWJhcHAyLlJl
cXVlc3RIYW4KICAgICAgICAgICAgICAgICAncGxhdGZvcm1JZHMnOiBsaXN0KHNldChicmFuY2hf
aWRfbWFwW2JyYW5jaC5pZF1bJ3BsYXRmb3JtcyddKSksCiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgcmVzdWx0ID0ganNvbi5kdW1wcyh7J3Rlc3RNYXAnOiB0ZXN0X21hcCwgJ3BsYXRmb3JtTWFw
JzogcGxhdGZvcm1fbWFwLCAnYnJhbmNoTWFwJzogYnJhbmNoX21hcH0pCi0gICAgICAgIHNlbGYu
cmVzcG9uc2Uub3V0LndyaXRlKHJlc3VsdCkKLSAgICAgICAgbWVtY2FjaGUuYWRkKCdtYW5pZmVz
dCcsIHJlc3VsdCkKKyAgICAgICAgY2FjaGVfbWFuaWZlc3QoanNvbi5kdW1wcyh7J3Rlc3RNYXAn
OiB0ZXN0X21hcCwgJ3BsYXRmb3JtTWFwJzogcGxhdGZvcm1fbWFwLCAnYnJhbmNoTWFwJzogYnJh
bmNoX21hcH0pKQorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnT0snKQpJbmRleDog
V2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWVyZ2VfdGVzdHNfaGFuZGxlci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9tZXJnZV90ZXN0
c19oYW5kbGVyLnB5CShyZXZpc2lvbiAxMDcxNDcpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5h
cHBzcG90LmNvbS9tZXJnZV90ZXN0c19oYW5kbGVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwx
MSArMjgsMTMgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IHdlYmFwcDIKLWZyb20gZ29vZ2xl
LmFwcGVuZ2luZS5hcGkgaW1wb3J0IG1lbWNhY2hlCiBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0
LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUKIAogaW1wb3J0IG9zCiAKK2Zyb20gY29udHJvbGxlciBp
bXBvcnQgc2NoZWR1bGVfcnVuc191cGRhdGUKK2Zyb20gY29udHJvbGxlciBpbXBvcnQgc2NoZWR1
bGVfZGFzaGJvYXJkX3VwZGF0ZQorZnJvbSBjb250cm9sbGVyIGltcG9ydCBzY2hlZHVsZV9tYW5p
ZmVzdF91cGRhdGUKIGZyb20gbW9kZWxzIGltcG9ydCBUZXN0CiBmcm9tIG1vZGVscyBpbXBvcnQg
VGVzdFJlc3VsdAogZnJvbSBtb2RlbHMgaW1wb3J0IGRlbGV0ZV9tb2RlbF93aXRoX251bWVyaWNf
aWRfaG9sZGVyCkBAIC01MywxMyArNTUsMTcgQEAgY2xhc3MgTWVyZ2VUZXN0c0hhbmRsZXIod2Vi
YXBwMi5SZXF1ZXN0SAogCiAgICAgICAgIG1lcmdlZF9yZXN1bHRzID0gVGVzdFJlc3VsdC5hbGwo
KQogICAgICAgICBtZXJnZWRfcmVzdWx0cy5maWx0ZXIoJ25hbWUgPScsIG1lcmdlLm5hbWUpCisg
ICAgICAgIGJyYW5jaGVzX2FuZF9wbGF0Zm9ybXNfdG9fdXBkYXRlID0gc2V0KCkKICAgICAgICAg
Zm9yIHJlc3VsdCBpbiBtZXJnZWRfcmVzdWx0czoKKyAgICAgICAgICAgIGJyYW5jaGVzX2FuZF9w
bGF0Zm9ybXNfdG9fdXBkYXRlLmFkZCgocmVzdWx0LmJ1aWxkLmJyYW5jaC5pZCwgcmVzdWx0LmJ1
aWxkLnBsYXRmb3JtLmlkKSkKICAgICAgICAgICAgIHJlc3VsdC5uYW1lID0gaW50by5uYW1lCiAg
ICAgICAgICAgICByZXN1bHQucHV0KCkKIAotICAgICAgICAjIEp1c3QgZmx1c2ggZXZlcnl0aW5n
IHNpbmNlIHdlIHJhcmVseSBtZXJnZSB0ZXN0cyBhbmQgd2UgbmVlZCB0byBmbHVzaAotICAgICAg
ICAjIGRhc2hib2FyZCwgbWFuaWZlc3QsIGFuZCBhbGwgcnVucyBmb3IgdGhpcyB0ZXN0IGhlcmUu
Ci0gICAgICAgIG1lbWNhY2hlLmZsdXNoX2FsbCgpCisgICAgICAgIGZvciBicmFuY2hfaWQsIHBs
YXRmb3JtX2lkIGluIGJyYW5jaGVzX2FuZF9wbGF0Zm9ybXNfdG9fdXBkYXRlOgorICAgICAgICAg
ICAgc2NoZWR1bGVfcnVuc191cGRhdGUoaW50by5pZCwgYnJhbmNoX2lkLCBwbGF0Zm9ybV9pZCkK
KworICAgICAgICBzY2hlZHVsZV9kYXNoYm9hcmRfdXBkYXRlKCkKKyAgICAgICAgc2NoZWR1bGVf
bWFuaWZlc3RfdXBkYXRlKCkKIAogICAgICAgICBkZWxldGVfbW9kZWxfd2l0aF9udW1lcmljX2lk
X2hvbGRlcihtZXJnZSkKIApJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20v
cmVwb3J0X2hhbmRsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vcmVwb3J0X2hhbmRsZXIucHkJKHJldmlzaW9uIDEwNzE0NykKKysrIFdlYnNpdGVz
L3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9oYW5kbGVyLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw3ICsyOCw2IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCB3ZWJhcHAyCi1mcm9t
IGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCBtZW1jYWNoZQogZnJvbSBnb29nbGUuYXBwZW5n
aW5lLmV4dCBpbXBvcnQgZGIKIAogaW1wb3J0IGpzb24KQEAgLTM2LDYgKzM1LDkgQEAgaW1wb3J0
IHJlCiBpbXBvcnQgdGltZQogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKIAorZnJvbSBj
b250cm9sbGVyIGltcG9ydCBzY2hlZHVsZV9ydW5zX3VwZGF0ZQorZnJvbSBjb250cm9sbGVyIGlt
cG9ydCBzY2hlZHVsZV9kYXNoYm9hcmRfdXBkYXRlCitmcm9tIGNvbnRyb2xsZXIgaW1wb3J0IHNj
aGVkdWxlX21hbmlmZXN0X3VwZGF0ZQogZnJvbSBtb2RlbHMgaW1wb3J0IEJ1aWxkZXIKIGZyb20g
bW9kZWxzIGltcG9ydCBCcmFuY2gKIGZyb20gbW9kZWxzIGltcG9ydCBCdWlsZApAQCAtOTUsNyAr
OTcsNyBAQCBjbGFzcyBSZXBvcnRIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsCiAKICAgICAg
ICAgZm9yIHRlc3RfbmFtZSwgcmVzdWx0IGluIHNlbGYuX2JvZHlbJ3Jlc3VsdHMnXS5pdGVyaXRl
bXMoKToKICAgICAgICAgICAgIHRlc3QgPSBzZWxmLl9hZGRfdGVzdF9pZl9uZWVkZWQodGVzdF9u
YW1lLCBicmFuY2gsIHBsYXRmb3JtKQotICAgICAgICAgICAgbWVtY2FjaGUuZGVsZXRlKFRlc3Qu
Y2FjaGVfa2V5KHRlc3QuaWQsIGJyYW5jaC5pZCwgcGxhdGZvcm0uaWQpKQorICAgICAgICAgICAg
c2NoZWR1bGVfcnVuc191cGRhdGUodGVzdC5pZCwgYnJhbmNoLmlkLCBwbGF0Zm9ybS5pZCkKICAg
ICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0LCBkaWN0KToKICAgICAgICAgICAgICAgICBU
ZXN0UmVzdWx0KG5hbWU9dGVzdF9uYW1lLCBidWlsZD1idWlsZCwgdmFsdWU9ZmxvYXQocmVzdWx0
WydhdmcnXSksIHZhbHVlTWVkaWFuPV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ21lZGlhbicpLAog
ICAgICAgICAgICAgICAgICAgICB2YWx1ZVN0ZGV2PV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ3N0
ZGV2JyksIHZhbHVlTWluPV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ21pbicpLCB2YWx1ZU1heD1f
ZmxvYXRfb3Jfbm9uZShyZXN1bHQsICdtYXgnKSkucHV0KCkKQEAgLTEwNiw4ICsxMDgsOCBAQCBj
bGFzcyBSZXBvcnRIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsCiAgICAgICAgIGxvZy5kZWxl
dGUoKQogCiAgICAgICAgICMgV2UgbmVlZCB0byB1cGRhdGUgZGFzaGJvYXJkIGFuZCBtYW5pZmVz
dCBiZWNhdXNlIHRoZXkgYXJlIGFmZmVjdGVkIGJ5IHRoZSBleGlzdGFuY2Ugb2YgdGVzdCByZXN1
bHRzCi0gICAgICAgIG1lbWNhY2hlLmRlbGV0ZSgnZGFzaGJvYXJkJykKLSAgICAgICAgbWVtY2Fj
aGUuZGVsZXRlKCdtYW5pZmVzdCcpCisgICAgICAgIHNjaGVkdWxlX2Rhc2hib2FyZF91cGRhdGUo
KQorICAgICAgICBzY2hlZHVsZV9tYW5pZmVzdF91cGRhdGUoKQogCiAgICAgICAgIHJldHVybiBz
ZWxmLl9vdXRwdXQoJ09LJykKIApJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5j
b20vcnVuc19oYW5kbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFw
cHNwb3QuY29tL3J1bnNfaGFuZGxlci5weQkocmV2aXNpb24gMTA3MTQ3KQorKysgV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcnVuc19oYW5kbGVyLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMiArMjgsMTIgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IHdlYmFwcDIKLWZyb20g
Z29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IG1lbWNhY2hlCiAKIGltcG9ydCBqc29uCiBmcm9t
IHRpbWUgaW1wb3J0IG1rdGltZQogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKIAorZnJv
bSBjb250cm9sbGVyIGltcG9ydCBjYWNoZV9ydW5zCiBmcm9tIG1vZGVscyBpbXBvcnQgQnVpbGQK
IGZyb20gbW9kZWxzIGltcG9ydCBCdWlsZGVyCiBmcm9tIG1vZGVscyBpbXBvcnQgQnJhbmNoCkBA
IC00NSw4ICs0NSw4IEBAIGZyb20gbW9kZWxzIGltcG9ydCBtb2RlbEZyb21OdW1lcmljSWQKIAog
CiBjbGFzcyBSdW5zSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKLSAgICBkZWYgZ2V0
KHNlbGYpOgotICAgICAgICBzZWxmLnJlc3BvbnNlLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0g
J2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnCisgICAgZGVmIHBvc3Qoc2VsZik6Cisg
ICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFp
bjsgY2hhcnNldD11dGYtOCcKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICB0ZXN0X2lkID0g
aW50KHNlbGYucmVxdWVzdC5nZXQoJ2lkJywgMCkpCkBAIC02MSwxMiArNjEsNiBAQCBjbGFzcyBS
dW5zSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyCiAgICAgICAgICMgRklYTUU6IEp1c3Qg
ZmV0Y2ggYnVpbGRzIHNwZWNpZmllZCBieSAiZGF5cyIKICAgICAgICAgIyBkYXlzID0gc2VsZi5y
ZXF1ZXN0LmdldCgnZGF5cycsIDM2NSkKIAotICAgICAgICBjYWNoZV9rZXkgPSBUZXN0LmNhY2hl
X2tleSh0ZXN0X2lkLCBicmFuY2hfaWQsIHBsYXRmb3JtX2lkKQotICAgICAgICBjYWNoZSA9IG1l
bWNhY2hlLmdldChjYWNoZV9rZXkpCi0gICAgICAgIGlmIGNhY2hlOgotICAgICAgICAgICAgc2Vs
Zi5yZXNwb25zZS5vdXQud3JpdGUoY2FjaGUpCi0gICAgICAgICAgICByZXR1cm4KLQogICAgICAg
ICBidWlsZHMgPSBCdWlsZC5hbGwoKQogICAgICAgICBidWlsZHMuZmlsdGVyKCdicmFuY2ggPScs
IG1vZGVsRnJvbU51bWVyaWNJZChicmFuY2hfaWQsIEJyYW5jaCkpCiAgICAgICAgIGJ1aWxkcy5m
aWx0ZXIoJ3BsYXRmb3JtID0nLCBtb2RlbEZyb21OdW1lcmljSWQocGxhdGZvcm1faWQsIFBsYXRm
b3JtKSkKQEAgLTEwNSw1ICs5OSw1IEBAIGNsYXNzIFJ1bnNIYW5kbGVyKHdlYmFwcDIuUmVxdWVz
dEhhbmRsZXIKICAgICAgICAgICAgICdtYXgnOiBtYXgodmFsdWVzKSBpZiB2YWx1ZXMgZWxzZSBO
b25lLAogICAgICAgICAgICAgJ2RhdGVfcmFuZ2UnOiBbbWluKHRpbWVzdGFtcHMpLCBtYXgodGlt
ZXN0YW1wcyldIGlmIHRpbWVzdGFtcHMgZWxzZSBOb25lLAogICAgICAgICAgICAgJ3N0YXQnOiAn
b2snfSkKLSAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUocmVzdWx0KQotICAgICAgICBt
ZW1jYWNoZS5hZGQoY2FjaGVfa2V5LCByZXN1bHQpCisgICAgICAgIGNhY2hlX3J1bnModGVzdF9p
ZCwgYnJhbmNoX2lkLCBwbGF0Zm9ybV9pZCwgcmVzdWx0KQorICAgICAgICBzZWxmLnJlc3BvbnNl
Lm91dC53cml0ZSgnT0snKQo=
</data>
<flag name="review"
          id="128018"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>