<?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>62653</bug_id>
          
          <creation_ts>2011-06-14 11:14:23 -0700</creation_ts>
          <short_desc>[V8][Chromium] Make StringCache in V8 bindings per-isolate</short_desc>
          <delta_ts>2011-06-21 16:09:33 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>63068</dependson>
          <blocked>61016</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dmitry Lomov">dslomov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>antonm</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>dslomov</cc>
    
    <cc>levin</cc>
    
    <cc>pfeldman</cc>
    
    <cc>vitalyr</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>420588</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-14 11:14:23 -0700</bug_when>
    <thetext>This is another prerequisite to moving dedicated webworkers in-process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420638</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-14 12:03:11 -0700</bug_when>
    <thetext>Did you answer antonm&apos;s questions from the last patch?  It&apos;s important to make sure we&apos;re not regressing benchmarks with this work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420703</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-14 13:38:29 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Did you answer antonm&apos;s questions from the last patch? 
I think I did. 

&gt; It&apos;s important to make sure we&apos;re not regressing benchmarks with this work.
Yes, I am working on getting perf numbers from different platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420712</commentid>
    <comment_count>3</comment_count>
      <attachid>97163</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-14 13:54:02 -0700</bug_when>
    <thetext>Created attachment 97163
The fix moves StringCache to V8BindingPerIsolateData

Here is a result of perf comparison on MacOS:
http://dromaeo.com/?dom?id=142223,142275
Overall impact on dromaeo DOM benchmarks is limited (&lt;1%). 

I am working on getting Windows numbers as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420714</commentid>
    <comment_count>4</comment_count>
      <attachid>97164</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-14 14:00:51 -0700</bug_when>
    <thetext>Created attachment 97164
Quick self-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420715</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-14 14:03:28 -0700</bug_when>
    <thetext>&gt; &gt; Did you answer antonm&apos;s questions from the last patch? 
&gt; I think I did. 

Yep!  I think I just read my email out of order.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420716</commentid>
    <comment_count>6</comment_count>
      <attachid>97164</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-14 14:04:48 -0700</bug_when>
    <thetext>Comment on attachment 97164
Quick self-review

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

&gt; Source/WebCore/bindings/v8/V8Binding.cpp:507
&gt; +            data-&gt;lastStringImpl() = stringImpl;
&gt; +            data-&gt;lastV8String() = handle;

Can we use setters for this instead?  This code looks strange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420851</commentid>
    <comment_count>7</comment_count>
      <attachid>97193</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-14 16:49:05 -0700</bug_when>
    <thetext>Created attachment 97193
CR feedback addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420855</commentid>
    <comment_count>8</comment_count>
      <attachid>97195</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-14 16:51:18 -0700</bug_when>
    <thetext>Created attachment 97195
CR feedback addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421276</commentid>
    <comment_count>9</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-06-15 07:51:55 -0700</bug_when>
    <thetext>May the whole logic of string caching be moved into V8BindingPerIsolateData?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421389</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-15 09:48:52 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; May the whole logic of string caching be moved into V8BindingPerIsolateData?

What are the benefits of doing so?

From the code organization standpoint, there are other caches in V8 bindings (DOMStore, NPObjects, per-binding function templates) that will need similar data in V8BindingPerIsolateData. I do not think should all move into V8BindingPerIsolateData.

What we could do though, is to have a separate class encapsulating string caching logic (it would combine StringCache, lastV8String and lastStringImpl; V8BindingPerIsolate data would contain an instance of this class); and do the similar thing for the other caches (a class for per-binding function template encapsulating rawTemplateMap and templateMap &amp;c). 

But I&apos;d prefer this refactoring to be a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421393</commentid>
    <comment_count>11</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-06-15 09:54:55 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; May the whole logic of string caching be moved into V8BindingPerIsolateData?
&gt; 
&gt; What are the benefits of doing so?
&gt; 
&gt; From the code organization standpoint, there are other caches in V8 bindings (DOMStore, NPObjects, per-binding function templates) that will need similar data in V8BindingPerIsolateData. I do not think should all move into V8BindingPerIsolateData.
&gt; 
&gt; What we could do though, is to have a separate class encapsulating string caching logic (it would combine StringCache, lastV8String and lastStringImpl; V8BindingPerIsolate data would contain an instance of this class); and do the similar thing for the other caches (a class for per-binding function template encapsulating rawTemplateMap and templateMap &amp;c). 
&gt; 
&gt; But I&apos;d prefer this refactoring to be a separate patch.

The reason is simple: there are many parts which never were supposed to be public (roughly, nothing supposed to be public).  Now everything is.  And sooner or later someone will try to abuse this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421407</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-15 10:08:53 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; May the whole logic of string caching be moved into V8BindingPerIsolateData?
&gt; &gt; 
&gt; &gt; What are the benefits of doing so?
&gt; &gt; 
&gt; &gt; From the code organization standpoint, there are other caches in V8 bindings (DOMStore, NPObjects, per-binding function templates) that will need similar data in V8BindingPerIsolateData. I do not think should all move into V8BindingPerIsolateData.
&gt; &gt; 
&gt; &gt; What we could do though, is to have a separate class encapsulating string caching logic (it would combine StringCache, lastV8String and lastStringImpl; V8BindingPerIsolate data would contain an instance of this class); and do the similar thing for the other caches (a class for per-binding function template encapsulating rawTemplateMap and templateMap &amp;c). 
&gt; &gt; 
&gt; &gt; But I&apos;d prefer this refactoring to be a separate patch.
&gt; 
&gt; The reason is simple: there are many parts which never were supposed to be public (roughly, nothing supposed to be public).  Now everything is.  And sooner or later someone will try to abuse this stuff.

Right, but this line has been blurred already even before my patch (lastStringImpl and lastV8String were publicly visible). 

I am afraid we will have to hoist a bunch of static locals up to V8BindingPerIsolateData anyway. 

Let me extract a separate class out of StringCache, lastV8String and lastStringImpl though - I think that might address your concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421529</commentid>
    <comment_count>13</comment_count>
      <attachid>97351</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-15 13:10:21 -0700</bug_when>
    <thetext>Created attachment 97351
Moved StringImpl-&gt;v8 String cache into a separate class

This addresses &quot;private implementation now public&quot; concerns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421920</commentid>
    <comment_count>14</comment_count>
      <attachid>97351</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-06-16 05:52:19 -0700</bug_when>
    <thetext>Comment on attachment 97351
Moved StringImpl-&gt;v8 String cache into a separate class

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

LGTM

You should probably remove enableStringImplCache and related stuff now, when cache is accessible from any thread.

&gt; Source/WebCore/bindings/v8/V8Binding.h:57
&gt; +        inline v8::Local&lt;v8::String&gt; v8ExternalString(StringImpl* stringImpl) 

I don&apos;t think you need inline here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421922</commentid>
    <comment_count>15</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-06-16 05:56:51 -0700</bug_when>
    <thetext>Overall, I still have concerns about approach taken.

Moving all this stuff makes things more complex.  And most probably slower---even if each separate patch makes as slower by ~1% which is indistinguishable from noise, we may die of death of million cuts.

I would really prefer if there was a separate branch with the full implementation and if overall complexity and perf is good enough, we&apos;ll start to bring the changes to WebCore.

I would also appreciate more thorough discussion of different approaches, their benefits and drawbacks.  For example, Vitaly (p.c.) noted that we probably do not need to make all FunctionTenplate into per-isolate data as the set of ones used in Workers vs. ones in DOM pages has minimal (if any) intersection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421957</commentid>
    <comment_count>16</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-16 08:06:01 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Overall, I still have concerns about approach taken.
&gt;   
&gt; And most probably slower---even if each separate patch makes as slower by ~1% which is indistinguishable from noise, we may die of death of million cuts.

I am cautiously optimistic on perf here. Since all we introduce here are TLS lookups for isolates, if we see a lot of those on hot paths, we hopefully be able to fetch those from v8::Object and other V8 entities, as I suggested in the other e-mail. The current perf results do not warrant that though - and this patch is Strings - by far our hottest.

&gt; 
&gt; I would really prefer if there was a separate branch with the full implementation and if overall complexity and perf is good enough, we&apos;ll start to bring the changes to WebCore.

I have been thinking about this, and my feeling is that the changes I make here or in other patches are not complex enough to warrant another branch - what do people think? 

I have made a preliminary &quot;spear-headed&quot; patch for isolates as well:
https://bug-61016-attachments.webkit.org/attachment.cgi?id=95694
(I CC&apos;ed you on 61016 as well). It does not hoist much into V8BindingPerIsolateData, but it disables StringCache, which has bad perf implications.

&gt; 
&gt; I would also appreciate more thorough discussion of different approaches, their benefits and drawbacks.  For example, Vitaly (p.c.) noted that we probably do not need to make all FunctionTenplate into per-isolate data as the set of ones used in Workers vs. ones in DOM pages has minimal (if any) intersection.

So what is the concern with FunctionTemplates?
If it is about perf, I didn&apos;t observe any change. FunctionTemplates are lazily created, so only the those that are actually used in the isolate will be created.
If it is about the design, I think what has been done is the most simple and straightforward thing - I actually do not see any viable alternatives - but maybe I am missing something?

Regarding StringCache, I actually do not see any viable solution other that what has been done here, or disabling it entirely. What do you think?

&gt; Moving all this stuff makes things more complex.

Well, &quot;complexity&quot; is hard to define precisely.

I think we are on a very straightforward trajectory here for supporting multi-threaded access to multiple instances of V8 in WebCore.  V8BindingPerIsolateData is a natural extension of V8::Isolate for binding-specific data. Hoisting things out of statics is a very natural thing we have to do to support multi-threading. 

If we look from the point of view of multithreading, static data and globals scattered all over the code _is_ complexity, and hoisting it all up in a single state object is _reducing_ complexity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422878</commentid>
    <comment_count>17</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-17 14:14:20 -0700</bug_when>
    <thetext>Some extra perf testing results: the patch makes no difference in Dromaeo/Dom performance on Linux 
http://dromaeo.com/?id=142530,142531

(Linux is the only platform with unoptimized TLS access in v8::Isolate::GetCurrent())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422906</commentid>
    <comment_count>18</comment_count>
      <attachid>97657</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-17 15:18:11 -0700</bug_when>
    <thetext>Created attachment 97657
CR feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422912</commentid>
    <comment_count>19</comment_count>
      <attachid>97657</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 15:31:04 -0700</bug_when>
    <thetext>Comment on attachment 97657
CR feedback

Attachment 97657 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8877743</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422917</commentid>
    <comment_count>20</comment_count>
      <attachid>97660</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-17 15:37:56 -0700</bug_when>
    <thetext>Created attachment 97660
Build fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423038</commentid>
    <comment_count>21</comment_count>
      <attachid>97660</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 21:42:08 -0700</bug_when>
    <thetext>Comment on attachment 97660
Build fixed

Clearing flags on attachment: 97660

Committed r89185: &lt;http://trac.webkit.org/changeset/89185&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423039</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 21:42:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424490</commentid>
    <comment_count>23</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 09:09:06 -0700</bug_when>
    <thetext>Reopening bug: patch caused breakage in Web Inspector (https://bugs.webkit.org/show_bug.cgi?id=62977)

Will combine the patches and upload for review.

http://codereview.chromium.org/7215005/ tracks adding chromium unit tests for 62977.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424639</commentid>
    <comment_count>24</comment_count>
      <attachid>98033</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 11:56:17 -0700</bug_when>
    <thetext>Created attachment 98033
New patch, with eager initialization of V8BindingPerIsolateData in WebKit::initialize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424641</commentid>
    <comment_count>25</comment_count>
      <attachid>98033</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 11:56:51 -0700</bug_when>
    <thetext>Comment on attachment 98033
New patch, with eager initialization of V8BindingPerIsolateData in WebKit::initialize

No cq - waiting for trybots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424643</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 11:58:34 -0700</bug_when>
    <thetext>Attachment 98033 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/src/WebKit.cpp:40:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424673</commentid>
    <comment_count>27</comment_count>
      <attachid>98043</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 12:42:36 -0700</bug_when>
    <thetext>Created attachment 98043
Style nit fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424690</commentid>
    <comment_count>28</comment_count>
      <attachid>98047</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 13:03:08 -0700</bug_when>
    <thetext>Created attachment 98047
Fixing a trybot issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424695</commentid>
    <comment_count>29</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-21 13:11:18 -0700</bug_when>
    <thetext>Is the navigation issue fixed now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424699</commentid>
    <comment_count>30</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 13:21:19 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Is the navigation issue fixed now?

Yes (see changes in WebKit::initialize) - I validated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424718</commentid>
    <comment_count>31</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-21 13:46:17 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; Is the navigation issue fixed now?
&gt; 
&gt; Yes (see changes in WebKit::initialize) - I validated.

Ok. The reason I ask is that I briefly applied attachment 98033 to my release build earlier today and it was not fixing the navigation issue. It was not failing for the about:blank case though. My scenario was:

1. Navigate to google.com
2. Open DevTools
3. Navigate to webkit.org

Expected: things work fine
Actual: First time you hit Enter to navigate, navigation does not occur. Second time you hit navigate, devtools collapses.

Please double check this scenario prior to landing. I do realize that it is a cross-renderer navigation and that it goes through the about:blank state, so your fix should apply. But it did not do the job for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424729</commentid>
    <comment_count>32</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 13:56:24 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (In reply to comment #30)
&gt; &gt; (In reply to comment #29)
&gt; &gt; &gt; Is the navigation issue fixed now?
&gt; &gt; 
&gt; &gt; Yes (see changes in WebKit::initialize) - I validated.
&gt; 
&gt; Ok. The reason I ask is that I briefly applied attachment 98033 [details] to my release build earlier today and it was not fixing the navigation issue. It was not failing for the about:blank case though. My scenario was:
&gt; 
&gt; 1. Navigate to google.com
&gt; 2. Open DevTools
&gt; 3. Navigate to webkit.org
&gt; 
&gt; Expected: things work fine
&gt; Actual: First time you hit Enter to navigate, navigation does not occur. Second time you hit navigate, devtools collapses.
&gt; 
&gt; Please double check this scenario prior to landing. I do realize that it is a cross-renderer navigation and that it goes through the about:blank state, so your fix should apply. But it did not do the job for me.

Just validated this scenario again - all looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424740</commentid>
    <comment_count>33</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-21 14:05:25 -0700</bug_when>
    <thetext>&gt; Just validated this scenario again - all looks good.

Great, thanks! Leaving it to Vitaly / Yury / Adam / Rest for formal review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424748</commentid>
    <comment_count>34</comment_count>
      <attachid>98047</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-21 14:11:10 -0700</bug_when>
    <thetext>Comment on attachment 98047
Fixing a trybot issue

Then again, I liked this patch the first time too.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424779</commentid>
    <comment_count>35</comment_count>
      <attachid>98047</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-21 15:09:49 -0700</bug_when>
    <thetext>Comment on attachment 98047
Fixing a trybot issue

 chromium trybot is happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424835</commentid>
    <comment_count>36</comment_count>
      <attachid>98047</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 16:09:27 -0700</bug_when>
    <thetext>Comment on attachment 98047
Fixing a trybot issue

Clearing flags on attachment: 98047

Committed r89390: &lt;http://trac.webkit.org/changeset/89390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424836</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 16:09:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97163</attachid>
            <date>2011-06-14 13:54:02 -0700</date>
            <delta_ts>2011-06-14 14:00:51 -0700</delta_ts>
            <desc>The fix moves StringCache to V8BindingPerIsolateData</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>7361</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjgyMDk5Li5kYmZhNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDYtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpsYXN0VjhTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6Omxhc3RTdHJpbmdJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3Vl
KToKKwogMjAxMS0wNi0xMyAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uOWU2MzYyZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcApAQCAtNDg0LDI1ICs0ODQsMjAgQEAgdHlwZWRl
ZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCB2ODo6U3RyaW5nKj4gU3RyaW5nQ2FjaGU7CiAKIHN0YXRp
YyBTdHJpbmdDYWNoZSYgZ2V0U3RyaW5nQ2FjaGUoKQogewotICAgIEFTU0VSVChXVEY6OmlzTWFp
blRocmVhZCgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ0NhY2hlLCBtYWluVGhy
ZWFkU3RyaW5nQ2FjaGUsICgpKTsKLSAgICByZXR1cm4gbWFpblRocmVhZFN0cmluZ0NhY2hlOwor
ICAgIHJldHVybiBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5zdHJpbmdDYWNo
ZSgpOwogfQogCiBzdGF0aWMgdm9pZCBjYWNoZWRTdHJpbmdDYWxsYmFjayh2ODo6UGVyc2lzdGVu
dDx2ODo6VmFsdWU+IHdyYXBwZXIsIHZvaWQqIHBhcmFtZXRlcikKIHsKLSAgICBBU1NFUlQoV1RG
Ojppc01haW5UaHJlYWQoKSk7CiAgICAgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0YXRpY19j
YXN0PFN0cmluZ0ltcGwqPihwYXJhbWV0ZXIpOwotICAgIEFTU0VSVChnZXRTdHJpbmdDYWNoZSgp
LmNvbnRhaW5zKHN0cmluZ0ltcGwpKTsKLSAgICBnZXRTdHJpbmdDYWNoZSgpLnJlbW92ZShzdHJp
bmdJbXBsKTsKKyAgICBTdHJpbmdDYWNoZSYgc3RyaW5nQ2FjaGUgPSBnZXRTdHJpbmdDYWNoZSgp
OworICAgIEFTU0VSVChzdHJpbmdDYWNoZS5jb250YWlucyhzdHJpbmdJbXBsKSk7CisgICAgc3Ry
aW5nQ2FjaGUucmVtb3ZlKHN0cmluZ0ltcGwpOwogICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAg
IHN0cmluZ0ltcGwtPmRlcmVmKCk7CiB9CiAKLVJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0U3RyaW5n
SW1wbCA9IDA7Ci12ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Ci0KLXY4
OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJp
bmdJbXBsKQordjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFY4Qmlu
ZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhLCBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogewogICAg
IGlmICghc3RyaW5nSW1wbC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpF
bXB0eSgpOwpAQCAtNTEwLDEzICs1MDUsMTMgQEAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0
ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpCiAgICAgaWYgKCFzdHJpbmdJ
bXBsQ2FjaGVFbmFibGVkKQogICAgICAgICByZXR1cm4gbWFrZUV4dGVybmFsU3RyaW5nKFN0cmlu
ZyhzdHJpbmdJbXBsKSk7CiAKLSAgICBTdHJpbmdDYWNoZSYgc3RyaW5nQ2FjaGUgPSBnZXRTdHJp
bmdDYWNoZSgpOworICAgIFN0cmluZ0NhY2hlJiBzdHJpbmdDYWNoZSA9IGRhdGEtPnN0cmluZ0Nh
Y2hlKCk7CiAgICAgdjg6OlN0cmluZyogY2FjaGVkVjhTdHJpbmcgPSBzdHJpbmdDYWNoZS5nZXQo
c3RyaW5nSW1wbCk7CiAgICAgaWYgKGNhY2hlZFY4U3RyaW5nKSB7CiAgICAgICAgIHY4OjpQZXJz
aXN0ZW50PHY4OjpTdHJpbmc+IGhhbmRsZShjYWNoZWRWOFN0cmluZyk7CiAgICAgICAgIGlmICgh
aGFuZGxlLklzTmVhckRlYXRoKCkgJiYgIWhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IGxhc3RTdHJpbmdJbXBsID0gc3RyaW5nSW1wbDsKLSAgICAgICAgICAgIGxhc3RWOFN0cmluZyA9
IGhhbmRsZTsKKyAgICAgICAgICAgIGRhdGEtPmxhc3RTdHJpbmdJbXBsKCkgPSBzdHJpbmdJbXBs
OworICAgICAgICAgICAgZGF0YS0+bGFzdFY4U3RyaW5nKCkgPSBoYW5kbGU7CiAgICAgICAgICAg
ICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXcoaGFuZGxlKTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTUzMyw4ICs1MjgsOCBAQCB2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5h
bFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKICAgICB3cmFwcGVyLk1ha2VXZWFr
KHN0cmluZ0ltcGwsIGNhY2hlZFN0cmluZ0NhbGxiYWNrKTsKICAgICBzdHJpbmdDYWNoZS5zZXQo
c3RyaW5nSW1wbCwgKndyYXBwZXIpOwogCi0gICAgbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBs
OwotICAgIGxhc3RWOFN0cmluZyA9IHdyYXBwZXI7CisgICAgZGF0YS0+bGFzdFN0cmluZ0ltcGwo
KSA9IHN0cmluZ0ltcGw7CisgICAgZGF0YS0+bGFzdFY4U3RyaW5nKCkgPSB3cmFwcGVyOwogCiAg
ICAgcmV0dXJuIG5ld1N0cmluZzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmgKaW5kZXggYjNhOTM1Ni4uNzc2NjhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmgKQEAgLTUwLDYgKzUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAg
ICAgdHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8VjhCaW5kaW5nPiBWOEJpbmRpbmdTZWN1cml0eTsK
IAorICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmdJbXBsKiwgdjg6OlN0cmluZyo+IFN0cmluZ0Nh
Y2hlOworCiAgICAgY2xhc3MgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEgewogICAgIHB1YmxpYzoK
ICAgICAgICAgc3RhdGljIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBjcmVhdGUodjg6Oklzb2xh
dGUqKTsKQEAgLTcyLDYgKzc0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1w
bGF0ZU1hcCYgdGVtcGxhdGVNYXAoKSB7IHJldHVybiBtX3RlbXBsYXRlczsgfQogICAgICAgICB2
ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyByZXR1cm4gbV90b1N0
cmluZ05hbWU7IH0KICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+
JiB0b1N0cmluZ1RlbXBsYXRlKCkgeyByZXR1cm4gbV90b1N0cmluZ1RlbXBsYXRlOyB9CisgICAg
ICAgIFN0cmluZ0NhY2hlJiBzdHJpbmdDYWNoZSgpIHsgcmV0dXJuIG1fc3RyaW5nQ2FjaGU7IH0K
KyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4mIGxhc3RWOFN0cmluZygpIHsgcmV0
dXJuIG1fbGFzdFY4U3RyaW5nOyB9CisgICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiYgbGFzdFN0
cmluZ0ltcGwoKSB7IHJldHVybiBtX2xhc3RTdHJpbmdJbXBsOyB9CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBleHBsaWNpdCBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSopOwpA
QCAtODEsNiArODYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1h
cCBtX3RlbXBsYXRlczsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV90b1N0
cmluZ05hbWU7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBt
X3RvU3RyaW5nVGVtcGxhdGU7CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1f
bGFzdFY4U3RyaW5nOworICAgICAgICAvLyBOb3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNh
Y2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5LCBub3QgaWRlbnRpdHkKKyAgICAgICAgLy8gaGVu
Y2UgbGFzdFN0cmluZ0ltcGwgbWlnaHQgYmUgbm90IGEga2V5IG9mIHRoZSBjYWNoZSAoaW4gc2Vu
c2Ugb2YgaWRlbnRpdHkpCisgICAgICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBvbiBh
ZGRpdGlvbi4KKyAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fbGFzdFN0cmluZ0ltcGw7Cisg
ICAgICAgIFN0cmluZ0NhY2hlIG1fc3RyaW5nQ2FjaGU7CiAgICAgfTsKIAogCkBAIC0xMTAsMTIg
KzEyMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBBdG9taWNTdHJpbmcgdjhOb25TdHJp
bmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogICAg
IEF0b21pY1N0cmluZyB2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSk7CiAKLSAgICAvLyBOb3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNh
Y2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5LCBub3QgaWRlbnRpdHkKLSAgICAvLyBoZW5jZSBs
YXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3QgYSBrZXkgb2YgdGhlIGNhY2hlIChpbiBzZW5zZSBv
ZiBpZGVudGl0eSkKLSAgICAvLyBhbmQgaGVuY2UgaXQncyBub3QgcmVmZWQgb24gYWRkaXRpb24u
Ci0gICAgZXh0ZXJuIFJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0U3RyaW5nSW1wbDsKLSAgICBleHRl
cm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbGFzdFY4U3RyaW5nOwotICAgIHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBs
KTsKKyAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coVjhCaW5k
aW5nUGVySXNvbGF0ZURhdGEqLCBTdHJpbmdJbXBsKik7CiAKICAgICAvLyBSZXR1cm4gYSBWOCBl
eHRlcm5hbCBzdHJpbmcgdGhhdCBzaGFyZXMgdGhlIHVuZGVybHlpbmcgYnVmZmVyIHdpdGggdGhl
IGdpdmVuCiAgICAgLy8gV2ViQ29yZSBzdHJpbmcuIFRoZSByZWZlcmVuY2UgY291bnRpbmcgbWVj
aGFuaXNtIGlzIHVzZWQgdG8ga2VlcCB0aGUKQEAgLTEyNiwxMyArMTMyLDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgaWYgKCFzdHJpbmdJbXBsKQogICAgICAgICAgICAgcmV0dXJu
IHY4OjpTdHJpbmc6OkVtcHR5KCk7CiAKLSAgICAgICAgaWYgKGxhc3RTdHJpbmdJbXBsLmdldCgp
ID09IHN0cmluZ0ltcGwpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbGFzdFY4U3RyaW5nLklzTmVh
ckRlYXRoKCkpOwotICAgICAgICAgICAgQVNTRVJUKCFsYXN0VjhTdHJpbmcuSXNFbXB0eSgpKTsK
LSAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhsYXN0VjhTdHJp
bmcpOworICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Bl
cklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgICAgIGlmIChkYXRhLT5sYXN0U3RyaW5nSW1w
bCgpLmdldCgpID09IHN0cmluZ0ltcGwpIHsKKyAgICAgICAgICAgIEFTU0VSVCghZGF0YS0+bGFz
dFY4U3RyaW5nKCkuSXNOZWFyRGVhdGgoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWRhdGEtPmxh
c3RWOFN0cmluZygpLklzRW1wdHkoKSk7CisgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4
OjpTdHJpbmc+OjpOZXcoZGF0YS0+bGFzdFY4U3RyaW5nKCkpOwogICAgICAgICB9CiAKLSAgICAg
ICAgcmV0dXJuIHY4RXh0ZXJuYWxTdHJpbmdTbG93KHN0cmluZ0ltcGwpOworICAgICAgICByZXR1
cm4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coZGF0YSwgc3RyaW5nSW1wbCk7CiAgICAgfQogCiAgICAg
Ly8gQ29udmVydCBhIHN0cmluZyB0byBhIFY4IHN0cmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAppbmRleCBmYWYyMDljLi4wYWFmMDY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC00Njcs
OCArNDY3LDkgQEAgdm9pZCBWOEdDQ29udHJvbGxlcjo6Z2NQcm9sb2d1ZSgpCiAgICAgZ3JvdXBl
clZpc2l0b3IuYXBwbHlHcm91cGluZygpOwogCiAgICAgLy8gQ2xlYW4gc2luZ2xlIGVsZW1lbnQg
Y2FjaGUgZm9yIHN0cmluZyBjb252ZXJzaW9ucy4KLSAgICBsYXN0U3RyaW5nSW1wbCA9IDA7Ci0g
ICAgbGFzdFY4U3RyaW5nLkNsZWFyKCk7CisgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRh
dGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIGRhdGEtPmxhc3RT
dHJpbmdJbXBsKCkgPSAwOworICAgIGRhdGEtPmxhc3RWOFN0cmluZygpLkNsZWFyKCk7CiB9CiAK
IGNsYXNzIEdDRXBpbG9ndWVWaXNpdG9yIDogcHVibGljIERPTVdyYXBwZXJNYXA8dm9pZD46OlZp
c2l0b3Igewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97164</attachid>
            <date>2011-06-14 14:00:51 -0700</date>
            <delta_ts>2011-06-14 16:49:05 -0700</delta_ts>
            <desc>Quick self-review</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>7429</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjgyMDk5Li5kYmZhNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDYtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpsYXN0VjhTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6Omxhc3RTdHJpbmdJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3Vl
KToKKwogMjAxMS0wNi0xMyAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uNjljY2YyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00ODAsMjkgKzQ4MCwxNyBAQCBzdGF0aWMg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG1ha2VFeHRlcm5hbFN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQogCi10eXBlZGVmIEhhc2hNYXA8U3RyaW5n
SW1wbCosIHY4OjpTdHJpbmcqPiBTdHJpbmdDYWNoZTsKLQotc3RhdGljIFN0cmluZ0NhY2hlJiBn
ZXRTdHJpbmdDYWNoZSgpCi17Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nQ2FjaGUsIG1haW5UaHJlYWRTdHJpbmdDYWNoZSwg
KCkpOwotICAgIHJldHVybiBtYWluVGhyZWFkU3RyaW5nQ2FjaGU7Ci19Ci0KIHN0YXRpYyB2b2lk
IGNhY2hlZFN0cmluZ0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gd3JhcHBlciwg
dm9pZCogcGFyYW1ldGVyKQogewotICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAg
ICBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHBhcmFt
ZXRlcik7Ci0gICAgQVNTRVJUKGdldFN0cmluZ0NhY2hlKCkuY29udGFpbnMoc3RyaW5nSW1wbCkp
OwotICAgIGdldFN0cmluZ0NhY2hlKCkucmVtb3ZlKHN0cmluZ0ltcGwpOworICAgIFN0cmluZ0Nh
Y2hlJiBzdHJpbmdDYWNoZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnN0
cmluZ0NhY2hlKCk7CisgICAgQVNTRVJUKHN0cmluZ0NhY2hlLmNvbnRhaW5zKHN0cmluZ0ltcGwp
KTsKKyAgICBzdHJpbmdDYWNoZS5yZW1vdmUoc3RyaW5nSW1wbCk7CiAgICAgd3JhcHBlci5EaXNw
b3NlKCk7CiAgICAgc3RyaW5nSW1wbC0+ZGVyZWYoKTsKIH0KIAotUmVmUHRyPFN0cmluZ0ltcGw+
IGxhc3RTdHJpbmdJbXBsID0gMDsKLXY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGxhc3RWOFN0
cmluZzsKLQotdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmlu
Z0ltcGwqIHN0cmluZ0ltcGwpCit2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmlu
Z1Nsb3coVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEsIFN0cmluZ0ltcGwqIHN0cmluZ0lt
cGwpCiB7CiAgICAgaWYgKCFzdHJpbmdJbXBsLT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHY4
OjpTdHJpbmc6OkVtcHR5KCk7CkBAIC01MTAsMTMgKzQ5OCwxMyBAQCB2ODo6TG9jYWw8djg6OlN0
cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKICAgICBp
ZiAoIXN0cmluZ0ltcGxDYWNoZUVuYWJsZWQpCiAgICAgICAgIHJldHVybiBtYWtlRXh0ZXJuYWxT
dHJpbmcoU3RyaW5nKHN0cmluZ0ltcGwpKTsKIAotICAgIFN0cmluZ0NhY2hlJiBzdHJpbmdDYWNo
ZSA9IGdldFN0cmluZ0NhY2hlKCk7CisgICAgU3RyaW5nQ2FjaGUmIHN0cmluZ0NhY2hlID0gZGF0
YS0+c3RyaW5nQ2FjaGUoKTsKICAgICB2ODo6U3RyaW5nKiBjYWNoZWRWOFN0cmluZyA9IHN0cmlu
Z0NhY2hlLmdldChzdHJpbmdJbXBsKTsKICAgICBpZiAoY2FjaGVkVjhTdHJpbmcpIHsKICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gaGFuZGxlKGNhY2hlZFY4U3RyaW5nKTsKICAg
ICAgICAgaWYgKCFoYW5kbGUuSXNOZWFyRGVhdGgoKSAmJiAhaGFuZGxlLklzRW1wdHkoKSkgewot
ICAgICAgICAgICAgbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOwotICAgICAgICAgICAgbGFz
dFY4U3RyaW5nID0gaGFuZGxlOworICAgICAgICAgICAgZGF0YS0+bGFzdFN0cmluZ0ltcGwoKSA9
IHN0cmluZ0ltcGw7CisgICAgICAgICAgICBkYXRhLT5sYXN0VjhTdHJpbmcoKSA9IGhhbmRsZTsK
ICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhoYW5kbGUpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNTMzLDggKzUyMSw4IEBAIHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogICAgIHdyYXBw
ZXIuTWFrZVdlYWsoc3RyaW5nSW1wbCwgY2FjaGVkU3RyaW5nQ2FsbGJhY2spOwogICAgIHN0cmlu
Z0NhY2hlLnNldChzdHJpbmdJbXBsLCAqd3JhcHBlcik7CiAKLSAgICBsYXN0U3RyaW5nSW1wbCA9
IHN0cmluZ0ltcGw7Ci0gICAgbGFzdFY4U3RyaW5nID0gd3JhcHBlcjsKKyAgICBkYXRhLT5sYXN0
U3RyaW5nSW1wbCgpID0gc3RyaW5nSW1wbDsKKyAgICBkYXRhLT5sYXN0VjhTdHJpbmcoKSA9IHdy
YXBwZXI7CiAKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAppbmRleCBiM2E5MzU2Li43NzY2OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEJpbmRpbmcuaApAQCAtNTAsNiArNTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgfTsKICAgICB0eXBlZGVmIEJpbmRpbmdTZWN1cml0eTxWOEJpbmRpbmc+IFY4QmluZGlu
Z1NlY3VyaXR5OwogCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCB2ODo6U3RyaW5n
Kj4gU3RyaW5nQ2FjaGU7CisKICAgICBjbGFzcyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAg
ICAgcHVibGljOgogICAgICAgICBzdGF0aWMgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0
ZSh2ODo6SXNvbGF0ZSopOwpAQCAtNzIsNiArNzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFRlbXBsYXRlTWFwJiB0ZW1wbGF0ZU1hcCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVzOyB9
CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+JiB0b1N0cmluZ05hbWUoKSB7IHJl
dHVybiBtX3RvU3RyaW5nTmFtZTsgfQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUoKSB7IHJldHVybiBtX3RvU3RyaW5nVGVtcGxh
dGU7IH0KKyAgICAgICAgU3RyaW5nQ2FjaGUmIHN0cmluZ0NhY2hlKCkgeyByZXR1cm4gbV9zdHJp
bmdDYWNoZTsgfQorICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiYgbGFzdFY4U3Ry
aW5nKCkgeyByZXR1cm4gbV9sYXN0VjhTdHJpbmc7IH0KKyAgICAgICAgUmVmUHRyPFN0cmluZ0lt
cGw+JiBsYXN0U3RyaW5nSW1wbCgpIHsgcmV0dXJuIG1fbGFzdFN0cmluZ0ltcGw7IH0KIAogICAg
IHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4OjpJ
c29sYXRlKik7CkBAIC04MSw2ICs4NiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IFRlbXBsYXRlTWFwIG1fdGVtcGxhdGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3Ry
aW5nPiBtX3RvU3RyaW5nTmFtZTsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IG1fdG9TdHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6
OlN0cmluZz4gbV9sYXN0VjhTdHJpbmc7CisgICAgICAgIC8vIE5vdGU6IFJlZlB0ciBpcyBhIG11
c3QgYXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHksIG5vdCBpZGVudGl0eQorICAg
ICAgICAvLyBoZW5jZSBsYXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3QgYSBrZXkgb2YgdGhlIGNh
Y2hlIChpbiBzZW5zZSBvZiBpZGVudGl0eSkKKyAgICAgICAgLy8gYW5kIGhlbmNlIGl0J3Mgbm90
IHJlZmVkIG9uIGFkZGl0aW9uLgorICAgICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9sYXN0U3Ry
aW5nSW1wbDsKKyAgICAgICAgU3RyaW5nQ2FjaGUgbV9zdHJpbmdDYWNoZTsKICAgICB9OwogCiAK
QEAgLTExMCwxMiArMTIxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEF0b21pY1N0cmlu
ZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZh
bHVlPik7CiAgICAgQXRvbWljU3RyaW5nIHY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAotICAgIC8vIE5vdGU6IFJlZlB0ciBpcyBhIG11
c3QgYXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHksIG5vdCBpZGVudGl0eQotICAg
IC8vIGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1pZ2h0IGJlIG5vdCBhIGtleSBvZiB0aGUgY2FjaGUg
KGluIHNlbnNlIG9mIGlkZW50aXR5KQotICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBv
biBhZGRpdGlvbi4KLSAgICBleHRlcm4gUmVmUHRyPFN0cmluZ0ltcGw+IGxhc3RTdHJpbmdJbXBs
OwotICAgIGV4dGVybiB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Ci0g
ICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwq
IHN0cmluZ0ltcGwpOworICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5n
U2xvdyhWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSosIFN0cmluZ0ltcGwqKTsKIAogICAgIC8vIFJl
dHVybiBhIFY4IGV4dGVybmFsIHN0cmluZyB0aGF0IHNoYXJlcyB0aGUgdW5kZXJseWluZyBidWZm
ZXIgd2l0aCB0aGUgZ2l2ZW4KICAgICAvLyBXZWJDb3JlIHN0cmluZy4gVGhlIHJlZmVyZW5jZSBj
b3VudGluZyBtZWNoYW5pc20gaXMgdXNlZCB0byBrZWVwIHRoZQpAQCAtMTI2LDEzICsxMzIsMTQg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpZiAoIXN0cmluZ0ltcGwpCiAgICAgICAg
ICAgICByZXR1cm4gdjg6OlN0cmluZzo6RW1wdHkoKTsKIAotICAgICAgICBpZiAobGFzdFN0cmlu
Z0ltcGwuZ2V0KCkgPT0gc3RyaW5nSW1wbCkgewotICAgICAgICAgICAgQVNTRVJUKCFsYXN0VjhT
dHJpbmcuSXNOZWFyRGVhdGgoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIWxhc3RWOFN0cmluZy5J
c0VtcHR5KCkpOwotICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6U3RyaW5nPjo6TmV3
KGxhc3RWOFN0cmluZyk7CisgICAgICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0g
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKGRhdGEtPmxh
c3RTdHJpbmdJbXBsKCkuZ2V0KCkgPT0gc3RyaW5nSW1wbCkgeworICAgICAgICAgICAgQVNTRVJU
KCFkYXRhLT5sYXN0VjhTdHJpbmcoKS5Jc05lYXJEZWF0aCgpKTsKKyAgICAgICAgICAgIEFTU0VS
VCghZGF0YS0+bGFzdFY4U3RyaW5nKCkuSXNFbXB0eSgpKTsKKyAgICAgICAgICAgIHJldHVybiB2
ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhkYXRhLT5sYXN0VjhTdHJpbmcoKSk7CiAgICAgICAg
IH0KIAotICAgICAgICByZXR1cm4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coc3RyaW5nSW1wbCk7Cisg
ICAgICAgIHJldHVybiB2OEV4dGVybmFsU3RyaW5nU2xvdyhkYXRhLCBzdHJpbmdJbXBsKTsKICAg
ICB9CiAKICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgVjggc3RyaW5nLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGZhZjIwOWMuLjBh
YWYwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAKQEAgLTQ2Nyw4ICs0NjcsOSBAQCB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3VlKCkK
ICAgICBncm91cGVyVmlzaXRvci5hcHBseUdyb3VwaW5nKCk7CiAKICAgICAvLyBDbGVhbiBzaW5n
bGUgZWxlbWVudCBjYWNoZSBmb3Igc3RyaW5nIGNvbnZlcnNpb25zLgotICAgIGxhc3RTdHJpbmdJ
bXBsID0gMDsKLSAgICBsYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAg
ZGF0YS0+bGFzdFN0cmluZ0ltcGwoKSA9IDA7CisgICAgZGF0YS0+bGFzdFY4U3RyaW5nKCkuQ2xl
YXIoKTsKIH0KIAogY2xhc3MgR0NFcGlsb2d1ZVZpc2l0b3IgOiBwdWJsaWMgRE9NV3JhcHBlck1h
cDx2b2lkPjo6VmlzaXRvciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97193</attachid>
            <date>2011-06-14 16:49:05 -0700</date>
            <delta_ts>2011-06-14 16:51:18 -0700</delta_ts>
            <desc>CR feedback addressed</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>7429</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjgyMDk5Li5kYmZhNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDYtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpsYXN0VjhTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6Omxhc3RTdHJpbmdJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3Vl
KToKKwogMjAxMS0wNi0xMyAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uNjljY2YyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00ODAsMjkgKzQ4MCwxNyBAQCBzdGF0aWMg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG1ha2VFeHRlcm5hbFN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQogCi10eXBlZGVmIEhhc2hNYXA8U3RyaW5n
SW1wbCosIHY4OjpTdHJpbmcqPiBTdHJpbmdDYWNoZTsKLQotc3RhdGljIFN0cmluZ0NhY2hlJiBn
ZXRTdHJpbmdDYWNoZSgpCi17Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nQ2FjaGUsIG1haW5UaHJlYWRTdHJpbmdDYWNoZSwg
KCkpOwotICAgIHJldHVybiBtYWluVGhyZWFkU3RyaW5nQ2FjaGU7Ci19Ci0KIHN0YXRpYyB2b2lk
IGNhY2hlZFN0cmluZ0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gd3JhcHBlciwg
dm9pZCogcGFyYW1ldGVyKQogewotICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAg
ICBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHBhcmFt
ZXRlcik7Ci0gICAgQVNTRVJUKGdldFN0cmluZ0NhY2hlKCkuY29udGFpbnMoc3RyaW5nSW1wbCkp
OwotICAgIGdldFN0cmluZ0NhY2hlKCkucmVtb3ZlKHN0cmluZ0ltcGwpOworICAgIFN0cmluZ0Nh
Y2hlJiBzdHJpbmdDYWNoZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnN0
cmluZ0NhY2hlKCk7CisgICAgQVNTRVJUKHN0cmluZ0NhY2hlLmNvbnRhaW5zKHN0cmluZ0ltcGwp
KTsKKyAgICBzdHJpbmdDYWNoZS5yZW1vdmUoc3RyaW5nSW1wbCk7CiAgICAgd3JhcHBlci5EaXNw
b3NlKCk7CiAgICAgc3RyaW5nSW1wbC0+ZGVyZWYoKTsKIH0KIAotUmVmUHRyPFN0cmluZ0ltcGw+
IGxhc3RTdHJpbmdJbXBsID0gMDsKLXY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGxhc3RWOFN0
cmluZzsKLQotdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmlu
Z0ltcGwqIHN0cmluZ0ltcGwpCit2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmlu
Z1Nsb3coVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEsIFN0cmluZ0ltcGwqIHN0cmluZ0lt
cGwpCiB7CiAgICAgaWYgKCFzdHJpbmdJbXBsLT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHY4
OjpTdHJpbmc6OkVtcHR5KCk7CkBAIC01MTAsMTMgKzQ5OCwxMyBAQCB2ODo6TG9jYWw8djg6OlN0
cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKICAgICBp
ZiAoIXN0cmluZ0ltcGxDYWNoZUVuYWJsZWQpCiAgICAgICAgIHJldHVybiBtYWtlRXh0ZXJuYWxT
dHJpbmcoU3RyaW5nKHN0cmluZ0ltcGwpKTsKIAotICAgIFN0cmluZ0NhY2hlJiBzdHJpbmdDYWNo
ZSA9IGdldFN0cmluZ0NhY2hlKCk7CisgICAgU3RyaW5nQ2FjaGUmIHN0cmluZ0NhY2hlID0gZGF0
YS0+c3RyaW5nQ2FjaGUoKTsKICAgICB2ODo6U3RyaW5nKiBjYWNoZWRWOFN0cmluZyA9IHN0cmlu
Z0NhY2hlLmdldChzdHJpbmdJbXBsKTsKICAgICBpZiAoY2FjaGVkVjhTdHJpbmcpIHsKICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gaGFuZGxlKGNhY2hlZFY4U3RyaW5nKTsKICAg
ICAgICAgaWYgKCFoYW5kbGUuSXNOZWFyRGVhdGgoKSAmJiAhaGFuZGxlLklzRW1wdHkoKSkgewot
ICAgICAgICAgICAgbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOwotICAgICAgICAgICAgbGFz
dFY4U3RyaW5nID0gaGFuZGxlOworICAgICAgICAgICAgZGF0YS0+bGFzdFN0cmluZ0ltcGwoKSA9
IHN0cmluZ0ltcGw7CisgICAgICAgICAgICBkYXRhLT5sYXN0VjhTdHJpbmcoKSA9IGhhbmRsZTsK
ICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhoYW5kbGUpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNTMzLDggKzUyMSw4IEBAIHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogICAgIHdyYXBw
ZXIuTWFrZVdlYWsoc3RyaW5nSW1wbCwgY2FjaGVkU3RyaW5nQ2FsbGJhY2spOwogICAgIHN0cmlu
Z0NhY2hlLnNldChzdHJpbmdJbXBsLCAqd3JhcHBlcik7CiAKLSAgICBsYXN0U3RyaW5nSW1wbCA9
IHN0cmluZ0ltcGw7Ci0gICAgbGFzdFY4U3RyaW5nID0gd3JhcHBlcjsKKyAgICBkYXRhLT5sYXN0
U3RyaW5nSW1wbCgpID0gc3RyaW5nSW1wbDsKKyAgICBkYXRhLT5sYXN0VjhTdHJpbmcoKSA9IHdy
YXBwZXI7CiAKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAppbmRleCBiM2E5MzU2Li43NzY2OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEJpbmRpbmcuaApAQCAtNTAsNiArNTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgfTsKICAgICB0eXBlZGVmIEJpbmRpbmdTZWN1cml0eTxWOEJpbmRpbmc+IFY4QmluZGlu
Z1NlY3VyaXR5OwogCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCB2ODo6U3RyaW5n
Kj4gU3RyaW5nQ2FjaGU7CisKICAgICBjbGFzcyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAg
ICAgcHVibGljOgogICAgICAgICBzdGF0aWMgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0
ZSh2ODo6SXNvbGF0ZSopOwpAQCAtNzIsNiArNzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFRlbXBsYXRlTWFwJiB0ZW1wbGF0ZU1hcCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVzOyB9
CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+JiB0b1N0cmluZ05hbWUoKSB7IHJl
dHVybiBtX3RvU3RyaW5nTmFtZTsgfQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUoKSB7IHJldHVybiBtX3RvU3RyaW5nVGVtcGxh
dGU7IH0KKyAgICAgICAgU3RyaW5nQ2FjaGUmIHN0cmluZ0NhY2hlKCkgeyByZXR1cm4gbV9zdHJp
bmdDYWNoZTsgfQorICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiYgbGFzdFY4U3Ry
aW5nKCkgeyByZXR1cm4gbV9sYXN0VjhTdHJpbmc7IH0KKyAgICAgICAgUmVmUHRyPFN0cmluZ0lt
cGw+JiBsYXN0U3RyaW5nSW1wbCgpIHsgcmV0dXJuIG1fbGFzdFN0cmluZ0ltcGw7IH0KIAogICAg
IHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4OjpJ
c29sYXRlKik7CkBAIC04MSw2ICs4NiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IFRlbXBsYXRlTWFwIG1fdGVtcGxhdGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3Ry
aW5nPiBtX3RvU3RyaW5nTmFtZTsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IG1fdG9TdHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6
OlN0cmluZz4gbV9sYXN0VjhTdHJpbmc7CisgICAgICAgIC8vIE5vdGU6IFJlZlB0ciBpcyBhIG11
c3QgYXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHksIG5vdCBpZGVudGl0eQorICAg
ICAgICAvLyBoZW5jZSBsYXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3QgYSBrZXkgb2YgdGhlIGNh
Y2hlIChpbiBzZW5zZSBvZiBpZGVudGl0eSkKKyAgICAgICAgLy8gYW5kIGhlbmNlIGl0J3Mgbm90
IHJlZmVkIG9uIGFkZGl0aW9uLgorICAgICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9sYXN0U3Ry
aW5nSW1wbDsKKyAgICAgICAgU3RyaW5nQ2FjaGUgbV9zdHJpbmdDYWNoZTsKICAgICB9OwogCiAK
QEAgLTExMCwxMiArMTIxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEF0b21pY1N0cmlu
ZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZh
bHVlPik7CiAgICAgQXRvbWljU3RyaW5nIHY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAotICAgIC8vIE5vdGU6IFJlZlB0ciBpcyBhIG11
c3QgYXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHksIG5vdCBpZGVudGl0eQotICAg
IC8vIGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1pZ2h0IGJlIG5vdCBhIGtleSBvZiB0aGUgY2FjaGUg
KGluIHNlbnNlIG9mIGlkZW50aXR5KQotICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBv
biBhZGRpdGlvbi4KLSAgICBleHRlcm4gUmVmUHRyPFN0cmluZ0ltcGw+IGxhc3RTdHJpbmdJbXBs
OwotICAgIGV4dGVybiB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Ci0g
ICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwq
IHN0cmluZ0ltcGwpOworICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5n
U2xvdyhWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSosIFN0cmluZ0ltcGwqKTsKIAogICAgIC8vIFJl
dHVybiBhIFY4IGV4dGVybmFsIHN0cmluZyB0aGF0IHNoYXJlcyB0aGUgdW5kZXJseWluZyBidWZm
ZXIgd2l0aCB0aGUgZ2l2ZW4KICAgICAvLyBXZWJDb3JlIHN0cmluZy4gVGhlIHJlZmVyZW5jZSBj
b3VudGluZyBtZWNoYW5pc20gaXMgdXNlZCB0byBrZWVwIHRoZQpAQCAtMTI2LDEzICsxMzIsMTQg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpZiAoIXN0cmluZ0ltcGwpCiAgICAgICAg
ICAgICByZXR1cm4gdjg6OlN0cmluZzo6RW1wdHkoKTsKIAotICAgICAgICBpZiAobGFzdFN0cmlu
Z0ltcGwuZ2V0KCkgPT0gc3RyaW5nSW1wbCkgewotICAgICAgICAgICAgQVNTRVJUKCFsYXN0VjhT
dHJpbmcuSXNOZWFyRGVhdGgoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIWxhc3RWOFN0cmluZy5J
c0VtcHR5KCkpOwotICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6U3RyaW5nPjo6TmV3
KGxhc3RWOFN0cmluZyk7CisgICAgICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBkYXRhID0g
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKGRhdGEtPmxh
c3RTdHJpbmdJbXBsKCkuZ2V0KCkgPT0gc3RyaW5nSW1wbCkgeworICAgICAgICAgICAgQVNTRVJU
KCFkYXRhLT5sYXN0VjhTdHJpbmcoKS5Jc05lYXJEZWF0aCgpKTsKKyAgICAgICAgICAgIEFTU0VS
VCghZGF0YS0+bGFzdFY4U3RyaW5nKCkuSXNFbXB0eSgpKTsKKyAgICAgICAgICAgIHJldHVybiB2
ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhkYXRhLT5sYXN0VjhTdHJpbmcoKSk7CiAgICAgICAg
IH0KIAotICAgICAgICByZXR1cm4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coc3RyaW5nSW1wbCk7Cisg
ICAgICAgIHJldHVybiB2OEV4dGVybmFsU3RyaW5nU2xvdyhkYXRhLCBzdHJpbmdJbXBsKTsKICAg
ICB9CiAKICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgVjggc3RyaW5nLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGZhZjIwOWMuLjBh
YWYwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAKQEAgLTQ2Nyw4ICs0NjcsOSBAQCB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3VlKCkK
ICAgICBncm91cGVyVmlzaXRvci5hcHBseUdyb3VwaW5nKCk7CiAKICAgICAvLyBDbGVhbiBzaW5n
bGUgZWxlbWVudCBjYWNoZSBmb3Igc3RyaW5nIGNvbnZlcnNpb25zLgotICAgIGxhc3RTdHJpbmdJ
bXBsID0gMDsKLSAgICBsYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAg
ZGF0YS0+bGFzdFN0cmluZ0ltcGwoKSA9IDA7CisgICAgZGF0YS0+bGFzdFY4U3RyaW5nKCkuQ2xl
YXIoKTsKIH0KIAogY2xhc3MgR0NFcGlsb2d1ZVZpc2l0b3IgOiBwdWJsaWMgRE9NV3JhcHBlck1h
cDx2b2lkPjo6VmlzaXRvciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97195</attachid>
            <date>2011-06-14 16:51:18 -0700</date>
            <delta_ts>2011-06-15 13:10:21 -0700</delta_ts>
            <desc>CR feedback addressed</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>7619</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjgyMDk5Li5kYmZhNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDYtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpsYXN0VjhTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6Omxhc3RTdHJpbmdJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3Vl
KToKKwogMjAxMS0wNi0xMyAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uZTEwNGM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00ODAsMjkgKzQ4MCwxNyBAQCBzdGF0aWMg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG1ha2VFeHRlcm5hbFN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQogCi10eXBlZGVmIEhhc2hNYXA8U3RyaW5n
SW1wbCosIHY4OjpTdHJpbmcqPiBTdHJpbmdDYWNoZTsKLQotc3RhdGljIFN0cmluZ0NhY2hlJiBn
ZXRTdHJpbmdDYWNoZSgpCi17Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nQ2FjaGUsIG1haW5UaHJlYWRTdHJpbmdDYWNoZSwg
KCkpOwotICAgIHJldHVybiBtYWluVGhyZWFkU3RyaW5nQ2FjaGU7Ci19Ci0KIHN0YXRpYyB2b2lk
IGNhY2hlZFN0cmluZ0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gd3JhcHBlciwg
dm9pZCogcGFyYW1ldGVyKQogewotICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAg
ICBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHBhcmFt
ZXRlcik7Ci0gICAgQVNTRVJUKGdldFN0cmluZ0NhY2hlKCkuY29udGFpbnMoc3RyaW5nSW1wbCkp
OwotICAgIGdldFN0cmluZ0NhY2hlKCkucmVtb3ZlKHN0cmluZ0ltcGwpOworICAgIFN0cmluZ0Nh
Y2hlJiBzdHJpbmdDYWNoZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnN0
cmluZ0NhY2hlKCk7CisgICAgQVNTRVJUKHN0cmluZ0NhY2hlLmNvbnRhaW5zKHN0cmluZ0ltcGwp
KTsKKyAgICBzdHJpbmdDYWNoZS5yZW1vdmUoc3RyaW5nSW1wbCk7CiAgICAgd3JhcHBlci5EaXNw
b3NlKCk7CiAgICAgc3RyaW5nSW1wbC0+ZGVyZWYoKTsKIH0KIAotUmVmUHRyPFN0cmluZ0ltcGw+
IGxhc3RTdHJpbmdJbXBsID0gMDsKLXY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGxhc3RWOFN0
cmluZzsKLQotdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmlu
Z0ltcGwqIHN0cmluZ0ltcGwpCit2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmlu
Z1Nsb3coVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEsIFN0cmluZ0ltcGwqIHN0cmluZ0lt
cGwpCiB7CiAgICAgaWYgKCFzdHJpbmdJbXBsLT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHY4
OjpTdHJpbmc6OkVtcHR5KCk7CkBAIC01MTAsMTMgKzQ5OCwxMyBAQCB2ODo6TG9jYWw8djg6OlN0
cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKICAgICBp
ZiAoIXN0cmluZ0ltcGxDYWNoZUVuYWJsZWQpCiAgICAgICAgIHJldHVybiBtYWtlRXh0ZXJuYWxT
dHJpbmcoU3RyaW5nKHN0cmluZ0ltcGwpKTsKIAotICAgIFN0cmluZ0NhY2hlJiBzdHJpbmdDYWNo
ZSA9IGdldFN0cmluZ0NhY2hlKCk7CisgICAgU3RyaW5nQ2FjaGUmIHN0cmluZ0NhY2hlID0gZGF0
YS0+c3RyaW5nQ2FjaGUoKTsKICAgICB2ODo6U3RyaW5nKiBjYWNoZWRWOFN0cmluZyA9IHN0cmlu
Z0NhY2hlLmdldChzdHJpbmdJbXBsKTsKICAgICBpZiAoY2FjaGVkVjhTdHJpbmcpIHsKICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gaGFuZGxlKGNhY2hlZFY4U3RyaW5nKTsKICAg
ICAgICAgaWYgKCFoYW5kbGUuSXNOZWFyRGVhdGgoKSAmJiAhaGFuZGxlLklzRW1wdHkoKSkgewot
ICAgICAgICAgICAgbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOwotICAgICAgICAgICAgbGFz
dFY4U3RyaW5nID0gaGFuZGxlOworICAgICAgICAgICAgZGF0YS0+c2V0TGFzdFN0cmluZ0ltcGwo
c3RyaW5nSW1wbCk7CisgICAgICAgICAgICBkYXRhLT5zZXRMYXN0VjhTdHJpbmcoaGFuZGxlKTsK
ICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhoYW5kbGUpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNTMzLDggKzUyMSw4IEBAIHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogICAgIHdyYXBw
ZXIuTWFrZVdlYWsoc3RyaW5nSW1wbCwgY2FjaGVkU3RyaW5nQ2FsbGJhY2spOwogICAgIHN0cmlu
Z0NhY2hlLnNldChzdHJpbmdJbXBsLCAqd3JhcHBlcik7CiAKLSAgICBsYXN0U3RyaW5nSW1wbCA9
IHN0cmluZ0ltcGw7Ci0gICAgbGFzdFY4U3RyaW5nID0gd3JhcHBlcjsKKyAgICBkYXRhLT5zZXRM
YXN0U3RyaW5nSW1wbChzdHJpbmdJbXBsKTsKKyAgICBkYXRhLT5zZXRMYXN0VjhTdHJpbmcod3Jh
cHBlcik7CiAKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAppbmRleCBiM2E5MzU2Li44ZWM4NGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEJpbmRpbmcuaApAQCAtNTAsNiArNTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgfTsKICAgICB0eXBlZGVmIEJpbmRpbmdTZWN1cml0eTxWOEJpbmRpbmc+IFY4QmluZGlu
Z1NlY3VyaXR5OwogCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZ0ltcGwqLCB2ODo6U3RyaW5n
Kj4gU3RyaW5nQ2FjaGU7CisKICAgICBjbGFzcyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAg
ICAgcHVibGljOgogICAgICAgICBzdGF0aWMgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0
ZSh2ODo6SXNvbGF0ZSopOwpAQCAtNzIsNiArNzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBUZW1wbGF0ZU1hcCYgdGVtcGxhdGVNYXAoKSB7IHJldHVybiBtX3RlbXBsYXRlczsg
fQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyBy
ZXR1cm4gbV90b1N0cmluZ05hbWU7IH0KICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+JiB0b1N0cmluZ1RlbXBsYXRlKCkgeyByZXR1cm4gbV90b1N0cmluZ1RlbXBs
YXRlOyB9CisgICAgICAgIFN0cmluZ0NhY2hlJiBzdHJpbmdDYWNoZSgpIHsgcmV0dXJuIG1fc3Ry
aW5nQ2FjaGU7IH0KKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4mIGxhc3RWOFN0
cmluZygpIHsgcmV0dXJuIG1fbGFzdFY4U3RyaW5nOyB9CisgICAgICAgIFJlZlB0cjxTdHJpbmdJ
bXBsPiYgbGFzdFN0cmluZ0ltcGwoKSB7IHJldHVybiBtX2xhc3RTdHJpbmdJbXBsOyB9CisgICAg
ICAgIHZvaWQgc2V0TGFzdFY4U3RyaW5nKHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IHY4U3Ry
aW5nKSB7IG1fbGFzdFY4U3RyaW5nID0gdjhTdHJpbmc7IH0KKyAgICAgICAgdm9pZCBzZXRMYXN0
U3RyaW5nSW1wbChTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKSB7IG1fbGFzdFN0cmluZ0ltcGwgPSBz
dHJpbmdJbXBsOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBWOEJpbmRpbmdQ
ZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSopOwpAQCAtODEsNiArODgsMTIgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1hcCBtX3RlbXBsYXRlczsKICAgICAgICAgdjg6
OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV90b1N0cmluZ05hbWU7CiAgICAgICAgIHY4OjpQZXJz
aXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBtX3RvU3RyaW5nVGVtcGxhdGU7CisgICAgICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1fbGFzdFY4U3RyaW5nOworICAgICAgICAvLyBO
b3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5
LCBub3QgaWRlbnRpdHkKKyAgICAgICAgLy8gaGVuY2UgbGFzdFN0cmluZ0ltcGwgbWlnaHQgYmUg
bm90IGEga2V5IG9mIHRoZSBjYWNoZSAoaW4gc2Vuc2Ugb2YgaWRlbnRpdHkpCisgICAgICAgIC8v
IGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBvbiBhZGRpdGlvbi4KKyAgICAgICAgUmVmUHRyPFN0
cmluZ0ltcGw+IG1fbGFzdFN0cmluZ0ltcGw7CisgICAgICAgIFN0cmluZ0NhY2hlIG1fc3RyaW5n
Q2FjaGU7CiAgICAgfTsKIAogCkBAIC0xMTAsMTIgKzEyMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBBdG9taWNTdHJpbmcgdjhOb25TdHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmlu
Zyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogICAgIEF0b21pY1N0cmluZyB2OFZhbHVlVG9BdG9t
aWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSk7CiAKLSAgICAvLyBO
b3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5
LCBub3QgaWRlbnRpdHkKLSAgICAvLyBoZW5jZSBsYXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3Qg
YSBrZXkgb2YgdGhlIGNhY2hlIChpbiBzZW5zZSBvZiBpZGVudGl0eSkKLSAgICAvLyBhbmQgaGVu
Y2UgaXQncyBub3QgcmVmZWQgb24gYWRkaXRpb24uCi0gICAgZXh0ZXJuIFJlZlB0cjxTdHJpbmdJ
bXBsPiBsYXN0U3RyaW5nSW1wbDsKLSAgICBleHRlcm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gbGFzdFY4U3RyaW5nOwotICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3Ry
aW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKTsKKyAgICB2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqLCBTdHJpbmdJ
bXBsKik7CiAKICAgICAvLyBSZXR1cm4gYSBWOCBleHRlcm5hbCBzdHJpbmcgdGhhdCBzaGFyZXMg
dGhlIHVuZGVybHlpbmcgYnVmZmVyIHdpdGggdGhlIGdpdmVuCiAgICAgLy8gV2ViQ29yZSBzdHJp
bmcuIFRoZSByZWZlcmVuY2UgY291bnRpbmcgbWVjaGFuaXNtIGlzIHVzZWQgdG8ga2VlcCB0aGUK
QEAgLTEyNiwxMyArMTM0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaWYgKCFz
dHJpbmdJbXBsKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6OkVtcHR5KCk7CiAKLSAg
ICAgICAgaWYgKGxhc3RTdHJpbmdJbXBsLmdldCgpID09IHN0cmluZ0ltcGwpIHsKLSAgICAgICAg
ICAgIEFTU0VSVCghbGFzdFY4U3RyaW5nLklzTmVhckRlYXRoKCkpOwotICAgICAgICAgICAgQVNT
RVJUKCFsYXN0VjhTdHJpbmcuSXNFbXB0eSgpKTsKLSAgICAgICAgICAgIHJldHVybiB2ODo6TG9j
YWw8djg6OlN0cmluZz46Ok5ldyhsYXN0VjhTdHJpbmcpOworICAgICAgICBWOEJpbmRpbmdQZXJJ
c29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7Cisg
ICAgICAgIGlmIChkYXRhLT5sYXN0U3RyaW5nSW1wbCgpLmdldCgpID09IHN0cmluZ0ltcGwpIHsK
KyAgICAgICAgICAgIEFTU0VSVCghZGF0YS0+bGFzdFY4U3RyaW5nKCkuSXNOZWFyRGVhdGgoKSk7
CisgICAgICAgICAgICBBU1NFUlQoIWRhdGEtPmxhc3RWOFN0cmluZygpLklzRW1wdHkoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXcoZGF0YS0+bGFzdFY4
U3RyaW5nKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIHY4RXh0ZXJuYWxTdHJpbmdT
bG93KHN0cmluZ0ltcGwpOworICAgICAgICByZXR1cm4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coZGF0
YSwgc3RyaW5nSW1wbCk7CiAgICAgfQogCiAgICAgLy8gQ29udmVydCBhIHN0cmluZyB0byBhIFY4
IHN0cmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNw
cAppbmRleCBmYWYyMDljLi44MjZiOTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC00NjcsOCArNDY3LDkgQEAgdm9pZCBWOEdDQ29udHJv
bGxlcjo6Z2NQcm9sb2d1ZSgpCiAgICAgZ3JvdXBlclZpc2l0b3IuYXBwbHlHcm91cGluZygpOwog
CiAgICAgLy8gQ2xlYW4gc2luZ2xlIGVsZW1lbnQgY2FjaGUgZm9yIHN0cmluZyBjb252ZXJzaW9u
cy4KLSAgICBsYXN0U3RyaW5nSW1wbCA9IDA7Ci0gICAgbGFzdFY4U3RyaW5nLkNsZWFyKCk7Cisg
ICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YTo6Y3VycmVudCgpOworICAgIGRhdGEtPnNldExhc3RTdHJpbmdJbXBsKDApOworICAgIGRhdGEt
Pmxhc3RWOFN0cmluZygpLkNsZWFyKCk7CiB9CiAKIGNsYXNzIEdDRXBpbG9ndWVWaXNpdG9yIDog
cHVibGljIERPTVdyYXBwZXJNYXA8dm9pZD46OlZpc2l0b3Igewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97351</attachid>
            <date>2011-06-15 13:10:21 -0700</date>
            <delta_ts>2011-06-17 15:18:55 -0700</delta_ts>
            <desc>Moved StringImpl-&gt;v8 String cache into a separate class</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>7909</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjgyMDk5Li45NjZhYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDYtMTUgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FjaGU6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Ry
aW5nQ2FjaGU6OlN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjpjbGVhck9u
R0MpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0Nh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjpnY1Byb2xvZ3VlKToKKwogMjAxMS0wNi0xMyAgQWRyaWVubmUgV2Fsa2VyICA8ZW5u
ZUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uMjFmZDBl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00ODAsMjkg
KzQ4MCwyMiBAQCBzdGF0aWMgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IG1ha2VFeHRlcm5hbFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQogCi10eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nSW1wbCosIHY4OjpTdHJpbmcqPiBTdHJpbmdDYWNoZTsKLQotc3Rh
dGljIFN0cmluZ0NhY2hlJiBnZXRTdHJpbmdDYWNoZSgpCi17Ci0gICAgQVNTRVJUKFdURjo6aXNN
YWluVGhyZWFkKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nQ2FjaGUsIG1haW5U
aHJlYWRTdHJpbmdDYWNoZSwgKCkpOwotICAgIHJldHVybiBtYWluVGhyZWFkU3RyaW5nQ2FjaGU7
Ci19Ci0KIHN0YXRpYyB2b2lkIGNhY2hlZFN0cmluZ0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4
OjpWYWx1ZT4gd3JhcHBlciwgdm9pZCogcGFyYW1ldGVyKQogewotICAgIEFTU0VSVChXVEY6Omlz
TWFpblRocmVhZCgpKTsKICAgICBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8
U3RyaW5nSW1wbCo+KHBhcmFtZXRlcik7Ci0gICAgQVNTRVJUKGdldFN0cmluZ0NhY2hlKCkuY29u
dGFpbnMoc3RyaW5nSW1wbCkpOwotICAgIGdldFN0cmluZ0NhY2hlKCkucmVtb3ZlKHN0cmluZ0lt
cGwpOworICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnN0cmluZ0NhY2hl
KCktPnJlbW92ZShzdHJpbmdJbXBsKTsKICAgICB3cmFwcGVyLkRpc3Bvc2UoKTsKICAgICBzdHJp
bmdJbXBsLT5kZXJlZigpOwogfQogCi1SZWZQdHI8U3RyaW5nSW1wbD4gbGFzdFN0cmluZ0ltcGwg
PSAwOwotdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbGFzdFY4U3RyaW5nOwordm9pZCBTdHJp
bmdDYWNoZTo6cmVtb3ZlKFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpIAoreworICAgIEFTU0VSVCht
X3N0cmluZ0NhY2hlLmNvbnRhaW5zKHN0cmluZ0ltcGwpKTsKKyAgICBtX3N0cmluZ0NhY2hlLnJl
bW92ZShzdHJpbmdJbXBsKTsKK30KKwogCi12ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5h
bFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKK3Y4OjpMb2NhbDx2ODo6U3RyaW5n
PiBTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1w
bCkKIHsKICAgICBpZiAoIXN0cmluZ0ltcGwtPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gdjg6
OlN0cmluZzo6RW1wdHkoKTsKQEAgLTUxMCwxMyArNTAzLDEyIEBAIHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogICAgIGlm
ICghc3RyaW5nSW1wbENhY2hlRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIG1ha2VFeHRlcm5hbFN0
cmluZyhTdHJpbmcoc3RyaW5nSW1wbCkpOwogCi0gICAgU3RyaW5nQ2FjaGUmIHN0cmluZ0NhY2hl
ID0gZ2V0U3RyaW5nQ2FjaGUoKTsKLSAgICB2ODo6U3RyaW5nKiBjYWNoZWRWOFN0cmluZyA9IHN0
cmluZ0NhY2hlLmdldChzdHJpbmdJbXBsKTsKKyAgICB2ODo6U3RyaW5nKiBjYWNoZWRWOFN0cmlu
ZyA9IG1fc3RyaW5nQ2FjaGUuZ2V0KHN0cmluZ0ltcGwpOwogICAgIGlmIChjYWNoZWRWOFN0cmlu
ZykgewogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBoYW5kbGUoY2FjaGVkVjhT
dHJpbmcpOwogICAgICAgICBpZiAoIWhhbmRsZS5Jc05lYXJEZWF0aCgpICYmICFoYW5kbGUuSXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICBsYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7Ci0gICAg
ICAgICAgICBsYXN0VjhTdHJpbmcgPSBoYW5kbGU7CisgICAgICAgICAgICBtX2xhc3RTdHJpbmdJ
bXBsID0gc3RyaW5nSW1wbDsKKyAgICAgICAgICAgIG1fbGFzdFY4U3RyaW5nID0gaGFuZGxlOwog
ICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6U3RyaW5nPjo6TmV3KGhhbmRsZSk7CiAg
ICAgICAgIH0KICAgICB9CkBAIC01MzEsMTAgKzUyMywxMCBAQCB2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKIAogICAgIHN0
cmluZ0ltcGwtPnJlZigpOwogICAgIHdyYXBwZXIuTWFrZVdlYWsoc3RyaW5nSW1wbCwgY2FjaGVk
U3RyaW5nQ2FsbGJhY2spOwotICAgIHN0cmluZ0NhY2hlLnNldChzdHJpbmdJbXBsLCAqd3JhcHBl
cik7CisgICAgbV9zdHJpbmdDYWNoZS5zZXQoc3RyaW5nSW1wbCwgKndyYXBwZXIpOwogCi0gICAg
bGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOwotICAgIGxhc3RWOFN0cmluZyA9IHdyYXBwZXI7
CisgICAgbV9sYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7CisgICAgbV9sYXN0VjhTdHJpbmcg
PSB3cmFwcGVyOwogCiAgICAgcmV0dXJuIG5ld1N0cmluZzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggYjNhOTM1Ni4uMDEzNDIyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTUwLDYgKzUwLDQwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICB9OwogICAgIHR5cGVkZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhC
aW5kaW5nU2VjdXJpdHk7CiAKKyAgICBjbGFzcyBTdHJpbmdDYWNoZSB7CisgICAgcHVibGljOgor
ICAgICAgICBTdHJpbmdDYWNoZSgpIHsgfQorCisgICAgICAgIGlubGluZSB2ODo6TG9jYWw8djg6
OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKSAKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKG1fbGFzdFN0cmluZ0ltcGwuZ2V0KCkgPT0gc3RyaW5nSW1w
bCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCghbV9sYXN0VjhTdHJpbmcuSXNOZWFyRGVhdGgo
KSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFtX2xhc3RWOFN0cmluZy5Jc0VtcHR5KCkpOwor
ICAgICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhtX2xhc3RW
OFN0cmluZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB2OEV4dGVybmFs
U3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgY2xlYXJP
bkdDKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbGFzdFN0cmluZ0ltcGwgPSAwOworICAg
ICAgICAgICAgbV9sYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZv
aWQgcmVtb3ZlKFN0cmluZ0ltcGwqKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKik7CisKKyAgICAg
ICAgSGFzaE1hcDxTdHJpbmdJbXBsKiwgdjg6OlN0cmluZyo+IG1fc3RyaW5nQ2FjaGU7CisgICAg
ICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1fbGFzdFY4U3RyaW5nOworICAgICAgICAv
LyBOb3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFs
aXR5LCBub3QgaWRlbnRpdHkKKyAgICAgICAgLy8gaGVuY2UgbGFzdFN0cmluZ0ltcGwgbWlnaHQg
YmUgbm90IGEga2V5IG9mIHRoZSBjYWNoZSAoaW4gc2Vuc2Ugb2YgaWRlbnRpdHkpCisgICAgICAg
IC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBvbiBhZGRpdGlvbi4KKyAgICAgICAgUmVmUHRy
PFN0cmluZ0ltcGw+IG1fbGFzdFN0cmluZ0ltcGw7CisgICAgfTsKKwogICAgIGNsYXNzIFY4Qmlu
ZGluZ1Blcklzb2xhdGVEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBWOEJpbmRp
bmdQZXJJc29sYXRlRGF0YSogY3JlYXRlKHY4OjpJc29sYXRlKik7CkBAIC03Miw2ICsxMDYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwJiB0ZW1wbGF0ZU1hcCgp
IHsgcmV0dXJuIG1fdGVtcGxhdGVzOyB9CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJp
bmc+JiB0b1N0cmluZ05hbWUoKSB7IHJldHVybiBtX3RvU3RyaW5nTmFtZTsgfQogICAgICAgICB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUoKSB7
IHJldHVybiBtX3RvU3RyaW5nVGVtcGxhdGU7IH0KKyAgICAgICAgU3RyaW5nQ2FjaGUqIHN0cmlu
Z0NhY2hlKCkgeyByZXR1cm4gJm1fc3RyaW5nQ2FjaGU7IH0KIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIGV4cGxpY2l0IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4OjpJc29sYXRlKik7CkBAIC04
MSw2ICsxMTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwIG1f
dGVtcGxhdGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtX3RvU3RyaW5n
TmFtZTsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1fdG9T
dHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgU3RyaW5nQ2FjaGUgbV9zdHJpbmdDYWNoZTsKICAgICB9
OwogCiAKQEAgLTExMCwxMyArMTQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEF0b21p
Y1N0cmluZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8
djg6OlZhbHVlPik7CiAgICAgQXRvbWljU3RyaW5nIHY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJp
bmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAotICAgIC8vIE5vdGU6IFJlZlB0ciBp
cyBhIG11c3QgYXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHksIG5vdCBpZGVudGl0
eQotICAgIC8vIGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1pZ2h0IGJlIG5vdCBhIGtleSBvZiB0aGUg
Y2FjaGUgKGluIHNlbnNlIG9mIGlkZW50aXR5KQotICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCBy
ZWZlZCBvbiBhZGRpdGlvbi4KLSAgICBleHRlcm4gUmVmUHRyPFN0cmluZ0ltcGw+IGxhc3RTdHJp
bmdJbXBsOwotICAgIGV4dGVybiB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJp
bmc7Ci0gICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmlu
Z0ltcGwqIHN0cmluZ0ltcGwpOwotCiAgICAgLy8gUmV0dXJuIGEgVjggZXh0ZXJuYWwgc3RyaW5n
IHRoYXQgc2hhcmVzIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlciB3aXRoIHRoZSBnaXZlbgogICAgIC8v
IFdlYkNvcmUgc3RyaW5nLiBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIG1lY2hhbmlzbSBpcyB1c2Vk
IHRvIGtlZXAgdGhlCiAgICAgLy8gdW5kZXJseWluZyBidWZmZXIgYWxpdmUgd2hpbGUgdGhlIHN0
cmluZyBpcyBzdGlsbCBsaXZlIGluIHRoZSBWOCBlbmdpbmUuCkBAIC0xMjYsMTMgKzE1NSw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaWYgKCFzdHJpbmdJbXBsKQogICAgICAgICAg
ICAgcmV0dXJuIHY4OjpTdHJpbmc6OkVtcHR5KCk7CiAKLSAgICAgICAgaWYgKGxhc3RTdHJpbmdJ
bXBsLmdldCgpID09IHN0cmluZ0ltcGwpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbGFzdFY4U3Ry
aW5nLklzTmVhckRlYXRoKCkpOwotICAgICAgICAgICAgQVNTRVJUKCFsYXN0VjhTdHJpbmcuSXNF
bXB0eSgpKTsKLSAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46Ok5ldyhs
YXN0VjhTdHJpbmcpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHY4RXh0ZXJuYWxTdHJp
bmdTbG93KHN0cmluZ0ltcGwpOworICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0
YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgICAgIHJldHVybiBk
YXRhLT5zdHJpbmdDYWNoZSgpLT52OEV4dGVybmFsU3RyaW5nKHN0cmluZ0ltcGwpOwogICAgIH0K
IAogICAgIC8vIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBWOCBzdHJpbmcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggZmFmMjA5Yy4uZWI5YWIx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApA
QCAtNDY3LDggKzQ2Nyw4IEBAIHZvaWQgVjhHQ0NvbnRyb2xsZXI6OmdjUHJvbG9ndWUoKQogICAg
IGdyb3VwZXJWaXNpdG9yLmFwcGx5R3JvdXBpbmcoKTsKIAogICAgIC8vIENsZWFuIHNpbmdsZSBl
bGVtZW50IGNhY2hlIGZvciBzdHJpbmcgY29udmVyc2lvbnMuCi0gICAgbGFzdFN0cmluZ0ltcGwg
PSAwOwotICAgIGxhc3RWOFN0cmluZy5DbGVhcigpOworICAgIFY4QmluZGluZ1Blcklzb2xhdGVE
YXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAgICBkYXRh
LT5zdHJpbmdDYWNoZSgpLT5jbGVhck9uR0MoKTsKIH0KIAogY2xhc3MgR0NFcGlsb2d1ZVZpc2l0
b3IgOiBwdWJsaWMgRE9NV3JhcHBlck1hcDx2b2lkPjo6VmlzaXRvciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97657</attachid>
            <date>2011-06-17 15:18:11 -0700</date>
            <delta_ts>2011-06-17 15:37:56 -0700</delta_ts>
            <desc>CR feedback</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>10192</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YjFlNDY2Li5lMDc5MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDYtMTcgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FjaGU6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Ry
aW5nQ2FjaGU6OlN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjpjbGVhck9u
R0MpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0Nh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjpnY1Byb2xvZ3VlKToKKwogMjAxMS0wNi0xNyAgQWJoaXNoZWsgQXJ5YSAgPGluZmVy
bm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAppbmRleCA0YzZlMzAzLi44MjYwZmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKQEAgLTQ2MywxMyAr
NDYzLDYgQEAgQXRvbWljU3RyaW5nIHY4Tm9uU3RyaW5nVmFsdWVUb0F0b21pY1dlYkNvcmVTdHJp
bmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iamVjdCkKICAgICByZXR1cm4gQXRvbWljU3RyaW5n
KHY4Tm9uU3RyaW5nVmFsdWVUb1dlYkNvcmVTdHJpbmcob2JqZWN0KSk7CiB9CiAKLXN0YXRpYyBi
b29sIHN0cmluZ0ltcGxDYWNoZUVuYWJsZWQgPSBmYWxzZTsKLQotdm9pZCBlbmFibGVTdHJpbmdJ
bXBsQ2FjaGUoKQotewotICAgIHN0cmluZ0ltcGxDYWNoZUVuYWJsZWQgPSB0cnVlOwotfQotCiBz
dGF0aWMgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IG1ha2VFeHRlcm5hbFN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKICAgICBXZWJDb3JlU3RyaW5nUmVzb3VyY2UqIHN0cmluZ1Jlc291cmNl
ID0gbmV3IFdlYkNvcmVTdHJpbmdSZXNvdXJjZShzdHJpbmcpOwpAQCAtNDgwLDQzICs0NzMsMzIg
QEAgc3RhdGljIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBtYWtlRXh0ZXJuYWxTdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiAgICAgcmV0dXJuIG5ld1N0cmluZzsKIH0KIAotdHlwZWRlZiBIYXNo
TWFwPFN0cmluZ0ltcGwqLCB2ODo6U3RyaW5nKj4gU3RyaW5nQ2FjaGU7Ci0KLXN0YXRpYyBTdHJp
bmdDYWNoZSYgZ2V0U3RyaW5nQ2FjaGUoKQotewotICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVh
ZCgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ0NhY2hlLCBtYWluVGhyZWFkU3Ry
aW5nQ2FjaGUsICgpKTsKLSAgICByZXR1cm4gbWFpblRocmVhZFN0cmluZ0NhY2hlOwotfQotCiBz
dGF0aWMgdm9pZCBjYWNoZWRTdHJpbmdDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+
IHdyYXBwZXIsIHZvaWQqIHBhcmFtZXRlcikKIHsKLSAgICBBU1NFUlQoV1RGOjppc01haW5UaHJl
YWQoKSk7CiAgICAgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0YXRpY19jYXN0PFN0cmluZ0lt
cGwqPihwYXJhbWV0ZXIpOwotICAgIEFTU0VSVChnZXRTdHJpbmdDYWNoZSgpLmNvbnRhaW5zKHN0
cmluZ0ltcGwpKTsKLSAgICBnZXRTdHJpbmdDYWNoZSgpLnJlbW92ZShzdHJpbmdJbXBsKTsKKyAg
ICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5zdHJpbmdDYWNoZSgpLT5yZW1v
dmUoc3RyaW5nSW1wbCk7CiAgICAgd3JhcHBlci5EaXNwb3NlKCk7CiAgICAgc3RyaW5nSW1wbC0+
ZGVyZWYoKTsKIH0KIAotUmVmUHRyPFN0cmluZ0ltcGw+IGxhc3RTdHJpbmdJbXBsID0gMDsKLXY4
OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGxhc3RWOFN0cmluZzsKK3ZvaWQgU3RyaW5nQ2FjaGU6
OnJlbW92ZShTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKSAKK3sKKyAgICBBU1NFUlQobV9zdHJpbmdD
YWNoZS5jb250YWlucyhzdHJpbmdJbXBsKSk7CisgICAgbV9zdHJpbmdDYWNoZS5yZW1vdmUoc3Ry
aW5nSW1wbCk7Cit9CisKIAotdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdT
bG93KFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpCit2ODo6TG9jYWw8djg6OlN0cmluZz4gU3RyaW5n
Q2FjaGU6OnY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpCiB7CiAg
ICAgaWYgKCFzdHJpbmdJbXBsLT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6
OkVtcHR5KCk7CiAKLSAgICBpZiAoIXN0cmluZ0ltcGxDYWNoZUVuYWJsZWQpCi0gICAgICAgIHJl
dHVybiBtYWtlRXh0ZXJuYWxTdHJpbmcoU3RyaW5nKHN0cmluZ0ltcGwpKTsKLQotICAgIFN0cmlu
Z0NhY2hlJiBzdHJpbmdDYWNoZSA9IGdldFN0cmluZ0NhY2hlKCk7Ci0gICAgdjg6OlN0cmluZyog
Y2FjaGVkVjhTdHJpbmcgPSBzdHJpbmdDYWNoZS5nZXQoc3RyaW5nSW1wbCk7CisgICAgdjg6OlN0
cmluZyogY2FjaGVkVjhTdHJpbmcgPSBtX3N0cmluZ0NhY2hlLmdldChzdHJpbmdJbXBsKTsKICAg
ICBpZiAoY2FjaGVkVjhTdHJpbmcpIHsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gaGFuZGxlKGNhY2hlZFY4U3RyaW5nKTsKICAgICAgICAgaWYgKCFoYW5kbGUuSXNOZWFyRGVh
dGgoKSAmJiAhaGFuZGxlLklzRW1wdHkoKSkgewotICAgICAgICAgICAgbGFzdFN0cmluZ0ltcGwg
PSBzdHJpbmdJbXBsOwotICAgICAgICAgICAgbGFzdFY4U3RyaW5nID0gaGFuZGxlOworICAgICAg
ICAgICAgbV9sYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7CisgICAgICAgICAgICBtX2xhc3RW
OFN0cmluZyA9IGhhbmRsZTsKICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmlu
Zz46Ok5ldyhoYW5kbGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTMxLDEwICs1MTMsMTAgQEAg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwqIHN0
cmluZ0ltcGwpCiAKICAgICBzdHJpbmdJbXBsLT5yZWYoKTsKICAgICB3cmFwcGVyLk1ha2VXZWFr
KHN0cmluZ0ltcGwsIGNhY2hlZFN0cmluZ0NhbGxiYWNrKTsKLSAgICBzdHJpbmdDYWNoZS5zZXQo
c3RyaW5nSW1wbCwgKndyYXBwZXIpOworICAgIG1fc3RyaW5nQ2FjaGUuc2V0KHN0cmluZ0ltcGws
ICp3cmFwcGVyKTsKIAotICAgIGxhc3RTdHJpbmdJbXBsID0gc3RyaW5nSW1wbDsKLSAgICBsYXN0
VjhTdHJpbmcgPSB3cmFwcGVyOworICAgIG1fbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOwor
ICAgIG1fbGFzdFY4U3RyaW5nID0gd3JhcHBlcjsKIAogICAgIHJldHVybiBuZXdTdHJpbmc7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGIzYTkzNTYuLjZlNzZm
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC01MCw2ICs1MCw0
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKICAgICB0eXBlZGVmIEJpbmRpbmdTZWN1
cml0eTxWOEJpbmRpbmc+IFY4QmluZGluZ1NlY3VyaXR5OwogCisgICAgY2xhc3MgU3RyaW5nQ2Fj
aGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgU3RyaW5nQ2FjaGUoKSB7IH0KKworICAgICAgICB2
ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZyhTdHJpbmdJbXBsKiBzdHJpbmdJ
bXBsKSAKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fbGFzdFN0cmluZ0ltcGwuZ2V0KCkg
PT0gc3RyaW5nSW1wbCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCghbV9sYXN0VjhTdHJpbmcu
SXNOZWFyRGVhdGgoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFtX2xhc3RWOFN0cmluZy5J
c0VtcHR5KCkpOworICAgICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46
Ok5ldyhtX2xhc3RWOFN0cmluZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVy
biB2OEV4dGVybmFsU3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZvaWQgY2xlYXJPbkdDKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbGFzdFN0cmluZ0lt
cGwgPSAwOworICAgICAgICAgICAgbV9sYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZvaWQgcmVtb3ZlKFN0cmluZ0ltcGwqKTsKKworICAgIHByaXZhdGU6CisgICAg
ICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBs
Kik7CisKKyAgICAgICAgSGFzaE1hcDxTdHJpbmdJbXBsKiwgdjg6OlN0cmluZyo+IG1fc3RyaW5n
Q2FjaGU7CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1fbGFzdFY4U3RyaW5n
OworICAgICAgICAvLyBOb3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmlu
Z0ltcGwqIGVxdWFsaXR5LCBub3QgaWRlbnRpdHkKKyAgICAgICAgLy8gaGVuY2UgbGFzdFN0cmlu
Z0ltcGwgbWlnaHQgYmUgbm90IGEga2V5IG9mIHRoZSBjYWNoZSAoaW4gc2Vuc2Ugb2YgaWRlbnRp
dHkpCisgICAgICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBvbiBhZGRpdGlvbi4KKyAg
ICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fbGFzdFN0cmluZ0ltcGw7CisgICAgfTsKKwogICAg
IGNsYXNzIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0
YXRpYyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogY3JlYXRlKHY4OjpJc29sYXRlKik7CkBAIC03
Miw2ICsxMDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwJiB0
ZW1wbGF0ZU1hcCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVzOyB9CiAgICAgICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpTdHJpbmc+JiB0b1N0cmluZ05hbWUoKSB7IHJldHVybiBtX3RvU3RyaW5nTmFtZTsg
fQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIHRvU3RyaW5n
VGVtcGxhdGUoKSB7IHJldHVybiBtX3RvU3RyaW5nVGVtcGxhdGU7IH0KKyAgICAgICAgU3RyaW5n
Q2FjaGUqIHN0cmluZ0NhY2hlKCkgeyByZXR1cm4gJm1fc3RyaW5nQ2FjaGU7IH0KIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4OjpJc29s
YXRlKik7CkBAIC04MSw2ICsxMTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRl
bXBsYXRlTWFwIG1fdGVtcGxhdGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5n
PiBtX3RvU3RyaW5nTmFtZTsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+IG1fdG9TdHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgU3RyaW5nQ2FjaGUgbV9zdHJpbmdD
YWNoZTsKICAgICB9OwogCiAKQEAgLTEwMyw0MCArMTM5LDI4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBTdHJpbmcgdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdmFsdWUpOwogCiAgICAgLy8gQ29udmVydCB2OCB0eXBlcyB0byBhIFdURjo6QXRvbWljU3Ry
aW5nLgotICAgIGlubGluZSBBdG9taWNTdHJpbmcgdjhTdHJpbmdUb0F0b21pY1dlYkNvcmVTdHJp
bmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmluZykKKyAgICBBdG9taWNTdHJpbmcgdjhT
dHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmlu
ZykKICAgICB7CiAgICAgICAgIHJldHVybiB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZzxBdG9taWNT
dHJpbmc+KHY4U3RyaW5nLCBFeHRlcm5hbGl6ZSk7CiAgICAgfQogICAgIEF0b21pY1N0cmluZyB2
OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVl
Pik7CiAgICAgQXRvbWljU3RyaW5nIHY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcodjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAotICAgIC8vIE5vdGU6IFJlZlB0ciBpcyBhIG11c3Qg
YXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHksIG5vdCBpZGVudGl0eQotICAgIC8v
IGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1pZ2h0IGJlIG5vdCBhIGtleSBvZiB0aGUgY2FjaGUgKGlu
IHNlbnNlIG9mIGlkZW50aXR5KQotICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBvbiBh
ZGRpdGlvbi4KLSAgICBleHRlcm4gUmVmUHRyPFN0cmluZ0ltcGw+IGxhc3RTdHJpbmdJbXBsOwot
ICAgIGV4dGVybiB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Ci0gICAg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwqIHN0
cmluZ0ltcGwpOwotCiAgICAgLy8gUmV0dXJuIGEgVjggZXh0ZXJuYWwgc3RyaW5nIHRoYXQgc2hh
cmVzIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlciB3aXRoIHRoZSBnaXZlbgogICAgIC8vIFdlYkNvcmUg
c3RyaW5nLiBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIG1lY2hhbmlzbSBpcyB1c2VkIHRvIGtlZXAg
dGhlCiAgICAgLy8gdW5kZXJseWluZyBidWZmZXIgYWxpdmUgd2hpbGUgdGhlIHN0cmluZyBpcyBz
dGlsbCBsaXZlIGluIHRoZSBWOCBlbmdpbmUuCi0gICAgaW5saW5lIHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiB2OEV4dGVybmFsU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAg
IHsKICAgICAgICAgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0cmluZy5pbXBsKCk7CiAgICAg
ICAgIGlmICghc3RyaW5nSW1wbCkKICAgICAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpFbXB0
eSgpOwogCi0gICAgICAgIGlmIChsYXN0U3RyaW5nSW1wbC5nZXQoKSA9PSBzdHJpbmdJbXBsKSB7
Ci0gICAgICAgICAgICBBU1NFUlQoIWxhc3RWOFN0cmluZy5Jc05lYXJEZWF0aCgpKTsKLSAgICAg
ICAgICAgIEFTU0VSVCghbGFzdFY4U3RyaW5nLklzRW1wdHkoKSk7Ci0gICAgICAgICAgICByZXR1
cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXcobGFzdFY4U3RyaW5nKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybiB2OEV4dGVybmFsU3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAg
ICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YTo6Y3VycmVudCgpOworICAgICAgICByZXR1cm4gZGF0YS0+c3RyaW5nQ2FjaGUoKS0+djhFeHRl
cm5hbFN0cmluZyhzdHJpbmdJbXBsKTsKICAgICB9CiAKICAgICAvLyBDb252ZXJ0IGEgc3RyaW5n
IHRvIGEgVjggc3RyaW5nLgotICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gdjhT
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewogICAgICAgICByZXR1cm4gdjhFeHRl
cm5hbFN0cmluZyhzdHJpbmcpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4R0NDb250cm9sbGVyLmNwcAppbmRleCBmYWYyMDljLi5lYjlhYjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC00NjcsOCArNDY3LDgg
QEAgdm9pZCBWOEdDQ29udHJvbGxlcjo6Z2NQcm9sb2d1ZSgpCiAgICAgZ3JvdXBlclZpc2l0b3Iu
YXBwbHlHcm91cGluZygpOwogCiAgICAgLy8gQ2xlYW4gc2luZ2xlIGVsZW1lbnQgY2FjaGUgZm9y
IHN0cmluZyBjb252ZXJzaW9ucy4KLSAgICBsYXN0U3RyaW5nSW1wbCA9IDA7Ci0gICAgbGFzdFY4
U3RyaW5nLkNsZWFyKCk7CisgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJp
bmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgIGRhdGEtPnN0cmluZ0NhY2hlKCkt
PmNsZWFyT25HQygpOwogfQogCiBjbGFzcyBHQ0VwaWxvZ3VlVmlzaXRvciA6IHB1YmxpYyBET01X
cmFwcGVyTWFwPHZvaWQ+OjpWaXNpdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MGFiOGJjYi4uMTgxYTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wNi0xNyAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjY1MworICAgICAgICBbVjhdW0Nocm9taXVt
XSBNYWtlIFN0cmluZ0NhY2hlIGluIFY4IGJpbmRpbmdzIHBlci1pc29sYXRlCisgICAgICAgIFRo
aXMgbW92ZXMgU3RyaW5nQ2FjaGUgaW50byBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YS4KKworICAg
ICAgICAqIHNyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2NyaXB0Q29udHJvbGxlcjo6ZW5hYmxlVjhTaW5nbGVUaHJlYWRNb2RlKTogU3RyaW5nQ2FjaGUg
aXMgbm93IHBlci1pc29sYXRlLCBzbyBvayBpbiBtdWx0aXRocmVhZGVkIGNvbnRleHRzLgorCiAy
MDExLTA2LTE3ICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMTBiYzY4Zi4uYmE3MTcyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAK
QEAgLTQ4LDcgKzQ4LDYgQEAgdm9pZCBXZWJTY3JpcHRDb250cm9sbGVyOjpyZWdpc3RlckV4dGVu
c2lvbih2ODo6RXh0ZW5zaW9uKiBleHRlbnNpb24pCiAKIHZvaWQgV2ViU2NyaXB0Q29udHJvbGxl
cjo6ZW5hYmxlVjhTaW5nbGVUaHJlYWRNb2RlKCkKIHsKLSAgICBlbmFibGVTdHJpbmdJbXBsQ2Fj
aGUoKTsKICAgICBlbmFibGVGYXN0ZXJET01TdG9yZUFjY2VzcygpOwogfQogCg==
</data>
<flag name="commit-queue"
          id="91675"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97660</attachid>
            <date>2011-06-17 15:37:56 -0700</date>
            <delta_ts>2011-06-21 11:56:17 -0700</delta_ts>
            <desc>Build fixed</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>9479</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YjFlNDY2Li5lMDc5MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDYtMTcgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FjaGU6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Ry
aW5nQ2FjaGU6OlN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjpjbGVhck9u
R0MpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0Nh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjpnY1Byb2xvZ3VlKToKKwogMjAxMS0wNi0xNyAgQWJoaXNoZWsgQXJ5YSAgPGluZmVy
bm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAppbmRleCA0YzZlMzAzLi44MjYwZmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKQEAgLTQ2MywxMyAr
NDYzLDYgQEAgQXRvbWljU3RyaW5nIHY4Tm9uU3RyaW5nVmFsdWVUb0F0b21pY1dlYkNvcmVTdHJp
bmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iamVjdCkKICAgICByZXR1cm4gQXRvbWljU3RyaW5n
KHY4Tm9uU3RyaW5nVmFsdWVUb1dlYkNvcmVTdHJpbmcob2JqZWN0KSk7CiB9CiAKLXN0YXRpYyBi
b29sIHN0cmluZ0ltcGxDYWNoZUVuYWJsZWQgPSBmYWxzZTsKLQotdm9pZCBlbmFibGVTdHJpbmdJ
bXBsQ2FjaGUoKQotewotICAgIHN0cmluZ0ltcGxDYWNoZUVuYWJsZWQgPSB0cnVlOwotfQotCiBz
dGF0aWMgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IG1ha2VFeHRlcm5hbFN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKICAgICBXZWJDb3JlU3RyaW5nUmVzb3VyY2UqIHN0cmluZ1Jlc291cmNl
ID0gbmV3IFdlYkNvcmVTdHJpbmdSZXNvdXJjZShzdHJpbmcpOwpAQCAtNDgwLDQzICs0NzMsMzIg
QEAgc3RhdGljIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBtYWtlRXh0ZXJuYWxTdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiAgICAgcmV0dXJuIG5ld1N0cmluZzsKIH0KIAotdHlwZWRlZiBIYXNo
TWFwPFN0cmluZ0ltcGwqLCB2ODo6U3RyaW5nKj4gU3RyaW5nQ2FjaGU7Ci0KLXN0YXRpYyBTdHJp
bmdDYWNoZSYgZ2V0U3RyaW5nQ2FjaGUoKQotewotICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVh
ZCgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ0NhY2hlLCBtYWluVGhyZWFkU3Ry
aW5nQ2FjaGUsICgpKTsKLSAgICByZXR1cm4gbWFpblRocmVhZFN0cmluZ0NhY2hlOwotfQotCiBz
dGF0aWMgdm9pZCBjYWNoZWRTdHJpbmdDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+
IHdyYXBwZXIsIHZvaWQqIHBhcmFtZXRlcikKIHsKLSAgICBBU1NFUlQoV1RGOjppc01haW5UaHJl
YWQoKSk7CiAgICAgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0YXRpY19jYXN0PFN0cmluZ0lt
cGwqPihwYXJhbWV0ZXIpOwotICAgIEFTU0VSVChnZXRTdHJpbmdDYWNoZSgpLmNvbnRhaW5zKHN0
cmluZ0ltcGwpKTsKLSAgICBnZXRTdHJpbmdDYWNoZSgpLnJlbW92ZShzdHJpbmdJbXBsKTsKKyAg
ICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5zdHJpbmdDYWNoZSgpLT5yZW1v
dmUoc3RyaW5nSW1wbCk7CiAgICAgd3JhcHBlci5EaXNwb3NlKCk7CiAgICAgc3RyaW5nSW1wbC0+
ZGVyZWYoKTsKIH0KIAotUmVmUHRyPFN0cmluZ0ltcGw+IGxhc3RTdHJpbmdJbXBsID0gMDsKLXY4
OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGxhc3RWOFN0cmluZzsKK3ZvaWQgU3RyaW5nQ2FjaGU6
OnJlbW92ZShTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKSAKK3sKKyAgICBBU1NFUlQobV9zdHJpbmdD
YWNoZS5jb250YWlucyhzdHJpbmdJbXBsKSk7CisgICAgbV9zdHJpbmdDYWNoZS5yZW1vdmUoc3Ry
aW5nSW1wbCk7Cit9CisKIAotdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdT
bG93KFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpCit2ODo6TG9jYWw8djg6OlN0cmluZz4gU3RyaW5n
Q2FjaGU6OnY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpCiB7CiAg
ICAgaWYgKCFzdHJpbmdJbXBsLT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6
OkVtcHR5KCk7CiAKLSAgICBpZiAoIXN0cmluZ0ltcGxDYWNoZUVuYWJsZWQpCi0gICAgICAgIHJl
dHVybiBtYWtlRXh0ZXJuYWxTdHJpbmcoU3RyaW5nKHN0cmluZ0ltcGwpKTsKLQotICAgIFN0cmlu
Z0NhY2hlJiBzdHJpbmdDYWNoZSA9IGdldFN0cmluZ0NhY2hlKCk7Ci0gICAgdjg6OlN0cmluZyog
Y2FjaGVkVjhTdHJpbmcgPSBzdHJpbmdDYWNoZS5nZXQoc3RyaW5nSW1wbCk7CisgICAgdjg6OlN0
cmluZyogY2FjaGVkVjhTdHJpbmcgPSBtX3N0cmluZ0NhY2hlLmdldChzdHJpbmdJbXBsKTsKICAg
ICBpZiAoY2FjaGVkVjhTdHJpbmcpIHsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gaGFuZGxlKGNhY2hlZFY4U3RyaW5nKTsKICAgICAgICAgaWYgKCFoYW5kbGUuSXNOZWFyRGVh
dGgoKSAmJiAhaGFuZGxlLklzRW1wdHkoKSkgewotICAgICAgICAgICAgbGFzdFN0cmluZ0ltcGwg
PSBzdHJpbmdJbXBsOwotICAgICAgICAgICAgbGFzdFY4U3RyaW5nID0gaGFuZGxlOworICAgICAg
ICAgICAgbV9sYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7CisgICAgICAgICAgICBtX2xhc3RW
OFN0cmluZyA9IGhhbmRsZTsKICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmlu
Zz46Ok5ldyhoYW5kbGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTMxLDEwICs1MTMsMTAgQEAg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmdTbG93KFN0cmluZ0ltcGwqIHN0
cmluZ0ltcGwpCiAKICAgICBzdHJpbmdJbXBsLT5yZWYoKTsKICAgICB3cmFwcGVyLk1ha2VXZWFr
KHN0cmluZ0ltcGwsIGNhY2hlZFN0cmluZ0NhbGxiYWNrKTsKLSAgICBzdHJpbmdDYWNoZS5zZXQo
c3RyaW5nSW1wbCwgKndyYXBwZXIpOworICAgIG1fc3RyaW5nQ2FjaGUuc2V0KHN0cmluZ0ltcGws
ICp3cmFwcGVyKTsKIAotICAgIGxhc3RTdHJpbmdJbXBsID0gc3RyaW5nSW1wbDsKLSAgICBsYXN0
VjhTdHJpbmcgPSB3cmFwcGVyOworICAgIG1fbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOwor
ICAgIG1fbGFzdFY4U3RyaW5nID0gd3JhcHBlcjsKIAogICAgIHJldHVybiBuZXdTdHJpbmc7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGIzYTkzNTYuLmUzMmM3
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC01MCw2ICs1MCw0
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKICAgICB0eXBlZGVmIEJpbmRpbmdTZWN1
cml0eTxWOEJpbmRpbmc+IFY4QmluZGluZ1NlY3VyaXR5OwogCisgICAgY2xhc3MgU3RyaW5nQ2Fj
aGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgU3RyaW5nQ2FjaGUoKSB7IH0KKworICAgICAgICB2
ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZyhTdHJpbmdJbXBsKiBzdHJpbmdJ
bXBsKSAKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fbGFzdFN0cmluZ0ltcGwuZ2V0KCkg
PT0gc3RyaW5nSW1wbCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCghbV9sYXN0VjhTdHJpbmcu
SXNOZWFyRGVhdGgoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFtX2xhc3RWOFN0cmluZy5J
c0VtcHR5KCkpOworICAgICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0cmluZz46
Ok5ldyhtX2xhc3RWOFN0cmluZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVy
biB2OEV4dGVybmFsU3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZvaWQgY2xlYXJPbkdDKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbGFzdFN0cmluZ0lt
cGwgPSAwOworICAgICAgICAgICAgbV9sYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZvaWQgcmVtb3ZlKFN0cmluZ0ltcGwqKTsKKworICAgIHByaXZhdGU6CisgICAg
ICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBs
Kik7CisKKyAgICAgICAgSGFzaE1hcDxTdHJpbmdJbXBsKiwgdjg6OlN0cmluZyo+IG1fc3RyaW5n
Q2FjaGU7CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1fbGFzdFY4U3RyaW5n
OworICAgICAgICAvLyBOb3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmlu
Z0ltcGwqIGVxdWFsaXR5LCBub3QgaWRlbnRpdHkKKyAgICAgICAgLy8gaGVuY2UgbGFzdFN0cmlu
Z0ltcGwgbWlnaHQgYmUgbm90IGEga2V5IG9mIHRoZSBjYWNoZSAoaW4gc2Vuc2Ugb2YgaWRlbnRp
dHkpCisgICAgICAgIC8vIGFuZCBoZW5jZSBpdCdzIG5vdCByZWZlZCBvbiBhZGRpdGlvbi4KKyAg
ICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fbGFzdFN0cmluZ0ltcGw7CisgICAgfTsKKwogICAg
IGNsYXNzIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0
YXRpYyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogY3JlYXRlKHY4OjpJc29sYXRlKik7CkBAIC03
Miw2ICsxMDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwJiB0
ZW1wbGF0ZU1hcCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVzOyB9CiAgICAgICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpTdHJpbmc+JiB0b1N0cmluZ05hbWUoKSB7IHJldHVybiBtX3RvU3RyaW5nTmFtZTsg
fQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIHRvU3RyaW5n
VGVtcGxhdGUoKSB7IHJldHVybiBtX3RvU3RyaW5nVGVtcGxhdGU7IH0KKyAgICAgICAgU3RyaW5n
Q2FjaGUqIHN0cmluZ0NhY2hlKCkgeyByZXR1cm4gJm1fc3RyaW5nQ2FjaGU7IH0KIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4OjpJc29s
YXRlKik7CkBAIC04MSw2ICsxMTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRl
bXBsYXRlTWFwIG1fdGVtcGxhdGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5n
PiBtX3RvU3RyaW5nTmFtZTsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+IG1fdG9TdHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgU3RyaW5nQ2FjaGUgbV9zdHJpbmdD
YWNoZTsKICAgICB9OwogCiAKQEAgLTExMCwxMyArMTQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIEF0b21pY1N0cmluZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5n
KHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAgICAgQXRvbWljU3RyaW5nIHY4VmFsdWVUb0F0b21p
Y1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAotICAgIC8vIE5v
dGU6IFJlZlB0ciBpcyBhIG11c3QgYXMgd2UgY2FjaGUgYnkgU3RyaW5nSW1wbCogZXF1YWxpdHks
IG5vdCBpZGVudGl0eQotICAgIC8vIGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1pZ2h0IGJlIG5vdCBh
IGtleSBvZiB0aGUgY2FjaGUgKGluIHNlbnNlIG9mIGlkZW50aXR5KQotICAgIC8vIGFuZCBoZW5j
ZSBpdCdzIG5vdCByZWZlZCBvbiBhZGRpdGlvbi4KLSAgICBleHRlcm4gUmVmUHRyPFN0cmluZ0lt
cGw+IGxhc3RTdHJpbmdJbXBsOwotICAgIGV4dGVybiB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5n
PiBsYXN0VjhTdHJpbmc7Ci0gICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJp
bmdTbG93KFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwpOwotCiAgICAgLy8gUmV0dXJuIGEgVjggZXh0
ZXJuYWwgc3RyaW5nIHRoYXQgc2hhcmVzIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlciB3aXRoIHRoZSBn
aXZlbgogICAgIC8vIFdlYkNvcmUgc3RyaW5nLiBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIG1lY2hh
bmlzbSBpcyB1c2VkIHRvIGtlZXAgdGhlCiAgICAgLy8gdW5kZXJseWluZyBidWZmZXIgYWxpdmUg
d2hpbGUgdGhlIHN0cmluZyBpcyBzdGlsbCBsaXZlIGluIHRoZSBWOCBlbmdpbmUuCkBAIC0xMjYs
MTMgKzE1NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaWYgKCFzdHJpbmdJbXBs
KQogICAgICAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6OkVtcHR5KCk7CiAKLSAgICAgICAgaWYg
KGxhc3RTdHJpbmdJbXBsLmdldCgpID09IHN0cmluZ0ltcGwpIHsKLSAgICAgICAgICAgIEFTU0VS
VCghbGFzdFY4U3RyaW5nLklzTmVhckRlYXRoKCkpOwotICAgICAgICAgICAgQVNTRVJUKCFsYXN0
VjhTdHJpbmcuSXNFbXB0eSgpKTsKLSAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlN0
cmluZz46Ok5ldyhsYXN0VjhTdHJpbmcpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHY4
RXh0ZXJuYWxTdHJpbmdTbG93KHN0cmluZ0ltcGwpOworICAgICAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAg
ICAgIHJldHVybiBkYXRhLT5zdHJpbmdDYWNoZSgpLT52OEV4dGVybmFsU3RyaW5nKHN0cmluZ0lt
cGwpOwogICAgIH0KIAogICAgIC8vIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBWOCBzdHJpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggZmFm
MjA5Yy4uZWI5YWIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhH
Q0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcApAQCAtNDY3LDggKzQ2Nyw4IEBAIHZvaWQgVjhHQ0NvbnRyb2xsZXI6OmdjUHJv
bG9ndWUoKQogICAgIGdyb3VwZXJWaXNpdG9yLmFwcGx5R3JvdXBpbmcoKTsKIAogICAgIC8vIENs
ZWFuIHNpbmdsZSBlbGVtZW50IGNhY2hlIGZvciBzdHJpbmcgY29udmVyc2lvbnMuCi0gICAgbGFz
dFN0cmluZ0ltcGwgPSAwOwotICAgIGxhc3RWOFN0cmluZy5DbGVhcigpOworICAgIFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KTsKKyAgICBkYXRhLT5zdHJpbmdDYWNoZSgpLT5jbGVhck9uR0MoKTsKIH0KIAogY2xhc3MgR0NF
cGlsb2d1ZVZpc2l0b3IgOiBwdWJsaWMgRE9NV3JhcHBlck1hcDx2b2lkPjo6VmlzaXRvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBhYjhiY2IuLjE4MWE3MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMTcgIERtaXRyeSBMb21v
diAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0gTWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5k
aW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlzIG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAgICAgKiBzcmMvV2ViU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZVY4U2lu
Z2xlVGhyZWFkTW9kZSk6IFN0cmluZ0NhY2hlIGlzIG5vdyBwZXItaXNvbGF0ZSwgc28gb2sgaW4g
bXVsdGl0aHJlYWRlZCBjb250ZXh0cy4KKwogMjAxMS0wNi0xNyAgQ2hyaXMgUm9nZXJzICA8Y3Jv
Z2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDEwYmM2OGYuLmJhNzE3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC00OCw3ICs0OCw2IEBAIHZvaWQgV2ViU2Ny
aXB0Q29udHJvbGxlcjo6cmVnaXN0ZXJFeHRlbnNpb24odjg6OkV4dGVuc2lvbiogZXh0ZW5zaW9u
KQogCiB2b2lkIFdlYlNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZVY4U2luZ2xlVGhyZWFkTW9kZSgp
CiB7Ci0gICAgZW5hYmxlU3RyaW5nSW1wbENhY2hlKCk7CiAgICAgZW5hYmxlRmFzdGVyRE9NU3Rv
cmVBY2Nlc3MoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98033</attachid>
            <date>2011-06-21 11:56:17 -0700</date>
            <delta_ts>2011-06-21 12:58:16 -0700</delta_ts>
            <desc>New patch, with eager initialization of V8BindingPerIsolateData in WebKit::initialize</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>10332</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMWQ0MzY0Li44ZDdiNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDYtMjEgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FjaGU6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Ry
aW5nQ2FjaGU6OlN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjpjbGVhck9u
R0MpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0Nh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjpnY1Byb2xvZ3VlKToKKwogMjAxMS0wNi0yMSAgRGlyayBTY2h1bHplICA8a3JpdEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uODI2MGZmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00NjMsMTMgKzQ2Myw2IEBA
IEF0b21pY1N0cmluZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmplY3QpCiAgICAgcmV0dXJuIEF0b21pY1N0cmluZyh2OE5vblN0
cmluZ1ZhbHVlVG9XZWJDb3JlU3RyaW5nKG9iamVjdCkpOwogfQogCi1zdGF0aWMgYm9vbCBzdHJp
bmdJbXBsQ2FjaGVFbmFibGVkID0gZmFsc2U7Ci0KLXZvaWQgZW5hYmxlU3RyaW5nSW1wbENhY2hl
KCkKLXsKLSAgICBzdHJpbmdJbXBsQ2FjaGVFbmFibGVkID0gdHJ1ZTsKLX0KLQogc3RhdGljIHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBtYWtlRXh0ZXJuYWxTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7CiAgICAgV2ViQ29yZVN0cmluZ1Jlc291cmNlKiBzdHJpbmdSZXNvdXJjZSA9IG5ldyBX
ZWJDb3JlU3RyaW5nUmVzb3VyY2Uoc3RyaW5nKTsKQEAgLTQ4MCw0MyArNDczLDMyIEBAIHN0YXRp
YyB2ODo6TG9jYWw8djg6OlN0cmluZz4gbWFrZUV4dGVybmFsU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogICAgIHJldHVybiBuZXdTdHJpbmc7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxTdHJp
bmdJbXBsKiwgdjg6OlN0cmluZyo+IFN0cmluZ0NhY2hlOwotCi1zdGF0aWMgU3RyaW5nQ2FjaGUm
IGdldFN0cmluZ0NhY2hlKCkKLXsKLSAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdDYWNoZSwgbWFpblRocmVhZFN0cmluZ0NhY2hl
LCAoKSk7Ci0gICAgcmV0dXJuIG1haW5UaHJlYWRTdHJpbmdDYWNoZTsKLX0KLQogc3RhdGljIHZv
aWQgY2FjaGVkU3RyaW5nQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB3cmFwcGVy
LCB2b2lkKiBwYXJhbWV0ZXIpCiB7Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwog
ICAgIFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwgPSBzdGF0aWNfY2FzdDxTdHJpbmdJbXBsKj4ocGFy
YW1ldGVyKTsKLSAgICBBU1NFUlQoZ2V0U3RyaW5nQ2FjaGUoKS5jb250YWlucyhzdHJpbmdJbXBs
KSk7Ci0gICAgZ2V0U3RyaW5nQ2FjaGUoKS5yZW1vdmUoc3RyaW5nSW1wbCk7CisgICAgVjhCaW5k
aW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+c3RyaW5nQ2FjaGUoKS0+cmVtb3ZlKHN0cmlu
Z0ltcGwpOwogICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAgIHN0cmluZ0ltcGwtPmRlcmVmKCk7
CiB9CiAKLVJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0U3RyaW5nSW1wbCA9IDA7Ci12ODo6UGVyc2lz
dGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Cit2b2lkIFN0cmluZ0NhY2hlOjpyZW1vdmUo
U3RyaW5nSW1wbCogc3RyaW5nSW1wbCkgCit7CisgICAgQVNTRVJUKG1fc3RyaW5nQ2FjaGUuY29u
dGFpbnMoc3RyaW5nSW1wbCkpOworICAgIG1fc3RyaW5nQ2FjaGUucmVtb3ZlKHN0cmluZ0ltcGwp
OworfQorCiAKLXY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJp
bmdJbXBsKiBzdHJpbmdJbXBsKQordjg6OkxvY2FsPHY4OjpTdHJpbmc+IFN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogewogICAgIGlmICgh
c3RyaW5nSW1wbC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpFbXB0eSgp
OwogCi0gICAgaWYgKCFzdHJpbmdJbXBsQ2FjaGVFbmFibGVkKQotICAgICAgICByZXR1cm4gbWFr
ZUV4dGVybmFsU3RyaW5nKFN0cmluZyhzdHJpbmdJbXBsKSk7Ci0KLSAgICBTdHJpbmdDYWNoZSYg
c3RyaW5nQ2FjaGUgPSBnZXRTdHJpbmdDYWNoZSgpOwotICAgIHY4OjpTdHJpbmcqIGNhY2hlZFY4
U3RyaW5nID0gc3RyaW5nQ2FjaGUuZ2V0KHN0cmluZ0ltcGwpOworICAgIHY4OjpTdHJpbmcqIGNh
Y2hlZFY4U3RyaW5nID0gbV9zdHJpbmdDYWNoZS5nZXQoc3RyaW5nSW1wbCk7CiAgICAgaWYgKGNh
Y2hlZFY4U3RyaW5nKSB7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGhhbmRs
ZShjYWNoZWRWOFN0cmluZyk7CiAgICAgICAgIGlmICghaGFuZGxlLklzTmVhckRlYXRoKCkgJiYg
IWhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGxhc3RTdHJpbmdJbXBsID0gc3RyaW5n
SW1wbDsKLSAgICAgICAgICAgIGxhc3RWOFN0cmluZyA9IGhhbmRsZTsKKyAgICAgICAgICAgIG1f
bGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOworICAgICAgICAgICAgbV9sYXN0VjhTdHJpbmcg
PSBoYW5kbGU7CiAgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXco
aGFuZGxlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTUzMSwxMCArNTEzLDEwIEBAIHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBs
KQogCiAgICAgc3RyaW5nSW1wbC0+cmVmKCk7CiAgICAgd3JhcHBlci5NYWtlV2VhayhzdHJpbmdJ
bXBsLCBjYWNoZWRTdHJpbmdDYWxsYmFjayk7Ci0gICAgc3RyaW5nQ2FjaGUuc2V0KHN0cmluZ0lt
cGwsICp3cmFwcGVyKTsKKyAgICBtX3N0cmluZ0NhY2hlLnNldChzdHJpbmdJbXBsLCAqd3JhcHBl
cik7CiAKLSAgICBsYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7Ci0gICAgbGFzdFY4U3RyaW5n
ID0gd3JhcHBlcjsKKyAgICBtX2xhc3RTdHJpbmdJbXBsID0gc3RyaW5nSW1wbDsKKyAgICBtX2xh
c3RWOFN0cmluZyA9IHdyYXBwZXI7CiAKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCBiM2E5MzU2Li5lMzJjNzI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtNTAsNiArNTAsNDAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAgICAgdHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8VjhC
aW5kaW5nPiBWOEJpbmRpbmdTZWN1cml0eTsKIAorICAgIGNsYXNzIFN0cmluZ0NhY2hlIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFN0cmluZ0NhY2hlKCkgeyB9CisKKyAgICAgICAgdjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmcoU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkgCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2xhc3RTdHJpbmdJbXBsLmdldCgpID09IHN0cmlu
Z0ltcGwpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIW1fbGFzdFY4U3RyaW5nLklzTmVhckRl
YXRoKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghbV9sYXN0VjhTdHJpbmcuSXNFbXB0eSgp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXcobV9s
YXN0VjhTdHJpbmcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdjhFeHRl
cm5hbFN0cmluZ1Nsb3coc3RyaW5nSW1wbCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGNs
ZWFyT25HQygpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2xhc3RTdHJpbmdJbXBsID0gMDsK
KyAgICAgICAgICAgIG1fbGFzdFY4U3RyaW5nLkNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAg
ICB2b2lkIHJlbW92ZShTdHJpbmdJbXBsKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2ODo6
TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCopOworCisg
ICAgICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIHY4OjpTdHJpbmcqPiBtX3N0cmluZ0NhY2hlOwor
ICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtX2xhc3RWOFN0cmluZzsKKyAgICAg
ICAgLy8gTm90ZTogUmVmUHRyIGlzIGEgbXVzdCBhcyB3ZSBjYWNoZSBieSBTdHJpbmdJbXBsKiBl
cXVhbGl0eSwgbm90IGlkZW50aXR5CisgICAgICAgIC8vIGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1p
Z2h0IGJlIG5vdCBhIGtleSBvZiB0aGUgY2FjaGUgKGluIHNlbnNlIG9mIGlkZW50aXR5KQorICAg
ICAgICAvLyBhbmQgaGVuY2UgaXQncyBub3QgcmVmZWQgb24gYWRkaXRpb24uCisgICAgICAgIFJl
ZlB0cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOworICAgIH07CisKICAgICBjbGFzcyBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0ZSh2ODo6SXNvbGF0ZSopOwpAQCAtNzIsNiArMTA2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1hcCYgdGVtcGxhdGVN
YXAoKSB7IHJldHVybiBtX3RlbXBsYXRlczsgfQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6
U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyByZXR1cm4gbV90b1N0cmluZ05hbWU7IH0KICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiB0b1N0cmluZ1RlbXBsYXRl
KCkgeyByZXR1cm4gbV90b1N0cmluZ1RlbXBsYXRlOyB9CisgICAgICAgIFN0cmluZ0NhY2hlKiBz
dHJpbmdDYWNoZSgpIHsgcmV0dXJuICZtX3N0cmluZ0NhY2hlOyB9CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBleHBsaWNpdCBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSopOwpA
QCAtODEsNiArMTE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1h
cCBtX3RlbXBsYXRlczsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV90b1N0
cmluZ05hbWU7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBt
X3RvU3RyaW5nVGVtcGxhdGU7CisgICAgICAgIFN0cmluZ0NhY2hlIG1fc3RyaW5nQ2FjaGU7CiAg
ICAgfTsKIAogCkBAIC0xMTAsMTMgKzE0Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBB
dG9taWNTdHJpbmcgdjhOb25TdHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZyh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4pOwogICAgIEF0b21pY1N0cmluZyB2OFZhbHVlVG9BdG9taWNXZWJDb3Jl
U3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSk7CiAKLSAgICAvLyBOb3RlOiBSZWZQ
dHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5LCBub3QgaWRl
bnRpdHkKLSAgICAvLyBoZW5jZSBsYXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3QgYSBrZXkgb2Yg
dGhlIGNhY2hlIChpbiBzZW5zZSBvZiBpZGVudGl0eSkKLSAgICAvLyBhbmQgaGVuY2UgaXQncyBu
b3QgcmVmZWQgb24gYWRkaXRpb24uCi0gICAgZXh0ZXJuIFJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0
U3RyaW5nSW1wbDsKLSAgICBleHRlcm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbGFzdFY4
U3RyaW5nOwotICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhT
dHJpbmdJbXBsKiBzdHJpbmdJbXBsKTsKLQogICAgIC8vIFJldHVybiBhIFY4IGV4dGVybmFsIHN0
cmluZyB0aGF0IHNoYXJlcyB0aGUgdW5kZXJseWluZyBidWZmZXIgd2l0aCB0aGUgZ2l2ZW4KICAg
ICAvLyBXZWJDb3JlIHN0cmluZy4gVGhlIHJlZmVyZW5jZSBjb3VudGluZyBtZWNoYW5pc20gaXMg
dXNlZCB0byBrZWVwIHRoZQogICAgIC8vIHVuZGVybHlpbmcgYnVmZmVyIGFsaXZlIHdoaWxlIHRo
ZSBzdHJpbmcgaXMgc3RpbGwgbGl2ZSBpbiB0aGUgVjggZW5naW5lLgpAQCAtMTI2LDEzICsxNTUs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGlmICghc3RyaW5nSW1wbCkKICAgICAg
ICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpFbXB0eSgpOwogCi0gICAgICAgIGlmIChsYXN0U3Ry
aW5nSW1wbC5nZXQoKSA9PSBzdHJpbmdJbXBsKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWxhc3RW
OFN0cmluZy5Jc05lYXJEZWF0aCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCghbGFzdFY4U3RyaW5n
LklzRW1wdHkoKSk7Ci0gICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpO
ZXcobGFzdFY4U3RyaW5nKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB2OEV4dGVybmFs
U3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEq
IGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgICAgICByZXR1
cm4gZGF0YS0+c3RyaW5nQ2FjaGUoKS0+djhFeHRlcm5hbFN0cmluZyhzdHJpbmdJbXBsKTsKICAg
ICB9CiAKICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgVjggc3RyaW5nLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGZhZjIwOWMuLmVi
OWFiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAKQEAgLTQ2Nyw4ICs0NjcsOCBAQCB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3VlKCkK
ICAgICBncm91cGVyVmlzaXRvci5hcHBseUdyb3VwaW5nKCk7CiAKICAgICAvLyBDbGVhbiBzaW5n
bGUgZWxlbWVudCBjYWNoZSBmb3Igc3RyaW5nIGNvbnZlcnNpb25zLgotICAgIGxhc3RTdHJpbmdJ
bXBsID0gMDsKLSAgICBsYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAg
ZGF0YS0+c3RyaW5nQ2FjaGUoKS0+Y2xlYXJPbkdDKCk7CiB9CiAKIGNsYXNzIEdDRXBpbG9ndWVW
aXNpdG9yIDogcHVibGljIERPTVdyYXBwZXJNYXA8dm9pZD46OlZpc2l0b3IgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAzMTQ2YzAwLi5jNGIwZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA2LTIxICBEbWl0cnkgTG9tb3YgIDxkc2xv
bW92QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjUzCisg
ICAgICAgIFtWOF1bQ2hyb21pdW1dIE1ha2UgU3RyaW5nQ2FjaGUgaW4gVjggYmluZGluZ3MgcGVy
LWlzb2xhdGUKKworICAgICAgICAqIHNyYy9XZWJLaXQuY3BwOgorICAgICAgICAoV2ViS2l0Ojpp
bml0aWFsaXplKTogSW5pdGlhbGl6ZSBWOFBlcklzb2xhdGVCaW5kaW5nRGF0YSBlYWdlcmx5Cisg
ICAgICAgICogc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTY3JpcHRDb250cm9sbGVyOjplbmFibGVWOFNpbmdsZVRocmVhZE1vZGUpOiBTdHJpbmdDYWNo
ZSBpcyBub3cgcGVyLWlzb2xhdGUsIHNvIG9rIGluIG11bHRpdGhyZWFkZWQgY29udGV4dHMuCisK
IDIwMTEtMDYtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Um9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJL
aXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcAppbmRleCBkMTMw
ZGQ1Li45MzE3NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJL
aXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKQEAgLTM2
LDYgKzM2LDggQEAKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlICJ2OC5o
IgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5oIgpAQCAtNzQsNiArNzYsOSBAQCB2b2lkIGluaXRpYWxpemUoV2ViS2l0
Q2xpZW50KiB3ZWJLaXRDbGllbnQpCiAgICAgLy8gdGhlIGluaXRpYWxpemF0aW9uIHRocmVhZC1z
YWZlLCBidXQgZ2l2ZW4gdGhhdCBzbyBtYW55IGNvZGUgcGF0aHMgdXNlCiAgICAgLy8gdGhpcywg
aW5pdGlhbGl6aW5nIHRoaXMgbGF6aWx5IHByb2JhYmx5IGRvZXNuJ3QgYnV5IHVzIG11Y2guCiAg
ICAgV2ViQ29yZTo6VVRGOEVuY29kaW5nKCk7CisKKyAgICB2ODo6Vjg6OkluaXRpYWxpemUoKTsK
KyAgICBXZWJDb3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6ZW5zdXJlSW5pdGlhbGl6ZWQo
djg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CiB9CiAKIHZvaWQgc2h1dGRvd24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCAxMGJjNjhmLi5iYTcxNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDgsNyArNDgsNiBAQCB2b2lkIFdlYlNjcmlw
dENvbnRyb2xsZXI6OnJlZ2lzdGVyRXh0ZW5zaW9uKHY4OjpFeHRlbnNpb24qIGV4dGVuc2lvbikK
IAogdm9pZCBXZWJTY3JpcHRDb250cm9sbGVyOjplbmFibGVWOFNpbmdsZVRocmVhZE1vZGUoKQog
ewotICAgIGVuYWJsZVN0cmluZ0ltcGxDYWNoZSgpOwogICAgIGVuYWJsZUZhc3RlckRPTVN0b3Jl
QWNjZXNzKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98043</attachid>
            <date>2011-06-21 12:42:36 -0700</date>
            <delta_ts>2011-06-21 13:03:08 -0700</delta_ts>
            <desc>Style nit fixed</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>10392</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMWQ0MzY0Li44ZDdiNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDYtMjEgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FjaGU6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Ry
aW5nQ2FjaGU6OlN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjpjbGVhck9u
R0MpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0Nh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjpnY1Byb2xvZ3VlKToKKwogMjAxMS0wNi0yMSAgRGlyayBTY2h1bHplICA8a3JpdEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uODI2MGZmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00NjMsMTMgKzQ2Myw2IEBA
IEF0b21pY1N0cmluZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmplY3QpCiAgICAgcmV0dXJuIEF0b21pY1N0cmluZyh2OE5vblN0
cmluZ1ZhbHVlVG9XZWJDb3JlU3RyaW5nKG9iamVjdCkpOwogfQogCi1zdGF0aWMgYm9vbCBzdHJp
bmdJbXBsQ2FjaGVFbmFibGVkID0gZmFsc2U7Ci0KLXZvaWQgZW5hYmxlU3RyaW5nSW1wbENhY2hl
KCkKLXsKLSAgICBzdHJpbmdJbXBsQ2FjaGVFbmFibGVkID0gdHJ1ZTsKLX0KLQogc3RhdGljIHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBtYWtlRXh0ZXJuYWxTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7CiAgICAgV2ViQ29yZVN0cmluZ1Jlc291cmNlKiBzdHJpbmdSZXNvdXJjZSA9IG5ldyBX
ZWJDb3JlU3RyaW5nUmVzb3VyY2Uoc3RyaW5nKTsKQEAgLTQ4MCw0MyArNDczLDMyIEBAIHN0YXRp
YyB2ODo6TG9jYWw8djg6OlN0cmluZz4gbWFrZUV4dGVybmFsU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogICAgIHJldHVybiBuZXdTdHJpbmc7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxTdHJp
bmdJbXBsKiwgdjg6OlN0cmluZyo+IFN0cmluZ0NhY2hlOwotCi1zdGF0aWMgU3RyaW5nQ2FjaGUm
IGdldFN0cmluZ0NhY2hlKCkKLXsKLSAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdDYWNoZSwgbWFpblRocmVhZFN0cmluZ0NhY2hl
LCAoKSk7Ci0gICAgcmV0dXJuIG1haW5UaHJlYWRTdHJpbmdDYWNoZTsKLX0KLQogc3RhdGljIHZv
aWQgY2FjaGVkU3RyaW5nQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB3cmFwcGVy
LCB2b2lkKiBwYXJhbWV0ZXIpCiB7Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwog
ICAgIFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwgPSBzdGF0aWNfY2FzdDxTdHJpbmdJbXBsKj4ocGFy
YW1ldGVyKTsKLSAgICBBU1NFUlQoZ2V0U3RyaW5nQ2FjaGUoKS5jb250YWlucyhzdHJpbmdJbXBs
KSk7Ci0gICAgZ2V0U3RyaW5nQ2FjaGUoKS5yZW1vdmUoc3RyaW5nSW1wbCk7CisgICAgVjhCaW5k
aW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+c3RyaW5nQ2FjaGUoKS0+cmVtb3ZlKHN0cmlu
Z0ltcGwpOwogICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAgIHN0cmluZ0ltcGwtPmRlcmVmKCk7
CiB9CiAKLVJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0U3RyaW5nSW1wbCA9IDA7Ci12ODo6UGVyc2lz
dGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Cit2b2lkIFN0cmluZ0NhY2hlOjpyZW1vdmUo
U3RyaW5nSW1wbCogc3RyaW5nSW1wbCkgCit7CisgICAgQVNTRVJUKG1fc3RyaW5nQ2FjaGUuY29u
dGFpbnMoc3RyaW5nSW1wbCkpOworICAgIG1fc3RyaW5nQ2FjaGUucmVtb3ZlKHN0cmluZ0ltcGwp
OworfQorCiAKLXY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJp
bmdJbXBsKiBzdHJpbmdJbXBsKQordjg6OkxvY2FsPHY4OjpTdHJpbmc+IFN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogewogICAgIGlmICgh
c3RyaW5nSW1wbC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpFbXB0eSgp
OwogCi0gICAgaWYgKCFzdHJpbmdJbXBsQ2FjaGVFbmFibGVkKQotICAgICAgICByZXR1cm4gbWFr
ZUV4dGVybmFsU3RyaW5nKFN0cmluZyhzdHJpbmdJbXBsKSk7Ci0KLSAgICBTdHJpbmdDYWNoZSYg
c3RyaW5nQ2FjaGUgPSBnZXRTdHJpbmdDYWNoZSgpOwotICAgIHY4OjpTdHJpbmcqIGNhY2hlZFY4
U3RyaW5nID0gc3RyaW5nQ2FjaGUuZ2V0KHN0cmluZ0ltcGwpOworICAgIHY4OjpTdHJpbmcqIGNh
Y2hlZFY4U3RyaW5nID0gbV9zdHJpbmdDYWNoZS5nZXQoc3RyaW5nSW1wbCk7CiAgICAgaWYgKGNh
Y2hlZFY4U3RyaW5nKSB7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGhhbmRs
ZShjYWNoZWRWOFN0cmluZyk7CiAgICAgICAgIGlmICghaGFuZGxlLklzTmVhckRlYXRoKCkgJiYg
IWhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGxhc3RTdHJpbmdJbXBsID0gc3RyaW5n
SW1wbDsKLSAgICAgICAgICAgIGxhc3RWOFN0cmluZyA9IGhhbmRsZTsKKyAgICAgICAgICAgIG1f
bGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOworICAgICAgICAgICAgbV9sYXN0VjhTdHJpbmcg
PSBoYW5kbGU7CiAgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXco
aGFuZGxlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTUzMSwxMCArNTEzLDEwIEBAIHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBs
KQogCiAgICAgc3RyaW5nSW1wbC0+cmVmKCk7CiAgICAgd3JhcHBlci5NYWtlV2VhayhzdHJpbmdJ
bXBsLCBjYWNoZWRTdHJpbmdDYWxsYmFjayk7Ci0gICAgc3RyaW5nQ2FjaGUuc2V0KHN0cmluZ0lt
cGwsICp3cmFwcGVyKTsKKyAgICBtX3N0cmluZ0NhY2hlLnNldChzdHJpbmdJbXBsLCAqd3JhcHBl
cik7CiAKLSAgICBsYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7Ci0gICAgbGFzdFY4U3RyaW5n
ID0gd3JhcHBlcjsKKyAgICBtX2xhc3RTdHJpbmdJbXBsID0gc3RyaW5nSW1wbDsKKyAgICBtX2xh
c3RWOFN0cmluZyA9IHdyYXBwZXI7CiAKICAgICByZXR1cm4gbmV3U3RyaW5nOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCBiM2E5MzU2Li5lMzJjNzI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtNTAsNiArNTAsNDAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAgICAgdHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8VjhC
aW5kaW5nPiBWOEJpbmRpbmdTZWN1cml0eTsKIAorICAgIGNsYXNzIFN0cmluZ0NhY2hlIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFN0cmluZ0NhY2hlKCkgeyB9CisKKyAgICAgICAgdjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmcoU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkgCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2xhc3RTdHJpbmdJbXBsLmdldCgpID09IHN0cmlu
Z0ltcGwpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIW1fbGFzdFY4U3RyaW5nLklzTmVhckRl
YXRoKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghbV9sYXN0VjhTdHJpbmcuSXNFbXB0eSgp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpOZXcobV9s
YXN0VjhTdHJpbmcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdjhFeHRl
cm5hbFN0cmluZ1Nsb3coc3RyaW5nSW1wbCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGNs
ZWFyT25HQygpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2xhc3RTdHJpbmdJbXBsID0gMDsK
KyAgICAgICAgICAgIG1fbGFzdFY4U3RyaW5nLkNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAg
ICB2b2lkIHJlbW92ZShTdHJpbmdJbXBsKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2ODo6
TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1wbCopOworCisg
ICAgICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIHY4OjpTdHJpbmcqPiBtX3N0cmluZ0NhY2hlOwor
ICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtX2xhc3RWOFN0cmluZzsKKyAgICAg
ICAgLy8gTm90ZTogUmVmUHRyIGlzIGEgbXVzdCBhcyB3ZSBjYWNoZSBieSBTdHJpbmdJbXBsKiBl
cXVhbGl0eSwgbm90IGlkZW50aXR5CisgICAgICAgIC8vIGhlbmNlIGxhc3RTdHJpbmdJbXBsIG1p
Z2h0IGJlIG5vdCBhIGtleSBvZiB0aGUgY2FjaGUgKGluIHNlbnNlIG9mIGlkZW50aXR5KQorICAg
ICAgICAvLyBhbmQgaGVuY2UgaXQncyBub3QgcmVmZWQgb24gYWRkaXRpb24uCisgICAgICAgIFJl
ZlB0cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOworICAgIH07CisKICAgICBjbGFzcyBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgVjhC
aW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0ZSh2ODo6SXNvbGF0ZSopOwpAQCAtNzIsNiArMTA2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1hcCYgdGVtcGxhdGVN
YXAoKSB7IHJldHVybiBtX3RlbXBsYXRlczsgfQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6
U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyByZXR1cm4gbV90b1N0cmluZ05hbWU7IH0KICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiB0b1N0cmluZ1RlbXBsYXRl
KCkgeyByZXR1cm4gbV90b1N0cmluZ1RlbXBsYXRlOyB9CisgICAgICAgIFN0cmluZ0NhY2hlKiBz
dHJpbmdDYWNoZSgpIHsgcmV0dXJuICZtX3N0cmluZ0NhY2hlOyB9CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBleHBsaWNpdCBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSopOwpA
QCAtODEsNiArMTE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1h
cCBtX3RlbXBsYXRlczsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV90b1N0
cmluZ05hbWU7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBt
X3RvU3RyaW5nVGVtcGxhdGU7CisgICAgICAgIFN0cmluZ0NhY2hlIG1fc3RyaW5nQ2FjaGU7CiAg
ICAgfTsKIAogCkBAIC0xMTAsMTMgKzE0Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBB
dG9taWNTdHJpbmcgdjhOb25TdHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZyh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4pOwogICAgIEF0b21pY1N0cmluZyB2OFZhbHVlVG9BdG9taWNXZWJDb3Jl
U3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSk7CiAKLSAgICAvLyBOb3RlOiBSZWZQ
dHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5LCBub3QgaWRl
bnRpdHkKLSAgICAvLyBoZW5jZSBsYXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3QgYSBrZXkgb2Yg
dGhlIGNhY2hlIChpbiBzZW5zZSBvZiBpZGVudGl0eSkKLSAgICAvLyBhbmQgaGVuY2UgaXQncyBu
b3QgcmVmZWQgb24gYWRkaXRpb24uCi0gICAgZXh0ZXJuIFJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0
U3RyaW5nSW1wbDsKLSAgICBleHRlcm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbGFzdFY4
U3RyaW5nOwotICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhT
dHJpbmdJbXBsKiBzdHJpbmdJbXBsKTsKLQogICAgIC8vIFJldHVybiBhIFY4IGV4dGVybmFsIHN0
cmluZyB0aGF0IHNoYXJlcyB0aGUgdW5kZXJseWluZyBidWZmZXIgd2l0aCB0aGUgZ2l2ZW4KICAg
ICAvLyBXZWJDb3JlIHN0cmluZy4gVGhlIHJlZmVyZW5jZSBjb3VudGluZyBtZWNoYW5pc20gaXMg
dXNlZCB0byBrZWVwIHRoZQogICAgIC8vIHVuZGVybHlpbmcgYnVmZmVyIGFsaXZlIHdoaWxlIHRo
ZSBzdHJpbmcgaXMgc3RpbGwgbGl2ZSBpbiB0aGUgVjggZW5naW5lLgpAQCAtMTI2LDEzICsxNTUs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGlmICghc3RyaW5nSW1wbCkKICAgICAg
ICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpFbXB0eSgpOwogCi0gICAgICAgIGlmIChsYXN0U3Ry
aW5nSW1wbC5nZXQoKSA9PSBzdHJpbmdJbXBsKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWxhc3RW
OFN0cmluZy5Jc05lYXJEZWF0aCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCghbGFzdFY4U3RyaW5n
LklzRW1wdHkoKSk7Ci0gICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+OjpO
ZXcobGFzdFY4U3RyaW5nKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB2OEV4dGVybmFs
U3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEq
IGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgICAgICByZXR1
cm4gZGF0YS0+c3RyaW5nQ2FjaGUoKS0+djhFeHRlcm5hbFN0cmluZyhzdHJpbmdJbXBsKTsKICAg
ICB9CiAKICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgVjggc3RyaW5nLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGZhZjIwOWMuLmVi
OWFiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAKQEAgLTQ2Nyw4ICs0NjcsOCBAQCB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1Byb2xvZ3VlKCkK
ICAgICBncm91cGVyVmlzaXRvci5hcHBseUdyb3VwaW5nKCk7CiAKICAgICAvLyBDbGVhbiBzaW5n
bGUgZWxlbWVudCBjYWNoZSBmb3Igc3RyaW5nIGNvbnZlcnNpb25zLgotICAgIGxhc3RTdHJpbmdJ
bXBsID0gMDsKLSAgICBsYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAg
ZGF0YS0+c3RyaW5nQ2FjaGUoKS0+Y2xlYXJPbkdDKCk7CiB9CiAKIGNsYXNzIEdDRXBpbG9ndWVW
aXNpdG9yIDogcHVibGljIERPTVdyYXBwZXJNYXA8dm9pZD46OlZpc2l0b3IgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAzMTQ2YzAwLi5jNGIwZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA2LTIxICBEbWl0cnkgTG9tb3YgIDxkc2xv
bW92QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjUzCisg
ICAgICAgIFtWOF1bQ2hyb21pdW1dIE1ha2UgU3RyaW5nQ2FjaGUgaW4gVjggYmluZGluZ3MgcGVy
LWlzb2xhdGUKKworICAgICAgICAqIHNyYy9XZWJLaXQuY3BwOgorICAgICAgICAoV2ViS2l0Ojpp
bml0aWFsaXplKTogSW5pdGlhbGl6ZSBWOFBlcklzb2xhdGVCaW5kaW5nRGF0YSBlYWdlcmx5Cisg
ICAgICAgICogc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTY3JpcHRDb250cm9sbGVyOjplbmFibGVWOFNpbmdsZVRocmVhZE1vZGUpOiBTdHJpbmdDYWNo
ZSBpcyBub3cgcGVyLWlzb2xhdGUsIHNvIG9rIGluIG11bHRpdGhyZWFkZWQgY29udGV4dHMuCisK
IDIwMTEtMDYtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Um9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJL
aXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcAppbmRleCBkMTMw
ZGQ1Li41MjJkNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJL
aXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKQEAgLTM2
LDkgKzM2LDExIEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSAiVjhC
aW5kaW5nLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViU29ja2V0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Lmgi
CisjaW5jbHVkZSAidjguaCIKIAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzQsNiArNzYsOSBAQCB2b2lkIGluaXRpYWxpemUoV2Vi
S2l0Q2xpZW50KiB3ZWJLaXRDbGllbnQpCiAgICAgLy8gdGhlIGluaXRpYWxpemF0aW9uIHRocmVh
ZC1zYWZlLCBidXQgZ2l2ZW4gdGhhdCBzbyBtYW55IGNvZGUgcGF0aHMgdXNlCiAgICAgLy8gdGhp
cywgaW5pdGlhbGl6aW5nIHRoaXMgbGF6aWx5IHByb2JhYmx5IGRvZXNuJ3QgYnV5IHVzIG11Y2gu
CiAgICAgV2ViQ29yZTo6VVRGOEVuY29kaW5nKCk7CisKKyAgICB2ODo6Vjg6OkluaXRpYWxpemUo
KTsKKyAgICBXZWJDb3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6ZW5zdXJlSW5pdGlhbGl6
ZWQodjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CiB9CiAKIHZvaWQgc2h1dGRvd24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcApp
bmRleCAxMGJjNjhmLi5iYTcxNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDgsNyArNDgsNiBAQCB2b2lkIFdlYlNj
cmlwdENvbnRyb2xsZXI6OnJlZ2lzdGVyRXh0ZW5zaW9uKHY4OjpFeHRlbnNpb24qIGV4dGVuc2lv
bikKIAogdm9pZCBXZWJTY3JpcHRDb250cm9sbGVyOjplbmFibGVWOFNpbmdsZVRocmVhZE1vZGUo
KQogewotICAgIGVuYWJsZVN0cmluZ0ltcGxDYWNoZSgpOwogICAgIGVuYWJsZUZhc3RlckRPTVN0
b3JlQWNjZXNzKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98047</attachid>
            <date>2011-06-21 13:03:08 -0700</date>
            <delta_ts>2011-06-21 16:09:27 -0700</delta_ts>
            <desc>Fixing a trybot issue</desc>
            <filename>62653.patch</filename>
            <type>text/plain</type>
            <size>11202</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMWQ0MzY0Li44OTgzNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDYtMjEgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2NTMKKyAgICAgICAgW1Y4XVtDaHJvbWl1bV0g
TWFrZSBTdHJpbmdDYWNoZSBpbiBWOCBiaW5kaW5ncyBwZXItaXNvbGF0ZQorICAgICAgICBUaGlz
IG1vdmVzIFN0cmluZ0NhY2hlIGludG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVk
U3RyaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FjaGU6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWNoZTo6djhFeHRlcm5hbFN0cmluZ1Nsb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Ry
aW5nQ2FjaGU6OlN0cmluZ0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjp2
OEV4dGVybmFsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhY2hlOjpjbGVhck9u
R0MpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OnN0cmluZ0Nh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OnY4RXh0ZXJuYWxTdHJpbmcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjpnY1Byb2xvZ3VlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5Ojppbml0VjhJZk5lZWRlZCk6CisKKwogMjAxMS0wNi0yMSAgRGlyayBTY2h1bHpl
ICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggNGM2ZTMwMy4uODI2MGZm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC00NjMsMTMg
KzQ2Myw2IEBAIEF0b21pY1N0cmluZyB2OE5vblN0cmluZ1ZhbHVlVG9BdG9taWNXZWJDb3JlU3Ry
aW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmplY3QpCiAgICAgcmV0dXJuIEF0b21pY1N0cmlu
Zyh2OE5vblN0cmluZ1ZhbHVlVG9XZWJDb3JlU3RyaW5nKG9iamVjdCkpOwogfQogCi1zdGF0aWMg
Ym9vbCBzdHJpbmdJbXBsQ2FjaGVFbmFibGVkID0gZmFsc2U7Ci0KLXZvaWQgZW5hYmxlU3RyaW5n
SW1wbENhY2hlKCkKLXsKLSAgICBzdHJpbmdJbXBsQ2FjaGVFbmFibGVkID0gdHJ1ZTsKLX0KLQog
c3RhdGljIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBtYWtlRXh0ZXJuYWxTdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiB7CiAgICAgV2ViQ29yZVN0cmluZ1Jlc291cmNlKiBzdHJpbmdSZXNvdXJj
ZSA9IG5ldyBXZWJDb3JlU3RyaW5nUmVzb3VyY2Uoc3RyaW5nKTsKQEAgLTQ4MCw0MyArNDczLDMy
IEBAIHN0YXRpYyB2ODo6TG9jYWw8djg6OlN0cmluZz4gbWFrZUV4dGVybmFsU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogICAgIHJldHVybiBuZXdTdHJpbmc7CiB9CiAKLXR5cGVkZWYgSGFz
aE1hcDxTdHJpbmdJbXBsKiwgdjg6OlN0cmluZyo+IFN0cmluZ0NhY2hlOwotCi1zdGF0aWMgU3Ry
aW5nQ2FjaGUmIGdldFN0cmluZ0NhY2hlKCkKLXsKLSAgICBBU1NFUlQoV1RGOjppc01haW5UaHJl
YWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdDYWNoZSwgbWFpblRocmVhZFN0
cmluZ0NhY2hlLCAoKSk7Ci0gICAgcmV0dXJuIG1haW5UaHJlYWRTdHJpbmdDYWNoZTsKLX0KLQog
c3RhdGljIHZvaWQgY2FjaGVkU3RyaW5nQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVl
PiB3cmFwcGVyLCB2b2lkKiBwYXJhbWV0ZXIpCiB7Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhy
ZWFkKCkpOwogICAgIFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwgPSBzdGF0aWNfY2FzdDxTdHJpbmdJ
bXBsKj4ocGFyYW1ldGVyKTsKLSAgICBBU1NFUlQoZ2V0U3RyaW5nQ2FjaGUoKS5jb250YWlucyhz
dHJpbmdJbXBsKSk7Ci0gICAgZ2V0U3RyaW5nQ2FjaGUoKS5yZW1vdmUoc3RyaW5nSW1wbCk7Cisg
ICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+c3RyaW5nQ2FjaGUoKS0+cmVt
b3ZlKHN0cmluZ0ltcGwpOwogICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAgIHN0cmluZ0ltcGwt
PmRlcmVmKCk7CiB9CiAKLVJlZlB0cjxTdHJpbmdJbXBsPiBsYXN0U3RyaW5nSW1wbCA9IDA7Ci12
ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBsYXN0VjhTdHJpbmc7Cit2b2lkIFN0cmluZ0NhY2hl
OjpyZW1vdmUoU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkgCit7CisgICAgQVNTRVJUKG1fc3RyaW5n
Q2FjaGUuY29udGFpbnMoc3RyaW5nSW1wbCkpOworICAgIG1fc3RyaW5nQ2FjaGUucmVtb3ZlKHN0
cmluZ0ltcGwpOworfQorCiAKLXY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5n
U2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQordjg6OkxvY2FsPHY4OjpTdHJpbmc+IFN0cmlu
Z0NhY2hlOjp2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKQogewog
ICAgIGlmICghc3RyaW5nSW1wbC0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB2ODo6U3RyaW5n
OjpFbXB0eSgpOwogCi0gICAgaWYgKCFzdHJpbmdJbXBsQ2FjaGVFbmFibGVkKQotICAgICAgICBy
ZXR1cm4gbWFrZUV4dGVybmFsU3RyaW5nKFN0cmluZyhzdHJpbmdJbXBsKSk7Ci0KLSAgICBTdHJp
bmdDYWNoZSYgc3RyaW5nQ2FjaGUgPSBnZXRTdHJpbmdDYWNoZSgpOwotICAgIHY4OjpTdHJpbmcq
IGNhY2hlZFY4U3RyaW5nID0gc3RyaW5nQ2FjaGUuZ2V0KHN0cmluZ0ltcGwpOworICAgIHY4OjpT
dHJpbmcqIGNhY2hlZFY4U3RyaW5nID0gbV9zdHJpbmdDYWNoZS5nZXQoc3RyaW5nSW1wbCk7CiAg
ICAgaWYgKGNhY2hlZFY4U3RyaW5nKSB7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJp
bmc+IGhhbmRsZShjYWNoZWRWOFN0cmluZyk7CiAgICAgICAgIGlmICghaGFuZGxlLklzTmVhckRl
YXRoKCkgJiYgIWhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGxhc3RTdHJpbmdJbXBs
ID0gc3RyaW5nSW1wbDsKLSAgICAgICAgICAgIGxhc3RWOFN0cmluZyA9IGhhbmRsZTsKKyAgICAg
ICAgICAgIG1fbGFzdFN0cmluZ0ltcGwgPSBzdHJpbmdJbXBsOworICAgICAgICAgICAgbV9sYXN0
VjhTdHJpbmcgPSBoYW5kbGU7CiAgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJp
bmc+OjpOZXcoaGFuZGxlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTUzMSwxMCArNTEzLDEwIEBA
IHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3RyaW5nU2xvdyhTdHJpbmdJbXBsKiBz
dHJpbmdJbXBsKQogCiAgICAgc3RyaW5nSW1wbC0+cmVmKCk7CiAgICAgd3JhcHBlci5NYWtlV2Vh
ayhzdHJpbmdJbXBsLCBjYWNoZWRTdHJpbmdDYWxsYmFjayk7Ci0gICAgc3RyaW5nQ2FjaGUuc2V0
KHN0cmluZ0ltcGwsICp3cmFwcGVyKTsKKyAgICBtX3N0cmluZ0NhY2hlLnNldChzdHJpbmdJbXBs
LCAqd3JhcHBlcik7CiAKLSAgICBsYXN0U3RyaW5nSW1wbCA9IHN0cmluZ0ltcGw7Ci0gICAgbGFz
dFY4U3RyaW5nID0gd3JhcHBlcjsKKyAgICBtX2xhc3RTdHJpbmdJbXBsID0gc3RyaW5nSW1wbDsK
KyAgICBtX2xhc3RWOFN0cmluZyA9IHdyYXBwZXI7CiAKICAgICByZXR1cm4gbmV3U3RyaW5nOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCBiM2E5MzU2Li5lMzJj
NzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtNTAsNiArNTAs
NDAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAgICAgdHlwZWRlZiBCaW5kaW5nU2Vj
dXJpdHk8VjhCaW5kaW5nPiBWOEJpbmRpbmdTZWN1cml0eTsKIAorICAgIGNsYXNzIFN0cmluZ0Nh
Y2hlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFN0cmluZ0NhY2hlKCkgeyB9CisKKyAgICAgICAg
djg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4RXh0ZXJuYWxTdHJpbmcoU3RyaW5nSW1wbCogc3RyaW5n
SW1wbCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2xhc3RTdHJpbmdJbXBsLmdldCgp
ID09IHN0cmluZ0ltcGwpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIW1fbGFzdFY4U3RyaW5n
LklzTmVhckRlYXRoKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghbV9sYXN0VjhTdHJpbmcu
SXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpTdHJpbmc+
OjpOZXcobV9sYXN0VjhTdHJpbmcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1
cm4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coc3RyaW5nSW1wbCk7CisgICAgICAgIH0KKworICAgICAg
ICB2b2lkIGNsZWFyT25HQygpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2xhc3RTdHJpbmdJ
bXBsID0gMDsKKyAgICAgICAgICAgIG1fbGFzdFY4U3RyaW5nLkNsZWFyKCk7CisgICAgICAgIH0K
KworICAgICAgICB2b2lkIHJlbW92ZShTdHJpbmdJbXBsKik7CisKKyAgICBwcml2YXRlOgorICAg
ICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhFeHRlcm5hbFN0cmluZ1Nsb3coU3RyaW5nSW1w
bCopOworCisgICAgICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIHY4OjpTdHJpbmcqPiBtX3N0cmlu
Z0NhY2hlOworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtX2xhc3RWOFN0cmlu
ZzsKKyAgICAgICAgLy8gTm90ZTogUmVmUHRyIGlzIGEgbXVzdCBhcyB3ZSBjYWNoZSBieSBTdHJp
bmdJbXBsKiBlcXVhbGl0eSwgbm90IGlkZW50aXR5CisgICAgICAgIC8vIGhlbmNlIGxhc3RTdHJp
bmdJbXBsIG1pZ2h0IGJlIG5vdCBhIGtleSBvZiB0aGUgY2FjaGUgKGluIHNlbnNlIG9mIGlkZW50
aXR5KQorICAgICAgICAvLyBhbmQgaGVuY2UgaXQncyBub3QgcmVmZWQgb24gYWRkaXRpb24uCisg
ICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOworICAgIH07CisKICAg
ICBjbGFzcyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBz
dGF0aWMgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0ZSh2ODo6SXNvbGF0ZSopOwpAQCAt
NzIsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1hcCYg
dGVtcGxhdGVNYXAoKSB7IHJldHVybiBtX3RlbXBsYXRlczsgfQogICAgICAgICB2ODo6UGVyc2lz
dGVudDx2ODo6U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyByZXR1cm4gbV90b1N0cmluZ05hbWU7
IH0KICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiB0b1N0cmlu
Z1RlbXBsYXRlKCkgeyByZXR1cm4gbV90b1N0cmluZ1RlbXBsYXRlOyB9CisgICAgICAgIFN0cmlu
Z0NhY2hlKiBzdHJpbmdDYWNoZSgpIHsgcmV0dXJuICZtX3N0cmluZ0NhY2hlOyB9CiAKICAgICBw
cml2YXRlOgogICAgICAgICBleHBsaWNpdCBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNv
bGF0ZSopOwpAQCAtODEsNiArMTE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBU
ZW1wbGF0ZU1hcCBtX3RlbXBsYXRlczsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gbV90b1N0cmluZ05hbWU7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBtX3RvU3RyaW5nVGVtcGxhdGU7CisgICAgICAgIFN0cmluZ0NhY2hlIG1fc3RyaW5n
Q2FjaGU7CiAgICAgfTsKIAogCkBAIC0xMTAsMTMgKzE0Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBBdG9taWNTdHJpbmcgdjhOb25TdHJpbmdWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmlu
Zyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogICAgIEF0b21pY1N0cmluZyB2OFZhbHVlVG9BdG9t
aWNXZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSk7CiAKLSAgICAvLyBO
b3RlOiBSZWZQdHIgaXMgYSBtdXN0IGFzIHdlIGNhY2hlIGJ5IFN0cmluZ0ltcGwqIGVxdWFsaXR5
LCBub3QgaWRlbnRpdHkKLSAgICAvLyBoZW5jZSBsYXN0U3RyaW5nSW1wbCBtaWdodCBiZSBub3Qg
YSBrZXkgb2YgdGhlIGNhY2hlIChpbiBzZW5zZSBvZiBpZGVudGl0eSkKLSAgICAvLyBhbmQgaGVu
Y2UgaXQncyBub3QgcmVmZWQgb24gYWRkaXRpb24uCi0gICAgZXh0ZXJuIFJlZlB0cjxTdHJpbmdJ
bXBsPiBsYXN0U3RyaW5nSW1wbDsKLSAgICBleHRlcm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gbGFzdFY4U3RyaW5nOwotICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OEV4dGVybmFsU3Ry
aW5nU2xvdyhTdHJpbmdJbXBsKiBzdHJpbmdJbXBsKTsKLQogICAgIC8vIFJldHVybiBhIFY4IGV4
dGVybmFsIHN0cmluZyB0aGF0IHNoYXJlcyB0aGUgdW5kZXJseWluZyBidWZmZXIgd2l0aCB0aGUg
Z2l2ZW4KICAgICAvLyBXZWJDb3JlIHN0cmluZy4gVGhlIHJlZmVyZW5jZSBjb3VudGluZyBtZWNo
YW5pc20gaXMgdXNlZCB0byBrZWVwIHRoZQogICAgIC8vIHVuZGVybHlpbmcgYnVmZmVyIGFsaXZl
IHdoaWxlIHRoZSBzdHJpbmcgaXMgc3RpbGwgbGl2ZSBpbiB0aGUgVjggZW5naW5lLgpAQCAtMTI2
LDEzICsxNTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGlmICghc3RyaW5nSW1w
bCkKICAgICAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpFbXB0eSgpOwogCi0gICAgICAgIGlm
IChsYXN0U3RyaW5nSW1wbC5nZXQoKSA9PSBzdHJpbmdJbXBsKSB7Ci0gICAgICAgICAgICBBU1NF
UlQoIWxhc3RWOFN0cmluZy5Jc05lYXJEZWF0aCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCghbGFz
dFY4U3RyaW5nLklzRW1wdHkoKSk7Ci0gICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpT
dHJpbmc+OjpOZXcobGFzdFY4U3RyaW5nKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB2
OEV4dGVybmFsU3RyaW5nU2xvdyhzdHJpbmdJbXBsKTsKKyAgICAgICAgVjhCaW5kaW5nUGVySXNv
bGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAg
ICAgICByZXR1cm4gZGF0YS0+c3RyaW5nQ2FjaGUoKS0+djhFeHRlcm5hbFN0cmluZyhzdHJpbmdJ
bXBsKTsKICAgICB9CiAKICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgVjggc3RyaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGZh
ZjIwOWMuLmViOWFiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
R0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29u
dHJvbGxlci5jcHAKQEAgLTQ2Nyw4ICs0NjcsOCBAQCB2b2lkIFY4R0NDb250cm9sbGVyOjpnY1By
b2xvZ3VlKCkKICAgICBncm91cGVyVmlzaXRvci5hcHBseUdyb3VwaW5nKCk7CiAKICAgICAvLyBD
bGVhbiBzaW5nbGUgZWxlbWVudCBjYWNoZSBmb3Igc3RyaW5nIGNvbnZlcnNpb25zLgotICAgIGxh
c3RTdHJpbmdJbXBsID0gMDsKLSAgICBsYXN0VjhTdHJpbmcuQ2xlYXIoKTsKKyAgICBWOEJpbmRp
bmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50
KCk7CisgICAgZGF0YS0+c3RyaW5nQ2FjaGUoKS0+Y2xlYXJPbkdDKCk7CiB9CiAKIGNsYXNzIEdD
RXBpbG9ndWVWaXNpdG9yIDogcHVibGljIERPTVdyYXBwZXJNYXA8dm9pZD46OlZpc2l0b3Igewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5jcHAKaW5kZXggOTc1MmI3My4uYzdkZTRhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHk6OmluaXRWOElmTmVlZGVkKCkKICAgICByZXNvdXJjZV9jb25zdHJhaW50cy5zZXRfc3RhY2tf
bGltaXQoJmhlcmUgLSBrV29ya2VyTWF4U3RhY2tTaXplIC8gc2l6ZW9mKHVpbnQzMl90KikpOwog
ICAgIHY4OjpTZXRSZXNvdXJjZUNvbnN0cmFpbnRzKCZyZXNvdXJjZV9jb25zdHJhaW50cyk7CiAK
LSAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3JlYXRlKHY4OjpJc29sYXRlOjpHZXRDdXJy
ZW50KCkpOworICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjplbnN1cmVJbml0aWFsaXplZCh2
ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKIAogICAgIHY4SW5pdGlhbGl6ZWQgPSB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzMTQ2YzAwLi5jNGIwZGRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA2LTIxICBEbWl0cnkg
TG9tb3YgIDxkc2xvbW92QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyNjUzCisgICAgICAgIFtWOF1bQ2hyb21pdW1dIE1ha2UgU3RyaW5nQ2FjaGUgaW4gVjgg
YmluZGluZ3MgcGVyLWlzb2xhdGUKKworICAgICAgICAqIHNyYy9XZWJLaXQuY3BwOgorICAgICAg
ICAoV2ViS2l0Ojppbml0aWFsaXplKTogSW5pdGlhbGl6ZSBWOFBlcklzb2xhdGVCaW5kaW5nRGF0
YSBlYWdlcmx5CisgICAgICAgICogc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTY3JpcHRDb250cm9sbGVyOjplbmFibGVWOFNpbmdsZVRocmVhZE1vZGUp
OiBTdHJpbmdDYWNoZSBpcyBub3cgcGVyLWlzb2xhdGUsIHNvIG9rIGluIG11bHRpdGhyZWFkZWQg
Y29udGV4dHMuCisKIDIwMTEtMDYtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJLaXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNw
cAppbmRleCBkMTMwZGQ1Li41MjJkNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJLaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktp
dC5jcHAKQEAgLTM2LDkgKzM2LDExIEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCisj
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmgiCisjaW5jbHVkZSAidjguaCIKIAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzQsNiArNzYsOSBAQCB2b2lkIGlu
aXRpYWxpemUoV2ViS2l0Q2xpZW50KiB3ZWJLaXRDbGllbnQpCiAgICAgLy8gdGhlIGluaXRpYWxp
emF0aW9uIHRocmVhZC1zYWZlLCBidXQgZ2l2ZW4gdGhhdCBzbyBtYW55IGNvZGUgcGF0aHMgdXNl
CiAgICAgLy8gdGhpcywgaW5pdGlhbGl6aW5nIHRoaXMgbGF6aWx5IHByb2JhYmx5IGRvZXNuJ3Qg
YnV5IHVzIG11Y2guCiAgICAgV2ViQ29yZTo6VVRGOEVuY29kaW5nKCk7CisKKyAgICB2ODo6Vjg6
OkluaXRpYWxpemUoKTsKKyAgICBXZWJDb3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6ZW5z
dXJlSW5pdGlhbGl6ZWQodjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CiB9CiAKIHZvaWQgc2h1
dGRvd24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCAxMGJjNjhmLi5iYTcxNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDgsNyArNDgsNiBA
QCB2b2lkIFdlYlNjcmlwdENvbnRyb2xsZXI6OnJlZ2lzdGVyRXh0ZW5zaW9uKHY4OjpFeHRlbnNp
b24qIGV4dGVuc2lvbikKIAogdm9pZCBXZWJTY3JpcHRDb250cm9sbGVyOjplbmFibGVWOFNpbmds
ZVRocmVhZE1vZGUoKQogewotICAgIGVuYWJsZVN0cmluZ0ltcGxDYWNoZSgpOwogICAgIGVuYWJs
ZUZhc3RlckRPTVN0b3JlQWNjZXNzKCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>