<?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>87196</bug_id>
          
          <creation_ts>2012-05-22 19:08:41 -0700</creation_ts>
          <short_desc>[Chromium-Android] Fix chromium_android_unittest</short_desc>
          <delta_ts>2012-05-23 14:13:14 -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>Tools / Tests</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>86862</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Xianzhu Wang">wangxianzhu</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>ojan</cc>
    
    <cc>peter</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zhenghao</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>631075</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-05-22 19:08:41 -0700</bug_when>
    <thetext>chromium_android_unittest is broken by http://trac.webkit.org/changeset/118089. Will disable the test first and then fix it.
Sorry for the breakage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631081</commentid>
    <comment_count>1</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-05-22 19:21:14 -0700</bug_when>
    <thetext>Temporarily disable chromium_android_unittest: http://trac.webkit.org/changeset/118100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631906</commentid>
    <comment_count>2</comment_count>
      <attachid>143618</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-05-23 12:34:24 -0700</bug_when>
    <thetext>Created attachment 143618
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631914</commentid>
    <comment_count>3</comment_count>
      <attachid>143622</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-05-23 12:38:46 -0700</bug_when>
    <thetext>Created attachment 143622
patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631950</commentid>
    <comment_count>4</comment_count>
      <attachid>143622</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-23 13:10:15 -0700</bug_when>
    <thetext>Comment on attachment 143622
patch v2

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

&gt; Tools/ChangeLog:16
&gt; +        * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
&gt; +        (ChromiumAndroidPortTest):
&gt; +        (ChromiumAndroidPortTest.mock_run_command_fn):
&gt; +        (ChromiumAndroidPortTest.test_get_last_stacktrace):
&gt; +        (ChromiumAndroidPortTest.test_get_crash_log):
&gt; +        (ChromiumAndroidDriverTest):
&gt; +        (ChromiumAndroidDriverTest.setUp):
&gt; +        (ChromiumAndroidDriverTest.test_cmd_line):
&gt; +        (ChromiumAndroidDriverTest.test_write_command_and_read_line):

Please describe your changes here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631973</commentid>
    <comment_count>5</comment_count>
      <attachid>143634</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-05-23 13:28:31 -0700</bug_when>
    <thetext>Created attachment 143634
patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631974</commentid>
    <comment_count>6</comment_count>
      <attachid>143622</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-05-23 13:28:52 -0700</bug_when>
    <thetext>Comment on attachment 143622
patch v2

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

&gt;&gt; Tools/ChangeLog:16
&gt;&gt; +        (ChromiumAndroidDriverTest.test_write_command_and_read_line):
&gt; 
&gt; Please describe your changes here.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632045</commentid>
    <comment_count>7</comment_count>
      <attachid>143634</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-23 14:13:08 -0700</bug_when>
    <thetext>Comment on attachment 143634
patch v3

Clearing flags on attachment: 143634

Committed r118244: &lt;http://trac.webkit.org/changeset/118244&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632046</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-23 14:13:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143618</attachid>
            <date>2012-05-23 12:34:24 -0700</date>
            <delta_ts>2012-05-23 12:38:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>87196</filename>
            <type>text/plain</type>
            <size>9259</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDExODIyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTA1LTIzICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIEZpeCBjaHJvbWl1bV9hbmRyb2lk
X3VuaXR0ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzE5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QpOgorICAgICAgICAo
Q2hyb21pdW1BbmRyb2lkUG9ydFRlc3QubW9ja19ydW5fY29tbWFuZF9mbik6CisgICAgICAgIChD
aHJvbWl1bUFuZHJvaWRQb3J0VGVzdC50ZXN0X2dldF9sYXN0X3N0YWNrdHJhY2UpOgorICAgICAg
ICAoQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QudGVzdF9nZXRfY3Jhc2hfbG9nKToKKyAgICAgICAg
KENocm9taXVtQW5kcm9pZERyaXZlclRlc3QpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJp
dmVyVGVzdC5zZXRVcCk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0LnRlc3Rf
Y21kX2xpbmUpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyVGVzdC50ZXN0X3dyaXRl
X2NvbW1hbmRfYW5kX3JlYWRfbGluZSk6CisKIDIwMTItMDUtMjMgIE1hbGNvbG0gTWFjTGVvZCA8
bWFsY29sbS5tYWNsZW9kQHRzaHdhbmVkamUuY29tPgogCiAgICAgICAgIFt3eF0gSW4gd3hXZWJL
aXQgcmVsZWFzZSBidWlsZHMgb24gTVNXLCBrZWVwIHJlbGVhc2Ugc2V0dGluZ3MgYnV0IGFsc28g
YnVpbGQgdGhlIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZF91bml0dGVzdC5w
eQkocmV2aXNpb24gMTE4MTkxKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw2MyArMzksOTMgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgcAog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgUG9ydAogCiAKLSMgRklYTUU6
IFRlbXBvcmFyaWx5IGRpc2FibGVkLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODcxOTYKLQotY2xhc3MgQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3Q6ICMgKHBvcnRfdGVz
dGNhc2UuUG9ydFRlc3RDYXNlKToKK2NsYXNzIENocm9taXVtQW5kcm9pZFBvcnRUZXN0KHBvcnRf
dGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBwb3J0X25hbWUgPSAnY2hyb21pdW0tYW5kcm9p
ZCcKICAgICBwb3J0X21ha2VyID0gY2hyb21pdW1fYW5kcm9pZC5DaHJvbWl1bUFuZHJvaWRQb3J0
CisgICAgbW9ja19sb2djYXQgPSAnJwogCiAgICAgZGVmIHRlc3RfYXR0cmlidXRlcyhzZWxmKToK
ICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHBvcnQuZ2V0X29wdGlvbignZW5hYmxlX2hhcmR3YXJlX2dwdScpKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoJ2Nocm9taXVtLWFuZHJvaWQnKSkKIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgbW9j
a19ydW5fY29tbWFuZF9mbihhcmdzKToKKyAgICAgICAgaWYgYXJnc1sxXSA9PSAnc2hlbGwnOgor
ICAgICAgICAgICAgaWYgYXJnc1syOl0gPT0gWydscycsICctbicsICcvZGF0YS90b21ic3RvbmVz
J106CisgICAgICAgICAgICAgICAgIyBGb3IgJ2FkYiBzaGVsbCBscyAtbiAvZGF0YS90b21ic3Rv
bmVzJworICAgICAgICAgICAgICAgIHJldHVybiAoJy1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAg
ICAgICAyMTg2NDMgMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVfMDBcbicKKyAgICAgICAgICAg
ICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjQxNjk1IDIwMTIt
MDQtMjYgMTg6MTUgdG9tYnN0b25lXzAxXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnLXJ3
LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDIxOTQ3MiAyMDEyLTA0LTI2IDE4OjE2IHRvbWJz
dG9uZV8wMlxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAwMCAgICAg
MTAwMCAgICAgICAgNDUzMTYgMjAxMi0wNC0yNyAxNjozMyB0b21ic3RvbmVfMDNcbicKKyAgICAg
ICAgICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgIDgyMDIy
IDIwMTItMDQtMjMgMTY6NTcgdG9tYnN0b25lXzA0XG4nCisgICAgICAgICAgICAgICAgICAgICAg
ICAnLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgICA4MjAxNSAyMDEyLTA0LTIzIDE2OjU3
IHRvbWJzdG9uZV8wNVxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAw
MCAgICAgMTAwMCAgICAgICAgODE5NzQgMjAxMi0wNC0yMyAxNjo1OCB0b21ic3RvbmVfMDZcbicK
KyAgICAgICAgICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAg
MjM3NDA5IDIwMTItMDQtMjYgMTc6NDEgdG9tYnN0b25lXzA3XG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAnLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDI3NjA4OSAyMDEyLTA0LTI2
IDE4OjE1IHRvbWJzdG9uZV8wOFxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0t
LS0gMTAwMCAgICAgMTAwMCAgICAgICAyMTk2MTggMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVf
MDlcbicpCisgICAgICAgICAgICBlbGlmIGFyZ3NbMl0gPT0gJ2NhdCc6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGFyZ3NbM10gKyAnXG5tb2NrX2NvbnRlbnRzXG4nCisgICAgICAgIGVsaWYgYXJn
c1sxXSA9PSAnbG9nY2F0JzoKKyAgICAgICAgICAgIHJldHVybiBDaHJvbWl1bUFuZHJvaWRQb3J0
VGVzdC5fbW9ja19sb2djYXQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnJwor
CiAgICAgZGVmIHRlc3RfZ2V0X2xhc3Rfc3RhY2t0cmFjZShzZWxmKToKICAgICAgICAgcG9ydCA9
IHNlbGYubWFrZV9wb3J0KCkKIAogICAgICAgICBkZWYgbW9ja19ydW5fY29tbWFuZF9ub19kaXIo
YXJncyk6CiAgICAgICAgICAgICByZXR1cm4gJy9kYXRhL3RvbWJzdG9uZXM6IE5vIHN1Y2ggZmls
ZSBvciBkaXJlY3RvcnknCiAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUy
KHJ1bl9jb21tYW5kX2ZuPW1vY2tfcnVuX2NvbW1hbmRfbm9fZGlyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhwb3J0LmdldF9sYXN0X3N0YWNrdHJhY2UoKSwgJycpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHBvcnQuX2dldF9sYXN0X3N0YWNrdHJhY2UoKSwgJycpCiAKICAgICAgICAg
ZGVmIG1vY2tfcnVuX2NvbW1hbmRfbm9fZmlsZShhcmdzKToKICAgICAgICAgICAgIHJldHVybiAn
JwogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlMihydW5fY29tbWFuZF9m
bj1tb2NrX3J1bl9jb21tYW5kX25vX2ZpbGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
cnQuZ2V0X2xhc3Rfc3RhY2t0cmFjZSgpLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
cG9ydC5fZ2V0X2xhc3Rfc3RhY2t0cmFjZSgpLCAnJykKIAotICAgICAgICBkZWYgbW9ja19ydW5f
Y29tbWFuZF9ub25fZW1wdHkoYXJncyk6Ci0gICAgICAgICAgICBpZiBhcmdzWzJdID09ICdscyc6
Ci0gICAgICAgICAgICAgICAgIyBGb3IgJ2FkYiBzaGVsbCBscyAtbiAvZGF0YS90b21ic3RvbmVz
JwotICAgICAgICAgICAgICAgIHJldHVybiAnJyctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAg
ICAgMjE4NjQzIDIwMTItMDQtMjYgMTg6MTUgdG9tYnN0b25lXzAwCi0tcnctLS0tLS0tIDEwMDAg
ICAgIDEwMDAgICAgICAgMjQxNjk1IDIwMTItMDQtMjYgMTg6MTUgdG9tYnN0b25lXzAxCi0tcnct
LS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjE5NDcyIDIwMTItMDQtMjYgMTg6MTYgdG9tYnN0
b25lXzAyCi0tcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgIDQ1MzE2IDIwMTItMDQtMjcg
MTY6MzMgdG9tYnN0b25lXzAzCi0tcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgIDgyMDIy
IDIwMTItMDQtMjMgMTY6NTcgdG9tYnN0b25lXzA0Ci0tcnctLS0tLS0tIDEwMDAgICAgIDEwMDAg
ICAgICAgIDgyMDE1IDIwMTItMDQtMjMgMTY6NTcgdG9tYnN0b25lXzA1Ci0tcnctLS0tLS0tIDEw
MDAgICAgIDEwMDAgICAgICAgIDgxOTc0IDIwMTItMDQtMjMgMTY6NTggdG9tYnN0b25lXzA2Ci0t
cnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjM3NDA5IDIwMTItMDQtMjYgMTc6NDEgdG9t
YnN0b25lXzA3Ci0tcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjc2MDg5IDIwMTItMDQt
MjYgMTg6MTUgdG9tYnN0b25lXzA4Ci0tcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjE5
NjE4IDIwMTItMDQtMjYgMTg6MTUgdG9tYnN0b25lXzA5Ci0nJycKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgIyBGb3IgJ2FkYiBzaGVsbCBjYXQge3RvbWJzdG9uZX0nCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGFyZ3NbM10KLSAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9j
a0V4ZWN1dGl2ZTIocnVuX2NvbW1hbmRfZm49bW9ja19ydW5fY29tbWFuZF9ub25fZW1wdHkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuZ2V0X2xhc3Rfc3RhY2t0cmFjZSgpLCAnL2Rh
dGEvdG9tYnN0b25lcy90b21ic3RvbmVfMDMnKQorICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBN
b2NrRXhlY3V0aXZlMihydW5fY29tbWFuZF9mbj1DaHJvbWl1bUFuZHJvaWRQb3J0VGVzdC5tb2Nr
X3J1bl9jb21tYW5kX2ZuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9nZXRfbGFz
dF9zdGFja3RyYWNlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEw
MDAgMTAwMCA0NTMxNiAyMDEyLTA0LTI3IDE2OjMzIHRvbWJzdG9uZV8wM1xuJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAnL2RhdGEvdG9tYnN0b25lcy90b21ic3RvbmVfMDNcbm1vY2tfY29u
dGVudHNcbicpCisKKyAgICBkZWYgdGVzdF9nZXRfY3Jhc2hfbG9nKHNlbGYpOgorICAgICAgICBw
b3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhl
Y3V0aXZlMihydW5fY29tbWFuZF9mbj1DaHJvbWl1bUFuZHJvaWRQb3J0VGVzdC5tb2NrX3J1bl9j
b21tYW5kX2ZuKQorICAgICAgICBDaHJvbWl1bUFuZHJvaWRQb3J0VGVzdC5fbW9ja19sb2djYXQg
PSAnbG9nY2F0IGNvbnRlbnRzXG4nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX2dl
dF9jcmFzaF9sb2coJ2ZvbycsIDEyMzQsICdvdXQgYmFyXG5vdXQgYmF6XG4nLCAnZXJyIGJhclxu
ZXJyIGJhelxuJywgbmV3ZXJfdGhhbj1Ob25lKSwKKyAgICAgICAgICAgICh1J2NyYXNoIGxvZyBm
b3IgZm9vIChwaWQgMTIzNCk6XG4nCisgICAgICAgICAgICAgdSdTVERPVVQ6IG91dCBiYXJcbicK
KyAgICAgICAgICAgICB1J1NURE9VVDogb3V0IGJhelxuJworICAgICAgICAgICAgIHUnU1RET1VU
OiAqKioqKioqKiogTG9nY2F0OlxuJworICAgICAgICAgICAgIHUnU1RET1VUOiBsb2djYXQgY29u
dGVudHNcbicKKyAgICAgICAgICAgICB1J1NUREVSUjogZXJyIGJhclxuJworICAgICAgICAgICAg
IHUnU1RERVJSOiBlcnIgYmF6XG4nCisgICAgICAgICAgICAgdSdTVERFUlI6ICoqKioqKioqKiBU
b21ic3RvbmUgZmlsZTpcbicKKyAgICAgICAgICAgICB1J1NUREVSUjogLXJ3LS0tLS0tLSAxMDAw
IDEwMDAgNDUzMTYgMjAxMi0wNC0yNyAxNjozMyB0b21ic3RvbmVfMDNcbicKKyAgICAgICAgICAg
ICB1J1NUREVSUjogL2RhdGEvdG9tYnN0b25lcy90b21ic3RvbmVfMDNcbicKKyAgICAgICAgICAg
ICB1J1NUREVSUjogbW9ja19jb250ZW50c1xuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHBvcnQuX2dldF9jcmFzaF9sb2coTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSwgbmV3ZXJfdGhhbj1O
b25lKSwKKyAgICAgICAgICAgICh1J2NyYXNoIGxvZyBmb3IgPHVua25vd24gcHJvY2VzcyBuYW1l
PiAocGlkIDx1bmtub3duPik6XG4nCisgICAgICAgICAgICAgdSdTVERPVVQ6ICoqKioqKioqKiBM
b2djYXQ6XG4nCisgICAgICAgICAgICAgdSdTVERPVVQ6IGxvZ2NhdCBjb250ZW50c1xuJworICAg
ICAgICAgICAgIHUnU1RERVJSOiAqKioqKioqKiogVG9tYnN0b25lIGZpbGU6XG4nCisgICAgICAg
ICAgICAgdSdTVERFUlI6IC1ydy0tLS0tLS0gMTAwMCAxMDAwIDQ1MzE2IDIwMTItMDQtMjcgMTY6
MzMgdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAgICAgdSdTVERFUlI6IC9kYXRhL3RvbWJzdG9u
ZXMvdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAgICAgdSdTVERFUlI6IG1vY2tfY29udGVudHNc
bicpKQogCiAKLWNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3Q6ICMgKHVuaXR0ZXN0LlRl
c3RDYXNlKToKK2NsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgbW9ja19wb3J0ID0gUG9ydChNb2Nr
U3lzdGVtSG9zdCgpKQorICAgICAgICBtb2NrX3BvcnQgPSBjaHJvbWl1bV9hbmRyb2lkLkNocm9t
aXVtQW5kcm9pZFBvcnQoTW9ja1N5c3RlbUhvc3QoKSwgJ2Nocm9taXVtLWFuZHJvaWQnKQogICAg
ICAgICBzZWxmLmRyaXZlciA9IGNocm9taXVtX2FuZHJvaWQuQ2hyb21pdW1BbmRyb2lkRHJpdmVy
KG1vY2tfcG9ydCwgd29ya2VyX251bWJlcj0wLCBwaXhlbF90ZXN0cz1UcnVlKQogCi0gICAgZGVm
IHRlc3RfZ2V0X2RydF9yZXR1cm5fdmFsdWUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHNlbGYuZHJpdmVyLl9nZXRfZHJ0X3JldHVybl92YWx1ZSgnI0RSVF9SRVRVUk4gMCcpLCAw
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fZ2V0X2RydF9yZXR1cm5f
dmFsdWUoJycpLCBOb25lKQotCi0gICAgZGVmIHRlc3RfaGFzX2NyYXNoX2hpbnQoc2VsZik6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmRyaXZlci5faGFzX2NyYXNoX2hpbnQoJ1sxXSAr
IFN0b3BwZWQgKHNpZ25hbCknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmRyaXZl
ci5faGFzX2NyYXNoX2hpbnQoJycpKQorICAgIGRlZiB0ZXN0X2NtZF9saW5lKHNlbGYpOgorICAg
ICAgICBjbWRfbGluZSA9IHNlbGYuZHJpdmVyLmNtZF9saW5lKFRydWUsIFsnLS1hJ10pCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnLS1hJyBpbiBjbWRfbGluZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCctLWluLWZpZm89JyArIGNocm9taXVtX2FuZHJvaWQuRFJUX0FQUF9GSUxFX0RJUiAr
ICdEdW1wUmVuZGVyVHJlZS5pbicgaW4gY21kX2xpbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgnLS1vdXQtZmlmbz0nICsgY2hyb21pdW1fYW5kcm9pZC5EUlRfQVBQX0ZJTEVfRElSICsgJ0R1
bXBSZW5kZXJUcmVlLm91dCcgaW4gY21kX2xpbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
LS1lcnItZmlsZT0nICsgY2hyb21pdW1fYW5kcm9pZC5EUlRfQVBQX0ZJTEVfRElSICsgJ0R1bXBS
ZW5kZXJUcmVlLmVycicgaW4gY21kX2xpbmUpCiAKICAgICBkZWYgdGVzdF9yZWFkX3Byb21wdChz
ZWxmKToKICAgICAgICAgc2VsZi5kcml2ZXIuX3Byb2MgPSBNb2NrKCkgICMgRklYTUU6IFRoaXMg
c2hvdWxkIHVzZSBhIHRpZ2h0ZXIgbW9jay4KQEAgLTExMywxMCArMTQzLDExIEBAIGNsYXNzIENo
cm9taXVtQW5kcm9pZERyaXZlclRlc3Q6ICMgKHVuaXQKIAogICAgIGRlZiB0ZXN0X3dyaXRlX2Nv
bW1hbmRfYW5kX3JlYWRfbGluZShzZWxmKToKICAgICAgICAgc2VsZi5kcml2ZXIuX3Byb2MgPSBN
b2NrKCkgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBhIHRpZ2h0ZXIgbW9jay4KLSAgICAgICAg
c2VsZi5kcml2ZXIuX3Byb2Muc3Rkb3V0ID0gU3RyaW5nSU8uU3RyaW5nSU8oIiNVUkw6ZmlsZTov
Ly9kYXRhL2xvY2FsL3RtcC90aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvdGVzdC5odG1s
XG5vdXRwdXRcblsxXSArIFN0b3BwZWQgKHNpZ25hbClcbiIpCisgICAgICAgIHNlbGYuZHJpdmVy
Ll9wcm9jLnN0ZG91dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCIjVVJMOmZpbGU6Ly8vZGF0YS9sb2Nh
bC90bXAvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3Rlc3QuaHRtbFxub3V0cHV0XG5c
biIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl93cml0ZV9jb21tYW5k
X2FuZF9yZWFkX2xpbmUoKSwgKCcjVVJMOmZpbGU6Ly8vbW9jay1jaGVja291dC9MYXlvdXRUZXN0
cy90ZXN0Lmh0bWxcbicsIEZhbHNlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5k
cml2ZXIuX3dyaXRlX2NvbW1hbmRfYW5kX3JlYWRfbGluZSgpLCAoJ291dHB1dFxuJywgRmFsc2Up
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fd3JpdGVfY29tbWFuZF9h
bmRfcmVhZF9saW5lKCksICgnWzFdICsgU3RvcHBlZCAoc2lnbmFsKVxuJywgVHJ1ZSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl93cml0ZV9jb21tYW5kX2FuZF9yZWFk
X2xpbmUoKSwgKCdcbicsIEZhbHNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5k
cml2ZXIuX3dyaXRlX2NvbW1hbmRfYW5kX3JlYWRfbGluZSgpLCAoJycsIFRydWUpKQogCiAKIGlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143622</attachid>
            <date>2012-05-23 12:38:46 -0700</date>
            <delta_ts>2012-05-23 13:28:52 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>87196</filename>
            <type>text/plain</type>
            <size>9257</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDExODIyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTA1LTIzICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIEZpeCBjaHJvbWl1bV9hbmRyb2lk
X3VuaXR0ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzE5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QpOgorICAgICAgICAo
Q2hyb21pdW1BbmRyb2lkUG9ydFRlc3QubW9ja19ydW5fY29tbWFuZF9mbik6CisgICAgICAgIChD
aHJvbWl1bUFuZHJvaWRQb3J0VGVzdC50ZXN0X2dldF9sYXN0X3N0YWNrdHJhY2UpOgorICAgICAg
ICAoQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QudGVzdF9nZXRfY3Jhc2hfbG9nKToKKyAgICAgICAg
KENocm9taXVtQW5kcm9pZERyaXZlclRlc3QpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJp
dmVyVGVzdC5zZXRVcCk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0LnRlc3Rf
Y21kX2xpbmUpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyVGVzdC50ZXN0X3dyaXRl
X2NvbW1hbmRfYW5kX3JlYWRfbGluZSk6CisKIDIwMTItMDUtMjMgIE1hbGNvbG0gTWFjTGVvZCA8
bWFsY29sbS5tYWNsZW9kQHRzaHdhbmVkamUuY29tPgogCiAgICAgICAgIFt3eF0gSW4gd3hXZWJL
aXQgcmVsZWFzZSBidWlsZHMgb24gTVNXLCBrZWVwIHJlbGVhc2Ugc2V0dGluZ3MgYnV0IGFsc28g
YnVpbGQgdGhlIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZF91bml0dGVzdC5w
eQkocmV2aXNpb24gMTE4MTkxKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw2MyArMzksOTMgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgcAog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgUG9ydAogCiAKLSMgRklYTUU6
IFRlbXBvcmFyaWx5IGRpc2FibGVkLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODcxOTYKLQotY2xhc3MgQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3Q6ICMgKHBvcnRfdGVz
dGNhc2UuUG9ydFRlc3RDYXNlKToKK2NsYXNzIENocm9taXVtQW5kcm9pZFBvcnRUZXN0KHBvcnRf
dGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBwb3J0X25hbWUgPSAnY2hyb21pdW0tYW5kcm9p
ZCcKICAgICBwb3J0X21ha2VyID0gY2hyb21pdW1fYW5kcm9pZC5DaHJvbWl1bUFuZHJvaWRQb3J0
CisgICAgbW9ja19sb2djYXQgPSAnJwogCiAgICAgZGVmIHRlc3RfYXR0cmlidXRlcyhzZWxmKToK
ICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHBvcnQuZ2V0X29wdGlvbignZW5hYmxlX2hhcmR3YXJlX2dwdScpKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoJ2Nocm9taXVtLWFuZHJvaWQnKSkKIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgbW9j
a19ydW5fY29tbWFuZF9mbihhcmdzKToKKyAgICAgICAgaWYgYXJnc1sxXSA9PSAnc2hlbGwnOgor
ICAgICAgICAgICAgaWYgYXJnc1syOl0gPT0gWydscycsICctbicsICcvZGF0YS90b21ic3RvbmVz
J106CisgICAgICAgICAgICAgICAgIyBGb3IgJ2FkYiBzaGVsbCBscyAtbiAvZGF0YS90b21ic3Rv
bmVzJworICAgICAgICAgICAgICAgIHJldHVybiAoJy1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAg
ICAgICAyMTg2NDMgMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVfMDBcbicKKyAgICAgICAgICAg
ICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjQxNjk1IDIwMTIt
MDQtMjYgMTg6MTUgdG9tYnN0b25lXzAxXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnLXJ3
LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDIxOTQ3MiAyMDEyLTA0LTI2IDE4OjE2IHRvbWJz
dG9uZV8wMlxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAwMCAgICAg
MTAwMCAgICAgICAgNDUzMTYgMjAxMi0wNC0yNyAxNjozMyB0b21ic3RvbmVfMDNcbicKKyAgICAg
ICAgICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgIDgyMDIy
IDIwMTItMDQtMjMgMTY6NTcgdG9tYnN0b25lXzA0XG4nCisgICAgICAgICAgICAgICAgICAgICAg
ICAnLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgICA4MjAxNSAyMDEyLTA0LTIzIDE2OjU3
IHRvbWJzdG9uZV8wNVxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAw
MCAgICAgMTAwMCAgICAgICAgODE5NzQgMjAxMi0wNC0yMyAxNjo1OCB0b21ic3RvbmVfMDZcbicK
KyAgICAgICAgICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAg
MjM3NDA5IDIwMTItMDQtMjYgMTc6NDEgdG9tYnN0b25lXzA3XG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAnLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDI3NjA4OSAyMDEyLTA0LTI2
IDE4OjE1IHRvbWJzdG9uZV8wOFxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0t
LS0gMTAwMCAgICAgMTAwMCAgICAgICAyMTk2MTggMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVf
MDlcbicpCisgICAgICAgICAgICBlbGlmIGFyZ3NbMl0gPT0gJ2NhdCc6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGFyZ3NbM10gKyAnXG5tb2NrX2NvbnRlbnRzXG4nCisgICAgICAgIGVsaWYgYXJn
c1sxXSA9PSAnbG9nY2F0JzoKKyAgICAgICAgICAgIHJldHVybiBDaHJvbWl1bUFuZHJvaWRQb3J0
VGVzdC5tb2NrX2xvZ2NhdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICcnCisK
ICAgICBkZWYgdGVzdF9nZXRfbGFzdF9zdGFja3RyYWNlKHNlbGYpOgogICAgICAgICBwb3J0ID0g
c2VsZi5tYWtlX3BvcnQoKQogCiAgICAgICAgIGRlZiBtb2NrX3J1bl9jb21tYW5kX25vX2Rpcihh
cmdzKToKICAgICAgICAgICAgIHJldHVybiAnL2RhdGEvdG9tYnN0b25lczogTm8gc3VjaCBmaWxl
IG9yIGRpcmVjdG9yeScKICAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIo
cnVuX2NvbW1hbmRfZm49bW9ja19ydW5fY29tbWFuZF9ub19kaXIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHBvcnQuZ2V0X2xhc3Rfc3RhY2t0cmFjZSgpLCAnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocG9ydC5fZ2V0X2xhc3Rfc3RhY2t0cmFjZSgpLCAnJykKIAogICAgICAgICBk
ZWYgbW9ja19ydW5fY29tbWFuZF9ub19maWxlKGFyZ3MpOgogICAgICAgICAgICAgcmV0dXJuICcn
CiAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUyKHJ1bl9jb21tYW5kX2Zu
PW1vY2tfcnVuX2NvbW1hbmRfbm9fZmlsZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9y
dC5nZXRfbGFzdF9zdGFja3RyYWNlKCksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
b3J0Ll9nZXRfbGFzdF9zdGFja3RyYWNlKCksICcnKQogCi0gICAgICAgIGRlZiBtb2NrX3J1bl9j
b21tYW5kX25vbl9lbXB0eShhcmdzKToKLSAgICAgICAgICAgIGlmIGFyZ3NbMl0gPT0gJ2xzJzoK
LSAgICAgICAgICAgICAgICAjIEZvciAnYWRiIHNoZWxsIGxzIC1uIC9kYXRhL3RvbWJzdG9uZXMn
Ci0gICAgICAgICAgICAgICAgcmV0dXJuICcnJy1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAg
ICAyMTg2NDMgMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVfMDAKLS1ydy0tLS0tLS0gMTAwMCAg
ICAgMTAwMCAgICAgICAyNDE2OTUgMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVfMDEKLS1ydy0t
LS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAyMTk0NzIgMjAxMi0wNC0yNiAxODoxNiB0b21ic3Rv
bmVfMDIKLS1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAgNDUzMTYgMjAxMi0wNC0yNyAx
NjozMyB0b21ic3RvbmVfMDMKLS1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAgODIwMjIg
MjAxMi0wNC0yMyAxNjo1NyB0b21ic3RvbmVfMDQKLS1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAg
ICAgICAgODIwMTUgMjAxMi0wNC0yMyAxNjo1NyB0b21ic3RvbmVfMDUKLS1ydy0tLS0tLS0gMTAw
MCAgICAgMTAwMCAgICAgICAgODE5NzQgMjAxMi0wNC0yMyAxNjo1OCB0b21ic3RvbmVfMDYKLS1y
dy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAyMzc0MDkgMjAxMi0wNC0yNiAxNzo0MSB0b21i
c3RvbmVfMDcKLS1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAyNzYwODkgMjAxMi0wNC0y
NiAxODoxNSB0b21ic3RvbmVfMDgKLS1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAyMTk2
MTggMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVfMDkKLScnJwotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAjIEZvciAnYWRiIHNoZWxsIGNhdCB7dG9tYnN0b25lfScKLSAgICAg
ICAgICAgICAgICByZXR1cm4gYXJnc1szXQotICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2Nr
RXhlY3V0aXZlMihydW5fY29tbWFuZF9mbj1tb2NrX3J1bl9jb21tYW5kX25vbl9lbXB0eSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5nZXRfbGFzdF9zdGFja3RyYWNlKCksICcvZGF0
YS90b21ic3RvbmVzL3RvbWJzdG9uZV8wMycpCisgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1v
Y2tFeGVjdXRpdmUyKHJ1bl9jb21tYW5kX2ZuPUNocm9taXVtQW5kcm9pZFBvcnRUZXN0Lm1vY2tf
cnVuX2NvbW1hbmRfZm4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX2dldF9sYXN0
X3N0YWNrdHJhY2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAw
MCAxMDAwIDQ1MzE2IDIwMTItMDQtMjcgMTY6MzMgdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICcvZGF0YS90b21ic3RvbmVzL3RvbWJzdG9uZV8wM1xubW9ja19jb250
ZW50c1xuJykKKworICAgIGRlZiB0ZXN0X2dldF9jcmFzaF9sb2coc2VsZik6CisgICAgICAgIHBv
cnQgPSBzZWxmLm1ha2VfcG9ydCgpCisgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVj
dXRpdmUyKHJ1bl9jb21tYW5kX2ZuPUNocm9taXVtQW5kcm9pZFBvcnRUZXN0Lm1vY2tfcnVuX2Nv
bW1hbmRfZm4pCisgICAgICAgIENocm9taXVtQW5kcm9pZFBvcnRUZXN0Lm1vY2tfbG9nY2F0ID0g
J2xvZ2NhdCBjb250ZW50c1xuJworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9nZXRf
Y3Jhc2hfbG9nKCdmb28nLCAxMjM0LCAnb3V0IGJhclxub3V0IGJhelxuJywgJ2VyciBiYXJcbmVy
ciBiYXpcbicsIG5ld2VyX3RoYW49Tm9uZSksCisgICAgICAgICAgICAodSdjcmFzaCBsb2cgZm9y
IGZvbyAocGlkIDEyMzQpOlxuJworICAgICAgICAgICAgIHUnU1RET1VUOiBvdXQgYmFyXG4nCisg
ICAgICAgICAgICAgdSdTVERPVVQ6IG91dCBiYXpcbicKKyAgICAgICAgICAgICB1J1NURE9VVDog
KioqKioqKioqIExvZ2NhdDpcbicKKyAgICAgICAgICAgICB1J1NURE9VVDogbG9nY2F0IGNvbnRl
bnRzXG4nCisgICAgICAgICAgICAgdSdTVERFUlI6IGVyciBiYXJcbicKKyAgICAgICAgICAgICB1
J1NUREVSUjogZXJyIGJhelxuJworICAgICAgICAgICAgIHUnU1RERVJSOiAqKioqKioqKiogVG9t
YnN0b25lIGZpbGU6XG4nCisgICAgICAgICAgICAgdSdTVERFUlI6IC1ydy0tLS0tLS0gMTAwMCAx
MDAwIDQ1MzE2IDIwMTItMDQtMjcgMTY6MzMgdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAgICAg
dSdTVERFUlI6IC9kYXRhL3RvbWJzdG9uZXMvdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAgICAg
dSdTVERFUlI6IG1vY2tfY29udGVudHNcbicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
b3J0Ll9nZXRfY3Jhc2hfbG9nKE5vbmUsIE5vbmUsIE5vbmUsIE5vbmUsIG5ld2VyX3RoYW49Tm9u
ZSksCisgICAgICAgICAgICAodSdjcmFzaCBsb2cgZm9yIDx1bmtub3duIHByb2Nlc3MgbmFtZT4g
KHBpZCA8dW5rbm93bj4pOlxuJworICAgICAgICAgICAgIHUnU1RET1VUOiAqKioqKioqKiogTG9n
Y2F0OlxuJworICAgICAgICAgICAgIHUnU1RET1VUOiBsb2djYXQgY29udGVudHNcbicKKyAgICAg
ICAgICAgICB1J1NUREVSUjogKioqKioqKioqIFRvbWJzdG9uZSBmaWxlOlxuJworICAgICAgICAg
ICAgIHUnU1RERVJSOiAtcnctLS0tLS0tIDEwMDAgMTAwMCA0NTMxNiAyMDEyLTA0LTI3IDE2OjMz
IHRvbWJzdG9uZV8wM1xuJworICAgICAgICAgICAgIHUnU1RERVJSOiAvZGF0YS90b21ic3RvbmVz
L3RvbWJzdG9uZV8wM1xuJworICAgICAgICAgICAgIHUnU1RERVJSOiBtb2NrX2NvbnRlbnRzXG4n
KSkKIAogCi1jbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0OiAjICh1bml0dGVzdC5UZXN0
Q2FzZSk6CitjbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIG1vY2tfcG9ydCA9IFBvcnQoTW9ja1N5
c3RlbUhvc3QoKSkKKyAgICAgICAgbW9ja19wb3J0ID0gY2hyb21pdW1fYW5kcm9pZC5DaHJvbWl1
bUFuZHJvaWRQb3J0KE1vY2tTeXN0ZW1Ib3N0KCksICdjaHJvbWl1bS1hbmRyb2lkJykKICAgICAg
ICAgc2VsZi5kcml2ZXIgPSBjaHJvbWl1bV9hbmRyb2lkLkNocm9taXVtQW5kcm9pZERyaXZlciht
b2NrX3BvcnQsIHdvcmtlcl9udW1iZXI9MCwgcGl4ZWxfdGVzdHM9VHJ1ZSkKIAotICAgIGRlZiB0
ZXN0X2dldF9kcnRfcmV0dXJuX3ZhbHVlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWxmLmRyaXZlci5fZ2V0X2RydF9yZXR1cm5fdmFsdWUoJyNEUlRfUkVUVVJOIDAnKSwgMCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5kcml2ZXIuX2dldF9kcnRfcmV0dXJuX3Zh
bHVlKCcnKSwgTm9uZSkKLQotICAgIGRlZiB0ZXN0X2hhc19jcmFzaF9oaW50KHNlbGYpOgotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5kcml2ZXIuX2hhc19jcmFzaF9oaW50KCdbMV0gKyBT
dG9wcGVkIChzaWduYWwpJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5kcml2ZXIu
X2hhc19jcmFzaF9oaW50KCcnKSkKKyAgICBkZWYgdGVzdF9jbWRfbGluZShzZWxmKToKKyAgICAg
ICAgY21kX2xpbmUgPSBzZWxmLmRyaXZlci5jbWRfbGluZShUcnVlLCBbJy0tYSddKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJy0tYScgaW4gY21kX2xpbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgnLS1pbi1maWZvPScgKyBjaHJvbWl1bV9hbmRyb2lkLkRSVF9BUFBfRklMRV9ESVIgKyAn
RHVtcFJlbmRlclRyZWUuaW4nIGluIGNtZF9saW5lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
Jy0tb3V0LWZpZm89JyArIGNocm9taXVtX2FuZHJvaWQuRFJUX0FQUF9GSUxFX0RJUiArICdEdW1w
UmVuZGVyVHJlZS5vdXQnIGluIGNtZF9saW5lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJy0t
ZXJyLWZpbGU9JyArIGNocm9taXVtX2FuZHJvaWQuRFJUX0FQUF9GSUxFX0RJUiArICdEdW1wUmVu
ZGVyVHJlZS5lcnInIGluIGNtZF9saW5lKQogCiAgICAgZGVmIHRlc3RfcmVhZF9wcm9tcHQoc2Vs
Zik6CiAgICAgICAgIHNlbGYuZHJpdmVyLl9wcm9jID0gTW9jaygpICAjIEZJWE1FOiBUaGlzIHNo
b3VsZCB1c2UgYSB0aWdodGVyIG1vY2suCkBAIC0xMTMsMTAgKzE0MywxMSBAQCBjbGFzcyBDaHJv
bWl1bUFuZHJvaWREcml2ZXJUZXN0OiAjICh1bml0CiAKICAgICBkZWYgdGVzdF93cml0ZV9jb21t
YW5kX2FuZF9yZWFkX2xpbmUoc2VsZik6CiAgICAgICAgIHNlbGYuZHJpdmVyLl9wcm9jID0gTW9j
aygpICAjIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYSB0aWdodGVyIG1vY2suCi0gICAgICAgIHNl
bGYuZHJpdmVyLl9wcm9jLnN0ZG91dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCIjVVJMOmZpbGU6Ly8v
ZGF0YS9sb2NhbC90bXAvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3Rlc3QuaHRtbFxu
b3V0cHV0XG5bMV0gKyBTdG9wcGVkIChzaWduYWwpXG4iKQorICAgICAgICBzZWxmLmRyaXZlci5f
cHJvYy5zdGRvdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygiI1VSTDpmaWxlOi8vL2RhdGEvbG9jYWwv
dG1wL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy90ZXN0Lmh0bWxcbm91dHB1dFxuXG4i
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fd3JpdGVfY29tbWFuZF9h
bmRfcmVhZF9saW5lKCksICgnI1VSTDpmaWxlOi8vL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMv
dGVzdC5odG1sXG4nLCBGYWxzZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJp
dmVyLl93cml0ZV9jb21tYW5kX2FuZF9yZWFkX2xpbmUoKSwgKCdvdXRwdXRcbicsIEZhbHNlKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5kcml2ZXIuX3dyaXRlX2NvbW1hbmRfYW5k
X3JlYWRfbGluZSgpLCAoJ1sxXSArIFN0b3BwZWQgKHNpZ25hbClcbicsIFRydWUpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fd3JpdGVfY29tbWFuZF9hbmRfcmVhZF9s
aW5lKCksICgnXG4nLCBGYWxzZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJp
dmVyLl93cml0ZV9jb21tYW5kX2FuZF9yZWFkX2xpbmUoKSwgKCcnLCBUcnVlKSkKIAogCiBpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgo=
</data>
<flag name="review"
          id="150233"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="150234"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143634</attachid>
            <date>2012-05-23 13:28:31 -0700</date>
            <delta_ts>2012-05-23 14:13:08 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>87196a</filename>
            <type>text/plain</type>
            <size>9654</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDExODIyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDEyLTA1LTIzICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIEZpeCBjaHJvbWl1bV9hbmRyb2lk
X3VuaXR0ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzE5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB1bml0IHRlc3RzIGFmdGVyIENocm9taXVtQW5kcm9pZFBvcnQgc3VwcG9ydGVkIGFw
ayBiYXNlZAorICAgICAgICBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZF91bml0dGVzdC5weToKKyAg
ICAgICAgKENocm9taXVtQW5kcm9pZFBvcnRUZXN0KToKKyAgICAgICAgKENocm9taXVtQW5kcm9p
ZFBvcnRUZXN0Lm1vY2tfcnVuX2NvbW1hbmRfZm4pOiBNb3ZlZCBvdXQgZnJvbSB0ZXN0X2dldF9s
YXN0X3N0YWNrdHJhY2Ugc28gdGhhdCBvdGhlciB0ZXN0cyBjYW4gdXNlIGl0IGFzIGEgY29tbW9u
IGNvbW1hbmQgbGluZSBoYW5kbGVyLgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3Qu
dGVzdF9nZXRfbGFzdF9zdGFja3RyYWNlKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnRU
ZXN0LnRlc3RfZ2V0X2NyYXNoX2xvZyk6IEFkZGVkIHRvIHRlc3Qgb3VyIG92ZXJyaWRkZW4gX2dl
dF9jcmFzaF9sb2coKQorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyVGVzdCk6CisgICAg
ICAgIChDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0LnNldFVwKToKKyAgICAgICAgKENocm9taXVt
QW5kcm9pZERyaXZlclRlc3QudGVzdF9jbWRfbGluZSk6IEFkZGVkIHRvIHRlc3Qgb3VyIG92ZXJy
aWRkZW4gY21kX2xpbmUoKQorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyVGVzdC50ZXN0
X3dyaXRlX2NvbW1hbmRfYW5kX3JlYWRfbGluZSk6IEFkZGVkIHRlc3Qgb2YgdW5leHBlY3RlZCBF
T0YgKGluZGljYXRpbmcgY3Jhc2ggb24gQW5kcm9pZCkKKwogMjAxMi0wNS0yMyAgTWFsY29sbSBN
YWNMZW9kIDxtYWxjb2xtLm1hY2xlb2RAdHNod2FuZWRqZS5jb20+CiAKICAgICAgICAgW3d4XSBJ
biB3eFdlYktpdCByZWxlYXNlIGJ1aWxkcyBvbiBNU1csIGtlZXAgcmVsZWFzZSBzZXR0aW5ncyBi
dXQgYWxzbyBidWlsZCB0aGUgCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3Vu
aXR0ZXN0LnB5CShyZXZpc2lvbiAxMTgxOTEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYzICszOSw5MyBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGlt
cG9ydCBwCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBQb3J0CiAKIAot
IyBGSVhNRTogVGVtcG9yYXJpbHkgZGlzYWJsZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NzE5NgotCi1jbGFzcyBDaHJvbWl1bUFuZHJvaWRQb3J0VGVzdDogIyAo
cG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgorY2xhc3MgQ2hyb21pdW1BbmRyb2lkUG9ydFRl
c3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1
bS1hbmRyb2lkJwogICAgIHBvcnRfbWFrZXIgPSBjaHJvbWl1bV9hbmRyb2lkLkNocm9taXVtQW5k
cm9pZFBvcnQKKyAgICBtb2NrX2xvZ2NhdCA9ICcnCiAKICAgICBkZWYgdGVzdF9hdHRyaWJ1dGVz
KHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBzZWxmLmFz
c2VydFRydWUocG9ydC5nZXRfb3B0aW9uKCdlbmFibGVfaGFyZHdhcmVfZ3B1JykpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFz
ZWxpbmVfcGF0aCgnY2hyb21pdW0tYW5kcm9pZCcpKQogCisgICAgQHN0YXRpY21ldGhvZAorICAg
IGRlZiBtb2NrX3J1bl9jb21tYW5kX2ZuKGFyZ3MpOgorICAgICAgICBpZiBhcmdzWzFdID09ICdz
aGVsbCc6CisgICAgICAgICAgICBpZiBhcmdzWzI6XSA9PSBbJ2xzJywgJy1uJywgJy9kYXRhL3Rv
bWJzdG9uZXMnXToKKyAgICAgICAgICAgICAgICAjIEZvciAnYWRiIHNoZWxsIGxzIC1uIC9kYXRh
L3RvbWJzdG9uZXMnCisgICAgICAgICAgICAgICAgcmV0dXJuICgnLXJ3LS0tLS0tLSAxMDAwICAg
ICAxMDAwICAgICAgIDIxODY0MyAyMDEyLTA0LTI2IDE4OjE1IHRvbWJzdG9uZV8wMFxuJworICAg
ICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAgICAyNDE2
OTUgMjAxMi0wNC0yNiAxODoxNSB0b21ic3RvbmVfMDFcbicKKyAgICAgICAgICAgICAgICAgICAg
ICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjE5NDcyIDIwMTItMDQtMjYgMTg6
MTYgdG9tYnN0b25lXzAyXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnLXJ3LS0tLS0tLSAx
MDAwICAgICAxMDAwICAgICAgICA0NTMxNiAyMDEyLTA0LTI3IDE2OjMzIHRvbWJzdG9uZV8wM1xu
JworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAwMCAgICAgMTAwMCAgICAg
ICAgODIwMjIgMjAxMi0wNC0yMyAxNjo1NyB0b21ic3RvbmVfMDRcbicKKyAgICAgICAgICAgICAg
ICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgIDgyMDE1IDIwMTItMDQt
MjMgMTY6NTcgdG9tYnN0b25lXzA1XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnLXJ3LS0t
LS0tLSAxMDAwICAgICAxMDAwICAgICAgICA4MTk3NCAyMDEyLTA0LTIzIDE2OjU4IHRvbWJzdG9u
ZV8wNlxuJworICAgICAgICAgICAgICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAwMCAgICAgMTAw
MCAgICAgICAyMzc0MDkgMjAxMi0wNC0yNiAxNzo0MSB0b21ic3RvbmVfMDdcbicKKyAgICAgICAg
ICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAgICAgIDEwMDAgICAgICAgMjc2MDg5IDIw
MTItMDQtMjYgMTg6MTUgdG9tYnN0b25lXzA4XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAn
LXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDIxOTYxOCAyMDEyLTA0LTI2IDE4OjE1IHRv
bWJzdG9uZV8wOVxuJykKKyAgICAgICAgICAgIGVsaWYgYXJnc1syXSA9PSAnY2F0JzoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gYXJnc1szXSArICdcbm1vY2tfY29udGVudHNcbicKKyAgICAgICAg
ZWxpZiBhcmdzWzFdID09ICdsb2djYXQnOgorICAgICAgICAgICAgcmV0dXJuIENocm9taXVtQW5k
cm9pZFBvcnRUZXN0Lm1vY2tfbG9nY2F0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1
cm4gJycKKwogICAgIGRlZiB0ZXN0X2dldF9sYXN0X3N0YWNrdHJhY2Uoc2VsZik6CiAgICAgICAg
IHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAKICAgICAgICAgZGVmIG1vY2tfcnVuX2NvbW1hbmRf
bm9fZGlyKGFyZ3MpOgogICAgICAgICAgICAgcmV0dXJuICcvZGF0YS90b21ic3RvbmVzOiBObyBz
dWNoIGZpbGUgb3IgZGlyZWN0b3J5JwogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhl
Y3V0aXZlMihydW5fY29tbWFuZF9mbj1tb2NrX3J1bl9jb21tYW5kX25vX2RpcikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocG9ydC5nZXRfbGFzdF9zdGFja3RyYWNlKCksICcnKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9nZXRfbGFzdF9zdGFja3RyYWNlKCksICcnKQogCiAg
ICAgICAgIGRlZiBtb2NrX3J1bl9jb21tYW5kX25vX2ZpbGUoYXJncyk6CiAgICAgICAgICAgICBy
ZXR1cm4gJycKICAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIocnVuX2Nv
bW1hbmRfZm49bW9ja19ydW5fY29tbWFuZF9ub19maWxlKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhwb3J0LmdldF9sYXN0X3N0YWNrdHJhY2UoKSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBvcnQuX2dldF9sYXN0X3N0YWNrdHJhY2UoKSwgJycpCiAKLSAgICAgICAgZGVmIG1v
Y2tfcnVuX2NvbW1hbmRfbm9uX2VtcHR5KGFyZ3MpOgotICAgICAgICAgICAgaWYgYXJnc1syXSA9
PSAnbHMnOgotICAgICAgICAgICAgICAgICMgRm9yICdhZGIgc2hlbGwgbHMgLW4gL2RhdGEvdG9t
YnN0b25lcycKLSAgICAgICAgICAgICAgICByZXR1cm4gJycnLXJ3LS0tLS0tLSAxMDAwICAgICAx
MDAwICAgICAgIDIxODY0MyAyMDEyLTA0LTI2IDE4OjE1IHRvbWJzdG9uZV8wMAotLXJ3LS0tLS0t
LSAxMDAwICAgICAxMDAwICAgICAgIDI0MTY5NSAyMDEyLTA0LTI2IDE4OjE1IHRvbWJzdG9uZV8w
MQotLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDIxOTQ3MiAyMDEyLTA0LTI2IDE4OjE2
IHRvbWJzdG9uZV8wMgotLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgICA0NTMxNiAyMDEy
LTA0LTI3IDE2OjMzIHRvbWJzdG9uZV8wMwotLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAg
ICA4MjAyMiAyMDEyLTA0LTIzIDE2OjU3IHRvbWJzdG9uZV8wNAotLXJ3LS0tLS0tLSAxMDAwICAg
ICAxMDAwICAgICAgICA4MjAxNSAyMDEyLTA0LTIzIDE2OjU3IHRvbWJzdG9uZV8wNQotLXJ3LS0t
LS0tLSAxMDAwICAgICAxMDAwICAgICAgICA4MTk3NCAyMDEyLTA0LTIzIDE2OjU4IHRvbWJzdG9u
ZV8wNgotLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDIzNzQwOSAyMDEyLTA0LTI2IDE3
OjQxIHRvbWJzdG9uZV8wNwotLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAgICAgIDI3NjA4OSAy
MDEyLTA0LTI2IDE4OjE1IHRvbWJzdG9uZV8wOAotLXJ3LS0tLS0tLSAxMDAwICAgICAxMDAwICAg
ICAgIDIxOTYxOCAyMDEyLTA0LTI2IDE4OjE1IHRvbWJzdG9uZV8wOQotJycnCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICMgRm9yICdhZGIgc2hlbGwgY2F0IHt0b21ic3RvbmV9
JwotICAgICAgICAgICAgICAgIHJldHVybiBhcmdzWzNdCi0gICAgICAgIHBvcnQuX2V4ZWN1dGl2
ZSA9IE1vY2tFeGVjdXRpdmUyKHJ1bl9jb21tYW5kX2ZuPW1vY2tfcnVuX2NvbW1hbmRfbm9uX2Vt
cHR5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmdldF9sYXN0X3N0YWNrdHJhY2Uo
KSwgJy9kYXRhL3RvbWJzdG9uZXMvdG9tYnN0b25lXzAzJykKKyAgICAgICAgcG9ydC5fZXhlY3V0
aXZlID0gTW9ja0V4ZWN1dGl2ZTIocnVuX2NvbW1hbmRfZm49Q2hyb21pdW1BbmRyb2lkUG9ydFRl
c3QubW9ja19ydW5fY29tbWFuZF9mbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5f
Z2V0X2xhc3Rfc3RhY2t0cmFjZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnLXJ3LS0t
LS0tLSAxMDAwIDEwMDAgNDUzMTYgMjAxMi0wNC0yNyAxNjozMyB0b21ic3RvbmVfMDNcbicKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgJy9kYXRhL3RvbWJzdG9uZXMvdG9tYnN0b25lXzAzXG5t
b2NrX2NvbnRlbnRzXG4nKQorCisgICAgZGVmIHRlc3RfZ2V0X2NyYXNoX2xvZyhzZWxmKToKKyAg
ICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0g
TW9ja0V4ZWN1dGl2ZTIocnVuX2NvbW1hbmRfZm49Q2hyb21pdW1BbmRyb2lkUG9ydFRlc3QubW9j
a19ydW5fY29tbWFuZF9mbikKKyAgICAgICAgQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QubW9ja19s
b2djYXQgPSAnbG9nY2F0IGNvbnRlbnRzXG4nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
cnQuX2dldF9jcmFzaF9sb2coJ2ZvbycsIDEyMzQsICdvdXQgYmFyXG5vdXQgYmF6XG4nLCAnZXJy
IGJhclxuZXJyIGJhelxuJywgbmV3ZXJfdGhhbj1Ob25lKSwKKyAgICAgICAgICAgICh1J2NyYXNo
IGxvZyBmb3IgZm9vIChwaWQgMTIzNCk6XG4nCisgICAgICAgICAgICAgdSdTVERPVVQ6IG91dCBi
YXJcbicKKyAgICAgICAgICAgICB1J1NURE9VVDogb3V0IGJhelxuJworICAgICAgICAgICAgIHUn
U1RET1VUOiAqKioqKioqKiogTG9nY2F0OlxuJworICAgICAgICAgICAgIHUnU1RET1VUOiBsb2dj
YXQgY29udGVudHNcbicKKyAgICAgICAgICAgICB1J1NUREVSUjogZXJyIGJhclxuJworICAgICAg
ICAgICAgIHUnU1RERVJSOiBlcnIgYmF6XG4nCisgICAgICAgICAgICAgdSdTVERFUlI6ICoqKioq
KioqKiBUb21ic3RvbmUgZmlsZTpcbicKKyAgICAgICAgICAgICB1J1NUREVSUjogLXJ3LS0tLS0t
LSAxMDAwIDEwMDAgNDUzMTYgMjAxMi0wNC0yNyAxNjozMyB0b21ic3RvbmVfMDNcbicKKyAgICAg
ICAgICAgICB1J1NUREVSUjogL2RhdGEvdG9tYnN0b25lcy90b21ic3RvbmVfMDNcbicKKyAgICAg
ICAgICAgICB1J1NUREVSUjogbW9ja19jb250ZW50c1xuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBvcnQuX2dldF9jcmFzaF9sb2coTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSwgbmV3ZXJf
dGhhbj1Ob25lKSwKKyAgICAgICAgICAgICh1J2NyYXNoIGxvZyBmb3IgPHVua25vd24gcHJvY2Vz
cyBuYW1lPiAocGlkIDx1bmtub3duPik6XG4nCisgICAgICAgICAgICAgdSdTVERPVVQ6ICoqKioq
KioqKiBMb2djYXQ6XG4nCisgICAgICAgICAgICAgdSdTVERPVVQ6IGxvZ2NhdCBjb250ZW50c1xu
JworICAgICAgICAgICAgIHUnU1RERVJSOiAqKioqKioqKiogVG9tYnN0b25lIGZpbGU6XG4nCisg
ICAgICAgICAgICAgdSdTVERFUlI6IC1ydy0tLS0tLS0gMTAwMCAxMDAwIDQ1MzE2IDIwMTItMDQt
MjcgMTY6MzMgdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAgICAgdSdTVERFUlI6IC9kYXRhL3Rv
bWJzdG9uZXMvdG9tYnN0b25lXzAzXG4nCisgICAgICAgICAgICAgdSdTVERFUlI6IG1vY2tfY29u
dGVudHNcbicpKQogCiAKLWNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3Q6ICMgKHVuaXR0
ZXN0LlRlc3RDYXNlKToKK2NsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgbW9ja19wb3J0ID0gUG9y
dChNb2NrU3lzdGVtSG9zdCgpKQorICAgICAgICBtb2NrX3BvcnQgPSBjaHJvbWl1bV9hbmRyb2lk
LkNocm9taXVtQW5kcm9pZFBvcnQoTW9ja1N5c3RlbUhvc3QoKSwgJ2Nocm9taXVtLWFuZHJvaWQn
KQogICAgICAgICBzZWxmLmRyaXZlciA9IGNocm9taXVtX2FuZHJvaWQuQ2hyb21pdW1BbmRyb2lk
RHJpdmVyKG1vY2tfcG9ydCwgd29ya2VyX251bWJlcj0wLCBwaXhlbF90ZXN0cz1UcnVlKQogCi0g
ICAgZGVmIHRlc3RfZ2V0X2RydF9yZXR1cm5fdmFsdWUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl9nZXRfZHJ0X3JldHVybl92YWx1ZSgnI0RSVF9SRVRVUk4g
MCcpLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fZ2V0X2RydF9y
ZXR1cm5fdmFsdWUoJycpLCBOb25lKQotCi0gICAgZGVmIHRlc3RfaGFzX2NyYXNoX2hpbnQoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmRyaXZlci5faGFzX2NyYXNoX2hpbnQo
J1sxXSArIFN0b3BwZWQgKHNpZ25hbCknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxm
LmRyaXZlci5faGFzX2NyYXNoX2hpbnQoJycpKQorICAgIGRlZiB0ZXN0X2NtZF9saW5lKHNlbGYp
OgorICAgICAgICBjbWRfbGluZSA9IHNlbGYuZHJpdmVyLmNtZF9saW5lKFRydWUsIFsnLS1hJ10p
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnLS1hJyBpbiBjbWRfbGluZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKCctLWluLWZpZm89JyArIGNocm9taXVtX2FuZHJvaWQuRFJUX0FQUF9GSUxF
X0RJUiArICdEdW1wUmVuZGVyVHJlZS5pbicgaW4gY21kX2xpbmUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnLS1vdXQtZmlmbz0nICsgY2hyb21pdW1fYW5kcm9pZC5EUlRfQVBQX0ZJTEVfRElS
ICsgJ0R1bXBSZW5kZXJUcmVlLm91dCcgaW4gY21kX2xpbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgnLS1lcnItZmlsZT0nICsgY2hyb21pdW1fYW5kcm9pZC5EUlRfQVBQX0ZJTEVfRElSICsg
J0R1bXBSZW5kZXJUcmVlLmVycicgaW4gY21kX2xpbmUpCiAKICAgICBkZWYgdGVzdF9yZWFkX3By
b21wdChzZWxmKToKICAgICAgICAgc2VsZi5kcml2ZXIuX3Byb2MgPSBNb2NrKCkgICMgRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSBhIHRpZ2h0ZXIgbW9jay4KQEAgLTExMywxMCArMTQzLDEyIEBAIGNs
YXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3Q6ICMgKHVuaXQKIAogICAgIGRlZiB0ZXN0X3dy
aXRlX2NvbW1hbmRfYW5kX3JlYWRfbGluZShzZWxmKToKICAgICAgICAgc2VsZi5kcml2ZXIuX3By
b2MgPSBNb2NrKCkgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBhIHRpZ2h0ZXIgbW9jay4KLSAg
ICAgICAgc2VsZi5kcml2ZXIuX3Byb2Muc3Rkb3V0ID0gU3RyaW5nSU8uU3RyaW5nSU8oIiNVUkw6
ZmlsZTovLy9kYXRhL2xvY2FsL3RtcC90aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvdGVz
dC5odG1sXG5vdXRwdXRcblsxXSArIFN0b3BwZWQgKHNpZ25hbClcbiIpCisgICAgICAgIHNlbGYu
ZHJpdmVyLl9wcm9jLnN0ZG91dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCIjVVJMOmZpbGU6Ly8vZGF0
YS9sb2NhbC90bXAvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3Rlc3QuaHRtbFxub3V0
cHV0XG5cbiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl93cml0ZV9j
b21tYW5kX2FuZF9yZWFkX2xpbmUoKSwgKCcjVVJMOmZpbGU6Ly8vbW9jay1jaGVja291dC9MYXlv
dXRUZXN0cy90ZXN0Lmh0bWxcbicsIEZhbHNlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
c2VsZi5kcml2ZXIuX3dyaXRlX2NvbW1hbmRfYW5kX3JlYWRfbGluZSgpLCAoJ291dHB1dFxuJywg
RmFsc2UpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fd3JpdGVfY29t
bWFuZF9hbmRfcmVhZF9saW5lKCksICgnWzFdICsgU3RvcHBlZCAoc2lnbmFsKVxuJywgVHJ1ZSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl93cml0ZV9jb21tYW5kX2Fu
ZF9yZWFkX2xpbmUoKSwgKCdcbicsIEZhbHNlKSkKKyAgICAgICAgIyBVbmV4cGVjdGVkIEVPRiBp
cyB0cmVhdGVkIGFzIGNyYXNoLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZl
ci5fd3JpdGVfY29tbWFuZF9hbmRfcmVhZF9saW5lKCksICgnJywgVHJ1ZSkpCiAKIAogaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoK
</data>

          </attachment>
      

    </bug>

</bugzilla>