<?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>49727</bug_id>
          
          <creation_ts>2010-11-18 05:22:49 -0800</creation_ts>
          <short_desc>Web Inspector: [Chromium] Expose extension API to select a node in WebInspector</short_desc>
          <delta_ts>2010-11-29 10:21:43 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>fishd</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</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>310804</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-18 05:22:49 -0800</bug_when>
    <thetext>A WebInspector extension may need to interact with the Elements panel -- e.g. change or request currently selected node. Currently, we only provide an ability to call inspect() from the script being evaluated in the inspected page context. Using this interface is dangerous, as the code an extension evaluates is not isolated from page context. A more natural way for an extension to access inspector&apos;s DOM API would be via a content script, since it both provides DOM access and isolates extension JS context from the inspected page.
The proposed patch exposes chrome.experimental.devTools.inspect() to content script API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310815</commentid>
    <comment_count>1</comment_count>
      <attachid>74228</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-18 06:00:58 -0800</bug_when>
    <thetext>Created attachment 74228
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310816</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-18 06:02:35 -0800</bug_when>
    <thetext>Attachment 74228 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chromium/WebKit.gyp&apos;, u&apos;WebKit/chromium/public/WebDevToolsExtension.h&apos;, u&apos;WebKit/chromium/src/WebDevToolsExtensionImpl.cpp&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebDevToolsExtensionImpl.cpp:33:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit/chromium/src/WebDevToolsExtensionImpl.cpp:40:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit/chromium/src/WebDevToolsExtensionImpl.cpp:52:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebKit/chromium/public/WebDevToolsExtension.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 4 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310820</commentid>
    <comment_count>3</comment_count>
      <attachid>74231</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-18 06:11:13 -0800</bug_when>
    <thetext>Created attachment 74231
patch

Fixed style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310843</commentid>
    <comment_count>4</comment_count>
      <attachid>74231</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-11-18 07:07:05 -0800</bug_when>
    <thetext>Comment on attachment 74231
patch

Adding a static void WebScriptController::registerDevToolsExtensions() instead would reduce the API surface. There is no need to expose extension from WebKit in order to pass it into WebKit within the next statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310864</commentid>
    <comment_count>5</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-18 08:20:37 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 74231 [details])
&gt; Adding a static void WebScriptController::registerDevToolsExtensions() instead would reduce the API surface. There is no need to expose extension from WebKit in order to pass it into WebKit within the next statement.

The idea is that the actual decision on whether the binding should be exposed is made on the renderer side (see RenderThread::AllowScriptExtension). For WebDevToolsExtension, we could put the decision logic to WebKit&apos;s FrameLoaderClientImpl, but given this binding should only be exposed to content script (extensionGroup == 1) and we don&apos;t seem to know the content script group id on the webkit side, I&apos;d suggest we expose the extension via WebKit and register it the way other extensions are registered in RenderThread::EnsureWebKitInitialized().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311500</commentid>
    <comment_count>6</comment_count>
      <attachid>74231</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-11-19 08:47:13 -0800</bug_when>
    <thetext>Comment on attachment 74231
patch

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

&gt; WebKit/chromium/src/WebDevToolsExtensionImpl.cpp:95
&gt; +    &quot;chrome = chrome || {};&quot;

WebKit should not be modifying &quot;window.chrome&quot;

That belongs to Chromium, and we setup that in chrome/renderer.
Perhaps you should move this extension there?

Also, WebKit/chromium/src is not the place to be defining &quot;web platform APIs.&quot;
That should be done in WebCore.  The only exception is window.chrome, which is
for UA specific things, and therefore does not belong in the WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313720</commentid>
    <comment_count>7</comment_count>
      <attachid>74863</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-25 05:49:29 -0800</bug_when>
    <thetext>Created attachment 74863
patch

Moved chrome.experimental.devTools.inspect(node) to chrome, exposed WebDevToolsAgent::inspectNode() from WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314058</commentid>
    <comment_count>8</comment_count>
      <attachid>74863</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-11-26 10:10:13 -0800</bug_when>
    <thetext>Comment on attachment 74863
patch

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

&gt; WebKit/chromium/public/WebDevToolsAgent.h:38
&gt; +class Context;

nit: looks like the forward declaration of Context is not needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314491</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-29 10:21:43 -0800</bug_when>
    <thetext>Manually committed r72810: http://trac.webkit.org/changeset/72810</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74228</attachid>
            <date>2010-11-18 06:00:58 -0800</date>
            <delta_ts>2010-11-18 06:11:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>inspect-node</filename>
            <type>text/plain</type>
            <size>7765</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDUyZTgzMWEuLjU0ZWQ3MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEwLTExLTE4ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogW0Nocm9taXVtXSBFeHBvc2UgZXh0ZW5zaW9uIEFQSSB0byBzZWxlY3QgYSBub2Rl
IGluIFdlYkluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDk3MjcKKworICAgICAgICAqIHB1YmxpYy9XZWJEZXZUb29sc0V4dGVuc2lvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNFeHRlbnNpb25JbXBsLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzRXh0ZW5zaW9uOjpleHRlbnNpb24pOgor
CiAyMDEwLTExLTEyICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDRkY2M2
MWEuLmFkNmRkMDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMzgsNiArMTM4LDcgQEAKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkRhdGFTb3VyY2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJEZXZUb29sc0FnZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRGV2VG9v
bHNBZ2VudENsaWVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkRldlRvb2xzRXh0
ZW5zaW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRGV2VG9vbHNGcm9udGVuZC5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkRldlRvb2xzRnJvbnRlbmRDbGllbnQuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJEZXZpY2VPcmllbnRhdGlvbi5oJywKQEAgLTQx
NSw2ICs0MTYsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViRGF0YVNvdXJjZUltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaCcsCisgICAgICAgICAgICAgICAg
J3NyYy9XZWJEZXZUb29sc0V4dGVuc2lvbkltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYkRldlRvb2xzRnJvbnRlbmRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJE
ZXZUb29sc0Zyb250ZW5kSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkRldmljZU9y
aWVudGF0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dlRvb2xzRXh0ZW5zaW9uLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzRXh0
ZW5zaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTdhNWMxNAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNFeHRlbnNp
b24uaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJEZXZUb29sc0V4dGVuc2lvbl9oCisjZGVm
aW5lIFdlYkRldlRvb2xzRXh0ZW5zaW9uX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorCitu
YW1lc3BhY2UgdjggeworICAgIGNsYXNzIEV4dGVuc2lvbjsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0cnVjdCBXZWJEZXZUb29sc0V4dGVuc2lvbiB7CisgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdjg6OkV4dGVuc2lvbiogZXh0ZW5zaW9uKCk7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJE
ZXZUb29sc0V4dGVuc2lvbl9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzRXh0ZW5zaW9uSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
RXh0ZW5zaW9uSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU4
OTQ1YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNF
eHRlbnNpb25JbXBsLmNwcApAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJWOE5vZGUuaCIKKyNpbmNsdWRlICJW
OFByb3h5LmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgorCisjaW5jbHVkZSAiV2ViRGV2
VG9vbHNFeHRlbnNpb24uaCIKKwordXNpbmcgV2ViQ29yZTo6RnJhbWU7Cit1c2luZyBXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOwordXNpbmcgV2ViQ29yZTo6Tm9kZTsKK3VzaW5nIFdlYkNv
cmU6OlY4Tm9kZTsKK3VzaW5nIFdlYkNvcmU6OlY4UHJveHk7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworbmFtZXNwYWNlIHsKKworY2xhc3MgV2ViRGV2VG9vbHNFeHRlbnNpb25JbXBsOiBwdWJsaWMg
djg6OkV4dGVuc2lvbgoreworcHVibGljOgorICAgIFdlYkRldlRvb2xzRXh0ZW5zaW9uSW1wbCgp
CisgICAgICAgIDogdjg6OkV4dGVuc2lvbigiY2hyb21pdW0vRGV2VG9vbHNFeHRlbnNpb24iLCBT
b3VyY2UpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgY2hhciBT
b3VyY2VbXTsKKworICAgIHZpcnR1YWwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
R2V0TmF0aXZlRnVuY3Rpb24odjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBuYW1lKQorICAgIHsKKyAg
ICAgICAgaWYgKG5hbWUtPkVxdWFscyh2ODo6U3RyaW5nOjpOZXcoIkluc3BlY3ROb2RlIikpKQor
ICAgICAgICAgICAgcmV0dXJuIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoSW5zcGVjdE5vZGUp
OworICAgICAgICByZXR1cm4gdjg6OkV4dGVuc2lvbjo6R2V0TmF0aXZlRnVuY3Rpb24obmFtZSk7
CisgICAgfQorCisgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBJbnNwZWN0Tm9kZShj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFyZ3MuTGVu
Z3RoKCkgPT0gMSk7CisgICAgICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDEpCisgICAgICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgICAgIGlmICghVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzBdKSkgeworICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFdl
YkNvcmU6OlRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZp
bmVkKCk7CisgICAgICAgIH0KKworICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKKyAgICAgICAgRnJhbWUq
IGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckN1cnJlbnRDb250ZXh0KCk7CisgICAg
ICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3IgPSBmcmFtZSAmJiBmcmFtZS0+
cGFnZSgpID8gZnJhbWUtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpIDogMCkKKyAgICAg
ICAgICAgIGluc3BlY3Rvci0+aW5zcGVjdChub2RlKTsKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgdjg6OkV4dGVuc2lvbiogaW5z
dGFuY2UoKQorICAgIHsKKyAgICAgICAgc3RhdGljIHY4OjpFeHRlbnNpb24qIGluc3RhbmNlID0g
bmV3IFdlYkRldlRvb2xzRXh0ZW5zaW9uSW1wbCgpOworICAgICAgICByZXR1cm4gaW5zdGFuY2U7
CisgICAgfQorfTsKKworY29uc3QgY2hhciBXZWJEZXZUb29sc0V4dGVuc2lvbkltcGw6OlNvdXJj
ZVtdID0KKyAgICAiY2hyb21lID0gY2hyb21lIHx8IHt9OyIKKyAgICAiY2hyb21lLmV4cGVyaW1l
bnRhbCA9IGNocm9tZS5leHBlcmltZW50YWwgfHwge307IgorICAgICJjaHJvbWUuZXhwZXJpbWVu
dGFsLmRldlRvb2xzID0gY2hyb21lLmV4cGVyaW1lbnRhbC5kZXZUb29scyB8fCB7fTsiCisgICAg
IihmdW5jdGlvbigpIHsgbmF0aXZlIGZ1bmN0aW9uIEluc3BlY3ROb2RlKG5vZGUpOyIKKyAgICAi
Y2hyb21lLmV4cGVyaW1lbnRhbC5kZXZUb29scy5pbnNwZWN0Tm9kZSA9IGZ1bmN0aW9uKG5vZGUp
IHsgSW5zcGVjdE5vZGUobm9kZSk7IH07IH0pKCk7IjsKKworfSAvLyBuYW1lc3BhY2UKKwordjg6
OkV4dGVuc2lvbiogV2ViRGV2VG9vbHNFeHRlbnNpb246OmV4dGVuc2lvbigpCit7CisgICAgcmV0
dXJuIFdlYkRldlRvb2xzRXh0ZW5zaW9uSW1wbDo6aW5zdGFuY2UoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74231</attachid>
            <date>2010-11-18 06:11:13 -0800</date>
            <delta_ts>2010-11-25 05:49:29 -0800</delta_ts>
            <desc>patch</desc>
            <filename>inspect-node</filename>
            <type>text/plain</type>
            <size>7760</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDUyZTgzMWEuLjU0ZWQ3MjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEwLTExLTE4ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogW0Nocm9taXVtXSBFeHBvc2UgZXh0ZW5zaW9uIEFQSSB0byBzZWxlY3QgYSBub2Rl
IGluIFdlYkluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDk3MjcKKworICAgICAgICAqIHB1YmxpYy9XZWJEZXZUb29sc0V4dGVuc2lvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNFeHRlbnNpb25JbXBsLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzRXh0ZW5zaW9uOjpleHRlbnNpb24pOgor
CiAyMDEwLTExLTEyICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDRkY2M2
MWEuLmFkNmRkMDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMzgsNiArMTM4LDcgQEAKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkRhdGFTb3VyY2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJEZXZUb29sc0FnZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRGV2VG9v
bHNBZ2VudENsaWVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkRldlRvb2xzRXh0
ZW5zaW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRGV2VG9vbHNGcm9udGVuZC5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkRldlRvb2xzRnJvbnRlbmRDbGllbnQuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJEZXZpY2VPcmllbnRhdGlvbi5oJywKQEAgLTQx
NSw2ICs0MTYsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViRGF0YVNvdXJjZUltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaCcsCisgICAgICAgICAgICAgICAg
J3NyYy9XZWJEZXZUb29sc0V4dGVuc2lvbkltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYkRldlRvb2xzRnJvbnRlbmRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJE
ZXZUb29sc0Zyb250ZW5kSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkRldmljZU9y
aWVudGF0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dlRvb2xzRXh0ZW5zaW9uLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzRXh0
ZW5zaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjI5YTYxYwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNFeHRlbnNp
b24uaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJEZXZUb29sc0V4dGVuc2lvbl9oCisjZGVm
aW5lIFdlYkRldlRvb2xzRXh0ZW5zaW9uX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorCitu
YW1lc3BhY2UgdjggeworY2xhc3MgRXh0ZW5zaW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RydWN0IFdlYkRldlRvb2xzRXh0ZW5zaW9uIHsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyB2
ODo6RXh0ZW5zaW9uKiBleHRlbnNpb24oKTsKK307CisKK30KKworI2VuZGlmIC8vIFdlYkRldlRv
b2xzRXh0ZW5zaW9uX2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNFeHRlbnNpb25JbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNFeHRl
bnNpb25JbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNjgyMGQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0V4dGVu
c2lvbkltcGwuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkRldlRvb2xzRXh0ZW5zaW9uLmgiCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiVjhOb2RlLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgInY4L2lu
Y2x1ZGUvdjguaCIKKworCit1c2luZyBXZWJDb3JlOjpGcmFtZTsKK3VzaW5nIFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI7Cit1c2luZyBXZWJDb3JlOjpOb2RlOwordXNpbmcgV2ViQ29yZTo6
VjhOb2RlOwordXNpbmcgV2ViQ29yZTo6VjhQcm94eTsKKworbmFtZXNwYWNlIFdlYktpdCB7Citu
YW1lc3BhY2UgeworCitjbGFzcyBXZWJEZXZUb29sc0V4dGVuc2lvbkltcGw6IHB1YmxpYyB2ODo6
RXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBXZWJEZXZUb29sc0V4dGVuc2lvbkltcGwoKQorICAg
ICAgICA6IHY4OjpFeHRlbnNpb24oImNocm9taXVtL0RldlRvb2xzRXh0ZW5zaW9uIiwgU291cmNl
KQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU291cmNl
W107CisKKyAgICB2aXJ0dWFsIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IEdldE5h
dGl2ZUZ1bmN0aW9uKHY4OjpIYW5kbGU8djg6OlN0cmluZz4gbmFtZSkKKyAgICB7CisgICAgICAg
IGlmIChuYW1lLT5FcXVhbHModjg6OlN0cmluZzo6TmV3KCJJbnNwZWN0Tm9kZSIpKSkKKyAgICAg
ICAgICAgIHJldHVybiB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KEluc3BlY3ROb2RlKTsKKyAg
ICAgICAgcmV0dXJuIHY4OjpFeHRlbnNpb246OkdldE5hdGl2ZUZ1bmN0aW9uKG5hbWUpOworICAg
IH0KKworICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gSW5zcGVjdE5vZGUoY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKKyAgICB7CisgICAgICAgIEFTU0VSVChhcmdzLkxlbmd0aCgp
ID09IDEpOworICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAxKQorICAgICAgICAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgICAgICBpZiAoIVY4Tm9kZTo6SGFzSW5zdGFuY2Uo
YXJnc1swXSkpIHsKKyAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihXZWJDb3Jl
OjpUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OworICAgICAgICB9CisKKyAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUodjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSk7CisgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDdXJyZW50Q29udGV4dCgpOworICAgICAgICBp
ZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yID0gZnJhbWUgJiYgZnJhbWUtPnBhZ2Uo
KSA/IGZyYW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSA6IDApCisgICAgICAgICAg
ICBpbnNwZWN0b3ItPmluc3BlY3Qobm9kZSk7CisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7CisgICAgfQorCitwdWJsaWM6CisgICAgc3RhdGljIHY4OjpFeHRlbnNpb24qIGluc3RhbmNl
KCkKKyAgICB7CisgICAgICAgIHN0YXRpYyB2ODo6RXh0ZW5zaW9uKiBpbnN0YW5jZSA9IG5ldyBX
ZWJEZXZUb29sc0V4dGVuc2lvbkltcGwoKTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAg
IH0KK307CisKK2NvbnN0IGNoYXIgV2ViRGV2VG9vbHNFeHRlbnNpb25JbXBsOjpTb3VyY2VbXSA9
CisgICAgImNocm9tZSA9IGNocm9tZSB8fCB7fTsiCisgICAgImNocm9tZS5leHBlcmltZW50YWwg
PSBjaHJvbWUuZXhwZXJpbWVudGFsIHx8IHt9OyIKKyAgICAiY2hyb21lLmV4cGVyaW1lbnRhbC5k
ZXZUb29scyA9IGNocm9tZS5leHBlcmltZW50YWwuZGV2VG9vbHMgfHwge307IgorICAgICIoZnVu
Y3Rpb24oKSB7IG5hdGl2ZSBmdW5jdGlvbiBJbnNwZWN0Tm9kZShub2RlKTsiCisgICAgImNocm9t
ZS5leHBlcmltZW50YWwuZGV2VG9vbHMuaW5zcGVjdE5vZGUgPSBmdW5jdGlvbihub2RlKSB7IElu
c3BlY3ROb2RlKG5vZGUpOyB9OyB9KSgpOyI7CisKK30gLy8gbmFtZXNwYWNlCisKK3Y4OjpFeHRl
bnNpb24qIFdlYkRldlRvb2xzRXh0ZW5zaW9uOjpleHRlbnNpb24oKQoreworICAgIHJldHVybiBX
ZWJEZXZUb29sc0V4dGVuc2lvbkltcGw6Omluc3RhbmNlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAo=
</data>
<flag name="review"
          id="64792"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74863</attachid>
            <date>2010-11-25 05:49:29 -0800</date>
            <delta_ts>2010-11-26 10:10:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>extensions-inspect.diff</filename>
            <type>text/plain</type>
            <size>3699</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDRlY2QxOWEuLjhmMWM2OTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEwLTExLTI1ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogW0Nocm9taXVtXSBFeHBvc2UgZXh0ZW5zaW9uIEFQSSB0byBzZWxlY3QgYSBub2Rl
IGluIFdlYkluc3BlY3RvcgorICAgICAgICBBZGRlZCBXZWJEZXZUb29sc0FnZW50OjppbnNwZWN0
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzI3
CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAqIHNyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdl
bnRJbXBsOjppbnNwZWN0Tm9kZSk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
Lmg6CisKIDIwMTAtMTEtMjQgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRGV2VG9vbHNBZ2VudC5oCmluZGV4IDZiNGQyMzcuLmUzZmJlNzcgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCkBAIC0zMyw2ICszMywxNCBAQAogCiAjaW5j
bHVkZSAiV2ViQ29tbW9uLmgiCiAKKyNpZiBXRUJLSVRfVVNJTkdfVjgKK25hbWVzcGFjZSB2OCB7
CitjbGFzcyBDb250ZXh0OworY2xhc3MgVmFsdWU7Cit0ZW1wbGF0ZSA8Y2xhc3MgVD4gY2xhc3Mg
SGFuZGxlOworfQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRGV2VG9v
bHNBZ2VudENsaWVudDsKIGNsYXNzIFdlYkRldlRvb2xzTWVzc2FnZVRyYW5zcG9ydDsKQEAgLTU4
LDcgKzY2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9y
QmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JikgPSAwOwotCisjaWYgV0VCS0lUX1VT
SU5HX1Y4CisgICAgdmlydHVhbCB2b2lkIGluc3BlY3ROb2RlKHY4OjpIYW5kbGU8djg6OlZhbHVl
PikgPSAwOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHNldFJ1bnRpbWVQcm9wZXJ0eShjb25z
dCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpID0gMDsKIAogICAgIC8v
IEV4cG9zZWQgZm9yIExheW91dFRlc3RDb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA4ODBhZGI0Li45ZjRjZTg3IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtMzMsNiArMzMs
NyBAQAogCiAjaW5jbHVkZSAiRGVidWdnZXJBZ2VudEltcGwuaCIKICNpbmNsdWRlICJEZWJ1Z2dl
ckFnZW50TWFuYWdlci5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAK
ICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2
ZXIuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOE5vZGUuaCIKICNpbmNs
dWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJXZWJE
YXRhU291cmNlLmgiCkBAIC03NCw2ICs3Niw3IEBAIHVzaW5nIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdDsKIHVzaW5nIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U7CiB1c2luZyBXVEY6OlN0cmlu
ZzsKIHVzaW5nIFdlYkNvcmU6OlY4RE9NV3JhcHBlcjsKK3VzaW5nIFdlYkNvcmU6OlY4Tm9kZTsK
IHVzaW5nIFdlYkNvcmU6OlY4UHJveHk7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjQzLDYg
KzI0NiwxNCBAQCB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjppbnNwZWN0RWxlbWVudEF0KGNv
bnN0IFdlYlBvaW50JiBwb2ludCkKICAgICBtX3dlYlZpZXdJbXBsLT5pbnNwZWN0RWxlbWVudEF0
KHBvaW50KTsKIH0KIAordm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6aW5zcGVjdE5vZGUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IG5vZGUpCit7CisgICAgaWYgKCFWOE5vZGU6Okhhc0luc3RhbmNl
KG5vZGUpKQorICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oV2ViQ29yZTo6VFlQRV9N
SVNNQVRDSF9FUlIpOworICAgIGVsc2UKKyAgICAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5p
bnNwZWN0KFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChub2Rl
KSkpOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRSdW50aW1lUHJvcGVydHko
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKQogewogICAgIGlm
IChuYW1lID09IGtBcHVBZ2VudEZlYXR1cmVOYW1lKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IGZlYjRiZGQuLjQ4N2NmMGMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTc1LDYgKzc1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWROYXZpZ2F0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZp
cnR1YWwgdm9pZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CisgICAg
dmlydHVhbCB2b2lkIGluc3BlY3ROb2RlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBub2RlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3Qg
V2ViU3RyaW5nJiBzY3JpcHQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSdW50aW1lUHJvcGVydHko
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlKTsK
</data>
<flag name="review"
          id="65568"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="65661"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>