<?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>79554</bug_id>
          
          <creation_ts>2012-02-24 20:30:35 -0800</creation_ts>
          <short_desc>DFG should support activations and nested functions</short_desc>
          <delta_ts>2012-02-26 20:06:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>loki</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564844</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-24 20:30:35 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564846</commentid>
    <comment_count>1</comment_count>
      <attachid>128844</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-24 20:33:53 -0800</bug_when>
    <thetext>Created attachment 128844
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564879</commentid>
    <comment_count>2</comment_count>
      <attachid>128844</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-02-24 23:00:53 -0800</bug_when>
    <thetext>Comment on attachment 128844
the patch

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

Basically r=me, but it would be nice if you could try to remove the duplicated code :-(

Also we probably want a bug to track to do function instantiation inline like we do in the baseline JIT.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:3540
&gt; +    case CreateActivation: {
&gt; +        JSValueOperand value(this, node.child1());
&gt; +        GPRTemporary result(this, value);
&gt; +        
&gt; +        GPRReg valueTagGPR = value.tagGPR();
&gt; +        GPRReg valuePayloadGPR = value.payloadGPR();
&gt; +        GPRReg resultGPR = result.gpr();
&gt; +        
&gt; +        m_jit.move(valuePayloadGPR, resultGPR);
&gt; +        
&gt; +        JITCompiler::Jump alreadyCreated = m_jit.branch32(JITCompiler::NotEqual, valueTagGPR, TrustedImm32(JSValue::EmptyValueTag));
&gt; +        
&gt; +        silentSpillAllRegisters(resultGPR);
&gt; +        callOperation(operationCreateActivation, resultGPR);
&gt; +        silentFillAllRegisters(resultGPR);
&gt; +        
&gt; +        alreadyCreated.link(&amp;m_jit);
&gt; +        
&gt; +        cellResult(resultGPR, m_compileIndex);
&gt; +        break;
&gt; +    }
&gt; +        
&gt; +    case TearOffActivation: {
&gt; +        JSValueOperand value(this, node.child1());
&gt; +        GPRTemporary result(this, value);
&gt; +        
&gt; +        GPRReg valueTagGPR = value.tagGPR();
&gt; +        GPRReg valuePayloadGPR = value.payloadGPR();
&gt; +        
&gt; +        JITCompiler::Jump notCreated = m_jit.branch32(JITCompiler::Equal, valueTagGPR, TrustedImm32(JSValue::EmptyValueTag));
&gt; +        
&gt; +        silentSpillAllRegisters(InvalidGPRReg);
&gt; +        callOperation(operationTearOffActivation, valuePayloadGPR);
&gt; +        silentFillAllRegisters(InvalidGPRReg);
&gt; +        
&gt; +        notCreated.link(&amp;m_jit);
&gt; +        
&gt; +        noResult(m_compileIndex);
&gt; +        break;
&gt; +    }
&gt; +        
&gt; +    case NewFunctionNoCheck: {
&gt; +        GPRResult result(this);
&gt; +        GPRReg resultGPR = result.gpr();
&gt; +        flushRegisters();
&gt; +        callOperation(
&gt; +            operationNewFunction, resultGPR, m_jit.codeBlock()-&gt;functionDecl(node.functionDeclIndex()));
&gt; +        cellResult(resultGPR, m_compileIndex);
&gt; +        break;
&gt; +    }

It feels like these should be entirely sharable between  32bit and 64bit implementations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565005</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-25 12:36:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 128844 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128844&amp;action=review
&gt; 
&gt; Basically r=me, but it would be nice if you could try to remove the duplicated code :-(
&gt; 
&gt; Also we probably want a bug to track to do function instantiation inline like we do in the baseline JIT.
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:3540
&gt; &gt; +    case CreateActivation: {
&gt; &gt; +        JSValueOperand value(this, node.child1());
&gt; &gt; +        GPRTemporary result(this, value);
&gt; &gt; +        
&gt; &gt; +        GPRReg valueTagGPR = value.tagGPR();
&gt; &gt; +        GPRReg valuePayloadGPR = value.payloadGPR();
&gt; &gt; +        GPRReg resultGPR = result.gpr();
&gt; &gt; +        
&gt; &gt; +        m_jit.move(valuePayloadGPR, resultGPR);
&gt; &gt; +        
&gt; &gt; +        JITCompiler::Jump alreadyCreated = m_jit.branch32(JITCompiler::NotEqual, valueTagGPR, TrustedImm32(JSValue::EmptyValueTag));
&gt; &gt; +        
&gt; &gt; +        silentSpillAllRegisters(resultGPR);
&gt; &gt; +        callOperation(operationCreateActivation, resultGPR);
&gt; &gt; +        silentFillAllRegisters(resultGPR);
&gt; &gt; +        
&gt; &gt; +        alreadyCreated.link(&amp;m_jit);
&gt; &gt; +        
&gt; &gt; +        cellResult(resultGPR, m_compileIndex);
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; &gt; +        
&gt; &gt; +    case TearOffActivation: {
&gt; &gt; +        JSValueOperand value(this, node.child1());
&gt; &gt; +        GPRTemporary result(this, value);
&gt; &gt; +        
&gt; &gt; +        GPRReg valueTagGPR = value.tagGPR();
&gt; &gt; +        GPRReg valuePayloadGPR = value.payloadGPR();
&gt; &gt; +        
&gt; &gt; +        JITCompiler::Jump notCreated = m_jit.branch32(JITCompiler::Equal, valueTagGPR, TrustedImm32(JSValue::EmptyValueTag));
&gt; &gt; +        
&gt; &gt; +        silentSpillAllRegisters(InvalidGPRReg);
&gt; &gt; +        callOperation(operationTearOffActivation, valuePayloadGPR);
&gt; &gt; +        silentFillAllRegisters(InvalidGPRReg);
&gt; &gt; +        
&gt; &gt; +        notCreated.link(&amp;m_jit);
&gt; &gt; +        
&gt; &gt; +        noResult(m_compileIndex);
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; &gt; +        
&gt; &gt; +    case NewFunctionNoCheck: {
&gt; &gt; +        GPRResult result(this);
&gt; &gt; +        GPRReg resultGPR = result.gpr();
&gt; &gt; +        flushRegisters();
&gt; &gt; +        callOperation(
&gt; &gt; +            operationNewFunction, resultGPR, m_jit.codeBlock()-&gt;functionDecl(node.functionDeclIndex()));
&gt; &gt; +        cellResult(resultGPR, m_compileIndex);
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; 
&gt; It feels like these should be entirely sharable between  32bit and 64bit implementations

Actually not.  The only parts that are sharable are the really easy ones (NewFunctionNoCheck and NewFunctionExpression).  The others are not sharable because they have different numbers of registers and use different logic for testing empty values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565030</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-25 15:06:07 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/108908</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565109</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-25 22:31:45 -0800</bug_when>
    <thetext>Reopen, because it made inspector tests crash on Qt:
http://build.webkit.org/results/Qt%20Linux%20Release/r108909%20%2843679%29/results.html

Maybe on GTK too, but GTK doesn&apos;t run these tests for some reason.
It might be a 32 bit related bug, not Qt related.

crash log for fast/harness/results.html:

1   0x8066e5b /ramdisk/qt-linux-release/build/WebKitBuild/Release/bin/DumpRenderTree() [0x8066e5b]
2   0xf7723400 [0xf7723400]
3   0xf6db35f7 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(operationTearOffActivation+0x17) [0xf6db35f7]
4   0xef915fc2 [0xef915fc2]
5   0xf6e10811 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x401) [0xf6e10811]
6   0xf6f0bf86 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x66) [0xf6f0bf86]
7   0xf6f0137e /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(+0x1aa137e) [0xf6f0137e]
8   0xefa591a9 [0xefa591a9]
9   0xf6e10811 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x401) [0xf6e10811]
10  0xf6f0bf86 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x66) [0xf6f0bf86]
11  0xf5defa63 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*)+0x453) [0xf5defa63]
12  0xf5fd276d /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1u&gt;&amp;)+0x12d) [0xf5fd276d]
13  0xf5fd292d /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::EventTarget::fireEventListeners(WebCore::Event*)+0x5d) [0xf5fd292d]
14  0xf6348b1a /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::EventTarget&gt;)+0xca) [0xf6348b1a]
15  0xf634fb77 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::DOMWindow::dispatchLoadEvent()+0x117) [0xf634fb77]
16  0xf5f895be /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::Document::dispatchWindowLoadEvent()+0x2e) [0xf5f895be]
17  0xf5f930ee /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::Document::implicitClose()+0x12e) [0xf5f930ee]
18  0xf62d0474 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::FrameLoader::checkCallImplicitClose()+0x74) [0xf62d0474]
19  0xf62d9551 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::FrameLoader::checkCompleted()+0xc1) [0xf62d9551]
20  0xf62d96bd /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::FrameLoader::loadDone()+0x1d) [0xf62d96bd]
21  0xf62be82b /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::CachedResourceLoader::loadDone()+0x4b) [0xf62be82b]
22  0xf630e6cf /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::SubresourceLoader::releaseResources()+0x5f) [0xf630e6cf]
23  0xf63044ba /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::ResourceLoader::didFinishLoading(double)+0x3a) [0xf63044ba]
24  0xf630ef91 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::SubresourceLoader::didFinishLoading(double)+0xe1) [0xf630ef91]
25  0xf6303f81 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double)+0x71) [0xf6303f81]
26  0xf661b93d /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyHandler::finish()+0x1bd) [0xf661b93d]
27  0xf66182a4 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyHandlerCallQueue::flush()+0x64) [0xf66182a4]
28  0xf6618844 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyHandlerCallQueue::push(void (WebCore::QNetworkReplyHandler::*)())+0x34) [0xf6618844]
29  0xf661888f /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyWrapper::didReceiveFinished()+0x3f) [0xf661888f]
30  0xf661afd8 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(+0x11bafd8) [0xf661afd8]
31  0xf3b38af4 /usr/local/Trolltech/Qt-4.8.0/lib/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x274) [0xf3b38af4]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565123</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-25 23:38:59 -0800</bug_when>
    <thetext>:-(

FYI, I will not have a chance to get to this tonight, but will investigate tomorrow (i.e. around 26 Feb 18:00 GMT or so).

-F



(In reply to comment #5)
&gt; Reopen, because it made inspector tests crash on Qt:
&gt; http://build.webkit.org/results/Qt%20Linux%20Release/r108909%20%2843679%29/results.html
&gt; 
&gt; Maybe on GTK too, but GTK doesn&apos;t run these tests for some reason.
&gt; It might be a 32 bit related bug, not Qt related.
&gt; 
&gt; crash log for fast/harness/results.html:
&gt; 
&gt; 1   0x8066e5b /ramdisk/qt-linux-release/build/WebKitBuild/Release/bin/DumpRenderTree() [0x8066e5b]
&gt; 2   0xf7723400 [0xf7723400]
&gt; 3   0xf6db35f7 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(operationTearOffActivation+0x17) [0xf6db35f7]
&gt; 4   0xef915fc2 [0xef915fc2]
&gt; 5   0xf6e10811 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x401) [0xf6e10811]
&gt; 6   0xf6f0bf86 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x66) [0xf6f0bf86]
&gt; 7   0xf6f0137e /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(+0x1aa137e) [0xf6f0137e]
&gt; 8   0xefa591a9 [0xefa591a9]
&gt; 9   0xf6e10811 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x401) [0xf6e10811]
&gt; 10  0xf6f0bf86 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)+0x66) [0xf6f0bf86]
&gt; 11  0xf5defa63 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*)+0x453) [0xf5defa63]
&gt; 12  0xf5fd276d /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1u&gt;&amp;)+0x12d) [0xf5fd276d]
&gt; 13  0xf5fd292d /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::EventTarget::fireEventListeners(WebCore::Event*)+0x5d) [0xf5fd292d]
&gt; 14  0xf6348b1a /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::EventTarget&gt;)+0xca) [0xf6348b1a]
&gt; 15  0xf634fb77 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::DOMWindow::dispatchLoadEvent()+0x117) [0xf634fb77]
&gt; 16  0xf5f895be /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::Document::dispatchWindowLoadEvent()+0x2e) [0xf5f895be]
&gt; 17  0xf5f930ee /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::Document::implicitClose()+0x12e) [0xf5f930ee]
&gt; 18  0xf62d0474 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::FrameLoader::checkCallImplicitClose()+0x74) [0xf62d0474]
&gt; 19  0xf62d9551 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::FrameLoader::checkCompleted()+0xc1) [0xf62d9551]
&gt; 20  0xf62d96bd /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::FrameLoader::loadDone()+0x1d) [0xf62d96bd]
&gt; 21  0xf62be82b /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::CachedResourceLoader::loadDone()+0x4b) [0xf62be82b]
&gt; 22  0xf630e6cf /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::SubresourceLoader::releaseResources()+0x5f) [0xf630e6cf]
&gt; 23  0xf63044ba /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::ResourceLoader::didFinishLoading(double)+0x3a) [0xf63044ba]
&gt; 24  0xf630ef91 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::SubresourceLoader::didFinishLoading(double)+0xe1) [0xf630ef91]
&gt; 25  0xf6303f81 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double)+0x71) [0xf6303f81]
&gt; 26  0xf661b93d /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyHandler::finish()+0x1bd) [0xf661b93d]
&gt; 27  0xf66182a4 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyHandlerCallQueue::flush()+0x64) [0xf66182a4]
&gt; 28  0xf6618844 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyHandlerCallQueue::push(void (WebCore::QNetworkReplyHandler::*)())+0x34) [0xf6618844]
&gt; 29  0xf661888f /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::QNetworkReplyWrapper::didReceiveFinished()+0x3f) [0xf661888f]
&gt; 30  0xf661afd8 /ramdisk/qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so.4(+0x11bafd8) [0xf661afd8]
&gt; 31  0xf3b38af4 /usr/local/Trolltech/Qt-4.8.0/lib/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x274) [0xf3b38af4]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565190</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 13:19:38 -0800</bug_when>
    <thetext>I think I found the problem.  It&apos;s 32-bit specific but not Qt-specific.  Testing now.

(In reply to comment #6)
&gt; :-(
&gt; 
&gt; FYI, I will not have a chance to get to this tonight, but will investigate tomorrow (i.e. around 26 Feb 18:00 GMT or so).
&gt; 
&gt; -F
&gt; 
&gt; 
&gt; 
&gt; (In reply to comment #5)
&gt; &gt; Reopen, because it made inspector tests crash on Qt:
&gt; &gt; http://build.webkit.org/results/Qt%20Linux%20Release/r108909%20%2843679%29/results.html
&gt; &gt; 
&gt; &gt; Maybe on GTK too, but GTK doesn&apos;t run these tests for some reason.
&gt; &gt; It might be a 32 bit related bug, not Qt related.
&gt; &gt; 
&lt;snip&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565199</commentid>
    <comment_count>8</comment_count>
      <attachid>128928</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 14:09:54 -0800</bug_when>
    <thetext>Created attachment 128928
the patch to fix 32-bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565230</commentid>
    <comment_count>9</comment_count>
      <attachid>128844</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 17:06:35 -0800</bug_when>
    <thetext>Comment on attachment 128844
the patch

Clearing flags since this already landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565270</commentid>
    <comment_count>10</comment_count>
      <attachid>128928</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 20:05:53 -0800</bug_when>
    <thetext>Comment on attachment 128928
the patch to fix 32-bit

Landed in http://trac.webkit.org/changeset/108949</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565271</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 20:06:08 -0800</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/108949</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128844</attachid>
            <date>2012-02-24 20:33:53 -0800</date>
            <delta_ts>2012-02-26 17:06:35 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>activations_patch_1.diff</filename>
            <type>text/plain</type>
            <size>29088</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4ODg2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDEyLTAyLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBzdXBwb3J0IGFjdGl2YXRpb25zIGFuZCBuZXN0ZWQgZnVuY3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTU1NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV3JvdGUg
dGhlIHNpbXBsZXN0IHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIG9mIGFjdGl2YXRpb25zLiBCaWcg
c3BlZWQtdXAgb24KKyAgICAgICAgY29kZSB0aGF0IHVzZXMgYWN0aXZhdGlvbnMsIG5vIHNwZWVk
LXVwIG9uIG1ham9yIGJlbmNobWFya3MgKFN1blNwaWRlciwgVjgsCisgICAgICAgIEtyYWtlbikg
YmVjYXVzZSB0aGV5IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSBzdWZmaWNpZW50IGNvdmVyYWdlIG92
ZXIgY29kZQorICAgICAgICB0aGF0IHVzZXMgYWN0aXZhdGlvbnMuCisKKyAgICAgICAgKiBieXRl
Y29kZS9QcmVkaWN0ZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6cHJlZGljdGlvblRvU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6cHJlZGljdGlvbkZyb21WYWx1ZSk6CisgICAgICAgICogYnl0ZWNv
ZGUvUHJlZGljdGVkVHlwZS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6aXNFbXB0
eVByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpC
eXRlQ29kZVBhcnNlcik6CisgICAgICAgIChCeXRlQ29kZVBhcnNlcik6CisgICAgICAgIChKU0M6
OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpidWlsZE9wZXJhbmRNYXBzSWZOZWNlc3NhcnkpOgorICAgICAgICAoSlND
OjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5
KToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2UpOgorICAgICAgICAq
IGRmZy9ERkdDYXBhYmlsaXRpZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjYW5Db21waWxlT3Bj
b2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpjYW5JbmxpbmVPcGNvZGUpOgorICAgICAgICAqIGRm
Zy9ERkdHcmFwaC5oOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpuZWVkc0FjdGl2YXRpb24p
OgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChERkcpOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6OnN0b3JhZ2VBY2Nlc3NEYXRhSW5kZXgpOgorICAgICAgICAoTm9kZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzRnVuY3Rpb25EZWNsSW5kZXgpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6OmZ1bmN0aW9uRGVjbEluZGV4KToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNGdW5jdGlvbkV4cHJJbmRleCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6ZnVu
Y3Rpb25FeHBySW5kZXgpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToK
KwogMjAxMi0wMi0yNCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCBXaW5kb3dzIGJ1aWxkIGZpeC4gIENoYW5nZWQgc2lnbmF0dXJlIGlu
IGV4cG9ydCB0byBtYXRjaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1By
ZWRpY3RlZFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9QcmVkaWN0ZWRUeXBlLmNwcAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3RlZFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTMsOCArMTUzLDEzIEBAIGNvbnN0IGNoYXIqIHByZWRpY3Rpb25Ub1N0cmluZyhQcmVkaWN0ZWQK
ICAgICBlbHNlCiAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAgICAgCi0gICAgaWYgKGlzVG9wKQot
ICAgICAgICByZXR1cm4gIlRvcCI7CisgICAgaWYgKGlzVG9wKSB7CisgICAgICAgIHB0ciA9IGRl
c2NyaXB0aW9uOworICAgICAgICBwdHIuc3RyY2F0KCJUb3AiKTsKKyAgICB9CisgICAgCisgICAg
aWYgKHZhbHVlICYgUHJlZGljdEVtcHR5KQorICAgICAgICBwdHIuc3RyY2F0KCJFbXB0eSIpOwog
ICAgIAogICAgICpwdHIrKyA9IDA7CiAgICAgCkBAIC0yMjEsNiArMjI2LDggQEAgUHJlZGljdGVk
VHlwZSBwcmVkaWN0aW9uRnJvbUNlbGwoSlNDZWxsKgogCiBQcmVkaWN0ZWRUeXBlIHByZWRpY3Rp
b25Gcm9tVmFsdWUoSlNWYWx1ZSB2YWx1ZSkKIHsKKyAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gUHJlZGljdEVtcHR5OwogICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpCiAg
ICAgICAgIHJldHVybiBQcmVkaWN0SW50MzI7CiAgICAgaWYgKHZhbHVlLmlzRG91YmxlKCkpIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVkaWN0ZWRUeXBlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3RlZFR5cGUu
aAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1By
ZWRpY3RlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsOCArNjEsMTAgQEAgc3RhdGljIGNv
bnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdERvdWJsZQogc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5
cGUgUHJlZGljdERvdWJsZSAgICAgICAgICAgID0gMHgwMDA2MDAwMDsgLy8gSXQncyBlaXRoZXIg
YSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KIHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFBy
ZWRpY3ROdW1iZXIgICAgICAgICAgICA9IDB4MDAwNzAwMDA7IC8vIEl0J3MgZWl0aGVyIGFuIElu
dDMyIG9yIGEgRG91YmxlLgogc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdEJvb2xl
YW4gICAgICAgICAgID0gMHgwMDA4MDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4K
LXN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RPdGhlciAgICAgICAgICAgICA9IDB4
NDAwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBub25lIG9mIHRoZSBhYm92ZS4KLXN0YXRpYyBj
b25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RUb3AgICAgICAgICAgICAgICA9IDB4N2ZmZmZmZmY7
IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLgorc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5
cGUgUHJlZGljdE90aGVyICAgICAgICAgICAgID0gMHgwODAwMDAwMDsgLy8gSXQncyBkZWZpbml0
ZWx5IG5vbmUgb2YgdGhlIGFib3ZlLgorc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGlj
dFRvcCAgICAgICAgICAgICAgID0gMHgwZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUg
YWJvdmUuCitzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0RW1wdHkgICAgICAgICAg
ICAgPSAweDEwMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2Vy
Lgorc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdEVtcHR5T3JUb3AgICAgICAgID0g
MHgxZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUuCiBzdGF0aWMgY29uc3Qg
UHJlZGljdGVkVHlwZSBGaXhlZEluZGV4ZWRTdG9yYWdlTWFzayA9IFByZWRpY3RCeXRlQXJyYXkg
fCBQcmVkaWN0SW50OEFycmF5IHwgUHJlZGljdEludDE2QXJyYXkgfCBQcmVkaWN0SW50MzJBcnJh
eSB8IFByZWRpY3RVaW50OEFycmF5IHwgUHJlZGljdFVpbnQ4Q2xhbXBlZEFycmF5IHwgUHJlZGlj
dFVpbnQxNkFycmF5IHwgUHJlZGljdFVpbnQzMkFycmF5IHwgUHJlZGljdEZsb2F0MzJBcnJheSB8
IFByZWRpY3RGbG9hdDY0QXJyYXk7CiAKIHR5cGVkZWYgYm9vbCAoKlByZWRpY3Rpb25DaGVja2Vy
KShQcmVkaWN0ZWRUeXBlKTsKQEAgLTIxNyw2ICsyMTksMTEgQEAgaW5saW5lIGJvb2wgaXNPdGhl
clByZWRpY3Rpb24oUHJlZGljdGVkVAogICAgIHJldHVybiB2YWx1ZSA9PSBQcmVkaWN0T3RoZXI7
CiB9CiAKK2lubGluZSBib29sIGlzRW1wdHlQcmVkaWN0aW9uKFByZWRpY3RlZFR5cGUgdmFsdWUp
Cit7CisgICAgcmV0dXJuIHZhbHVlID09IFByZWRpY3RFbXB0eTsKK30KKwogY29uc3QgY2hhciog
cHJlZGljdGlvblRvU3RyaW5nKFByZWRpY3RlZFR5cGUgdmFsdWUpOwogCiAvLyBNZXJnZSB0d28g
cHJlZGljdGlvbnMuIE5vdGUgdGhhdCBjdXJyZW50bHkgdGhpcyBqdXN0IGRvZXMgbGVmdCB8IHJp
Z2h0LiBJdCBtYXkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RT
dGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIzLDEwICs3MjMs
MjUgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKE5vZGVJbmRleCBubwogICAgIH0KICAg
ICAgICAgICAgIAogICAgIGNhc2UgTmV3T2JqZWN0OgotICAgICAgICBmb3JOb2RlKG5vZGVJbmRl
eCkuc2V0KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZW1wdHlPYmplY3RTdHJ1Y3R1cmUo
KSk7CisgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQobV9jb2RlQmxvY2stPmdsb2JhbE9i
amVjdEZvcihub2RlLmNvZGVPcmlnaW4pLT5lbXB0eU9iamVjdFN0cnVjdHVyZSgpKTsKICAgICAg
ICAgbV9oYXZlU3RydWN0dXJlcyA9IHRydWU7CiAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
CisgICAgICAgIAorICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKKyAgICAgICAgZm9yTm9kZShu
b2RlSW5kZXgpLnNldChtX2dyYXBoLm1fZ2xvYmFsRGF0YS5hY3RpdmF0aW9uU3RydWN0dXJlLmdl
dCgpKTsKKyAgICAgICAgbV9oYXZlU3RydWN0dXJlcyA9IHRydWU7CisgICAgICAgIGJyZWFrOwor
ICAgICAgICAKKyAgICBjYXNlIFRlYXJPZmZBY3RpdmF0aW9uOgorICAgICAgICAvLyBEb2VzIG5v
dGhpbmcgdGhhdCBpcyB1c2VyLXZpc2libGUuCisgICAgICAgIGJyZWFrOworICAgICAgICAKKyAg
ICBjYXNlIE5ld0Z1bmN0aW9uOgorICAgIGNhc2UgTmV3RnVuY3Rpb25FeHByZXNzaW9uOgorICAg
IGNhc2UgTmV3RnVuY3Rpb25Ob0NoZWNrOgorICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0
KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2luKS0+ZnVuY3Rpb25T
dHJ1Y3R1cmUoKSk7CisgICAgICAgIGJyZWFrOworICAgICAgICAKICAgICBjYXNlIEdldENhbGxl
ZToKICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChQcmVkaWN0RnVuY3Rpb24pOwogICAg
ICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMDg4ODApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYs
NyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9nbG9iYWxSZXNvbHZlTnVtYmVyKDApCiAgICAgICAg
ICwgbV9pbmxpbmVTdGFja1RvcCgwKQogICAgICAgICAsIG1faGF2ZUJ1aWx0T3BlcmFuZE1hcHMo
ZmFsc2UpCisgICAgICAgICwgbV9lbXB0eUpTVmFsdWVJbmRleChVSU5UX01BWCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX3Byb2ZpbGVkQmxvY2spOwogICAgICAgICAKQEAgLTk0Nyw2ICs5NDgs
OSBAQCBwcml2YXRlOgogICAgIElkZW50aWZpZXJNYXAgbV9pZGVudGlmaWVyTWFwOwogICAgIC8v
IE1hcHBpbmcgYmV0d2VlbiB2YWx1ZXMgYW5kIGNvbnN0YW50IG51bWJlcnMuCiAgICAgSlNWYWx1
ZU1hcCBtX2pzVmFsdWVNYXA7CisgICAgLy8gSW5kZXggb2YgdGhlIGVtcHR5IHZhbHVlLCBvciBV
SU5UX01BWCBpZiB0aGVyZSBpcyBubyBtYXBwaW5nLiBUaGlzIGlzIGEgaG9ycmlibGUKKyAgICAv
LyB3b3JrLWFyb3VuZCBmb3IgdGhlIGZhY3QgdGhhdCBKU1ZhbHVlTWFwIGNhbid0IGhhbmRsZSAi
ZW1wdHkiIHZhbHVlcy4KKyAgICB1bnNpZ25lZCBtX2VtcHR5SlNWYWx1ZUluZGV4OwogICAgIAog
ICAgIC8vIENhY2hlIG9mIGNvZGUgYmxvY2tzIHRoYXQgd2UndmUgZ2VuZXJhdGVkIGJ5dGVjb2Rl
IGZvci4KICAgICBCeXRlQ29kZUNhY2hlPGNhbklubGluZUZ1bmN0aW9uRm9yPiBtX2NvZGVCbG9j
a0NhY2hlOwpAQCAtMjIyMiw2ICsyMjI2LDQyIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3Bf
bG9vcF9oaW50KTsKICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2Ugb3BfaW5p
dF9sYXp5X3JlZzogeworICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQsIGdldEpTQ29uc3RhbnRGb3JWYWx1ZShKU1ZhbHVlKCkpKTsKKyAgICAgICAgICAgIE5F
WFRfT1BDT0RFKG9wX2luaXRfbGF6eV9yZWcpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgY2FzZSBvcF9jcmVhdGVfYWN0aXZhdGlvbjogeworICAgICAgICAgICAgc2V0KGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoQ3JlYXRlQWN0aXZhdGlvbiwg
Z2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKSk7CisgICAgICAgICAgICBORVhU
X09QQ09ERShvcF9jcmVhdGVfYWN0aXZhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICBjYXNlIG9wX3RlYXJfb2ZmX2FjdGl2YXRpb246IHsKKyAgICAgICAgICAgIC8vIFRo
aXMgY3VycmVudGx5IGlnbm9yZXMgYXJndW1lbnRzIGJlY2F1c2Ugd2UgZG9uJ3Qgc3VwcG9ydCB0
aGVtIHlldC4KKyAgICAgICAgICAgIGFkZFRvR3JhcGgoVGVhck9mZkFjdGl2YXRpb24sIGdldChj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBORVhUX09QQ09E
RShvcF90ZWFyX29mZl9hY3RpdmF0aW9uKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgIGNhc2Ugb3BfbmV3X2Z1bmM6IHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kKSB7CisgICAgICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQsCisgICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoTmV3RnVuY3Rp
b25Ob0NoZWNrLCBPcEluZm8oY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQsCisgICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoCisgICAgICAg
ICAgICAgICAgICAgICAgICBOZXdGdW5jdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIE9w
SW5mbyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSkpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgTkVYVF9PUENPREUob3BfbmV3X2Z1bmMpOworICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgY2FzZSBvcF9uZXdfZnVuY19leHA6IHsKKyAgICAgICAgICAg
IHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLAorICAgICAgICAgICAgICAgIGFk
ZFRvR3JhcGgoTmV3RnVuY3Rpb25FeHByZXNzaW9uLCBPcEluZm8oY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZCkpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX25ld19mdW5jX2V4
cCk7CisgICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgLy8gUGFyc2Ug
ZmFpbGVkISBUaGlzIHNob3VsZCBub3QgaGFwcGVuIGJlY2F1c2UgdGhlIGNhcGFiaWxpdGllcyBj
aGVja2VyCkBAIC0yNDc0LDggKzI1MTQsMTMgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6YnVpbGRP
cGVyYW5kTWFwc0lmTgogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jb2RlQmxv
Y2stPm51bWJlck9mSWRlbnRpZmllcnMoKTsgKytpKQogICAgICAgICBtX2lkZW50aWZpZXJNYXAu
YWRkKG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGkpLmltcGwoKSwgaSk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2NvZGVCbG9jay0+bnVtYmVyT2ZDb25zdGFudFJlZ2lzdGVycygpOyAr
K2kpCi0gICAgICAgIG1fanNWYWx1ZU1hcC5hZGQoSlNWYWx1ZTo6ZW5jb2RlKG1fY29kZUJsb2Nr
LT5nZXRDb25zdGFudChpICsgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpKSwgaSArIEZpcnN0
Q29uc3RhbnRSZWdpc3RlckluZGV4KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY29k
ZUJsb2NrLT5udW1iZXJPZkNvbnN0YW50UmVnaXN0ZXJzKCk7ICsraSkgeworICAgICAgICBKU1Zh
bHVlIHZhbHVlID0gbV9jb2RlQmxvY2stPmdldENvbnN0YW50KGkgKyBGaXJzdENvbnN0YW50UmVn
aXN0ZXJJbmRleCk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICBtX2VtcHR5SlNW
YWx1ZUluZGV4ID0gaSArIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2pzVmFsdWVNYXAuYWRkKEpTVmFsdWU6OmVuY29kZSh2YWx1ZSksIGkg
KyBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCk7CisgICAgfQogICAgIAogICAgIG1faGF2ZUJ1
aWx0T3BlcmFuZE1hcHMgPSB0cnVlOwogfQpAQCAtMjUyNSw2ICsyNTcwLDE1IEBAIEJ5dGVDb2Rl
UGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmUKICAgICAgICAgfQogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZDb25zdGFudFJlZ2lzdGVycygp
OyArK2kpIHsKICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBjb2RlQmxvY2stPmdldENvbnN0
YW50KGkgKyBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCk7CisgICAgICAgICAgICBpZiAoIXZh
bHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ5dGVDb2RlUGFyc2VyLT5tX2VtcHR5SlNWYWx1
ZUluZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAgICAgIGJ5dGVDb2RlUGFyc2Vy
LT5tX2VtcHR5SlNWYWx1ZUluZGV4ID0gYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5udW1i
ZXJPZkNvbnN0YW50UmVnaXN0ZXJzKCkgKyBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleDsKKyAg
ICAgICAgICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5hZGRDb25zdGFu
dChKU1ZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9jb25z
dGFudHMuYXBwZW5kKENvbnN0YW50UmVjb3JkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBtX2NvbnN0YW50UmVtYXBbaV0gPSBieXRlQ29kZVBhcnNlci0+bV9lbXB0eUpT
VmFsdWVJbmRleDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHBhaXI8SlNWYWx1ZU1hcDo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IGJ5dGVD
b2RlUGFyc2VyLT5tX2pzVmFsdWVNYXAuYWRkKEpTVmFsdWU6OmVuY29kZSh2YWx1ZSksIGJ5dGVD
b2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+bnVtYmVyT2ZDb25zdGFudFJlZ2lzdGVycygpICsgRmly
c3RDb25zdGFudFJlZ2lzdGVySW5kZXgpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5zZWNvbmQp
IHsKICAgICAgICAgICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9jb2RlQmxvY2stPmFkZENvbnN0
YW50KHZhbHVlKTsKQEAgLTI2NTIsOSArMjcwNiw2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBh
cnNlKCkKICNpZiBERkdfRU5BQkxFKEFMTF9WQVJJQUJMRVNfQ0FQVFVSRUQpCiAgICAgLy8gV2Ug
c2hvdWxkIGJlIHByZXRlbmRpbmcgdGhhdCB0aGUgY29kZSBoYXMgYW4gYWN0aXZhdGlvbi4KICAg
ICBBU1NFUlQobV9ncmFwaC5uZWVkc0FjdGl2YXRpb24oKSk7Ci0jZWxzZQotICAgIC8vIEZvciBu
b3cgd2Ugc2hvdWxkIG5ldmVyIHNlZSBjb2RlIHRoYXQgbmVlZHMgYWN0aXZhdGlvbnMuCi0gICAg
QVNTRVJUKCFtX2dyYXBoLm5lZWRzQWN0aXZhdGlvbigpKTsKICNlbmRpZgogICAgIAogICAgIElu
bGluZVN0YWNrRW50cnkgaW5saW5lU3RhY2tFbnRyeSh0aGlzLCBtX2NvZGVCbG9jaywgbV9wcm9m
aWxlZEJsb2NrLCBOb0Jsb2NrLCBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyLCAwLCBJbnZhbGlkVmly
dHVhbFJlZ2lzdGVyLCBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyLCBDb2RlRm9yQ2FsbCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgJKHJldmlzaW9u
IDEwODg4MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NCw2ICsxNTQsMTEgQEAgaW5saW5lIGJvb2wgY2FuQ29tcGls
ZU9wY29kZShPcGNvZGVJRCBvcAogICAgIGNhc2Ugb3BfY2FsbDoKICAgICBjYXNlIG9wX2NvbnN0
cnVjdDoKICAgICBjYXNlIG9wX25ld19yZWdleHA6IAorICAgIGNhc2Ugb3BfaW5pdF9sYXp5X3Jl
ZzoKKyAgICBjYXNlIG9wX2NyZWF0ZV9hY3RpdmF0aW9uOgorICAgIGNhc2Ugb3BfdGVhcl9vZmZf
YWN0aXZhdGlvbjoKKyAgICBjYXNlIG9wX25ld19mdW5jOgorICAgIGNhc2Ugb3BfbmV3X2Z1bmNf
ZXhwOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCiAgICAgZGVmYXVsdDoKQEAgLTE4
MSw2ICsxODYsMTQgQEAgaW5saW5lIGJvb2wgY2FuSW5saW5lT3Bjb2RlKE9wY29kZUlEIG9wYwog
ICAgIGNhc2Ugb3BfbmV3X3JlZ2V4cDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
KyAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGlubGluaW5nIGNvZGUgdGhhdCBjcmVhdGVzIGFjdGl2
YXRpb25zIG9yIGhhcyBuZXN0ZWQgZnVuY3Rpb25zLgorICAgIGNhc2Ugb3BfaW5pdF9sYXp5X3Jl
ZzoKKyAgICBjYXNlIG9wX2NyZWF0ZV9hY3RpdmF0aW9uOgorICAgIGNhc2Ugb3BfdGVhcl9vZmZf
YWN0aXZhdGlvbjoKKyAgICBjYXNlIG9wX25ld19mdW5jOgorICAgIGNhc2Ugb3BfbmV3X2Z1bmNf
ZXhwOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBjYW5Db21waWxlT3Bjb2RlKG9wY29kZUlEKTsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxMDg4ODApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMCw3ICsz
MTAsNyBAQCBwdWJsaWM6CiAjaWYgREZHX0VOQUJMRShBTExfVkFSSUFCTEVTX0NBUFRVUkVEKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCi0gICAgICAgIHJldHVybiBtX2NvZGVCbG9jay0+
b3duZXJFeGVjdXRhYmxlKCktPm5lZWRzQWN0aXZhdGlvbigpICYmIG1fY29kZUJsb2NrLT5jb2Rl
VHlwZSgpICE9IEdsb2JhbENvZGU7CisgICAgICAgIHJldHVybiBtX2NvZGVCbG9jay0+bmVlZHNG
dWxsU2NvcGVDaGFpbigpICYmIG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEdsb2JhbENvZGU7
CiAjZW5kaWYKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5MSw2ICsyOTEsMTcgQEAgc3RhdGljIGlubGluZSBjb25z
dCBjaGFyKiBhcml0aE5vZGVGbGFncwogICAgIG1hY3JvKFRvUHJpbWl0aXZlLCBOb2RlUmVzdWx0
SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKICAgICBtYWNybyhT
dHJDYXQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncyB8
IE5vZGVDbG9iYmVyc1dvcmxkKSBcCiAgICAgXAorICAgIC8qIE5vZGVzIHVzZWQgZm9yIGFjdGl2
YXRpb25zLiBBY3RpdmF0aW9uIHN1cHBvcnQgd29ya3MgYnkgaGF2aW5nIGl0IGFuY2hvcmVkIGF0
ICovXAorICAgIC8qIGVwaWxnb3VlcyB2aWEgVGVhck9mZkFjdGl2YXRpb24sIGFuZCBhbGwgQ3Jl
YXRlQWN0aXZhdGlvbiBub2RlcyBrZXB0IGFsaXZlIGJ5ICovXAorICAgIC8qIGJlaW5nIHRocmVh
ZGVkIHdpdGggZWFjaCBvdGhlci4gKi9cCisgICAgbWFjcm8oQ3JlYXRlQWN0aXZhdGlvbiwgTm9k
ZVJlc3VsdEpTKSBcCisgICAgbWFjcm8oVGVhck9mZkFjdGl2YXRpb24sIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBcCisgICAgLyogTm9kZXMgZm9yIGNyZWF0aW5nIGZ1bmN0aW9ucy4gKi9cCisg
ICAgbWFjcm8oTmV3RnVuY3Rpb25Ob0NoZWNrLCBOb2RlUmVzdWx0SlMpIFwKKyAgICBtYWNybyhO
ZXdGdW5jdGlvbiwgTm9kZVJlc3VsdEpTKSBcCisgICAgbWFjcm8oTmV3RnVuY3Rpb25FeHByZXNz
aW9uLCBOb2RlUmVzdWx0SlMpIFwKKyAgICBcCiAgICAgLyogQmxvY2sgdGVybWluYWxzLiAqL1wK
ICAgICBtYWNybyhKdW1wLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUlzVGVybWluYWwgfCBOb2Rl
SXNKdW1wKSBcCiAgICAgbWFjcm8oQnJhbmNoLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUlzVGVy
bWluYWwgfCBOb2RlSXNCcmFuY2gpIFwKQEAgLTc3NSw2ICs3ODYsMzAgQEAgc3RydWN0IE5vZGUg
ewogICAgIAogICAgIHVuc2lnbmVkIHN0b3JhZ2VBY2Nlc3NEYXRhSW5kZXgoKQogICAgIHsKKyAg
ICAgICAgQVNTRVJUKGhhc1N0b3JhZ2VBY2Nlc3NEYXRhKCkpOworICAgICAgICByZXR1cm4gbV9v
cEluZm87CisgICAgfQorICAgIAorICAgIGJvb2wgaGFzRnVuY3Rpb25EZWNsSW5kZXgoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG9wID09IE5ld0Z1bmN0aW9uCisgICAgICAgICAgICB8fCBvcCA9
PSBOZXdGdW5jdGlvbk5vQ2hlY2s7CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIGZ1bmN0aW9u
RGVjbEluZGV4KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNGdW5jdGlvbkRlY2xJbmRleCgp
KTsKKyAgICAgICAgcmV0dXJuIG1fb3BJbmZvOworICAgIH0KKyAgICAKKyAgICBib29sIGhhc0Z1
bmN0aW9uRXhwckluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBvcCA9PSBOZXdGdW5jdGlv
bkV4cHJlc3Npb247CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIGZ1bmN0aW9uRXhwckluZGV4
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNGdW5jdGlvbkV4cHJJbmRleCgpKTsKICAgICAg
ICAgcmV0dXJuIG1fb3BJbmZvOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMsOCArMzMsMTAgQEAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJJbmxp
bmVBU00uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpTQWN0aXZhdGlv
bi5oIgogI2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgi
CisjaW5jbHVkZSAiSlNTdGF0aWNTY29wZU9iamVjdC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogI2lmIEVOQUJMRShERkdfSklUKQpAQCAtOTc0LDYgKzk3Niw0MyBAQCBFbmNvZGVkSlNW
YWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5lCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShSZWdFeHBPYmplY3Q6OmNyZWF0ZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1
cmUoKSwgcmVnZXhwKSk7CiB9CiAKK0pTQ2VsbCogREZHX09QRVJBVElPTiBvcGVyYXRpb25DcmVh
dGVBY3RpdmF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEgPSBleGVjLT5nbG9iYWxEYXRhKCk7CisgICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9u
ID0gSlNBY3RpdmF0aW9uOjpjcmVhdGUoCisgICAgICAgIGdsb2JhbERhdGEsIGV4ZWMsIHN0YXRp
Y19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWMtPmNvZGVCbG9jaygpLT5vd25lckV4ZWN1
dGFibGUoKSkpOworICAgIGV4ZWMtPnNldFNjb3BlQ2hhaW4oZXhlYy0+c2NvcGVDaGFpbigpLT5w
dXNoKGFjdGl2YXRpb24pKTsKKyAgICByZXR1cm4gYWN0aXZhdGlvbjsKK30KKwordm9pZCBERkdf
T1BFUkFUSU9OIG9wZXJhdGlvblRlYXJPZmZBY3RpdmF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlND
ZWxsKiBhY3RpdmF0aW9uKQoreworICAgIEFTU0VSVChhY3RpdmF0aW9uKTsKKyAgICBBU1NFUlQo
YWN0aXZhdGlvbi0+aW5oZXJpdHMoJkpTQWN0aXZhdGlvbjo6c19pbmZvKSk7CisgICAgc3RhdGlj
X2Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbiktPnRlYXJPZmYoZXhlYy0+Z2xvYmFsRGF0
YSgpKTsKK30KKworSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpCit7CisgICAgQVNTRVJU
KGZ1bmN0aW9uRXhlY3V0YWJsZS0+aW5oZXJpdHMoJkZ1bmN0aW9uRXhlY3V0YWJsZTo6c19pbmZv
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGZ1bmN0aW9u
RXhlY3V0YWJsZSktPm1ha2UoZXhlYywgZXhlYy0+c2NvcGVDaGFpbigpKTsKK30KKworSlNDZWxs
KiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uRXhwcmVzc2lvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlQXNDZWxsKQoreworICAgIEFTU0VSVChm
dW5jdGlvbkV4ZWN1dGFibGVBc0NlbGwtPmluaGVyaXRzKCZGdW5jdGlvbkV4ZWN1dGFibGU6OnNf
aW5mbykpOworICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0KKyAg
ICAgICAgc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZnVuY3Rpb25FeGVjdXRhYmxl
QXNDZWxsKTsKKyAgICBKU0Z1bmN0aW9uICpmdW5jdGlvbiA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+
bWFrZShleGVjLCBleGVjLT5zY29wZUNoYWluKCkpOworICAgIGlmICghZnVuY3Rpb25FeGVjdXRh
YmxlLT5uYW1lKCkuaXNOdWxsKCkpIHsKKyAgICAgICAgSlNTdGF0aWNTY29wZU9iamVjdCogZnVu
Y3Rpb25TY29wZU9iamVjdCA9CisgICAgICAgICAgICBKU1N0YXRpY1Njb3BlT2JqZWN0OjpjcmVh
dGUoCisgICAgICAgICAgICAgICAgZXhlYywgZnVuY3Rpb25FeGVjdXRhYmxlLT5uYW1lKCksIGZ1
bmN0aW9uLCBSZWFkT25seSB8IERvbnREZWxldGUpOworICAgICAgICBmdW5jdGlvbi0+c2V0U2Nv
cGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBmdW5jdGlvbi0+c2NvcGUoKS0+cHVzaChmdW5jdGlvblNj
b3BlT2JqZWN0KSk7CisgICAgfQorICAgIHJldHVybiBmdW5jdGlvbjsKK30KKwogREZHSGFuZGxl
ckVuY29kZWQgREZHX09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSog
ZXhlYywgdWludDMyX3QgY2FsbEluZGV4KQogewogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0
YSA9ICZleGVjLT5nbG9iYWxEYXRhKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDcgQEAg
dHlwZWRlZiB2b2lkIERGR19PUEVSQVRJT04gKCpWX0RGR09wZXJhdAogdHlwZWRlZiBkb3VibGUg
REZHX09QRVJBVElPTiAoKkRfREZHT3BlcmF0aW9uX0REKShkb3VibGUsIGRvdWJsZSk7CiB0eXBl
ZGVmIGRvdWJsZSBERkdfT1BFUkFUSU9OICgqRF9ERkdPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCogREZHX09QRVJBVElPTiAoKlBfREZHT3Bl
cmF0aW9uX0UpKEV4ZWNTdGF0ZSopOwordHlwZWRlZiB2b2lkIERGR19PUEVSQVRJT04gKFZfREZH
T3BlcmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIAogLy8gVGhlc2Ugcm91dGluZXMg
YXJlIHByb3ZpZGUgY2FsbGJhY2tzIG91dCB0byBDKysgaW1wbGVtZW50YXRpb25zIG9mIG9wZXJh
dGlvbnMgdG9vIGNvbXBsZXggdG8gSklULgogSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld09iamVjdChFeGVjU3RhdGUqKTsKQEAgLTE0NSw2ICsxNDYsMTAgQEAgdm9pZCogREZHX09Q
RVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbAogdm9pZCogREZHX09QRVJBVElPTiBvcGVyYXRp
b25MaW5rQ2FsbChFeGVjU3RhdGUqKTsKIHZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9uVmly
dHVhbENvbnN0cnVjdChFeGVjU3RhdGUqKTsKIHZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
TGlua0NvbnN0cnVjdChFeGVjU3RhdGUqKTsKK0pTQ2VsbCogREZHX09QRVJBVElPTiBvcGVyYXRp
b25DcmVhdGVBY3RpdmF0aW9uKEV4ZWNTdGF0ZSopOwordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJh
dGlvblRlYXJPZmZBY3RpdmF0aW9uKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOworSlNDZWxsKiBERkdf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOworSlND
ZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uRXhwcmVzc2lvbihFeGVjU3Rh
dGUqLCBKU0NlbGwqKTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhj
ZXB0aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSBy
ZXR1cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhl
bHBlciBvcGVyYXRpb25zIGFib3ZlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlz
aW9uIDEwODg4MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcsNiArMzk3LDE4IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCisgICAg
ICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjogeworICAgICAgICAgICAgY2hhbmdlZCB8PSBzZXRQ
cmVkaWN0aW9uKFByZWRpY3RPYmplY3RPdGhlcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTmV3RnVuY3Rpb246CisgICAgICAgIGNh
c2UgTmV3RnVuY3Rpb25Ob0NoZWNrOgorICAgICAgICBjYXNlIE5ld0Z1bmN0aW9uRXhwcmVzc2lv
bjogeworICAgICAgICAgICAgY2hhbmdlZCB8PSBzZXRQcmVkaWN0aW9uKFByZWRpY3RGdW5jdGlv
bik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAg
IGNhc2UgR2V0QXJyYXlMZW5ndGg6CiAgICAgICAgIGNhc2UgR2V0Qnl0ZUFycmF5TGVuZ3RoOgog
ICAgICAgICBjYXNlIEdldEludDhBcnJheUxlbmd0aDoKQEAgLTQzOSw2ICs0NTEsNyBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246CiAgICAgICAgIGNhc2UgUHV0U3RydWN0
dXJlOgogICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0OgorICAgICAgICBjYXNlIFRlYXJPZmZBY3Rp
dmF0aW9uOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgLy8gVGhl
c2UgZ2V0cyBpZ25vcmVkIGJlY2F1c2UgaXQgZG9lc24ndCBkbyBhbnl0aGluZy4KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkocmV2aXNpb24gMTA4ODgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ4OCw2ICszNDg4LDky
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCisgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOiB7CisgICAgICAgIEpTVmFs
dWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIHZhbHVlKTsKKyAgICAgICAgCisgICAgICAgIEdQUlJlZyB2YWx1ZVRh
Z0dQUiA9IHZhbHVlLnRhZ0dQUigpOworICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSID0g
dmFsdWUucGF5bG9hZEdQUigpOworICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdw
cigpOworICAgICAgICAKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZVBheWxvYWRHUFIsIHJlc3Vs
dEdQUik7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBhbHJlYWR5Q3JlYXRl
ZCA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgdmFsdWVUYWdHUFIsIFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7CisgICAgICAgIAorICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOworICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb24sIHJlc3VsdEdQUik7CisgICAgICAgIHNpbGVudEZp
bGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgCisgICAgICAgIGFscmVhZHlDcmVh
dGVkLmxpbmsoJm1faml0KTsKKyAgICAgICAgCisgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BS
LCBtX2NvbXBpbGVJbmRleCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAgICAgCisgICAg
Y2FzZSBUZWFyT2ZmQWN0aXZhdGlvbjogeworICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0
aGlzLCBub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCB2
YWx1ZSk7CisgICAgICAgIAorICAgICAgICBHUFJSZWcgdmFsdWVUYWdHUFIgPSB2YWx1ZS50YWdH
UFIoKTsKKyAgICAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiA9IHZhbHVlLnBheWxvYWRHUFIo
KTsKKyAgICAgICAgCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENyZWF0ZWQgPSBtX2pp
dC5icmFuY2gzMihKSVRDb21waWxlcjo6RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOworICAgICAgICAKKyAgICAgICAgc2lsZW50U3BpbGxB
bGxSZWdpc3RlcnMoSW52YWxpZEdQUlJlZyk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uVGVhck9mZkFjdGl2YXRpb24sIHZhbHVlUGF5bG9hZEdQUik7CisgICAgICAgIHNpbGVudEZp
bGxBbGxSZWdpc3RlcnMoSW52YWxpZEdQUlJlZyk7CisgICAgICAgIAorICAgICAgICBub3RDcmVh
dGVkLmxpbmsoJm1faml0KTsKKyAgICAgICAgCisgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUlu
ZGV4KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgICAgICAKKyAgICBjYXNlIE5ld0Z1bmN0
aW9uTm9DaGVjazogeworICAgICAgICBHUFJSZXN1bHQgcmVzdWx0KHRoaXMpOworICAgICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgICAgICBmbHVzaFJlZ2lzdGVycygp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgb3BlcmF0aW9uTmV3RnVuY3Rp
b24sIHJlc3VsdEdQUiwgbV9qaXQuY29kZUJsb2NrKCktPmZ1bmN0aW9uRGVjbChub2RlLmZ1bmN0
aW9uRGVjbEluZGV4KCkpKTsKKyAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGls
ZUluZGV4KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgICAgICAKKyAgICBjYXNlIE5ld0Z1
bmN0aW9uOiB7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQx
KCkpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIHZhbHVlKTsKKyAgICAgICAg
CisgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOworICAgICAgICBH
UFJSZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOworICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgICAgICAKKyAgICAgICAgbV9qaXQubW92
ZSh2YWx1ZVBheWxvYWRHUFIsIHJlc3VsdEdQUik7CisgICAgICAgIAorICAgICAgICBKSVRDb21w
aWxlcjo6SnVtcCBhbHJlYWR5Q3JlYXRlZCA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpO
b3RFcXVhbCwgdmFsdWVUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFn
KSk7CisgICAgICAgIAorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgb3BlcmF0aW9uTmV3RnVuY3Rp
b24sIHJlc3VsdEdQUiwgbV9qaXQuY29kZUJsb2NrKCktPmZ1bmN0aW9uRGVjbChub2RlLmZ1bmN0
aW9uRGVjbEluZGV4KCkpKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRH
UFIpOworICAgICAgICAKKyAgICAgICAgYWxyZWFkeUNyZWF0ZWQubGluaygmbV9qaXQpOworICAg
ICAgICAKKyAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgICAgICAKKyAgICBjYXNlIE5ld0Z1bmN0aW9uRXhwcmVz
c2lvbjogeworICAgICAgICBHUFJSZXN1bHQgcmVzdWx0KHRoaXMpOworICAgICAgICBHUFJSZWcg
cmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAg
ICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgb3BlcmF0aW9uTmV3RnVuY3Rpb25FeHBy
ZXNzaW9uLAorICAgICAgICAgICAgcmVzdWx0R1BSLAorICAgICAgICAgICAgbV9qaXQuY29kZUJs
b2NrKCktPmZ1bmN0aW9uRXhwcihub2RlLmZ1bmN0aW9uRXhwckluZGV4KCkpKTsKKyAgICAgICAg
Y2VsbFJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6IHsKICAgICAgICAgdGVybWluYXRlU3BlY3Vs
YXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CiAgICAg
ICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxMDg4ODApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDUx
LDYgKzM0NTEsODcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
ICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOwogICAgICAg
ICBicmVhazsKICAgICB9CisgICAgICAgIAorICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjogewor
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKKyAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCB2YWx1ZSk7CisgICAgICAgIAorICAgICAgICBH
UFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9
IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgCisgICAgICAgIG1faml0Lm1vdmUodmFsdWVHUFIsIHJl
c3VsdEdQUik7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBhbHJlYWR5Q3Jl
YXRlZCA9IG1faml0LmJyYW5jaFRlc3RQdHIoSklUQ29tcGlsZXI6Ok5vblplcm8sIHJlc3VsdEdQ
Uik7CisgICAgICAgIAorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb24sIHJlc3Vs
dEdQUik7CisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAg
ICAgCisgICAgICAgIGFscmVhZHlDcmVhdGVkLmxpbmsoJm1faml0KTsKKyAgICAgICAgCisgICAg
ICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBUZWFyT2ZmQWN0aXZhdGlvbjogeworICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgR1BS
UmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxl
cjo6SnVtcCBub3RDcmVhdGVkID0gbV9qaXQuYnJhbmNoVGVzdFB0cihKSVRDb21waWxlcjo6WmVy
bywgdmFsdWVHUFIpOworICAgICAgICAKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMo
SW52YWxpZEdQUlJlZyk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVGVhck9mZkFj
dGl2YXRpb24sIHZhbHVlR1BSKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhJbnZh
bGlkR1BSUmVnKTsKKyAgICAgICAgCisgICAgICAgIG5vdENyZWF0ZWQubGluaygmbV9qaXQpOwor
ICAgICAgICAKKyAgICAgICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgICAgIAorICAgIGNhc2UgTmV3RnVuY3Rpb25Ob0NoZWNrOiB7CisgICAg
ICAgIEdQUlJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7CisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgIGNhbGxPcGVy
YXRpb24oCisgICAgICAgICAgICBvcGVyYXRpb25OZXdGdW5jdGlvbiwgcmVzdWx0R1BSLCBtX2pp
dC5jb2RlQmxvY2soKS0+ZnVuY3Rpb25EZWNsKG5vZGUuZnVuY3Rpb25EZWNsSW5kZXgoKSkpOwor
ICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgICAgIAorICAgIGNhc2UgTmV3RnVuY3Rpb246IHsKKyAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUpOworICAgICAgICAKKyAgICAgICAgR1BSUmVnIHZh
bHVlR1BSID0gdmFsdWUuZ3ByKCk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQu
Z3ByKCk7CisgICAgICAgIAorICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlR1BSLCByZXN1bHRHUFIp
OworICAgICAgICAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgYWxyZWFkeUNyZWF0ZWQgPSBt
X2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBpbGVyOjpOb25aZXJvLCByZXN1bHRHUFIpOworICAg
ICAgICAKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAg
ICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgIG9wZXJhdGlvbk5ld0Z1bmN0aW9uLCByZXN1
bHRHUFIsIG1faml0LmNvZGVCbG9jaygpLT5mdW5jdGlvbkRlY2wobm9kZS5mdW5jdGlvbkRlY2xJ
bmRleCgpKSk7CisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAg
ICAgICAgCisgICAgICAgIGFscmVhZHlDcmVhdGVkLmxpbmsoJm1faml0KTsKKyAgICAgICAgCisg
ICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBOZXdGdW5jdGlvbkV4cHJlc3Npb246IHsK
KyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQ
UiA9IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgY2Fs
bE9wZXJhdGlvbigKKyAgICAgICAgICAgIG9wZXJhdGlvbk5ld0Z1bmN0aW9uRXhwcmVzc2lvbiwK
KyAgICAgICAgICAgIHJlc3VsdEdQUiwKKyAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLT5m
dW5jdGlvbkV4cHIobm9kZS5mdW5jdGlvbkV4cHJJbmRleCgpKSk7CisgICAgICAgIGNlbGxSZXN1
bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCk7CisgICAgICAgIGJyZWFrOworICAgIH0KIAog
ICAgIGNhc2UgRm9yY2VPU1JFeGl0OiB7CiAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhl
Y3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTA4
ODgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTYwLDYgKzExNjAsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9q
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEpOwogICAgICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAg
ICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19ERkdPcGVyYXRpb25f
RUMgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBKU0NlbGwqIGNlbGwpCisgICAgeworICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihjZWxsKSk7
CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9w
ZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihDX0RGR09wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcg
YXJnMSwgSlNDZWxsKiBjZWxsKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIoY2VsbCkpOwpAQCAtMTE5NSw2ICsxMjAw
LDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfREZHT3BlcmF0aW9uX0VDIG9wZXJhdGlvbiwgR1BSUmVnIGFy
ZzEpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9ERkdPcGVy
YXRpb25fRUpQUCBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgdm9pZCogcG9p
bnRlcikKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKHBvaW50ZXIpKTsKQEAgLTEzMjgsNiArMTMzOCwxMSBA
QCBwcml2YXRlOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0
KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihDX0RGR09wZXJhdGlvbl9FQyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEpTQ2Vs
bCogY2VsbCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShUcnVzdGVkSW1tUHRyKGNlbGwpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KICAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfREZHT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24s
IEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgVHJ1c3RlZEltbVB0cihj
ZWxsKSk7CkBAIC0xMzYzLDYgKzEzNzgsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKICAg
ICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0
aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfREZHT3BlcmF0aW9uX0VDIG9wZXJhdGlvbiwgR1BSUmVnIGFy
ZzEpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9ERkdPcGVy
YXRpb25fRUpQUCBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQs
IEdQUlJlZyBhcmcyLCB2b2lkKiBwb2ludGVyKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyLCBUcnVzdGVk
SW1tUHRyKHBvaW50ZXIpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128928</attachid>
            <date>2012-02-26 14:09:54 -0800</date>
            <delta_ts>2012-02-26 20:05:53 -0800</delta_ts>
            <desc>the patch to fix 32-bit</desc>
            <filename>fix32bit_patch_1.diff</filename>
            <type>text/plain</type>
            <size>2062</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4OTMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEyLTAyLTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBzdXBwb3J0IGFjdGl2YXRpb25zIGFuZCBuZXN0ZWQgZnVuY3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTU1NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IDMy
LWJpdC4gVGhlIDMyLWJpdCBmdW5jdGlvbithY3RpdmF0aW9uIGNvZGUgaGFkIHNvbWUgcmVhbGx5
IHdlaXJkCisgICAgICAgIHJlZ2lzdGVyIHJldXNlIGJ1Z3MuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorCiAyMDEyLTAyLTI2ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCBmb3IgRU5BQkxFKENM
QVNTSUNfSU5URVJQUkVURVIpIGFmdGVyIHIxMDg2ODEuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9u
IDEwODkzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OTAsNyArMzQ5MCw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlv
bjogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsK
LSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCB2YWx1ZSk7CisgICAgICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUsIGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIEdQ
UlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgICAgICBHUFJSZWcgdmFsdWVQ
YXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOwpAQCAtMzUxMiw3ICszNTEyLDYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAKICAgICBjYXNl
IFRlYXJPZmZBY3RpdmF0aW9uOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMs
IG5vZGUuY2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIHZhbHVl
KTsKICAgICAgICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigp
OwogICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOwpA
QCAtMzUzNSw3ICszNTM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBu
b2RlKQogICAgICAgICAKICAgICBjYXNlIE5ld0Z1bmN0aW9uOiB7CiAgICAgICAgIEpTVmFsdWVP
cGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIHZhbHVlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCB2
YWx1ZSwgZmFsc2UpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0gdmFs
dWUudGFnR1BSKCk7CiAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIgPSB2YWx1ZS5wYXls
b2FkR1BSKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>