<?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>36474</bug_id>
          
          <creation_ts>2010-03-22 18:26:28 -0700</creation_ts>
          <short_desc>Add support for revision -&gt; build lookup in buildbot.py and layout test result parsing</short_desc>
          <delta_ts>2010-03-23 15:24:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>202868</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-22 18:26:28 -0700</bug_when>
    <thetext>Add support for revision -&gt; build lookup in buildbot.py and layout test result parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202870</commentid>
    <comment_count>1</comment_count>
      <attachid>51376</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-22 18:26:52 -0700</bug_when>
    <thetext>Created attachment 51376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202963</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-23 01:19:41 -0700</bug_when>
    <thetext>Ojan: With this added code it is now trivial to convert existing results.html files from the buildbot into the results.json files which the layout test dashboard supports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202964</commentid>
    <comment_count>3</comment_count>
      <attachid>51401</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-23 01:19:59 -0700</bug_when>
    <thetext>Created attachment 51401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203178</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-23 13:43:31 -0700</bug_when>
    <thetext>We need to abstract out the calls to urllib2.urlopen.  We keep using the same idiom to surround them.  We could include the 404 handling and caching as optional parameters.

+ _fetch_layout_test_results

I&apos;d prefer if all control paths had explicit returns.

+ _parse_twisted_file_row

This twisted stuff should be in a separate file.  It&apos;s not specific to buildbot.

- _longest_builder_name

Why did we get rid of this function?  It seemed helpful to document what that complex line is doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203208</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-23 14:22:07 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; + _fetch_layout_test_results
&gt; 
&gt; I&apos;d prefer if all control paths had explicit returns.

Ludite! :)  I think it&apos;s actually more readable to not add the &quot;return None&quot; since that&apos;s implied in python.

&gt; + _parse_twisted_file_row
&gt; 
&gt; This twisted stuff should be in a separate file.  It&apos;s not specific to
&gt; buildbot.

Agreed.  The functions started out as specific to this task, but I realized they could be made general.  i&apos;m not sure where we&apos;d put any other &quot;twisted&quot; stuff, but I named them so that they would be easy to recognize as general.

&gt; - _longest_builder_name
&gt; 
&gt; Why did we get rid of this function?  It seemed helpful to document what that
&gt; complex line is doing.

I had to copy the code.  I realized it was a realatively simple one-liner and didn&apos;t have any good place to put that funciton, so I just inlined it in both places.

I think I&apos;m just gonna land as is, but I&apos;m happy to make further changes upon further discussion with you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203255</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-23 15:24:52 -0700</bug_when>
    <thetext>Committed r56421: &lt;http://trac.webkit.org/changeset/56421&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51376</attachid>
            <date>2010-03-22 18:26:52 -0700</date>
            <delta_ts>2010-03-23 01:19:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36474-20100322182650.patch</filename>
            <type>text/plain</type>
            <size>11923</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyN2Q3ZmVjLi45ZTUwYzU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMt
MjIgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXZpc2lvbiAtPiBi
dWlsZCBsb29rdXAgaW4gYnVpbGRib3QucHkgYW5kIGxheW91dCB0ZXN0IHJlc3VsdCBwYXJzaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ3NAor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYV91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvYnVpbGRib3RfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tYW5kcy9xdWVyaWVzLnB5OgorCiAyMDEwLTAzLTIyICBDaHJpcyBKZXJkb25layAgPGNqZXJk
b25la0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYV91bml0dGVzdC5weQppbmRl
eCA1MDk1MDMyLi44MWQzNGI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYnVnemlsbGFfdW5pdHRlc3QucHkKQEAgLTIwNSw2ICsyMDUsNyBAQCBaRVpwYm1semFFeHZZ
V1JYYVhSb1VtVmhjMjl1T25KbFlYTnZibDA3Q2l0OUNpc0tJRUJsYm1RS0lBb2dJMlZ1WkdsbUNn
PT0KICAgICAgICAgfV0sCiAgICAgfQogCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgbW92ZSB0
byBhIGNlbnRyYWwgbG9jYXRpb24gYW5kIGJlIHNoYXJlZCBieSBtb3JlIHVuaXQgdGVzdHMuCiAg
ICAgZGVmIF9hc3NlcnRfZGljdGlvbmFyaWVzX2VxdWFsKHNlbGYsIGFjdHVhbCwgZXhwZWN0ZWQp
OgogICAgICAgICAjIE1ha2Ugc3VyZSB3ZSBhcmVuJ3QgcGFyc2luZyBtb3JlIG9yIGxlc3MgdGhh
biB3ZSBleHBlY3QKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29ydGVkKGFjdHVhbC5rZXlz
KCkpLCBzb3J0ZWQoZXhwZWN0ZWQua2V5cygpKSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2J1aWxkYm90LnB5CmluZGV4IDkwMmM3NDIuLjcwMGM4ZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9idWlsZGJvdC5weQpAQCAtNDYsMTIgKzQ2LDIwIEBAIGNsYXNzIEJ1aWxkZXIo
b2JqZWN0KToKICAgICAgICAgc2VsZi5fbmFtZSA9IHVuaWNvZGUobmFtZSkKICAgICAgICAgc2Vs
Zi5fYnVpbGRib3QgPSBidWlsZGJvdAogICAgICAgICBzZWxmLl9idWlsZHNfY2FjaGUgPSB7fQor
ICAgICAgICBzZWxmLl9idWlsZF90b19yZXZpc2lvbl9jYWNoZSA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5fcmV2aXNpb25fdG9fYnVpbGRfY2FjaGUgPSBOb25lCiAKICAgICBkZWYgbmFtZShzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKIAorICAgIGRlZiByZXN1bHRzX3VybChzZWxmKToK
KyAgICAgICAgcmV0dXJuICJodHRwOi8vJXMvcmVzdWx0cy8lcyIgJSAoc2VsZi5fYnVpbGRib3Qu
YnVpbGRib3RfaG9zdCwgc2VsZi51cmxfZW5jb2RlZF9uYW1lKCkpCisKKyAgICBkZWYgdXJsX2Vu
Y29kZWRfbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHVybGxpYi5xdW90ZShzZWxmLl9uYW1l
KQorCiAgICAgZGVmIHVybChzZWxmKToKLSAgICAgICAgcmV0dXJuICJodHRwOi8vJXMvYnVpbGRl
cnMvJXMiICUgKHNlbGYuX2J1aWxkYm90LmJ1aWxkYm90X2hvc3QsIHVybGxpYi5xdW90ZShzZWxm
Ll9uYW1lKSkKKyAgICAgICAgcmV0dXJuICJodHRwOi8vJXMvYnVpbGRlcnMvJXMiICUgKHNlbGYu
X2J1aWxkYm90LmJ1aWxkYm90X2hvc3QsIHNlbGYudXJsX2VuY29kZWRfbmFtZSgpKQogCiAgICAg
IyBUaGlzIHByb3ZpZGVzIGEgc2luZ2xlIHBsYWNlIHRvIG1vY2sKICAgICBkZWYgX2ZldGNoX2J1
aWxkKHNlbGYsIGJ1aWxkX251bWJlcik6CkBAIC03Myw5ICs4MSwzNiBAQCBjbGFzcyBCdWlsZGVy
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2J1aWxkc19jYWNoZVtidWlsZF9udW1iZXJdID0gYnVp
bGQKICAgICAgICAgcmV0dXJuIGJ1aWxkCiAKKyAgICBmaWxlX25hbWVfcmVnZXhwID0gcmUuY29t
cGlsZShyInIoP1A8cmV2aXNpb24+XGQrKSBcKCg/UDxidWlsZF9udW1iZXI+XGQrKVwpIikKKyAg
ICBkZWYgX2J1aWxkX2FuZF9yZXZpc2lvbl9mb3JfZmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUpOgor
ICAgICAgICAjIEV4YW1wbGU6ICJyNDc0ODMgKDEpLyIgb3IgInI0NzQ4MyAoMSkuemlwIgorICAg
ICAgICBtYXRjaCA9IHNlbGYuZmlsZV9uYW1lX3JlZ2V4cC5tYXRjaChmaWxlbmFtZSkKKyAgICAg
ICAgcmV0dXJuIChpbnQobWF0Y2guZ3JvdXAoImJ1aWxkX251bWJlciIpKSwgaW50KG1hdGNoLmdy
b3VwKCJyZXZpc2lvbiIpKSkKKworICAgIGRlZiBfZmV0Y2hfYnVpbGRfdG9fcmV2aXNpb25fbWFw
KHNlbGYpOgorICAgICAgICAjIEFsbCBfZmV0Y2ggcmVxdWVzdHMgZ28gdGhyb3VnaCBfYnVpbGRi
b3QgZm9yIGVhc2llciBtb2NraW5nCisgICAgICAgIHJlc3VsdF9maWxlcyA9IHNlbGYuX2J1aWxk
Ym90Ll9mZXRjaF90d2lzdGVkX2RpcmVjdG9yeV9saXN0aW5nKHNlbGYucmVzdWx0c191cmwoKSkK
KyAgICAgICAgcmV0dXJuIGRpY3QoW3NlbGYuX2J1aWxkX2FuZF9yZXZpc2lvbl9mb3JfZmlsZW5h
bWUoZmlsZV9pbmZvWyJmaWxlbmFtZSJdKSBmb3IgZmlsZV9pbmZvIGluIHJlc3VsdF9maWxlc10p
CisKKyAgICBkZWYgX2ZldGNoX3Jlc3VsdHNfbGlzdF9pZl9uZWNlc3Nhcnkoc2VsZik6CisgICAg
ICAgIGlmIHNlbGYuX2J1aWxkX3RvX3JldmlzaW9uX2NhY2hlIG9yIHNlbGYuX3JldmlzaW9uX3Rv
X2J1aWxkX2NhY2hlOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuX2J1aWxkX3Rv
X3JldmlzaW9uX2NhY2hlID0gc2VsZi5fZmV0Y2hfYnVpbGRfdG9fcmV2aXNpb25fbWFwKCkKKyAg
ICAgICAgIyBUaGlzIGFzc3VtZXMgdGhlcmUgd2FzIG9ubHkgb25lIGJ1aWxkIHBlciByZXZpc2lv
biwgd2hpY2ggaXMgZmFsc2UgYnV0IHdlIGRvbid0IGNhcmUgZm9yIG5vdy4KKyAgICAgICAgc2Vs
Zi5fcmV2aXNpb25fdG9fYnVpbGRfY2FjaGUgPSBkaWN0KChyZXZpc2lvbiwgYnVpbGQpIGZvciBi
dWlsZCwgcmV2aXNpb24gaW4gc2VsZi5fYnVpbGRfdG9fcmV2aXNpb25fY2FjaGUuaXRlcml0ZW1z
KCkpCisKKyAgICAjIFdlIGNvdWxkIGFsc28gaW1wbGVtZW50IHRoaXMgbG9va3VwIHVzaW5nIHNl
bGYuYnVpbGQoYnVpbGRfbnVtYmVyKS5yZXZpc2lvbigpCisgICAgZGVmIGJ1aWxkX3RvX3Jldmlz
aW9uKHNlbGYsIGJ1aWxkX251bWJlcik6CisgICAgICAgIHNlbGYuX2ZldGNoX3Jlc3VsdHNfbGlz
dF9pZl9uZWNlc3NhcnkoKQorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfdG9fcmV2aXNpb25f
Y2FjaGUuZ2V0KGJ1aWxkX251bWJlcikKKworICAgICMgVGhpcyBhc3N1bWVzIHRoZXJlIGNhbiBi
ZSBvbmx5IG9uZSBidWlsZCBwZXIgcmV2aXNpb24sIHdoaWNoIGlzIGZhbHNlLCBidXQgd2UgZG9u
J3QgY2FyZSBmb3Igbm93LgorICAgIGRlZiByZXZpc2lvbl90b19idWlsZChzZWxmLCByZXZpc2lv
bik6CisgICAgICAgIHNlbGYuX2ZldGNoX3Jlc3VsdHNfbGlzdF9pZl9uZWNlc3NhcnkoKQorICAg
ICAgICByZXR1cm4gc2VsZi5fcmV2aXNpb25fdG9fYnVpbGRfY2FjaGUuZ2V0KHJldmlzaW9uKQor
CiAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBoYXZlIHRvIHBhc3MgYSByZWRfYnVpbGRfbnVt
YmVyLCBidXQgcmF0aGVyIEJ1aWxkZXIgc2hvdWxkCiAgICAgIyBrbm93IHdoYXQgaXRzICJsYXRl
c3RfYnVpbGQiIGlzLgotICAgICMgRklYTUU6IFRoaXMgbmVlZHMgdW5pdCB0ZXN0aW5nLgogICAg
IGRlZiBmaW5kX2dyZWVuX3RvX3JlZF90cmFuc2l0aW9uKHNlbGYsIHJlZF9idWlsZF9udW1iZXIs
IGxvb2tfYmFja19saW1pdD0zMCk6CiAgICAgICAgICMgd2FsayBiYWNrd2FyZHMgdW50aWwgd2Ug
ZmluZCBhIGdyZWVuIGJ1aWxkCiAgICAgICAgIHJlZF9idWlsZCA9IHNlbGYuYnVpbGQocmVkX2J1
aWxkX251bWJlcikKQEAgLTExMSw2ICsxNDYsNyBAQCBjbGFzcyBCdWlsZChvYmplY3QpOgogICAg
ICAgICBzZWxmLl9udW1iZXIgPSBidWlsZF9udW1iZXIKICAgICAgICAgc2VsZi5fcmV2aXNpb24g
PSByZXZpc2lvbgogICAgICAgICBzZWxmLl9pc19ncmVlbiA9IGlzX2dyZWVuCisgICAgICAgIHNl
bGYuX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBOb25lCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAg
ZGVmIGJ1aWxkX3VybChidWlsZGVyLCBidWlsZF9udW1iZXIpOgpAQCAtMTE5LDYgKzE1NSwyNSBA
QCBjbGFzcyBCdWlsZChvYmplY3QpOgogICAgIGRlZiB1cmwoc2VsZik6CiAgICAgICAgIHJldHVy
biBzZWxmLmJ1aWxkX3VybChzZWxmLmJ1aWxkZXIoKSwgc2VsZi5fbnVtYmVyKQogCisgICAgZGVm
IHJlc3VsdHNfdXJsKHNlbGYpOgorICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSA9ICJyJXMgKCVz
KSIgJSAoc2VsZi5yZXZpc2lvbigpLCBzZWxmLl9udW1iZXIpCisgICAgICAgIHJldHVybiAiJXMv
JXMvIiAlIChzZWxmLl9idWlsZGVyLnJlc3VsdHNfdXJsKCksIHJlc3VsdHNfZGlyZWN0b3J5KQor
CisgICAgZGVmIF9wYXJzZV9sYXlvdXRfdGVzdF9yZXN0dWxzKHNlbGYsIHBhZ2UpOgorICAgICAg
ICBzb3VwID0gQmVhdXRpZnVsU291cChwYWdlKQorICAgICAgICB0YWJsZSA9IHNvdXAuZmluZCgi
dGFibGUiKQorICAgICAgICBwcmludCBzb3VwLnByZXZpb3VzU2libGluZygpCisgICAgICAgIHJl
dHVybiB7fQorCisgICAgZGVmIF9mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAg
ICAgICBwYWdlID0gdXJsbGliMi51cmxvcGVuKHNlbGYucmVzdWx0c191cmwoKSkKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3BhcnNlX2xheW91dF90ZXN0X3Jlc3R1bHMocGFnZSkKKworICAgIGRlZiBs
YXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fbGF5b3V0X3Rl
c3RfcmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBzZWxm
Ll9mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzCisgICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRf
dGVzdF9yZXN1bHRzCisKICAgICBkZWYgYnVpbGRlcihzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWxkZXIKIApAQCAtMTQwLDYgKzE5NSw3IEBAIGNsYXNzIEJ1aWxkQm90KG9iamVjdCk6
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD1kZWZhdWx0X2hvc3QpOgogICAgICAgICBz
ZWxmLmJ1aWxkYm90X2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX2J1aWxkZXJfYnlfbmFtZSA9
IHt9CiAKICAgICAgICAgIyBJZiBhbnkgTGVvcGFyZCBidWlsZGVyL3Rlc3RlciwgV2luZG93cyBi
dWlsZGVyIG9yIENocm9taXVtIGJ1aWxkZXIgaXMKICAgICAgICAgIyByZWQgd2Ugc2hvdWxkIG5v
dCBiZSBsYW5kaW5nIHBhdGNoZXMuICBPdGhlciBidWlsZGVycyBzaG91bGQgYmUgYWRkZWQKQEAg
LTIyNiw2ICsyODIsMzEgQEAgY2xhc3MgQnVpbGRCb3Qob2JqZWN0KToKICAgICAgICAgYnVpbGRf
c3RhdHVzX3VybCA9ICJodHRwOi8vJXMvb25lX2JveF9wZXJfYnVpbGRlciIgJSBzZWxmLmJ1aWxk
Ym90X2hvc3QKICAgICAgICAgcmV0dXJuIHVybGxpYjIudXJsb3BlbihidWlsZF9zdGF0dXNfdXJs
KQogCisgICAgZGVmIF9wYXJzZV90d2lzdGVkX2ZpbGVfcm93KHNlbGYsIGZpbGVfcm93KToKKyAg
ICAgICAgc3RyaW5nX29yX2VtcHR5ID0gbGFtYmRhIHN0cmluZzogc3RyKHN0cmluZykgaWYgc3Ry
aW5nIGVsc2UgIiIKKyAgICAgICAgCisgICAgICAgIGZpbGVfY2VsbHMgPSBmaWxlX3Jvdy5maW5k
QWxsKCd0ZCcpCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiZmlsZW5hbWUiIDogc3Ry
aW5nX29yX2VtcHR5KGZpbGVfY2VsbHNbMF0uZmluZCgiYSIpLnN0cmluZyksCisgICAgICAgICAg
ICAic2l6ZSIgOiBzdHJpbmdfb3JfZW1wdHkoZmlsZV9jZWxsc1sxXS5zdHJpbmcpLAorICAgICAg
ICAgICAgInR5cGUiIDogc3RyaW5nX29yX2VtcHR5KGZpbGVfY2VsbHNbMl0uc3RyaW5nKSwKKyAg
ICAgICAgICAgICJlbmNvZGluZyIgOiBzdHJpbmdfb3JfZW1wdHkoZmlsZV9jZWxsc1szXS5zdHJp
bmcpLAorICAgICAgICB9CisKKyAgICBkZWYgX3BhcnNlX3R3aXN0ZWRfZGlyZWN0b3J5X2xpc3Rp
bmcoc2VsZiwgcGFnZSk6CisgICAgICAgIHNvdXAgPSBCZWF1dGlmdWxTb3VwKHBhZ2UpCisgICAg
ICAgICMgSEFDSzogTWF0Y2ggb25seSB0YWJsZSByb3dzIHdpdGggYSBjbGFzcyB0byBpZ25vcmUg
dHdpc3RlZCBoZWFkZXIvZm9vdGVyIHJvd3MuCisgICAgICAgIGZpbGVfcm93cyA9IHNvdXAuZmlu
ZCgndGFibGUnKS5maW5kQWxsKCd0cicsIHsgImNsYXNzIiA6IFRydWUgfSkKKyAgICAgICAgcmV0
dXJuIFtzZWxmLl9wYXJzZV90d2lzdGVkX2ZpbGVfcm93KGZpbGVfcm93KSBmb3IgZmlsZV9yb3cg
aW4gZmlsZV9yb3dzXQorCisgICAgIyBGSVhNRTogVGhlcmUgc2hvdWxkIGJlIGEgYmV0dGVyIHdh
eSB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbiBkaXJlY3RseSBmcm9tIHR3aXN0ZWQuCisgICAgZGVm
IF9mZXRjaF90d2lzdGVkX2RpcmVjdG9yeV9saXN0aW5nKHNlbGYsIHVybCk6CisgICAgICAgIHBy
aW50ICJMaXN0aW5nOiAlcyIgJSB1cmwKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BhcnNlX3R3aXN0
ZWRfZGlyZWN0b3J5X2xpc3RpbmcodXJsbGliMi51cmxvcGVuKHVybCkpCisKKyAgICBkZWYgYnVp
bGRlcnMoc2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi5idWlsZGVyX3dpdGhfbmFtZShzdGF0
dXNbIm5hbWUiXSkgZm9yIHN0YXR1cyBpbiBzZWxmLmJ1aWxkZXJfc3RhdHVzZXMoKV0KKwogICAg
IGRlZiBidWlsZGVyX3N0YXR1c2VzKHNlbGYpOgogICAgICAgICBzb3VwID0gQmVhdXRpZnVsU291
cChzZWxmLl9mZXRjaF9vbmVfYm94X3Blcl9idWlsZGVyKCkpCiAgICAgICAgIHJldHVybiBbc2Vs
Zi5fcGFyc2VfYnVpbGRlcl9zdGF0dXNfZnJvbV9yb3coc3RhdHVzX3JvdykgZm9yIHN0YXR1c19y
b3cgaW4gc291cC5maW5kKCd0YWJsZScpLmZpbmRBbGwoJ3RyJyldCkBAIC0yMzQsNyArMzE1LDEx
IEBAIGNsYXNzIEJ1aWxkQm90KG9iamVjdCk6CiAgICAgICAgIHJldHVybiBbYnVpbGRlciBmb3Ig
YnVpbGRlciBpbiBzZWxmLmJ1aWxkZXJfc3RhdHVzZXMoKSBpZiBzZWxmLl9pc19jb3JlX2J1aWxk
ZXIoYnVpbGRlclsibmFtZSJdKV0KIAogICAgIGRlZiBidWlsZGVyX3dpdGhfbmFtZShzZWxmLCBu
YW1lKToKLSAgICAgICAgcmV0dXJuIEJ1aWxkZXIobmFtZSwgc2VsZikKKyAgICAgICAgYnVpbGRl
ciA9IHNlbGYuX2J1aWxkZXJfYnlfbmFtZS5nZXQobmFtZSkKKyAgICAgICAgaWYgbm90IGJ1aWxk
ZXI6CisgICAgICAgICAgICBidWlsZGVyID0gQnVpbGRlcihuYW1lLCBzZWxmKQorICAgICAgICAg
ICAgc2VsZi5fYnVpbGRlcl9ieV9uYW1lW25hbWVdID0gYnVpbGRlcgorICAgICAgICByZXR1cm4g
YnVpbGRlcgogCiAgICAgZGVmIHJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzKHNlbGYsIG9ubHlf
Y29yZV9idWlsZGVycz1UcnVlKToKICAgICAgICAgYnVpbGRlcl9zdGF0dXNlcyA9IHNlbGYuY29y
ZV9idWlsZGVyX3N0YXR1c2VzKCkgaWYgb25seV9jb3JlX2J1aWxkZXJzIGVsc2Ugc2VsZi5idWls
ZGVyX3N0YXR1c2VzKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YnVpbGRib3RfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxk
Ym90X3VuaXR0ZXN0LnB5CmluZGV4IGM0M2ZhMTQuLmRkNWU1ODQgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3RfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWlsZGJvdF91bml0dGVzdC5weQpAQCAtNzQsNiArNzQs
MTUgQEAgY2xhc3MgQnVpbGRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0
X2J1aWxkX2NhY2hpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5idWls
ZGVyLmJ1aWxkKDEwKSwgc2VsZi5idWlsZGVyLmJ1aWxkKDEwKSkKIAorICAgIGRlZiB0ZXN0X2J1
aWxkX2FuZF9yZXZpc2lvbl9mb3JfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIGV4cGVjdGF0aW9u
cyA9IHsKKyAgICAgICAgICAgICJyNDc0ODMgKDEpLyIgOiAoMSwgNDc0ODMpLAorICAgICAgICAg
ICAgInI0NzQ4MyAoMSkuemlwIiA6ICgxLCA0NzQ4MyksCisgICAgICAgIH0KKyAgICAgICAgZm9y
IGZpbGVuYW1lLCBidWlsZF9hbmRfcmV2aXNpb24gaW4gZXhwZWN0YXRpb25zLml0ZW1zKCk6Cisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuYnVpbGRlci5fYnVpbGRfYW5kX3Jldmlz
aW9uX2Zvcl9maWxlbmFtZShmaWxlbmFtZSksIGJ1aWxkX2FuZF9yZXZpc2lvbikKKworCiBjbGFz
cyBCdWlsZEJvdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgX2V4YW1wbGVfb25lX2Jv
eF9zdGF0dXMgPSAnJycKQEAgLTIxOSw2ICsyMjgsNTIgQEAgY2xhc3MgQnVpbGRCb3RUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5yZXZpc2lv
bigpLCAxOCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5pc19ncmVlbigpLCBGYWxz
ZSkKIAorICAgIF9leGFtcGxlX2RpcmVjdG9yeV9saXN0aW5nID0gJycnCis8aDE+RGlyZWN0b3J5
IGxpc3RpbmcgZm9yIC9yZXN1bHRzL1Nub3dMZW9wYXJkIEludGVsIExlYWtzLzwvaDE+CisKKzx0
YWJsZT4KKyAgICA8dGhlYWQ+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aD5GaWxlbmFt
ZTwvdGg+CisgICAgICAgICAgICA8dGg+U2l6ZTwvdGg+CisgICAgICAgICAgICA8dGg+Q29udGVu
dCB0eXBlPC90aD4KKyAgICAgICAgICAgIDx0aD5Db250ZW50IGVuY29kaW5nPC90aD4KKyAgICAg
ICAgPC90cj4KKyAgICA8L3RoZWFkPgorICAgIDx0Ym9keT4KKzx0ciBjbGFzcz0ib2RkIj4KKyAg
ICA8dGQ+PGEgaHJlZj0icjQ3NDgzJTIwJTI4MSUyOS8iPnI0NzQ4MyAoMSkvPC9hPjwvdGQ+Cisg
ICAgPHRkPjwvdGQ+CisgICAgPHRkPltEaXJlY3RvcnldPC90ZD4KKyAgICA8dGQ+PC90ZD4KKzwv
dHI+Cis8dHIgY2xhc3M9Im9kZCI+CisgICAgPHRkPjxhIGhyZWY9InI0NzQ4NCUyMCUyODIlMjku
emlwIj5yNDc0ODQgKDIpLnppcDwvYT48L3RkPgorICAgIDx0ZD44OUs8L3RkPgorICAgIDx0ZD5b
YXBwbGljYXRpb24vemlwXTwvdGQ+CisgICAgPHRkPjwvdGQ+Cis8L3RyPgorJycnCisgICAgX2V4
cGVjdGVkX2ZpbGVzID0gWworICAgICAgICB7CisgICAgICAgICAgICAiZmlsZW5hbWUiIDogInI0
NzQ4MyAoMSkvIiwKKyAgICAgICAgICAgICJzaXplIiA6ICIiLAorICAgICAgICAgICAgInR5cGUi
IDogIltEaXJlY3RvcnldIiwKKyAgICAgICAgICAgICJlbmNvZGluZyIgOiAiIiwKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImZpbGVuYW1lIiA6ICJyNDc0ODQgKDIpLnppcCIs
CisgICAgICAgICAgICAic2l6ZSIgOiAiODlLIiwKKyAgICAgICAgICAgICJ0eXBlIiA6ICJbYXBw
bGljYXRpb24vemlwXSIsCisgICAgICAgICAgICAiZW5jb2RpbmciIDogIiIsCisgICAgICAgIH0s
CisgICAgXQorCisgICAgZGVmIHRlc3RfcGFyc2VfYnVpbGRfdG9fcmV2aXNpb25fbWFwKHNlbGYp
OgorICAgICAgICBidWlsZGJvdCA9IEJ1aWxkQm90KCkKKyAgICAgICAgZmlsZXMgPSBidWlsZGJv
dC5fcGFyc2VfdHdpc3RlZF9kaXJlY3RvcnlfbGlzdGluZyhzZWxmLl9leGFtcGxlX2RpcmVjdG9y
eV9saXN0aW5nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2V4cGVjdGVkX2ZpbGVz
LCBmaWxlcykKKwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1h
aW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9x
dWVyaWVzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWVyaWVz
LnB5CmluZGV4IDIyOGNhNWQuLmMxMzc3YTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmllcy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkKQEAgLTE1OSw2ICsxNTksNyBAQCBjbGFzcyBX
aGF0QnJva2UoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgcHJpbnQgIkFsbCBidWlsZGVycyBhcmUgcGFzc2luZyEiCiAKKwogY2xhc3MgV2hv
QnJva2VJdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJ3aG8tYnJv
a2UtaXQiCiAgICAgaGVscF90ZXh0ID0gIlByaW50IGEgbGlzdCBvZiByZXZpc2lvbnMgY2F1c2lu
ZyBmYWlsdXJlcyBvbiAlcyIgJSBCdWlsZEJvdC5kZWZhdWx0X2hvc3QKQEAgLTE2Nyw2ICsxNjgs
MTkgQEAgY2xhc3MgV2hvQnJva2VJdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAg
ICAgIGZvciByZXZpc2lvbiwgYnVpbGRlcnMgaW4gc2VsZi50b29sLmJ1aWxkYm90LnJldmlzaW9u
c19jYXVzaW5nX2ZhaWx1cmVzKEZhbHNlKS5pdGVtcygpOgogICAgICAgICAgICAgcHJpbnQgInIl
cyBhcHBlYXJzIHRvIGhhdmUgYnJva2VuICVzIiAlIChyZXZpc2lvbiwgW2J1aWxkZXIubmFtZSgp
IGZvciBidWlsZGVyIGluIGJ1aWxkZXJzXSkKIAorCitjbGFzcyBSZXN1bHRzRm9yKEFic3RyYWN0
RGVjbGFyYXRpdmVDb21tYW5kKToKKyAgICBuYW1lID0gInJlc3VsdHMtZm9yIgorICAgIGhlbHBf
dGV4dCA9ICJQcmludCBhIGxpc3Qgb2YgZmFpbHVyZXMgZm9yIHRoZSBwYXNzZWQgcmV2aXNpb24g
ZnJvbSBib3RzIG9uICVzIiAlIEJ1aWxkQm90LmRlZmF1bHRfaG9zdAorCisgICAgZGVmIGV4ZWN1
dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CisgICAgICAgIGJ1aWxkZXJzID0gc2VsZi50
b29sLmJ1aWxkYm90LmJ1aWxkZXJzKCkKKyAgICAgICAgZm9yIGJ1aWxkZXIgaW4gYnVpbGRlcnM6
CisgICAgICAgICAgICBidWlsZGVyLnJldmlzaW9uX3RvX2J1aWxkKGFyZ3NbMF0pCisgICAgICAg
IGZvciByZXZpc2lvbiwgYnVpbGRlcnMgaW4gc2VsZi50b29sLmJ1aWxkYm90LnJldmlzaW9uc19j
YXVzaW5nX2ZhaWx1cmVzKEZhbHNlKS5pdGVtcygpOgorICAgICAgICAgICAgcHJpbnQgInIlcyBh
cHBlYXJzIHRvIGhhdmUgYnJva2VuICVzIiAlIChyZXZpc2lvbiwgW2J1aWxkZXIubmFtZSgpIGZv
ciBidWlsZGVyIGluIGJ1aWxkZXJzXSkKKworCiBjbGFzcyBUcmVlU3RhdHVzKEFic3RyYWN0RGVj
bGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gInRyZWUtc3RhdHVzIgogICAgIGhlbHBfdGV4
dCA9ICJQcmludCB0aGUgc3RhdHVzIG9mIHRoZSAlcyBidWlsZGJvdHMiICUgQnVpbGRCb3QuZGVm
YXVsdF9ob3N0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51401</attachid>
            <date>2010-03-23 01:19:59 -0700</date>
            <delta_ts>2010-03-23 13:43:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36474-20100323011958.patch</filename>
            <type>text/plain</type>
            <size>17786</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyMzQ2YTBmLi5lNzhlYzg4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMt
MjMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXZpc2lvbiAtPiBi
dWlsZCBsb29rdXAgaW4gYnVpbGRib3QucHkgYW5kIGxheW91dCB0ZXN0IHJlc3VsdCBwYXJzaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjQ3NAor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYV91bml0dGVzdC5weTogQWRkZWQg
YSBGSVhNRSBhYm91dCBzaGFyaW5nIGNvZGUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
dWlsZGJvdC5weTogCisgICAgICAgICAtIEFkZCBzdXBwb3J0IGZvciBsb29raW5nIHVwIGJ1aWxk
cyBieSByZXZpc2lvbiBudW1iZXIuCisgICAgICAgICAtIEFkZCBzdXBwb3J0IGZvciBmZXRjaGlu
ZyBhbmQgcGFyc2luZyByZXN1bHRzLmh0bWwgZmlsZXMgZnJvbSBidWlsZGJvdC4KKyAgICAgICAg
IC0gYnVpbGRfZm9yX3JldmlzaW9uIGhhcyBhbiBhbGxvd19mYWlsZWRfbG9va3VwcyBvcHRpb24g
dG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdAorICAgICAgICAgICBvdXIgYnVpbGRib3QncyB4
bWxycGMgY2FsbHMgcmV0dXJuIGZhaWx1cmUgb24gb2xkIHJldmlzaW9uIG51bWJlcnMuCisgICAg
ICAgICAtIEFkZCBwYXJzaW5nIHN1cHBvcnQgZm9yIHR3aXN0ZWQgZGlyZWN0b3J5IGxpc3Rpbmdz
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYnVpbGRib3RfdW5pdHRlc3QucHk6CisgICAg
ICAgICAtIFVuaXQgdGVzdCBhbGwgdGhlIG5ldyBjb2RlLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbWFuZHMvcXVlcmllcy5weToKKyAgICAgICAgIC0gQWRkIGEgbmV3IHJlc3VsdHMt
Zm9yIGNvbW1hbmQgd2hpY2ggcHJpbnRzIGFsbCB0aGUgcmVzdWx0cyBmb3IgYSBnaXZlbiByZXZp
c2lvbiAodmVyeSBzbG93IGR1ZSB0byBzbG93IHJldmlzaW9uIGxvb2t1cCkKKwogMjAxMC0wMy0y
MiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
dWd6aWxsYV91bml0dGVzdC5weQppbmRleCA1MDk1MDMyLi44MWQzNGI0IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVnemlsbGFfdW5pdHRlc3QucHkKQEAgLTIwNSw2
ICsyMDUsNyBAQCBaRVpwYm1semFFeHZZV1JYYVhSb1VtVmhjMjl1T25KbFlYTnZibDA3Q2l0OUNp
c0tJRUJsYm1RS0lBb2dJMlZ1WkdsbUNnPT0KICAgICAgICAgfV0sCiAgICAgfQogCisgICAgIyBG
SVhNRTogVGhpcyBzaG91bGQgbW92ZSB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5kIGJlIHNoYXJl
ZCBieSBtb3JlIHVuaXQgdGVzdHMuCiAgICAgZGVmIF9hc3NlcnRfZGljdGlvbmFyaWVzX2VxdWFs
KHNlbGYsIGFjdHVhbCwgZXhwZWN0ZWQpOgogICAgICAgICAjIE1ha2Ugc3VyZSB3ZSBhcmVuJ3Qg
cGFyc2luZyBtb3JlIG9yIGxlc3MgdGhhbiB3ZSBleHBlY3QKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc29ydGVkKGFjdHVhbC5rZXlzKCkpLCBzb3J0ZWQoZXhwZWN0ZWQua2V5cygpKSkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5CmluZGV4IDkwMmM3NDIuLmZmZjA2
MTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWlsZGJvdC5weQpAQCAtNDYsMTIg
KzQ2LDE5IEBAIGNsYXNzIEJ1aWxkZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fbmFtZSA9IHVu
aWNvZGUobmFtZSkKICAgICAgICAgc2VsZi5fYnVpbGRib3QgPSBidWlsZGJvdAogICAgICAgICBz
ZWxmLl9idWlsZHNfY2FjaGUgPSB7fQorICAgICAgICBzZWxmLl9yZXZpc2lvbl90b19idWlsZF9u
dW1iZXIgPSBOb25lCiAKICAgICBkZWYgbmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu
X25hbWUKIAorICAgIGRlZiByZXN1bHRzX3VybChzZWxmKToKKyAgICAgICAgcmV0dXJuICJodHRw
Oi8vJXMvcmVzdWx0cy8lcyIgJSAoc2VsZi5fYnVpbGRib3QuYnVpbGRib3RfaG9zdCwgc2VsZi51
cmxfZW5jb2RlZF9uYW1lKCkpCisKKyAgICBkZWYgdXJsX2VuY29kZWRfbmFtZShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHVybGxpYi5xdW90ZShzZWxmLl9uYW1lKQorCiAgICAgZGVmIHVybChzZWxm
KToKLSAgICAgICAgcmV0dXJuICJodHRwOi8vJXMvYnVpbGRlcnMvJXMiICUgKHNlbGYuX2J1aWxk
Ym90LmJ1aWxkYm90X2hvc3QsIHVybGxpYi5xdW90ZShzZWxmLl9uYW1lKSkKKyAgICAgICAgcmV0
dXJuICJodHRwOi8vJXMvYnVpbGRlcnMvJXMiICUgKHNlbGYuX2J1aWxkYm90LmJ1aWxkYm90X2hv
c3QsIHNlbGYudXJsX2VuY29kZWRfbmFtZSgpKQogCiAgICAgIyBUaGlzIHByb3ZpZGVzIGEgc2lu
Z2xlIHBsYWNlIHRvIG1vY2sKICAgICBkZWYgX2ZldGNoX2J1aWxkKHNlbGYsIGJ1aWxkX251bWJl
cik6CkBAIC02NSw2ICs3Miw4IEBAIGNsYXNzIEJ1aWxkZXIob2JqZWN0KToKICAgICAgICAgKQog
CiAgICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX251bWJlcik6CisgICAgICAgIGlmIG5vdCBidWls
ZF9udW1iZXI6CisgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBjYWNoZWRfYnVpbGQg
PSBzZWxmLl9idWlsZHNfY2FjaGUuZ2V0KGJ1aWxkX251bWJlcikKICAgICAgICAgaWYgY2FjaGVk
X2J1aWxkOgogICAgICAgICAgICAgcmV0dXJuIGNhY2hlZF9idWlsZApAQCAtNzMsOSArODIsNDUg
QEAgY2xhc3MgQnVpbGRlcihvYmplY3QpOgogICAgICAgICBzZWxmLl9idWlsZHNfY2FjaGVbYnVp
bGRfbnVtYmVyXSA9IGJ1aWxkCiAgICAgICAgIHJldHVybiBidWlsZAogCisgICAgZmlsZV9uYW1l
X3JlZ2V4cCA9IHJlLmNvbXBpbGUociJyKD9QPHJldmlzaW9uPlxkKykgXCgoP1A8YnVpbGRfbnVt
YmVyPlxkKylcKSIpCisgICAgZGVmIF9yZXZpc2lvbl9hbmRfYnVpbGRfZm9yX2ZpbGVuYW1lKHNl
bGYsIGZpbGVuYW1lKToKKyAgICAgICAgIyBFeGFtcGxlOiAicjQ3NDgzICgxKS8iIG9yICJyNDc0
ODMgKDEpLnppcCIKKyAgICAgICAgbWF0Y2ggPSBzZWxmLmZpbGVfbmFtZV9yZWdleHAubWF0Y2go
ZmlsZW5hbWUpCisgICAgICAgIHJldHVybiAoaW50KG1hdGNoLmdyb3VwKCJyZXZpc2lvbiIpKSwg
aW50KG1hdGNoLmdyb3VwKCJidWlsZF9udW1iZXIiKSkpCisKKyAgICBkZWYgX2ZldGNoX3Jldmlz
aW9uX3RvX2J1aWxkX21hcChzZWxmKToKKyAgICAgICAgIyBBbGwgX2ZldGNoIHJlcXVlc3RzIGdv
IHRocm91Z2ggX2J1aWxkYm90IGZvciBlYXNpZXIgbW9ja2luZworICAgICAgICB0cnk6CisgICAg
ICAgICAgICAjIEZJWE1FOiBUaGlzIG1ldGhvZCBpcyBob3JyaWJseSBzbG93IGR1ZSB0byB0aGUg
aHVnZSBuZXR3b3JrIGxvYWQuCisgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgcG9vciB3
YXkgdG8gZG8gcmV2aXNpb24gLT4gYnVpbGQgbWFwcGluZy4KKyAgICAgICAgICAgICMgQmV0dGVy
IHdvdWxkIGJlIHRvIGFzayBidWlsZGJvdCB0aHJvdWdoIHNvbWUgc29ydCBvZiBBUEkuCisgICAg
ICAgICAgICByZXN1bHRfZmlsZXMgPSBzZWxmLl9idWlsZGJvdC5fZmV0Y2hfdHdpc3RlZF9kaXJl
Y3RvcnlfbGlzdGluZyhzZWxmLnJlc3VsdHNfdXJsKCkpCisgICAgICAgIGV4Y2VwdCB1cmxsaWIy
LkhUVFBFcnJvciwgZXJyb3I6CisgICAgICAgICAgICBpZiBlcnJvci5jb2RlICE9IDQwNDoKKyAg
ICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgcmVzdWx0X2ZpbGVzID0gW10KKworICAg
ICAgICAjIFRoaXMgYXNzdW1lcyB0aGVyZSB3YXMgb25seSBvbmUgYnVpbGQgcGVyIHJldmlzaW9u
LCB3aGljaCBpcyBmYWxzZSBidXQgd2UgZG9uJ3QgY2FyZSBmb3Igbm93LgorICAgICAgICByZXR1
cm4gZGljdChbc2VsZi5fcmV2aXNpb25fYW5kX2J1aWxkX2Zvcl9maWxlbmFtZShmaWxlX2luZm9b
ImZpbGVuYW1lIl0pIGZvciBmaWxlX2luZm8gaW4gcmVzdWx0X2ZpbGVzXSkKKworICAgICMgVGhp
cyBhc3N1bWVzIHRoZXJlIGNhbiBiZSBvbmx5IG9uZSBidWlsZCBwZXIgcmV2aXNpb24sIHdoaWNo
IGlzIGZhbHNlLCBidXQgd2UgZG9uJ3QgY2FyZSBmb3Igbm93LgorICAgIGRlZiBidWlsZF9mb3Jf
cmV2aXNpb24oc2VsZiwgcmV2aXNpb24sIGFsbG93X2ZhaWxlZF9sb29rdXBzPUZhbHNlKToKKyAg
ICAgICAgaWYgbm90IHNlbGYuX3JldmlzaW9uX3RvX2J1aWxkX251bWJlcjoKKyAgICAgICAgICAg
IHNlbGYuX3JldmlzaW9uX3RvX2J1aWxkX251bWJlciA9IHNlbGYuX2ZldGNoX3JldmlzaW9uX3Rv
X2J1aWxkX21hcCgpCisgICAgICAgICMgTk9URTogVGhpcyBsb29rdXAgd2lsbCBmYWlsIGlmIHRo
YXQgZXhhY3QgcmV2aXNpb24gd2FzIG5ldmVyIGJ1aWx0LgorICAgICAgICBidWlsZF9udW1iZXIg
PSBzZWxmLl9yZXZpc2lvbl90b19idWlsZF9udW1iZXIuZ2V0KGludChyZXZpc2lvbikpCisgICAg
ICAgIGJ1aWxkID0gc2VsZi5idWlsZChidWlsZF9udW1iZXIpCisgICAgICAgIGlmIG5vdCBidWls
ZCBhbmQgYWxsb3dfZmFpbGVkX2xvb2t1cHM6CisgICAgICAgICAgICAjIEJ1aWxkcyBmb3Igb2xk
IHJldmlzaW9ucyB3aXRoIGZhaWwgdG8gbG9va3VwIHZpYSBidWlsZGJvdCdzIHhtbHJwYyBhcGku
CisgICAgICAgICAgICBidWlsZCA9IEJ1aWxkKHNlbGYsCisgICAgICAgICAgICAgICAgYnVpbGRf
bnVtYmVyPWJ1aWxkX251bWJlciwKKyAgICAgICAgICAgICAgICByZXZpc2lvbj1yZXZpc2lvbiwK
KyAgICAgICAgICAgICAgICBpc19ncmVlbj1GYWxzZSwKKyAgICAgICAgICAgICkKKyAgICAgICAg
cmV0dXJuIGJ1aWxkCisKICAgICAjIEZJWE1FOiBXZSBzaG91bGQgbm90IGhhdmUgdG8gcGFzcyBh
IHJlZF9idWlsZF9udW1iZXIsIGJ1dCByYXRoZXIgQnVpbGRlciBzaG91bGQKICAgICAjIGtub3cg
d2hhdCBpdHMgImxhdGVzdF9idWlsZCIgaXMuCi0gICAgIyBGSVhNRTogVGhpcyBuZWVkcyB1bml0
IHRlc3RpbmcuCiAgICAgZGVmIGZpbmRfZ3JlZW5fdG9fcmVkX3RyYW5zaXRpb24oc2VsZiwgcmVk
X2J1aWxkX251bWJlciwgbG9va19iYWNrX2xpbWl0PTMwKToKICAgICAgICAgIyB3YWxrIGJhY2t3
YXJkcyB1bnRpbCB3ZSBmaW5kIGEgZ3JlZW4gYnVpbGQKICAgICAgICAgcmVkX2J1aWxkID0gc2Vs
Zi5idWlsZChyZWRfYnVpbGRfbnVtYmVyKQpAQCAtMTExLDYgKzE1Niw3IEBAIGNsYXNzIEJ1aWxk
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX251bWJlciA9IGJ1aWxkX251bWJlcgogICAgICAgICBz
ZWxmLl9yZXZpc2lvbiA9IHJldmlzaW9uCiAgICAgICAgIHNlbGYuX2lzX2dyZWVuID0gaXNfZ3Jl
ZW4KKyAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKIAogICAgIEBzdGF0
aWNtZXRob2QKICAgICBkZWYgYnVpbGRfdXJsKGJ1aWxkZXIsIGJ1aWxkX251bWJlcik6CkBAIC0x
MTksNiArMTY1LDMzIEBAIGNsYXNzIEJ1aWxkKG9iamVjdCk6CiAgICAgZGVmIHVybChzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuYnVpbGRfdXJsKHNlbGYuYnVpbGRlcigpLCBzZWxmLl9udW1i
ZXIpCiAKKyAgICBkZWYgcmVzdWx0c191cmwoc2VsZik6CisgICAgICAgIHJlc3VsdHNfZGlyZWN0
b3J5ID0gInIlcyAoJXMpIiAlIChzZWxmLnJldmlzaW9uKCksIHNlbGYuX251bWJlcikKKyAgICAg
ICAgcmV0dXJuICIlcy8lcyIgJSAoc2VsZi5fYnVpbGRlci5yZXN1bHRzX3VybCgpLCB1cmxsaWIu
cXVvdGUocmVzdWx0c19kaXJlY3RvcnkpKQorCisgICAgZGVmIF9wYXJzZV9sYXlvdXRfdGVzdF9y
ZXN1bHRzKHNlbGYsIHBhZ2UpOgorICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRzID0ge30KKyAg
ICAgICAgdGFibGVzID0gQmVhdXRpZnVsU291cChwYWdlKS5maW5kQWxsKCJ0YWJsZSIpCisgICAg
ICAgIGZvciB0YWJsZSBpbiB0YWJsZXM6CisgICAgICAgICAgICB0YWJsZV90aXRsZSA9IHRhYmxl
LmZpbmRQcmV2aW91c1NpYmxpbmcoInAiKS5zdHJpbmcKKyAgICAgICAgICAgIGxheW91dF90ZXN0
X3Jlc3VsdHNbdGFibGVfdGl0bGVdID0gW3Jvdy5maW5kKCJhIikuc3RyaW5nIGZvciByb3cgaW4g
dGFibGUuZmluZEFsbCgidHIiKV0KKworICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3RfcmVzdWx0
cworCisgICAgZGVmIF9mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBy
ZXN1bHRzX2h0bWwgPSAiJXMvcmVzdWx0cy5odG1sIiAlIHNlbGYucmVzdWx0c191cmwoKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBwYWdlID0gdXJsbGliMi51cmxvcGVuKHJlc3VsdHNfaHRt
bCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJzZV9sYXlvdXRfdGVzdF9yZXN1bHRzKHBh
Z2UpCisgICAgICAgIGV4Y2VwdCB1cmxsaWIyLkhUVFBFcnJvciwgZXJyb3I6CisgICAgICAgICAg
ICBpZiBlcnJvci5jb2RlICE9IDQwNDoKKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgZGVm
IGxheW91dF90ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9sYXlvdXRf
dGVzdF9yZXN1bHRzOgorICAgICAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IHNl
bGYuX2ZldGNoX2xheW91dF90ZXN0X3Jlc3VsdHMoKQorICAgICAgICByZXR1cm4gc2VsZi5fbGF5
b3V0X3Rlc3RfcmVzdWx0cworCiAgICAgZGVmIGJ1aWxkZXIoc2VsZik6CiAgICAgICAgIHJldHVy
biBzZWxmLl9idWlsZGVyCiAKQEAgLTE0MCw2ICsyMTMsNyBAQCBjbGFzcyBCdWlsZEJvdChvYmpl
Y3QpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9ZGVmYXVsdF9ob3N0KToKICAgICAg
ICAgc2VsZi5idWlsZGJvdF9ob3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9idWlsZGVyX2J5X25h
bWUgPSB7fQogCiAgICAgICAgICMgSWYgYW55IExlb3BhcmQgYnVpbGRlci90ZXN0ZXIsIFdpbmRv
d3MgYnVpbGRlciBvciBDaHJvbWl1bSBidWlsZGVyIGlzCiAgICAgICAgICMgcmVkIHdlIHNob3Vs
ZCBub3QgYmUgbGFuZGluZyBwYXRjaGVzLiAgT3RoZXIgYnVpbGRlcnMgc2hvdWxkIGJlIGFkZGVk
CkBAIC0yMjYsNiArMzAwLDI5IEBAIGNsYXNzIEJ1aWxkQm90KG9iamVjdCk6CiAgICAgICAgIGJ1
aWxkX3N0YXR1c191cmwgPSAiaHR0cDovLyVzL29uZV9ib3hfcGVyX2J1aWxkZXIiICUgc2VsZi5i
dWlsZGJvdF9ob3N0CiAgICAgICAgIHJldHVybiB1cmxsaWIyLnVybG9wZW4oYnVpbGRfc3RhdHVz
X3VybCkKIAorICAgIGRlZiBfcGFyc2VfdHdpc3RlZF9maWxlX3JvdyhzZWxmLCBmaWxlX3Jvdyk6
CisgICAgICAgIHN0cmluZ19vcl9lbXB0eSA9IGxhbWJkYSBzdHJpbmc6IHN0cihzdHJpbmcpIGlm
IHN0cmluZyBlbHNlICIiCisgICAgICAgIGZpbGVfY2VsbHMgPSBmaWxlX3Jvdy5maW5kQWxsKCd0
ZCcpCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiZmlsZW5hbWUiIDogc3RyaW5nX29y
X2VtcHR5KGZpbGVfY2VsbHNbMF0uZmluZCgiYSIpLnN0cmluZyksCisgICAgICAgICAgICAic2l6
ZSIgOiBzdHJpbmdfb3JfZW1wdHkoZmlsZV9jZWxsc1sxXS5zdHJpbmcpLAorICAgICAgICAgICAg
InR5cGUiIDogc3RyaW5nX29yX2VtcHR5KGZpbGVfY2VsbHNbMl0uc3RyaW5nKSwKKyAgICAgICAg
ICAgICJlbmNvZGluZyIgOiBzdHJpbmdfb3JfZW1wdHkoZmlsZV9jZWxsc1szXS5zdHJpbmcpLAor
ICAgICAgICB9CisKKyAgICBkZWYgX3BhcnNlX3R3aXN0ZWRfZGlyZWN0b3J5X2xpc3Rpbmcoc2Vs
ZiwgcGFnZSk6CisgICAgICAgIHNvdXAgPSBCZWF1dGlmdWxTb3VwKHBhZ2UpCisgICAgICAgICMg
SEFDSzogTWF0Y2ggb25seSB0YWJsZSByb3dzIHdpdGggYSBjbGFzcyB0byBpZ25vcmUgdHdpc3Rl
ZCBoZWFkZXIvZm9vdGVyIHJvd3MuCisgICAgICAgIGZpbGVfcm93cyA9IHNvdXAuZmluZCgndGFi
bGUnKS5maW5kQWxsKCd0cicsIHsgImNsYXNzIiA6IFRydWUgfSkKKyAgICAgICAgcmV0dXJuIFtz
ZWxmLl9wYXJzZV90d2lzdGVkX2ZpbGVfcm93KGZpbGVfcm93KSBmb3IgZmlsZV9yb3cgaW4gZmls
ZV9yb3dzXQorCisgICAgIyBGSVhNRTogVGhlcmUgc2hvdWxkIGJlIGEgYmV0dGVyIHdheSB0byBn
ZXQgdGhpcyBpbmZvcm1hdGlvbiBkaXJlY3RseSBmcm9tIHR3aXN0ZWQuCisgICAgZGVmIF9mZXRj
aF90d2lzdGVkX2RpcmVjdG9yeV9saXN0aW5nKHNlbGYsIHVybCk6CisgICAgICAgIHJldHVybiBz
ZWxmLl9wYXJzZV90d2lzdGVkX2RpcmVjdG9yeV9saXN0aW5nKHVybGxpYjIudXJsb3Blbih1cmwp
KQorCisgICAgZGVmIGJ1aWxkZXJzKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYnVpbGRl
cl93aXRoX25hbWUoc3RhdHVzWyJuYW1lIl0pIGZvciBzdGF0dXMgaW4gc2VsZi5idWlsZGVyX3N0
YXR1c2VzKCldCisKICAgICBkZWYgYnVpbGRlcl9zdGF0dXNlcyhzZWxmKToKICAgICAgICAgc291
cCA9IEJlYXV0aWZ1bFNvdXAoc2VsZi5fZmV0Y2hfb25lX2JveF9wZXJfYnVpbGRlcigpKQogICAg
ICAgICByZXR1cm4gW3NlbGYuX3BhcnNlX2J1aWxkZXJfc3RhdHVzX2Zyb21fcm93KHN0YXR1c19y
b3cpIGZvciBzdGF0dXNfcm93IGluIHNvdXAuZmluZCgndGFibGUnKS5maW5kQWxsKCd0cicpXQpA
QCAtMjM0LDcgKzMzMSwxMSBAQCBjbGFzcyBCdWlsZEJvdChvYmplY3QpOgogICAgICAgICByZXR1
cm4gW2J1aWxkZXIgZm9yIGJ1aWxkZXIgaW4gc2VsZi5idWlsZGVyX3N0YXR1c2VzKCkgaWYgc2Vs
Zi5faXNfY29yZV9idWlsZGVyKGJ1aWxkZXJbIm5hbWUiXSldCiAKICAgICBkZWYgYnVpbGRlcl93
aXRoX25hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBCdWlsZGVyKG5hbWUsIHNlbGYp
CisgICAgICAgIGJ1aWxkZXIgPSBzZWxmLl9idWlsZGVyX2J5X25hbWUuZ2V0KG5hbWUpCisgICAg
ICAgIGlmIG5vdCBidWlsZGVyOgorICAgICAgICAgICAgYnVpbGRlciA9IEJ1aWxkZXIobmFtZSwg
c2VsZikKKyAgICAgICAgICAgIHNlbGYuX2J1aWxkZXJfYnlfbmFtZVtuYW1lXSA9IGJ1aWxkZXIK
KyAgICAgICAgcmV0dXJuIGJ1aWxkZXIKIAogICAgIGRlZiByZXZpc2lvbnNfY2F1c2luZ19mYWls
dXJlcyhzZWxmLCBvbmx5X2NvcmVfYnVpbGRlcnM9VHJ1ZSk6CiAgICAgICAgIGJ1aWxkZXJfc3Rh
dHVzZXMgPSBzZWxmLmNvcmVfYnVpbGRlcl9zdGF0dXNlcygpIGlmIG9ubHlfY29yZV9idWlsZGVy
cyBlbHNlIHNlbGYuYnVpbGRlcl9zdGF0dXNlcygpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90X3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9idWlsZGJvdF91bml0dGVzdC5weQppbmRleCBjNDNmYTE0Li5lNDE3ZDE0IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90X3VuaXR0ZXN0
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3RfdW5pdHRlc3Qu
cHkKQEAgLTc0LDYgKzc0LDU1IEBAIGNsYXNzIEJ1aWxkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICBkZWYgdGVzdF9idWlsZF9jYWNoaW5nKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYuYnVpbGRlci5idWlsZCgxMCksIHNlbGYuYnVpbGRlci5idWlsZCgxMCkpCiAK
KyAgICBkZWYgdGVzdF9idWlsZF9hbmRfcmV2aXNpb25fZm9yX2ZpbGVuYW1lKHNlbGYpOgorICAg
ICAgICBleHBlY3RhdGlvbnMgPSB7CisgICAgICAgICAgICAicjQ3NDgzICgxKS8iIDogKDQ3NDgz
LCAxKSwKKyAgICAgICAgICAgICJyNDc0ODMgKDEpLnppcCIgOiAoNDc0ODMsIDEpLAorICAgICAg
ICB9CisgICAgICAgIGZvciBmaWxlbmFtZSwgcmV2aXNpb25fYW5kX2J1aWxkIGluIGV4cGVjdGF0
aW9ucy5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmJ1aWxkZXIu
X3JldmlzaW9uX2FuZF9idWlsZF9mb3JfZmlsZW5hbWUoZmlsZW5hbWUpLCByZXZpc2lvbl9hbmRf
YnVpbGQpCisKKworY2xhc3MgQnVpbGRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBfZXhh
bXBsZV9yZXN1bHRzX2h0bWwgPSAiIiIKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TGF5b3V0IFRl
c3QgUmVzdWx0czwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3RzIHRoYXQgaGFkIHN0
ZGVyciBvdXRwdXQ6PC9wPgorPHRhYmxlPgorPHRyPgorPHRkPjxhIGhyZWY9Ii92YXIvbGliL2J1
aWxkYm90L2J1aWxkL2d0ay1saW51eC02NC1yZWxlYXNlL2J1aWxkL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1hY3RpdmVkZXNjZW5kYW50LWNyYXNoLmh0bWwiPmFjY2Vzc2liaWxpdHkv
YXJpYS1hY3RpdmVkZXNjZW5kYW50LWNyYXNoLmh0bWw8L2E+PC90ZD4KKzx0ZD48YSBocmVmPSJh
Y2Nlc3NpYmlsaXR5L2FyaWEtYWN0aXZlZGVzY2VuZGFudC1jcmFzaC1zdGRlcnIudHh0Ij5zdGRl
cnI8L2E+PC90ZD4KKzwvdHI+Cis8dGQ+PGEgaHJlZj0iL3Zhci9saWIvYnVpbGRib3QvYnVpbGQv
Z3RrLWxpbnV4LTY0LXJlbGVhc2UvYnVpbGQvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jYW52YXMtcmVtb3RlLXJlYWQtc3ZnLWltYWdlLmh0bWwiPmh0dHAvdGVzdHMvc2VjdXJpdHkv
Y2FudmFzLXJlbW90ZS1yZWFkLXN2Zy1pbWFnZS5odG1sPC9hPjwvdGQ+Cis8dGQ+PGEgaHJlZj0i
aHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtc3ZnLWltYWdlLXN0ZGVyci50
eHQiPnN0ZGVycjwvYT48L3RkPgorPC90cj4KKzwvdGFibGU+PHA+VGVzdHMgdGhhdCBoYWQgbm8g
ZXhwZWN0ZWQgcmVzdWx0cyAocHJvYmFibHkgbmV3KTo8L3A+Cis8dGFibGU+Cis8dHI+Cis8dGQ+
PGEgaHJlZj0iL3Zhci9saWIvYnVpbGRib3QvYnVpbGQvZ3RrLWxpbnV4LTY0LXJlbGVhc2UvYnVp
bGQvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNvbnRl
bnQtZWRpdGFibGUtZWxlbWVudC5odG1sIj5mYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1p
bi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0bWw8L2E+PC90ZD4KKzx0ZD48YSBocmVm
PSJmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1l
bGVtZW50LWFjdHVhbC50eHQiPnJlc3VsdDwvYT48L3RkPgorPC90cj4KKzwvdGFibGU+PC9ib2R5
PgorPC9odG1sPgorIiIiCisKKyAgICBfZXhwZWN0ZWRfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IHsK
KyAgICAgICAgJ1Rlc3RzIHRoYXQgaGFkIHN0ZGVyciBvdXRwdXQ6JyA6IFsKKyAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L2FyaWEtYWN0aXZlZGVzY2VuZGFudC1jcmFzaC5odG1sJworICAgICAg
ICBdLAorICAgICAgICAnVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyAocHJvYmFi
bHkgbmV3KTonIDogWworICAgICAgICAgICAgJ2Zhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50
LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbCcKKyAgICAgICAgXQorICAgIH0K
KyAgICBkZWYgdGVzdF9wYXJzZV9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBi
dWlsZCA9IEJ1aWxkKE5vbmUsIHJldmlzaW9uPTEsIGJ1aWxkX251bWJlcj0xLCBpc19ncmVlbj1G
YWxzZSkKKyAgICAgICAgcmVzdWx0cyA9IGJ1aWxkLl9wYXJzZV9sYXlvdXRfdGVzdF9yZXN1bHRz
KHNlbGYuX2V4YW1wbGVfcmVzdWx0c19odG1sKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuX2V4cGVjdGVkX2xheW91dF90ZXN0X3Jlc3VsdHMsIHJlc3VsdHMpCisKKwogY2xhc3MgQnVp
bGRCb3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIF9leGFtcGxlX29uZV9ib3hfc3Rh
dHVzID0gJycnCkBAIC0xOTYsNiArMjQ1LDggQEAgY2xhc3MgQnVpbGRCb3RUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgYnVpbGRlciA9IGJ1aWxkYm90LmJ1aWxkZXJfd2l0aF9uYW1l
KCJUZXN0IEJ1aWxkZXIiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIubmFtZSgp
LCAiVGVzdCBCdWlsZGVyIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnVybCgp
LCAiaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvVGVzdCUyMEJ1aWxkZXIiKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIudXJsX2VuY29kZWRfbmFtZSgpLCAiVGVzdCUy
MEJ1aWxkZXIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVzdWx0c191cmwo
KSwgImh0dHA6Ly9idWlsZC53ZWJraXQub3JnL3Jlc3VsdHMvVGVzdCUyMEJ1aWxkZXIiKQogCiAg
ICAgICAgICMgT3ZlcnJpZGUgX2ZldGNoX3htbHJwY19idWlsZF9kaWN0aW9uYXJ5IGZ1bmN0aW9u
IHRvIG5vdCB0b3VjaCB0aGUgbmV0d29yay4KICAgICAgICAgZGVmIG1vY2tfZmV0Y2hfeG1scnBj
X2J1aWxkX2RpY3Rpb25hcnkoc2VsZiwgYnVpbGRfbnVtYmVyKToKQEAgLTIxMCwxNSArMjYxLDY1
IEBAIGNsYXNzIEJ1aWxkQm90VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGJ1aWxk
ID0gYnVpbGRlci5idWlsZCgxMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5idWls
ZGVyKCksIGJ1aWxkZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGQudXJsKCksICJo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9UZXN0JTIwQnVpbGRlci9idWlsZHMvMTAi
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkLnJlc3VsdHNfdXJsKCksICJodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9yZXN1bHRzL1Rlc3QlMjBCdWlsZGVyL3IyMCUyMCUyODEwJTI5IikK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5yZXZpc2lvbigpLCAyMCkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChidWlsZC5pc19ncmVlbigpLCBUcnVlKQogCiAgICAgICAgIGJ1aWxk
ID0gYnVpbGQucHJldmlvdXNfYnVpbGQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxk
LmJ1aWxkZXIoKSwgYnVpbGRlcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC51cmwo
KSwgImh0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1Rlc3QlMjBCdWlsZGVyL2J1aWxk
cy85IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5yZXN1bHRzX3VybCgpLCAiaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvcmVzdWx0cy9UZXN0JTIwQnVpbGRlci9yMTglMjAlMjg5JTI5
IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5yZXZpc2lvbigpLCAxOCkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5pc19ncmVlbigpLCBGYWxzZSkKIAorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIuYnVpbGQoTm9uZSksIE5vbmUpCisKKyAgICBfZXhhbXBs
ZV9kaXJlY3RvcnlfbGlzdGluZyA9ICcnJworPGgxPkRpcmVjdG9yeSBsaXN0aW5nIGZvciAvcmVz
dWx0cy9Tbm93TGVvcGFyZCBJbnRlbCBMZWFrcy88L2gxPgorCis8dGFibGU+CisgICAgPHRoZWFk
PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGg+RmlsZW5hbWU8L3RoPgorICAgICAgICAg
ICAgPHRoPlNpemU8L3RoPgorICAgICAgICAgICAgPHRoPkNvbnRlbnQgdHlwZTwvdGg+CisgICAg
ICAgICAgICA8dGg+Q29udGVudCBlbmNvZGluZzwvdGg+CisgICAgICAgIDwvdHI+CisgICAgPC90
aGVhZD4KKyAgICA8dGJvZHk+Cis8dHIgY2xhc3M9Im9kZCI+CisgICAgPHRkPjxhIGhyZWY9InI0
NzQ4MyUyMCUyODElMjkvIj5yNDc0ODMgKDEpLzwvYT48L3RkPgorICAgIDx0ZD48L3RkPgorICAg
IDx0ZD5bRGlyZWN0b3J5XTwvdGQ+CisgICAgPHRkPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJv
ZGQiPgorICAgIDx0ZD48YSBocmVmPSJyNDc0ODQlMjAlMjgyJTI5LnppcCI+cjQ3NDg0ICgyKS56
aXA8L2E+PC90ZD4KKyAgICA8dGQ+ODlLPC90ZD4KKyAgICA8dGQ+W2FwcGxpY2F0aW9uL3ppcF08
L3RkPgorICAgIDx0ZD48L3RkPgorPC90cj4KKycnJworICAgIF9leHBlY3RlZF9maWxlcyA9IFsK
KyAgICAgICAgeworICAgICAgICAgICAgImZpbGVuYW1lIiA6ICJyNDc0ODMgKDEpLyIsCisgICAg
ICAgICAgICAic2l6ZSIgOiAiIiwKKyAgICAgICAgICAgICJ0eXBlIiA6ICJbRGlyZWN0b3J5XSIs
CisgICAgICAgICAgICAiZW5jb2RpbmciIDogIiIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJmaWxlbmFtZSIgOiAicjQ3NDg0ICgyKS56aXAiLAorICAgICAgICAgICAgInNp
emUiIDogIjg5SyIsCisgICAgICAgICAgICAidHlwZSIgOiAiW2FwcGxpY2F0aW9uL3ppcF0iLAor
ICAgICAgICAgICAgImVuY29kaW5nIiA6ICIiLAorICAgICAgICB9LAorICAgIF0KKworICAgIGRl
ZiB0ZXN0X3BhcnNlX2J1aWxkX3RvX3JldmlzaW9uX21hcChzZWxmKToKKyAgICAgICAgYnVpbGRi
b3QgPSBCdWlsZEJvdCgpCisgICAgICAgIGZpbGVzID0gYnVpbGRib3QuX3BhcnNlX3R3aXN0ZWRf
ZGlyZWN0b3J5X2xpc3Rpbmcoc2VsZi5fZXhhbXBsZV9kaXJlY3RvcnlfbGlzdGluZykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9leHBlY3RlZF9maWxlcywgZmlsZXMpCisKIAogaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmllcy5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmllcy5weQppbmRleCAyMjhjYTVk
Li4zNTViYWY4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1h
bmRzL3F1ZXJpZXMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5k
cy9xdWVyaWVzLnB5CkBAIC0xMTAsOSArMTEwLDYgQEAgY2xhc3MgV2hhdEJyb2tlKEFic3RyYWN0
RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gIndoYXQtYnJva2UiCiAgICAgaGVscF90
ZXh0ID0gIlByaW50IGZhaWxpbmcgYnVpbGRib3RzICglcykgYW5kIHdoYXQgcmV2aXNpb25zIGJy
b2tlIHRoZW0iICUgQnVpbGRCb3QuZGVmYXVsdF9ob3N0CiAKLSAgICBkZWYgX2xvbmdlc3RfYnVp
bGRlcl9uYW1lKHNlbGYsIGJ1aWxkZXJzKToKLSAgICAgICAgcmV0dXJuIG1heChtYXAobGFtYmRh
IGJ1aWxkZXI6IGxlbihidWlsZGVyWyJuYW1lIl0pLCBidWlsZGVycykpCi0KICAgICBkZWYgX3By
aW50X2J1aWxkZXJfbGluZShzZWxmLCBidWlsZGVyX25hbWUsIG1heF9uYW1lX3dpZHRoLCBzdGF0
dXNfbWVzc2FnZSk6CiAgICAgICAgIHByaW50ICIlcyA6ICVzIiAlIChidWlsZGVyX25hbWUubGp1
c3QobWF4X25hbWVfd2lkdGgpLCBzdGF0dXNfbWVzc2FnZSkKIApAQCAtMTQ2LDcgKzE0Myw3IEBA
IGNsYXNzIFdoYXRCcm9rZShBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAKICAgICBkZWYg
ZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAgYnVpbGRlcl9zdGF0
dXNlcyA9IHRvb2wuYnVpbGRib3QuYnVpbGRlcl9zdGF0dXNlcygpCi0gICAgICAgIGxvbmdlc3Rf
YnVpbGRlcl9uYW1lID0gc2VsZi5fbG9uZ2VzdF9idWlsZGVyX25hbWUoYnVpbGRlcl9zdGF0dXNl
cykKKyAgICAgICAgbG9uZ2VzdF9idWlsZGVyX25hbWUgPSBtYXgobWFwKGxlbiwgbWFwKGxhbWJk
YSBidWlsZGVyOiBidWlsZGVyWyJuYW1lIl0sIGJ1aWxkZXJfc3RhdHVzZXMpKSkKICAgICAgICAg
ZmFpbGluZ19idWlsZGVycyA9IDAKICAgICAgICAgZm9yIGJ1aWxkZXJfc3RhdHVzIGluIGJ1aWxk
ZXJfc3RhdHVzZXM6CiAgICAgICAgICAgICAjIElmIHRoZSBidWlsZGVyIGlzIGdyZWVuLCBwcmlu
dCBPSywgZXhpdC4KQEAgLTE1OSw2ICsxNTYsNyBAQCBjbGFzcyBXaGF0QnJva2UoQWJzdHJhY3RE
ZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcHJpbnQgIkFs
bCBidWlsZGVycyBhcmUgcGFzc2luZyEiCiAKKwogY2xhc3MgV2hvQnJva2VJdChBYnN0cmFjdERl
Y2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJ3aG8tYnJva2UtaXQiCiAgICAgaGVscF90
ZXh0ID0gIlByaW50IGEgbGlzdCBvZiByZXZpc2lvbnMgY2F1c2luZyBmYWlsdXJlcyBvbiAlcyIg
JSBCdWlsZEJvdC5kZWZhdWx0X2hvc3QKQEAgLTE2Nyw2ICsxNjUsMjggQEAgY2xhc3MgV2hvQnJv
a2VJdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAgIGZvciByZXZpc2lvbiwg
YnVpbGRlcnMgaW4gc2VsZi50b29sLmJ1aWxkYm90LnJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVz
KEZhbHNlKS5pdGVtcygpOgogICAgICAgICAgICAgcHJpbnQgInIlcyBhcHBlYXJzIHRvIGhhdmUg
YnJva2VuICVzIiAlIChyZXZpc2lvbiwgW2J1aWxkZXIubmFtZSgpIGZvciBidWlsZGVyIGluIGJ1
aWxkZXJzXSkKIAorCitjbGFzcyBSZXN1bHRzRm9yKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5k
KToKKyAgICBuYW1lID0gInJlc3VsdHMtZm9yIgorICAgIGhlbHBfdGV4dCA9ICJQcmludCBhIGxp
c3Qgb2YgZmFpbHVyZXMgZm9yIHRoZSBwYXNzZWQgcmV2aXNpb24gZnJvbSBib3RzIG9uICVzIiAl
IEJ1aWxkQm90LmRlZmF1bHRfaG9zdAorCisgICAgZGVmIF9wcmludF9sYXlvdXRfdGVzdF9yZXN1
bHRzKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiBub3QgcmVzdWx0czoKKyAgICAgICAgICAg
IHByaW50ICIgTm8gcmVzdWx0cy4iCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm9yIHRp
dGxlLCBmaWxlcyBpbiByZXN1bHRzLml0ZW1zKCk6CisgICAgICAgICAgICBwcmludCAiICVzIiAl
IHRpdGxlCisgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZXM6CisgICAgICAgICAgICAg
ICAgcHJpbnQgIiAgJXMiICUgZmlsZW5hbWUKKworICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlv
bnMsIGFyZ3MsIHRvb2wpOgorICAgICAgICBidWlsZGVycyA9IHNlbGYudG9vbC5idWlsZGJvdC5i
dWlsZGVycygpCisgICAgICAgIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzOgorICAgICAgICAgICAg
cHJpbnQgIiVzOiIgJSBidWlsZGVyLm5hbWUoKQorICAgICAgICAgICAgYnVpbGQgPSBidWlsZGVy
LmJ1aWxkX2Zvcl9yZXZpc2lvbihhcmdzWzBdLCBhbGxvd19mYWlsZWRfbG9va3Vwcz1UcnVlKQor
ICAgICAgICAgICAgc2VsZi5fcHJpbnRfbGF5b3V0X3Rlc3RfcmVzdWx0cyhidWlsZC5sYXlvdXRf
dGVzdF9yZXN1bHRzKCkpCisKKwogY2xhc3MgVHJlZVN0YXR1cyhBYnN0cmFjdERlY2xhcmF0aXZl
Q29tbWFuZCk6CiAgICAgbmFtZSA9ICJ0cmVlLXN0YXR1cyIKICAgICBoZWxwX3RleHQgPSAiUHJp
bnQgdGhlIHN0YXR1cyBvZiB0aGUgJXMgYnVpbGRib3RzIiAlIEJ1aWxkQm90LmRlZmF1bHRfaG9z
dAo=
</data>
<flag name="review"
          id="34638"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="34639"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>