<?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>25171</bug_id>
          
          <creation_ts>2009-04-13 18:11:08 -0700</creation_ts>
          <short_desc>It should be possible to manually set the name of an anonymous function</short_desc>
          <delta_ts>2009-07-21 06:40:30 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>0</everconfirmed>
          <reporter name="Francisco Tolmasky">tolmasky</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>keishi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117397</commentid>
    <comment_count>0</comment_count>
    <who name="Francisco Tolmasky">tolmasky</who>
    <bug_when>2009-04-13 18:11:08 -0700</bug_when>
    <thetext>Currently anonymous functions show up as &quot;(anonymous function)&quot; in the profiler, which isn&apos;t too useful when they&apos;re all anonymous (generated). Aside from making WebKit smarter about auto-generating names, there should be a way to just set it yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117398</commentid>
    <comment_count>1</comment_count>
      <attachid>29451</attachid>
    <who name="Francisco Tolmasky">tolmasky</who>
    <bug_when>2009-04-13 18:20:08 -0700</bug_when>
    <thetext>Created attachment 29451
Patch to add displayName property to functions

I went ahead with the displayName approach, since it may still be valuable to have access to the actual name of the function as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117403</commentid>
    <comment_count>2</comment_count>
      <attachid>29451</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-04-13 18:59:05 -0700</bug_when>
    <thetext>Comment on attachment 29451
Patch to add displayName property to functions

You shouldn&apos;t change the behaviour of Function.name you should make the profiler do the work of checking for name vs displayName, or alternatively add a displayName function to InternalFunction and call that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117410</commentid>
    <comment_count>3</comment_count>
      <attachid>29454</attachid>
    <who name="Francisco Tolmasky">tolmasky</who>
    <bug_when>2009-04-13 20:22:27 -0700</bug_when>
    <thetext>Created attachment 29454
Moved new code out of name and into calculatedDisplayName

I added displayName and calculatedDisplayName (matching the CSS pattern for these things). I moved AnonymousFunction string into calculatedDisplayName since this returns the final result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117411</commentid>
    <comment_count>4</comment_count>
      <attachid>29454</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-04-13 20:26:51 -0700</bug_when>
    <thetext>Comment on attachment 29454
Moved new code out of name and into calculatedDisplayName

static const UString * AnonymousFunction = new UString(&quot;(anonymous function)&quot;);

This shouldn&apos;t be heap allocated otherwise it will cause leak warnings, it&apos;s also potentially not threadsafe -- I recommend putting an additional string constant on GlobalData to contain &quot;(anonymous function)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117413</commentid>
    <comment_count>5</comment_count>
      <attachid>29455</attachid>
    <who name="Francisco Tolmasky">tolmasky</who>
    <bug_when>2009-04-13 21:10:52 -0700</bug_when>
    <thetext>Created attachment 29455
Removed static UString pointer for AnonymousFunction.

Removed static UString pointer for AnonymousFunction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117424</commentid>
    <comment_count>6</comment_count>
      <attachid>29455</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-04-13 22:04:41 -0700</bug_when>
    <thetext>Comment on attachment 29455
Removed static UString pointer for AnonymousFunction.

Should be const UString explicitName = displayName(globalData); (eg. not a reference)

Will fix when i land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117434</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-04-13 23:25:14 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/profiler/Profiler.cpp
	M	JavaScriptCore/runtime/CommonIdentifiers.h
	M	JavaScriptCore/runtime/InternalFunction.cpp
	M	JavaScriptCore/runtime/InternalFunction.h
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/profiler/anonymous-functions-with-display-names-expected.txt
	A	LayoutTests/fast/profiler/anonymous-functions-with-display-names.html
	A	LayoutTests/fast/profiler/named-functions-with-display-names-expected.txt
	A	LayoutTests/fast/profiler/named-functions-with-display-names.html
Committed r42478
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117480</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-14 10:27:08 -0700</bug_when>
    <thetext>Should just be &quot;UString&quot;, not &quot;const UString&quot;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29451</attachid>
            <date>2009-04-13 18:20:08 -0700</date>
            <delta_ts>2009-04-13 20:22:27 -0700</delta_ts>
            <desc>Patch to add displayName property to functions</desc>
            <filename>displayNamePatch.txt</filename>
            <type>text/plain</type>
            <size>8667</size>
            <attacher name="Francisco Tolmasky">tolmasky</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyNDc0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDQtMTMgIEZyYW5jaXNj
byBUb2xtYXNreSAgPGZyYW5jaXNjb0AyODBub3J0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBCVUcgMjUxNzE6IEl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgdGhlIG5hbWUgb2YgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHRoZSBkaXNwbGF5TmFt
ZSBwcm9wZXJ0eSB0byBmdW5jdGlvbnMsIHdoaWNoIHdoZW4gc2V0IG92ZXJyaWRlcyB0aGUgCisg
ICAgICAgIG5vcm1hbCBuYW1lIHdoZW4gYXBwZWFyaW5nIGluIHRoZSBjb25zb2xlLgorCisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOiBBZGRlZCBkaXNwbGF5TmFtZSBjb21t
b24gaWRlbnRpZmllci4KKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOiAo
c2VlIGJlbG93KQorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpuYW1lKTogTWFkZSBu
YW1lIGNoZWNrIGZvciBkaXNwbGF5TmFtZSBwcm9wZXJ0eS4KKwogMjAwOS0wNC0xMyAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBX
ZWluaWcuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CShyZXZpc2lvbiA0MjQ2MSkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsOCBAQAogICAgIG1hY3JvKHRvUHJl
Y2lzaW9uKSBcCiAgICAgbWFjcm8odG9TdHJpbmcpIFwKICAgICBtYWNybyhVVEMpIFwKLSAgICBt
YWNybyh2YWx1ZU9mKQorICAgIG1hY3JvKHZhbHVlT2YpIFwKKyAgICBtYWNybyhkaXNwbGF5TmFt
ZSkKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmNwcAkocmV2aXNpb24gNDI0NjEpCisrKyBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSwx
MSBAQCBJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvCiAKIGNvbnN0IFVT
dHJpbmcmIEludGVybmFsRnVuY3Rpb246Om5hbWUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQog
eworICAgIEpTVmFsdWVQdHIgZGlzcGxheU5hbWUgPSBnZXREaXJlY3QoZ2xvYmFsRGF0YS0+cHJv
cGVydHlOYW1lcy0+ZGlzcGxheU5hbWUpOworCisgICAgaWYgKGRpc3BsYXlOYW1lKQorICAgICAg
ICByZXR1cm4gYXNTdHJpbmcoZGlzcGxheU5hbWUpLT52YWx1ZSgpOworCiAgICAgcmV0dXJuIGFz
U3RyaW5nKGdldERpcmVjdChnbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lKSktPnZhbHVl
KCk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyNDc0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDQtMTMgIEZyYW5jaXNj
byBUb2xtYXNreSAgPGZyYW5jaXNjb0AyODBub3J0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBCVUcgMjUxNzE6IEl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgdGhlIG5hbWUgb2YgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uCisgICAgICAgIAorICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciB1c2luZyBkaXNw
bGF5TmFtZSBwcm9wZXJ0eSBvbiBhbm9ueW1vdXMgYW5kIG5hbWVkIGZ1bmN0aW9ucy4KKworICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0xMyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTYgQEAKK1RoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW5vbnltb3VzIGZ1
bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMuIAorCitUbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQgIlt4XSBp
dGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMuCisKK1Byb2Zp
bGUgdGl0bGU6IEFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzCitUaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMCkKKyAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDIzKQorICAgICAgYW5vbnltb3VzRnVuY3Rpb25H
ZW5lcmF0b3IgYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGlu
ZSAxMSkKKyAgICAgIDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDEzKQorICAgICAgMSBpdGVyYXRpb25zIGZ1bmN0
aW9uIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTMp
CisgICAgICAyIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMuaHRtbCAobGluZSAxMykKKyAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24g
YW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMykKKyAg
ICAgIDEwMDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlz
cGxheS1uYW1lcy5odG1sIChsaW5lIDEzKQorICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxKQorCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1k
aXNwbGF5LW5hbWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOworfQorCitmdW5jdGlvbiBhbm9ueW1vdXNGdW5jdGlvbkdl
bmVyYXRvcihpdGVyYXRpb25zKQoreworICAgIHZhciB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5v
bnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgOworICAgIH0KKyAgICAKKyAgICB2YXJpYWJsZVRoYXRQ
b2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBpdGVyYXRpb25zICsgIiBp
dGVyYXRpb25zIGZ1bmN0aW9uIjsKKyAgICAKKyAgICByZXR1cm4gdmFyaWFibGVUaGF0UG9pbnRz
VG9BbkFub255bW91c0Z1bmN0aW9uOworfQorCitmdW5jdGlvbiBzdGFydFRlc3QoKQoreworICAg
IGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMi
KTsKKworICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDApKCk7CisgICAgYW5vbnltb3Vz
RnVuY3Rpb25HZW5lcmF0b3IoMSkoKTsKKyAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigy
KSgpOworICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDIwKSgpOworICAgIGFub255bW91
c0Z1bmN0aW9uR2VuZXJhdG9yKDEwMDApKCk7CisKKyAgICBlbmRUZXN0KCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+CitUaGlzIHBhZ2UncyBK
YXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzLgor
PGJyPgorPGJyPgorVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAordGhlIHByb2ZpbGUu
ICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQgIlt4XSBpdGVyYXRpb25zIGZ1bmN0aW9u
IiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMuCis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1m
dW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1l
ZCBmdW5jdGlvbnMgYW5kIGNoYW5nZXMgdGhlaXIgZGlzcGxheSBuYW1lcy4gCisKK1RvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0
aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlvbltzXSBmdW5jdGlvbiIsIGFuZCBub3QgImZ1bmN0aW9u
W3hdIgorCitQcm9maWxlIHRpdGxlOiBOYW1lZCBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVz
CitUaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMCkKKyAgIHN0YXJ0VGVzdCBuYW1lZC1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgNDYpCisgICAgICAwIGl0ZXJhdGlvbnMg
ZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDEx
KQorICAgICAgMSBpdGVyYXRpb24gZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxh
eS1uYW1lcy5odG1sIChsaW5lIDE4KQorICAgICAgMiBpdGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVk
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAyNSkKKyAgICAgIDIwIGl0
ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
IChsaW5lIDMyKQorICAgICAgMTAwMCBpdGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAzOSkKKyAgICAgIGVuZFRlc3QgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMSkKKworCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDY4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKK30KKworZnVuY3Rpb24gZnVuY3Rpb24wKCkKK3sKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDA7ICsraSkgOworfQorCitmdW5jdGlvbjAuZGlzcGxheU5hbWUg
PSAiMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKKworZnVuY3Rpb24gZnVuY3Rpb24xKCkKK3sKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDE7ICsraSkgOworfQorCitmdW5jdGlvbjEuZGlzcGxheU5h
bWUgPSAiMSBpdGVyYXRpb24gZnVuY3Rpb24iOworCitmdW5jdGlvbiBmdW5jdGlvbjIoKQorewor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSA7Cit9CisKK2Z1bmN0aW9uMi5kaXNwbGF5
TmFtZSA9ICIyIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOworCitmdW5jdGlvbiBmdW5jdGlvbjIwKCkK
K3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyArK2kpIDsKK30KKworZnVuY3Rpb24yMC5k
aXNwbGF5TmFtZSA9ICIyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKKworZnVuY3Rpb24gZnVuY3Rp
b24xMDAwKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgOworfQorCitm
dW5jdGlvbjEwMDAuZGlzcGxheU5hbWUgPSAiMTAwMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKKwor
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBjb25zb2xlLnByb2ZpbGUoIk5hbWVkIGZ1bmN0
aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsKKworICAgIGZ1bmN0aW9uMCgpOworICAgIGZ1bmN0
aW9uMSgpOworICAgIGZ1bmN0aW9uMigpOworICAgIGZ1bmN0aW9uMjAoKTsKKyAgICBmdW5jdGlv
bjEwMDAoKTsKKworICAgIGVuZFRlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9k
eSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KK1RoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgbmFt
ZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3BsYXkgbmFtZXMuCis8YnI+Cis8YnI+
CitUbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Cit0aGUgcHJvZmlsZS4gIFlvdSBzaG91
bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlvbltzXSBmdW5jdGlvbiIsIGFuZCBu
b3QgImZ1bmN0aW9uW3hdIgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="14665"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29454</attachid>
            <date>2009-04-13 20:22:27 -0700</date>
            <delta_ts>2009-04-13 21:10:52 -0700</delta_ts>
            <desc>Moved new code out of name and into calculatedDisplayName</desc>
            <filename>displayNamePatch.txt</filename>
            <type>text/plain</type>
            <size>11139</size>
            <attacher name="Francisco Tolmasky">tolmasky</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyNDc0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDQtMTMgIEZyYW5jaXNj
byBUb2xtYXNreSAgPHNldCBFTUFJTF9BRERSRVNTIGVudmlyb25tZW50IHZhcmlhYmxlPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQlVH
IDI1MTcxOiBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgc2V0IHRoZSBuYW1lIG9m
IGFuIGFub255bW91cyBmdW5jdGlvbgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRk
cyB0aGUgZGlzcGxheU5hbWUgcHJvcGVydHkgdG8gZnVuY3Rpb25zLCB3aGljaCB3aGVuIHNldCBv
dmVycmlkZXMgdGhlIAorICAgICAgICBub3JtYWwgbmFtZSB3aGVuIGFwcGVhcmluZyBpbiB0aGUg
Y29uc29sZS4KKworICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6Y3JlYXRlQ2FsbElkZW50aWZpZXJGcm9tRnVuY3Rpb25JbXApOiBDaGFuZ2VkIGNhbGwgdG8g
SW50ZXJuYWxGdW5jdGlvbjo6bmFtZSB0byBJbnRlcm5hbEZ1bmN0aW9uOjpjYWxjdWxhdGVkRGlz
cGxheU5hbWUKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6IEFkZGVkIGRp
c3BsYXlOYW1lIGNvbW1vbiBpZGVudGlmaWVyLgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246OmRpc3BsYXlOYW1l
KTogQWNjZXNzIHRvIHVzZXIgc2V0dGFibGUgZGlzcGxheU5hbWUgcHJvcGVydHkKKyAgICAgICAg
KEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6Y2FsY3VsYXRlZERpc3BsYXlOYW1lKTogUmV0dXJucyBk
aXNwbGF5TmFtZSBpZiBpdCBleGlzdHMsIGlmIG5vdCBuYW1lIGlmIGl0IGV4aXN0cywgaWYgbm90
ICIoYW5vbnltb3VzIGZ1bmN0aW9uKSIKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uaDoKKwogMjAwOS0wNC0xMyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXIuY3BwCShyZXZpc2lvbiA0MjQ2MSkKKysrIEphdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQAogbmFtZXNw
YWNlIEpTQyB7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBHbG9iYWxDb2RlRXhlY3V0aW9uID0gIihw
cm9ncmFtKSI7Ci1zdGF0aWMgY29uc3QgY2hhciogQW5vbnltb3VzRnVuY3Rpb24gPSAiKGFub255
bW91cyBmdW5jdGlvbikiOwogc3RhdGljIHVuc2lnbmVkIFByb2ZpbGVzVUlEID0gMDsKIAogc3Rh
dGljIENhbGxJZGVudGlmaWVyIGNyZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1wKEpT
R2xvYmFsRGF0YSosIEpTRnVuY3Rpb24qKTsKQEAgLTE0OCw4ICsxNDcsNyBAQCBDYWxsSWRlbnRp
ZmllciBQcm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50CiAKIENhbGxJZGVudGlmaWVyIGNyZWF0ZUNh
bGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1wKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNG
dW5jdGlvbiogZnVuY3Rpb24pCiB7Ci0gICAgY29uc3QgVVN0cmluZyYgbmFtZSA9IGZ1bmN0aW9u
LT5uYW1lKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihuYW1lLmlzRW1w
dHkoKSA/IEFub255bW91c0Z1bmN0aW9uIDogbmFtZSwgZnVuY3Rpb24tPmJvZHkoKS0+c291cmNl
VVJMKCksIGZ1bmN0aW9uLT5ib2R5KCktPmxpbmVObygpKTsKKyAgICByZXR1cm4gQ2FsbElkZW50
aWZpZXIoZnVuY3Rpb24tPmRpc3BsYXlOYW1lKGdsb2JhbERhdGEpLCBmdW5jdGlvbi0+Ym9keSgp
LT5zb3VyY2VVUkwoKSwgZnVuY3Rpb24tPmJvZHkoKS0+bGluZU5vKCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmgJKHJldmlzaW9uIDQyNDYxKQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw4IEBACiAgICAgbWFjcm8o
dG9QcmVjaXNpb24pIFwKICAgICBtYWNybyh0b1N0cmluZykgXAogICAgIG1hY3JvKFVUQykgXAot
ICAgIG1hY3JvKHZhbHVlT2YpCisgICAgbWFjcm8odmFsdWVPZikgXAorICAgIG1hY3JvKGRpc3Bs
YXlOYW1lKQogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShyZXZpc2lvbiA0MjQ2MSkKKysrIEphdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDQg
KzQ4LDMxIEBAIGNvbnN0IFVTdHJpbmcmIEludGVybmFsRnVuY3Rpb246Om5hbWUoSlMKICAgICBy
ZXR1cm4gYXNTdHJpbmcoZ2V0RGlyZWN0KGdsb2JhbERhdGEtPnByb3BlcnR5TmFtZXMtPm5hbWUp
KS0+dmFsdWUoKTsKIH0KIAorY29uc3QgVVN0cmluZyYgSW50ZXJuYWxGdW5jdGlvbjo6ZGlzcGxh
eU5hbWUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQoreworICAgIEpTVmFsdWVQdHIgZGlzcGxh
eU5hbWUgPSBnZXREaXJlY3QoZ2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+ZGlzcGxheU5hbWUp
OworICAgIAorICAgIGlmIChkaXNwbGF5TmFtZSkKKyAgICAgICAgcmV0dXJuIGFzU3RyaW5nKGRp
c3BsYXlOYW1lKS0+dmFsdWUoKTsKKyAgICAKKyAgICByZXR1cm4gVVN0cmluZzo6bnVsbCgpOwor
fQorCitjb25zdCBVU3RyaW5nJiBJbnRlcm5hbEZ1bmN0aW9uOjpjYWxjdWxhdGVkRGlzcGxheU5h
bWUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQoreworICAgIHN0YXRpYyBjb25zdCBVU3RyaW5n
ICogQW5vbnltb3VzRnVuY3Rpb24gPSBuZXcgVVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbiki
KTsKKyAgICAKKyAgICBjb25zdCBVU3RyaW5nJiBleHBsaWNpdE5hbWUgPSBkaXNwbGF5TmFtZShn
bG9iYWxEYXRhKTsKKyAgICAKKyAgICBpZiAoIWV4cGxpY2l0TmFtZS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBleHBsaWNpdE5hbWU7CisgICAgCisgICAgY29uc3QgVVN0cmluZyYgbmF0dXJh
bE5hbWUgPSBuYW1lKGdsb2JhbERhdGEpOworICAgIAorICAgIGlmICghbmF0dXJhbE5hbWUuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gbmF0dXJhbE5hbWU7CisKKyAgICByZXR1cm4gKkFub255
bW91c0Z1bmN0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCShyZXZpc2lvbiA0MjQ2MSkKKysrIEphdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw2ICszNyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIGluZm87CiAKICAgICAgICAgY29uc3QgVVN0cmluZyYgbmFtZShKU0dsb2JhbERhdGEqKTsK
KyAgICAgICAgY29uc3QgVVN0cmluZyYgZGlzcGxheU5hbWUoSlNHbG9iYWxEYXRhKik7CisgICAg
ICAgIGNvbnN0IFVTdHJpbmcmIGNhbGN1bGF0ZWREaXNwbGF5TmFtZShKU0dsb2JhbERhdGEqKTsK
IAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U1ZhbHVlUHRyIHByb3RvKSAKICAgICAgICAgeyAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyNDc0KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMDktMDQtMTMgIEZyYW5jaXNjbyBUb2xtYXNreSAgPGZyYW5jaXNjb0AyODBub3J0aC5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAg
ICBCVUcgMjUxNzE6IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgdGhlIG5h
bWUgb2YgYW4gYW5vbnltb3VzIGZ1bmN0aW9uCisgICAgICAgIAorICAgICAgICBBZGRlZCB0ZXN0
IGNhc2VzIGZvciB1c2luZyBkaXNwbGF5TmFtZSBwcm9wZXJ0eSBvbiBhbm9ueW1vdXMgYW5kIG5h
bWVkIGZ1bmN0aW9ucy4KKworICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlz
cGxheS1uYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
bmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sOiBBZGRlZC4KKwogMjAwOS0w
NC0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgcGFnZSdzIEphdmFTY3Jp
cHQgY2FsbHMgYW5vbnltb3VzIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMuIAorCitUbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBZb3Ugc2hvdWxkIHNlZSBm
dW5jdGlvbnMgbmFtZWQgIlt4XSBpdGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91
cyBmdW5jdGlvbnMuCisKK1Byb2ZpbGUgdGl0bGU6IEFub255bW91cyBmdW5jdGlvbnMgd2l0aCBk
aXNwbGF5IG5hbWVzCitUaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMCkKKyAgIHN0YXJ0VGVzdCBh
bm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDIzKQorICAg
ICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IgYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMuaHRtbCAobGluZSAxMSkKKyAgICAgIDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBh
bm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDEzKQorICAg
ICAgMSBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5
LW5hbWVzLmh0bWwgKGxpbmUgMTMpCisgICAgICAyIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMykKKyAgICAgIDIw
IGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMuaHRtbCAobGluZSAxMykKKyAgICAgIDEwMDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1v
dXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDEzKQorICAgICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxKQorCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXkt
bmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5
LW5hbWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOworfQorCitmdW5jdGlv
biBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQoreworICAgIHZhciB2YXJp
YWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgOworICAgIH0KKyAg
ICAKKyAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24uZGlzcGxheU5h
bWUgPSBpdGVyYXRpb25zICsgIiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKKyAgICAKKyAgICByZXR1
cm4gdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uOworfQorCitmdW5jdGlv
biBzdGFydFRlc3QoKQoreworICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9u
cyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsKKworICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9y
KDApKCk7CisgICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMSkoKTsKKyAgICBhbm9ueW1v
dXNGdW5jdGlvbkdlbmVyYXRvcigyKSgpOworICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9y
KDIwKSgpOworICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDEwMDApKCk7CisKKyAgICBl
bmRUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+CitUaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMg
d2l0aCBkaXNwbGF5IG5hbWVzLgorPGJyPgorPGJyPgorVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAordGhlIHByb2ZpbGUuICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQgIlt4
XSBpdGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMuCis8ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGhpcyBwYWdlJ3Mg
SmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNoYW5nZXMgdGhlaXIgZGlzcGxh
eSBuYW1lcy4gCisKK1RvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlvbltzXSBmdW5jdGlv
biIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgorCitQcm9maWxlIHRpdGxlOiBOYW1lZCBmdW5jdGlv
bnMgd2l0aCBkaXNwbGF5IG5hbWVzCitUaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMCkKKyAgIHN0
YXJ0VGVzdCBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgNDYp
CisgICAgICAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxh
eS1uYW1lcy5odG1sIChsaW5lIDExKQorICAgICAgMSBpdGVyYXRpb24gZnVuY3Rpb24gbmFtZWQt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDE4KQorICAgICAgMiBpdGVy
YXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAo
bGluZSAyNSkKKyAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDMyKQorICAgICAgMTAwMCBpdGVyYXRpb25zIGZ1
bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAzOSkK
KyAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMSkKKwor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1u
YW1lcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKK30KKworZnVuY3Rpb24g
ZnVuY3Rpb24wKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDA7ICsraSkgOworfQorCitm
dW5jdGlvbjAuZGlzcGxheU5hbWUgPSAiMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKKworZnVuY3Rp
b24gZnVuY3Rpb24xKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE7ICsraSkgOworfQor
CitmdW5jdGlvbjEuZGlzcGxheU5hbWUgPSAiMSBpdGVyYXRpb24gZnVuY3Rpb24iOworCitmdW5j
dGlvbiBmdW5jdGlvbjIoKQoreworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSA7Cit9
CisKK2Z1bmN0aW9uMi5kaXNwbGF5TmFtZSA9ICIyIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOworCitm
dW5jdGlvbiBmdW5jdGlvbjIwKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyArK2kp
IDsKK30KKworZnVuY3Rpb24yMC5kaXNwbGF5TmFtZSA9ICIyMCBpdGVyYXRpb25zIGZ1bmN0aW9u
IjsKKworZnVuY3Rpb24gZnVuY3Rpb24xMDAwKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDA7ICsraSkgOworfQorCitmdW5jdGlvbjEwMDAuZGlzcGxheU5hbWUgPSAiMTAwMCBpdGVy
YXRpb25zIGZ1bmN0aW9uIjsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBjb25zb2xl
LnByb2ZpbGUoIk5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsKKworICAgIGZ1
bmN0aW9uMCgpOworICAgIGZ1bmN0aW9uMSgpOworICAgIGZ1bmN0aW9uMigpOworICAgIGZ1bmN0
aW9uMjAoKTsKKyAgICBmdW5jdGlvbjEwMDAoKTsKKworICAgIGVuZFRlc3QoKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KK1RoaXMgcGFnZSdz
IEphdmFTY3JpcHQgY2FsbHMgbmFtZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3Bs
YXkgbmFtZXMuCis8YnI+Cis8YnI+CitUbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Cit0
aGUgcHJvZmlsZS4gIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlv
bltzXSBmdW5jdGlvbiIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgorPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="14668"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29455</attachid>
            <date>2009-04-13 21:10:52 -0700</date>
            <delta_ts>2009-04-13 22:04:41 -0700</delta_ts>
            <desc>Removed static UString pointer for AnonymousFunction.</desc>
            <filename>displayNamePatch.txt</filename>
            <type>text/plain</type>
            <size>10492</size>
            <attacher name="Francisco Tolmasky">tolmasky</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyNDc0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDQtMTMgIEZyYW5jaXNj
byBUb2xtYXNreSAgPGZyYW5jaXNjb0AyODBub3J0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBCVUcgMjUxNzE6IEl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgdGhlIG5hbWUgb2YgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHRoZSBkaXNwbGF5TmFt
ZSBwcm9wZXJ0eSB0byBmdW5jdGlvbnMsIHdoaWNoIHdoZW4gc2V0IG92ZXJyaWRlcyB0aGUgCisg
ICAgICAgIG5vcm1hbCBuYW1lIHdoZW4gYXBwZWFyaW5nIGluIHRoZSBjb25zb2xlLgorCisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVDYWxsSWRl
bnRpZmllckZyb21GdW5jdGlvbkltcCk6IENoYW5nZWQgY2FsbCB0byBJbnRlcm5hbEZ1bmN0aW9u
OjpuYW1lIHRvIEludGVybmFsRnVuY3Rpb246OmNhbGN1bGF0ZWREaXNwbGF5TmFtZQorICAgICAg
ICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDogQWRkZWQgZGlzcGxheU5hbWUgY29tbW9u
IGlkZW50aWZpZXIuCisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6ZGlzcGxheU5hbWUpOiBBY2Nlc3MgdG8gdXNl
ciBzZXR0YWJsZSBkaXNwbGF5TmFtZSBwcm9wZXJ0eQorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1
bmN0aW9uOjpjYWxjdWxhdGVkRGlzcGxheU5hbWUpOiBSZXR1cm5zIGRpc3BsYXlOYW1lIGlmIGl0
IGV4aXN0cywgaWYgbm90IHRoZW4gdGhlIG5hdHVyYWwgbmFtZQorCiAyMDA5LTA0LTEzICBHZW9m
ZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2Ft
IFdlaW5pZy4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlci5jcHAJKHJldmlzaW9u
IDQyNDYxKQorKysgSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDgsNyArMTQ4LDcgQEAgQ2FsbElkZW50aWZpZXIgUHJvZmlsZXI6OmNyZWF0
ZUNhbGxJZGVudAogCiBDYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5j
dGlvbkltcChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uKQog
ewotICAgIGNvbnN0IFVTdHJpbmcmIG5hbWUgPSBmdW5jdGlvbi0+bmFtZShnbG9iYWxEYXRhKTsK
KyAgICBjb25zdCBVU3RyaW5nJiBuYW1lID0gZnVuY3Rpb24tPmNhbGN1bGF0ZWREaXNwbGF5TmFt
ZShnbG9iYWxEYXRhKTsKICAgICByZXR1cm4gQ2FsbElkZW50aWZpZXIobmFtZS5pc0VtcHR5KCkg
PyBBbm9ueW1vdXNGdW5jdGlvbiA6IG5hbWUsIGZ1bmN0aW9uLT5ib2R5KCktPnNvdXJjZVVSTCgp
LCBmdW5jdGlvbi0+Ym9keSgpLT5saW5lTm8oKSk7CiB9CiAKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgJKHJldmlzaW9uIDQyNDYxKQorKysgSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02
Myw3ICs2Myw4IEBACiAgICAgbWFjcm8odG9QcmVjaXNpb24pIFwKICAgICBtYWNybyh0b1N0cmlu
ZykgXAogICAgIG1hY3JvKFVUQykgXAotICAgIG1hY3JvKHZhbHVlT2YpCisgICAgbWFjcm8odmFs
dWVPZikgXAorICAgIG1hY3JvKGRpc3BsYXlOYW1lKQogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRl
eDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShyZXZpc2lv
biA0MjQ2MSkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDQgKzQ4LDI0IEBAIGNvbnN0IFVTdHJpbmcmIEludGVybmFs
RnVuY3Rpb246Om5hbWUoSlMKICAgICByZXR1cm4gYXNTdHJpbmcoZ2V0RGlyZWN0KGdsb2JhbERh
dGEtPnByb3BlcnR5TmFtZXMtPm5hbWUpKS0+dmFsdWUoKTsKIH0KIAorY29uc3QgVVN0cmluZyYg
SW50ZXJuYWxGdW5jdGlvbjo6ZGlzcGxheU5hbWUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQor
eworICAgIEpTVmFsdWVQdHIgZGlzcGxheU5hbWUgPSBnZXREaXJlY3QoZ2xvYmFsRGF0YS0+cHJv
cGVydHlOYW1lcy0+ZGlzcGxheU5hbWUpOworICAgIAorICAgIGlmIChkaXNwbGF5TmFtZSkKKyAg
ICAgICAgcmV0dXJuIGFzU3RyaW5nKGRpc3BsYXlOYW1lKS0+dmFsdWUoKTsKKyAgICAKKyAgICBy
ZXR1cm4gVVN0cmluZzo6bnVsbCgpOworfQorCitjb25zdCBVU3RyaW5nJiBJbnRlcm5hbEZ1bmN0
aW9uOjpjYWxjdWxhdGVkRGlzcGxheU5hbWUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQorewor
ICAgIGNvbnN0IFVTdHJpbmcmIGV4cGxpY2l0TmFtZSA9IGRpc3BsYXlOYW1lKGdsb2JhbERhdGEp
OworICAgIAorICAgIGlmICghZXhwbGljaXROYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IGV4cGxpY2l0TmFtZTsKKyAgICAKKyAgICByZXR1cm4gbmFtZShnbG9iYWxEYXRhKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uaAkocmV2aXNpb24gNDI0NjEpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGVybmFsRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwogCiAgICAgICAg
IGNvbnN0IFVTdHJpbmcmIG5hbWUoSlNHbG9iYWxEYXRhKik7CisgICAgICAgIGNvbnN0IFVTdHJp
bmcmIGRpc3BsYXlOYW1lKEpTR2xvYmFsRGF0YSopOworICAgICAgICBjb25zdCBVU3RyaW5nJiBj
YWxjdWxhdGVkRGlzcGxheU5hbWUoSlNHbG9iYWxEYXRhKik7CiAKICAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZVB0ciBwcm90bykgCiAg
ICAgICAgIHsgCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjQ3NCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA0LTEzICBGcmFuY2lz
Y28gVG9sbWFza3kgIDxmcmFuY2lzY29AMjgwbm9ydGguY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQlVHIDI1MTcxOiBJdCBzaG91
bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgc2V0IHRoZSBuYW1lIG9mIGFuIGFub255bW91cyBm
dW5jdGlvbgorICAgICAgICAKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyBmb3IgdXNpbmcgZGlz
cGxheU5hbWUgcHJvcGVydHkgb24gYW5vbnltb3VzIGFuZCBuYW1lZCBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5h
bWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1v
dXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMuaHRtbDogQWRkZWQuCisKIDIwMDktMDQtMTMgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1k
aXNwbGF5LW5hbWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE2IEBACitUaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBm
dW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzLiAKKworVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0g
aXRlcmF0aW9ucyBmdW5jdGlvbiIsIGFuZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgorCitQcm9m
aWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcworVGhyZWFk
XzEgKG5vIGZpbGUpIChsaW5lIDApCisgICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0aW9ucy13
aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAyMykKKyAgICAgIGFub255bW91c0Z1bmN0aW9u
R2VuZXJhdG9yIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxp
bmUgMTEpCisgICAgICAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13
aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMykKKyAgICAgIDEgaXRlcmF0aW9ucyBmdW5j
dGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDEz
KQorICAgICAgMiBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1k
aXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTMpCisgICAgICAyMCBpdGVyYXRpb25zIGZ1bmN0aW9u
IGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTMpCisg
ICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMuaHRtbCAobGluZSAxMykKKyAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMSkKKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKK30KKworZnVuY3Rpb24gYW5vbnltb3VzRnVuY3Rpb25H
ZW5lcmF0b3IoaXRlcmF0aW9ucykKK3sKKyAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFu
b255bW91c0Z1bmN0aW9uID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIDsKKyAgICB9CisgICAgCisgICAgdmFyaWFibGVUaGF0
UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uLmRpc3BsYXlOYW1lID0gaXRlcmF0aW9ucyArICIg
aXRlcmF0aW9ucyBmdW5jdGlvbiI7CisgICAgCisgICAgcmV0dXJuIHZhcmlhYmxlVGhhdFBvaW50
c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbjsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAg
ICBjb25zb2xlLnByb2ZpbGUoIkFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVz
Iik7CisKKyAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigwKSgpOworICAgIGFub255bW91
c0Z1bmN0aW9uR2VuZXJhdG9yKDEpKCk7CisgICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3Io
MikoKTsKKyAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyMCkoKTsKKyAgICBhbm9ueW1v
dXNGdW5jdGlvbkdlbmVyYXRvcigxMDAwKSgpOworCisgICAgZW5kVGVzdCgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorVGhpcyBwYWdlJ3Mg
SmF2YVNjcmlwdCBjYWxscyBhbm9ueW1vdXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4K
Kzxicj4KKzxicj4KK1RvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKK3RoZSBwcm9maWxl
LiAgWW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlv
biIsIGFuZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5h
bWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgbmFt
ZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3BsYXkgbmFtZXMuIAorCitUbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBZb3Ugc2hvdWxkIHNlZSBmdW5j
dGlvbnMgbmFtZWQgIlt4XSBpdGVyYXRpb25bc10gZnVuY3Rpb24iLCBhbmQgbm90ICJmdW5jdGlv
blt4XSIKKworUHJvZmlsZSB0aXRsZTogTmFtZWQgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1l
cworVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDApCisgICBzdGFydFRlc3QgbmFtZWQtZnVuY3Rp
b25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDQ2KQorICAgICAgMCBpdGVyYXRpb25z
IGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAx
MSkKKyAgICAgIDEgaXRlcmF0aW9uIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3Bs
YXktbmFtZXMuaHRtbCAobGluZSAxOCkKKyAgICAgIDIgaXRlcmF0aW9ucyBmdW5jdGlvbiBuYW1l
ZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMjUpCisgICAgICAyMCBp
dGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRt
bCAobGluZSAzMikKKyAgICAgIDEwMDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBuYW1lZC1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMzkpCisgICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDEpCisKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0
aC1kaXNwbGF5LW5hbWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIGZ1bmN0aW9uMCgpCit7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAwOyArK2kpIDsKK30KKworZnVuY3Rpb24wLmRpc3BsYXlOYW1l
ID0gIjAgaXRlcmF0aW9ucyBmdW5jdGlvbiI7CisKK2Z1bmN0aW9uIGZ1bmN0aW9uMSgpCit7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxOyArK2kpIDsKK30KKworZnVuY3Rpb24xLmRpc3BsYXlO
YW1lID0gIjEgaXRlcmF0aW9uIGZ1bmN0aW9uIjsKKworZnVuY3Rpb24gZnVuY3Rpb24yKCkKK3sK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkgOworfQorCitmdW5jdGlvbjIuZGlzcGxh
eU5hbWUgPSAiMiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKKworZnVuY3Rpb24gZnVuY3Rpb24yMCgp
Cit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDsgKytpKSA7Cit9CisKK2Z1bmN0aW9uMjAu
ZGlzcGxheU5hbWUgPSAiMjAgaXRlcmF0aW9ucyBmdW5jdGlvbiI7CisKK2Z1bmN0aW9uIGZ1bmN0
aW9uMTAwMCgpCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIDsKK30KKwor
ZnVuY3Rpb24xMDAwLmRpc3BsYXlOYW1lID0gIjEwMDAgaXRlcmF0aW9ucyBmdW5jdGlvbiI7CisK
K2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgY29uc29sZS5wcm9maWxlKCJOYW1lZCBmdW5j
dGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzIik7CisKKyAgICBmdW5jdGlvbjAoKTsKKyAgICBmdW5j
dGlvbjEoKTsKKyAgICBmdW5jdGlvbjIoKTsKKyAgICBmdW5jdGlvbjIwKCk7CisgICAgZnVuY3Rp
b24xMDAwKCk7CisKKyAgICBlbmRUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+CitUaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIG5h
bWVkIGZ1bmN0aW9ucyBhbmQgY2hhbmdlcyB0aGVpciBkaXNwbGF5IG5hbWVzLgorPGJyPgorPGJy
PgorVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAordGhlIHByb2ZpbGUuICBZb3Ugc2hv
dWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQgIlt4XSBpdGVyYXRpb25bc10gZnVuY3Rpb24iLCBhbmQg
bm90ICJmdW5jdGlvblt4XSIKKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="14669"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>