<?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>95341</bug_id>
          
          <creation_ts>2012-08-29 06:30:12 -0700</creation_ts>
          <short_desc>Web Inspector:  The JS code injected by worker inspector shouldn&apos;t be evaluated through JSMainThreadExecState</short_desc>
          <delta_ts>2012-10-08 14:43:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          <blocked>93519</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Wang">PeterHWang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adamk</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>707400</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-08-29 06:30:12 -0700</bug_when>
    <thetext>The implementation of &quot;JSC::JSInjectedScriptManager&quot; and &quot;JSC::ScriptFunctionCall&quot; have a defect, the injected JS is alwyas evaluated through &quot;JSMainThreadExecState&quot;. It will cause failed assert, like this:

    at /home/torch-admin/project/upstream/Source/WebCore/bindings/js/JSMainThreadExecState.h:84
84	        ASSERT(isMainThread());
(gdb) bt 
#0  0x00007ffff51f4fcd in WebCore::JSMainThreadExecState::JSMainThreadExecState (this=0x7fff91eb71f0, exec=0x7fff90a4f888)
    at /home/torch-admin/project/upstream/Source/WebCore/bindings/js/JSMainThreadExecState.h:84
#1  0x00007ffff5233242 in WebCore::JSMainThreadExecState::evaluate (exec=0x7fff90a4f888, chain=0x7fff90a2ffc0, source=..., 
    thisValue=..., exception=0x7fff91eb7350)
    at /home/torch-admin/project/upstream/Source/WebCore/bindings/js/JSMainThreadExecState.h:75
#2  0x00007ffff5233400 in WebCore::InjectedScriptManager::createInjectedScript (this=0x7fff88009db0, source=..., 
    scriptState=0x7fff90a4f888, id=1) at /home/torch-admin/project/upstream/Source/WebCore/bindings/js/JSInjectedScriptManager.cpp:64
#3  0x00007ffff578801b in WebCore::InjectedScriptManager::injectScript (this=0x7fff88009db0, source=..., scriptState=0x7fff90a4f888)
    at /home/torch-admin/project/upstream/Source/WebCore/inspector/InjectedScriptManager.cpp:170
#4  0x00007ffff578823d in WebCore::InjectedScriptManager::injectedScriptFor (this=0x7fff88009db0, inspectedScriptState=0x7fff90a4f888)
    at /home/torch-admin/project/upstream/Source/WebCore/inspector/InjectedScriptManager.cpp:185
#5  0x00007ffff5861a1a in WebCore::WorkerRuntimeAgent::injectedScriptForEval (this=0x7fff88009f10, error=0x7fff91eb7810, 
    executionContextId=0x0) at /home/torch-admin/project/upstream/Source/WebCore/inspector/WorkerRuntimeAgent.cpp:64
#6  0x00007ffff582f833 in WebCore::InspectorRuntimeAgent::evaluate (this=0x7fff88009f10, errorString=0x7fff91eb7810, expression=..., 
    objectGroup=0x0, includeCommandLineAPI=0x0, doNotPauseOnExceptionsAndMuteConsole=0x7fff91eb789c, executionContextId=0x0, 
    returnByValue=0x7fff91eb789f, result=..., wasThrown=0x7fff91eb7890)
    at /home/torch-admin/project/upstream/Source/WebCore/inspector/InspectorRuntimeAgent.cpp:88
#7  0x00007ffff6215ca8 in WebCore::InspectorBackendDispatcherImpl::Runtime_evaluate (this=0x7fff880240d0, callId=23, 
    requestMessageObject=0x7fff88024190) at generated/InspectorBackendDispatcher.cpp:1357
#8  0x00007ffff623daad in WebCore::InspectorBackendDispatcherImpl::dispatch (this=0x7fff880240d0, message=...)
    at generated/InspectorBackendDispatcher.cpp:5485
#9  0x00007ffff5860e1a in WebCore::WorkerInspectorController::dispatchMessageFromFrontend (this=0x7fff88009bd0, message=...)
    at /home/torch-admin/project/upstream/Source/WebCore/inspector/WorkerInspectorController.cpp:188
#10 0x00007ffff5e0e3e5 in WebCore::dispatchOnInspectorBackendTask (context=0x7fff880008e0, message=...)
    at /home/torch-admin/project/upstream/Source/WebCore/workers/WorkerMessagingProxy.cpp:420
#11 0x00007ffff5890942 in WebCore::CrossThreadTask1&lt;WTF::String, WTF::String const&amp;&gt;::performTask (this=0x1b65c60, 
    context=0x7fff880008e0) at /home/torch-admin/project/upstream/Source/WebCore/dom/CrossThreadTask.h:81
#12 0x00007ffff5e11415 in WebCore::WorkerRunLoop::Task::performTask (this=0x1b52bc0, runLoop=..., context=0x7fff880008e0)
    at /home/torch-admin/project/upstream/Source/WebCore/workers/WorkerRunLoop.cpp:228
#13 0x00007ffff5e10edf in WebCore::WorkerRunLoop::runInMode (this=0x1aa6170, context=0x7fff880008e0, predicate=..., 
    waitMode=WebCore::WorkerRunLoop::WaitForMessage) at /home/torch-admin/project/upstream/Source/WebCore/workers/WorkerRunLoop.cpp:177
#14 0x00007ffff5e10af4 in WebCore::WorkerRunLoop::run (this=0x1aa6170, context=0x7fff880008e0)
    at /home/torch-admin/project/upstream/Source/WebCore/workers/WorkerRunLoop.cpp:135
#15 0x00007ffff5e1475f in WebCore::WorkerThread::runEventLoop (this=0x1aa6140)
    at /home/torch-admin/project/upstream/Source/WebCore/workers/WorkerThread.cpp:195
......</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707405</commentid>
    <comment_count>1</comment_count>
      <attachid>161213</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-08-29 06:38:06 -0700</bug_when>
    <thetext>Created attachment 161213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711203</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-09-04 10:05:27 -0700</bug_when>
    <thetext>Looks fine to me, but I&apos;m not a reviewer, so someone from the JSC side (e.g., Sam) will be the right person to r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725333</commentid>
    <comment_count>3</comment_count>
      <attachid>161213</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-21 02:54:53 -0700</bug_when>
    <thetext>Comment on attachment 161213
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new test case.

Can this be tested?

&gt; Source/WebCore/bindings/js/ScriptFunctionCall.cpp:40
&gt; +#ifndef NDEBUG

Do we have debug-related behavior here?

&gt; Source/WebCore/inspector/InjectedScriptManager.h:71
&gt; +    explicit InjectedScriptManager(InspectedStateAccessCheck, bool = false);

bool isForWorker = false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726509</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 03:23:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 161213 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161213&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        No new test case.
&gt; 
&gt; Can this be tested?

Taking QT debug build as example, without my patch, when we click the link on the worker side-panel(refer to the attached picture), the Browser hits the assert statement. 

&gt; &gt; Source/WebCore/bindings/js/ScriptFunctionCall.cpp:40
&gt; &gt; +#ifndef NDEBUG
&gt; 
&gt; Do we have debug-related behavior here?
It&apos;s weird, it&apos;s not my code. It&apos;ll cleaned in the new patch.

&gt; &gt; Source/WebCore/inspector/InjectedScriptManager.h:71
&gt; &gt; +    explicit InjectedScriptManager(InspectedStateAccessCheck, bool = false);
&gt; 
&gt; bool isForWorker = false
ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726510</commentid>
    <comment_count>5</comment_count>
      <attachid>165341</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 03:24:02 -0700</bug_when>
    <thetext>Created attachment 165341
how to reproduce this bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726513</commentid>
    <comment_count>6</comment_count>
      <attachid>161213</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-09-24 03:35:38 -0700</bug_when>
    <thetext>Comment on attachment 161213
Patch

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

&gt; Source/WebCore/inspector/InjectedScriptManager.h:87
&gt; +protected:

private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726515</commentid>
    <comment_count>7</comment_count>
      <attachid>165344</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 03:38:37 -0700</bug_when>
    <thetext>Created attachment 165344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726516</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 03:40:00 -0700</bug_when>
    <thetext>JSMainThreadExecState is a wrapper of JSC API, it&apos;s seems designed just for main thread but not worker thread, so there are several assert statements in it.  In worker inspector related code, there are several mistakes that invoke interfaces of  JSMainThreadExecState from worker thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726554</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 04:44:36 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 161213 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161213&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InjectedScriptManager.h:87
&gt; &gt; +protected:
&gt; 
&gt; private?

yes (I really cannot remember why I declared it as &quot;protected&quot;), it should be &quot;private&quot;, thx.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726562</commentid>
    <comment_count>10</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 05:06:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=165344) [details]
&gt; Patch

The related code are already changed a lot since the first time I uploaded this patch. I&apos;ll make a new patch that can work with current code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726684</commentid>
    <comment_count>11</comment_count>
      <attachid>165344</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-24 08:26:58 -0700</bug_when>
    <thetext>Comment on attachment 165344
Patch

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

&gt; Source/WebCore/inspector/InjectedScriptManager.h:87
&gt; +    bool m_isForWorker;

You don&apos;t seem to need this field. Please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727217</commentid>
    <comment_count>12</comment_count>
      <attachid>165502</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-24 20:02:28 -0700</bug_when>
    <thetext>Created attachment 165502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727396</commentid>
    <comment_count>13</comment_count>
      <attachid>165502</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-09-25 01:18:29 -0700</bug_when>
    <thetext>Comment on attachment 165502
Patch

commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727409</commentid>
    <comment_count>14</comment_count>
      <attachid>165502</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 01:39:22 -0700</bug_when>
    <thetext>Comment on attachment 165502
Patch

Clearing flags on attachment: 165502

Committed r129476: &lt;http://trac.webkit.org/changeset/129476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727410</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 01:39:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161213</attachid>
            <date>2012-08-29 06:38:06 -0700</date>
            <delta_ts>2012-09-24 03:38:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95341-20120829213741.patch</filename>
            <type>text/plain</type>
            <size>5749</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYxOWQyNTBhN2ZkMGRk
MWQ4MDA3ODY0MzFjOTdiM2VjNTc4NmVjMS4uNWI1NmFlODY0YWU2Zjc3ZWMxNzMxMDc1ZDM2ZGNi
OTMwMDc2OTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA4LTI5ICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogIFRoZSBKUyBjb2RlIGluamVjdGVkIGJ5IHdvcmtlciBpbnNwZWN0b3Igc2hvdWxk
bid0IGJlIGV2YWx1YXRlZCB0aHJvdWdoIEpTTWFpblRocmVhZEV4ZWNTdGF0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBjYWxsZXIgaXMg
aW4gV29ya2VyIHRocmVhZCwgdGhlIEpTIGNvZGUgc2hvdWxkbid0IGJlIGV2YWx1YXRlZCB0aHJv
dWdoIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS4KKworICAgICAgICBObyBuZXcgdGVzdCBjYXNlLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVJbmplY3RlZFNjcmlw
dCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y2FsbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3Rl
ZFNjcmlwdE1hbmFnZXI6OmNyZWF0ZUZvcldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKToKKwogMjAxMi0wOC0yOCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBOZXcgdGVzdCBpbnRyb2R1Y2VkIGluIHIxMjY2MTEg
ZmFpbHM6IGZhc3QvY3NzL2ltYWdlLXNldC1zZXR0aW5nLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCBl
NjNmNDk3NGNlNzcyMDQwNTZiY2U0Yjg3NTY5ZmZmMjE0OWMxMTdlLi5hMTRhMDU1MjA2ZTVlNWVl
OTU1OWJjYzg0YTFjZWU3YTYyN2JlMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC01OSw3ICs1OSwxMyBA
QCBTY3JpcHRPYmplY3QgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVJbmplY3RlZFNjcmlw
dChjb25zdCBTdHJpbmcmIHNvdXJjZSwgUwogICAgIEpTVmFsdWUgZ2xvYmFsVGhpc1ZhbHVlID0g
c2NyaXB0U3RhdGUtPmdsb2JhbFRoaXNWYWx1ZSgpOwogCiAgICAgSlNWYWx1ZSBldmFsdWF0aW9u
RXhjZXB0aW9uOwotICAgIEpTVmFsdWUgZXZhbHVhdGlvblJldHVyblZhbHVlID0gSlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpldmFsdWF0ZShzY3JpcHRTdGF0ZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxT
Y29wZUNoYWluKCksIHNvdXJjZUNvZGUsIGdsb2JhbFRoaXNWYWx1ZSwgJmV2YWx1YXRpb25FeGNl
cHRpb24pOworICAgIEpTVmFsdWUgZXZhbHVhdGlvblJldHVyblZhbHVlOworICAgIGlmICghbV9p
c0ZvcldvcmtlcikKKyAgICAgICAgZXZhbHVhdGlvblJldHVyblZhbHVlID0gSlNNYWluVGhyZWFk
RXhlY1N0YXRlOjpldmFsdWF0ZShzY3JpcHRTdGF0ZSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29w
ZUNoYWluKCksIHNvdXJjZUNvZGUsIGdsb2JhbFRoaXNWYWx1ZSwgJmV2YWx1YXRpb25FeGNlcHRp
b24pOworICAgIGVsc2UgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHNjcmlwdFN0
YXRlKTsKKyAgICAgICAgZXZhbHVhdGlvblJldHVyblZhbHVlID0gSlNDOjpldmFsdWF0ZShzY3Jp
cHRTdGF0ZSwgc2NyaXB0U3RhdGUtPmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+Z2xvYmFsU2NvcGVD
aGFpbigpLCBzb3VyY2VDb2RlLCBnbG9iYWxUaGlzVmFsdWUsICZldmFsdWF0aW9uRXhjZXB0aW9u
KTsKKyAgICB9CiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgIHJldHVybiBT
Y3JpcHRPYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0RnVuY3Rpb25DYWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dEZ1bmN0aW9uQ2FsbC5jcHAKaW5kZXggNTQ3NzgyNTlhODhmNjhmYWYzYzZhZjRlMzAyNzk3YTBl
ODMyOWZiYy4uNWRiOWJiMzVhNjM1MzEyMjc5YzFhMjljZWQ1YTMxM2Y5MTFlYzUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwCkBA
IC0zNyw2ICszNywxMCBAQAogCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRl
IDxydW50aW1lL1VTdHJpbmcuaD4KKyNpZm5kZWYgTkRFQlVHCisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKyNlbmRpZgorCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTE0MSw3ICsx
NDUsMTIgQEAgU2NyaXB0VmFsdWUgU2NyaXB0RnVuY3Rpb25DYWxsOjpjYWxsKGJvb2wmIGhhZEV4
Y2VwdGlvbiwgYm9vbCByZXBvcnRFeGNlcHRpb25zKQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpCiAgICAgICAgIHJldHVybiBTY3JpcHRWYWx1ZSgpOwogCi0gICAgSlNWYWx1ZSBy
ZXN1bHQgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2Fs
bFR5cGUsIGNhbGxEYXRhLCB0aGlzT2JqZWN0LCBtX2FyZ3VtZW50cyk7CisgICAgSlNWYWx1ZSBy
ZXN1bHQ7CisgICAgaWYgKGlzTWFpblRocmVhZCgpKQorICAgICAgICByZXN1bHQgPSBKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzT2JqZWN0LCBtX2FyZ3VtZW50cyk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBK
U0M6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzT2JqZWN0
LCBtX2FyZ3VtZW50cyk7CisKICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAg
ICAgICBpZiAocmVwb3J0RXhjZXB0aW9ucykKICAgICAgICAgICAgIHJlcG9ydEV4Y2VwdGlvbiht
X2V4ZWMsIG1fZXhlYy0+ZXhjZXB0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA1MmVjNzQ5MGEwNzdiNWNmZDRm
M2IwODVkMjg3N2JjODcwY2MwN2NmLi45ODVlNWVkZWMwN2I1MjYxYWM4MjdiZDE5NzQxMDdiYzBl
NjQyMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcApAQCAtNTMsMTMgKzUzLDE0IEBAIFBhc3NPd25QdHI8SW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyPiBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmNyZWF0ZUZvclBhZ2UoKQogCiBQYXNz
T3duUHRyPEluamVjdGVkU2NyaXB0TWFuYWdlcj4gSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVh
dGVGb3JXb3JrZXIoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKCZJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmNhbkFjY2Vzc0luc3BlY3RlZFdvcmtlckNv
bnRleHQpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluamVjdGVkU2NyaXB0TWFuYWdlcigm
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjYW5BY2Nlc3NJbnNwZWN0ZWRXb3JrZXJDb250ZXh0LCB0
cnVlKSk7CiB9CiAKLUluamVjdGVkU2NyaXB0TWFuYWdlcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2sgYWNjZXNzQ2hlY2spCitJbmplY3RlZFNjcmlwdE1h
bmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrIGFj
Y2Vzc0NoZWNrLCBib29sIGlzRm9yV29ya2VyKQogICAgIDogbV9uZXh0SW5qZWN0ZWRTY3JpcHRJ
ZCgxKQogICAgICwgbV9pbmplY3RlZFNjcmlwdEhvc3QoSW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVh
dGUoKSkKICAgICAsIG1faW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjayhhY2Nlc3NDaGVjaykKKyAg
ICAsIG1faXNGb3JXb3JrZXIoaXNGb3JXb3JrZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaAppbmRleCA0MzU5MGQxMjliNTEw
MTYxOTc4ZDFlMDk3MTEzNTI3YmM1NTUwN2Q3Li5hMWQ0YTg1OGEyMjY1ZTM3MWY1ZmFhNjNlNDMx
MjRjNDg1MmFkYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0TWFuYWdlci5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0ZWRT
dGF0ZUFjY2Vzc0NoZWNrIGluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2soKSBjb25zdCB7IHJldHVy
biBtX2luc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2s7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBJbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjayk7CisgICAg
ZXhwbGljaXQgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2ss
IGJvb2wgPSBmYWxzZSk7CiAKICAgICBTdHJpbmcgaW5qZWN0ZWRTY3JpcHRTb3VyY2UoKTsKICAg
ICBTY3JpcHRPYmplY3QgY3JlYXRlSW5qZWN0ZWRTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IFNjcmlwdFN0YXRlKiwgaW50IGlkKTsKQEAgLTgzLDYgKzgzLDkgQEAgcHJpdmF0ZToKICAgICBJ
bnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrIG1faW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjazsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8U2NyaXB0U3RhdGUqLCBpbnQ+IFNjcmlwdFN0YXRlVG9JZDsKICAg
ICBTY3JpcHRTdGF0ZVRvSWQgbV9zY3JpcHRTdGF0ZVRvSWQ7CisKK3Byb3RlY3RlZDoKKyAgICBi
b29sIG1faXNGb3JXb3JrZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>165341</attachid>
            <date>2012-09-24 03:24:02 -0700</date>
            <delta_ts>2012-09-24 03:24:02 -0700</delta_ts>
            <desc>how to reproduce this bug</desc>
            <filename>95341.png</filename>
            <type>image/png</type>
            <size>25343</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165344</attachid>
            <date>2012-09-24 03:38:37 -0700</date>
            <delta_ts>2012-09-24 20:02:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95341-20120924183756.patch</filename>
            <type>text/plain</type>
            <size>4384</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmMGM1NWQzODU1Mzlh
MTUxYjY1ZDgwZTIwN2UzNWZjMzE0ZmVmMi4uNTAyYjlkODYyZDMxM2ZkMDQ5ZTc3NDU2ZjUwNGUz
ZGM5YTBkZGE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI0ICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogIFRoZSBKUyBjb2RlIGluamVjdGVkIGJ5IHdvcmtlciBpbnNwZWN0b3Igc2hvdWxk
bid0IGJlIGV2YWx1YXRlZCB0aHJvdWdoIEpTTWFpblRocmVhZEV4ZWNTdGF0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBjYWxsZXIgaXMg
aW4gV29ya2VyIHRocmVhZCwgdGhlIEpTIGNvZGUgc2hvdWxkbid0IGJlIGV2YWx1YXRlZCB0aHJv
dWdoIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS4KKworICAgICAgICBObyBuZXcgdGVzdCBjYXNlLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVJbmplY3RlZFNjcmlw
dCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y2FsbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3Rl
ZFNjcmlwdE1hbmFnZXI6OmNyZWF0ZUZvcldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OkluamVjdGVkU2NyaXB0TWFuYWdlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKToKKwogMjAxMi0wOS0yNCAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbVGV4dEVkaXRvcl0gTGluZSBudW1iZXJz
IG91dCBvZiBzeW5jIGFmdGVyIGNsb3NpbmcgYnJlYWtwb2ludCBjb25kaXRpb24gZWRpdG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcApp
bmRleCBlNTI4NDJlMGJiYWE1ZTZjZjdjM2Q5YjFiNGZlY2QwZjI3NTY5MmRkLi5iZTkxZDVjZGNj
NzI4MmJhNGNiM2FhMTAxNjFlMjM2OGViMWQzZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKQEAgLTEzNSw3ICsxMzUsMTIgQEAg
U2NyaXB0VmFsdWUgU2NyaXB0RnVuY3Rpb25DYWxsOjpjYWxsKGJvb2wmIGhhZEV4Y2VwdGlvbiwg
Ym9vbCByZXBvcnRFeGNlcHRpb25zKQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUp
CiAgICAgICAgIHJldHVybiBTY3JpcHRWYWx1ZSgpOwogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNh
bGxEYXRhLCB0aGlzT2JqZWN0LCBtX2FyZ3VtZW50cyk7CisgICAgSlNWYWx1ZSByZXN1bHQ7Cisg
ICAgaWYgKGlzTWFpblRocmVhZCgpKQorICAgICAgICByZXN1bHQgPSBKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzT2Jq
ZWN0LCBtX2FyZ3VtZW50cyk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBKU0M6OmNhbGwo
bV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzT2JqZWN0LCBtX2FyZ3Vt
ZW50cyk7CisKICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBpZiAo
cmVwb3J0RXhjZXB0aW9ucykKICAgICAgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihtX2V4ZWMsIG1f
ZXhlYy0+ZXhjZXB0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA1MmVjNzQ5MGEwNzdiNWNmZDRmM2IwODVkMjg3
N2JjODcwY2MwN2NmLi45ODVlNWVkZWMwN2I1MjYxYWM4MjdiZDE5NzQxMDdiYzBlNjQyMzg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcApAQCAtNTMsMTMgKzUzLDE0IEBAIFBhc3NPd25QdHI8SW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
PiBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmNyZWF0ZUZvclBhZ2UoKQogCiBQYXNzT3duUHRyPElu
amVjdGVkU2NyaXB0TWFuYWdlcj4gSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVGb3JXb3Jr
ZXIoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCZJ
bmplY3RlZFNjcmlwdE1hbmFnZXI6OmNhbkFjY2Vzc0luc3BlY3RlZFdvcmtlckNvbnRleHQpKTsK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluamVjdGVkU2NyaXB0TWFuYWdlcigmSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyOjpjYW5BY2Nlc3NJbnNwZWN0ZWRXb3JrZXJDb250ZXh0LCB0cnVlKSk7CiB9
CiAKLUluamVjdGVkU2NyaXB0TWFuYWdlcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3Rl
ZFN0YXRlQWNjZXNzQ2hlY2sgYWNjZXNzQ2hlY2spCitJbmplY3RlZFNjcmlwdE1hbmFnZXI6Oklu
amVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrIGFjY2Vzc0NoZWNr
LCBib29sIGlzRm9yV29ya2VyKQogICAgIDogbV9uZXh0SW5qZWN0ZWRTY3JpcHRJZCgxKQogICAg
ICwgbV9pbmplY3RlZFNjcmlwdEhvc3QoSW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVhdGUoKSkKICAg
ICAsIG1faW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjayhhY2Nlc3NDaGVjaykKKyAgICAsIG1faXNG
b3JXb3JrZXIoaXNGb3JXb3JrZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaAppbmRleCAxMTFlMmIyYjgzNzMyNWJmMjEyMTU4
MDMzZTQ5ODc4OGVhM2UyNTgxLi45NmVkMWY0MmYyNDNkMjE3MThhNjZjM2E0NWU1ZmMzZTQwNTY4
NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFu
YWdlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0ZWRTdGF0ZUFjY2Vz
c0NoZWNrIGluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2soKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RlZFN0YXRlQWNjZXNzQ2hlY2s7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIoSW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjayk7CisgICAgZXhwbGljaXQg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2ssIGJvb2wgaXNG
b3JXb3JrZXIgPSBmYWxzZSk7CiAKICAgICBTdHJpbmcgaW5qZWN0ZWRTY3JpcHRTb3VyY2UoKTsK
ICAgICBTY3JpcHRPYmplY3QgY3JlYXRlSW5qZWN0ZWRTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3Vy
Y2UsIFNjcmlwdFN0YXRlKiwgaW50IGlkKTsKQEAgLTgyLDYgKzgyLDkgQEAgcHJpdmF0ZToKICAg
ICBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrIG1faW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjazsK
ICAgICB0eXBlZGVmIEhhc2hNYXA8U2NyaXB0U3RhdGUqLCBpbnQ+IFNjcmlwdFN0YXRlVG9JZDsK
ICAgICBTY3JpcHRTdGF0ZVRvSWQgbV9zY3JpcHRTdGF0ZVRvSWQ7CisKK3Byb3RlY3RlZDoKKyAg
ICBib29sIG1faXNGb3JXb3JrZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165502</attachid>
            <date>2012-09-24 20:02:28 -0700</date>
            <delta_ts>2012-09-25 01:39:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95341-20120925110145.patch</filename>
            <type>text/plain</type>
            <size>3269</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I4Y2Q2MGJlYTQ0NDVm
NGMzYmMyMGQxODhhMDE2ZDhhMzcxZWRjYy4uNjZiYjllOTNiYjU4M2NhNjIwYjRlNTU0ZWRhZTA3
Y2U3MGJlNDY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTI0ICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogIFRoZSBKUyBjb2RlIGluamVjdGVkIGJ5IHdvcmtlciBpbnNwZWN0b3Igc2hvdWxk
bid0IGJlIGV2YWx1YXRlZCB0aHJvdWdoIEpTTWFpblRocmVhZEV4ZWNTdGF0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZXh0cmEgY29kZSB0byAi
SlNDOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIiIGFuZCAiSlNDOjpTY3JpcHRGdW5jdGlvbkNhbGwi
IHRvIG1ha2Ugc3VyZSB0aGUKKyAgICAgICAgaW50ZXJmYWNlcyBvZiBKU01haW5UaHJlYWRFeGVj
U3RhdGUgYXJlIGludm9rZWQgb25seSBpbiBtYWluIHRocmVhZC4KKworICAgICAgICBObyBuZXcg
dGVzdCBjYXNlIGZvciB0aGlzIGJ1Zy4gV2l0aG91dCB0aGlzIHBhdGNoLCBvcGVuaW5nIHdvcmtl
ciBpbnNwZWN0b3Igd2lsbCBtZWV0IGZhaWxlZCBhc3NlcnQgc3RhdGVtZW50cy4gICAKKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y3JlYXRlSW5qZWN0ZWRTY3JpcHQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRGdW5jdGlvbkNhbGw6OmNhbGwpOgorCiAyMDEyLTA5LTI0ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEludGVsIE1hYyBuZWVk
cyBidWlsdC1pbiBmdW5jdGlvbiBlbXVsYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCBkYzUwMmZjOGRi
OWE0NzFkMTdiZDZlYTU4NzFiNjcyZDY2ZDRhYjlkLi45ZjkxMDk4NDk1NzM4YThiN2U3ZWRlNDBk
Njk5YzRmOTZlODNjMmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC01OSw3ICs1OSwxMyBAQCBTY3JpcHRP
YmplY3QgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVJbmplY3RlZFNjcmlwdChjb25zdCBT
dHJpbmcmIHNvdXJjZSwgUwogICAgIEpTVmFsdWUgZ2xvYmFsVGhpc1ZhbHVlID0gc2NyaXB0U3Rh
dGUtPmdsb2JhbFRoaXNWYWx1ZSgpOwogCiAgICAgSlNWYWx1ZSBldmFsdWF0aW9uRXhjZXB0aW9u
OwotICAgIEpTVmFsdWUgZXZhbHVhdGlvblJldHVyblZhbHVlID0gSlNNYWluVGhyZWFkRXhlY1N0
YXRlOjpldmFsdWF0ZShzY3JpcHRTdGF0ZSwgc291cmNlQ29kZSwgZ2xvYmFsVGhpc1ZhbHVlLCAm
ZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSBldmFsdWF0aW9uUmV0dXJuVmFsdWU7
CisgICAgaWYgKGlzTWFpblRocmVhZCgpKQorICAgICAgICBldmFsdWF0aW9uUmV0dXJuVmFsdWUg
PSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmV2YWx1YXRlKHNjcmlwdFN0YXRlLCBzb3VyY2VDb2Rl
LCBnbG9iYWxUaGlzVmFsdWUsICZldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhzY3JpcHRTdGF0ZSk7CisgICAgICAgIGV2YWx1
YXRpb25SZXR1cm5WYWx1ZSA9IEpTQzo6ZXZhbHVhdGUoc2NyaXB0U3RhdGUsIHNvdXJjZUNvZGUs
IGdsb2JhbFRoaXNWYWx1ZSwgJmV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIH0KICAgICBpZiAo
ZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAgcmV0dXJuIFNjcmlwdE9iamVjdCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcApp
bmRleCBlNTI4NDJlMGJiYWE1ZTZjZjdjM2Q5YjFiNGZlY2QwZjI3NTY5MmRkLi5iZTkxZDVjZGNj
NzI4MmJhNGNiM2FhMTAxNjFlMjM2OGViMWQzZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKQEAgLTEzNSw3ICsxMzUsMTIgQEAg
U2NyaXB0VmFsdWUgU2NyaXB0RnVuY3Rpb25DYWxsOjpjYWxsKGJvb2wmIGhhZEV4Y2VwdGlvbiwg
Ym9vbCByZXBvcnRFeGNlcHRpb25zKQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUp
CiAgICAgICAgIHJldHVybiBTY3JpcHRWYWx1ZSgpOwogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNh
bGxEYXRhLCB0aGlzT2JqZWN0LCBtX2FyZ3VtZW50cyk7CisgICAgSlNWYWx1ZSByZXN1bHQ7Cisg
ICAgaWYgKGlzTWFpblRocmVhZCgpKQorICAgICAgICByZXN1bHQgPSBKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmNhbGwobV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzT2Jq
ZWN0LCBtX2FyZ3VtZW50cyk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBKU0M6OmNhbGwo
bV9leGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzT2JqZWN0LCBtX2FyZ3Vt
ZW50cyk7CisKICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBpZiAo
cmVwb3J0RXhjZXB0aW9ucykKICAgICAgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihtX2V4ZWMsIG1f
ZXhlYy0+ZXhjZXB0aW9uKCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>