<?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>55959</bug_id>
          
          <creation_ts>2011-03-08 12:12:44 -0800</creation_ts>
          <short_desc>REGRESSION (WebKit2): VoiceOver focus no longer follows keyboard focus</short_desc>
          <delta_ts>2011-03-10 16:40:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>364093</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-08 12:12:44 -0800</bug_when>
    <thetext>When focus changes, VoiceOver does not follow in WK2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364176</commentid>
    <comment_count>1</comment_count>
      <attachid>85097</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-08 14:57:59 -0800</bug_when>
    <thetext>Created attachment 85097
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364257</commentid>
    <comment_count>2</comment_count>
      <attachid>85116</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-08 17:40:53 -0800</bug_when>
    <thetext>Created attachment 85116
patch

first patch didn&apos;t svn apply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364258</commentid>
    <comment_count>3</comment_count>
      <attachid>85117</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-08 17:41:52 -0800</bug_when>
    <thetext>Created attachment 85117
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364654</commentid>
    <comment_count>4</comment_count>
      <attachid>85206</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-09 11:39:55 -0800</bug_when>
    <thetext>Created attachment 85206
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364671</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-09 12:07:40 -0800</bug_when>
    <thetext>Attachment 85206 did not build on win:
Build output: http://queues.webkit.org/results/8117576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364684</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-09 12:22:12 -0800</bug_when>
    <thetext>Attachment 85206 did not build on qt:
Build output: http://queues.webkit.org/results/8110964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364834</commentid>
    <comment_count>7</comment_count>
      <attachid>85250</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-09 15:53:25 -0800</bug_when>
    <thetext>Created attachment 85250
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365380</commentid>
    <comment_count>8</comment_count>
      <attachid>85250</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-10 11:49:29 -0800</bug_when>
    <thetext>Comment on attachment 85250
patch

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

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:465
&gt; +#if PLATFORM(MAC)
&gt; +    Vector&lt;RefPtr&lt;WebPage&gt; &gt; pages;
&gt; +    copyValuesToVector(m_pageMap, pages);
&gt; +    for (size_t i = 0; i &lt; pages.size(); ++i)
&gt; +        if (pages[i]-&gt;windowIsFocused())
&gt; +            return pages[i].get();
&gt; +#endif
&gt; +    return 0;

Is always zero correct for non-Mac platforms? Or is this just not implemented for those platforms? Can’t we just compile this function on all platforms? If we are having some problem compiling it on some of those other platforms where it’s also not called, we could just put the #if around the entire function definition instead, which I think would be clearer.

Do we really need to copy the map to a vector? Why can’t we just iterate the map? Can the windowIsFocused function change the contents of the map?

Need braces around the body of the for loop.

&gt; Source/WebKit2/WebProcess/mac/NSApplicationOverride.mm:32
&gt; +@implementation NSApplication (NSApplicationOverride)

Defining a category is not a reliable way to override the implementation of a method in an AppKit class even though it often seems to work. The reliable method involves method_setImplementation and is done in source files such as WebPluginController.mm, WebHTMLView.mm, and WebView.mm in WebKit.

&gt; Source/WebKit2/WebProcess/mac/NSApplicationOverride.mm:39
&gt; +    if (!WebKit::WebProcess::shared().isSeparateProcess())

It’s normally better to put using namespace WebKit at the start of a file rather than doing WebKit:: everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365624</commentid>
    <comment_count>9</comment_count>
      <attachid>85405</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-10 16:17:19 -0800</bug_when>
    <thetext>Created attachment 85405
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365651</commentid>
    <comment_count>10</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-10 16:40:37 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80789</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85097</attachid>
            <date>2011-03-08 14:57:59 -0800</date>
            <delta_ts>2011-03-08 17:40:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8929</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDgwNTk1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMt
MDggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTog
Vm9pY2VPdmVyIGZvY3VzIG5vIGxvbmdlciBmb2xsb3dzIGtleWJvYXJkIGZvY3VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk1OQorCisgICAgICAg
IE5TQXBwbGljYXRpb24gaGFzIHRvIHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IHdpdGhpbiB0
aGUgYXBwIGluIG9yZGVyCisgICAgICAgIGZvciBOU0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0No
YW5nZWQoKSB0byB3b3JrLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICByZWxp
ZXMgb24ga2V5V2luZG93LiBDb25zZXF1ZW50bHksIGluIFdLMiwgdGhlIFdlYlByb2Nlc3MgbXVz
dCBvdmVycmlkZSB0aGF0IG1ldGhvZAorICAgICAgICB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRl
IGZvY3VzZWQgZWxlbWVudCB3aXRoaW4gdGhlIFdlYlByb2Nlc3MsIHNpbmNlCisgICAgICAgIHRo
ZXJlIGlzIG5vIGtleVdpbmRvdy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZvY3VzZWRXZWJQ
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW06IEFkZGVkLgorICAgICAgICAoLVtO
U0FwcGxpY2F0aW9uIGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CisKIDIwMTEtMDMt
MDggIEl2YW4gS3JzdGnEhyAgPGlrZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2FtIFdlaW5pZy4KSW5kZXg6IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDgw
NTcxKQorKysgV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzksNiArMjM5LDcgQEAKIAkJMUNBOEI5NTQxMjdDODkxNTAwNTc2QzJCIC8qIFdlYklu
c3BlY3Rvck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDOEUyREFEMTI3OEM1QjIwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNYWMubW0gKi87IH07
CiAJCTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1
QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi87IH07
CiAJCTI5Q0Q1NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1
NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLzsg
fTsKKwkJMjlDREI2RjkxMzI2RTZDQzAwMjM4MjhEIC8qIE5TQXBwbGljYXRpb25PdmVycmlkZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0RCNkY3
MTMyNkUwMEIwMDIzODI4RCAvKiBOU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0gKi87IH07CiAJCTMz
MDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkz
NDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICov
OyB9OwogCQkzMzA5MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTA1Nyw2ICsxMDU4LDcgQEAKIAkJMUNB
OEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUNENTVBODEyOEUyOTRGMDAxMzNDODUg
LyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTI5Q0RCNkY3MTMyNkUwMEIwMDIzODI4RCAvKiBOU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU0FwcGxpY2F0aW9uT3ZlcnJp
ZGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUwMEM5
MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdDJQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NDMx
MzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29va2llTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDQ0MTMx
NUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODI1LDYgKzE4MjcsNyBAQAogCQkJCUJDMzA2NUMzMTI1
OTJGODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tICovLAogCQkJCUUxQkIxNjg4MTMyMDE4
QkEwMEY0OTQzMSAvKiBGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmggKi8sCiAJCQkJRTFCQjE2
ODkxMzIwMThCQTAwRjQ5NDMxIC8qIEZ1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW0gKi8sCisJ
CQkJMjlDREI2RjcxMzI2RTAwQjAwMjM4MjhEIC8qIE5TQXBwbGljYXRpb25PdmVycmlkZS5tbSAq
LywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTM5NzYsNiArMzk3OSw3IEBACiAJCQkJQkNFODFEOTgxMzFBRTAyMTAwMjQxOTEwIC8qIERpY3Rp
b25hcnlQb3B1cEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCQjE2QTUxMzIwMUI5QjAw
RjQ5NDMxIC8qIEZ1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkzM0FBMTA2NjEzMUYwNjAwMDBENEE1NzUgLyogV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5Q0RCNkY5MTMyNkU2Q0MwMDIzODI4RCAvKiBOU0Fw
cGxpY2F0aW9uT3ZlcnJpZGUubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2
aXNpb24gODA1NzEpCisrKyBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NTMsNiArNDUzLDE2IEBACiAgICAgfTsKIH0KIAorV2ViUGFnZSogV2ViUHJvY2Vzczo6
Zm9jdXNlZFdlYlBhZ2UoKSBjb25zdAoreworICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZT4gPiBw
YWdlczsKKyAgICBjb3B5VmFsdWVzVG9WZWN0b3IobV9wYWdlTWFwLCBwYWdlcyk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBwYWdlcy5zaXplKCk7ICsraSkKKyAgICAgICAgaWYgKHBhZ2Vz
W2ldLT53aW5kb3dJc0ZvY3VzZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdlc1tpXS5nZXQo
KTsKKyAgICByZXR1cm4gMDsKK30KKyAgICAKIFdlYlBhZ2UqIFdlYlByb2Nlc3M6OndlYlBhZ2Uo
dWludDY0X3QgcGFnZUlEKSBjb25zdAogewogICAgIHJldHVybiBtX3BhZ2VNYXAuZ2V0KHBhZ2VJ
RCkuZ2V0KCk7CkluZGV4OiBXZWJQcm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViUHJvY2Vzcy9tYWMvTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tCShy
ZXZpc2lvbiAwKQorKysgV2ViUHJvY2Vzcy9tYWMvTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCitAaW1wbGVtZW50YXRpb24g
TlNBcHBsaWNhdGlvbiAoTlNBcHBsaWNhdGlvbk92ZXJyaWRlKQorCisvLyBXaGVuIHJ1bm5pbmcg
aW4gdGhlIFdlYlByb2Nlc3MsIHRoZSBkZWZhdWx0IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVt
ZW50IHdpbGwgCisvLyByZXR1cm4gbmlsIGJlY2F1c2UgdGhlcmUncyBubyBrZXlXaW5kb3cuIFRo
YXQgY2FzZSBuZWVkcyB0byBiZSBoYW5kbGVkIGJ5IGFza2luZworLy8gdGhlIGZvY3VzZWQgcGFn
ZSBmb3IgaXQncyBmb2N1c2VkIFVJIGVsZW1lbnQuCistIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNl
ZFVJRWxlbWVudAoreworICAgIGlmICghV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5pc1Nl
cGFyYXRlUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gW1tzZWxmIGtleVdpbmRvd10gYWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOworICAgIAorICAgIFdlYktpdDo6V2ViUGFnZSogcGFn
ZSA9IFdlYktpdDo6V2ViUHJvY2Vzczo6c2hhcmVkKCkuZm9jdXNlZFdlYlBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UgfHwgIXBhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSkKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2Jq
ZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOworfQorCitAZW5kCkluZGV4OiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAkocmV2aXNpb24gODA1NzEpCisrKyBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzYsNyArNzYsOCBAQAogICAgIFdlYlBhZ2UqIHdlYlBhZ2UodWludDY0X3Qg
cGFnZUlEKSBjb25zdDsKICAgICB2b2lkIGNyZWF0ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCByZW1vdmVXZWJQYWdl
KHVpbnQ2NF90IHBhZ2VJRCk7Ci0KKyAgICBXZWJQYWdlKiBmb2N1c2VkV2ViUGFnZSgpIGNvbnN0
OworICAgIAogICAgIEluamVjdGVkQnVuZGxlKiBpbmplY3RlZEJ1bmRsZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW5qZWN0ZWRCdW5kbGUuZ2V0KCk7IH0KIAogICAgIGJvb2wgaXNTZXBhcmF0ZVByb2Nl
c3MoKSBjb25zdDsKSW5kZXg6IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9BY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQkocmV2aXNpb24gODA1NzEpCisrKyBXZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xODYsNyArMTg2LDcgQEAKIAogLSAoaWQpYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1l
bnQgCiB7Ci0gICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZERlc2NlbmRhbnQoc2Vs
Zik7CisgICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXJdIGFj
Y2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XTsKIH0KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85116</attachid>
            <date>2011-03-08 17:40:53 -0800</date>
            <delta_ts>2011-03-08 17:41:52 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>9385</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjEw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMt
MDggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTog
Vm9pY2VPdmVyIGZvY3VzIG5vIGxvbmdlciBmb2xsb3dzIGtleWJvYXJkIGZvY3VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk1OQorCisgICAgICAg
IE5TQXBwbGljYXRpb24gaGFzIHRvIHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IHdpdGhpbiB0
aGUgYXBwIGluIG9yZGVyCisgICAgICAgIGZvciBOU0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0No
YW5nZWQoKSB0byB3b3JrLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICByZWxp
ZXMgb24ga2V5V2luZG93LiBDb25zZXF1ZW50bHksIGluIFdLMiwgdGhlIFdlYlByb2Nlc3MgbXVz
dCBvdmVycmlkZSB0aGF0IG1ldGhvZAorICAgICAgICB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRl
IGZvY3VzZWQgZWxlbWVudCB3aXRoaW4gdGhlIFdlYlByb2Nlc3MsIHNpbmNlCisgICAgICAgIHRo
ZXJlIGlzIG5vIGtleVdpbmRvdy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZvY3VzZWRXZWJQ
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW06IEFkZGVkLgorICAgICAgICAoLVtO
U0FwcGxpY2F0aW9uIGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CisKIDIwMTEtMDMt
MDggIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkZWxlIFBldGVyc29uLgpJbmRleDogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gODA2MTApCisrKyBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTIzOSw2ICsyMzksNyBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAq
LzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAq
LzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1t
ICovOyB9OworCQkyOUNEQjZGOTEzMjZFNkNDMDAyMzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJy
aWRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlD
REI2RjcxMzI2RTAwQjAwMjM4MjhEIC8qIE5TQXBwbGljYXRpb25PdmVycmlkZS5tbSAqLzsgfTsK
IAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2Vz
LmggKi87IH07CiAJCTMzMDkzNDQ5MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzMwOTM0NDUxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xMDU3LDYgKzEwNTgsNyBAQAog
CQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEz
M0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMjlDREI2RjcxMzI2RTAwQjAwMjM4MjhEIC8qIE5TQXBwbGljYXRpb25PdmVycmlkZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TQXBwbGljYXRpb25P
dmVycmlkZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURF
RTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViS2l0MlByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5
MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0
NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjUsNiArMTgyNyw3IEBACiAJCQkJQkMzMDY1
QzMxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gKi8sCiAJCQkJRTFCQjE2ODgx
MzIwMThCQTAwRjQ5NDMxIC8qIEZ1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKIAkJCQlF
MUJCMTY4OTEzMjAxOEJBMDBGNDk0MzEgLyogRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbSAq
LywKKwkJCQkyOUNEQjZGNzEzMjZFMDBCMDAyMzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJyaWRl
Lm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMzk3Niw2ICszOTc5LDcgQEAKIAkJCQlCQ0U4MUQ5ODEzMUFFMDIxMDAyNDE5MTAgLyog
RGljdGlvbmFyeVBvcHVwSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJCMTZBNTEzMjAx
QjlCMDBGNDk0MzEgLyogRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTMzQUExMDY2MTMxRjA2MDAwMEQ0QTU3NSAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjlDREI2RjkxMzI2RTZDQzAwMjM4MjhEIC8q
IE5TQXBwbGljYXRpb25PdmVycmlkZS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiA4MDYxMCkKKysrIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1Myw2ICs0NTMsMTYgQEAKICAgICB9OwogfQogCitXZWJQYWdlKiBXZWJQcm9j
ZXNzOjpmb2N1c2VkV2ViUGFnZSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJQYWdl
PiA+IHBhZ2VzOworICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX3BhZ2VNYXAsIHBhZ2VzKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhZ2VzLnNpemUoKTsgKytpKQorICAgICAgICBpZiAo
cGFnZXNbaV0tPndpbmRvd0lzRm9jdXNlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHBhZ2VzW2ld
LmdldCgpOworICAgIHJldHVybiAwOworfQorICAgIAogV2ViUGFnZSogV2ViUHJvY2Vzczo6d2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZU1hcC5nZXQo
cGFnZUlEKS5nZXQoKTsKSW5kZXg6IFdlYlByb2Nlc3MvbWFjL05TQXBwbGljYXRpb25PdmVycmlk
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJQcm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUu
bW0JKHJldmlzaW9uIDApCisrKyBXZWJQcm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUu
bW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK0BpbXBsZW1lbnRh
dGlvbiBOU0FwcGxpY2F0aW9uIChOU0FwcGxpY2F0aW9uT3ZlcnJpZGUpCisKKy8vIFdoZW4gcnVu
bmluZyBpbiB0aGUgV2ViUHJvY2VzcywgdGhlIGRlZmF1bHQgYWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnQgd2lsbCAKKy8vIHJldHVybiBuaWwgYmVjYXVzZSB0aGVyZSdzIG5vIGtleVdpbmRv
dy4gVGhhdCBjYXNlIG5lZWRzIHRvIGJlIGhhbmRsZWQgYnkgYXNraW5nCisvLyB0aGUgZm9jdXNl
ZCBwYWdlIGZvciBpdCdzIGZvY3VzZWQgVUkgZWxlbWVudC4KKy0gKGlkKWFjY2Vzc2liaWxpdHlG
b2N1c2VkVUlFbGVtZW50Cit7CisgICAgaWYgKCFXZWJLaXQ6OldlYlByb2Nlc3M6OnNoYXJlZCgp
LmlzU2VwYXJhdGVQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBbW3NlbGYga2V5V2luZG93XSBh
Y2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07CisgICAgCisgICAgV2ViS2l0OjpXZWJQYWdl
KiBwYWdlID0gV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5mb2N1c2VkV2ViUGFnZSgpOwor
ICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1v
dGVPYmplY3QoKSBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07Cit9CisKK0BlbmQKSW5k
ZXg6IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCShyZXZpc2lvbiA4MDYxMCkKKysrIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw4IEBACiAgICAgV2ViUGFnZSogd2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQpIGNvbnN0OwogICAgIHZvaWQgY3JlYXRlV2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHJlbW92ZVdl
YlBhZ2UodWludDY0X3QgcGFnZUlEKTsKLQorICAgIFdlYlBhZ2UqIGZvY3VzZWRXZWJQYWdlKCkg
Y29uc3Q7CisgICAgCiAgICAgSW5qZWN0ZWRCdW5kbGUqIGluamVjdGVkQnVuZGxlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmplY3RlZEJ1bmRsZS5nZXQoKTsgfQogCiAgICAgYm9vbCBpc1NlcGFyYXRl
UHJvY2VzcygpIGNvbnN0OwpAQCAtMTQ3LDYgKzE0OCwxMCBAQAogICAgIHZvaWQgcGxhdGZvcm1D
bGVhclJlc291cmNlQ2FjaGVzKCk7CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGUoKTsK
IAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShi
b29sKTsKKyNlbmRpZgorICAgIAogI2lmICFFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAgdm9p
ZCBnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRo
cywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBjbGVhclBsdWdpblNpdGVEYXRhKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwbHVnaW5QYXRocywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNp
dGVzLCB1aW50NjRfdCBmbGFncywgdWludDY0X3QgbWF4QWdlSW5TZWNvbmRzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKSW5kZXg6IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9BY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQkocmV2aXNpb24gODA2MTApCisrKyBXZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xODYsNyArMTg2LDcgQEAKIAogLSAoaWQpYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1l
bnQgCiB7Ci0gICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZERlc2NlbmRhbnQoc2Vs
Zik7CisgICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXJdIGFj
Y2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XTsKIH0KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85117</attachid>
            <date>2011-03-08 17:41:52 -0800</date>
            <delta_ts>2011-03-09 11:39:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8934</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjEw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMt
MDggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTog
Vm9pY2VPdmVyIGZvY3VzIG5vIGxvbmdlciBmb2xsb3dzIGtleWJvYXJkIGZvY3VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk1OQorCisgICAgICAg
IE5TQXBwbGljYXRpb24gaGFzIHRvIHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IHdpdGhpbiB0
aGUgYXBwIGluIG9yZGVyCisgICAgICAgIGZvciBOU0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0No
YW5nZWQoKSB0byB3b3JrLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICByZWxp
ZXMgb24ga2V5V2luZG93LiBDb25zZXF1ZW50bHksIGluIFdLMiwgdGhlIFdlYlByb2Nlc3MgbXVz
dCBvdmVycmlkZSB0aGF0IG1ldGhvZAorICAgICAgICB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRl
IGZvY3VzZWQgZWxlbWVudCB3aXRoaW4gdGhlIFdlYlByb2Nlc3MsIHNpbmNlCisgICAgICAgIHRo
ZXJlIGlzIG5vIGtleVdpbmRvdy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZvY3VzZWRXZWJQ
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW06IEFkZGVkLgorICAgICAgICAoLVtO
U0FwcGxpY2F0aW9uIGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CisKIDIwMTEtMDMt
MDggIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkZWxlIFBldGVyc29uLgpJbmRleDogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gODA2MTApCisrKyBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTIzOSw2ICsyMzksNyBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAq
LzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAq
LzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1t
ICovOyB9OworCQkyOUNEQjZGOTEzMjZFNkNDMDAyMzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJy
aWRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlD
REI2RjcxMzI2RTAwQjAwMjM4MjhEIC8qIE5TQXBwbGljYXRpb25PdmVycmlkZS5tbSAqLzsgfTsK
IAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2Vz
LmggKi87IH07CiAJCTMzMDkzNDQ5MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzMwOTM0NDUxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xMDU3LDYgKzEwNTgsNyBAQAog
CQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEz
M0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMjlDREI2RjcxMzI2RTAwQjAwMjM4MjhEIC8qIE5TQXBwbGljYXRpb25PdmVycmlkZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TQXBwbGljYXRpb25P
dmVycmlkZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURF
RTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViS2l0MlByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5
MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0
NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjUsNiArMTgyNyw3IEBACiAJCQkJQkMzMDY1
QzMxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gKi8sCiAJCQkJRTFCQjE2ODgx
MzIwMThCQTAwRjQ5NDMxIC8qIEZ1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKIAkJCQlF
MUJCMTY4OTEzMjAxOEJBMDBGNDk0MzEgLyogRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbSAq
LywKKwkJCQkyOUNEQjZGNzEzMjZFMDBCMDAyMzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJyaWRl
Lm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMzk3Niw2ICszOTc5LDcgQEAKIAkJCQlCQ0U4MUQ5ODEzMUFFMDIxMDAyNDE5MTAgLyog
RGljdGlvbmFyeVBvcHVwSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJCMTZBNTEzMjAx
QjlCMDBGNDk0MzEgLyogRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTMzQUExMDY2MTMxRjA2MDAwMEQ0QTU3NSAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjlDREI2RjkxMzI2RTZDQzAwMjM4MjhEIC8q
IE5TQXBwbGljYXRpb25PdmVycmlkZS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiA4MDYxMCkKKysrIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1Myw2ICs0NTMsMTYgQEAKICAgICB9OwogfQogCitXZWJQYWdlKiBXZWJQcm9j
ZXNzOjpmb2N1c2VkV2ViUGFnZSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJQYWdl
PiA+IHBhZ2VzOworICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX3BhZ2VNYXAsIHBhZ2VzKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhZ2VzLnNpemUoKTsgKytpKQorICAgICAgICBpZiAo
cGFnZXNbaV0tPndpbmRvd0lzRm9jdXNlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHBhZ2VzW2ld
LmdldCgpOworICAgIHJldHVybiAwOworfQorICAgIAogV2ViUGFnZSogV2ViUHJvY2Vzczo6d2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZU1hcC5nZXQo
cGFnZUlEKS5nZXQoKTsKSW5kZXg6IFdlYlByb2Nlc3MvbWFjL05TQXBwbGljYXRpb25PdmVycmlk
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJQcm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUu
bW0JKHJldmlzaW9uIDApCisrKyBXZWJQcm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUu
bW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK0BpbXBsZW1lbnRh
dGlvbiBOU0FwcGxpY2F0aW9uIChOU0FwcGxpY2F0aW9uT3ZlcnJpZGUpCisKKy8vIFdoZW4gcnVu
bmluZyBpbiB0aGUgV2ViUHJvY2VzcywgdGhlIGRlZmF1bHQgYWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnQgd2lsbCAKKy8vIHJldHVybiBuaWwgYmVjYXVzZSB0aGVyZSdzIG5vIGtleVdpbmRv
dy4gVGhhdCBjYXNlIG5lZWRzIHRvIGJlIGhhbmRsZWQgYnkgYXNraW5nCisvLyB0aGUgZm9jdXNl
ZCBwYWdlIGZvciBpdCdzIGZvY3VzZWQgVUkgZWxlbWVudC4KKy0gKGlkKWFjY2Vzc2liaWxpdHlG
b2N1c2VkVUlFbGVtZW50Cit7CisgICAgaWYgKCFXZWJLaXQ6OldlYlByb2Nlc3M6OnNoYXJlZCgp
LmlzU2VwYXJhdGVQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBbW3NlbGYga2V5V2luZG93XSBh
Y2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07CisgICAgCisgICAgV2ViS2l0OjpXZWJQYWdl
KiBwYWdlID0gV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5mb2N1c2VkV2ViUGFnZSgpOwor
ICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1v
dGVPYmplY3QoKSBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07Cit9CisKK0BlbmQKSW5k
ZXg6IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCShyZXZpc2lvbiA4MDYxMCkKKysrIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw4IEBACiAgICAgV2ViUGFnZSogd2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQpIGNvbnN0OwogICAgIHZvaWQgY3JlYXRlV2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHJlbW92ZVdl
YlBhZ2UodWludDY0X3QgcGFnZUlEKTsKLQorICAgIFdlYlBhZ2UqIGZvY3VzZWRXZWJQYWdlKCkg
Y29uc3Q7CisgICAgCiAgICAgSW5qZWN0ZWRCdW5kbGUqIGluamVjdGVkQnVuZGxlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmplY3RlZEJ1bmRsZS5nZXQoKTsgfQogCiAgICAgYm9vbCBpc1NlcGFyYXRl
UHJvY2VzcygpIGNvbnN0OwpJbmRleDogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9BY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCShyZXZpc2lvbiA4MDYxMCkKKysrIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE4Niw3ICsxODYsNyBAQAogCiAtIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJ
RWxlbWVudCAKIHsKLSAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVzY2VuZGFu
dChzZWxmKTsKKyAgICByZXR1cm4gW1tzZWxmIGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBl
cl0gYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwogfQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85206</attachid>
            <date>2011-03-09 11:39:55 -0800</date>
            <delta_ts>2011-03-09 15:53:25 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>9400</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjU1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMtMDkgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTogVm9pY2VPdmVyIGZv
Y3VzIG5vIGxvbmdlciBmb2xsb3dzIGtleWJvYXJkIGZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk1OQorCisgICAgICAgIE5TQXBwbGljYXRp
b24gaGFzIHRvIHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IHdpdGhpbiB0aGUgYXBwIGluIG9y
ZGVyCisgICAgICAgIGZvciBOU0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQoKSB0byB3
b3JrLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICByZWxpZXMgb24ga2V5V2lu
ZG93LiBDb25zZXF1ZW50bHksIGluIFdLMiwgdGhlIFdlYlByb2Nlc3MgbXVzdCBvdmVycmlkZSB0
aGF0IG1ldGhvZAorICAgICAgICB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGZvY3VzZWQgZWxl
bWVudCB3aXRoaW4gdGhlIFdlYlByb2Nlc3MsIHNpbmNlCisgICAgICAgIHRoZXJlIGlzIG5vIGtl
eVdpbmRvdy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZvY3VzZWRXZWJQYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9O
U0FwcGxpY2F0aW9uT3ZlcnJpZGUubW06IEFkZGVkLgorICAgICAgICAoLVtOU0FwcGxpY2F0aW9u
IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CisKIDIwMTEtMDMtMDkgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNz
b24uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA4MDY1NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIzNiw3IEBA
CiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkRBRDEyNzhDNUIy
MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWFjLm1tICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRG
MDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAv
KiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovOyB9OwogCQkyOUNENTVBQjEyOEUyOTRG
MDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUg
LyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07CisJCTI5Q0RCNkY5MTMyNkU2
Q0MwMDIzODI4RCAvKiBOU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNEQjZGNzEzMjZFMDBCMDAyMzgyOEQgLyog
TlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tICovOyB9OwogCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMzMDkzNDQ4
MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ0MTMxNUI5MjIwMDk3
QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMzMwOTM0NDkxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NTEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKQEAgLTEwNzcsNiArMTA3OCw3IEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMy
QiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5
MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOUNEQjZGNzEzMjZFMDBCMDAy
MzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZp
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg2MSw2ICsxODYzLDcgQEAKIAkJCQlCQzMwNjVDMzEyNTkyRjg5MDBFNzEyNzggLyogV2Vi
UHJvY2Vzc01hYy5tbSAqLywKIAkJCQlFMUJCMTY4ODEzMjAxOEJBMDBGNDk0MzEgLyogRnVsbEtl
eWJvYXJkQWNjZXNzV2F0Y2hlci5oICovLAogCQkJCUUxQkIxNjg5MTMyMDE4QkEwMEY0OTQzMSAv
KiBGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tICovLAorCQkJCTI5Q0RCNkY3MTMyNkUwMEIw
MDIzODI4RCAvKiBOU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MDU5LDYgKzQwNjIsNyBAQAog
CQkJCUJDRTgxRDk4MTMxQUUwMjEwMDI0MTkxMCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxQkIxNkE1MTMyMDFCOUIwMEY0OTQzMSAvKiBGdWxsS2V5Ym9h
cmRBY2Nlc3NXYXRjaGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzNBQTEwNjYxMzFGMDYwMDAw
RDRBNTc1IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyOUNEQjZGOTEzMjZFNkNDMDAyMzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gODA2NTUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTMsNiArNDUzLDE2IEBACiAgICAgfTsKIH0KIAorV2ViUGFnZSogV2ViUHJvY2Vzczo6Zm9jdXNl
ZFdlYlBhZ2UoKSBjb25zdAoreworICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZT4gPiBwYWdlczsK
KyAgICBjb3B5VmFsdWVzVG9WZWN0b3IobV9wYWdlTWFwLCBwYWdlcyk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBwYWdlcy5zaXplKCk7ICsraSkKKyAgICAgICAgaWYgKHBhZ2VzW2ldLT53
aW5kb3dJc0ZvY3VzZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdlc1tpXS5nZXQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKyAgICAKIFdlYlBhZ2UqIFdlYlByb2Nlc3M6OndlYlBhZ2UodWludDY0
X3QgcGFnZUlEKSBjb25zdAogewogICAgIHJldHVybiBtX3BhZ2VNYXAuZ2V0KHBhZ2VJRCkuZ2V0
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3Zl
cnJpZGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvTlNB
cHBsaWNhdGlvbk92ZXJyaWRlLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorCitAaW1wbGVtZW50YXRpb24gTlNBcHBsaWNhdGlvbiAoTlNB
cHBsaWNhdGlvbk92ZXJyaWRlKQorCisvLyBXaGVuIHJ1bm5pbmcgaW4gdGhlIFdlYlByb2Nlc3Ms
IHRoZSBkZWZhdWx0IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50IHdpbGwgCisvLyByZXR1
cm4gbmlsIGJlY2F1c2UgdGhlcmUncyBubyBrZXlXaW5kb3cuIFRoYXQgY2FzZSBuZWVkcyB0byBi
ZSBoYW5kbGVkIGJ5IGFza2luZworLy8gdGhlIGZvY3VzZWQgcGFnZSBmb3IgaXQncyBmb2N1c2Vk
IFVJIGVsZW1lbnQuCistIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudAoreworICAg
IGlmICghV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5pc1NlcGFyYXRlUHJvY2VzcygpKQor
ICAgICAgICByZXR1cm4gW1tzZWxmIGtleVdpbmRvd10gYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVs
ZW1lbnRdOworICAgIAorICAgIFdlYktpdDo6V2ViUGFnZSogcGFnZSA9IFdlYktpdDo6V2ViUHJv
Y2Vzczo6c2hhcmVkKCkuZm9jdXNlZFdlYlBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwgIXBhZ2Ut
PmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisg
ICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0
eUZvY3VzZWRVSUVsZW1lbnRdOworfQorCitAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gODA2NTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsOCBAQAogICAg
IFdlYlBhZ2UqIHdlYlBhZ2UodWludDY0X3QgcGFnZUlEKSBjb25zdDsKICAgICB2b2lkIGNyZWF0
ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CiAgICAgdm9pZCByZW1vdmVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCk7Ci0KKyAgICBXZWJQ
YWdlKiBmb2N1c2VkV2ViUGFnZSgpIGNvbnN0OworICAgIAogICAgIEluamVjdGVkQnVuZGxlKiBp
bmplY3RlZEJ1bmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRCdW5kbGUuZ2V0KCk7IH0K
IAogICAgIGJvb2wgaXNTZXBhcmF0ZVByb2Nlc3MoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9BY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQkocmV2aXNpb24gODA2NTUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcgQEAKIAogLSAoaWQpYWNjZXNzaWJpbGl0
eUZvY3VzZWRVSUVsZW1lbnQgCiB7Ci0gICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVuaWdub3Jl
ZERlc2NlbmRhbnQoc2VsZik7CisgICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3NpYmlsaXR5Um9vdE9i
amVjdFdyYXBwZXJdIGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XTsKIH0KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85250</attachid>
            <date>2011-03-09 15:53:25 -0800</date>
            <delta_ts>2011-03-10 16:17:19 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>9427</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjU5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMtMDkgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTogVm9pY2VPdmVyIGZv
Y3VzIG5vIGxvbmdlciBmb2xsb3dzIGtleWJvYXJkIGZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk1OQorCisgICAgICAgIE5TQXBwbGljYXRp
b24gaGFzIHRvIHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IHdpdGhpbiB0aGUgYXBwIGluIG9y
ZGVyCisgICAgICAgIGZvciBOU0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQoKSB0byB3
b3JrLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICByZWxpZXMgb24ga2V5V2lu
ZG93LiBDb25zZXF1ZW50bHksIGluIFdLMiwgdGhlIFdlYlByb2Nlc3MgbXVzdCBvdmVycmlkZSB0
aGF0IG1ldGhvZAorICAgICAgICB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGZvY3VzZWQgZWxl
bWVudCB3aXRoaW4gdGhlIFdlYlByb2Nlc3MsIHNpbmNlCisgICAgICAgIHRoZXJlIGlzIG5vIGtl
eVdpbmRvdy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZvY3VzZWRXZWJQYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9O
U0FwcGxpY2F0aW9uT3ZlcnJpZGUubW06IEFkZGVkLgorICAgICAgICAoLVtOU0FwcGxpY2F0aW9u
IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CisKIDIwMTEtMDMtMDkgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNz
b24uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA4MDY1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIzNiw3IEBA
CiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkRBRDEyNzhDNUIy
MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWFjLm1tICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRG
MDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAv
KiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovOyB9OwogCQkyOUNENTVBQjEyOEUyOTRG
MDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUg
LyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07CisJCTI5Q0RCNkY5MTMyNkU2
Q0MwMDIzODI4RCAvKiBOU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNEQjZGNzEzMjZFMDBCMDAyMzgyOEQgLyog
TlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tICovOyB9OwogCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMzMDkzNDQ4
MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ0MTMxNUI5MjIwMDk3
QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMzMwOTM0NDkxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NTEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKQEAgLTEwNzcsNiArMTA3OCw3IEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMy
QiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5
MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOUNEQjZGNzEzMjZFMDBCMDAy
MzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZp
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTg2MSw2ICsxODYzLDcgQEAKIAkJCQlCQzMwNjVDMzEyNTkyRjg5MDBFNzEyNzggLyogV2Vi
UHJvY2Vzc01hYy5tbSAqLywKIAkJCQlFMUJCMTY4ODEzMjAxOEJBMDBGNDk0MzEgLyogRnVsbEtl
eWJvYXJkQWNjZXNzV2F0Y2hlci5oICovLAogCQkJCUUxQkIxNjg5MTMyMDE4QkEwMEY0OTQzMSAv
KiBGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tICovLAorCQkJCTI5Q0RCNkY3MTMyNkUwMEIw
MDIzODI4RCAvKiBOU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MDU5LDYgKzQwNjIsNyBAQAog
CQkJCUJDRTgxRDk4MTMxQUUwMjEwMDI0MTkxMCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxQkIxNkE1MTMyMDFCOUIwMEY0OTQzMSAvKiBGdWxsS2V5Ym9h
cmRBY2Nlc3NXYXRjaGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzNBQTEwNjYxMzFGMDYwMDAw
RDRBNTc1IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyOUNEQjZGOTEzMjZFNkNDMDAyMzgyOEQgLyogTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gODA2NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTMsNiArNDUzLDE4IEBACiAgICAgfTsKIH0KIAorV2ViUGFnZSogV2ViUHJvY2Vzczo6Zm9jdXNl
ZFdlYlBhZ2UoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBWZWN0b3I8UmVmUHRy
PFdlYlBhZ2U+ID4gcGFnZXM7CisgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcGFnZU1hcCwgcGFn
ZXMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFnZXMuc2l6ZSgpOyArK2kpCisgICAg
ICAgIGlmIChwYWdlc1tpXS0+d2luZG93SXNGb2N1c2VkKCkpCisgICAgICAgICAgICByZXR1cm4g
cGFnZXNbaV0uZ2V0KCk7CisjZW5kaWYKKyAgICByZXR1cm4gMDsKK30KKyAgICAKIFdlYlBhZ2Uq
IFdlYlByb2Nlc3M6OndlYlBhZ2UodWludDY0X3QgcGFnZUlEKSBjb25zdAogewogICAgIHJldHVy
biBtX3BhZ2VNYXAuZ2V0KHBhZ2VJRCkuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL21hYy9OU0FwcGxpY2F0aW9uT3ZlcnJpZGUubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvTlNBcHBsaWNhdGlvbk92ZXJyaWRlLm1tCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvTlNBcHBsaWNhdGlvbk92ZXJy
aWRlLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCIK
KyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCitAaW1wbGVt
ZW50YXRpb24gTlNBcHBsaWNhdGlvbiAoTlNBcHBsaWNhdGlvbk92ZXJyaWRlKQorCisvLyBXaGVu
IHJ1bm5pbmcgaW4gdGhlIFdlYlByb2Nlc3MsIHRoZSBkZWZhdWx0IGFjY2Vzc2liaWxpdHlGb2N1
c2VkVUlFbGVtZW50IHdpbGwgCisvLyByZXR1cm4gbmlsIGJlY2F1c2UgdGhlcmUncyBubyBrZXlX
aW5kb3cuIFRoYXQgY2FzZSBuZWVkcyB0byBiZSBoYW5kbGVkIGJ5IGFza2luZworLy8gdGhlIGZv
Y3VzZWQgcGFnZSBmb3IgaXQncyBmb2N1c2VkIFVJIGVsZW1lbnQuCistIChpZClhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudAoreworICAgIGlmICghV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5pc1NlcGFyYXRlUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gW1tzZWxmIGtleVdpbmRv
d10gYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOworICAgIAorICAgIFdlYktpdDo6V2Vi
UGFnZSogcGFnZSA9IFdlYktpdDo6V2ViUHJvY2Vzczo6c2hhcmVkKCkuZm9jdXNlZFdlYlBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5
UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOworfQorCitAZW5k
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gODA2
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtNzYsNyArNzYsOCBAQAogICAgIFdlYlBhZ2UqIHdlYlBhZ2UodWludDY0X3QgcGFn
ZUlEKSBjb25zdDsKICAgICB2b2lkIGNyZWF0ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCByZW1vdmVXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCk7Ci0KKyAgICBXZWJQYWdlKiBmb2N1c2VkV2ViUGFnZSgpIGNvbnN0Owor
ICAgIAogICAgIEluamVjdGVkQnVuZGxlKiBpbmplY3RlZEJ1bmRsZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5qZWN0ZWRCdW5kbGUuZ2V0KCk7IH0KIAogICAgIGJvb2wgaXNTZXBhcmF0ZVByb2Nlc3Mo
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9BY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQkocmV2
aXNpb24gODA2NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2
LDcgQEAKIAogLSAoaWQpYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgCiB7Ci0gICAgcmV0
dXJuIE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZERlc2NlbmRhbnQoc2VsZik7CisgICAgcmV0dXJu
IFtbc2VsZiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXJdIGFjY2Vzc2liaWxpdHlGb2N1
c2VkVUlFbGVtZW50XTsKIH0KIAogCg==
</data>
<flag name="review"
          id="77350"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85405</attachid>
            <date>2011-03-10 16:17:19 -0800</date>
            <delta_ts>2011-03-10 16:29:44 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6532</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNzgzKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMtMTAgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTogVm9pY2VPdmVyIGZv
Y3VzIG5vIGxvbmdlciBmb2xsb3dzIGtleWJvYXJkIGZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk1OQorCisgICAgICAgIE5TQXBwbGljYXRp
b24gaGFzIHRvIHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IHdpdGhpbiB0aGUgYXBwIGluIG9y
ZGVyCisgICAgICAgIGZvciBOU0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQoKSB0byB3
b3JrLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICByZWxpZXMgb24ga2V5V2lu
ZG93LiBDb25zZXF1ZW50bHksIGluIFdLMiwgdGhlIFdlYlByb2Nlc3MgbXVzdCBvdmVycmlkZSB0
aGF0IG1ldGhvZAorICAgICAgICB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGZvY3VzZWQgZWxl
bWVudCB3aXRoaW4gdGhlIFdlYlByb2Nlc3MsIHNpbmNlCisgICAgICAgIHRoZXJlIGlzIG5vIGtl
eVdpbmRvdy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZvY3VzZWRXZWJQYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9O
U0FwcGxpY2F0aW9uT3ZlcnJpZGUubW06IEFkZGVkLgorICAgICAgICAoLVtOU0FwcGxpY2F0aW9u
IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CisKIDIwMTEtMDMtMTAgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDgw
NzM1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUzLDYgKzQ1MywxNyBAQAogICAgIH07CiB9CiAKK1dlYlBhZ2UqIFdlYlBy
b2Nlc3M6OmZvY3VzZWRXZWJQYWdlKCkgY29uc3QKK3sgICAgCisgICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPFdlYlBhZ2U+ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGFnZU1hcC5lbmQo
KTsKKyAgICBmb3IgKEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlPiA+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IG1fcGFnZU1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgV2ViUGFnZSogcGFnZSA9ICgqaXQpLnNlY29uZC5nZXQoKTsKKyAgICAgICAgaWYgKHBhZ2Ut
PndpbmRvd0lzRm9jdXNlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHBhZ2U7CisgICAgfQorICAg
IHJldHVybiAwOworfQorICAgIAogV2ViUGFnZSogV2ViUHJvY2Vzczo6d2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZU1hcC5nZXQocGFnZUlEKS5nZXQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01h
Yy5tbQkocmV2aXNpb24gODA3MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbXBv
cnQgIkZ1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKICNpbXBvcnQgIlNhbmRib3hFeHRlbnNp
b24uaCIKKyNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZUNhY2hlLmg+CkBAIC0zNyw2ICszOCw3IEBACiAjaW1wb3J0IDxtYWNoL2hvc3Rf
aW5mby5oPgogI2ltcG9ydCA8bWFjaC9tYWNoLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3Iu
aD4KKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogCiAjaWYgRU5BQkxFKFdFQl9QUk9DRVNTX1NB
TkRCT1gpCiAjaW1wb3J0IDxzYW5kYm94Lmg+CkBAIC0xNzEsNiArMTczLDE1IEBACiAjZW5kaWYK
IH0KIAorc3RhdGljIGlkIE5TQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVu
dChOU0FwcGxpY2F0aW9uKiwgU0VMKQoreworICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5mb2N1c2VkV2ViUGFnZSgpOworICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNj
ZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBbcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGFjY2Vzc2liaWxpdHlGb2N1c2Vk
VUlFbGVtZW50XTsKK30KKyAgICAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQogewogICAgIGluaXRpYWxpemVTYW5kYm94KHBh
cmFtZXRlcnMpOwpAQCAtMTkxLDYgKzIwMiwxMSBAQAogICAgIH0KIAogICAgIG1fY29tcG9zaXRp
bmdSZW5kZXJTZXJ2ZXJQb3J0ID0gcGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9y
dC5wb3J0KCk7CisKKyAgICAvLyBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudCBpbiBOU0Fw
cGxpY2F0aW9uIGRlZmF1bHRzIHRvIHVzZSB0aGUga2V5V2luZG93LiBTaW5jZSB0aGVyZSdzCisg
ICAgLy8gbm8gd2luZG93IGluIFdLMiwgTlNBcHBsaWNhdGlvbiBuZWVkcyB0byB1c2UgdGhlIGZv
Y3VzZWQgcGFnZSdzIGZvY3VzZWQgZWxlbWVudC4KKyAgICBNZXRob2QgbWV0aG9kVG9QYXRjaCA9
IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU0FwcGxpY2F0aW9uIGNsYXNzXSwgQHNlbGVjdG9y
KGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KSk7CisgICAgbWV0aG9kX3NldEltcGxlbWVu
dGF0aW9uKG1ldGhvZFRvUGF0Y2gsIChJTVApTlNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlGb2N1
c2VkVUlFbGVtZW50KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gODA3
MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtNzYsNyArNzYsOCBAQAogICAgIFdlYlBhZ2UqIHdlYlBhZ2UodWludDY0X3QgcGFn
ZUlEKSBjb25zdDsKICAgICB2b2lkIGNyZWF0ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCByZW1vdmVXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCk7Ci0KKyAgICBXZWJQYWdlKiBmb2N1c2VkV2ViUGFnZSgpIGNvbnN0Owor
ICAgIAogICAgIEluamVjdGVkQnVuZGxlKiBpbmplY3RlZEJ1bmRsZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5qZWN0ZWRCdW5kbGUuZ2V0KCk7IH0KIAogICAgIGJvb2wgaXNTZXBhcmF0ZVByb2Nlc3Mo
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAJKHJldmlzaW9uIDgwNzM1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUzLDEzICsxNzUzLDEzIEBA
CiAgICAgICAgICgqaXQpLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUlu
U2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogfQogCisj
ZW5kaWYKKyAgICAKIGJvb2wgV2ViUGFnZTo6d2luZG93SXNGb2N1c2VkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKTsKIH0KLQotI2Vu
ZGlmCi0KKyAgICAKIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYUxlZ2FjeT4oKSkgewpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9BY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCShyZXZpc2lvbiA4MDczNSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsNyBAQAogCiAtIChpZClhY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudCAKIHsKLSAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5p
Z25vcmVkRGVzY2VuZGFudChzZWxmKTsKKyAgICByZXR1cm4gW1tzZWxmIGFjY2Vzc2liaWxpdHlS
b290T2JqZWN0V3JhcHBlcl0gYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwogfQogCiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2
aXNpb24gODA3MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsMTIgKzIzNCwxMiBAQAogICAgIGJvb2wgd2luZG93
SXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dJc1Zpc2libGU7IH0KICAgICBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMoKSBjb25z
dCB7IHJldHVybiBtX3dpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlczsgfQogICAgIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdCB7
IHJldHVybiBtX3ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXM7IH0KLSAgICBib29sIHdpbmRv
d0lzRm9jdXNlZCgpIGNvbnN0OwogICAgIGJvb2wgaW50ZXJjZXB0RWRpdGluZ0tleWJvYXJkRXZl
bnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCosIGJvb2wpOwogI2VsaWYgUExBVEZPUk0oV0lOKQog
ICAgIEhXTkQgbmF0aXZlV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVXaW5kb3c7IH0K
ICNlbmRpZgogCisgICAgYm9vbCB3aW5kb3dJc0ZvY3VzZWQoKSBjb25zdDsKICAgICB2b2lkIGlu
c3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5Pik7CiAgICAgdm9pZCB1bmlu
c3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSopOwogICAgIGJvb2wgaGFzUGFnZU92ZXJsYXko
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5OyB9Cg==
</data>
<flag name="review"
          id="77526"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>