<?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>66571</bug_id>
          
          <creation_ts>2011-08-19 11:37:15 -0700</creation_ts>
          <short_desc>Keep track of topCallFrame for Stack traces</short_desc>
          <delta_ts>2011-08-25 10:37:44 -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>JavaScriptCore</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>66956</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Juan C. Montemayor">j.mont</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>j.mont</cc>
    
    <cc>oliver</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>453950</commentid>
    <comment_count>0</comment_count>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-19 11:37:15 -0700</bug_when>
    <thetext>This is the first patch of two needed to implement stack traces in JSC. This patch adds a TopCallFrame to JSC in order to have that information when an error is thrown to create a stack trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453956</commentid>
    <comment_count>1</comment_count>
      <attachid>104538</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-19 11:44:22 -0700</bug_when>
    <thetext>Created attachment 104538
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454000</commentid>
    <comment_count>2</comment_count>
      <attachid>104538</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-19 12:53:29 -0700</bug_when>
    <thetext>Comment on attachment 104538
Proposed patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.h:433
&gt;  inline JSObject* asObject(JSValue value)
&gt;  {
&gt; +    if (!value.isCell())
&gt; +        return 0;
&gt;      return asObject(value.asCell());

This change is no good. No code should call asObject on a value if the value is not a cell (and therefore not an object). It&apos;s akin to a bad C++ cast.

Is this change required to make your patch work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454024</commentid>
    <comment_count>3</comment_count>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-19 13:27:02 -0700</bug_when>
    <thetext>&gt; This change is no good. No code should call asObject on a value if the value is not a cell (and therefore not an object). It&apos;s akin to a bad C++ cast.
&gt; 
&gt; Is this change required to make your patch work?

Let me re-check....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454061</commentid>
    <comment_count>4</comment_count>
      <attachid>104559</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-19 14:00:14 -0700</bug_when>
    <thetext>Created attachment 104559
updated patch

I removed the extra code and one useless newline. You were right, the change was not required to make my patch work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454166</commentid>
    <comment_count>5</comment_count>
      <attachid>104559</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-19 16:09:41 -0700</bug_when>
    <thetext>Comment on attachment 104559
updated patch

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

&gt; Source/JavaScriptCore/interpreter/CallFrame.h:170
&gt; +        : globalData(global)
&gt; +        , oldCallFrame(global-&gt;topCallFrame) 

Formatting mistake. These lines should be indented four more spaces.

&gt; Source/JavaScriptCore/interpreter/CallFrame.h:183
&gt; +    };
&gt;  } // namespace JSC

Formatting mistake. There should be a blank line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454168</commentid>
    <comment_count>6</comment_count>
      <attachid>104559</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-19 16:11:53 -0700</bug_when>
    <thetext>Comment on attachment 104559
updated patch

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

&gt; Source/JavaScriptCore/interpreter/CallFrame.h:166
&gt; +    class TopCallFrame {

I don’t think the class name here is right. It should be something like TopCallFrameSetter.

Since this class is only used in three places in Interpreter.cpp I think it shouldn’t go into CallFrame.h. It can go into Interpreter.cpp.

&gt; Source/JavaScriptCore/interpreter/CallFrame.h:168
&gt; +        TopCallFrame(JSGlobalData* global, CallFrame* callFrame)

I suggest taking a reference to global data instead of a pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454192</commentid>
    <comment_count>7</comment_count>
      <attachid>104592</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-19 16:37:47 -0700</bug_when>
    <thetext>Created attachment 104592
updated patch

Thanks for the feedback Darin\!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454194</commentid>
    <comment_count>8</comment_count>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-19 16:39:58 -0700</bug_when>
    <thetext>Geoff: I tested my patch in both 64 and 32 bit, since I changed the patchOffsetGetByIdSlowCaseCall. Are there any other architectures that I should test it on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454859</commentid>
    <comment_count>9</comment_count>
      <attachid>104592</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-22 13:37:00 -0700</bug_when>
    <thetext>Comment on attachment 104592
updated patch

getting weird results with performance tests... I have to re-check them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454883</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-22 13:55:06 -0700</bug_when>
    <thetext>You&apos;ll need to update the offsets for ARM as well. Gavin can help you with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454985</commentid>
    <comment_count>11</comment_count>
      <attachid>104592</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-22 15:14:49 -0700</bug_when>
    <thetext>Comment on attachment 104592
updated patch

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

Some of the setting and resetting of topCallFrame seems haphazard in the Interpreter.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:711
&gt;      CodeBlock* codeBlock = callFrame-&gt;codeBlock();
&gt;      bool isInterrupt = false;
&gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;

Why does the first act of throwing an exception need to be to set topCallFrame? In theory, topCallFrame was already set when we entered the function that is now throwing an exception.

On the other hand, I think you&apos;re missing an update of topCallFrame after you&apos;ve thrown an exception and decided to return to a handler. You can put the update into unwindCallFrame().

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:934
&gt;  JSValue Interpreter::executeCall(CallFrame* callFrame, JSObject* function, CallType callType, const CallData&amp; callData, JSValue thisValue, const ArgList&amp; args)
&gt;  {
&gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;

Why here? Seems unnecessary.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:977
&gt;  JSValue Interpreter::executeCall(CallFra
&gt;          }
&gt;  
&gt;          newCallFrame-&gt;init(newCodeBlock, 0, callDataScopeChain, callFrame-&gt;addHostCallFrameFlag(), argCount, function);
&gt; +        TopCallFrameSetter topCallFrameSetter(callFrame-&gt;globalData(), newCallFrame);

Here, you caught the CallTypeJS case, but missed the non-JS case.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1030
&gt;  JSObject* Interpreter::executeConstruct(CallFrame* callFrame, JSObject* constructor, ConstructType constructType, const ConstructData&amp; constructData, const ArgList&amp; args)
&gt;  {
&gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;

Why here? Seems unnecessary.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1055
&gt; +    TopCallFrameSetter topCallFrameSetter(callFrame-&gt;globalData(), newCallFrame);
&gt; +

This is too soon, since newCallFrame is not yet fully initialized, and can change later in the function.

A good rule of thumb is to update topCallFrame right after calling CallFrame::init, since that means you&apos;ve just created a new CallFrame and fully initialized it.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1217
&gt;  JSValue Interpreter::execute(EvalExecutable* eval, CallFrame* callFrame, JSValue thisValue, ScopeChainNode* scopeChain)
&gt;  {
&gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;

Why here? Seems unnecessary.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1227
&gt;  JSValue Interpreter::execute(EvalExecutable* eval, CallFrame* callFrame, JSValue thisValue, int globalRegisterOffset, ScopeChainNode* scopeChain)
&gt;  {
&gt;      ASSERT(isValidThisObject(thisValue, callFrame));
&gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;

Why here? Seems unnecessary.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1658
&gt;  #endif
&gt;  
&gt; +    *topCallFrameSlot = callFrame;
&gt;  #if ENABLE(COMPUTED_GOTO_INTERPRETER)

Why here? Seems unnecessary.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4188
&gt;                  goto vm_throw;
&gt;              functionReturnValue = result;
&gt;  
&gt; +            *topCallFrameSlot = callFrame;

Why here? callEval() should restore topCallFrame for you.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4257
&gt; +            *topCallFrameSlot = newCallFrame;
&gt;              newCallFrame-&gt;init(0, vPC + OPCODE_LENGTH(op_call), scopeChain, callFrame, argCount, asObject(v));

Slightly better to switch these two lines of code, so topCallFrame doesn&apos;t point at newCallFrame until newCallFrame is in a valid state.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4427
&gt; +            *topCallFrameSlot = newCallFrame;
&gt;              newCallFrame-&gt;init(0, vPC + OPCODE_LENGTH(op_call_varargs), scopeChain, callFrame, argCount, asObject(v));

Same comment here.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4438
&gt; +            *topCallFrameSlot = callFrame;

This needs to happen before CHECK_FOR_EXCEPTION(), to ensure that you put things back into a valid state before jumping somewhere else.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4518
&gt; +        *topCallFrameSlot = callFrame;
&gt;          if (callFrame-&gt;hasHostCallFrameFlag())
&gt;              return returnValue;

Slightly better to change around the order of these two statements, since you don&apos;t need to update topCallFrame if you&apos;re returning back to C++. (The C++ code should update for you.)

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4761
&gt;              CHECK_FOR_EXCEPTION();
&gt;              functionReturnValue = returnValue;
&gt;  
&gt; +            *topCallFrameSlot = callFrame;

Update needs to happen before CHECK_FOR_EXCEPTION.

You missed the initial setting of topCallFrame in the ConstructTypeHost case here.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4940
&gt; +        *topCallFrameSlot = callFrame;

Why here? Seems unnecessary, if exception unwinding does its job correctly.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:4964
&gt;          codeBlock = callFrame-&gt;codeBlock();
&gt; +        *topCallFrameSlot = callFrame;
&gt;          vPC = codeBlock-&gt;instructions().begin() + handler-&gt;target;

If you fix throwException to update topCallFrame correctly, this line shouldn&apos;t be necessary.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:5124
&gt; +        *topCallFrameSlot = callFrame;
&gt;          vPC = codeBlock-&gt;instructions().begin() + handler-&gt;target;

Same comment here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455056</commentid>
    <comment_count>12</comment_count>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-22 16:42:34 -0700</bug_when>
    <thetext>&gt; &gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:711
&gt; &gt;      CodeBlock* codeBlock = callFrame-&gt;codeBlock();
&gt; &gt;      bool isInterrupt = false;
&gt; &gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;
&gt; 
&gt; Why does the first act of throwing an exception need to be to set topCallFrame? 

in throwException(), addErrorInfo() needs the updated callFrame to work properly. I update the topCallFrame before the first if statement to set it in case it branches.

&gt; On the other hand, I think you&apos;re missing an update of topCallFrame after you&apos;ve thrown an exception and decided to return to a handler. You can put the update into unwindCallFrame().

If I only update the callFrame inside unwindCallFrame, my code would fail jsc-tests. As I mentioned before, addErrorInfo() needs the updated callFrame to work, and addErrorInfo() is called before unwindCallFrame()

Should I keep it like this or what would be the right course of action?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455094</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-22 17:36:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; &gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:711
&gt; &gt; &gt;      CodeBlock* codeBlock = callFrame-&gt;codeBlock();
&gt; &gt; &gt;      bool isInterrupt = false;
&gt; &gt; &gt; +    callFrame-&gt;globalData().topCallFrame = callFrame;
&gt; &gt; 
&gt; &gt; Why does the first act of throwing an exception need to be to set topCallFrame? 
&gt; 
&gt; in throwException(), addErrorInfo() needs the updated callFrame to work properly. I update the topCallFrame before the first if statement to set it in case it branches.

If you saw cases where addErrorInfo() saw the wrong callFrame, perhaps they were caused by some of the cases of missing updates I listed. If you do the job right, addErrorInfo, like all C++ code, should always have a coherent view of topCallFrame.

&gt; &gt; On the other hand, I think you&apos;re missing an update of topCallFrame after you&apos;ve thrown an exception and decided to return to a handler. You can put the update into unwindCallFrame().
&gt; 
&gt; If I only update the callFrame inside unwindCallFrame, my code would fail jsc-tests. As I mentioned before, addErrorInfo() needs the updated callFrame to work, and addErrorInfo() is called before unwindCallFrame()

The update at the top of Interpreter::throwException will not make topCallFrame correct after you&apos;ve thrown an exception and decided to return to a handler. Consider this case:

(function () { try { (function() { throw &quot;error&quot;; })(); } catch(exception) { // topCallFrame is now wrong. } })();

topCallFrame needs to point to the callFrame of the exception handler, which can be zero or more frames up the stack from the frame that throws the exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455625</commentid>
    <comment_count>14</comment_count>
      <attachid>104894</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-23 12:51:15 -0700</bug_when>
    <thetext>Created attachment 104894
updated arm-ready patch

I added the changes suggested by Geoff. I decided to update both in unwindCallFrame() and when an exception is thrown. I also added some asserts where I removed updates to topCallFrame just to make sure that the callframes at those points were correct. This patch has also been modified to work with arm processors. Hopefully I didn&apos;t miss anything</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456214</commentid>
    <comment_count>15</comment_count>
      <attachid>105022</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 11:09:19 -0700</bug_when>
    <thetext>Created attachment 105022
Complete results of performance tests made on this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456218</commentid>
    <comment_count>16</comment_count>
      <attachid>105023</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 11:10:09 -0700</bug_when>
    <thetext>Created attachment 105023
sunspider test results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456220</commentid>
    <comment_count>17</comment_count>
      <attachid>105024</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 11:10:52 -0700</bug_when>
    <thetext>Created attachment 105024
v8 results (outside web browser)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456223</commentid>
    <comment_count>18</comment_count>
      <attachid>105025</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 11:11:28 -0700</bug_when>
    <thetext>Created attachment 105025
v8 results (in web browser)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456224</commentid>
    <comment_count>19</comment_count>
      <attachid>105026</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 11:12:15 -0700</bug_when>
    <thetext>Created attachment 105026
kraken results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456245</commentid>
    <comment_count>20</comment_count>
      <attachid>105028</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 11:26:42 -0700</bug_when>
    <thetext>Created attachment 105028
new and improved patch

Removed some assert statements. I included some perfromance test results that I ran yesterday/today. It looks like no measurable speed regression was introduced by this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456438</commentid>
    <comment_count>21</comment_count>
      <attachid>105076</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 14:57:12 -0700</bug_when>
    <thetext>Created attachment 105076
patch

added one more TopCallFrameSetter in execute(CallFrameClosure) to assure that we are updating and resetting topCallFrame before and after we execute arbitrary js code that can change our topCallFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456441</commentid>
    <comment_count>22</comment_count>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 14:57:55 -0700</bug_when>
    <thetext>performance figures are looking very similar to the ones I posted. I&apos;ll keep running them and upload the new ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456477</commentid>
    <comment_count>23</comment_count>
      <attachid>105085</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-08-24 15:38:28 -0700</bug_when>
    <thetext>Created attachment 105085
new perf test results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456561</commentid>
    <comment_count>24</comment_count>
      <attachid>105076</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-08-24 17:54:18 -0700</bug_when>
    <thetext>Comment on attachment 105076
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456592</commentid>
    <comment_count>25</comment_count>
      <attachid>105076</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 18:25:51 -0700</bug_when>
    <thetext>Comment on attachment 105076
patch

Clearing flags on attachment: 105076

Committed r93755: &lt;http://trac.webkit.org/changeset/93755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456593</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 18:25:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104538</attachid>
            <date>2011-08-19 11:44:22 -0700</date>
            <delta_ts>2011-08-19 14:00:10 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-66571-20110819114421.patch</filename>
            <type>text/plain</type>
            <size>18128</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM0MjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDgtMTkgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRvcENhbGxGcmFtZSBmb3IgU3RhY2sgdHJhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIGEgVG9wQ2FsbEZyYW1lIHRvIEpTQyBpbiBvcmRlciB0byBoYXZlIHRoYXQgaW5mb3Jt
YXRpb24KKyAgICAgICAgd2hlbiBhbiBlcnJvciBpcyB0aHJvd24gdG8gY3JlYXRlIGEgc3RhY2sg
dHJhY2UuIFRoZSBUb3BDYWxsRnJhbWUgaXMKKyAgICAgICAgdXBkYXRlZCB0aHJvdWdob3V0IHNl
bGVjdCBwb2ludHMgaW4gdGhlIEludGVycHJldGVyIGFuZCB0aGUgSlNDLgorCisgICAgICAgICog
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OlRvcENhbGxGcmFtZTo6VG9w
Q2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6VG9wQ2FsbEZyYW1lOjp+VG9wQ2FsbEZyYW1lKToK
KyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjp0aHJvd0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpl
eGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAg
ICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJ
bnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OnVwZGF0ZVRv
cENhbGxGcmFtZSk6CisgICAgICAgICogaml0L0pJVFN0dWJDYWxsLmg6CisgICAgICAgIChKU0M6
OkpJVFN0dWJDYWxsOjpjYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAg
ICAoSlNDOjp0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwpOgorICAgICAgICAoSlNDOjpERUZJTkVf
U1RVQl9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpK
U0dsb2JhbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjphc09iamVjdCk6CisKIDIwMTEt
MDgtMTggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIGFsbG9jYXRpb24gaW4gY29uc3RydWN0b3JzIGludG8gc2VwYXJhdGUgY29uc3RydWN0
b3JCb2R5KCkgbWV0aG9kcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw2ICsxNjMs
MjQgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICB+RXhlY1N0YXRlKCk7CiAgICAgfTsKIAor
ICAgIGNsYXNzIFRvcENhbGxGcmFtZSB7CisgICAgcHVibGljOgorICAgICAgICBUb3BDYWxsRnJh
bWUoSlNHbG9iYWxEYXRhKiBnbG9iYWwsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAgICAgICA6
IGdsb2JhbERhdGEoZ2xvYmFsKQorICAgICAgICAsIG9sZENhbGxGcmFtZShnbG9iYWwtPnRvcENh
bGxGcmFtZSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsb2JhbERhdGEtPnRvcENhbGxGcmFt
ZSA9IGNhbGxGcmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIH5Ub3BDYWxsRnJhbWUoKSAKKyAg
ICAgICAgeworICAgICAgICAgICAgZ2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lID0gb2xkQ2FsbEZy
YW1lOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhOworICAgICAgICBDYWxsRnJhbWUqIG9sZENhbGxGcmFtZTsKKyAgICB9OworCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIENhbGxGcmFtZV9oCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9u
IDkzMzUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjkwLDYgKzY5MCw3IEBAIE5FVkVSX0lOTElORSBIYW5k
bGVySW5mbyogSW50ZXJwcmV0ZXI6OnQKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgYm9vbCBpc0ludGVycnVwdCA9IGZhbHNlOworICAg
IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKIAogICAg
IC8vIFNldCB1cCB0aGUgZXhjZXB0aW9uIG9iamVjdAogICAgIGlmIChleGNlcHRpb25WYWx1ZS5p
c09iamVjdCgpKSB7CkBAIC04ODEsNiArODgyLDcgQEAgZmFpbGVkSlNPTlA6CiAgICAgQVNTRVJU
KGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3Ro
aXMnLgogICAgIG5ld0NhbGxGcmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3BlQ2hhaW4sIENh
bGxGcmFtZTo6bm9DYWxsZXIoKSwgY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMsIDApOwogICAg
IG5ld0NhbGxGcmFtZS0+dW5jaGVja2VkUihuZXdDYWxsRnJhbWUtPmhvc3RUaGlzUmVnaXN0ZXIo
KSkgPSBKU1ZhbHVlKHRoaXNPYmopOworICAgIFRvcENhbGxGcmFtZSB0b3BDYWxsRnJhbWUoJmNh
bGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxsRnJhbWUpOwogCiAgICAgUHJvZmlsZXIqKiBw
cm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKICAgICBpZiAo
KnByb2ZpbGVyKQpAQCAtOTExLDYgKzkxMyw3IEBAIGZhaWxlZEpTT05QOgogCiBKU1ZhbHVlIElu
dGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGZ1
bmN0aW9uLCBDYWxsVHlwZSBjYWxsVHlwZSwgY29uc3QgQ2FsbERhdGEmIGNhbGxEYXRhLCBKU1Zh
bHVlIHRoaXNWYWx1ZSwgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKKyAgICBjYWxsRnJhbWUtPmds
b2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CiAgICAgQVNTRVJUKGlzVmFsaWRU
aGlzT2JqZWN0KHRoaXNWYWx1ZSwgY2FsbEZyYW1lKSk7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUt
PmhhZEV4Y2VwdGlvbigpKTsKICAgICBBU1NFUlQoIWNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmlz
Q29sbGVjdG9yQnVzeSgpKTsKQEAgLTk1Myw2ICs5NTYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVy
OjpleGVjdXRlQ2FsbChDYWxsRnJhCiAgICAgICAgIH0KIAogICAgICAgICBuZXdDYWxsRnJhbWUt
PmluaXQobmV3Q29kZUJsb2NrLCAwLCBjYWxsRGF0YVNjb3BlQ2hhaW4sIGNhbGxGcmFtZS0+YWRk
SG9zdENhbGxGcmFtZUZsYWcoKSwgYXJnQ291bnQsIGZ1bmN0aW9uKTsKKyAgICAgICAgVG9wQ2Fs
bEZyYW1lIHRvcENhbGxGcmFtZSgmY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIG5ld0NhbGxGcmFt
ZSk7CiAKICAgICAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJv
ZmlsZXJSZWZlcmVuY2UoKTsKICAgICAgICAgaWYgKCpwcm9maWxlcikKQEAgLTEwMDUsNiArMTAw
OSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKIAogSlNPYmpl
Y3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U09iamVjdCogY29uc3RydWN0b3IsIENvbnN0cnVjdFR5cGUgY29uc3RydWN0VHlwZSwgY29uc3Qg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSwgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKKyAg
ICBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CiAgICAg
QVNTRVJUKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKTsKICAgICBBU1NFUlQoIWNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKICAgICAvLyBXZSB0aHJvdyBpbiB0
aGlzIGNhc2UgYmVjYXVzZSB3ZSBoYXZlIHRvIHJldHVybiBzb21ldGhpbmcgInZhbGlkIiBidXQg
d2UncmUKQEAgLTEwMjgsNiArMTAzMyw4IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0
ZUNvbnN0cnVjdCgKICAgICBmb3IgKEFyZ0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJncy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIG5ld0NhbGxGcmFtZS0+dW5jaGVja2Vk
UigrK2RzdCkgPSAqaXQ7CiAKKyAgICBUb3BDYWxsRnJhbWUgdG9wQ2FsbEZyYW1lKCZjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKKwogICAgIGlmIChjb25zdHJ1Y3RUeXBl
ID09IENvbnN0cnVjdFR5cGVKUykgewogICAgICAgICBTY29wZUNoYWluTm9kZSogY29uc3RydWN0
RGF0YVNjb3BlQ2hhaW4gPSBjb25zdHJ1Y3REYXRhLmpzLnNjb3BlQ2hhaW47CiAKQEAgLTExODks
NiArMTE5Niw3IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmVuZFJlcGVhdENhbGwoQ2FsbEZyYW0KIAog
SlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdGhpc1ZhbHVlLCBTY29wZUNoYWluTm9kZSogc2NvcGVD
aGFpbikKIHsKKyAgICBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBjYWxs
RnJhbWU7CiAgICAgSlNPYmplY3QqIGNvbXBpbGVFcnJvciA9IGV2YWwtPmNvbXBpbGUoY2FsbEZy
YW1lLCBzY29wZUNoYWluKTsKICAgICBpZiAoVU5MSUtFTFkoISFjb21waWxlRXJyb3IpKQogICAg
ICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd0Vycm9yKGNhbGxGcmFtZSwgY29tcGlsZUVy
cm9yKSk7CkBAIC0xMTk4LDYgKzEyMDYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
KEV2YWxFeGVjdXRhCiBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhYmxl
KiBldmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIGludCBnbG9i
YWxSZWdpc3Rlck9mZnNldCwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiB7CiAgICAgQVNT
RVJUKGlzVmFsaWRUaGlzT2JqZWN0KHRoaXNWYWx1ZSwgY2FsbEZyYW1lKSk7CisgICAgY2FsbEZy
YW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgIEFTU0VSVCgh
c2NvcGVDaGFpbi0+Z2xvYmFsRGF0YS0+ZXhjZXB0aW9uKTsKICAgICBBU1NFUlQoIWNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKICAgICBpZiAoY2FsbEZyYW1lLT5n
bG9iYWxEYXRhKCkuaXNDb2xsZWN0b3JCdXN5KCkpCkBAIC0xNTkyLDYgKzE2MDEsNyBAQCBKU1Zh
bHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhID0gJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpOwogICAgIEpTVmFsdWUgZXhjZXB0
aW9uVmFsdWU7CiAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSAwOworICAgIENhbGxGcmFtZSoq
IHRvcENhbGxGcmFtZVNsb3QgPSAmZ2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lOwogCiAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEluc3RydWN0
aW9uKiB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CkBAIC0xNjI2LDYg
KzE2MzYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAg
I2RlZmluZSBTQU1QTEUoY29kZUJsb2NrLCB2UEMpCiAjZW5kaWYKIAorICAgICp0b3BDYWxsRnJh
bWVTbG90ID0gY2FsbEZyYW1lOwogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX0lOVEVSUFJFVEVS
KQogICAgICNkZWZpbmUgTkVYVF9JTlNUUlVDVElPTigpIFNBTVBMRShjb2RlQmxvY2ssIHZQQyk7
IGdvdG8gKnZQQy0+dS5vcGNvZGUKICNpZiBFTkFCTEUoT1BDT0RFX1NUQVRTKQpAQCAtNDE1Niw2
ICs0MTY3LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICBnb3RvIHZt
X3Rocm93OwogICAgICAgICAgICAgZnVuY3Rpb25SZXR1cm5WYWx1ZSA9IHJlc3VsdDsKIAorICAg
ICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2UEMg
Kz0gT1BDT0RFX0xFTkdUSChvcF9jYWxsX2V2YWwpOwogICAgICAgICAgICAgTkVYVF9JTlNUUlVD
VElPTigpOwogICAgICAgICB9CkBAIC00MjA1LDYgKzQyMTcsNyBAQCBza2lwX2lkX2N1c3RvbV9z
ZWxmOgogICAgICAgICAgICAgY2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywgdlBDICsgT1BD
T0RFX0xFTkdUSChvcF9jYWxsKSwgY2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91c0NhbGxGcmFt
ZSwgYXJnQ291bnQsIGFzRnVuY3Rpb24odikpOwogICAgICAgICAgICAgY29kZUJsb2NrID0gbmV3
Q29kZUJsb2NrOwogICAgICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpKTsKKyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwog
ICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwog
CiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKQEAgLTQyMjIsNiArNDIzNSw3IEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgZ290byB2bV90aHJvdzsKICAgICAgICAgICAg
IH0KIAorICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBuZXdDYWxsRnJhbWU7CiAgICAg
ICAgICAgICBuZXdDYWxsRnJhbWUtPmluaXQoMCwgdlBDICsgT1BDT0RFX0xFTkdUSChvcF9jYWxs
KSwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLCBhcmdDb3VudCwgYXNPYmplY3QodikpOwogCiAgICAg
ICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlOwpAQCAtNDIyOSw2ICs0MjQzLDcgQEAgc2tpcF9p
ZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICBTYW1wbGluZ1Rvb2w6Okhvc3RDYWxsUmVj
b3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm5W
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZy
YW1lKSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNh
bGxGcmFtZTsKICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKIAogICAgICAgICAg
ICAgZnVuY3Rpb25SZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlOwpAQCAtNDM3Myw2ICs0Mzg4LDcg
QEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdD
b2RlQmxvY2ssIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwgY2FsbERhdGFT
Y29wZUNoYWluLCBwcmV2aW91c0NhbGxGcmFtZSwgYXJnQ291bnQsIGFzRnVuY3Rpb24odikpOwog
ICAgICAgICAgICAgY29kZUJsb2NrID0gbmV3Q29kZUJsb2NrOwogICAgICAgICAgICAgQVNTRVJU
KGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKKyAgICAgICAgICAgICp0b3BD
YWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2Nr
LT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgICAgICAgICAgCiAjaWYgRU5BQkxFKE9QQ09E
RV9TVEFUUykKQEAgLTQzODksNiArNDQwNSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAg
ICAgICAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2Fs
bEZyYW1lKTsKICAgICAgICAgICAgICAgICBnb3RvIHZtX3Rocm93OwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBuZXdDYWxsRnJhbWU7CiAgICAgICAgICAg
ICBuZXdDYWxsRnJhbWUtPmluaXQoMCwgdlBDICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFy
Z3MpLCBzY29wZUNoYWluLCBjYWxsRnJhbWUsIGFyZ0NvdW50LCBhc09iamVjdCh2KSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWU7CkBAIC00NDAwLDYgKzQ0
MTcsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBm
dW5jdGlvblJldHVyblZhbHVlID0gcmV0dXJuVmFsdWU7CiAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDICs9IE9Q
Q09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKTsKICAgICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJ
T04oKTsKICAgICAgICAgfQpAQCAtNDQ3Nyw2ICs0NDk1LDcgQEAgc2tpcF9pZF9jdXN0b21fc2Vs
ZjoKICAgICAgICAgdlBDID0gY2FsbEZyYW1lLT5yZXR1cm5WUEMoKTsKICAgICAgICAgY2FsbEZy
YW1lID0gY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpOwogICAgICAgICAKKyAgICAgICAgKnRvcENh
bGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgIGlmIChjYWxsRnJhbWUtPmhhc0hvc3RD
YWxsRnJhbWVGbGFnKCkpCiAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAKQEAgLTQ1
MjQsNiArNDU0Myw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIGZ1bmN0aW9uUmV0
dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKICAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1lLT5j
b2RlQmxvY2soKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNvZGVC
bG9jaygpKTsKKyAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAKICAgICAg
ICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KQEAgLTQ2OTQsNiArNDcxNCw3IEBAIHNraXBf
aWRfY3VzdG9tX3NlbGY6CiAKICAgICAgICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxv
Y2ssIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY29uc3RydWN0KSwgY2FsbERhdGFTY29wZUNoYWlu
LCBwcmV2aW91c0NhbGxGcmFtZSwgYXJnQ291bnQsIGFzRnVuY3Rpb24odikpOwogICAgICAgICAg
ICAgY29kZUJsb2NrID0gbmV3Q29kZUJsb2NrOworICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNs
b3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2UEMgPSBuZXdDb2RlQmxvY2stPmluc3RydWN0
aW9ucygpLmJlZ2luKCk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKICAgICAgICAgICAgIE9w
Y29kZVN0YXRzOjpyZXNldExhc3RJbnN0cnVjdGlvbigpOwpAQCAtNDcxOSw2ICs0NzQwLDcgQEAg
c2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsK
ICAgICAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKIAorICAgICAg
ICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2UEMgKz0g
T1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1Y3QpOwogICAgICAgICAgICAgTkVYVF9JTlNUUlVDVElP
TigpOwogICAgICAgICB9CkBAIC00ODk3LDYgKzQ5MTksNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxm
OgogICAgICAgICBjYWxsRnJhbWUtPnVuY2hlY2tlZFIoZXgpID0gZXhjZXB0aW9uVmFsdWU7CiAg
ICAgICAgIGV4Y2VwdGlvblZhbHVlID0gSlNWYWx1ZSgpOwogCisgICAgICAgICp0b3BDYWxsRnJh
bWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9jYXRj
aCk7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CkBAIC00OTE5LDYgKzQ5NDIs
NyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
Y2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSk7CiAKICAgICAgICAgY29kZUJsb2NrID0gY2FsbEZy
YW1lLT5jb2RlQmxvY2soKTsKKyAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7
CiAgICAgICAgIHZQQyA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGhhbmRs
ZXItPnRhcmdldDsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KQEAgLTUwNzgs
NiArNTEwMiw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIH0KIAogICAgICAgICBj
b2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOworICAgICAgICAqdG9wQ2FsbEZyYW1l
U2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMo
KS5iZWdpbigpICsgaGFuZGxlci0+dGFyZ2V0OwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7
CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiA5MzM1MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw3
ICszNjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQog
ICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9
IDM3OwogI2Vsc2UKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRT
bG93Q2FzZUNhbGwgPSAyNzsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdl
dEJ5SWRTbG93Q2FzZUNhbGwgPSAzMzsKICNlbmRpZgogICAgICAgICBzdGF0aWMgY29uc3QgaW50
IHBhdGNoT2Zmc2V0T3BDYWxsQ29tcGFyZVRvSnVtcCA9IDY7CiAKQEAgLTU5Nyw3ICs1OTcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQogICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9IDY0OwogI2Vs
c2UKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNh
bGwgPSA0MTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93
Q2FzZUNhbGwgPSA1NDsKICNlbmRpZgogICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zm
c2V0T3BDYWxsQ29tcGFyZVRvSnVtcCA9IDk7CiAKQEAgLTk1Miw2ICs5NTIsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICB2b2lkIHJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZSgpOwogICAg
ICAgICB2b2lkIHJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZUZvclRyYW1wb2xpbmUoKTsKKyAgICAg
ICAgdm9pZCB1cGRhdGVUb3BDYWxsRnJhbWUoKTsKIAogICAgICAgICBDYWxsIGVtaXROYWtlZENh
bGwoQ29kZVB0ciBmdW5jdGlvbiA9IENvZGVQdHIoKSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCShyZXZpc2lvbiA5MzM1MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTMsNiArMjUzLDExIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OnJlc3RvcmVBcmd1
bWVudFIKICAgICBwb2tlKGNhbGxGcmFtZVJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIGNhbGxGcmFtZSkgLyBzaXplb2Yodm9pZCopKTsKIH0KIAorQUxXQVlT
X0lOTElORSB2b2lkIEpJVDo6dXBkYXRlVG9wQ2FsbEZyYW1lKCkKK3sKKyAgICBzdG9yZVB0cihj
YWxsRnJhbWVSZWdpc3RlciwgJm1fZ2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lKTsKK30KKwogQUxX
QVlTX0lOTElORSB2b2lkIEpJVDo6cmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlRm9yVHJhbXBvbGlu
ZSgpCiB7CiAjaWYgQ1BVKFg4NikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YkNhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJDYWxsLmgJKHJldmlzaW9uIDkzMzUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHViQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNiArMTcyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAjZW5kaWYKIAogICAgICAgICAgICAgbV9qaXQtPnJlc3RvcmVBcmd1bWVudFJlZmVy
ZW5jZSgpOworICAgICAgICAgICAgbV9qaXQtPnVwZGF0ZVRvcENhbGxGcmFtZSgpOwogICAgICAg
ICAgICAgSklUOjpDYWxsIGNhbGwgPSBtX2ppdC0+Y2FsbCgpOwogICAgICAgICAgICAgbV9qaXQt
Pm1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbCwgbV9qaXQtPm1fYnl0ZWNvZGVPZmZzZXQs
IG1fc3R1Yi52YWx1ZSgpKSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuY3BwCShyZXZpc2lvbiA5MzM1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ2LDYgKzEwNDYsMTUgQEAgc3RhdGljIEV4
Y2VwdGlvbkhhbmRsZXIgaml0VGhyb3coSlNHbG9iYQogICAgIHJldHVybiBleGNlcHRpb25IYW5k
bGVyOwogfQogCisvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIEpJVCBzdHVicyB0aGF0IG1heSB0aHJv
dyBhbiBleGNlcHRpb24gaW4gdGhlIG1pZGRsZSBvZgorLy8gcHJvY2Vzc2luZyBhIGZ1bmN0aW9u
IGNhbGwuIFRoaXMgZnVuY3Rpb24gcm9sbHMgYmFjayB0aGUgcmVnaXN0ZXIgZmlsZSB0bworLy8g
b3VyIGNhbGxlciwgc28gZXhjZXB0aW9uIHByb2Nlc3NpbmcgY2FuIHByb2NlZWQgZnJvbSBhIHZh
bGlkIHN0YXRlLgorc3RhdGljIEFMV0FZU19JTkxJTkUgRXhjZXB0aW9uSGFuZGxlciB0aHJvd0V4
Y2VwdGlvbkZyb21PcENhbGwoQ2FsbEZyYW1lKiBvbGRDYWxsRnJhbWUsIENhbGxGcmFtZSogbmV3
Q2FsbEZyYW1lKQoreworICAgIG9sZENhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFt
ZSA9IG9sZENhbGxGcmFtZTsKKyAgICByZXR1cm4gaml0VGhyb3coJm9sZENhbGxGcmFtZS0+Z2xv
YmFsRGF0YSgpLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxs
RnJhbWUpLCBSZXR1cm5BZGRyZXNzUHRyKG5ld0NhbGxGcmFtZS0+cmV0dXJuUEMoKSkpOworfQor
CiAjaWYgQ1BVKEFSTV9USFVNQjIpICYmIENPTVBJTEVSKEdDQykKIAogI2RlZmluZSBERUZJTkVf
U1RVQl9GVU5DVElPTihydHlwZSwgb3ApIFwKQEAgLTEzNTAsMTAgKzEzNTksNyBAQCBERUZJTkVf
U1RVQl9GVU5DVElPTih2b2lkKiwgcmVnaXN0ZXJfZmlsCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZTsKIAogICAgIGlmIChVTkxJS0VMWSghc3RhY2tGcmFt
ZS5yZWdpc3RlckZpbGUtPmdyb3coJmNhbGxGcmFtZS0+cmVnaXN0ZXJzKClbY2FsbEZyYW1lLT5j
b2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnNdKSkpIHsKLSAgICAgICAgLy8gUmV3aW5k
IHRvIHRoZSBwcmV2aW91cyBjYWxsIGZyYW1lIGJlY2F1c2Ugb3BfY2FsbCBhbHJlYWR5IG9wdGlt
aXN0aWNhbGx5Ci0gICAgICAgIC8vIG1vdmVkIHRoZSBjYWxsIGZyYW1lIGZvcndhcmQuCi0gICAg
ICAgIENhbGxGcmFtZSogb2xkQ2FsbEZyYW1lID0gY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpOwot
ICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSBqaXRUaHJvdyhzdGFja0ZyYW1lLmds
b2JhbERhdGEsIG9sZENhbGxGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG9sZENhbGxG
cmFtZSksIFJldHVybkFkZHJlc3NQdHIoY2FsbEZyYW1lLT5yZXR1cm5QQygpKSk7CisgICAgICAg
IEV4Y2VwdGlvbkhhbmRsZXIgaGFuZGxlciA9IHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbChjYWxs
RnJhbWUtPmNhbGxlckZyYW1lKCksIGNhbGxGcmFtZSk7CiAgICAgICAgIFNUVUJfU0VUX1JFVFVS
Tl9BRERSRVNTKGhhbmRsZXIuY2F0Y2hSb3V0aW5lKTsKICAgICAgICAgY2FsbEZyYW1lID0gaGFu
ZGxlci5jYWxsRnJhbWU7CiAgICAgfQpAQCAtMTk1MCw5ICsxOTU2LDcgQEAgaW5saW5lIHZvaWQq
IGFyaXR5Q2hlY2tGb3IoSklUU3RhY2tGcmFtZQogICAgICAgICByID0gY2FsbEZyYW1lLT5yZWdp
c3RlcnMoKSArIG51bVBhcmFtZXRlcnM7CiAgICAgICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSByICsg
bmV3Q29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKICAgICAgICAgaWYgKCFzdGFja0Zy
YW1lLnJlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdFbmQpKSB7Ci0gICAgICAgICAgICAvLyBSZXdpbmQg
dG8gdGhlIHByZXZpb3VzIGNhbGwgZnJhbWUgYmVjYXVzZSBvcF9jYWxsIGFscmVhZHkgb3B0aW1p
c3RpY2FsbHkKLSAgICAgICAgICAgIC8vIG1vdmVkIHRoZSBjYWxsIGZyYW1lIGZvcndhcmQuCi0g
ICAgICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSBqaXRUaHJvdyhzdGFja0ZyYW1l
Lmdsb2JhbERhdGEsIG9sZENhbGxGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG9sZENh
bGxGcmFtZSksIHBjKTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIgaGFuZGxlciA9IHRo
cm93RXhjZXB0aW9uRnJvbU9wQ2FsbChvbGRDYWxsRnJhbWUsIGNhbGxGcmFtZSk7CiAgICAgICAg
ICAgICBzdHViUmV0dXJuQWRkcmVzcyA9IFJldHVybkFkZHJlc3NQdHIoaGFuZGxlci5jYXRjaFJv
dXRpbmUpOwogICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXIuY2FsbEZyYW1lOwogICAgICAgICB9
CkBAIC0xOTY1LDkgKzE5NjksNyBAQCBpbmxpbmUgdm9pZCogYXJpdHlDaGVja0ZvcihKSVRTdGFj
a0ZyYW1lCiAgICAgICAgIHIgPSBjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgb21pdHRlZEFyZ0Nv
dW50OwogICAgICAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bV9udW1D
YWxsZWVSZWdpc3RlcnM7CiAgICAgICAgIGlmICghc3RhY2tGcmFtZS5yZWdpc3RlckZpbGUtPmdy
b3cobmV3RW5kKSkgewotICAgICAgICAgICAgLy8gUmV3aW5kIHRvIHRoZSBwcmV2aW91cyBjYWxs
IGZyYW1lIGJlY2F1c2Ugb3BfY2FsbCBhbHJlYWR5IG9wdGltaXN0aWNhbGx5Ci0gICAgICAgICAg
ICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICAgICAgRXhjZXB0aW9u
SGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRDYWxs
RnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBwYyk7CisgICAg
ICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZyb21PcENh
bGwob2xkQ2FsbEZyYW1lLCBjYWxsRnJhbWUpOwogICAgICAgICAgICAgc3R1YlJldHVybkFkZHJl
c3MgPSBSZXR1cm5BZGRyZXNzUHRyKGhhbmRsZXIuY2F0Y2hSb3V0aW5lKTsKICAgICAgICAgICAg
IHJldHVybiBoYW5kbGVyLmNhbGxGcmFtZTsKICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCShyZXZpc2lvbiA5MzM1MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2Miw2ICsxNjIsNyBAQCB2b2lkIEpTR2xvYmFsRGF0YTo6c3RvcmVWUHRy
cygpCiBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRh
VHlwZSwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZFN0YWNrVHlwZSwgSGVhcFNpemUgaGVhcFNpemUp
CiAgICAgOiBnbG9iYWxEYXRhVHlwZShnbG9iYWxEYXRhVHlwZSkKICAgICAsIGNsaWVudERhdGEo
MCkKKyAgICAsIHRvcENhbGxGcmFtZShDYWxsRnJhbWU6Om5vQ2FsbGVyKCkpCiAgICAgLCBhcnJh
eUNvbnN0cnVjdG9yVGFibGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6YXJyYXlDb25zdHJ1Y3Rv
clRhYmxlKSkKICAgICAsIGFycmF5UHJvdG90eXBlVGFibGUoZmFzdE5ldzxIYXNoVGFibGU+KEpT
Qzo6YXJyYXlQcm90b3R5cGVUYWJsZSkpCiAgICAgLCBib29sZWFuUHJvdG90eXBlVGFibGUoZmFz
dE5ldzxIYXNoVGFibGU+KEpTQzo6Ym9vbGVhblByb3RvdHlwZVRhYmxlKSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCShyZXZpc2lvbiA5MzM1
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
R2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGU7CiAgICAgICAgIENsaWVudERhdGEqIGNsaWVu
dERhdGE7CisgICAgICAgIENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0
IEhhc2hUYWJsZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFi
bGUqIGFycmF5UHJvdG90eXBlVGFibGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDkzMzUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDI4LDYgKzQyOCw4IEBAIGlu
bGluZSBKU09iamVjdCogYXNPYmplY3QoSlNDZWxsKiBjZWxsKQogCiBpbmxpbmUgSlNPYmplY3Qq
IGFzT2JqZWN0KEpTVmFsdWUgdmFsdWUpCiB7CisgICAgaWYgKCF2YWx1ZS5pc0NlbGwoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFzT2JqZWN0KHZhbHVlLmFzQ2VsbCgpKTsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104559</attachid>
            <date>2011-08-19 14:00:14 -0700</date>
            <delta_ts>2011-08-19 16:37:43 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-66571-20110819140013.patch</filename>
            <type>text/plain</type>
            <size>17636</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM0MzQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTEtMDgtMTkgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRvcENhbGxGcmFtZSBmb3IgU3RhY2sgdHJhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIGEgVG9wQ2FsbEZyYW1lIHRvIEpTQyBpbiBvcmRlciB0byBoYXZlIHRoYXQgaW5mb3Jt
YXRpb24KKyAgICAgICAgd2hlbiBhbiBlcnJvciBpcyB0aHJvd24gdG8gY3JlYXRlIGEgc3RhY2sg
dHJhY2UuIFRoZSBUb3BDYWxsRnJhbWUgaXMKKyAgICAgICAgdXBkYXRlZCB0aHJvdWdob3V0IHNl
bGVjdCBwb2ludHMgaW4gdGhlIEludGVycHJldGVyIGFuZCB0aGUgSlNDLgorCisgICAgICAgICog
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OlRvcENhbGxGcmFtZTo6VG9w
Q2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6VG9wQ2FsbEZyYW1lOjp+VG9wQ2FsbEZyYW1lKToK
KyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjp0aHJvd0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpl
eGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAg
ICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJ
bnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OnVwZGF0ZVRv
cENhbGxGcmFtZSk6CisgICAgICAgICogaml0L0pJVFN0dWJDYWxsLmg6CisgICAgICAgIChKU0M6
OkpJVFN0dWJDYWxsOjpjYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAg
ICAoSlNDOjp0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwpOgorICAgICAgICAoSlNDOjpERUZJTkVf
U1RVQl9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpK
U0dsb2JhbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg6CisKIDIwMTEt
MDgtMTggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIGFsbG9jYXRpb24gaW4gY29uc3RydWN0b3JzIGludG8gc2VwYXJhdGUgY29uc3RydWN0
b3JCb2R5KCkgbWV0aG9kcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw2ICsxNjMs
MjMgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICB+RXhlY1N0YXRlKCk7CiAgICAgfTsKIAor
ICAgIGNsYXNzIFRvcENhbGxGcmFtZSB7CisgICAgcHVibGljOgorICAgICAgICBUb3BDYWxsRnJh
bWUoSlNHbG9iYWxEYXRhKiBnbG9iYWwsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAgICAgICA6
IGdsb2JhbERhdGEoZ2xvYmFsKQorICAgICAgICAsIG9sZENhbGxGcmFtZShnbG9iYWwtPnRvcENh
bGxGcmFtZSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsb2JhbERhdGEtPnRvcENhbGxGcmFt
ZSA9IGNhbGxGcmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIH5Ub3BDYWxsRnJhbWUoKSAKKyAg
ICAgICAgeworICAgICAgICAgICAgZ2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lID0gb2xkQ2FsbEZy
YW1lOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhOworICAgICAgICBDYWxsRnJhbWUqIG9sZENhbGxGcmFtZTsKKyAgICB9OwogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBDYWxsRnJhbWVfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiA5
MzM1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY5MCw2ICs2OTAsNyBAQCBORVZFUl9JTkxJTkUgSGFuZGxl
ckluZm8qIEludGVycHJldGVyOjp0CiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxs
RnJhbWUtPmNvZGVCbG9jaygpOwogICAgIGJvb2wgaXNJbnRlcnJ1cHQgPSBmYWxzZTsKKyAgICBj
YWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CiAKICAgICAv
LyBTZXQgdXAgdGhlIGV4Y2VwdGlvbiBvYmplY3QKICAgICBpZiAoZXhjZXB0aW9uVmFsdWUuaXNP
YmplY3QoKSkgewpAQCAtODgxLDYgKzg4Miw3IEBAIGZhaWxlZEpTT05QOgogICAgIEFTU0VSVChj
b2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyA9PSAxKTsgLy8gMSBwYXJhbWV0ZXIgZm9yICd0aGlz
Jy4KICAgICBuZXdDYWxsRnJhbWUtPmluaXQoY29kZUJsb2NrLCAwLCBzY29wZUNoYWluLCBDYWxs
RnJhbWU6Om5vQ2FsbGVyKCksIGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzLCAwKTsKICAgICBu
ZXdDYWxsRnJhbWUtPnVuY2hlY2tlZFIobmV3Q2FsbEZyYW1lLT5ob3N0VGhpc1JlZ2lzdGVyKCkp
ID0gSlNWYWx1ZSh0aGlzT2JqKTsKKyAgICBUb3BDYWxsRnJhbWUgdG9wQ2FsbEZyYW1lKCZjYWxs
RnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAogICAgIFByb2ZpbGVyKiogcHJv
ZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAgICAgaWYgKCpw
cm9maWxlcikKQEAgLTkxMSw2ICs5MTMsNyBAQCBmYWlsZWRKU09OUDoKIAogSlNWYWx1ZSBJbnRl
cnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBmdW5j
dGlvbiwgQ2FsbFR5cGUgY2FsbFR5cGUsIGNvbnN0IENhbGxEYXRhJiBjYWxsRGF0YSwgSlNWYWx1
ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CisgICAgY2FsbEZyYW1lLT5nbG9i
YWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgIEFTU0VSVChpc1ZhbGlkVGhp
c09iamVjdCh0aGlzVmFsdWUsIGNhbGxGcmFtZSkpOwogICAgIEFTU0VSVCghY2FsbEZyYW1lLT5o
YWRFeGNlcHRpb24oKSk7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5pc0Nv
bGxlY3RvckJ1c3koKSk7CkBAIC05NTMsNiArOTU2LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6
ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogICAgICAgICB9CiAKICAgICAgICAgbmV3Q2FsbEZyYW1lLT5p
bml0KG5ld0NvZGVCbG9jaywgMCwgY2FsbERhdGFTY29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhv
c3RDYWxsRnJhbWVGbGFnKCksIGFyZ0NvdW50LCBmdW5jdGlvbik7CisgICAgICAgIFRvcENhbGxG
cmFtZSB0b3BDYWxsRnJhbWUoJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxsRnJhbWUp
OwogCiAgICAgICAgIFByb2ZpbGVyKiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2Zp
bGVyUmVmZXJlbmNlKCk7CiAgICAgICAgIGlmICgqcHJvZmlsZXIpCkBAIC0xMDA1LDYgKzEwMDks
NyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhCiAKIEpTT2JqZWN0
KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNP
YmplY3QqIGNvbnN0cnVjdG9yLCBDb25zdHJ1Y3RUeXBlIGNvbnN0cnVjdFR5cGUsIGNvbnN0IENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CisgICAg
Y2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgIEFT
U0VSVCghY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSk7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUt
Pmdsb2JhbERhdGEoKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAgICAgLy8gV2UgdGhyb3cgaW4gdGhp
cyBjYXNlIGJlY2F1c2Ugd2UgaGF2ZSB0byByZXR1cm4gc29tZXRoaW5nICJ2YWxpZCIgYnV0IHdl
J3JlCkBAIC0xMDI4LDYgKzEwMzMsOCBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
b25zdHJ1Y3QoCiAgICAgZm9yIChBcmdMaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3MuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBuZXdDYWxsRnJhbWUtPnVuY2hlY2tlZFIo
Kytkc3QpID0gKml0OwogCisgICAgVG9wQ2FsbEZyYW1lIHRvcENhbGxGcmFtZSgmY2FsbEZyYW1l
LT5nbG9iYWxEYXRhKCksIG5ld0NhbGxGcmFtZSk7CisKICAgICBpZiAoY29uc3RydWN0VHlwZSA9
PSBDb25zdHJ1Y3RUeXBlSlMpIHsKICAgICAgICAgU2NvcGVDaGFpbk5vZGUqIGNvbnN0cnVjdERh
dGFTY29wZUNoYWluID0gY29uc3RydWN0RGF0YS5qcy5zY29wZUNoYWluOwogCkBAIC0xMTg5LDYg
KzExOTYsNyBAQCB2b2lkIEludGVycHJldGVyOjplbmRSZXBlYXRDYWxsKENhbGxGcmFtCiAKIEpT
VmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hh
aW4pCiB7CisgICAgY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbEZy
YW1lOwogICAgIEpTT2JqZWN0KiBjb21waWxlRXJyb3IgPSBldmFsLT5jb21waWxlKGNhbGxGcmFt
ZSwgc2NvcGVDaGFpbik7CiAgICAgaWYgKFVOTElLRUxZKCEhY29tcGlsZUVycm9yKSkKICAgICAg
ICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dFcnJvcihjYWxsRnJhbWUsIGNvbXBpbGVFcnJv
cikpOwpAQCAtMTE5OCw2ICsxMjA2LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShF
dmFsRXhlY3V0YQogSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSog
ZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdGhpc1ZhbHVlLCBpbnQgZ2xvYmFs
UmVnaXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQogewogICAgIEFTU0VS
VChpc1ZhbGlkVGhpc09iamVjdCh0aGlzVmFsdWUsIGNhbGxGcmFtZSkpOworICAgIGNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICBBU1NFUlQoIXNj
b3BlQ2hhaW4tPmdsb2JhbERhdGEtPmV4Y2VwdGlvbik7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUt
Pmdsb2JhbERhdGEoKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAgICAgaWYgKGNhbGxGcmFtZS0+Z2xv
YmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKQpAQCAtMTU5Miw2ICsxNjAxLDcgQEAgSlNWYWx1
ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgIEpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YSA9ICZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKTsKICAgICBKU1ZhbHVlIGV4Y2VwdGlv
blZhbHVlOwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gMDsKKyAgICBDYWxsRnJhbWUqKiB0
b3BDYWxsRnJhbWVTbG90ID0gJmdsb2JhbERhdGEtPnRvcENhbGxGcmFtZTsKIAogICAgIENvZGVC
bG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICBJbnN0cnVjdGlv
biogdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwpAQCAtMTYyNiw2ICsx
NjM2LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgICNk
ZWZpbmUgU0FNUExFKGNvZGVCbG9jaywgdlBDKQogI2VuZGlmCiAKKyAgICAqdG9wQ2FsbEZyYW1l
U2xvdCA9IGNhbGxGcmFtZTsKICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19JTlRFUlBSRVRFUikK
ICAgICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBTQU1QTEUoY29kZUJsb2NrLCB2UEMpOyBn
b3RvICp2UEMtPnUub3Bjb2RlCiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKQEAgLTQxNTYsNiAr
NDE2Nyw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgZ290byB2bV90
aHJvdzsKICAgICAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXN1bHQ7CiAKKyAgICAg
ICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDICs9
IE9QQ09ERV9MRU5HVEgob3BfY2FsbF9ldmFsKTsKICAgICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJ
T04oKTsKICAgICAgICAgfQpAQCAtNDIwNSw2ICs0MjE3LDcgQEAgc2tpcF9pZF9jdXN0b21fc2Vs
ZjoKICAgICAgICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHZQQyArIE9QQ09E
RV9MRU5HVEgob3BfY2FsbCksIGNhbGxEYXRhU2NvcGVDaGFpbiwgcHJldmlvdXNDYWxsRnJhbWUs
IGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0Nv
ZGVCbG9jazsKICAgICAgICAgICAgIEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKSk7CisgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAg
ICAgICAgICAgIHZQQyA9IG5ld0NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKIAog
I2lmIEVOQUJMRShPUENPREVfU1RBVFMpCkBAIC00MjIyLDYgKzQyMzUsNyBAQCBza2lwX2lkX2N1
c3RvbV9zZWxmOgogICAgICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CiAgICAgICAgICAgICB9
CiAKKyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gbmV3Q2FsbEZyYW1lOwogICAgICAg
ICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KDAsIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCks
IHNjb3BlQ2hhaW4sIGNhbGxGcmFtZSwgYXJnQ291bnQsIGFzT2JqZWN0KHYpKTsKIAogICAgICAg
ICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKQEAgLTQyMjksNiArNDI0Myw3IEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29y
ZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKG5ld0NhbGxGcmFt
ZSkpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxs
RnJhbWU7CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAKICAgICAgICAgICAg
IGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKQEAgLTQzNzMsNiArNDM4OCw3IEBA
IHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29k
ZUJsb2NrLCB2UEMgKyBPUENPREVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncyksIGNhbGxEYXRhU2Nv
cGVDaGFpbiwgcHJldmlvdXNDYWxsRnJhbWUsIGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAg
ICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKICAgICAgICAgICAgIEFTU0VSVChj
b2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7CisgICAgICAgICAgICAqdG9wQ2Fs
bEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZQQyA9IG5ld0NvZGVCbG9jay0+
aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICAgICAgICAgIAogI2lmIEVOQUJMRShPUENPREVf
U1RBVFMpCkBAIC00Mzg5LDYgKzQ0MDUsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxG
cmFtZSk7CiAgICAgICAgICAgICAgICAgZ290byB2bV90aHJvdzsKICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gbmV3Q2FsbEZyYW1lOwogICAgICAgICAgICAg
bmV3Q2FsbEZyYW1lLT5pbml0KDAsIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdz
KSwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLCBhcmdDb3VudCwgYXNPYmplY3QodikpOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlOwpAQCAtNDQwMCw2ICs0NDE3
LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnVu
Y3Rpb25SZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlOwogICAgICAgICAgICAgCisgICAgICAgICAg
ICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZQQyArPSBPUENP
REVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncyk7CiAgICAgICAgICAgICBORVhUX0lOU1RSVUNUSU9O
KCk7CiAgICAgICAgIH0KQEAgLTQ0NzcsNiArNDQ5NSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6
CiAgICAgICAgIHZQQyA9IGNhbGxGcmFtZS0+cmV0dXJuVlBDKCk7CiAgICAgICAgIGNhbGxGcmFt
ZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKICAgICAgICAgCisgICAgICAgICp0b3BDYWxs
RnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICBpZiAoY2FsbEZyYW1lLT5oYXNIb3N0Q2Fs
bEZyYW1lRmxhZygpKQogICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogCkBAIC00NTI0
LDYgKzQ1NDMsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICBmdW5jdGlvblJldHVy
blZhbHVlID0gcmV0dXJuVmFsdWU7CiAgICAgICAgIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29k
ZUJsb2NrKCk7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKSk7CisgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogCiAgICAgICAg
IE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CkBAIC00Njk0LDYgKzQ3MTQsNyBAQCBza2lwX2lk
X2N1c3RvbV9zZWxmOgogCiAgICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2Nr
LCB2UEMgKyBPUENPREVfTEVOR1RIKG9wX2NvbnN0cnVjdCksIGNhbGxEYXRhU2NvcGVDaGFpbiwg
cHJldmlvdXNDYWxsRnJhbWUsIGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAgICAgICAgICAg
IGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKKyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90
ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpOwogI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCiAgICAgICAgICAgICBPcGNv
ZGVTdGF0czo6cmVzZXRMYXN0SW5zdHJ1Y3Rpb24oKTsKQEAgLTQ3MTksNiArNDc0MCw3IEBAIHNr
aXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAg
ICAgICAgICAgICBmdW5jdGlvblJldHVyblZhbHVlID0gcmV0dXJuVmFsdWU7CiAKKyAgICAgICAg
ICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDICs9IE9Q
Q09ERV9MRU5HVEgob3BfY29uc3RydWN0KTsKICAgICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04o
KTsKICAgICAgICAgfQpAQCAtNDg5Nyw2ICs0OTE5LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoK
ICAgICAgICAgY2FsbEZyYW1lLT51bmNoZWNrZWRSKGV4KSA9IGV4Y2VwdGlvblZhbHVlOwogICAg
ICAgICBleGNlcHRpb25WYWx1ZSA9IEpTVmFsdWUoKTsKIAorICAgICAgICAqdG9wQ2FsbEZyYW1l
U2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgob3BfY2F0Y2gp
OwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQpAQCAtNDkxOSw2ICs0OTQyLDcg
QEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGNh
bGxGcmFtZSwgZXhjZXB0aW9uVmFsdWUpOwogCiAgICAgICAgIGNvZGVCbG9jayA9IGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCk7CisgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwog
ICAgICAgICB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBoYW5kbGVy
LT50YXJnZXQ7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CkBAIC01MDc4LDYg
KzUxMDIsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICB9CiAKICAgICAgICAgY29k
ZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICAgICAgKnRvcENhbGxGcmFtZVNs
b3QgPSBjYWxsRnJhbWU7CiAgICAgICAgIHZQQyA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCku
YmVnaW4oKSArIGhhbmRsZXItPnRhcmdldDsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gOTMzNTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsNyAr
MzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKICAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSAz
NzsKICNlbHNlCi0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xv
d0Nhc2VDYWxsID0gMjc7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRC
eUlkU2xvd0Nhc2VDYWxsID0gMzM7CiAjZW5kaWYKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBw
YXRjaE9mZnNldE9wQ2FsbENvbXBhcmVUb0p1bXAgPSA2OwogCkBAIC01OTcsNyArNTk3LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKICAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA2NDsKICNlbHNl
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxs
ID0gNDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nh
c2VDYWxsID0gNTQ7CiAjZW5kaWYKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNl
dE9wQ2FsbENvbXBhcmVUb0p1bXAgPSA5OwogCkBAIC05NTIsNiArOTUyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgdm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKICAgICAg
ICAgdm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2VGb3JUcmFtcG9saW5lKCk7CisgICAgICAg
IHZvaWQgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CiAKICAgICAgICAgQ2FsbCBlbWl0TmFrZWRDYWxs
KENvZGVQdHIgZnVuY3Rpb24gPSBDb2RlUHRyKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjUzLDYgKzI1MywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0b3JlQXJndW1l
bnRSCiAgICAgcG9rZShjYWxsRnJhbWVSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9mKHZvaWQqKSk7CiB9CiAKK0FMV0FZU19J
TkxJTkUgdm9pZCBKSVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSgpCit7CisgICAgc3RvcmVQdHIoY2Fs
bEZyYW1lUmVnaXN0ZXIsICZtX2dsb2JhbERhdGEtPnRvcENhbGxGcmFtZSk7Cit9CisKIEFMV0FZ
U19JTkxJTkUgdm9pZCBKSVQ6OnJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZUZvclRyYW1wb2xpbmUo
KQogewogI2lmIENQVShYODYpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
Q2FsbC5oCShyZXZpc2lvbiA5MzM1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YkNhbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogI2VuZGlmCiAKICAgICAgICAgICAgIG1faml0LT5yZXN0b3JlQXJndW1lbnRSZWZlcmVu
Y2UoKTsKKyAgICAgICAgICAgIG1faml0LT51cGRhdGVUb3BDYWxsRnJhbWUoKTsKICAgICAgICAg
ICAgIEpJVDo6Q2FsbCBjYWxsID0gbV9qaXQtPmNhbGwoKTsKICAgICAgICAgICAgIG1faml0LT5t
X2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwsIG1faml0LT5tX2J5dGVjb2RlT2Zmc2V0LCBt
X3N0dWIudmFsdWUoKSkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0Niw2ICsxMDQ2LDE1IEBAIHN0YXRpYyBFeGNl
cHRpb25IYW5kbGVyIGppdFRocm93KEpTR2xvYmEKICAgICByZXR1cm4gZXhjZXB0aW9uSGFuZGxl
cjsKIH0KIAorLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBKSVQgc3R1YnMgdGhhdCBtYXkgdGhyb3cg
YW4gZXhjZXB0aW9uIGluIHRoZSBtaWRkbGUgb2YKKy8vIHByb2Nlc3NpbmcgYSBmdW5jdGlvbiBj
YWxsLiBUaGlzIGZ1bmN0aW9uIHJvbGxzIGJhY2sgdGhlIHJlZ2lzdGVyIGZpbGUgdG8KKy8vIG91
ciBjYWxsZXIsIHNvIGV4Y2VwdGlvbiBwcm9jZXNzaW5nIGNhbiBwcm9jZWVkIGZyb20gYSB2YWxp
ZCBzdGF0ZS4KK3N0YXRpYyBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbkhhbmRsZXIgdGhyb3dFeGNl
cHRpb25Gcm9tT3BDYWxsKENhbGxGcmFtZSogb2xkQ2FsbEZyYW1lLCBDYWxsRnJhbWUqIG5ld0Nh
bGxGcmFtZSkKK3sKKyAgICBvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUg
PSBvbGRDYWxsRnJhbWU7CisgICAgcmV0dXJuIGppdFRocm93KCZvbGRDYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKSwgb2xkQ2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZy
YW1lKSwgUmV0dXJuQWRkcmVzc1B0cihuZXdDYWxsRnJhbWUtPnJldHVyblBDKCkpKTsKK30KKwog
I2lmIENQVShBUk1fVEhVTUIyKSAmJiBDT01QSUxFUihHQ0MpCiAKICNkZWZpbmUgREVGSU5FX1NU
VUJfRlVOQ1RJT04ocnR5cGUsIG9wKSBcCkBAIC0xMzUwLDEwICsxMzU5LDcgQEAgREVGSU5FX1NU
VUJfRlVOQ1RJT04odm9pZCosIHJlZ2lzdGVyX2ZpbAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAKICAgICBpZiAoVU5MSUtFTFkoIXN0YWNrRnJhbWUu
cmVnaXN0ZXJGaWxlLT5ncm93KCZjYWxsRnJhbWUtPnJlZ2lzdGVycygpW2NhbGxGcmFtZS0+Y29k
ZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzXSkpKSB7Ci0gICAgICAgIC8vIFJld2luZCB0
byB0aGUgcHJldmlvdXMgY2FsbCBmcmFtZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlz
dGljYWxseQotICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAg
ICBDYWxsRnJhbWUqIG9sZENhbGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLSAg
ICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9i
YWxEYXRhLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJh
bWUpLCBSZXR1cm5BZGRyZXNzUHRyKGNhbGxGcmFtZS0+cmV0dXJuUEMoKSkpOworICAgICAgICBF
eGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwoY2FsbEZy
YW1lLT5jYWxsZXJGcmFtZSgpLCBjYWxsRnJhbWUpOwogICAgICAgICBTVFVCX1NFVF9SRVRVUk5f
QUREUkVTUyhoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgIGNhbGxGcmFtZSA9IGhhbmRs
ZXIuY2FsbEZyYW1lOwogICAgIH0KQEAgLTE5NTAsOSArMTk1Niw3IEBAIGlubGluZSB2b2lkKiBh
cml0eUNoZWNrRm9yKEpJVFN0YWNrRnJhbWUKICAgICAgICAgciA9IGNhbGxGcmFtZS0+cmVnaXN0
ZXJzKCkgKyBudW1QYXJhbWV0ZXJzOwogICAgICAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5l
d0NvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CiAgICAgICAgIGlmICghc3RhY2tGcmFt
ZS5yZWdpc3RlckZpbGUtPmdyb3cobmV3RW5kKSkgewotICAgICAgICAgICAgLy8gUmV3aW5kIHRv
IHRoZSBwcmV2aW91cyBjYWxsIGZyYW1lIGJlY2F1c2Ugb3BfY2FsbCBhbHJlYWR5IG9wdGltaXN0
aWNhbGx5Ci0gICAgICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAg
ICAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5n
bG9iYWxEYXRhLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxs
RnJhbWUpLCBwYyk7CisgICAgICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJv
d0V4Y2VwdGlvbkZyb21PcENhbGwob2xkQ2FsbEZyYW1lLCBjYWxsRnJhbWUpOwogICAgICAgICAg
ICAgc3R1YlJldHVybkFkZHJlc3MgPSBSZXR1cm5BZGRyZXNzUHRyKGhhbmRsZXIuY2F0Y2hSb3V0
aW5lKTsKICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyLmNhbGxGcmFtZTsKICAgICAgICAgfQpA
QCAtMTk2NSw5ICsxOTY5LDcgQEAgaW5saW5lIHZvaWQqIGFyaXR5Q2hlY2tGb3IoSklUU3RhY2tG
cmFtZQogICAgICAgICByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIG9taXR0ZWRBcmdDb3Vu
dDsKICAgICAgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IHIgKyBuZXdDb2RlQmxvY2stPm1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzOwogICAgICAgICBpZiAoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93
KG5ld0VuZCkpIHsKLSAgICAgICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJldmlvdXMgY2FsbCBm
cmFtZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQotICAgICAgICAgICAg
Ly8gbW92ZWQgdGhlIGNhbGwgZnJhbWUgZm9yd2FyZC4KLSAgICAgICAgICAgIEV4Y2VwdGlvbkhh
bmRsZXIgaGFuZGxlciA9IGppdFRocm93KHN0YWNrRnJhbWUuZ2xvYmFsRGF0YSwgb2xkQ2FsbEZy
YW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgcGMpOworICAgICAg
ICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxs
KG9sZENhbGxGcmFtZSwgY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHN0dWJSZXR1cm5BZGRyZXNz
ID0gUmV0dXJuQWRkcmVzc1B0cihoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gaGFuZGxlci5jYWxsRnJhbWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gOTMzNTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjIsNiArMTYyLDcgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMo
KQogSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5
cGUsIFRocmVhZFN0YWNrVHlwZSB0aHJlYWRTdGFja1R5cGUsIEhlYXBTaXplIGhlYXBTaXplKQog
ICAgIDogZ2xvYmFsRGF0YVR5cGUoZ2xvYmFsRGF0YVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDAp
CisgICAgLCB0b3BDYWxsRnJhbWUoQ2FsbEZyYW1lOjpub0NhbGxlcigpKQogICAgICwgYXJyYXlD
b25zdHJ1Y3RvclRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5Q29uc3RydWN0b3JU
YWJsZSkpCiAgICAgLCBhcnJheVByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6
OmFycmF5UHJvdG90eXBlVGFibGUpKQogICAgICwgYm9vbGVhblByb3RvdHlwZVRhYmxlKGZhc3RO
ZXc8SGFzaFRhYmxlPihKU0M6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZSkpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gOTMzNTMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEds
b2JhbERhdGFUeXBlIGdsb2JhbERhdGFUeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnRE
YXRhOworICAgICAgICBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZTsKIAogICAgICAgICBjb25zdCBI
YXNoVGFibGUqIGFycmF5Q29uc3RydWN0b3JUYWJsZTsKICAgICAgICAgY29uc3QgSGFzaFRhYmxl
KiBhcnJheVByb3RvdHlwZVRhYmxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104592</attachid>
            <date>2011-08-19 16:37:47 -0700</date>
            <delta_ts>2011-08-23 12:51:09 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-66571-20110819163746.patch</filename>
            <type>text/plain</type>
            <size>17462</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM0NTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTEtMDgtMTkgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRvcENhbGxGcmFtZSBmb3IgU3RhY2sgdHJhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIGEgVG9wQ2FsbEZyYW1lIHRvIEpTQyBpbiBvcmRlciB0byBoYXZlIHRoYXQgaW5mb3Jt
YXRpb24KKyAgICAgICAgd2hlbiBhbiBlcnJvciBpcyB0aHJvd24gdG8gY3JlYXRlIGEgc3RhY2sg
dHJhY2UuIFRoZSBUb3BDYWxsRnJhbWUgaXMKKyAgICAgICAgdXBkYXRlZCB0aHJvdWdob3V0IHNl
bGVjdCBwb2ludHMgaW4gdGhlIEludGVycHJldGVyIGFuZCB0aGUgSlNDLgorCisgICAgICAgICog
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpUb3BDYWxsRnJhbWVT
ZXR0ZXI6OlRvcENhbGxGcmFtZVNldHRlcik6CisgICAgICAgIChKU0M6OlRvcENhbGxGcmFtZVNl
dHRlcjo6flRvcENhbGxGcmFtZVNldHRlcik6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0
aHJvd0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAg
ICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50
ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVNZXRob2RzLmg6Cisg
ICAgICAgIChKU0M6OkpJVDo6dXBkYXRlVG9wQ2FsbEZyYW1lKToKKyAgICAgICAgKiBqaXQvSklU
U3R1YkNhbGwuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YkNhbGw6OmNhbGwpOgorICAgICAgICAq
IGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRocm93RXhjZXB0aW9uRnJvbU9wQ2Fs
bCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6
YXJpdHlDaGVja0Zvcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAg
ICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGlt
ZS9KU0dsb2JhbERhdGEuaDoKKwogMjAxMS0wOC0xOSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IFdURjo6YXRvbWlje0luY3JlbWVudCwgRGVj
cmVtZW50fSgpIGZvciBRTlgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03NSw2ICs3NSwyNCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY2xhc3MgVG9wQ2FsbEZyYW1lU2V0dGVyIHsKK3B1YmxpYzoKKyAgICBUb3BDYWxsRnJhbWVT
ZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9iYWwsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAgICAg
ICA6IGdsb2JhbERhdGEoZ2xvYmFsKQorICAgICAgICAsIG9sZENhbGxGcmFtZShnbG9iYWwudG9w
Q2FsbEZyYW1lKSAKKyAgICB7CisgICAgICAgIGdsb2JhbERhdGEudG9wQ2FsbEZyYW1lID0gY2Fs
bEZyYW1lOworICAgIH0KKyAgICAgICAgCisgICAgflRvcENhbGxGcmFtZVNldHRlcigpIAorICAg
IHsKKyAgICAgICAgZ2xvYmFsRGF0YS50b3BDYWxsRnJhbWUgPSBvbGRDYWxsRnJhbWU7CisgICAg
fQorcHJpdmF0ZToKKyAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGE7CisgICAgQ2FsbEZyYW1l
KiBvbGRDYWxsRnJhbWU7Cit9OworCiAvLyBSZXR1cm5zIHRoZSBkZXB0aCBvZiB0aGUgc2NvcGUg
Y2hhaW4gd2l0aGluIGEgZ2l2ZW4gY2FsbCBmcmFtZS4KIHN0YXRpYyBpbnQgZGVwdGgoQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIFNjb3BlQ2hhaW5Ob2RlKiBzYykKIHsKQEAgLTY5MCw2ICs3MDgsNyBA
QCBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp0CiB7CiAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIGJvb2wgaXNJbnRl
cnJ1cHQgPSBmYWxzZTsKKyAgICBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUg
PSBjYWxsRnJhbWU7CiAKICAgICAvLyBTZXQgdXAgdGhlIGV4Y2VwdGlvbiBvYmplY3QKICAgICBp
ZiAoZXhjZXB0aW9uVmFsdWUuaXNPYmplY3QoKSkgewpAQCAtODgxLDYgKzkwMCw3IEBAIGZhaWxl
ZEpTT05QOgogICAgIEFTU0VSVChjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyA9PSAxKTsgLy8g
MSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KICAgICBuZXdDYWxsRnJhbWUtPmluaXQoY29kZUJsb2Nr
LCAwLCBzY29wZUNoYWluLCBDYWxsRnJhbWU6Om5vQ2FsbGVyKCksIGNvZGVCbG9jay0+bV9udW1Q
YXJhbWV0ZXJzLCAwKTsKICAgICBuZXdDYWxsRnJhbWUtPnVuY2hlY2tlZFIobmV3Q2FsbEZyYW1l
LT5ob3N0VGhpc1JlZ2lzdGVyKCkpID0gSlNWYWx1ZSh0aGlzT2JqKTsKKyAgICBUb3BDYWxsRnJh
bWVTZXR0ZXIgdG9wQ2FsbEZyYW1lU2V0dGVyKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdD
YWxsRnJhbWUpOwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVk
UHJvZmlsZXJSZWZlcmVuY2UoKTsKICAgICBpZiAoKnByb2ZpbGVyKQpAQCAtOTExLDYgKzkzMSw3
IEBAIGZhaWxlZEpTT05QOgogCiBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGZ1bmN0aW9uLCBDYWxsVHlwZSBjYWxsVHlwZSwg
Y29uc3QgQ2FsbERhdGEmIGNhbGxEYXRhLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgQXJnTGlz
dCYgYXJncykKIHsKKyAgICBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBj
YWxsRnJhbWU7CiAgICAgQVNTRVJUKGlzVmFsaWRUaGlzT2JqZWN0KHRoaXNWYWx1ZSwgY2FsbEZy
YW1lKSk7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKTsKICAgICBBU1NF
UlQoIWNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKQEAgLTk1Myw2
ICs5NzQsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhCiAgICAg
ICAgIH0KIAogICAgICAgICBuZXdDYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2NrLCAwLCBjYWxs
RGF0YVNjb3BlQ2hhaW4sIGNhbGxGcmFtZS0+YWRkSG9zdENhbGxGcmFtZUZsYWcoKSwgYXJnQ291
bnQsIGZ1bmN0aW9uKTsKKyAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZVNl
dHRlcihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAogICAgICAgICBQ
cm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgp
OwogICAgICAgICBpZiAoKnByb2ZpbGVyKQpAQCAtMTAwNSw2ICsxMDI3LDcgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogCiBKU09iamVjdCogSW50ZXJwcmV0ZXI6
OmV4ZWN1dGVDb25zdHJ1Y3QoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBjb25zdHJ1
Y3RvciwgQ29uc3RydWN0VHlwZSBjb25zdHJ1Y3RUeXBlLCBjb25zdCBDb25zdHJ1Y3REYXRhJiBj
b25zdHJ1Y3REYXRhLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogeworICAgIGNhbGxGcmFtZS0+Z2xv
YmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICBBU1NFUlQoIWNhbGxGcmFt
ZS0+aGFkRXhjZXB0aW9uKCkpOwogICAgIEFTU0VSVCghY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCku
aXNDb2xsZWN0b3JCdXN5KCkpOwogICAgIC8vIFdlIHRocm93IGluIHRoaXMgY2FzZSBiZWNhdXNl
IHdlIGhhdmUgdG8gcmV0dXJuIHNvbWV0aGluZyAidmFsaWQiIGJ1dCB3ZSdyZQpAQCAtMTAyOCw2
ICsxMDUxLDggQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogICAg
IGZvciAoQXJnTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkKICAgICAgICAgbmV3Q2FsbEZyYW1lLT51bmNoZWNrZWRSKCsrZHN0KSA9ICppdDsK
IAorICAgIFRvcENhbGxGcmFtZVNldHRlciB0b3BDYWxsRnJhbWVTZXR0ZXIoY2FsbEZyYW1lLT5n
bG9iYWxEYXRhKCksIG5ld0NhbGxGcmFtZSk7CisKICAgICBpZiAoY29uc3RydWN0VHlwZSA9PSBD
b25zdHJ1Y3RUeXBlSlMpIHsKICAgICAgICAgU2NvcGVDaGFpbk5vZGUqIGNvbnN0cnVjdERhdGFT
Y29wZUNoYWluID0gY29uc3RydWN0RGF0YS5qcy5zY29wZUNoYWluOwogCkBAIC0xMTg5LDYgKzEy
MTQsNyBAQCB2b2lkIEludGVycHJldGVyOjplbmRSZXBlYXRDYWxsKENhbGxGcmFtCiAKIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4p
CiB7CisgICAgY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1l
OwogICAgIEpTT2JqZWN0KiBjb21waWxlRXJyb3IgPSBldmFsLT5jb21waWxlKGNhbGxGcmFtZSwg
c2NvcGVDaGFpbik7CiAgICAgaWYgKFVOTElLRUxZKCEhY29tcGlsZUVycm9yKSkKICAgICAgICAg
cmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dFcnJvcihjYWxsRnJhbWUsIGNvbXBpbGVFcnJvcikp
OwpAQCAtMTE5OCw2ICsxMjI0LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFs
RXhlY3V0YQogSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZh
bCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdGhpc1ZhbHVlLCBpbnQgZ2xvYmFsUmVn
aXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQogewogICAgIEFTU0VSVChp
c1ZhbGlkVGhpc09iamVjdCh0aGlzVmFsdWUsIGNhbGxGcmFtZSkpOworICAgIGNhbGxGcmFtZS0+
Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICBBU1NFUlQoIXNjb3Bl
Q2hhaW4tPmdsb2JhbERhdGEtPmV4Y2VwdGlvbik7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmds
b2JhbERhdGEoKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAgICAgaWYgKGNhbGxGcmFtZS0+Z2xvYmFs
RGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKQpAQCAtMTU5Miw2ICsxNjE5LDcgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSA9ICZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKTsKICAgICBKU1ZhbHVlIGV4Y2VwdGlvblZh
bHVlOwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gMDsKKyAgICBDYWxsRnJhbWUqKiB0b3BD
YWxsRnJhbWVTbG90ID0gJmdsb2JhbERhdGEtPnRvcENhbGxGcmFtZTsKIAogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICBJbnN0cnVjdGlvbiog
dlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwpAQCAtMTYyNiw2ICsxNjU0
LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgICNkZWZp
bmUgU0FNUExFKGNvZGVCbG9jaywgdlBDKQogI2VuZGlmCiAKKyAgICAqdG9wQ2FsbEZyYW1lU2xv
dCA9IGNhbGxGcmFtZTsKICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19JTlRFUlBSRVRFUikKICAg
ICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBTQU1QTEUoY29kZUJsb2NrLCB2UEMpOyBnb3Rv
ICp2UEMtPnUub3Bjb2RlCiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKQEAgLTQxNTYsNiArNDE4
NSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgZ290byB2bV90aHJv
dzsKICAgICAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXN1bHQ7CiAKKyAgICAgICAg
ICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDICs9IE9Q
Q09ERV9MRU5HVEgob3BfY2FsbF9ldmFsKTsKICAgICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04o
KTsKICAgICAgICAgfQpAQCAtNDIwNSw2ICs0MjM1LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoK
ICAgICAgICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHZQQyArIE9QQ09ERV9M
RU5HVEgob3BfY2FsbCksIGNhbGxEYXRhU2NvcGVDaGFpbiwgcHJldmlvdXNDYWxsRnJhbWUsIGFy
Z0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVC
bG9jazsKICAgICAgICAgICAgIEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKSk7CisgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAg
ICAgICAgIHZQQyA9IG5ld0NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKIAogI2lm
IEVOQUJMRShPUENPREVfU1RBVFMpCkBAIC00MjIyLDYgKzQyNTMsNyBAQCBza2lwX2lkX2N1c3Rv
bV9zZWxmOgogICAgICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CiAgICAgICAgICAgICB9CiAK
KyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gbmV3Q2FsbEZyYW1lOwogICAgICAgICAg
ICAgbmV3Q2FsbEZyYW1lLT5pbml0KDAsIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCksIHNj
b3BlQ2hhaW4sIGNhbGxGcmFtZSwgYXJnQ291bnQsIGFzT2JqZWN0KHYpKTsKIAogICAgICAgICAg
ICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKQEAgLTQyMjksNiArNDI2MSw3IEBAIHNraXBfaWRfY3Vz
dG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29yZCBj
YWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJh
bWU7CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAKICAgICAgICAgICAgIGZ1
bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKQEAgLTQzNzMsNiArNDQwNiw3IEBAIHNr
aXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29kZUJs
b2NrLCB2UEMgKyBPUENPREVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncyksIGNhbGxEYXRhU2NvcGVD
aGFpbiwgcHJldmlvdXNDYWxsRnJhbWUsIGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAgICAg
ICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKICAgICAgICAgICAgIEFTU0VSVChjb2Rl
QmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7CisgICAgICAgICAgICAqdG9wQ2FsbEZy
YW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZQQyA9IG5ld0NvZGVCbG9jay0+aW5z
dHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICAgICAgICAgIAogI2lmIEVOQUJMRShPUENPREVfU1RB
VFMpCkBAIC00Mzg5LDYgKzQ0MjMsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFt
ZSk7CiAgICAgICAgICAgICAgICAgZ290byB2bV90aHJvdzsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gbmV3Q2FsbEZyYW1lOwogICAgICAgICAgICAgbmV3
Q2FsbEZyYW1lLT5pbml0KDAsIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwg
c2NvcGVDaGFpbiwgY2FsbEZyYW1lLCBhcmdDb3VudCwgYXNPYmplY3QodikpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlOwpAQCAtNDQwMCw2ICs0NDM1LDcg
QEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnVuY3Rp
b25SZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlOwogICAgICAgICAgICAgCisgICAgICAgICAgICAq
dG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZQQyArPSBPUENPREVf
TEVOR1RIKG9wX2NhbGxfdmFyYXJncyk7CiAgICAgICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7
CiAgICAgICAgIH0KQEAgLTQ0NzcsNiArNDUxMyw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAg
ICAgICAgIHZQQyA9IGNhbGxGcmFtZS0+cmV0dXJuVlBDKCk7CiAgICAgICAgIGNhbGxGcmFtZSA9
IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKICAgICAgICAgCisgICAgICAgICp0b3BDYWxsRnJh
bWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICBpZiAoY2FsbEZyYW1lLT5oYXNIb3N0Q2FsbEZy
YW1lRmxhZygpKQogICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogCkBAIC00NTI0LDYg
KzQ1NjEsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICBmdW5jdGlvblJldHVyblZh
bHVlID0gcmV0dXJuVmFsdWU7CiAgICAgICAgIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCk7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2so
KSk7CisgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogCiAgICAgICAgIE5F
WFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CkBAIC00Njk0LDYgKzQ3MzIsNyBAQCBza2lwX2lkX2N1
c3RvbV9zZWxmOgogCiAgICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2NrLCB2
UEMgKyBPUENPREVfTEVOR1RIKG9wX2NvbnN0cnVjdCksIGNhbGxEYXRhU2NvcGVDaGFpbiwgcHJl
dmlvdXNDYWxsRnJhbWUsIGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAgICAgICAgICAgIGNv
ZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKKyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0g
Y2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlvbnMo
KS5iZWdpbigpOwogI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCiAgICAgICAgICAgICBPcGNvZGVT
dGF0czo6cmVzZXRMYXN0SW5zdHJ1Y3Rpb24oKTsKQEAgLTQ3MTksNiArNDc1OCw3IEBAIHNraXBf
aWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAgICAg
ICAgICAgICBmdW5jdGlvblJldHVyblZhbHVlID0gcmV0dXJuVmFsdWU7CiAKKyAgICAgICAgICAg
ICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgdlBDICs9IE9QQ09E
RV9MRU5HVEgob3BfY29uc3RydWN0KTsKICAgICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsK
ICAgICAgICAgfQpAQCAtNDg5Nyw2ICs0OTM3LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAg
ICAgICAgY2FsbEZyYW1lLT51bmNoZWNrZWRSKGV4KSA9IGV4Y2VwdGlvblZhbHVlOwogICAgICAg
ICBleGNlcHRpb25WYWx1ZSA9IEpTVmFsdWUoKTsKIAorICAgICAgICAqdG9wQ2FsbEZyYW1lU2xv
dCA9IGNhbGxGcmFtZTsKICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgob3BfY2F0Y2gpOwog
ICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQpAQCAtNDkxOSw2ICs0OTYwLDcgQEAg
c2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGNhbGxG
cmFtZSwgZXhjZXB0aW9uVmFsdWUpOwogCiAgICAgICAgIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCk7CisgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAg
ICAgICB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBoYW5kbGVyLT50
YXJnZXQ7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CkBAIC01MDc4LDYgKzUx
MjAsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICB9CiAKICAgICAgICAgY29kZUJs
b2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICAgICAgKnRvcENhbGxGcmFtZVNsb3Qg
PSBjYWxsRnJhbWU7CiAgICAgICAgIHZQQyA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVn
aW4oKSArIGhhbmRsZXItPnRhcmdldDsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAg
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsNyArMzYx
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKICAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSAzNzsK
ICNlbHNlCi0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nh
c2VDYWxsID0gMjc7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlk
U2xvd0Nhc2VDYWxsID0gMzM7CiAjZW5kaWYKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRj
aE9mZnNldE9wQ2FsbENvbXBhcmVUb0p1bXAgPSA2OwogCkBAIC01OTcsNyArNTk3LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKICAgICAgICAgc3RhdGlj
IGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA2NDsKICNlbHNlCi0g
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0g
NDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VD
YWxsID0gNTQ7CiAjZW5kaWYKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE9w
Q2FsbENvbXBhcmVUb0p1bXAgPSA5OwogCkBAIC05NTIsNiArOTUyLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKICAgICAgICAg
dm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2VGb3JUcmFtcG9saW5lKCk7CisgICAgICAgIHZv
aWQgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CiAKICAgICAgICAgQ2FsbCBlbWl0TmFrZWRDYWxsKENv
ZGVQdHIgZnVuY3Rpb24gPSBDb2RlUHRyKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZU1ldGhvZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjUzLDYgKzI1MywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0b3JlQXJndW1lbnRS
CiAgICAgcG9rZShjYWxsRnJhbWVSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9mKHZvaWQqKSk7CiB9CiAKK0FMV0FZU19JTkxJ
TkUgdm9pZCBKSVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSgpCit7CisgICAgc3RvcmVQdHIoY2FsbEZy
YW1lUmVnaXN0ZXIsICZtX2dsb2JhbERhdGEtPnRvcENhbGxGcmFtZSk7Cit9CisKIEFMV0FZU19J
TkxJTkUgdm9pZCBKSVQ6OnJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZUZvclRyYW1wb2xpbmUoKQog
ewogI2lmIENQVShYODYpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJD
YWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2Fs
bC5oCShyZXZpc2lvbiA5MzM1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YkNhbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogI2VuZGlmCiAKICAgICAgICAgICAgIG1faml0LT5yZXN0b3JlQXJndW1lbnRSZWZlcmVuY2Uo
KTsKKyAgICAgICAgICAgIG1faml0LT51cGRhdGVUb3BDYWxsRnJhbWUoKTsKICAgICAgICAgICAg
IEpJVDo6Q2FsbCBjYWxsID0gbV9qaXQtPmNhbGwoKTsKICAgICAgICAgICAgIG1faml0LT5tX2Nh
bGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwsIG1faml0LT5tX2J5dGVjb2RlT2Zmc2V0LCBtX3N0
dWIudmFsdWUoKSkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAkocmV2aXNpb24gOTMzNTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0Niw2ICsxMDQ2LDE1IEBAIHN0YXRpYyBFeGNlcHRp
b25IYW5kbGVyIGppdFRocm93KEpTR2xvYmEKICAgICByZXR1cm4gZXhjZXB0aW9uSGFuZGxlcjsK
IH0KIAorLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBKSVQgc3R1YnMgdGhhdCBtYXkgdGhyb3cgYW4g
ZXhjZXB0aW9uIGluIHRoZSBtaWRkbGUgb2YKKy8vIHByb2Nlc3NpbmcgYSBmdW5jdGlvbiBjYWxs
LiBUaGlzIGZ1bmN0aW9uIHJvbGxzIGJhY2sgdGhlIHJlZ2lzdGVyIGZpbGUgdG8KKy8vIG91ciBj
YWxsZXIsIHNvIGV4Y2VwdGlvbiBwcm9jZXNzaW5nIGNhbiBwcm9jZWVkIGZyb20gYSB2YWxpZCBz
dGF0ZS4KK3N0YXRpYyBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbkhhbmRsZXIgdGhyb3dFeGNlcHRp
b25Gcm9tT3BDYWxsKENhbGxGcmFtZSogb2xkQ2FsbEZyYW1lLCBDYWxsRnJhbWUqIG5ld0NhbGxG
cmFtZSkKK3sKKyAgICBvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBv
bGRDYWxsRnJhbWU7CisgICAgcmV0dXJuIGppdFRocm93KCZvbGRDYWxsRnJhbWUtPmdsb2JhbERh
dGEoKSwgb2xkQ2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1l
KSwgUmV0dXJuQWRkcmVzc1B0cihuZXdDYWxsRnJhbWUtPnJldHVyblBDKCkpKTsKK30KKwogI2lm
IENQVShBUk1fVEhVTUIyKSAmJiBDT01QSUxFUihHQ0MpCiAKICNkZWZpbmUgREVGSU5FX1NUVUJf
RlVOQ1RJT04ocnR5cGUsIG9wKSBcCkBAIC0xMzUwLDEwICsxMzU5LDcgQEAgREVGSU5FX1NUVUJf
RlVOQ1RJT04odm9pZCosIHJlZ2lzdGVyX2ZpbAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
c3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAKICAgICBpZiAoVU5MSUtFTFkoIXN0YWNrRnJhbWUucmVn
aXN0ZXJGaWxlLT5ncm93KCZjYWxsRnJhbWUtPnJlZ2lzdGVycygpW2NhbGxGcmFtZS0+Y29kZUJs
b2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzXSkpKSB7Ci0gICAgICAgIC8vIFJld2luZCB0byB0
aGUgcHJldmlvdXMgY2FsbCBmcmFtZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGlj
YWxseQotICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICBD
YWxsRnJhbWUqIG9sZENhbGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICAg
ICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxE
YXRhLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUp
LCBSZXR1cm5BZGRyZXNzUHRyKGNhbGxGcmFtZS0+cmV0dXJuUEMoKSkpOworICAgICAgICBFeGNl
cHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwoY2FsbEZyYW1l
LT5jYWxsZXJGcmFtZSgpLCBjYWxsRnJhbWUpOwogICAgICAgICBTVFVCX1NFVF9SRVRVUk5fQURE
UkVTUyhoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgIGNhbGxGcmFtZSA9IGhhbmRsZXIu
Y2FsbEZyYW1lOwogICAgIH0KQEAgLTE5NTAsOSArMTk1Niw3IEBAIGlubGluZSB2b2lkKiBhcml0
eUNoZWNrRm9yKEpJVFN0YWNrRnJhbWUKICAgICAgICAgciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJz
KCkgKyBudW1QYXJhbWV0ZXJzOwogICAgICAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0Nv
ZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CiAgICAgICAgIGlmICghc3RhY2tGcmFtZS5y
ZWdpc3RlckZpbGUtPmdyb3cobmV3RW5kKSkgewotICAgICAgICAgICAgLy8gUmV3aW5kIHRvIHRo
ZSBwcmV2aW91cyBjYWxsIGZyYW1lIGJlY2F1c2Ugb3BfY2FsbCBhbHJlYWR5IG9wdGltaXN0aWNh
bGx5Ci0gICAgICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAg
ICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9i
YWxEYXRhLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJh
bWUpLCBwYyk7CisgICAgICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4
Y2VwdGlvbkZyb21PcENhbGwob2xkQ2FsbEZyYW1lLCBjYWxsRnJhbWUpOwogICAgICAgICAgICAg
c3R1YlJldHVybkFkZHJlc3MgPSBSZXR1cm5BZGRyZXNzUHRyKGhhbmRsZXIuY2F0Y2hSb3V0aW5l
KTsKICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyLmNhbGxGcmFtZTsKICAgICAgICAgfQpAQCAt
MTk2NSw5ICsxOTY5LDcgQEAgaW5saW5lIHZvaWQqIGFyaXR5Q2hlY2tGb3IoSklUU3RhY2tGcmFt
ZQogICAgICAgICByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIG9taXR0ZWRBcmdDb3VudDsK
ICAgICAgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IHIgKyBuZXdDb2RlQmxvY2stPm1fbnVtQ2FsbGVl
UmVnaXN0ZXJzOwogICAgICAgICBpZiAoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KG5l
d0VuZCkpIHsKLSAgICAgICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJldmlvdXMgY2FsbCBmcmFt
ZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQotICAgICAgICAgICAgLy8g
bW92ZWQgdGhlIGNhbGwgZnJhbWUgZm9yd2FyZC4KLSAgICAgICAgICAgIEV4Y2VwdGlvbkhhbmRs
ZXIgaGFuZGxlciA9IGppdFRocm93KHN0YWNrRnJhbWUuZ2xvYmFsRGF0YSwgb2xkQ2FsbEZyYW1l
LCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgcGMpOworICAgICAgICAg
ICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKG9s
ZENhbGxGcmFtZSwgY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHN0dWJSZXR1cm5BZGRyZXNzID0g
UmV0dXJuQWRkcmVzc1B0cihoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgICAgICByZXR1
cm4gaGFuZGxlci5jYWxsRnJhbWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gOTMzNTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjIsNiArMTYyLDcgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMoKQog
SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUs
IFRocmVhZFN0YWNrVHlwZSB0aHJlYWRTdGFja1R5cGUsIEhlYXBTaXplIGhlYXBTaXplKQogICAg
IDogZ2xvYmFsRGF0YVR5cGUoZ2xvYmFsRGF0YVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCisg
ICAgLCB0b3BDYWxsRnJhbWUoQ2FsbEZyYW1lOjpub0NhbGxlcigpKQogICAgICwgYXJyYXlDb25z
dHJ1Y3RvclRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5Q29uc3RydWN0b3JUYWJs
ZSkpCiAgICAgLCBhcnJheVByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFy
cmF5UHJvdG90eXBlVGFibGUpKQogICAgICwgYm9vbGVhblByb3RvdHlwZVRhYmxlKGZhc3ROZXc8
SGFzaFRhYmxlPihKU0M6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZSkpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gOTMzNTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEdsb2Jh
bERhdGFUeXBlIGdsb2JhbERhdGFUeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnREYXRh
OworICAgICAgICBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZTsKIAogICAgICAgICBjb25zdCBIYXNo
VGFibGUqIGFycmF5Q29uc3RydWN0b3JUYWJsZTsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBh
cnJheVByb3RvdHlwZVRhYmxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104894</attachid>
            <date>2011-08-23 12:51:15 -0700</date>
            <delta_ts>2011-08-24 11:09:19 -0700</delta_ts>
            <desc>updated arm-ready patch</desc>
            <filename>bug-66571-20110823125114.patch</filename>
            <type>text/plain</type>
            <size>18197</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM2MjYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTEtMDgtMjMgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRvcENhbGxGcmFtZSBmb3IgU3RhY2sgdHJhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
IFRvcENhbGxGcmFtZSB0byBKU0MgaW4gb3JkZXIgdG8gaGF2ZSB0aGF0IGluZm9ybWF0aW9uCisg
ICAgICAgIHdoZW4gYW4gZXJyb3IgaXMgdGhyb3duIHRvIGNyZWF0ZSBhIHN0YWNrIHRyYWNlLiBU
aGUgVG9wQ2FsbEZyYW1lIGlzCisgICAgICAgIHVwZGF0ZWQgdGhyb3VnaG91dCBzZWxlY3QgcG9p
bnRzIGluIHRoZSBJbnRlcnByZXRlciBhbmQgdGhlIEpTQy4KKworICAgICAgICAqIGludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZENh
bGxGcmFtZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0aHJvd0V4Y2VwdGlvbik6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJw
cmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
b25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6OlRvcENh
bGxGcmFtZVNldHRlcjo6VG9wQ2FsbEZyYW1lU2V0dGVyKToKKyAgICAgICAgKEpTQzo6VG9wQ2Fs
bEZyYW1lU2V0dGVyOjp+VG9wQ2FsbEZyYW1lU2V0dGVyKToKKyAgICAgICAgKiBqaXQvSklULmg6
CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjp1
cGRhdGVUb3BDYWxsRnJhbWUpOgorICAgICAgICAqIGppdC9KSVRTdHViQ2FsbC5oOgorICAgICAg
ICAoSlNDOjpKSVRTdHViQ2FsbDo6Y2FsbCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoK
KyAgICAgICAgKEpTQzo6dGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKToKKyAgICAgICAgKEpTQzo6
REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcml0eUNoZWNrRm9yKToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
RGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgor
CiAyMDExLTA4LTIzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
IAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzNDcK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDgsNiArNjA4LDcgQEAg
TkVWRVJfSU5MSU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnVud2luZENhbAogICAgIH0KIAogICAgIENh
bGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7CisgICAgY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWU7CiAgICAgaWYg
KGNhbGxlckZyYW1lLT5oYXNIb3N0Q2FsbEZyYW1lRmxhZygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTY4OCw2ICs2ODksNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTb3VyY2VUb0Vycm9y
KENhbGxGcmFtCiAKIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnRocm93
RXhjZXB0aW9uKENhbGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUs
IHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KQogeworICAgIGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgp
LnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgYm9vbCBpc0ludGVycnVwdCA9IGZhbHNlOwogCkBA
IC04ODEsNiArODgzLDcgQEAgZmFpbGVkSlNPTlA6CiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bV9u
dW1QYXJhbWV0ZXJzID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgogICAgIG5ld0Nh
bGxGcmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3BlQ2hhaW4sIENhbGxGcmFtZTo6bm9DYWxs
ZXIoKSwgY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMsIDApOwogICAgIG5ld0NhbGxGcmFtZS0+
dW5jaGVja2VkUihuZXdDYWxsRnJhbWUtPmhvc3RUaGlzUmVnaXN0ZXIoKSkgPSBKU1ZhbHVlKHRo
aXNPYmopOworICAgIFRvcENhbGxGcmFtZVNldHRlciB0b3BDYWxsRnJhbWUoY2FsbEZyYW1lLT5n
bG9iYWxEYXRhKCksIG5ld0NhbGxGcmFtZSk7CiAKICAgICBQcm9maWxlcioqIHByb2ZpbGVyID0g
UHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwogICAgIGlmICgqcHJvZmlsZXIp
CkBAIC05MTQsNiArOTE3LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2Fs
bEZyYQogICAgIEFTU0VSVChpc1ZhbGlkVGhpc09iamVjdCh0aGlzVmFsdWUsIGNhbGxGcmFtZSkp
OwogICAgIEFTU0VSVCghY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSk7CiAgICAgQVNTRVJUKCFj
YWxsRnJhbWUtPmdsb2JhbERhdGEoKS5pc0NvbGxlY3RvckJ1c3koKSk7CisgICAgQVNTRVJUKGNh
bGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZSk7CiAgICAgaWYg
KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKQogICAgICAgICByZXR1
cm4ganNOdWxsKCk7CiAKQEAgLTk1NCw2ICs5NTgsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpl
eGVjdXRlQ2FsbChDYWxsRnJhCiAKICAgICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KG5ld0NvZGVC
bG9jaywgMCwgY2FsbERhdGFTY29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVG
bGFnKCksIGFyZ0NvdW50LCBmdW5jdGlvbik7CiAKKyAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVy
IHRvcENhbGxGcmFtZShjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKKwog
ICAgICAgICBQcm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJl
ZmVyZW5jZSgpOwogICAgICAgICBpZiAoKnByb2ZpbGVyKQogICAgICAgICAgICAgKCpwcm9maWxl
ciktPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwpAQCAtOTg0LDYgKzk5MCw4IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICBuZXdDYWxsRnJh
bWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgcmVnaXN0
ZXJPZmZzZXQpOwogICAgIG5ld0NhbGxGcmFtZS0+aW5pdCgwLCAwLCBzY29wZUNoYWluLCBjYWxs
RnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVGbGFnKCksIGFyZ0NvdW50LCBmdW5jdGlvbik7CiAKKyAg
ICBUb3BDYWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgp
LCBuZXdDYWxsRnJhbWUpOworCiAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9i
amVjdFNjb3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29wZUNoYWluLT5nbG9iYWxPYmpl
Y3QuZ2V0KCkpOwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVk
UHJvZmlsZXJSZWZlcmVuY2UoKTsKQEAgLTEwMDcsNiArMTAxNSw3IEBAIEpTT2JqZWN0KiBJbnRl
cnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIHsKICAgICBBU1NFUlQoIWNhbGxGcmFtZS0+aGFk
RXhjZXB0aW9uKCkpOwogICAgIEFTU0VSVCghY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuaXNDb2xs
ZWN0b3JCdXN5KCkpOworICAgIEFTU0VSVChjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxs
RnJhbWUgPSBjYWxsRnJhbWUpOwogICAgIC8vIFdlIHRocm93IGluIHRoaXMgY2FzZSBiZWNhdXNl
IHdlIGhhdmUgdG8gcmV0dXJuIHNvbWV0aGluZyAidmFsaWQiIGJ1dCB3ZSdyZQogICAgIC8vIGFs
cmVhZHkgaW4gYW4gaW52YWxpZCBzdGF0ZS4KICAgICBpZiAoY2FsbEZyYW1lLT5nbG9iYWxEYXRh
KCkuaXNDb2xsZWN0b3JCdXN5KCkpCkBAIC0xMDQ4LDYgKzEwNTcsOCBAQCBKU09iamVjdCogSW50
ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAKICAgICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0
KG5ld0NvZGVCbG9jaywgMCwgY29uc3RydWN0RGF0YVNjb3BlQ2hhaW4sIGNhbGxGcmFtZS0+YWRk
SG9zdENhbGxGcmFtZUZsYWcoKSwgYXJnQ291bnQsIGNvbnN0cnVjdG9yKTsKIAorICAgICAgICBU
b3BDYWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBu
ZXdDYWxsRnJhbWUpOworCiAgICAgICAgIFByb2ZpbGVyKiogcHJvZmlsZXIgPSBQcm9maWxlcjo6
ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAgICAgICAgIGlmICgqcHJvZmlsZXIpCiAgICAg
ICAgICAgICAoKnByb2ZpbGVyKS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7
CkBAIC0xMDgxLDYgKzEwOTIsOCBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25z
dHJ1Y3QoCiAgICAgbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1l
LT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVyT2Zmc2V0KTsKICAgICBuZXdDYWxsRnJhbWUtPmluaXQo
MCwgMCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2FsbEZyYW1lRmxhZygpLCBhcmdD
b3VudCwgY29uc3RydWN0b3IpOwogCisgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFt
ZShjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKKwogICAgIER5bmFtaWNH
bG9iYWxPYmplY3RTY29wZSBnbG9iYWxPYmplY3RTY29wZSgqc2NvcGVDaGFpbi0+Z2xvYmFsRGF0
YSwgc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0LmdldCgpKTsKIAogICAgIFByb2ZpbGVyKiogcHJv
ZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CkBAIC0xMjAwLDYg
KzEyMTMsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhCiAgICAg
QVNTRVJUKGlzVmFsaWRUaGlzT2JqZWN0KHRoaXNWYWx1ZSwgY2FsbEZyYW1lKSk7CiAgICAgQVNT
RVJUKCFzY29wZUNoYWluLT5nbG9iYWxEYXRhLT5leGNlcHRpb24pOwogICAgIEFTU0VSVCghY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkuaXNDb2xsZWN0b3JCdXN5KCkpOworICAgIEFTU0VSVChjYWxs
RnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWUpOwogICAgIGlmIChj
YWxsRnJhbWUtPmdsb2JhbERhdGEoKS5pc0NvbGxlY3RvckJ1c3koKSkKICAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOwogCkBAIC0xNTkyLDYgKzE2MDYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpw
cml2YXRlRXhlY3V0ZShFeGVjCiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmNhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpOwogICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWU7CiAgICAgSGFu
ZGxlckluZm8qIGhhbmRsZXIgPSAwOworICAgIENhbGxGcmFtZSoqIHRvcENhbGxGcmFtZVNsb3Qg
PSAmZ2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lOwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEluc3RydWN0aW9uKiB2UEMgPSBjb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CkBAIC0xNjI2LDYgKzE2NDEsNyBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgI2RlZmluZSBTQU1QTEUoY29k
ZUJsb2NrLCB2UEMpCiAjZW5kaWYKIAorICAgIEFTU0VSVChjYWxsRnJhbWUtPmdsb2JhbERhdGEo
KS50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWUpOwogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX0lO
VEVSUFJFVEVSKQogICAgICNkZWZpbmUgTkVYVF9JTlNUUlVDVElPTigpIFNBTVBMRShjb2RlQmxv
Y2ssIHZQQyk7IGdvdG8gKnZQQy0+dS5vcGNvZGUKICNpZiBFTkFCTEUoT1BDT0RFX1NUQVRTKQpA
QCAtNDIwNSw2ICs0MjIxLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIGNh
bGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCks
IGNhbGxEYXRhU2NvcGVDaGFpbiwgcHJldmlvdXNDYWxsRnJhbWUsIGFyZ0NvdW50LCBhc0Z1bmN0
aW9uKHYpKTsKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKICAgICAgICAg
ICAgIEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7CisgICAgICAg
ICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZQQyA9IG5l
d0NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKIAogI2lmIEVOQUJMRShPUENPREVf
U1RBVFMpCkBAIC00MjIzLDEyICs0MjQwLDE0IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIG5ld0NhbGxGcmFtZS0+aW5pdCgwLCB2UEMgKyBPUENP
REVfTEVOR1RIKG9wX2NhbGwpLCBzY29wZUNoYWluLCBjYWxsRnJhbWUsIGFyZ0NvdW50LCBhc09i
amVjdCh2KSk7CisgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IG5ld0NhbGxGcmFtZTsK
IAogICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICBTYW1wbGluZ1Rvb2w6Okhvc3RDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1w
bGVyLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7CiAgICAgICAgICAgICB9
CisgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAg
IENIRUNLX0ZPUl9FWENFUFRJT04oKTsKIAogICAgICAgICAgICAgZnVuY3Rpb25SZXR1cm5WYWx1
ZSA9IHJldHVyblZhbHVlOwpAQCAtNDM3Myw2ICs0MzkyLDcgQEAgc2tpcF9pZF9jdXN0b21fc2Vs
ZjoKICAgICAgICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHZQQyArIE9QQ09E
RV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwgY2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91c0Nh
bGxGcmFtZSwgYXJnQ291bnQsIGFzRnVuY3Rpb24odikpOwogICAgICAgICAgICAgY29kZUJsb2Nr
ID0gbmV3Q29kZUJsb2NrOwogICAgICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxsRnJh
bWUtPmNvZGVCbG9jaygpKTsKKyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZy
YW1lOwogICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpOwogICAgICAgICAgICAgCiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKQEAgLTQzOTAsMTIg
KzQ0MTAsMTQgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICBnb3RvIHZt
X3Rocm93OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KDAs
IHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwgc2NvcGVDaGFpbiwgY2FsbEZy
YW1lLCBhcmdDb3VudCwgYXNPYmplY3QodikpOworICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNs
b3QgPSBuZXdDYWxsRnJhbWU7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEpTVmFsdWUgcmV0
dXJuVmFsdWU7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpI
b3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
KG5ld0NhbGxGcmFtZSkpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgKnRvcENhbGxGcmFt
ZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1
ZTsKQEAgLTQ0ODAsNiArNDUwMiw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIGlm
IChjYWxsRnJhbWUtPmhhc0hvc3RDYWxsRnJhbWVGbGFnKCkpCiAgICAgICAgICAgICByZXR1cm4g
cmV0dXJuVmFsdWU7CiAKKyAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAg
ICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKICAgICAgICAgY29kZUJs
b2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKQEAgLTQ1MjQsNiArNDU0Nyw3IEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsK
ICAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAgICAgQVNT
RVJUKGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKKyAgICAgICAgKnRvcENh
bGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwog
ICAgIH0KQEAgLTQ2OTQsNiArNDcxOCw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAKICAgICAg
ICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHZQQyArIE9QQ09ERV9MRU5HVEgo
b3BfY29uc3RydWN0KSwgY2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91c0NhbGxGcmFtZSwgYXJn
Q291bnQsIGFzRnVuY3Rpb24odikpOwogICAgICAgICAgICAgY29kZUJsb2NrID0gbmV3Q29kZUJs
b2NrOworICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAg
ICAgICB2UEMgPSBuZXdDb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAjaWYgRU5B
QkxFKE9QQ09ERV9TVEFUUykKICAgICAgICAgICAgIE9wY29kZVN0YXRzOjpyZXNldExhc3RJbnN0
cnVjdGlvbigpOwpAQCAtNDcxMCwxMiArNDczNSwxNCBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgog
ICAgICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBuZXdDYWxsRnJhbWUtPmluaXQoMCwgdlBDICsgT1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1Y3Qp
LCBzY29wZUNoYWluLCBjYWxsRnJhbWUsIGFyZ0NvdW50LCBhc09iamVjdCh2KSk7CisgICAgICAg
ICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IG5ld0NhbGxGcmFtZTsKIAogICAgICAgICAgICAgSlNW
YWx1ZSByZXR1cm5WYWx1ZTsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBTYW1wbGlu
Z1Rvb2w6Okhvc3RDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbihuZXdDYWxsRnJhbWUpKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgQ0hFQ0tfRk9SX0VY
Q0VQVElPTigpOwogICAgICAgICAgICAgZnVuY3Rpb25SZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVl
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMjQgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIFdpbGxFeGVjdXRlU3RhdGVtZW50CiAgICAgfTsKIAorICAg
IGNsYXNzIFRvcENhbGxGcmFtZVNldHRlciB7CisgICAgcHVibGljOgorICAgICAgICBUb3BDYWxs
RnJhbWVTZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9iYWwsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
ICAgICAgICAgICAgOiBnbG9iYWxEYXRhKGdsb2JhbCkKKyAgICAgICAgICAgICwgb2xkQ2FsbEZy
YW1lKGdsb2JhbC50b3BDYWxsRnJhbWUpIAorICAgICAgICB7CisgICAgICAgICAgICBnbG9iYWwu
dG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB+
VG9wQ2FsbEZyYW1lU2V0dGVyKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsb2JhbERhdGEu
dG9wQ2FsbEZyYW1lID0gb2xkQ2FsbEZyYW1lOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAg
ICAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhOworICAgICAgICBDYWxsRnJhbWUqIG9sZENh
bGxGcmFtZTsKKyAgICB9OworCiAgICAgZW51bSB7IE1heExhcmdlVGhyZWFkUmVlbnRyeURlcHRo
ID0gMjU2LCBNYXhTbWFsbFRocmVhZFJlZW50cnlEZXB0aCA9IDMyIH07CiAKICAgICBjbGFzcyBJ
bnRlcnByZXRlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDkzNjIw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzcwLDcgKzM3MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShPUENPREVfU0FNUExJ
TkcpCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VD
YWxsID0gMzc7CiAjZWxzZQotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0
QnlJZFNsb3dDYXNlQ2FsbCA9IDI3OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zm
c2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9IDMzOwogI2VuZGlmCiAgICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgcGF0Y2hPZmZzZXRPcENhbGxDb21wYXJlVG9KdW1wID0gNjsKIApAQCAtNDI4LDcgKzQy
OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCiAgICAg
ICAgICNlcnJvciAiT1BDT0RFX1NBTVBMSU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgogI2Vsc2UK
LSAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwg
PSAzMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2Fz
ZUNhbGwgPSA0MDsKICNlbmRpZgogICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0
T3BDYWxsQ29tcGFyZVRvSnVtcCA9IDE2OwogCkBAIC02MDYsNyArNjA2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKICAgICAgICAgc3RhdGljIGNvbnN0
IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA2NDsKICNlbHNlCi0gICAgICAg
IHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0gNDE7Cisg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0g
NTQ7CiAjZW5kaWYKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE9wQ2FsbENv
bXBhcmVUb0p1bXAgPSA5OwogCkBAIC05NjEsNiArOTYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgdm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKICAgICAgICAgdm9pZCBy
ZXN0b3JlQXJndW1lbnRSZWZlcmVuY2VGb3JUcmFtcG9saW5lKCk7CisgICAgICAgIHZvaWQgdXBk
YXRlVG9wQ2FsbEZyYW1lKCk7CiAKICAgICAgICAgQ2FsbCBlbWl0TmFrZWRDYWxsKENvZGVQdHIg
ZnVuY3Rpb24gPSBDb2RlUHRyKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZU1ldGhvZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZU1ldGhvZHMuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDYg
KzI1MywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0b3JlQXJndW1lbnRSCiAgICAg
cG9rZShjYWxsRnJhbWVSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9mKHZvaWQqKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9p
ZCBKSVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSgpCit7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVn
aXN0ZXIsICZtX2dsb2JhbERhdGEtPnRvcENhbGxGcmFtZSk7Cit9CisKIEFMV0FZU19JTkxJTkUg
dm9pZCBKSVQ6OnJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZUZvclRyYW1wb2xpbmUoKQogewogI2lm
IENQVShYODYpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJDYWxsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCShy
ZXZpc2lvbiA5MzYyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YkNhbGwu
aAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2Vu
ZGlmCiAKICAgICAgICAgICAgIG1faml0LT5yZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKKyAg
ICAgICAgICAgIG1faml0LT51cGRhdGVUb3BDYWxsRnJhbWUoKTsKICAgICAgICAgICAgIEpJVDo6
Q2FsbCBjYWxsID0gbV9qaXQtPmNhbGwoKTsKICAgICAgICAgICAgIG1faml0LT5tX2NhbGxzLmFw
cGVuZChDYWxsUmVjb3JkKGNhbGwsIG1faml0LT5tX2J5dGVjb2RlT2Zmc2V0LCBtX3N0dWIudmFs
dWUoKSkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2
aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA0Niw2ICsxMDQ2LDE1IEBAIHN0YXRpYyBFeGNlcHRpb25IYW5k
bGVyIGppdFRocm93KEpTR2xvYmEKICAgICByZXR1cm4gZXhjZXB0aW9uSGFuZGxlcjsKIH0KIAor
Ly8gSGVscGVyIGZ1bmN0aW9uIGZvciBKSVQgc3R1YnMgdGhhdCBtYXkgdGhyb3cgYW4gZXhjZXB0
aW9uIGluIHRoZSBtaWRkbGUgb2YKKy8vIHByb2Nlc3NpbmcgYSBmdW5jdGlvbiBjYWxsLiBUaGlz
IGZ1bmN0aW9uIHJvbGxzIGJhY2sgdGhlIHJlZ2lzdGVyIGZpbGUgdG8KKy8vIG91ciBjYWxsZXIs
IHNvIGV4Y2VwdGlvbiBwcm9jZXNzaW5nIGNhbiBwcm9jZWVkIGZyb20gYSB2YWxpZCBzdGF0ZS4K
K3N0YXRpYyBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbkhhbmRsZXIgdGhyb3dFeGNlcHRpb25Gcm9t
T3BDYWxsKENhbGxGcmFtZSogb2xkQ2FsbEZyYW1lLCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSkK
K3sKKyAgICBvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBvbGRDYWxs
RnJhbWU7CisgICAgcmV0dXJuIGppdFRocm93KCZvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwg
b2xkQ2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgUmV0
dXJuQWRkcmVzc1B0cihuZXdDYWxsRnJhbWUtPnJldHVyblBDKCkpKTsKK30KKwogI2lmIENQVShB
Uk1fVEhVTUIyKSAmJiBDT01QSUxFUihHQ0MpCiAKICNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJ
T04ocnR5cGUsIG9wKSBcCkBAIC0xMzUwLDEwICsxMzU5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJ
T04odm9pZCosIHJlZ2lzdGVyX2ZpbAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tG
cmFtZS5jYWxsRnJhbWU7CiAKICAgICBpZiAoVU5MSUtFTFkoIXN0YWNrRnJhbWUucmVnaXN0ZXJG
aWxlLT5ncm93KCZjYWxsRnJhbWUtPnJlZ2lzdGVycygpW2NhbGxGcmFtZS0+Y29kZUJsb2NrKCkt
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzXSkpKSB7Ci0gICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJl
dmlvdXMgY2FsbCBmcmFtZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQot
ICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICBDYWxsRnJh
bWUqIG9sZENhbGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICAgICAgRXhj
ZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBv
bGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBSZXR1
cm5BZGRyZXNzUHRyKGNhbGxGcmFtZS0+cmV0dXJuUEMoKSkpOworICAgICAgICBFeGNlcHRpb25I
YW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwoY2FsbEZyYW1lLT5jYWxs
ZXJGcmFtZSgpLCBjYWxsRnJhbWUpOwogICAgICAgICBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyho
YW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgIGNhbGxGcmFtZSA9IGhhbmRsZXIuY2FsbEZy
YW1lOwogICAgIH0KQEAgLTE5NTAsOSArMTk1Niw3IEBAIGlubGluZSB2b2lkKiBhcml0eUNoZWNr
Rm9yKEpJVFN0YWNrRnJhbWUKICAgICAgICAgciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBu
dW1QYXJhbWV0ZXJzOwogICAgICAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9j
ay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CiAgICAgICAgIGlmICghc3RhY2tGcmFtZS5yZWdpc3Rl
ckZpbGUtPmdyb3cobmV3RW5kKSkgewotICAgICAgICAgICAgLy8gUmV3aW5kIHRvIHRoZSBwcmV2
aW91cyBjYWxsIGZyYW1lIGJlY2F1c2Ugb3BfY2FsbCBhbHJlYWR5IG9wdGltaXN0aWNhbGx5Ci0g
ICAgICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICAgICAg
RXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRh
LCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBw
Yyk7CisgICAgICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlv
bkZyb21PcENhbGwob2xkQ2FsbEZyYW1lLCBjYWxsRnJhbWUpOwogICAgICAgICAgICAgc3R1YlJl
dHVybkFkZHJlc3MgPSBSZXR1cm5BZGRyZXNzUHRyKGhhbmRsZXIuY2F0Y2hSb3V0aW5lKTsKICAg
ICAgICAgICAgIHJldHVybiBoYW5kbGVyLmNhbGxGcmFtZTsKICAgICAgICAgfQpAQCAtMTk2NSw5
ICsxOTY5LDcgQEAgaW5saW5lIHZvaWQqIGFyaXR5Q2hlY2tGb3IoSklUU3RhY2tGcmFtZQogICAg
ICAgICByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIG9taXR0ZWRBcmdDb3VudDsKICAgICAg
ICAgUmVnaXN0ZXIqIG5ld0VuZCA9IHIgKyBuZXdDb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0
ZXJzOwogICAgICAgICBpZiAoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KG5ld0VuZCkp
IHsKLSAgICAgICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJldmlvdXMgY2FsbCBmcmFtZSBiZWNh
dXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQotICAgICAgICAgICAgLy8gbW92ZWQg
dGhlIGNhbGwgZnJhbWUgZm9yd2FyZC4KLSAgICAgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIgaGFu
ZGxlciA9IGppdFRocm93KHN0YWNrRnJhbWUuZ2xvYmFsRGF0YSwgb2xkQ2FsbEZyYW1lLCBjcmVh
dGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgcGMpOworICAgICAgICAgICAgRXhj
ZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKG9sZENhbGxG
cmFtZSwgY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHN0dWJSZXR1cm5BZGRyZXNzID0gUmV0dXJu
QWRkcmVzc1B0cihoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgICAgICByZXR1cm4gaGFu
ZGxlci5jYWxsRnJhbWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjIsNiArMTYyLDcgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMoKQogSlNHbG9i
YWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUsIFRocmVh
ZFN0YWNrVHlwZSB0aHJlYWRTdGFja1R5cGUsIEhlYXBTaXplIGhlYXBTaXplKQogICAgIDogZ2xv
YmFsRGF0YVR5cGUoZ2xvYmFsRGF0YVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCisgICAgLCB0
b3BDYWxsRnJhbWUoQ2FsbEZyYW1lOjpub0NhbGxlcigpKQogICAgICwgYXJyYXlDb25zdHJ1Y3Rv
clRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5Q29uc3RydWN0b3JUYWJsZSkpCiAg
ICAgLCBhcnJheVByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5UHJv
dG90eXBlVGFibGUpKQogICAgICwgYm9vbGVhblByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRh
YmxlPihKU0M6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZSkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpA
QCAtMTM1LDYgKzEzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEdsb2JhbERhdGFU
eXBlIGdsb2JhbERhdGFUeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOworICAg
ICAgICBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZTsKIAogICAgICAgICBjb25zdCBIYXNoVGFibGUq
IGFycmF5Q29uc3RydWN0b3JUYWJsZTsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBhcnJheVBy
b3RvdHlwZVRhYmxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105022</attachid>
            <date>2011-08-24 11:09:19 -0700</date>
            <delta_ts>2011-08-24 15:38:56 -0700</delta_ts>
            <desc>Complete results of performance tests made on this patch</desc>
            <filename>perf-tests-results.zip</filename>
            <type>application/zip</type>
            <size>16311</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">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
sQ0+HtuUogGDNoRN0QnJCd1cFhfO9ZtoHzpe7hIksjjs8amMo3md8RoJ2WCWRKP2XtvmbnS7+h5d
d9fzzZDhQapEG5yzMtUvMf1+hIHpY9ApPLRLLWmB8IuLWdruPPXUGzc/g3zmTS6Rv6KcVHuaOuyL
Ui4+8iE2yI2N+w9QSwcI3A+AjtwCAAA2DQAAUEsDBAoAAAAAAMdYGD8AAAAAAAAAAAAAAAAgABAA
cGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy9VWAwAYD1VTpY9VU71AVAAUEsDBBQACAAI
ALRYGD8AAAAAAAAAAAAAAAApABAAcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uRFNf
U3RvcmVVWAwA2D1VTnQ9VU71AVAA7ZfNSsNAFIXPjUEibgbcuJwXUHDncih14doXsGkFpcFKm6rL
vLne6RwlsRVMF9af+8HkG5I5N9MGMhkAMlhOzgAHoEBydoCNFGxrZPS+NlnVuME9TjBGpT3jNxCf
ncMUc4z02H5+I+2fosYz6stqNi6rWRnHvnRY1fiYf9B+rVVuv5g/wgJLTS40eYeJVplvMYvNVfrO
xeER55p70ny51X/Rzfe9v2EYxncgScXhbqdhGMYPJL4fPB3oJll4PaPzVsbRng50kywcl9E5XdCO
9nSgm2S+tISbD+GdhTsUcbSnQ6+fbBj/hr0kF9f/i8/3/4Zh/GEkH14NB3jfEKwR11qv7fotgO6H
AM/lHBuX4uPWeU8Hukm2DwHD2BWvUEsHCKvRL1wdAQAABBgAAFBLAwQKAAAAAADqWBg/AAAAAAAA
AAAAAAAAKQAQAF9fTUFDT1NYL3BlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvVVgMANg9
VU7YPVVO9QEUAFBLAwQUAAgACAC0WBg/AAAAAAAAAAAAAAAANAAQAF9fTUFDT1NYL3BlcmYtdGVz
dHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvLl8uRFNfU3RvcmVVWAwA2D1VTnQ9VU71AVAAY2AVY2dg
YmDwTUxW8A9WiFCAApAYAycQGwGxAhCD+EEMSMCBATsAAFBLBwjckY+4KAAAAFIAAABQSwMEFAAI
AAgAUlYYPwAAAAAAAAAAAAAAADAAEABwZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzL2ty
YWtlbi1jbGVhbi50eHRVWAwA2D1VTus5VU71ARQAlZTLbsMgEEX3/go2kVpVpmDAj0pddtdVHx8w
MTildSACEjV/3zh2aBzHi7BE587lzox4fr7pJG8v75+vH+/obq3AeARGokosUG1No6UytULaBOV2
0Pr7JL3tJB82QPuEZk4uiMBi7dHDY4oILhY3108QAj1bH1FSMcyiQblIulvwAdxV0ZTvDLZS2xkP
mhcVLgdBhllvsFQQUqmCqoO2ZiTlJcF55Kuel02Yy8AzEh9ETwGaeZ4d6hcDz071ra9120Kw09Ss
KnEW+T6wXsNKm9VVi6wkLAYmmPcGK9h6r8Gky3Y79qAFodEg8hLcj7N2fcVCZOcToAOvPIStg6Am
CnEYwD8vjgG+/UXXRy9iHJNBwE8T24DzKm20AVPri43NeTTIO4Puzgd36JBu9mnQRiq3tL9Rk1dx
Asf6SYeDaayTVx9VVPxsJUhvULv9JtgUlJ9oKBfRgJ46OvB1Pe0pZSWmMUA24jfLH9lkYwnLS1zF
lRjz/gsykaf68CFA0LvjOCinke8m8AdQSwcISjUHuYgBAACBBAAAUEsDBBQACAAIAFJWGD8AAAAA
AAAAAAAAAAA7ABAAX19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uX2ty
YWtlbi1jbGVhbi50eHRVWAwA2D1VTus5VU71ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFx
JRCD+KuBmCHENSJEMSg5gwEncAwJCWIIOHsVqmMOEPOjKWFEiIsn5+fqJRYU5KTqhaRWlLjmJeen
ZOalAyVDQ9x0LawNjU2MDM0tLUwAUEsHCF89YydpAAAAqwAAAFBLAwQUAAgACABdVhg/AAAAAAAA
AAAAAAAAMAAQAHBlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMva3Jha2VuLXBhdGNoLnR4
dFVYDADYPVVOATpVTvUBFACVlL1uwjAUhXeewgtSqypu7NhOUomxW6dCH+ASO9Ql2Mg2qLx9Ewim
EDLgMfrOPef+KLPZQ2/y+T7/+ljM0dNGgfEIjEQln6LKmlpLZSqFtAnK7aHxz5PksTdZ2ADNGxp5
gqcEFxuPXl4TlOJi+nD9CUKgR+sjkhYCZ/8Nuq/gA7i7oiHfGeyktiMeRBQUp72A4PJksFQQEqmC
qoK25krKCo55z2c4PfGyDmM9MEIxifXJia/H+azNw2L9/MRbX+mmgWCHXbP0kj/r8rcCvYGVNqu7
FrRoV5bHCfWBVrDzXoNJls3u2oOIkkeDyEtwa2ft5o4Fp3lsIMW855WHsHMQ1EDB8/LfxsSxgR9/
M/WrRIzGDfBO0H3cgvMqqbUBU+mbixU5Fj2fnwP54NoJ6fqQBG2kckv7GzU5w2XPiz5Qe3Cmtk7e
DZUXlw7oeUKVO2yDTUD5gYawIvLsfHI9X1XDmZJMxBO65bfLtazptSQTWdwYveH9N1AuEt3+ECDo
/XEdhJHYcHoe6B9QSwcIQ/orookBAACGBAAAUEsDBBQACAAIAF1WGD8AAAAAAAAAAAAAAAA7ABAA
X19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uX2tyYWtlbi1wYXRjaC50
eHRVWAwA2D1VTgE6VU71ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxJRCD+KuBmCHENSJE
MSg5gwEncAwJCWIIOPsMqmMOEPOjKWFEiIsn5+fqJRYU5KTqhaRWlLjmJeenZOalAyVDQ9x0LawN
jU2MDM0tLUwAUEsHCFMcEihpAAAAqwAAAFBLAwQUAAgACADonhc/AAAAAAAAAAAAAAAAMwAQAHBl
cmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvc3Vuc3BpZGVyLWNsZWFuLnR4dFVYDADYPVVO
E2hUTvUBUADt3e9v20Qcx/Hn+StOkyaBmNPYSZqkEg8GG0IwBGqHEEJoutjuapbake10qxD/O2cn
Te0468jUFn997z7ZdHf1j+Tlz9d3cduzXKd5FL9V2SrOllEQpup9lF+oF7+/evHmu9PnP7387efT
H9/88vz19yoLc5UnaplEcfmf+Spa5OoHfaXP/DRa5t8maaiiWB19YzqCo9NwEeos7PdeRJmv0yAM
1HmUZrlKV3G/98ffPWW+ngwDx1/Nwycnyh082zZdJunywrRNbptSfZ2n2g8rrdr3wyxz5lGs02sn
T8MwM71evfdcx/G7lV9szXXrXfE8Ca5N+2inOYvCq7CypXmUJ8vMGZp/zc7yzIliZ36dlwddH7LT
O2r0vo+y0NFxYDqH9c71XsstmM7xptNP4jxNFueL5L2Thv4qzaKr6n799HqZJ44uz/y43ngZjCsn
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
N9aq7ZsBAABvBQAAUEsDBBQACAAIACBRGD8AAAAAAAAAAAAAAAA7ABAAX19NQUNPU1gvcGVyZi10
ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uX3Y4LXdlYi1jbGVhbi50eHRVWAwA2D1VTiwwVU71
ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxJRCD+KuBmCHENSJEMSg5gwEncAwJCWII2MoM
1TEHiPnRlDAixMWT83P1EgsKclL1QlIrSlzzkvNTMvPSgZKhIW66FtaGxiZGhuaWFiYAUEsHCOwG
HsxpAAAAqwAAAFBLAwQUAAgACAA4VBg/AAAAAAAAAAAAAAAAMAAQAHBlcmYtdGVzdHMtcmVzdWx0
cy90ZXN0LXJlc3VsdHMvdjgtd2ViLXBhdGNoLnR4dFVYDADYPVVO+zVVTvUBFAB9071Ow0AMB/D9
niILCwiwffZ9ZCx0Y2rKA0QlAqRIrUKRyNtzRaSxI7Ud4ya/+9u+ZrcfuroSJnKbz91HO7x91RWn
IO6564/tqv8uZZ88uqdhPBz3dYVIBG7Tjtuh3Z3ezRHcuh36blztx26oq+wTuk33vv451BVhZNcc
+nY8MYjONf+mZ2/MlI2ZIWmTWZsSszVTBK9MiWdTSJRZgmmTgs2JJidYU5Y5BUXnJJWTL5pBFian
y71NAZe9DazNfDY95tlkCCan99YEUibGoM0YwsLkcmRlytxbVvNkNGYOYM0clQmgzQA+LeaZSecs
3zqbGHVvozEJr+wQnP6szDIka4onnRMu7G1m01tJNqegMb2Z53JvM+WLZtY57V0pu2Z7C3qeYO+n
l+VdoazvijI5KDNZM1+9K2UTdE7Py70tY5tNVHelHM/d2p/brJvXl22jD0PV3eN9BQ9A1Y3tf5wq
sVTsKGQqSSmpDgmbr6mD8+QglorNgIRT8e+1eT2n5xDK87mbXvO/UEsHCHYJELqHAQAAbAUAAFBL
AwQUAAgACAA4VBg/AAAAAAAAAAAAAAAAOwAQAF9fTUFDT1NYL3BlcmYtdGVzdHMtcmVzdWx0cy90
ZXN0LXJlc3VsdHMvLl92OC13ZWItcGF0Y2gudHh0VVgMANg9VU77NVVO9QEUAGNgFWNnYGJg8E1M
VvAPVohQgAKQGAMnEBsBcSUQg/irgZghxDUiRDEoOYMBJ3AMCQliCDgrDdUxB4j50ZQwIsTFk/Nz
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
AAAAABMADAAAAAAAAAAAQO1BAAAAAHBlcmYtdGVzdHMtcmVzdWx0cy9VWAgAVjpVTpY9VU5QSwEC
FQMUAAgACABrVhg/Hc/4l28CAADBCAAAJQAMAAAAAAAAAABApIFBAAAAcGVyZi10ZXN0cy1yZXN1
bHRzL2tyYWtlbi1yZXN1bHRzLnR4dFVYCADYPVVOGTpVTlBLAQIVAwoAAAAAAOpYGD8AAAAAAAAA
AAAAAAAJAAwAAAAAAAAAAED9QRMDAABfX01BQ09TWC9VWAgA2D1VTtg9VU5QSwECFQMKAAAAAADq
WBg/AAAAAAAAAAAAAAAAHAAMAAAAAAAAAABA/UFKAwAAX19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1
bHRzL1VYCADYPVVO2D1VTlBLAQIVAxQACAAIAGtWGD/uRAnVaQAAAKsAAAAwAAwAAAAAAAAAAECk
gZQDAABfX01BQ09TWC9wZXJmLXRlc3RzLXJlc3VsdHMvLl9rcmFrZW4tcmVzdWx0cy50eHRVWAgA
2D1VThk6VU5QSwECFQMUAAgACAAOqRc/3A+AjtwCAAA2DQAAKAAMAAAAAAAAAABApIFrBAAAcGVy
Zi10ZXN0cy1yZXN1bHRzL3N1bnNwaWRlci1yZXN1bHRzLnR4dFVYCADYPVVOPHlUTlBLAQIVAwoA
AAAAAMdYGD8AAAAAAAAAAAAAAAAgAAwAAAAAAAAAAEDtQa0HAABwZXJmLXRlc3RzLXJlc3VsdHMv
dGVzdC1yZXN1bHRzL1VYCABgPVVOlj1VTlBLAQIVAxQACAAIALRYGD+r0S9cHQEAAAQYAAApAAwA
AAAAAAAAAECkgfsHAABwZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzLy5EU19TdG9yZVVY
CADYPVVOdD1VTlBLAQIVAwoAAAAAAOpYGD8AAAAAAAAAAAAAAAApAAwAAAAAAAAAAED9QX8JAABf
X01BQ09TWC9wZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzL1VYCADYPVVO2D1VTlBLAQIV
AxQACAAIALRYGD/ckY+4KAAAAFIAAAA0AAwAAAAAAAAAAECkgdYJAABfX01BQ09TWC9wZXJmLXRl
c3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzLy5fLkRTX1N0b3JlVVgIANg9VU50PVVOUEsBAhUDFAAI
AAgAUlYYP0o1B7mIAQAAgQQAADAADAAAAAAAAAAAQKSBcAoAAHBlcmYtdGVzdHMtcmVzdWx0cy90
ZXN0LXJlc3VsdHMva3Jha2VuLWNsZWFuLnR4dFVYCADYPVVO6zlVTlBLAQIVAxQACAAIAFJWGD9f
PWMnaQAAAKsAAAA7AAwAAAAAAAAAAECkgWYMAABfX01BQ09TWC9wZXJmLXRlc3RzLXJlc3VsdHMv
dGVzdC1yZXN1bHRzLy5fa3Jha2VuLWNsZWFuLnR4dFVYCADYPVVO6zlVTlBLAQIVAxQACAAIAF1W
GD9D+iuiiQEAAIYEAAAwAAwAAAAAAAAAAECkgUgNAABwZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1y
ZXN1bHRzL2tyYWtlbi1wYXRjaC50eHRVWAgA2D1VTgE6VU5QSwECFQMUAAgACABdVhg/UxwSKGkA
AACrAAAAOwAMAAAAAAAAAABApIE/DwAAX19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3Qt
cmVzdWx0cy8uX2tyYWtlbi1wYXRjaC50eHRVWAgA2D1VTgE6VU5QSwECFQMUAAgACADonhc/adEi
iiYIAACaGgIAMwAMAAAAAAAAAABApIEhEAAAcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0
cy9zdW5zcGlkZXItY2xlYW4udHh0VVgIANg9VU4TaFROUEsBAhUDFAAIAAgAGZ4XPxmFG1F6CAAA
lRoCADMADAAAAAAAAAAAQKSBuBgAAHBlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvc3Vu
c3BpZGVyLXBhdGNoLnR4dFVYCADYPVVOkWZUTlBLAQIVAxQACAAIACBRGD831qrtmwEAAG8FAAAw
AAwAAAAAAAAAAECkgaMhAABwZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzL3Y4LXdlYi1j
bGVhbi50eHRVWAgA2D1VTiwwVU5QSwECFQMUAAgACAAgURg/7AYezGkAAACrAAAAOwAMAAAAAAAA
AABApIGsIwAAX19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uX3Y4LXdl
Yi1jbGVhbi50eHRVWAgA2D1VTiwwVU5QSwECFQMUAAgACAA4VBg/dgkQuocBAABsBQAAMAAMAAAA
AAAAAABApIGOJAAAcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy92OC13ZWItcGF0Y2gu
dHh0VVgIANg9VU77NVVOUEsBAhUDFAAIAAgAOFQYP0WJ6CJpAAAAqwAAADsADAAAAAAAAAAAQKSB
gyYAAF9fTUFDT1NYL3BlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvLl92OC13ZWItcGF0
Y2gudHh0VVgIANg9VU77NVVOUEsBAhUDFAAIAAgABKwXP/zODPkJBAAAgBYAACsADAAAAAAAAAAA
QKSBZScAAHBlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvdjhjbGVhbi50eHRVWAgA2D1V
Tsd+VE5QSwECFQMUAAgACAAYqhc/BTKqrgwEAACAFgAAKwAMAAAAAAAAAABApIHXKwAAcGVyZi10
ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy92OHBhdGNoLnR4dFVYCADYPVVOMHtUTlBLAQIVAxQA
CAAIACWwFz9CA35POgEAAL8DAAAhAAwAAAAAAAAAAECkgUwwAABwZXJmLXRlc3RzLXJlc3VsdHMv
djgtY29tcGFyZS50eHRVWAgA2D1VTpaFVE5QSwECFQMUAAgACAAlsBc/VtKLqWkAAACrAAAALAAM
AAAAAAAAAABApIHlMQAAX19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzLy5fdjgtY29tcGFyZS50
eHRVWAgA2D1VTpaFVE5QSwECFQMUAAgACACdWBg/ayTvsmYBAABWBAAAJQAMAAAAAAAAAABApIG4
MgAAcGVyZi10ZXN0cy1yZXN1bHRzL3Y4LXdlYi1yZXN1bHRzLnR4dFVYCADYPVVOSj1VTlBLAQIV
AxQACAAIAJ1YGD9aAodHaQAAAKsAAAAwAAwAAAAAAAAAAECkgYE0AABfX01BQ09TWC9wZXJmLXRl
c3RzLXJlc3VsdHMvLl92OC13ZWItcmVzdWx0cy50eHRVWAgA2D1VTko9VU5QSwUGAAAAABoAGgBJ
CgAAWDUAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105023</attachid>
            <date>2011-08-24 11:10:09 -0700</date>
            <delta_ts>2011-08-24 15:39:15 -0700</delta_ts>
            <desc>sunspider test results</desc>
            <filename>sunspider-results.txt</filename>
            <type>text/plain</type>
            <size>3382</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">CgpURVNUICAgICAgICAgICAgICAgICAgIENPTVBBUklTT04gICAgICAgICAgICBGUk9NICAgICAg
ICAgICAgICAgICBUTyAgICAgICAgICAgICBERVRBSUxTCgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoK
KiogVE9UQUwgKio6ICAgICAgICAgICAqMS4wMDR4IGFzIHNsb3cqICAxNTguMW1zICsvLSAwLjEl
ICAgMTU4LjdtcyArLy0gMC4xJSAgICAgc2lnbmlmaWNhbnQKCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CgogIDNkOiAgICAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAyMy4ybXMgKy8tIDAu
MyUgICAgMjMuMm1zICsvLSAwLjIlIAogICAgY3ViZTogICAgICAgICAgICAgIC0gICAgICAgICAg
ICAgICAgICAgOS4ybXMgKy8tIDAuNiUgICAgIDkuMm1zICsvLSAwLjYlIAogICAgbW9ycGg6ICAg
ICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgNy4wbXMgKy8tIDAuMSUgICAgIDcuMG1zICsv
LSAwLjAlIAogICAgcmF5dHJhY2U6ICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgNy4wbXMg
Ky8tIDAuMSUgICAgIDcuMG1zICsvLSAwLjAlIAoKICBhY2Nlc3M6ICAgICAgICAgICAgICAqMS4w
MDR4IGFzIHNsb3cqICAgMTguOW1zICsvLSAwLjIlICAgIDE5LjBtcyArLy0gMC4xJSAgICAgc2ln
bmlmaWNhbnQKICAgIGJpbmFyeS10cmVlczogICAgICA/PyAgICAgICAgICAgICAgICAgIDIuMG1z
ICsvLSAwLjAlICAgICAyLjBtcyArLy0gMC41JSAgICAgbm90IGNvbmNsdXNpdmU6IG1pZ2h0IGJl
ICoxLjAwMnggYXMgc2xvdyoKICAgIGZhbm5rdWNoOiAgICAgICAgICAqMS4wMDd4IGFzIHNsb3cq
ICAgMTAuOW1zICsvLSAwLjMlICAgIDExLjBtcyArLy0gMC4wJSAgICAgc2lnbmlmaWNhbnQKICAg
IG5ib2R5OiAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgIDQuMG1zICsvLSAwLjAlICAg
ICA0LjBtcyArLy0gMC4wJSAKICAgIG5zaWV2ZTogICAgICAgICAgICAtICAgICAgICAgICAgICAg
ICAgIDIuMG1zICsvLSAwLjAlICAgICAyLjBtcyArLy0gMC4wJSAKCiAgYml0b3BzOiAgICAgICAg
ICAgICAgLSAgICAgICAgICAgICAgICAgIDEzLjBtcyArLy0gMC4xJSAgICAxMy4wbXMgKy8tIDAu
MCUgCiAgICAzYml0LWJpdHMtaW4tYnl0ZTogLSAgICAgICAgICAgICAgICAgICAxLjBtcyArLy0g
MC4wJSAgICAgMS4wbXMgKy8tIDAuMCUgCiAgICBiaXRzLWluLWJ5dGU6ICAgICAgLSAgICAgICAg
ICAgICAgICAgICA0LjBtcyArLy0gMC4wJSAgICAgNC4wbXMgKy8tIDAuMCUgCiAgICBiaXR3aXNl
LWFuZDogICAgICAgLSAgICAgICAgICAgICAgICAgICAzLjBtcyArLy0gMC4zJSAgICAgMy4wbXMg
Ky8tIDAuMCUgCiAgICBuc2lldmUtYml0czogICAgICAgLSAgICAgICAgICAgICAgICAgICA1LjBt
cyArLy0gMC4wJSAgICAgNS4wbXMgKy8tIDAuMCUgCgogIGNvbnRyb2xmbG93OiAgICAgICAgID8/
ICAgICAgICAgICAgICAgICAgMS4wbXMgKy8tIDEuNCUgICAgIDEuMG1zICsvLSAxLjclICAgICBu
b3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA1eCBhcyBzbG93KgogICAgcmVjdXJzaXZlOiAg
ICAgICAgID8/ICAgICAgICAgICAgICAgICAgMS4wbXMgKy8tIDEuNCUgICAgIDEuMG1zICsvLSAx
LjclICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA1eCBhcyBzbG93KgoKICBjcnlw
dG86ICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgMTAuMG1zICsvLSAwLjAlICAgIDEw
LjBtcyArLy0gMC4wJSAKICAgIGFlczogICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAg
IDYuMG1zICsvLSAwLjAlICAgICA2LjBtcyArLy0gMC4wJSAKICAgIG1kNTogICAgICAgICAgICAg
ICAtICAgICAgICAgICAgICAgICAgIDIuMG1zICsvLSAwLjAlICAgICAyLjBtcyArLy0gMC4wJSAK
ICAgIHNoYTE6ICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgIDIuMG1zICsvLSAwLjAl
ICAgICAyLjBtcyArLy0gMC4wJSAKCiAgZGF0ZTogICAgICAgICAgICAgICAgPz8gICAgICAgICAg
ICAgICAgIDE4LjJtcyArLy0gMC43JSAgICAxOC40bXMgKy8tIDAuNSUgICAgIG5vdCBjb25jbHVz
aXZlOiBtaWdodCBiZSAqMS4wMDh4IGFzIHNsb3cqCiAgICBmb3JtYXQtdG9mdGU6ICAgICAgKjEu
MDE2eCBhcyBzbG93KiAgIDEwLjJtcyArLy0gMS4yJSAgICAxMC40bXMgKy8tIDAuOSUgICAgIHNp
Z25pZmljYW50CiAgICBmb3JtYXQteHBhcmI6ICAgICAgLSAgICAgICAgICAgICAgICAgICA4LjBt
cyArLy0gMC4xJSAgICAgOC4wbXMgKy8tIDAuMiUgCgogIG1hdGg6ICAgICAgICAgICAgICAgICox
LjAyNnggYXMgc2xvdyogICAxNC42bXMgKy8tIDAuNSUgICAgMTUuMG1zICsvLSAwLjAlICAgICBz
aWduaWZpY2FudAogICAgY29yZGljOiAgICAgICAgICAgICoxLjA2OHggYXMgc2xvdyogICAgNS42
bXMgKy8tIDEuMiUgICAgIDYuMG1zICsvLSAwLjAlICAgICBzaWduaWZpY2FudAogICAgcGFydGlh
bC1zdW1zOiAgICAgIC0gICAgICAgICAgICAgICAgICAgNy4wbXMgKy8tIDAuMSUgICAgIDcuMG1z
ICsvLSAwLjAlIAogICAgc3BlY3RyYWwtbm9ybTogICAgIC0gICAgICAgICAgICAgICAgICAgMi4w
bXMgKy8tIDAuMCUgICAgIDIuMG1zICsvLSAwLjAlIAoKICByZWdleHA6ICAgICAgICAgICAgICAt
ICAgICAgICAgICAgICAgICAgMTAuMG1zICsvLSAwLjIlICAgIDEwLjBtcyArLy0gMC4wJSAKICAg
IGRuYTogICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgMTAuMG1zICsvLSAwLjIlICAg
IDEwLjBtcyArLy0gMC4wJSAKCiAgc3RyaW5nOiAgICAgICAgICAgICAgLSAgICAgICAgICAgICAg
ICAgIDQ5LjFtcyArLy0gMC4xJSAgICA0OS4xbXMgKy8tIDAuMiUgCiAgICBiYXNlNjQ6ICAgICAg
ICAgICAgMS4wNTl4IGFzIGZhc3QgICAgICA2LjBtcyArLy0gMC4wJSAgICAgNS43bXMgKy8tIDEu
MiUgICAgIHNpZ25pZmljYW50CiAgICBmYXN0YTogICAgICAgICAgICAgLSAgICAgICAgICAgICAg
ICAgICA3LjBtcyArLy0gMC4wJSAgICAgNy4wbXMgKy8tIDAuMSUgCiAgICB0YWdjbG91ZDogICAg
ICAgICAgKjEuMDA4eCBhcyBzbG93KiAgIDEyLjBtcyArLy0gMC4yJSAgICAxMi4xbXMgKy8tIDAu
NCUgICAgIHNpZ25pZmljYW50CiAgICB1bnBhY2stY29kZTogICAgICAgKjEuMDE0eCBhcyBzbG93
KiAgIDE4LjBtcyArLy0gMC4yJSAgICAxOC4zbXMgKy8tIDAuNCUgICAgIHNpZ25pZmljYW50CiAg
ICB2YWxpZGF0ZS1pbnB1dDogICAgLSAgICAgICAgICAgICAgICAgICA2LjBtcyArLy0gMC4yJSAg
ICAgNi4wbXMgKy8tIDAuMCUgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105024</attachid>
            <date>2011-08-24 11:10:52 -0700</date>
            <delta_ts>2011-08-24 15:39:18 -0700</delta_ts>
            <desc>v8 results (outside web browser)</desc>
            <filename>v8-compare.txt</filename>
            <type>text/plain</type>
            <size>959</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">VjggUmVzdWx0cyAgICAgICAgIHwgICAgICAgRlJPTSAgICAgICAgfCAgICAgICAgVE8gICAgICAg
IHwgICAgICAgIERJRkYKUmljaGFyZHM6ICAgICAgICAgIHwgIDQ5MzcgKy8tIDAuMDklICAgfCAg
NDg4NCArLy0gMC4wOCUgIHwgICAgMS4wOCUgc2xvd2VyCkRlbHRhQmx1ZTogICAgICAgICB8ICA0
MDMzICsvLSAwLjE5JSAgIHwgIDQwNzQgKy8tIDAuMTQlICB8ICAgIDEuMDElIGZhc3RlcgpDcnlw
dG86ICAgICAgICAgICAgfCAgODQ2OSArLy0gMC4wNiUgICB8ICA4NjY1ICsvLSAwLjA1JSAgfCAg
ICAyLjMxJSBmYXN0ZXIKUmF5VHJhY2U6ICAgICAgICAgIHwgIDcwNjIgKy8tIDAuMTAlICAgfCAg
NzIyMiArLy0gMC4xMSUgIHwgICAgMi4yNiUgZmFzdGVyCkVhcmxleUJveWVyOiAgICAgICB8ICAx
MTI4NCArLy0gMC4wNCUgIHwgIDExMDQ5ICsvLSAwLjA4JSB8ICAgIDIuMTIlIHNsb3dlcgotLS0t
ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfApU
b3RhbCBzY29yZTogICAgICAgfCAgNjY5MyArLy0gMC4wNiUgICB8ICA2NzI1ICsvLSAwLjA1JSAg
fCAgICAwLjQ3JSBmYXN0ZXIKCkNMRUFOCgpWOCBSZXN1bHRzClJpY2hhcmRzOiA0OTM3ICsvLSAw
LjA5JSAKRGVsdGFCbHVlOiA0MDMzICsvLSAwLjE5JSAKQ3J5cHRvOiA4NDY5ICsvLSAwLjA2JSAK
UmF5VHJhY2U6IDcwNjIgKy8tIDAuMTAlIApFYXJsZXlCb3llcjogMTEyODQgKy8tIDAuMDQlIAot
LS0tClRvdGFsIHNjb3JlOiA2NjkzICsvLSAwLjA2JSAKClBBVENICgpWOCBSZXN1bHRzClJpY2hh
cmRzOiA0ODg0ICsvLSAwLjA4JSAKRGVsdGFCbHVlOiA0MDc0ICsvLSAwLjE0JSAKQ3J5cHRvOiA4
NjY1ICsvLSAwLjA1JSAKUmF5VHJhY2U6IDcyMjIgKy8tIDAuMTElIApFYXJsZXlCb3llcjogMTEw
NDkgKy8tIDAuMDglIAotLS0tClRvdGFsIHNjb3JlOiA2NzI1ICsvLSAwLjA1JSA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105025</attachid>
            <date>2011-08-24 11:11:28 -0700</date>
            <delta_ts>2011-08-24 15:39:22 -0700</delta_ts>
            <desc>v8 results (in web browser)</desc>
            <filename>v8-web-results.txt</filename>
            <type>text/plain</type>
            <size>1110</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">VjggUmVzdWx0cyAgICAgICAgIHwgICAgICAgRlJPTSAgICAgICAgfCAgICAgICAgVE8gICAgICAg
ICB8ICAgICAgICBESUZGClNjb3JlOiAgICAgICAgICAgICB8ICA1MzkwICsvLSAwLjAzICUgIHwg
IDUzODIgKy8tIDAuMDIgJSAgfCAgICAwLjE1JSBzbG93ZXIKUmljaGFyZHM6ICAgICAgICAgIHwg
IDQ5OTkgKy8tIDAuMDggJSAgfCAgNDg1NyArLy0gMC4wNyAlICB8ICAgIDIuODQlIHNsb3dlcgpE
ZWx0YUJsdWU6ICAgICAgICAgfCAgMzkwOCArLy0gMC4wNiAlICB8ICAzODU1ICsvLSAwLjA1ICUg
IHwgICAgMS4zNiUgc2xvd2VyCkNyeXB0bzogICAgICAgICAgICB8ICAxMDk3MSArLy0gMC4wNCAl
IHwgIDExMTU0ICsvLSAwLjAyICUgfCAgICAxLjY3JSBmYXN0ZXIKUmF5VHJhY2U6ICAgICAgICAg
IHwgIDU2NjAgKy8tIDAuMDggJSAgfCAgNTg0MiArLy0gMC4xMSAlICB8ICAgIDMuMjIlIGZhc3Rl
cgpFYXJsZXlCb3llcjogICAgICAgfCAgOTIwNiArLy0gMC4wNCAlICB8ICA5MTIxICsvLSAwLjEy
ICUgIHwgICAgMC45MiUgc2xvd2VyClJlZ0V4cDogICAgICAgICAgICB8ICAyMTU4ICsvLSAwLjA3
ICUgIHwgIDIxNjEgKy8tIDAuMDYgJSAgfCAgICAwLjE0JSBmYXN0ZXIKU3BsYXk6ICAgICAgICAg
ICAgIHwgIDU0ODYgKy8tIDAuMDYgJSAgfCAgNTQ0MyArLy0gMC4wNSAlICB8ICAgIDAuNzglIHNs
b3dlcgoKQ0xFQU4KClNjb3JlOiA1MzkwICsvLSAwLjAzICUKUmljaGFyZHM6IDQ5OTkgKy8tIDAu
MDggJQpEZWx0YUJsdWU6IDM5MDggKy8tIDAuMDYgJQpDcnlwdG86IDEwOTcxICsvLSAwLjA0ICUK
UmF5VHJhY2U6IDU2NjAgKy8tIDAuMDggJQpFYXJsZXlCb3llcjogOTIwNiArLy0gMC4wNCAlClJl
Z0V4cDogMjE1OCArLy0gMC4wNyAlClNwbGF5OiA1NDg2ICsvLSAwLjA2ICUKClBBVENICgpTY29y
ZTogNTM4MiArLy0gMC4wMiAlClJpY2hhcmRzOiA0ODU3ICsvLSAwLjA3ICUKRGVsdGFCbHVlOiAz
ODU1ICsvLSAwLjA1ICUKQ3J5cHRvOiAxMTE1NCArLy0gMC4wMiAlClJheVRyYWNlOiA1ODQyICsv
LSAwLjExICUKRWFybGV5Qm95ZXI6IDkxMjEgKy8tIDAuMTIgJQpSZWdFeHA6IDIxNjEgKy8tIDAu
MDYgJQpTcGxheTogNTQ0MyArLy0gMC4wNSAl
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105026</attachid>
            <date>2011-08-24 11:12:15 -0700</date>
            <delta_ts>2011-08-24 15:39:25 -0700</delta_ts>
            <desc>kraken results</desc>
            <filename>kraken-results.txt</filename>
            <type>text/plain</type>
            <size>2241</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">VEVTVCAgICAgICAgICAgICAgICAgICAgICAgICBDT01QQVJJU09OICAgICAgICAgICAgRlJPTSAg
ICAgICAgICAgICAgICAgVE8gICAgICAgICAgICAgICBERVRBSUxTCgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KCioqIFRPVEFMICoqOiAgICAgICAgICAgICAgICAgLSAgICAgICAgICAgICAg
ICAgNjUwNS41bXMgKy8tIDAuNyUgICA2NTAxLjhtcyArLy0gMC44JSAKCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQoKICBhaTogICAgICAgICAgICAgICAgICAgICAgICAtICAgICAgICAgICAg
ICAgICAxMDkzLjNtcyArLy0gMC44JSAgIDEwODYuM21zICsvLSAwLjglIAogICAgYXN0YXI6ICAg
ICAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgIDEwOTMuM21zICsvLSAwLjglICAgMTA4
Ni4zbXMgKy8tIDAuOCUgCgogIGF1ZGlvOiAgICAgICAgICAgICAgICAgICAgID8/ICAgICAgICAg
ICAgICAgIDE2NzkuOG1zICsvLSAyLjMlICAgMTY4Mi4wbXMgKy8tIDEuOSUgICAgIG1pZ2h0IGJl
ICoxLjAwMXggYXMgc2xvdyoKICAgIGJlYXQtZGV0ZWN0aW9uOiAgICAgICAgICA/PyAgICAgICAg
ICAgICAgICAgNDgwLjZtcyArLy0gMi45JSAgICA0ODUuNW1zICsvLSAzLjAlICAgICBtaWdodCBi
ZSAqMS4wMTB4IGFzIHNsb3cqCiAgICBkZnQ6ICAgICAgICAgICAgICAgICAgICAgLSAgICAgICAg
ICAgICAgICAgIDQyMC4zbXMgKy8tIDEuOCUgICAgNDEyLjFtcyArLy0gMS4xJSAKICAgIGZmdDog
ICAgICAgICAgICAgICAgICAgICA/PyAgICAgICAgICAgICAgICAgMzgwLjdtcyArLy0gMy45JSAg
ICAzODIuNG1zICsvLSAzLjclICAgICBtaWdodCBiZSAqMS4wMDR4IGFzIHNsb3cqCiAgICBvc2Np
bGxhdG9yOiAgICAgICAgICAgICAgPz8gICAgICAgICAgICAgICAgIDM5OC4ybXMgKy8tIDMuOCUg
ICAgNDAyLjBtcyArLy0gMy45JSAgICAgbWlnaHQgYmUgKjEuMDEweCBhcyBzbG93KgoKICBpbWFn
aW5nOiAgICAgICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAyODAzLjhtcyArLy0gMC40
JSAgIDI4MDEuN21zICsvLSAwLjElIAogICAgZ2F1c3NpYW4tYmx1cjogICAgICAgICAgIC0gICAg
ICAgICAgICAgICAgIDE3MDEuMm1zICsvLSAwLjQlICAgMTY5NS4wbXMgKy8tIDAuMSUgCiAgICBk
YXJrcm9vbTogICAgICAgICAgICAgICAgKjEuMDA4eCBhcyBzbG93KiAgIDUyMy4zbXMgKy8tIDAu
MSUgICAgNTI3LjRtcyArLy0gMC41JSAgICAgc2lnbmlmaWNhbnQKICAgIGRlc2F0dXJhdGU6ICAg
ICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgNTc5LjNtcyArLy0gMC41JSAgICA1NzkuM21z
ICsvLSAwLjYlIAoKICBqc29uOiAgICAgICAgICAgICAgICAgICAgICA/PyAgICAgICAgICAgICAg
ICAgMTM0LjBtcyArLy0gNC4zJSAgICAxNDIuNW1zICsvLSA1LjYlICAgICBtaWdodCBiZSAqMS4w
NjN4IGFzIHNsb3cqCiAgICBwYXJzZS1maW5hbmNpYWw6ICAgICAgICAgPz8gICAgICAgICAgICAg
ICAgICA2NC4zbXMgKy8tIDYuNSUgICAgIDY3LjZtcyArLy0gNy41JSAgICAgbWlnaHQgYmUgKjEu
MDUxeCBhcyBzbG93KgogICAgc3RyaW5naWZ5LXRpbmRlcmJveDogICAgID8/ICAgICAgICAgICAg
ICAgICAgNjkuN21zICsvLSA0LjMlICAgICA3NC45bXMgKy8tIDYuNiUgICAgIG1pZ2h0IGJlICox
LjA3NXggYXMgc2xvdyoKCiAgc3RhbmZvcmQ6ICAgICAgICAgICAgICAgICAgLSAgICAgICAgICAg
ICAgICAgIDc5NC42bXMgKy8tIDIuMCUgICAgNzg5LjNtcyArLy0gMi4xJSAKICAgIGNyeXB0by1h
ZXM6ICAgICAgICAgICAgICA/PyAgICAgICAgICAgICAgICAgMTQ1LjdtcyArLy0gMS40JSAgICAx
NDguM21zICsvLSA0LjklICAgICBtaWdodCBiZSAqMS4wMTh4IGFzIHNsb3cqCiAgICBjcnlwdG8t
Y2NtOiAgICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgIDEzOC4xbXMgKy8tIDYuMiUgICAg
MTM2LjFtcyArLy0gNC45JSAKICAgIGNyeXB0by1wYmtkZjI6ICAgICAgICAgICAtICAgICAgICAg
ICAgICAgICAgMzY4LjltcyArLy0gMy4yJSAgICAzNjMuMG1zICsvLSAyLjklIAogICAgY3J5cHRv
LXNoYTI1Ni1pdGVyYXRpdmU6IC0gICAgICAgICAgICAgICAgICAxNDEuOW1zICsvLSAwLjUlICAg
IDE0MS45bXMgKy8tIDAuNiUg
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105028</attachid>
            <date>2011-08-24 11:26:42 -0700</date>
            <delta_ts>2011-08-24 14:57:07 -0700</delta_ts>
            <desc>new and improved patch</desc>
            <filename>bug-66571-20110824112641.patch</filename>
            <type>text/plain</type>
            <size>17852</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM2MjYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTEtMDgtMjMgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRvcENhbGxGcmFtZSBmb3IgU3RhY2sgdHJhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
IFRvcENhbGxGcmFtZSB0byBKU0MgaW4gb3JkZXIgdG8gaGF2ZSB0aGF0IGluZm9ybWF0aW9uCisg
ICAgICAgIHdoZW4gYW4gZXJyb3IgaXMgdGhyb3duIHRvIGNyZWF0ZSBhIHN0YWNrIHRyYWNlLiBU
aGUgVG9wQ2FsbEZyYW1lIGlzCisgICAgICAgIHVwZGF0ZWQgdGhyb3VnaG91dCBzZWxlY3QgcG9p
bnRzIGluIHRoZSBJbnRlcnByZXRlciBhbmQgdGhlIEpTQy4KKworICAgICAgICAqIGludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZENh
bGxGcmFtZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0aHJvd0V4Y2VwdGlvbik6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJw
cmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
b25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6OlRvcENh
bGxGcmFtZVNldHRlcjo6VG9wQ2FsbEZyYW1lU2V0dGVyKToKKyAgICAgICAgKEpTQzo6VG9wQ2Fs
bEZyYW1lU2V0dGVyOjp+VG9wQ2FsbEZyYW1lU2V0dGVyKToKKyAgICAgICAgKiBqaXQvSklULmg6
CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjp1
cGRhdGVUb3BDYWxsRnJhbWUpOgorICAgICAgICAqIGppdC9KSVRTdHViQ2FsbC5oOgorICAgICAg
ICAoSlNDOjpKSVRTdHViQ2FsbDo6Y2FsbCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoK
KyAgICAgICAgKEpTQzo6dGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKToKKyAgICAgICAgKEpTQzo6
REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcml0eUNoZWNrRm9yKToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
RGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgor
CiAyMDExLTA4LTIzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
IAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzNDcK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDgsNiArNjA4LDcgQEAg
TkVWRVJfSU5MSU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnVud2luZENhbAogICAgIH0KIAogICAgIENh
bGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7CisgICAgY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWU7CiAgICAgaWYg
KGNhbGxlckZyYW1lLT5oYXNIb3N0Q2FsbEZyYW1lRmxhZygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTg4MSw2ICs4ODIsNyBAQCBmYWlsZWRKU09OUDoKICAgICBBU1NFUlQoY29kZUJs
b2NrLT5tX251bVBhcmFtZXRlcnMgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAg
ICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgQ2FsbEZyYW1l
Ojpub0NhbGxlcigpLCBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycywgMCk7CiAgICAgbmV3Q2Fs
bEZyYW1lLT51bmNoZWNrZWRSKG5ld0NhbGxGcmFtZS0+aG9zdFRoaXNSZWdpc3RlcigpKSA9IEpT
VmFsdWUodGhpc09iaik7CisgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxs
RnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAogICAgIFByb2ZpbGVyKiogcHJv
ZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAgICAgaWYgKCpw
cm9maWxlcikKQEAgLTk1NCw2ICs5NTYsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
Q2FsbChDYWxsRnJhCiAKICAgICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywg
MCwgY2FsbERhdGFTY29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVGbGFnKCks
IGFyZ0NvdW50LCBmdW5jdGlvbik7CiAKKyAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENh
bGxGcmFtZShjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKKwogICAgICAg
ICBQcm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5j
ZSgpOwogICAgICAgICBpZiAoKnByb2ZpbGVyKQogICAgICAgICAgICAgKCpwcm9maWxlciktPndp
bGxFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwpAQCAtOTg0LDYgKzk4OCw4IEBAIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICBuZXdDYWxsRnJhbWUgPSBD
YWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgcmVnaXN0ZXJPZmZz
ZXQpOwogICAgIG5ld0NhbGxGcmFtZS0+aW5pdCgwLCAwLCBzY29wZUNoYWluLCBjYWxsRnJhbWUt
PmFkZEhvc3RDYWxsRnJhbWVGbGFnKCksIGFyZ0NvdW50LCBmdW5jdGlvbik7CiAKKyAgICBUb3BD
YWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdD
YWxsRnJhbWUpOworCiAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNj
b3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29wZUNoYWluLT5nbG9iYWxPYmplY3QuZ2V0
KCkpOwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UoKTsKQEAgLTEwNDgsNiArMTA1NCw4IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRl
cjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIAogICAgICAgICBuZXdDYWxsRnJhbWUtPmluaXQobmV3Q29k
ZUJsb2NrLCAwLCBjb25zdHJ1Y3REYXRhU2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2Fs
bEZyYW1lRmxhZygpLCBhcmdDb3VudCwgY29uc3RydWN0b3IpOwogCisgICAgICAgIFRvcENhbGxG
cmFtZVNldHRlciB0b3BDYWxsRnJhbWUoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIG5ld0NhbGxG
cmFtZSk7CisKICAgICAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVk
UHJvZmlsZXJSZWZlcmVuY2UoKTsKICAgICAgICAgaWYgKCpwcm9maWxlcikKICAgICAgICAgICAg
ICgqcHJvZmlsZXIpLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVjdG9yKTsKQEAgLTEw
ODEsNiArMTA4OSw4IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgK
ICAgICBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWUtPnJlZ2lz
dGVycygpICsgcmVnaXN0ZXJPZmZzZXQpOwogICAgIG5ld0NhbGxGcmFtZS0+aW5pdCgwLCAwLCBz
Y29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVGbGFnKCksIGFyZ0NvdW50LCBj
b25zdHJ1Y3Rvcik7CiAKKyAgICBUb3BDYWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxsRnJhbWUpOworCiAgICAgRHluYW1pY0dsb2JhbE9i
amVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29w
ZUNoYWluLT5nbG9iYWxPYmplY3QuZ2V0KCkpOwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9
IFByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKQEAgLTExNDMsNiArMTE1Myw3
IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0ZXI6OnByZXBhcmVGb3IKICAgICAgICAgcmV0
dXJuIENhbGxGcmFtZUNsb3N1cmUoKTsKICAgICB9CiAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNv
ZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2FsbEZyYW1lRmxhZygp
LCBhcmdjLCBmdW5jdGlvbik7ICAKKyAgICBzY29wZUNoYWluLT5nbG9iYWxEYXRhLT50b3BDYWxs
RnJhbWUgPSBuZXdDYWxsRnJhbWU7CiAgICAgQ2FsbEZyYW1lQ2xvc3VyZSByZXN1bHQgPSB7IGNh
bGxGcmFtZSwgbmV3Q2FsbEZyYW1lLCBmdW5jdGlvbiwgRnVuY3Rpb25FeGVjdXRhYmxlLCBzY29w
ZUNoYWluLT5nbG9iYWxEYXRhLCBvbGRFbmQsIHNjb3BlQ2hhaW4sIGNvZGVCbG9jay0+bV9udW1Q
YXJhbWV0ZXJzLCBhcmdjIH07CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNTAsNiArMTE2
MSw3IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0ZXI6OnByZXBhcmVGb3IKIEpTVmFsdWUg
SW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSkgCiB7CiAgICAg
QVNTRVJUKCFjbG9zdXJlLm9sZENhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVz
eSgpKTsKKyAgICBBU1NFUlQoY2xvc3VyZS5nbG9iYWxEYXRhLT50b3BDYWxsRnJhbWUgPT0gY2xv
c3VyZS5uZXdDYWxsRnJhbWUpOwogICAgIGlmIChjbG9zdXJlLm9sZENhbGxGcmFtZS0+Z2xvYmFs
RGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAg
Y2xvc3VyZS5yZXNldENhbGxGcmFtZSgpOwpAQCAtMTE4NCw2ICsxMTk2LDcgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbAogCiB2b2lkIEludGVycHJldGVyOjplbmRS
ZXBlYXRDYWxsKENhbGxGcmFtZUNsb3N1cmUmIGNsb3N1cmUpCiB7CisgICAgY2xvc3VyZS5nbG9i
YWxEYXRhLT50b3BDYWxsRnJhbWUgPSBjbG9zdXJlLm9sZENhbGxGcmFtZTsKICAgICBtX3JlZ2lz
dGVyRmlsZS5zaHJpbmsoY2xvc3VyZS5vbGRFbmQpOwogfQogCkBAIC0xMjYzLDYgKzEyNzYsOCBA
QCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhCiAgICAgbmV3Q2FsbEZy
YW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2Fs
bEZyYW1lRmxhZygpLCBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycywgMCk7CiAgICAgbmV3Q2Fs
bEZyYW1lLT51bmNoZWNrZWRSKG5ld0NhbGxGcmFtZS0+aG9zdFRoaXNSZWdpc3RlcigpKSA9IHRo
aXNWYWx1ZTsKIAorICAgIFRvcENhbGxGcmFtZVNldHRlciB0b3BDYWxsRnJhbWUoY2FsbEZyYW1l
LT5nbG9iYWxEYXRhKCksIG5ld0NhbGxGcmFtZSk7CisKICAgICBQcm9maWxlcioqIHByb2ZpbGVy
ID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwogICAgIGlmICgqcHJvZmls
ZXIpCiAgICAgICAgICgqcHJvZmlsZXIpLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGV2YWwtPnNv
dXJjZVVSTCgpLCBldmFsLT5saW5lTm8oKSk7CkBAIC0xNTg5LDkgKzE2MDQsMTIgQEAgSlNWYWx1
ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgIHJldHVybiBKU1ZhbHVlKCk7
CiAjZWxzZQogCisgICAgQVNTRVJUKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFt
ZSA9PSBjYWxsRnJhbWUpOworCiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmNhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpOwogICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWU7CiAgICAgSGFu
ZGxlckluZm8qIGhhbmRsZXIgPSAwOworICAgIENhbGxGcmFtZSoqIHRvcENhbGxGcmFtZVNsb3Qg
PSAmZ2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lOwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEluc3RydWN0aW9uKiB2UEMgPSBjb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CkBAIC00MjA1LDYgKzQyMjMsNyBAQCBza2lwX2lk
X2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgY2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywg
dlBDICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsKSwgY2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91
c0NhbGxGcmFtZSwgYXJnQ291bnQsIGFzRnVuY3Rpb24odikpOwogICAgICAgICAgICAgY29kZUJs
b2NrID0gbmV3Q29kZUJsb2NrOwogICAgICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxs
RnJhbWUtPmNvZGVCbG9jaygpKTsKKyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2Fs
bEZyYW1lOwogICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5i
ZWdpbigpOwogCiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKQEAgLTQyMjMsMTEgKzQyNDIsMTIg
QEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbmV3
Q2FsbEZyYW1lLT5pbml0KDAsIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCksIHNjb3BlQ2hh
aW4sIGNhbGxGcmFtZSwgYXJnQ291bnQsIGFzT2JqZWN0KHYpKTsKLQogICAgICAgICAgICAgSlNW
YWx1ZSByZXR1cm5WYWx1ZTsKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAqdG9wQ2Fs
bEZyYW1lU2xvdCA9IG5ld0NhbGxGcmFtZTsKICAgICAgICAgICAgICAgICBTYW1wbGluZ1Rvb2w6
Okhvc3RDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24obmV3Q2FsbEZyYW1lKSk7CisgICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBj
YWxsRnJhbWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9O
KCk7CiAKQEAgLTQzNzMsNiArNDM5Myw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAg
ICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2NrLCB2UEMgKyBPUENPREVfTEVOR1RIKG9w
X2NhbGxfdmFyYXJncyksIGNhbGxEYXRhU2NvcGVDaGFpbiwgcHJldmlvdXNDYWxsRnJhbWUsIGFy
Z0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVC
bG9jazsKICAgICAgICAgICAgIEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKSk7CisgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAg
ICAgICAgIHZQQyA9IG5ld0NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICAg
ICAgICAgIAogI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCkBAIC00MzkzLDggKzQ0MTQsMTAgQEAg
c2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSBy
ZXR1cm5WYWx1ZTsKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAqdG9wQ2FsbEZyYW1l
U2xvdCA9IG5ld0NhbGxGcmFtZTsKICAgICAgICAgICAgICAgICBTYW1wbGluZ1Rvb2w6Okhvc3RD
YWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3
Q2FsbEZyYW1lKSk7CisgICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJh
bWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAg
ICAgICAgICAgICAKQEAgLTQ0NzYsMTAgKzQ0OTksMTEgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoK
IAogICAgICAgICB2UEMgPSBjYWxsRnJhbWUtPnJldHVyblZQQygpOwogICAgICAgICBjYWxsRnJh
bWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7Ci0gICAgICAgIAorCiAgICAgICAgIGlmIChj
YWxsRnJhbWUtPmhhc0hvc3RDYWxsRnJhbWVGbGFnKCkpCiAgICAgICAgICAgICByZXR1cm4gcmV0
dXJuVmFsdWU7CiAKKyAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAg
ICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKICAgICAgICAgY29kZUJsb2Nr
ID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKQEAgLTQ1MjEsNiArNDU0NSw3IEBAIHNraXBfaWRfY3Vz
dG9tX3NlbGY6CiAgICAgICAgIGlmIChjYWxsRnJhbWUtPmhhc0hvc3RDYWxsRnJhbWVGbGFnKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAKKyAgICAgICAgKnRvcENhbGxGcmFt
ZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5W
YWx1ZTsKICAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAg
ICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKQEAgLTQ2OTQs
NiArNDcxOSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAKICAgICAgICAgICAgIGNhbGxGcmFt
ZS0+aW5pdChuZXdDb2RlQmxvY2ssIHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY29uc3RydWN0KSwg
Y2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91c0NhbGxGcmFtZSwgYXJnQ291bnQsIGFzRnVuY3Rp
b24odikpOwogICAgICAgICAgICAgY29kZUJsb2NrID0gbmV3Q29kZUJsb2NrOworICAgICAgICAg
ICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2UEMgPSBuZXdD
b2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFU
UykKICAgICAgICAgICAgIE9wY29kZVN0YXRzOjpyZXNldExhc3RJbnN0cnVjdGlvbigpOwpAQCAt
NDcxMyw4ICs0NzM5LDEwIEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAKICAgICAgICAgICAgIEpT
VmFsdWUgcmV0dXJuVmFsdWU7CiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKnRvcENh
bGxGcmFtZVNsb3QgPSBuZXdDYWxsRnJhbWU7CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29s
OjpIb3N0Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7CisgICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNs
b3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhD
RVBUSU9OKCk7CiAgICAgICAgICAgICBmdW5jdGlvblJldHVyblZhbHVlID0gcmV0dXJuVmFsdWU7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMjQgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFdpbGxFeGVjdXRlU3RhdGVtZW50CiAgICAgfTsKIAorICAgIGNs
YXNzIFRvcENhbGxGcmFtZVNldHRlciB7CisgICAgcHVibGljOgorICAgICAgICBUb3BDYWxsRnJh
bWVTZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9iYWwsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAg
ICAgICAgICAgOiBnbG9iYWxEYXRhKGdsb2JhbCkKKyAgICAgICAgICAgICwgb2xkQ2FsbEZyYW1l
KGdsb2JhbC50b3BDYWxsRnJhbWUpIAorICAgICAgICB7CisgICAgICAgICAgICBnbG9iYWwudG9w
Q2FsbEZyYW1lID0gY2FsbEZyYW1lOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB+VG9w
Q2FsbEZyYW1lU2V0dGVyKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsb2JhbERhdGEudG9w
Q2FsbEZyYW1lID0gb2xkQ2FsbEZyYW1lOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAg
ICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhOworICAgICAgICBDYWxsRnJhbWUqIG9sZENhbGxG
cmFtZTsKKyAgICB9OworCiAgICAgZW51bSB7IE1heExhcmdlVGhyZWFkUmVlbnRyeURlcHRoID0g
MjU2LCBNYXhTbWFsbFRocmVhZFJlZW50cnlEZXB0aCA9IDMyIH07CiAKICAgICBjbGFzcyBJbnRl
cnByZXRlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDkzNjIwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcw
LDcgKzM3MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcp
CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxs
ID0gMzc7CiAjZWxzZQotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJ
ZFNsb3dDYXNlQ2FsbCA9IDI3OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0
R2V0QnlJZFNsb3dDYXNlQ2FsbCA9IDMzOwogI2VuZGlmCiAgICAgICAgIHN0YXRpYyBjb25zdCBp
bnQgcGF0Y2hPZmZzZXRPcENhbGxDb21wYXJlVG9KdW1wID0gNjsKIApAQCAtNDI4LDcgKzQyOCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCiAgICAgICAg
ICNlcnJvciAiT1BDT0RFX1NBTVBMSU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgogI2Vsc2UKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSAz
MDsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNh
bGwgPSA0MDsKICNlbmRpZgogICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0T3BD
YWxsQ29tcGFyZVRvSnVtcCA9IDE2OwogCkBAIC02MDYsNyArNjA2LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKICAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA2NDsKICNlbHNlCi0gICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0gNDE7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0gNTQ7
CiAjZW5kaWYKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE9wQ2FsbENvbXBh
cmVUb0p1bXAgPSA5OwogCkBAIC05NjEsNiArOTYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgdm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKICAgICAgICAgdm9pZCByZXN0
b3JlQXJndW1lbnRSZWZlcmVuY2VGb3JUcmFtcG9saW5lKCk7CisgICAgICAgIHZvaWQgdXBkYXRl
VG9wQ2FsbEZyYW1lKCk7CiAKICAgICAgICAgQ2FsbCBlbWl0TmFrZWRDYWxsKENvZGVQdHIgZnVu
Y3Rpb24gPSBDb2RlUHRyKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZU1ldGhvZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZU1ldGhvZHMuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDYgKzI1
MywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0b3JlQXJndW1lbnRSCiAgICAgcG9r
ZShjYWxsRnJhbWVSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCBjYWxsRnJhbWUpIC8gc2l6ZW9mKHZvaWQqKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBK
SVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSgpCit7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0
ZXIsICZtX2dsb2JhbERhdGEtPnRvcENhbGxGcmFtZSk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9p
ZCBKSVQ6OnJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZUZvclRyYW1wb2xpbmUoKQogewogI2lmIENQ
VShYODYpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJDYWxsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCShyZXZp
c2lvbiA5MzYyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YkNhbGwuaAko
d29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlm
CiAKICAgICAgICAgICAgIG1faml0LT5yZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKKyAgICAg
ICAgICAgIG1faml0LT51cGRhdGVUb3BDYWxsRnJhbWUoKTsKICAgICAgICAgICAgIEpJVDo6Q2Fs
bCBjYWxsID0gbV9qaXQtPmNhbGwoKTsKICAgICAgICAgICAgIG1faml0LT5tX2NhbGxzLmFwcGVu
ZChDYWxsUmVjb3JkKGNhbGwsIG1faml0LT5tX2J5dGVjb2RlT2Zmc2V0LCBtX3N0dWIudmFsdWUo
KSkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNp
b24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA0Niw2ICsxMDQ2LDE1IEBAIHN0YXRpYyBFeGNlcHRpb25IYW5kbGVy
IGppdFRocm93KEpTR2xvYmEKICAgICByZXR1cm4gZXhjZXB0aW9uSGFuZGxlcjsKIH0KIAorLy8g
SGVscGVyIGZ1bmN0aW9uIGZvciBKSVQgc3R1YnMgdGhhdCBtYXkgdGhyb3cgYW4gZXhjZXB0aW9u
IGluIHRoZSBtaWRkbGUgb2YKKy8vIHByb2Nlc3NpbmcgYSBmdW5jdGlvbiBjYWxsLiBUaGlzIGZ1
bmN0aW9uIHJvbGxzIGJhY2sgdGhlIHJlZ2lzdGVyIGZpbGUgdG8KKy8vIG91ciBjYWxsZXIsIHNv
IGV4Y2VwdGlvbiBwcm9jZXNzaW5nIGNhbiBwcm9jZWVkIGZyb20gYSB2YWxpZCBzdGF0ZS4KK3N0
YXRpYyBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbkhhbmRsZXIgdGhyb3dFeGNlcHRpb25Gcm9tT3BD
YWxsKENhbGxGcmFtZSogb2xkQ2FsbEZyYW1lLCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSkKK3sK
KyAgICBvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBvbGRDYWxsRnJh
bWU7CisgICAgcmV0dXJuIGppdFRocm93KCZvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgb2xk
Q2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgUmV0dXJu
QWRkcmVzc1B0cihuZXdDYWxsRnJhbWUtPnJldHVyblBDKCkpKTsKK30KKwogI2lmIENQVShBUk1f
VEhVTUIyKSAmJiBDT01QSUxFUihHQ0MpCiAKICNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04o
cnR5cGUsIG9wKSBcCkBAIC0xMzUwLDEwICsxMzU5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04o
dm9pZCosIHJlZ2lzdGVyX2ZpbAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFt
ZS5jYWxsRnJhbWU7CiAKICAgICBpZiAoVU5MSUtFTFkoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxl
LT5ncm93KCZjYWxsRnJhbWUtPnJlZ2lzdGVycygpW2NhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzXSkpKSB7Ci0gICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJldmlv
dXMgY2FsbCBmcmFtZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQotICAg
ICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICBDYWxsRnJhbWUq
IG9sZENhbGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICAgICAgRXhjZXB0
aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRD
YWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBSZXR1cm5B
ZGRyZXNzUHRyKGNhbGxGcmFtZS0+cmV0dXJuUEMoKSkpOworICAgICAgICBFeGNlcHRpb25IYW5k
bGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwoY2FsbEZyYW1lLT5jYWxsZXJG
cmFtZSgpLCBjYWxsRnJhbWUpOwogICAgICAgICBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyhoYW5k
bGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgIGNhbGxGcmFtZSA9IGhhbmRsZXIuY2FsbEZyYW1l
OwogICAgIH0KQEAgLTE5NTAsOSArMTk1Niw3IEBAIGlubGluZSB2b2lkKiBhcml0eUNoZWNrRm9y
KEpJVFN0YWNrRnJhbWUKICAgICAgICAgciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBudW1Q
YXJhbWV0ZXJzOwogICAgICAgICBSZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+
bV9udW1DYWxsZWVSZWdpc3RlcnM7CiAgICAgICAgIGlmICghc3RhY2tGcmFtZS5yZWdpc3RlckZp
bGUtPmdyb3cobmV3RW5kKSkgewotICAgICAgICAgICAgLy8gUmV3aW5kIHRvIHRoZSBwcmV2aW91
cyBjYWxsIGZyYW1lIGJlY2F1c2Ugb3BfY2FsbCBhbHJlYWR5IG9wdGltaXN0aWNhbGx5Ci0gICAg
ICAgICAgICAvLyBtb3ZlZCB0aGUgY2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICAgICAgRXhj
ZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBv
bGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBwYyk7
CisgICAgICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZy
b21PcENhbGwob2xkQ2FsbEZyYW1lLCBjYWxsRnJhbWUpOwogICAgICAgICAgICAgc3R1YlJldHVy
bkFkZHJlc3MgPSBSZXR1cm5BZGRyZXNzUHRyKGhhbmRsZXIuY2F0Y2hSb3V0aW5lKTsKICAgICAg
ICAgICAgIHJldHVybiBoYW5kbGVyLmNhbGxGcmFtZTsKICAgICAgICAgfQpAQCAtMTk2NSw5ICsx
OTY5LDcgQEAgaW5saW5lIHZvaWQqIGFyaXR5Q2hlY2tGb3IoSklUU3RhY2tGcmFtZQogICAgICAg
ICByID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIG9taXR0ZWRBcmdDb3VudDsKICAgICAgICAg
UmVnaXN0ZXIqIG5ld0VuZCA9IHIgKyBuZXdDb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJz
OwogICAgICAgICBpZiAoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KG5ld0VuZCkpIHsK
LSAgICAgICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJldmlvdXMgY2FsbCBmcmFtZSBiZWNhdXNl
IG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQotICAgICAgICAgICAgLy8gbW92ZWQgdGhl
IGNhbGwgZnJhbWUgZm9yd2FyZC4KLSAgICAgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIgaGFuZGxl
ciA9IGppdFRocm93KHN0YWNrRnJhbWUuZ2xvYmFsRGF0YSwgb2xkQ2FsbEZyYW1lLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgcGMpOworICAgICAgICAgICAgRXhjZXB0
aW9uSGFuZGxlciBoYW5kbGVyID0gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKG9sZENhbGxGcmFt
ZSwgY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHN0dWJSZXR1cm5BZGRyZXNzID0gUmV0dXJuQWRk
cmVzc1B0cihoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAgICAgICAgICAgICByZXR1cm4gaGFuZGxl
ci5jYWxsRnJhbWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjIsNiArMTYyLDcgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMoKQogSlNHbG9iYWxE
YXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUsIFRocmVhZFN0
YWNrVHlwZSB0aHJlYWRTdGFja1R5cGUsIEhlYXBTaXplIGhlYXBTaXplKQogICAgIDogZ2xvYmFs
RGF0YVR5cGUoZ2xvYmFsRGF0YVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCisgICAgLCB0b3BD
YWxsRnJhbWUoQ2FsbEZyYW1lOjpub0NhbGxlcigpKQogICAgICwgYXJyYXlDb25zdHJ1Y3RvclRh
YmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5Q29uc3RydWN0b3JUYWJsZSkpCiAgICAg
LCBhcnJheVByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5UHJvdG90
eXBlVGFibGUpKQogICAgICwgYm9vbGVhblByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRhYmxl
PihKU0M6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZSkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAt
MTM1LDYgKzEzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEdsb2JhbERhdGFUeXBl
IGdsb2JhbERhdGFUeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOworICAgICAg
ICBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZTsKIAogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFy
cmF5Q29uc3RydWN0b3JUYWJsZTsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBhcnJheVByb3Rv
dHlwZVRhYmxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105076</attachid>
            <date>2011-08-24 14:57:12 -0700</date>
            <delta_ts>2011-08-24 18:25:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-66571-20110824145711.patch</filename>
            <type>text/plain</type>
            <size>18116</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM2MjYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTEtMDgtMjMgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRvcENhbGxGcmFtZSBmb3IgU3RhY2sgdHJhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
IFRvcENhbGxGcmFtZSB0byBKU0MgaW4gb3JkZXIgdG8gaGF2ZSB0aGF0IGluZm9ybWF0aW9uCisg
ICAgICAgIHdoZW4gYW4gZXJyb3IgaXMgdGhyb3duIHRvIGNyZWF0ZSBhIHN0YWNrIHRyYWNlLiBU
aGUgVG9wQ2FsbEZyYW1lIGlzCisgICAgICAgIHVwZGF0ZWQgdGhyb3VnaG91dCBzZWxlY3QgcG9p
bnRzIGluIHRoZSBJbnRlcnByZXRlciBhbmQgdGhlIEpTQy4KKworICAgICAgICAqIGludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZENh
bGxGcmFtZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0aHJvd0V4Y2VwdGlvbik6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJw
cmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
b25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6OlRvcENh
bGxGcmFtZVNldHRlcjo6VG9wQ2FsbEZyYW1lU2V0dGVyKToKKyAgICAgICAgKEpTQzo6VG9wQ2Fs
bEZyYW1lU2V0dGVyOjp+VG9wQ2FsbEZyYW1lU2V0dGVyKToKKyAgICAgICAgKiBqaXQvSklULmg6
CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjp1
cGRhdGVUb3BDYWxsRnJhbWUpOgorICAgICAgICAqIGppdC9KSVRTdHViQ2FsbC5oOgorICAgICAg
ICAoSlNDOjpKSVRTdHViQ2FsbDo6Y2FsbCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoK
KyAgICAgICAgKEpTQzo6dGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKToKKyAgICAgICAgKEpTQzo6
REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcml0eUNoZWNrRm9yKToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
RGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgor
CiAyMDExLTA4LTIzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
IAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzNDcK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDgsNiArNjA4LDcgQEAg
TkVWRVJfSU5MSU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnVud2luZENhbAogICAgIH0KIAogICAgIENh
bGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7CisgICAgY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWU7CiAgICAgaWYg
KGNhbGxlckZyYW1lLT5oYXNIb3N0Q2FsbEZyYW1lRmxhZygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTg4MSw2ICs4ODIsNyBAQCBmYWlsZWRKU09OUDoKICAgICBBU1NFUlQoY29kZUJs
b2NrLT5tX251bVBhcmFtZXRlcnMgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAg
ICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgQ2FsbEZyYW1l
Ojpub0NhbGxlcigpLCBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycywgMCk7CiAgICAgbmV3Q2Fs
bEZyYW1lLT51bmNoZWNrZWRSKG5ld0NhbGxGcmFtZS0+aG9zdFRoaXNSZWdpc3RlcigpKSA9IEpT
VmFsdWUodGhpc09iaik7CisgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxs
RnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAogICAgIFByb2ZpbGVyKiogcHJv
ZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAgICAgaWYgKCpw
cm9maWxlcikKQEAgLTk1NCw2ICs5NTYsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
Q2FsbChDYWxsRnJhCiAKICAgICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywg
MCwgY2FsbERhdGFTY29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVGbGFnKCks
IGFyZ0NvdW50LCBmdW5jdGlvbik7CiAKKyAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENh
bGxGcmFtZShjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKKwogICAgICAg
ICBQcm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5j
ZSgpOwogICAgICAgICBpZiAoKnByb2ZpbGVyKQogICAgICAgICAgICAgKCpwcm9maWxlciktPndp
bGxFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwpAQCAtOTg0LDYgKzk4OCw4IEBAIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICBuZXdDYWxsRnJhbWUgPSBD
YWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgcmVnaXN0ZXJPZmZz
ZXQpOwogICAgIG5ld0NhbGxGcmFtZS0+aW5pdCgwLCAwLCBzY29wZUNoYWluLCBjYWxsRnJhbWUt
PmFkZEhvc3RDYWxsRnJhbWVGbGFnKCksIGFyZ0NvdW50LCBmdW5jdGlvbik7CiAKKyAgICBUb3BD
YWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdD
YWxsRnJhbWUpOworCiAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNj
b3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29wZUNoYWluLT5nbG9iYWxPYmplY3QuZ2V0
KCkpOwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UoKTsKQEAgLTEwNDgsNiArMTA1NCw4IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRl
cjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIAogICAgICAgICBuZXdDYWxsRnJhbWUtPmluaXQobmV3Q29k
ZUJsb2NrLCAwLCBjb25zdHJ1Y3REYXRhU2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2Fs
bEZyYW1lRmxhZygpLCBhcmdDb3VudCwgY29uc3RydWN0b3IpOwogCisgICAgICAgIFRvcENhbGxG
cmFtZVNldHRlciB0b3BDYWxsRnJhbWUoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIG5ld0NhbGxG
cmFtZSk7CisKICAgICAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVk
UHJvZmlsZXJSZWZlcmVuY2UoKTsKICAgICAgICAgaWYgKCpwcm9maWxlcikKICAgICAgICAgICAg
ICgqcHJvZmlsZXIpLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVjdG9yKTsKQEAgLTEw
ODEsNiArMTA4OSw4IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgK
ICAgICBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWUtPnJlZ2lz
dGVycygpICsgcmVnaXN0ZXJPZmZzZXQpOwogICAgIG5ld0NhbGxGcmFtZS0+aW5pdCgwLCAwLCBz
Y29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVGbGFnKCksIGFyZ0NvdW50LCBj
b25zdHJ1Y3Rvcik7CiAKKyAgICBUb3BDYWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxsRnJhbWUpOworCiAgICAgRHluYW1pY0dsb2JhbE9i
amVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29w
ZUNoYWluLT5nbG9iYWxPYmplY3QuZ2V0KCkpOwogCiAgICAgUHJvZmlsZXIqKiBwcm9maWxlciA9
IFByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKQEAgLTExNDMsNiArMTE1Myw3
IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0ZXI6OnByZXBhcmVGb3IKICAgICAgICAgcmV0
dXJuIENhbGxGcmFtZUNsb3N1cmUoKTsKICAgICB9CiAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNv
ZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2FsbEZyYW1lRmxhZygp
LCBhcmdjLCBmdW5jdGlvbik7ICAKKyAgICBzY29wZUNoYWluLT5nbG9iYWxEYXRhLT50b3BDYWxs
RnJhbWUgPSBuZXdDYWxsRnJhbWU7CiAgICAgQ2FsbEZyYW1lQ2xvc3VyZSByZXN1bHQgPSB7IGNh
bGxGcmFtZSwgbmV3Q2FsbEZyYW1lLCBmdW5jdGlvbiwgRnVuY3Rpb25FeGVjdXRhYmxlLCBzY29w
ZUNoYWluLT5nbG9iYWxEYXRhLCBvbGRFbmQsIHNjb3BlQ2hhaW4sIGNvZGVCbG9jay0+bV9udW1Q
YXJhbWV0ZXJzLCBhcmdjIH07CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNTYsNyArMTE2
Nyw5IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICBQcm9m
aWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwog
ICAgIGlmICgqcHJvZmlsZXIpCiAgICAgICAgICgqcHJvZmlsZXIpLT53aWxsRXhlY3V0ZShjbG9z
dXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7Ci0gICAgCisKKyAgICBUb3BDYWxs
RnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKCpjbG9zdXJlLmdsb2JhbERhdGEsIGNsb3N1cmUubmV3
Q2FsbEZyYW1lKTsKKwogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgU2FtcGxp
bmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKQEAgLTExNzYs
NyArMTE4OSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICNl
bmRpZgogICAgICAgICBtX3JlZW50cnlEZXB0aC0tOwogICAgIH0KLSAgICAKKwogICAgIGlmICgq
cHJvZmlsZXIpCiAgICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKGNsb3N1cmUub2xkQ2Fs
bEZyYW1lLCBjbG9zdXJlLmZ1bmN0aW9uKTsKICAgICByZXR1cm4gY2hlY2tlZFJldHVybihyZXN1
bHQpOwpAQCAtMTE4NCw2ICsxMTk3LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShD
YWxsRnJhbWVDbAogCiB2b2lkIEludGVycHJldGVyOjplbmRSZXBlYXRDYWxsKENhbGxGcmFtZUNs
b3N1cmUmIGNsb3N1cmUpCiB7CisgICAgY2xvc3VyZS5nbG9iYWxEYXRhLT50b3BDYWxsRnJhbWUg
PSBjbG9zdXJlLm9sZENhbGxGcmFtZTsKICAgICBtX3JlZ2lzdGVyRmlsZS5zaHJpbmsoY2xvc3Vy
ZS5vbGRFbmQpOwogfQogCkBAIC0xMjYzLDYgKzEyNzcsOCBAQCBKU1ZhbHVlIEludGVycHJldGVy
OjpleGVjdXRlKEV2YWxFeGVjdXRhCiAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywg
MCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0Q2FsbEZyYW1lRmxhZygpLCBjb2RlQmxv
Y2stPm1fbnVtUGFyYW1ldGVycywgMCk7CiAgICAgbmV3Q2FsbEZyYW1lLT51bmNoZWNrZWRSKG5l
d0NhbGxGcmFtZS0+aG9zdFRoaXNSZWdpc3RlcigpKSA9IHRoaXNWYWx1ZTsKIAorICAgIFRvcENh
bGxGcmFtZVNldHRlciB0b3BDYWxsRnJhbWUoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIG5ld0Nh
bGxGcmFtZSk7CisKICAgICBQcm9maWxlcioqIHByb2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSgpOwogICAgIGlmICgqcHJvZmlsZXIpCiAgICAgICAgICgqcHJvZmls
ZXIpLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGV2YWwtPnNvdXJjZVVSTCgpLCBldmFsLT5saW5l
Tm8oKSk7CkBAIC0xNTg5LDkgKzE2MDUsMTIgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0
ZUV4ZWN1dGUoRXhlYwogICAgIHJldHVybiBKU1ZhbHVlKCk7CiAjZWxzZQogCisgICAgQVNTRVJU
KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9PSBjYWxsRnJhbWUpOworCiAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpOwog
ICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWU7CiAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSAw
OworICAgIENhbGxGcmFtZSoqIHRvcENhbGxGcmFtZVNsb3QgPSAmZ2xvYmFsRGF0YS0+dG9wQ2Fs
bEZyYW1lOwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9j
aygpOwogICAgIEluc3RydWN0aW9uKiB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJl
Z2luKCk7CkBAIC00MjA1LDYgKzQyMjQsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAg
ICAgICAgY2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywgdlBDICsgT1BDT0RFX0xFTkdUSChv
cF9jYWxsKSwgY2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91c0NhbGxGcmFtZSwgYXJnQ291bnQs
IGFzRnVuY3Rpb24odikpOwogICAgICAgICAgICAgY29kZUJsb2NrID0gbmV3Q29kZUJsb2NrOwog
ICAgICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsK
KyAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAgICAgICAg
dlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogCiAjaWYgRU5BQkxF
KE9QQ09ERV9TVEFUUykKQEAgLTQyMjMsMTEgKzQyNDMsMTIgQEAgc2tpcF9pZF9jdXN0b21fc2Vs
ZjoKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KDAsIHZQ
QyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCksIHNjb3BlQ2hhaW4sIGNhbGxGcmFtZSwgYXJnQ291
bnQsIGFzT2JqZWN0KHYpKTsKLQogICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IG5ld0NhbGxG
cmFtZTsKICAgICAgICAgICAgICAgICBTYW1wbGluZ1Rvb2w6Okhvc3RDYWxsUmVjb3JkIGNhbGxS
ZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7Cisg
ICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAKQEAgLTQzNzMsNiArNDM5
NCw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQo
bmV3Q29kZUJsb2NrLCB2UEMgKyBPUENPREVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncyksIGNhbGxE
YXRhU2NvcGVDaGFpbiwgcHJldmlvdXNDYWxsRnJhbWUsIGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYp
KTsKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKICAgICAgICAgICAgIEFT
U0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7CisgICAgICAgICAgICAq
dG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZQQyA9IG5ld0NvZGVC
bG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICAgICAgICAgIAogI2lmIEVOQUJMRShP
UENPREVfU1RBVFMpCkBAIC00MzkzLDggKzQ0MTUsMTAgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZTsKICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IG5ld0NhbGxGcmFtZTsK
ICAgICAgICAgICAgICAgICBTYW1wbGluZ1Rvb2w6Okhvc3RDYWxsUmVjb3JkIGNhbGxSZWNvcmQo
bV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7CisgICAgICAg
ICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAgICAgICAgICAgICAKQEAgLTQ0NzYs
MTAgKzQ1MDAsMTEgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKIAogICAgICAgICB2UEMgPSBjYWxs
RnJhbWUtPnJldHVyblZQQygpOwogICAgICAgICBjYWxsRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxl
ckZyYW1lKCk7Ci0gICAgICAgIAorCiAgICAgICAgIGlmIChjYWxsRnJhbWUtPmhhc0hvc3RDYWxs
RnJhbWVGbGFnKCkpCiAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAKKyAgICAgICAg
KnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFs
dWUgPSByZXR1cm5WYWx1ZTsKICAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygp
KTsKQEAgLTQ1MjEsNiArNDU0Niw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIGlm
IChjYWxsRnJhbWUtPmhhc0hvc3RDYWxsRnJhbWVGbGFnKCkpCiAgICAgICAgICAgICByZXR1cm4g
cmV0dXJuVmFsdWU7CiAKKyAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAg
ICAgICAgIGZ1bmN0aW9uUmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKICAgICAgICAgY29kZUJs
b2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayA9
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKQEAgLTQ2OTQsNiArNDcyMCw3IEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAKICAgICAgICAgICAgIGNhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ss
IHZQQyArIE9QQ09ERV9MRU5HVEgob3BfY29uc3RydWN0KSwgY2FsbERhdGFTY29wZUNoYWluLCBw
cmV2aW91c0NhbGxGcmFtZSwgYXJnQ291bnQsIGFzRnVuY3Rpb24odikpOwogICAgICAgICAgICAg
Y29kZUJsb2NrID0gbmV3Q29kZUJsb2NrOworICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3Qg
PSBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2UEMgPSBuZXdDb2RlQmxvY2stPmluc3RydWN0aW9u
cygpLmJlZ2luKCk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKICAgICAgICAgICAgIE9wY29k
ZVN0YXRzOjpyZXNldExhc3RJbnN0cnVjdGlvbigpOwpAQCAtNDcxMyw4ICs0NzQwLDEwIEBAIHNr
aXBfaWRfY3VzdG9tX3NlbGY6CiAKICAgICAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWU7CiAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBuZXdDYWxs
RnJhbWU7CiAgICAgICAgICAgICAgICAgU2FtcGxpbmdUb29sOjpIb3N0Q2FsbFJlY29yZCBjYWxs
UmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1l
KSk7CisgICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAgICAgICAgICAg
ICBmdW5jdGlvblJldHVyblZhbHVlID0gcmV0dXJuVmFsdWU7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gOTM2MjAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMjQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdp
bGxFeGVjdXRlU3RhdGVtZW50CiAgICAgfTsKIAorICAgIGNsYXNzIFRvcENhbGxGcmFtZVNldHRl
ciB7CisgICAgcHVibGljOgorICAgICAgICBUb3BDYWxsRnJhbWVTZXR0ZXIoSlNHbG9iYWxEYXRh
JiBnbG9iYWwsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAgICAgICAgICAgOiBnbG9iYWxEYXRh
KGdsb2JhbCkKKyAgICAgICAgICAgICwgb2xkQ2FsbEZyYW1lKGdsb2JhbC50b3BDYWxsRnJhbWUp
IAorICAgICAgICB7CisgICAgICAgICAgICBnbG9iYWwudG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1l
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB+VG9wQ2FsbEZyYW1lU2V0dGVyKCkgCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGdsb2JhbERhdGEudG9wQ2FsbEZyYW1lID0gb2xkQ2FsbEZy
YW1lOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhOworICAgICAgICBDYWxsRnJhbWUqIG9sZENhbGxGcmFtZTsKKyAgICB9OworCiAgICAg
ZW51bSB7IE1heExhcmdlVGhyZWFkUmVlbnRyeURlcHRoID0gMjU2LCBNYXhTbWFsbFRocmVhZFJl
ZW50cnlEZXB0aCA9IDMyIH07CiAKICAgICBjbGFzcyBJbnRlcnByZXRlciB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDkzNjIwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDcgKzM3MCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCiAgICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0gMzc7CiAjZWxzZQotICAgICAg
ICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9IDI3Owor
ICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9
IDMzOwogI2VuZGlmCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRPcENhbGxD
b21wYXJlVG9KdW1wID0gNjsKIApAQCAtNDI4LDcgKzQyOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
I2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCiAgICAgICAgICNlcnJvciAiT1BDT0RFX1NBTVBM
SU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgogI2Vsc2UKLSAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSAzMDsKKyAgICAgICAgc3RhdGljIGNv
bnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA0MDsKICNlbmRpZgogICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0T3BDYWxsQ29tcGFyZVRvSnVtcCA9IDE2
OwogCkBAIC02MDYsNyArNjA2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKE9QQ09E
RV9TQU1QTElORykKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRT
bG93Q2FzZUNhbGwgPSA2NDsKICNlbHNlCi0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hP
ZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0gNDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
cGF0Y2hPZmZzZXRHZXRCeUlkU2xvd0Nhc2VDYWxsID0gNTQ7CiAjZW5kaWYKICAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBwYXRjaE9mZnNldE9wQ2FsbENvbXBhcmVUb0p1bXAgPSA5OwogCkBAIC05
NjEsNiArOTYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCByZXN0b3JlQXJn
dW1lbnRSZWZlcmVuY2UoKTsKICAgICAgICAgdm9pZCByZXN0b3JlQXJndW1lbnRSZWZlcmVuY2VG
b3JUcmFtcG9saW5lKCk7CisgICAgICAgIHZvaWQgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CiAKICAg
ICAgICAgQ2FsbCBlbWl0TmFrZWRDYWxsKENvZGVQdHIgZnVuY3Rpb24gPSBDb2RlUHRyKCkpOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAko
cmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1l
dGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDYgKzI1MywxMSBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgSklUOjpyZXN0b3JlQXJndW1lbnRSCiAgICAgcG9rZShjYWxsRnJhbWVSZWdpc3Rlciwg
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9m
KHZvaWQqKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OnVwZGF0ZVRvcENhbGxGcmFt
ZSgpCit7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX2dsb2JhbERhdGEtPnRv
cENhbGxGcmFtZSk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OnJlc3RvcmVBcmd1bWVu
dFJlZmVyZW5jZUZvclRyYW1wb2xpbmUoKQogewogI2lmIENQVShYODYpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCShyZXZpc2lvbiA5MzYyMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YkNhbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTcy
LDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlmCiAKICAgICAgICAgICAgIG1faml0
LT5yZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsKKyAgICAgICAgICAgIG1faml0LT51cGRhdGVU
b3BDYWxsRnJhbWUoKTsKICAgICAgICAgICAgIEpJVDo6Q2FsbCBjYWxsID0gbV9qaXQtPmNhbGwo
KTsKICAgICAgICAgICAgIG1faml0LT5tX2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwsIG1f
aml0LT5tX2J5dGVjb2RlT2Zmc2V0LCBtX3N0dWIudmFsdWUoKSkpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0Niw2
ICsxMDQ2LDE1IEBAIHN0YXRpYyBFeGNlcHRpb25IYW5kbGVyIGppdFRocm93KEpTR2xvYmEKICAg
ICByZXR1cm4gZXhjZXB0aW9uSGFuZGxlcjsKIH0KIAorLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBK
SVQgc3R1YnMgdGhhdCBtYXkgdGhyb3cgYW4gZXhjZXB0aW9uIGluIHRoZSBtaWRkbGUgb2YKKy8v
IHByb2Nlc3NpbmcgYSBmdW5jdGlvbiBjYWxsLiBUaGlzIGZ1bmN0aW9uIHJvbGxzIGJhY2sgdGhl
IHJlZ2lzdGVyIGZpbGUgdG8KKy8vIG91ciBjYWxsZXIsIHNvIGV4Y2VwdGlvbiBwcm9jZXNzaW5n
IGNhbiBwcm9jZWVkIGZyb20gYSB2YWxpZCBzdGF0ZS4KK3N0YXRpYyBBTFdBWVNfSU5MSU5FIEV4
Y2VwdGlvbkhhbmRsZXIgdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKENhbGxGcmFtZSogb2xkQ2Fs
bEZyYW1lLCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSkKK3sKKyAgICBvbGRDYWxsRnJhbWUtPmds
b2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBvbGRDYWxsRnJhbWU7CisgICAgcmV0dXJuIGppdFRo
cm93KCZvbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgb2xkQ2FsbEZyYW1lLCBjcmVhdGVTdGFj
a092ZXJmbG93RXJyb3Iob2xkQ2FsbEZyYW1lKSwgUmV0dXJuQWRkcmVzc1B0cihuZXdDYWxsRnJh
bWUtPnJldHVyblBDKCkpKTsKK30KKwogI2lmIENQVShBUk1fVEhVTUIyKSAmJiBDT01QSUxFUihH
Q0MpCiAKICNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUsIG9wKSBcCkBAIC0xMzUw
LDEwICsxMzU5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCosIHJlZ2lzdGVyX2ZpbAog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAKICAgICBp
ZiAoVU5MSUtFTFkoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KCZjYWxsRnJhbWUtPnJl
Z2lzdGVycygpW2NhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzXSkp
KSB7Ci0gICAgICAgIC8vIFJld2luZCB0byB0aGUgcHJldmlvdXMgY2FsbCBmcmFtZSBiZWNhdXNl
IG9wX2NhbGwgYWxyZWFkeSBvcHRpbWlzdGljYWxseQotICAgICAgICAvLyBtb3ZlZCB0aGUgY2Fs
bCBmcmFtZSBmb3J3YXJkLgotICAgICAgICBDYWxsRnJhbWUqIG9sZENhbGxGcmFtZSA9IGNhbGxG
cmFtZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0g
aml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0YWNr
T3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBSZXR1cm5BZGRyZXNzUHRyKGNhbGxGcmFtZS0+
cmV0dXJuUEMoKSkpOworICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4
Y2VwdGlvbkZyb21PcENhbGwoY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpLCBjYWxsRnJhbWUpOwog
ICAgICAgICBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyhoYW5kbGVyLmNhdGNoUm91dGluZSk7CiAg
ICAgICAgIGNhbGxGcmFtZSA9IGhhbmRsZXIuY2FsbEZyYW1lOwogICAgIH0KQEAgLTE5NTAsOSAr
MTk1Niw3IEBAIGlubGluZSB2b2lkKiBhcml0eUNoZWNrRm9yKEpJVFN0YWNrRnJhbWUKICAgICAg
ICAgciA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBudW1QYXJhbWV0ZXJzOwogICAgICAgICBS
ZWdpc3RlciogbmV3RW5kID0gciArIG5ld0NvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7
CiAgICAgICAgIGlmICghc3RhY2tGcmFtZS5yZWdpc3RlckZpbGUtPmdyb3cobmV3RW5kKSkgewot
ICAgICAgICAgICAgLy8gUmV3aW5kIHRvIHRoZSBwcmV2aW91cyBjYWxsIGZyYW1lIGJlY2F1c2Ug
b3BfY2FsbCBhbHJlYWR5IG9wdGltaXN0aWNhbGx5Ci0gICAgICAgICAgICAvLyBtb3ZlZCB0aGUg
Y2FsbCBmcmFtZSBmb3J3YXJkLgotICAgICAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVy
ID0gaml0VGhyb3coc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRDYWxsRnJhbWUsIGNyZWF0ZVN0
YWNrT3ZlcmZsb3dFcnJvcihvbGRDYWxsRnJhbWUpLCBwYyk7CisgICAgICAgICAgICBFeGNlcHRp
b25IYW5kbGVyIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwob2xkQ2FsbEZyYW1l
LCBjYWxsRnJhbWUpOwogICAgICAgICAgICAgc3R1YlJldHVybkFkZHJlc3MgPSBSZXR1cm5BZGRy
ZXNzUHRyKGhhbmRsZXIuY2F0Y2hSb3V0aW5lKTsKICAgICAgICAgICAgIHJldHVybiBoYW5kbGVy
LmNhbGxGcmFtZTsKICAgICAgICAgfQpAQCAtMTk2NSw5ICsxOTY5LDcgQEAgaW5saW5lIHZvaWQq
IGFyaXR5Q2hlY2tGb3IoSklUU3RhY2tGcmFtZQogICAgICAgICByID0gY2FsbEZyYW1lLT5yZWdp
c3RlcnMoKSArIG9taXR0ZWRBcmdDb3VudDsKICAgICAgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IHIg
KyBuZXdDb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOwogICAgICAgICBpZiAoIXN0YWNr
RnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KG5ld0VuZCkpIHsKLSAgICAgICAgICAgIC8vIFJld2lu
ZCB0byB0aGUgcHJldmlvdXMgY2FsbCBmcmFtZSBiZWNhdXNlIG9wX2NhbGwgYWxyZWFkeSBvcHRp
bWlzdGljYWxseQotICAgICAgICAgICAgLy8gbW92ZWQgdGhlIGNhbGwgZnJhbWUgZm9yd2FyZC4K
LSAgICAgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIgaGFuZGxlciA9IGppdFRocm93KHN0YWNrRnJh
bWUuZ2xvYmFsRGF0YSwgb2xkQ2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Iob2xk
Q2FsbEZyYW1lKSwgcGMpOworICAgICAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0g
dGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKG9sZENhbGxGcmFtZSwgY2FsbEZyYW1lKTsKICAgICAg
ICAgICAgIHN0dWJSZXR1cm5BZGRyZXNzID0gUmV0dXJuQWRkcmVzc1B0cihoYW5kbGVyLmNhdGNo
Um91dGluZSk7CiAgICAgICAgICAgICByZXR1cm4gaGFuZGxlci5jYWxsRnJhbWU7CiAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRh
LmNwcAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNiArMTYyLDcgQEAgdm9pZCBK
U0dsb2JhbERhdGE6OnN0b3JlVlB0cnMoKQogSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xv
YmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUsIFRocmVhZFN0YWNrVHlwZSB0aHJlYWRTdGFja1R5
cGUsIEhlYXBTaXplIGhlYXBTaXplKQogICAgIDogZ2xvYmFsRGF0YVR5cGUoZ2xvYmFsRGF0YVR5
cGUpCiAgICAgLCBjbGllbnREYXRhKDApCisgICAgLCB0b3BDYWxsRnJhbWUoQ2FsbEZyYW1lOjpu
b0NhbGxlcigpKQogICAgICwgYXJyYXlDb25zdHJ1Y3RvclRhYmxlKGZhc3ROZXc8SGFzaFRhYmxl
PihKU0M6OmFycmF5Q29uc3RydWN0b3JUYWJsZSkpCiAgICAgLCBhcnJheVByb3RvdHlwZVRhYmxl
KGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmFycmF5UHJvdG90eXBlVGFibGUpKQogICAgICwgYm9v
bGVhblByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OmJvb2xlYW5Qcm90b3R5
cGVUYWJsZSkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bERhdGEuaAkocmV2aXNpb24gOTM2MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIEdsb2JhbERhdGFUeXBlIGdsb2JhbERhdGFUeXBlOwogICAg
ICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOworICAgICAgICBDYWxsRnJhbWUqIHRvcENhbGxG
cmFtZTsKIAogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5Q29uc3RydWN0b3JUYWJsZTsK
ICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBhcnJheVByb3RvdHlwZVRhYmxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105085</attachid>
            <date>2011-08-24 15:38:28 -0700</date>
            <delta_ts>2011-08-24 15:38:28 -0700</delta_ts>
            <desc>new perf test results</desc>
            <filename>perf-tests-results.zip</filename>
            <type>application/zip</type>
            <size>13960</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">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
bVpvcrIlL/U7hzqyh/oormBowhhOYVN0QnLKtq57xmJUlsS+OiooNSLY9wwkSJaM6BV33J/1GyRk
jzkKnAZzfTu6yNvv0fuub+Hb1zeJtrismsK4l0ThuPcj29ZIm+LULbVhNcKPPq6KYU115Kl5mbPI
55rJiZv8CZW0XYDq/K4buXzLh8wit7b8X1BLBwjyT/OC3wIAAAkNAABQSwMECgAAAAAA7XsYPwAA
AAAAAAAAAAAAACAAEABwZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzL1VYDABndlVOvntV
TvUBUABQSwMEFAAIAAgAom4YPwAAAAAAAAAAAAAAACkAEABwZXJmLXRlc3RzLXJlc3VsdHMvdGVz
dC1yZXN1bHRzLy5EU19TdG9yZVVYDAALfVVOsGRVTvUBUADtl81KAzEURr87TmGkm4Abl3mBCu5c
hlIXrn0B+wdKByvtVFzOm+tN8ynTVqHtpra9BzInZHIzGQJJLgDpLka3gANQIDm7xK8ULBtkdEuL
LMcY4xUdDFFqzTgG4to5TDBDX5/N9etr/QYVPlA9lNPhoJwOYt/PFZZjrMe/ab3SUZ63jL/CHAuN
nGvkC0Y6ymyPWbTxjrs9o3adsWEYxnEjSUX7sNMwDOMfEvcHTwe6Tha+z+i8EeNoTwe6Thb2y+ic
LmhHezrQdTI3LWHyIfyyMEMRR3s67PTLhnE2XCS5eP7f/53/G4Zxwkjee+x18ZMQbBDPWq/l6TsA
qxcBtuXsG4/i60a7pwNdJ9tFwDAOxRdQSwcI/0jpAhEBAAAEGAAAUEsDBAoAAAAAAKB8GD8AAAAA
AAAAAAAAAAApABAAX19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy9VWAwA
C31VTgt9VU71ARQAUEsDBBQACAAIAKJuGD8AAAAAAAAAAAAAAAA0ABAAX19NQUNPU1gvcGVyZi10
ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uXy5EU19TdG9yZVVYDAALfVVOsGRVTvUBUABjYBVj
Z2BiYPBNTFbwD1aIUIACkBgDJxAbAbECEIP4QQxIwIEBOwAAUEsHCNyRj7goAAAAUgAAAFBLAwQU
AAgACABSVhg/AAAAAAAAAAAAAAAAMAAQAHBlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMv
a3Jha2VuLWNsZWFuLnR4dFVYDAALfVVO6zlVTvUBFACVlMtuwyAQRff+CjaRWlWmYMCPSl1211Uf
HzAxOKV1IAISNX/fOHZoHMeLsETnzuXOjHh+vukkby/vn68f7+hurcB4BEaiSixQbU2jpTK1QtoE
5XbQ+vskve0kHzZA+4RmTi6IwGLt0cNjigguFjfXTxACPVsfUVIxzKJBuUi6W/AB3FXRlO8MtlLb
GQ+aFxUuB0GGWW+wVBBSqYKqg7ZmJOUlwXnkq56XTZjLwDMSH0RPAZp5nh3qFwPPTvWtr3XbQrDT
1KwqcRb5PrBew0qb1VWLrCQsBiaY9wYr2HqvwaTLdjv2oAWh0SDyEtyPs3Z9xUJk5xOgA688hK2D
oCYKcRjAPy+OAb79RddHL2Ick0HATxPbgPMqbbQBU+uLjc15NMg7g+7OB3fokG72adBGKre0v1GT
V3ECx/pJh4NprJNXH1VU/GwlSG9Qu/0m2BSUn2goF9GAnjo68HU97SllJaYxQDbiN8sf2WRjCctL
XMWVGPP+CzKRp/rwIUDQu+M4KKeR7ybwB1BLBwhKNQe5iAEAAIEEAABQSwMEFAAIAAgAUlYYPwAA
AAAAAAAAAAAAADsAEABfX01BQ09TWC9wZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzLy5f
a3Jha2VuLWNsZWFuLnR4dFVYDAALfVVO6zlVTvUBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAb
AXElEIP4q4GYIcQ1IkQxKDmDASdwDAkJYgg4exWqYw4Q86MpYUSIiyfn5+olFhTkpOqFpFaUuOYl
56dk5qUDJUND3HQtrA2NTYwMzS0tTABQSwcIXz1jJ2kAAACrAAAAUEsDBBQACAAIAO17GD8AAAAA
AAAAAAAAAAAwABAAcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy9rcmFrZW4tcGF0Y2gu
dHh0VVgMAAt9VU6+e1VO9QEUAJWUwVLDIBCG73kKLp3RcYKFBEic8ejNk9UH2AZSsSl0gDr27U2a
iMYkh3Jkvp9//90dHh+vOsnL0+bt+XWDbg4KjEdgJCrZClXW1FoqUymkTVDuExp/m6TXneTVBmge
0MLhjBZYHDy6u08RwWR19fsJQqAX30dkXTLMB4M1FqukuwUfwM2KpnxncJLaLngQQTjOBkGG173B
VkFIpQqqCtqakTRvDUTks56XdVjKkJMCryNPer5e5rOSxHpynPe89ZVuGgh2mjonf3l2CawPsNNm
N2tBRSEwix0aAuzg5L0Gk26b09iD8ILiPPJDQRLc3ll7mLFglOFywisP4eQgqImCiRLTyPNLgA//
r+ujijIRBQIXvcERnFdprQ2YSv/bWM7jBMTPCvng2g7p+pwGbaRyW/sVNYLE9wtMLwW1C2dq6+Rs
UaKkmAwC2iXoLit3PgabgvITDcl5NMh+Agx8VU17Og5MR/xxu5c1HUuyNjCPKzHm/TtQxlPdfggQ
9OdlHCT/rb+b2DdQSwcI4QuHLYcBAACBBAAAUEsDBBQACAAIAO17GD8AAAAAAAAAAAAAAAA7ABAA
X19NQUNPU1gvcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy8uX2tyYWtlbi1wYXRjaC50
eHRVWAwAC31VTr57VU71ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxKRCD+MsZiAKOISFB
DAE3bKE65gAxN5oSRoS4eHJ+rl5iQUFOql5IakWJa15yfkpmXjpQMjcxOTOvJL84w9oAAFBLBwiH
7ScGWwAAAKcAAABQSwMEFAAIAAgA6J4XPwAAAAAAAAAAAAAAADMAEABwZXJmLXRlc3RzLXJlc3Vs
dHMvdGVzdC1yZXN1bHRzL3N1bnNwaWRlci1jbGVhbi50eHRVWAwAC31VThNoVE71AVAA7d3vb9tE
HMfx5/krTpMmgZjT2EmapBIPBhtCMARqhxBCaLrY7mqW2pHtdKsQ/ztnJ03tOOvI1BZ/fe8+2XR3
9Y/k5c/Xd3Hbs1yneRS/VdkqzpZREKbqfZRfqBe/v3rx5rvT5z+9/O3n0x/f/PL89fcqC3OVJ2qZ
RHH5n/kqWuTqB32lz/w0WubfJmmoolgdfWM6gqPTcBHqLOz3XkSZr9MgDNR5lGa5Sldxv/fH3z1l
vp4MA8dfzcMnJ8odPNs2XSbp8sK0TW6bUn2dp9oPK63a98Msc+ZRrNNrJ0/DMDO9Xr33XMfxu5Vf
bM11613xPAmuTftopzmLwquwsqV5lCfLzBmaf83O8syJYmd+nZcHXR+y0ztq9L6PstDRcWA6h/XO
9V7LLZjO8abTT+I8TRbni+S9k4b+Ks2iq+p+/fR6mSeOLs/8uN54GYwrJ7FpzC60W2kNdB4650l6
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
59zgPCSqsCLor0R6jpWoxvvL5L0cWv2V2HMcKxZxBVfoRjjKDRVrjTJIo4LGGqXMsRym/pIVVioh
4IZDumEixWMalbhR1ysArESOBjcYDw3D0lW9jEbcKHtZOTBTihym4lQ5RP1lCiwq44rH9NDHWg+1
BVg+STfG0vmstK0cBqS9EnLeRMVmZWxh4bgU5HwxK5keygP95YHfCIrrBiVLwbDYTCFq6aECveyN
R/XicaWOYFj1XDYWaG+QpQeIyLPxHIZqVpo01oHOG4TFZ2WaOK1ZKZFGefWKmRJ5XAf0UCIeEtde
IkJ62MqhJpTD0h9S6TdUjkUtH2VQDkusUMTlTM5539B5pdCs1K+qF9eo1HsV5+Hu4F6hh943uKEJ
zZTI40p54r2sc49NvJfrmaIk0g3J60UGza/ItFdRlUOt0fxS5fwCulHqfF0vbVB/RRwXy6EteEiV
9hqNeFhy3qO9klrcMBL0cuUB+E5UcL7Yl+u4cA4D5DzmhqxmivZgJwq28GxegZnSnF8azS9PHuWQ
+/kUNdv1aj2UaCfymvuokHiZx0UxwzLWNbyNRn7elfXC3ob7XnlgLiPdiC1u2JzzqrE7aI/2FFf4
KLIv3R0O+16kvRbuery/nJINLBVhfxX7V8Lmcbnj9ao9gIVzWbqX70SFjzrwzmY89Db4jYj5DRv4
29cBL+rR25ct969iplAeF4WGxzYaeYDyLaXiBnirPMQNqFGpXj8K9NvdkFgO034zT+xWJoh3pydC
vpfxjSgWDvP/kXo4yu4anz7i0//ZtfXTJ2Q6qVyMffqcTaePwVzv5n4jpoeQ/hvD+Td3/wJQSwcI
/M4M+QkEAACAFgAAUEsDBBQACAAIANN5GD8AAAAAAAAAAAAAAAArABAAcGVyZi10ZXN0cy1yZXN1
bHRzL3Rlc3QtcmVzdWx0cy92OHBhdGNoLnR4dFVYDAALfVVOzXdVTvUBUAClWE1v3EYMvetXzKVA
msLxfJPjWxwnCNIGDdZGgp4CdSPUi253DUmbwv++Y6MOhhyJEyD2xV5p8fTI9x45up77cd4d/lIf
8exyOGxv/+nHv9U8TPOk/t3Nt+rqj9+uPr/ZvHz/+tPvm18/f3h581ZNw6zmo7o77g6Pf/x52u1n
9a7/2l9vx93d/Oo4Dmp3UOeX+cKX882wH/ppeNFtToeDhBW0Gk+Hqes2u+1tP36ZLpRPJnVXw37u
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
AAAAAAAAAAAAAAAAEwAMAAAAAAAAAABA7UEAAAAAcGVyZi10ZXN0cy1yZXN1bHRzL1VYCABidlVO
B31VTlBLAQIVAxQACAAIAA98GD+DhRvKiAIAAFMJAAAlAAwAAAAAAAAAAECkgUEAAABwZXJmLXRl
c3RzLXJlc3VsdHMva3Jha2VuLXJlc3VsdHMudHh0VVgIAAt9VU7+e1VOUEsBAhUDCgAAAAAAoHwY
PwAAAAAAAAAAAAAAAAkADAAAAAAAAAAAQP1BLAMAAF9fTUFDT1NYL1VYCAALfVVOC31VTlBLAQIV
AwoAAAAAAKB8GD8AAAAAAAAAAAAAAAAcAAwAAAAAAAAAAED9QWMDAABfX01BQ09TWC9wZXJmLXRl
c3RzLXJlc3VsdHMvVVgIAAt9VU4LfVVOUEsBAhUDFAAIAAgAD3wYP9CoKNJbAAAApwAAADAADAAA
AAAAAAAAQKSBrQMAAF9fTUFDT1NYL3BlcmYtdGVzdHMtcmVzdWx0cy8uX2tyYWtlbi1yZXN1bHRz
LnR4dFVYCAALfVVO/ntVTlBLAQIVAxQACAAIAPp1GD/yT/OC3wIAAAkNAAAoAAwAAAAAAAAAAECk
gXYEAABwZXJmLXRlc3RzLXJlc3VsdHMvc3Vuc3BpZGVyLXJlc3VsdHMudHh0VVgIAAt9VU6IcVVO
UEsBAhUDCgAAAAAA7XsYPwAAAAAAAAAAAAAAACAADAAAAAAAAAAAQO1BuwcAAHBlcmYtdGVzdHMt
cmVzdWx0cy90ZXN0LXJlc3VsdHMvVVgIAGd2VU6+e1VOUEsBAhUDFAAIAAgAom4YP/9I6QIRAQAA
BBgAACkADAAAAAAAAAAAQKSBCQgAAHBlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvLkRT
X1N0b3JlVVgIAAt9VU6wZFVOUEsBAhUDCgAAAAAAoHwYPwAAAAAAAAAAAAAAACkADAAAAAAAAAAA
QP1BgQkAAF9fTUFDT1NYL3BlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvVVgIAAt9VU4L
fVVOUEsBAhUDFAAIAAgAom4YP9yRj7goAAAAUgAAADQADAAAAAAAAAAAQKSB2AkAAF9fTUFDT1NY
L3BlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMvLl8uRFNfU3RvcmVVWAgAC31VTrBkVU5Q
SwECFQMUAAgACABSVhg/SjUHuYgBAACBBAAAMAAMAAAAAAAAAABApIFyCgAAcGVyZi10ZXN0cy1y
ZXN1bHRzL3Rlc3QtcmVzdWx0cy9rcmFrZW4tY2xlYW4udHh0VVgIAAt9VU7rOVVOUEsBAhUDFAAI
AAgAUlYYP189YydpAAAAqwAAADsADAAAAAAAAAAAQKSBaAwAAF9fTUFDT1NYL3BlcmYtdGVzdHMt
cmVzdWx0cy90ZXN0LXJlc3VsdHMvLl9rcmFrZW4tY2xlYW4udHh0VVgIAAt9VU7rOVVOUEsBAhUD
FAAIAAgA7XsYP+ELhy2HAQAAgQQAADAADAAAAAAAAAAAQKSBSg0AAHBlcmYtdGVzdHMtcmVzdWx0
cy90ZXN0LXJlc3VsdHMva3Jha2VuLXBhdGNoLnR4dFVYCAALfVVOvntVTlBLAQIVAxQACAAIAO17
GD+H7ScGWwAAAKcAAAA7AAwAAAAAAAAAAECkgT8PAABfX01BQ09TWC9wZXJmLXRlc3RzLXJlc3Vs
dHMvdGVzdC1yZXN1bHRzLy5fa3Jha2VuLXBhdGNoLnR4dFVYCAALfVVOvntVTlBLAQIVAxQACAAI
AOieFz9p0SKKJggAAJoaAgAzAAwAAAAAAAAAAECkgRMQAABwZXJmLXRlc3RzLXJlc3VsdHMvdGVz
dC1yZXN1bHRzL3N1bnNwaWRlci1jbGVhbi50eHRVWAgAC31VThNoVE5QSwECFQMUAAgACADZdRg/
WCmGSpIIAACZGgIAMwAMAAAAAAAAAABApIGqGAAAcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVz
dWx0cy9zdW5zcGlkZXItcGF0Y2gudHh0VVgIAAt9VU5JcVVOUEsBAhUDFAAIAAgABKwXP/zODPkJ
BAAAgBYAACsADAAAAAAAAAAAQKSBrSEAAHBlcmYtdGVzdHMtcmVzdWx0cy90ZXN0LXJlc3VsdHMv
djhjbGVhbi50eHRVWAgAC31VTsd+VE5QSwECFQMUAAgACADTeRg//fwhMwAEAACAFgAAKwAMAAAA
AAAAAABApIEfJgAAcGVyZi10ZXN0cy1yZXN1bHRzL3Rlc3QtcmVzdWx0cy92OHBhdGNoLnR4dFVY
CAALfVVOzXdVTlBLAQIVAxQACAAIANN5GD/E8SKkfQAAAIwFAAA2AAwAAAAAAAAAAECkgYgqAABf
X01BQ09TWC9wZXJmLXRlc3RzLXJlc3VsdHMvdGVzdC1yZXN1bHRzLy5fdjhwYXRjaC50eHRVWAgA
C31VTs13VU5QSwECFQMUAAgACACcfBg/pOkLfz8BAAC/AwAAIQAMAAAAAAAAAABApIF5KwAAcGVy
Zi10ZXN0cy1yZXN1bHRzL3Y4LXJlc3VsdHMudHh0VVgIAAt9VU4HfVVOUEsBAhUDFAAIAAgAnHwY
P++zRQm/AAAA5QUAACwADAAAAAAAAAAAQKSBFy0AAF9fTUFDT1NYL3BlcmYtdGVzdHMtcmVzdWx0
cy8uX3Y4LXJlc3VsdHMudHh0VVgIAAt9VU4HfVVOUEsFBgAAAAAVABUAMggAAEAuAAAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>