<?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>189775</bug_id>
          
          <creation_ts>2018-09-19 20:55:49 -0700</creation_ts>
          <short_desc>Improve node statistics for rare data</short_desc>
          <delta_ts>2018-09-19 23:21:00 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1461220</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-19 20:55:49 -0700</bug_when>
    <thetext>Improve node statistics for rare data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461221</commentid>
    <comment_count>1</comment_count>
      <attachid>350167</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-19 20:58:57 -0700</bug_when>
    <thetext>Created attachment 350167
Improved the logging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461222</commentid>
    <comment_count>2</comment_count>
      <attachid>350167</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-19 21:08:16 -0700</bug_when>
    <thetext>Comment on attachment 350167
Improved the logging

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

&gt; Source/WebCore/dom/Node.cpp:130
&gt; +static const char* stringForRareDataUseType(NodeRareData::UseType useType)
&gt; +{
&gt; +    switch (useType) {
&gt; +    case NodeRareData::UseType::ConnectedFrameCount:
&gt; +        return &quot;ConnectedFrameCount&quot;;
&gt; +    case NodeRareData::UseType::NodeList:
&gt; +        return &quot;NodeList&quot;;
&gt; +    case NodeRareData::UseType::MutationObserver:
&gt; +        return &quot;MutationObserver&quot;;
&gt; +    case NodeRareData::UseType::TabIndex:
&gt; +        return &quot;TabIndex&quot;;
&gt; +    case NodeRareData::UseType::StyleFlags:
&gt; +        return &quot;StyleFlags&quot;;
&gt; +    case NodeRareData::UseType::MinimumSize:
&gt; +        return &quot;MinimumSize&quot;;
&gt; +    case NodeRareData::UseType::ScrollingPosition:
&gt; +        return &quot;ScrollingPosition&quot;;
&gt; +    case NodeRareData::UseType::ComputedStyle:
&gt; +        return &quot;ComputedStyle&quot;;
&gt; +    case NodeRareData::UseType::Dataset:
&gt; +        return &quot;Dataset&quot;;
&gt; +    case NodeRareData::UseType::ClassList:
&gt; +        return &quot;ClassList&quot;;
&gt; +    case NodeRareData::UseType::ShadowRoot:
&gt; +        return &quot;ShadowRoot&quot;;
&gt; +    case NodeRareData::UseType::CustomElementQueue:
&gt; +        return &quot;CustomElementQueue&quot;;
&gt; +    case NodeRareData::UseType::AttributeMap:
&gt; +        return &quot;AttributeMap&quot;;
&gt; +    case NodeRareData::UseType::InteractionObserver:
&gt; +        return &quot;InteractionObserver&quot;;
&gt; +    case NodeRareData::UseType::PseudoElements:
&gt; +        return &quot;PseudoElements&quot;;
&gt; +    }
&gt; +    return nullptr;
&gt; +}

It would be nicer to implement TextStream&amp; operator&lt;&lt;(TextStream&amp; ts, NodeRareData::UseType) and do the outputting by building a TextStream. Then we can use that for log streams as well.

&gt; Source/WebCore/dom/Node.cpp:175
&gt; +            for (auto type : useTypes) {
&gt; +                UNUSED_PARAM(type);
&gt; +                useTypeCount++;
&gt; +            }

Why not implement OptionSet::numberOfBitsSet() with one of the classic bit-counting algorithms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461226</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-19 21:19:27 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 350167 [details]
&gt; Improved the logging
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350167&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:130
&gt; &gt; +static const char* stringForRareDataUseType(NodeRareData::UseType useType)
&gt; &gt; +{
&gt; &gt; +    switch (useType) {
&gt; &gt; +    case NodeRareData::UseType::ConnectedFrameCount:
&gt; &gt; +        return &quot;ConnectedFrameCount&quot;;
&gt; &gt; +    case NodeRareData::UseType::NodeList:
&gt; &gt; +        return &quot;NodeList&quot;;
&gt; &gt; +    case NodeRareData::UseType::MutationObserver:
&gt; &gt; +        return &quot;MutationObserver&quot;;
&gt; &gt; +    case NodeRareData::UseType::TabIndex:
&gt; &gt; +        return &quot;TabIndex&quot;;
&gt; &gt; +    case NodeRareData::UseType::StyleFlags:
&gt; &gt; +        return &quot;StyleFlags&quot;;
&gt; &gt; +    case NodeRareData::UseType::MinimumSize:
&gt; &gt; +        return &quot;MinimumSize&quot;;
&gt; &gt; +    case NodeRareData::UseType::ScrollingPosition:
&gt; &gt; +        return &quot;ScrollingPosition&quot;;
&gt; &gt; +    case NodeRareData::UseType::ComputedStyle:
&gt; &gt; +        return &quot;ComputedStyle&quot;;
&gt; &gt; +    case NodeRareData::UseType::Dataset:
&gt; &gt; +        return &quot;Dataset&quot;;
&gt; &gt; +    case NodeRareData::UseType::ClassList:
&gt; &gt; +        return &quot;ClassList&quot;;
&gt; &gt; +    case NodeRareData::UseType::ShadowRoot:
&gt; &gt; +        return &quot;ShadowRoot&quot;;
&gt; &gt; +    case NodeRareData::UseType::CustomElementQueue:
&gt; &gt; +        return &quot;CustomElementQueue&quot;;
&gt; &gt; +    case NodeRareData::UseType::AttributeMap:
&gt; &gt; +        return &quot;AttributeMap&quot;;
&gt; &gt; +    case NodeRareData::UseType::InteractionObserver:
&gt; &gt; +        return &quot;InteractionObserver&quot;;
&gt; &gt; +    case NodeRareData::UseType::PseudoElements:
&gt; &gt; +        return &quot;PseudoElements&quot;;
&gt; &gt; +    }
&gt; &gt; +    return nullptr;
&gt; &gt; +}
&gt; 
&gt; It would be nicer to implement TextStream&amp; operator&lt;&lt;(TextStream&amp; ts,
&gt; NodeRareData::UseType) and do the outputting by building a TextStream. Then
&gt; we can use that for log streams as well.

Yeah, I did consider doing that but that seemed like a lot of rewrites so we should probably do it in a separate patch from this.

&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:175
&gt; &gt; +            for (auto type : useTypes) {
&gt; &gt; +                UNUSED_PARAM(type);
&gt; &gt; +                useTypeCount++;
&gt; &gt; +            }
&gt; 
&gt; Why not implement OptionSet::numberOfBitsSet() with one of the classic
&gt; bit-counting algorithms?

I think OptionSet::size() is being added in https://bugs.webkit.org/show_bug.cgi?id=189633. We can simply use that once that&apos;s available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461228</commentid>
    <comment_count>4</comment_count>
      <attachid>350167</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-09-19 21:33:31 -0700</bug_when>
    <thetext>Comment on attachment 350167
Improved the logging

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

&gt; Source/WebCore/dom/Element.cpp:3445
&gt; +#if DUMP_NODE_STATISTICS

I am assuming DUMP_NODE_STATISTICS is always defined.

&gt; Source/WebCore/dom/NodeRareData.h:252
&gt; +#if defined(DUMP_NODE_STATISTICS) &amp;&amp; DUMP_NODE_STATISTICS

Is DUMP_NODE_STATISTICS always defined? or not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461240</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-19 23:10:11 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #4)
&gt; Comment on attachment 350167 [details]
&gt; Improved the logging
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350167&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:3445
&gt; &gt; +#if DUMP_NODE_STATISTICS

It&apos;s always defined in Node.h

&gt; I am assuming DUMP_NODE_STATISTICS is always defined.
&gt; 
&gt; &gt; Source/WebCore/dom/NodeRareData.h:252
&gt; &gt; +#if defined(DUMP_NODE_STATISTICS) &amp;&amp; DUMP_NODE_STATISTICS
&gt; 
&gt; Is DUMP_NODE_STATISTICS always defined? or not?

NodeRareData.h can be included in places where Node.h isn&apos;t included. In those cases, we don&apos;t want to cause a compiler error or include Node.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461243</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-19 23:15:01 -0700</bug_when>
    <thetext>Committed r236241: &lt;https://trac.webkit.org/changeset/236241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461244</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-19 23:15:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/44630168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461245</commentid>
    <comment_count>8</comment_count>
      <attachid>350172</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-19 23:21:00 -0700</bug_when>
    <thetext>Created attachment 350172
Patch to enable the statistics every 100 nodes</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350167</attachid>
            <date>2018-09-19 20:58:57 -0700</date>
            <delta_ts>2018-09-19 21:08:16 -0700</delta_ts>
            <desc>Improved the logging</desc>
            <filename>bug-189775-20180919205856.patch</filename>
            <type>text/plain</type>
            <size>11557</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjIzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE4LTA5LTE5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcHJvdmUgbm9kZSBzdGF0aXN0
aWNzIGZvciByYXJlIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4OTc3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlcG9ydCByZWFzb25zIHdlIGNyZWF0ZWQgTm9kZVJhcmVEYXRhIGFuZCBFbGVt
ZW50UmFyZURhdGEgaW4gbm9kZSBzdGF0aXN0aWNzLgorCisgICAgICAgIEFkZGVkIE5vZGVSYXJl
RGF0YTo6dXNlVHlwZXMgYW5kIEVsZW1lbnRSYXJlRGF0YTo6dXNlVHlwZXMgd2hpY2ggcmV0dXJu
cyBPcHRpb25TZXQ8Tm9kZVJhcmVEYXRhOjpVc2VUeXBlPgorICAgICAgICBpbmRpY2F0aW5nIHdo
aWNoIGluc3RhbmNlIG1lbWJlciBvZiB0aGUgcmFyZSBkYXRhIGlzIGN1cnJlbnRseSBpbiB1c2Uu
CisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoK
KyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpkZWZh
dWx0TWluaW11bVNpemVGb3JSZXNpemluZyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFy
ZURhdGE6OnVzZVR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzdHJpbmdGb3JSYXJlRGF0YVVzZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6ZHVtcFN0YXRpc3RpY3MpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuY3BwOgor
ICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJl
RGF0YTo6dXNlVHlwZXMgY29uc3QpOgorCiAyMDE4LTA5LTE5ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIzNTkxNyk6IDIlIHJlZ3Jlc3Np
b24gaW4gRHJvbWFlbyBDU1Mgc2VsZWN0b3Igb24gTWFjQm9va1BybzExLDQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDIzNjIzOSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0Miw3ICszNDQyLDcgQEAgYm9vbCBFbGVt
ZW50OjpmYXN0QXR0cmlidXRlTG9va3VwQWxsb3dlZAogfQogI2VuZGlmCiAKLSNpZmRlZiBEVU1Q
X05PREVfU1RBVElTVElDUworI2lmIERVTVBfTk9ERV9TVEFUSVNUSUNTCiBib29sIEVsZW1lbnQ6
Omhhc05hbWVkTm9kZU1hcCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYg
ZWxlbWVudFJhcmVEYXRhKCktPmF0dHJpYnV0ZU1hcCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CShyZXZpc2lvbiAyMzYyMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgZmFzdEF0dHJpYnV0ZUxvb2t1cEFsbG93ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNv
bnN0OwogI2VuZGlmCiAKLSNpZmRlZiBEVU1QX05PREVfU1RBVElTVElDUworI2lmIERVTVBfTk9E
RV9TVEFUSVNUSUNTCiAgICAgYm9vbCBoYXNOYW1lZE5vZGVNYXAoKSBjb25zdDsKICNlbmRpZgog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzQXR0cmlidXRlcygpIGNvbnN0OwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMjM2MjM5KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
MywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2lubGluZSBJbnRTaXplIGRlZmF1bHRN
aW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkKK3sKKyAgICByZXR1cm4gSW50U2l6ZShMYXlvdXRVbml0
OjptYXgoKSwgTGF5b3V0VW5pdDo6bWF4KCkpOworfQorCiBjbGFzcyBFbGVtZW50UmFyZURhdGEg
OiBwdWJsaWMgTm9kZVJhcmVEYXRhIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBFbGVtZW50UmFy
ZURhdGEoUmVuZGVyRWxlbWVudCopOwpAQCAtMTIyLDYgKzEyNyw0MSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoc3RkOjp1bmlxdWVfcHRyPEludGVyc2Vj
dGlvbk9ic2VydmVyRGF0YT4mJiBkYXRhKSB7IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhID0g
V1RGTW92ZShkYXRhKTsgfQogI2VuZGlmCiAKKyNpZiBEVU1QX05PREVfU1RBVElTVElDUworICAg
IE9wdGlvblNldDxVc2VUeXBlPiB1c2VUeXBlcygpIGNvbnN0CisgICAgeworICAgICAgICBhdXRv
IHJlc3VsdCA9IE5vZGVSYXJlRGF0YTo6dXNlVHlwZXMoKTsKKyAgICAgICAgaWYgKG1fdGFiSW5k
ZXhXYXNTZXRFeHBsaWNpdGx5KQorICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpUYWJJ
bmRleCk7CisgICAgICAgIGlmIChtX3N0eWxlQWZmZWN0ZWRCeUFjdGl2ZSB8fCBtX3N0eWxlQWZm
ZWN0ZWRCeUVtcHR5IHx8IG1fc3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4gfHwgbV9jaGlsZHJl
bkFmZmVjdGVkQnlIb3ZlcgorICAgICAgICAgICAgfHwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEcmFn
IHx8IG1fY2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXMgfHwgbV9jaGlsZHJlbkFmZmVj
dGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzCisgICAgICAgICAgICB8fCBtX2Rlc2NlbmRhbnRz
QWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgfHwgbV9jaGlsZHJlbkFmZmVjdGVkQnlC
YWNrd2FyZFBvc2l0aW9uYWxSdWxlcworICAgICAgICAgICAgfHwgbV9kZXNjZW5kYW50c0FmZmVj
dGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyB8fCBtX2NoaWxkcmVuQWZmZWN0ZWRCeVByb3Bl
cnR5QmFzZWRCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcykKKyAgICAgICAgICAgIHJlc3VsdC5hZGQo
VXNlVHlwZTo6U3R5bGVGbGFncyk7CisgICAgICAgIGlmIChtX21pbmltdW1TaXplRm9yUmVzaXpp
bmcgIT0gZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKSkKKyAgICAgICAgICAgIHJlc3Vs
dC5hZGQoVXNlVHlwZTo6TWluaW11bVNpemUpOworICAgICAgICBpZiAoIW1fc2F2ZWRMYXllclNj
cm9sbFBvc2l0aW9uLmlzWmVybygpKQorICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpT
Y3JvbGxpbmdQb3NpdGlvbik7CisgICAgICAgIGlmIChtX2NvbXB1dGVkU3R5bGUpCisgICAgICAg
ICAgICByZXN1bHQuYWRkKFVzZVR5cGU6OkNvbXB1dGVkU3R5bGUpOworICAgICAgICBpZiAobV9k
YXRhc2V0KQorICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpEYXRhc2V0KTsKKyAgICAg
ICAgaWYgKG1fY2xhc3NMaXN0KQorICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpDbGFz
c0xpc3QpOworICAgICAgICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgcmVzdWx0LmFk
ZChVc2VUeXBlOjpTaGFkb3dSb290KTsKKyAgICAgICAgaWYgKG1fY3VzdG9tRWxlbWVudFJlYWN0
aW9uUXVldWUpCisgICAgICAgICAgICByZXN1bHQuYWRkKFVzZVR5cGU6OkN1c3RvbUVsZW1lbnRR
dWV1ZSk7CisgICAgICAgIGlmIChtX2F0dHJpYnV0ZU1hcCkKKyAgICAgICAgICAgIHJlc3VsdC5h
ZGQoVXNlVHlwZTo6QXR0cmlidXRlTWFwKTsKKyAgICAgICAgaWYgKG1faW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJEYXRhKQorICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpJbnRlcmFjdGlvbk9i
c2VydmVyKTsKKyAgICAgICAgaWYgKG1fYmVmb3JlUHNldWRvRWxlbWVudCB8fCBtX2FmdGVyUHNl
dWRvRWxlbWVudCkKKyAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6UHNldWRvRWxlbWVu
dHMpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIGludCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKQEAg
LTE2NSwxMSArMjA1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbGVhc2VQc2V1ZG9FbGVtZW50
KFBzZXVkb0VsZW1lbnQqKTsKIH07CiAKLWlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6
ZUZvclJlc2l6aW5nKCkKLXsKLSAgICByZXR1cm4gSW50U2l6ZShMYXlvdXRVbml0OjptYXgoKSwg
TGF5b3V0VW5pdDo6bWF4KCkpOwotfQotCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjpFbGVtZW50
UmFyZURhdGEoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCiAgICAgOiBOb2RlUmFyZURhdGEocmVu
ZGVyZXIpCiAgICAgLCBtX3RhYkluZGV4KDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lv
biAyMzYyMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkxLDYgKzkxLDQ0IEBAIHN0YXRpYyBIYXNoU2V0PE5vZGUqPiYgbGl2ZU5vZGVTZXQoKQog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PE5vZGUqPj4gbGl2ZU5vZGVzOwogICAg
IHJldHVybiBsaXZlTm9kZXM7CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBzdHJpbmdGb3JSYXJl
RGF0YVVzZVR5cGUoTm9kZVJhcmVEYXRhOjpVc2VUeXBlIHVzZVR5cGUpCit7CisgICAgc3dpdGNo
ICh1c2VUeXBlKSB7CisgICAgY2FzZSBOb2RlUmFyZURhdGE6OlVzZVR5cGU6OkNvbm5lY3RlZEZy
YW1lQ291bnQ6CisgICAgICAgIHJldHVybiAiQ29ubmVjdGVkRnJhbWVDb3VudCI7CisgICAgY2Fz
ZSBOb2RlUmFyZURhdGE6OlVzZVR5cGU6Ok5vZGVMaXN0OgorICAgICAgICByZXR1cm4gIk5vZGVM
aXN0IjsKKyAgICBjYXNlIE5vZGVSYXJlRGF0YTo6VXNlVHlwZTo6TXV0YXRpb25PYnNlcnZlcjoK
KyAgICAgICAgcmV0dXJuICJNdXRhdGlvbk9ic2VydmVyIjsKKyAgICBjYXNlIE5vZGVSYXJlRGF0
YTo6VXNlVHlwZTo6VGFiSW5kZXg6CisgICAgICAgIHJldHVybiAiVGFiSW5kZXgiOworICAgIGNh
c2UgTm9kZVJhcmVEYXRhOjpVc2VUeXBlOjpTdHlsZUZsYWdzOgorICAgICAgICByZXR1cm4gIlN0
eWxlRmxhZ3MiOworICAgIGNhc2UgTm9kZVJhcmVEYXRhOjpVc2VUeXBlOjpNaW5pbXVtU2l6ZToK
KyAgICAgICAgcmV0dXJuICJNaW5pbXVtU2l6ZSI7CisgICAgY2FzZSBOb2RlUmFyZURhdGE6OlVz
ZVR5cGU6OlNjcm9sbGluZ1Bvc2l0aW9uOgorICAgICAgICByZXR1cm4gIlNjcm9sbGluZ1Bvc2l0
aW9uIjsKKyAgICBjYXNlIE5vZGVSYXJlRGF0YTo6VXNlVHlwZTo6Q29tcHV0ZWRTdHlsZToKKyAg
ICAgICAgcmV0dXJuICJDb21wdXRlZFN0eWxlIjsKKyAgICBjYXNlIE5vZGVSYXJlRGF0YTo6VXNl
VHlwZTo6RGF0YXNldDoKKyAgICAgICAgcmV0dXJuICJEYXRhc2V0IjsKKyAgICBjYXNlIE5vZGVS
YXJlRGF0YTo6VXNlVHlwZTo6Q2xhc3NMaXN0OgorICAgICAgICByZXR1cm4gIkNsYXNzTGlzdCI7
CisgICAgY2FzZSBOb2RlUmFyZURhdGE6OlVzZVR5cGU6OlNoYWRvd1Jvb3Q6CisgICAgICAgIHJl
dHVybiAiU2hhZG93Um9vdCI7CisgICAgY2FzZSBOb2RlUmFyZURhdGE6OlVzZVR5cGU6OkN1c3Rv
bUVsZW1lbnRRdWV1ZToKKyAgICAgICAgcmV0dXJuICJDdXN0b21FbGVtZW50UXVldWUiOworICAg
IGNhc2UgTm9kZVJhcmVEYXRhOjpVc2VUeXBlOjpBdHRyaWJ1dGVNYXA6CisgICAgICAgIHJldHVy
biAiQXR0cmlidXRlTWFwIjsKKyAgICBjYXNlIE5vZGVSYXJlRGF0YTo6VXNlVHlwZTo6SW50ZXJh
Y3Rpb25PYnNlcnZlcjoKKyAgICAgICAgcmV0dXJuICJJbnRlcmFjdGlvbk9ic2VydmVyIjsKKyAg
ICBjYXNlIE5vZGVSYXJlRGF0YTo6VXNlVHlwZTo6UHNldWRvRWxlbWVudHM6CisgICAgICAgIHJl
dHVybiAiUHNldWRvRWxlbWVudHMiOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwog
I2VuZGlmCiAKIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQpAQCAtMTE3LDYgKzE1NSw5IEBA
IHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHNpemVfdCBlbGVtZW50c1dpdGhSYXJl
RGF0YSA9IDA7CiAgICAgc2l6ZV90IGVsZW1lbnRzV2l0aE5hbWVkTm9kZU1hcCA9IDA7CiAKKyAg
ICBIYXNoTWFwPHVpbnQxNl90LCBzaXplX3Q+IHJhcmVEYXRhU2luZ2xlVXNlVHlwZUNvdW50czsK
KyAgICBzaXplX3QgbWl4ZWRSYXJlRGF0YVVzZUNvdW50ID0gMDsKKwogICAgIGZvciAoYXV0byog
bm9kZSA6IGxpdmVOb2RlU2V0KCkpIHsKICAgICAgICAgaWYgKG5vZGUtPmhhc1JhcmVEYXRhKCkp
IHsKICAgICAgICAgICAgICsrbm9kZXNXaXRoUmFyZURhdGE7CkBAIC0xMjUsNiArMTY2LDE4IEBA
IHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgICAgICAgICAgICAgIGlmIChkb3duY2Fz
dDxFbGVtZW50Pigqbm9kZSkuaGFzTmFtZWROb2RlTWFwKCkpCiAgICAgICAgICAgICAgICAgICAg
ICsrZWxlbWVudHNXaXRoTmFtZWROb2RlTWFwOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
YXV0byogcmFyZURhdGEgPSBub2RlLT5yYXJlRGF0YSgpOworICAgICAgICAgICAgYXV0byB1c2VU
eXBlcyA9IGlzPEVsZW1lbnQ+KG5vZGUpID8gc3RhdGljX2Nhc3Q8RWxlbWVudFJhcmVEYXRhKj4o
cmFyZURhdGEpLT51c2VUeXBlcygpIDogcmFyZURhdGEtPnVzZVR5cGVzKCk7CisgICAgICAgICAg
ICB1bnNpZ25lZCB1c2VUeXBlQ291bnQgPSAwOworICAgICAgICAgICAgZm9yIChhdXRvIHR5cGUg
OiB1c2VUeXBlcykgeworICAgICAgICAgICAgICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICAg
ICAgICAgICAgICB1c2VUeXBlQ291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
ICh1c2VUeXBlQ291bnQgPT0gMSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmFy
ZURhdGFTaW5nbGVVc2VUeXBlQ291bnRzLmFkZChzdGF0aWNfY2FzdDx1aW50MTZfdD4oKnVzZVR5
cGVzLmJlZ2luKCkpLCAwKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVl
Kys7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtaXhlZFJhcmVEYXRhVXNl
Q291bnQrKzsKICAgICAgICAgfQogCiAgICAgICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkg
ewpAQCAtMTQzLDcgKzE5Niw3IEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgICAg
ICAgICAgICAgICAgICArK2VsZW1lbnRzV2l0aEF0dHJpYnV0ZVN0b3JhZ2U7CiAgICAgICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgQXR0cmlidXRlJiBhdHRyID0gZWxlbWVudERhdGEtPmF0
dHJpYnV0ZUF0KGkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdHRyLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmF0dHJJZkV4aXN0cyhhdHRy
Lm5hbWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKythdHRyaWJ1dGVzV2l0aEF0
dHI7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC0xODgsNyAr
MjQxLDEyIEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIH0KIAogICAgIHByaW50
ZigiTnVtYmVyIG9mIE5vZGVzOiAlZFxuXG4iLCBsaXZlTm9kZVNldCgpLnNpemUoKSk7Ci0gICAg
cHJpbnRmKCJOdW1iZXIgb2YgTm9kZXMgd2l0aCBSYXJlRGF0YTogJXp1XG5cbiIsIG5vZGVzV2l0
aFJhcmVEYXRhKTsKKyAgICBwcmludGYoIk51bWJlciBvZiBOb2RlcyB3aXRoIFJhcmVEYXRhOiAl
enVcbiIsIG5vZGVzV2l0aFJhcmVEYXRhKTsKKyAgICBwcmludGYoIiAgTWl4ZWQgdXNlOiAlenVc
biIsIG1peGVkUmFyZURhdGFVc2VDb3VudCk7CisgICAgZm9yIChhdXRvIGl0IDogcmFyZURhdGFT
aW5nbGVVc2VUeXBlQ291bnRzKQorICAgICAgICBwcmludGYoIiAgJXM6ICV6dVxuIiwgc3RyaW5n
Rm9yUmFyZURhdGFVc2VUeXBlKHN0YXRpY19jYXN0PE5vZGVSYXJlRGF0YTo6VXNlVHlwZT4oaXQu
a2V5KSksIGl0LnZhbHVlKTsKKyAgICBwcmludGYoIlxuIik7CisKIAogICAgIHByaW50ZigiTm9k
ZVR5cGUgZGlzdHJpYnV0aW9uOlxuIik7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBFbGVtZW50
IG5vZGVzOiAlenVcbiIsIGVsZW1lbnROb2Rlcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmNwcAkocmV2aXNpb24gMjM2MjM5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDQgKzQwLDcgQEAgc3RydWN0IFNhbWVT
aXplQXNOb2RlUmFyZURhdGEgewogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoTm9kZVJhcmVEYXRh
KSA9PSBzaXplb2YoU2FtZVNpemVBc05vZGVSYXJlRGF0YSksIE5vZGVSYXJlRGF0YVNob3VsZFN0
YXlTbWFsbCk7CiAKKy8vIEVuc3VyZSB0aGUgMTAgYml0cyByZXNlcnZlZCBmb3IgdGhlIG1fY29u
bmVjdGVkRnJhbWVDb3VudCBjYW5ub3Qgb3ZlcmZsb3cKK3N0YXRpY19hc3NlcnQoUGFnZTo6bWF4
TnVtYmVyT2ZGcmFtZXMgPCAxMDI0LCAiRnJhbWUgbGltaXQgc2hvdWxkIGZpdCBpbiByYXJlIGRh
dGEgY291bnQiKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuaAkocmV2aXNpb24gMjM2MjM5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJR
dWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiVGFnQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CkBAIC0yNTAsNiArMjQ5LDI3IEBAIHB1YmxpYzoKIGNsYXNzIE5vZGVSYXJl
RGF0YSA6IHB1YmxpYyBOb2RlUmFyZURhdGFCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShOb2RlUmFyZURhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyNpZiBk
ZWZpbmVkKERVTVBfTk9ERV9TVEFUSVNUSUNTKSAmJiBEVU1QX05PREVfU1RBVElTVElDUworICAg
IGVudW0gY2xhc3MgVXNlVHlwZSA6IHVpbnQxNl90IHsKKyAgICAgICAgQ29ubmVjdGVkRnJhbWVD
b3VudCA9IDEgPDwgMCwKKyAgICAgICAgTm9kZUxpc3QgPSAxIDw8IDEsCisgICAgICAgIE11dGF0
aW9uT2JzZXJ2ZXIgPSAxIDw8IDIsCisKKyAgICAgICAgVGFiSW5kZXggPSAxIDw8IDMsCisgICAg
ICAgIFN0eWxlRmxhZ3MgPSAxIDw8IDQsCisgICAgICAgIE1pbmltdW1TaXplID0gMSA8PCA1LAor
ICAgICAgICBTY3JvbGxpbmdQb3NpdGlvbiA9IDEgPDwgNiwKKyAgICAgICAgQ29tcHV0ZWRTdHls
ZSA9IDEgPDwgNywKKyAgICAgICAgRGF0YXNldCA9IDEgPDwgOCwKKyAgICAgICAgQ2xhc3NMaXN0
ID0gMSA8PCA5LAorICAgICAgICBTaGFkb3dSb290ID0gMSA8PCAxMCwKKyAgICAgICAgQ3VzdG9t
RWxlbWVudFF1ZXVlID0gMSA8PCAxMSwKKyAgICAgICAgQXR0cmlidXRlTWFwID0gMSA8PCAxMiwK
KyAgICAgICAgSW50ZXJhY3Rpb25PYnNlcnZlciA9IDEgPDwgMTMsCisgICAgICAgIFBzZXVkb0Vs
ZW1lbnRzID0gMSA8PCAxNCwKKyAgICB9OworI2VuZGlmCisKICAgICBOb2RlUmFyZURhdGEoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICAgICAgOiBOb2RlUmFyZURhdGFCYXNlKHJlbmRlcmVy
KQogICAgICAgICAsIG1fY29ubmVjdGVkRnJhbWVDb3VudCgwKQpAQCAtMjg0LDYgKzMwNCwyMCBA
QCBwdWJsaWM6CiAgICAgICAgIG1fY29ubmVjdGVkRnJhbWVDb3VudCAtPSBhbW91bnQ7CiAgICAg
fQogCisjaWYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MKKyAgICBPcHRpb25TZXQ8VXNlVHlwZT4gdXNl
VHlwZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgT3B0aW9uU2V0PFVzZVR5cGU+IHJlc3VsdDsK
KyAgICAgICAgaWYgKG1fY29ubmVjdGVkRnJhbWVDb3VudCkKKyAgICAgICAgICAgIHJlc3VsdC5h
ZGQoVXNlVHlwZTo6Q29ubmVjdGVkRnJhbWVDb3VudCk7CisgICAgICAgIGlmIChtX25vZGVMaXN0
cykKKyAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6Tm9kZUxpc3QpOworICAgICAgICBp
ZiAobV9tdXRhdGlvbk9ic2VydmVyRGF0YSkKKyAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlw
ZTo6TXV0YXRpb25PYnNlcnZlcik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0ZWRGcmFtZUNvdW50IDogMTA7
IC8vIE11c3QgZml0IFBhZ2U6Om1heE51bWJlck9mRnJhbWVzLgogCkBAIC0zMTQsNyArMzQ4LDQg
QEAgaW5saW5lIE5vZGVSYXJlRGF0YSYgTm9kZTo6ZW5zdXJlUmFyZURhdAogICAgIHJldHVybiAq
cmFyZURhdGEoKTsKIH0KIAotLy8gRW5zdXJlIHRoZSAxMCBiaXRzIHJlc2VydmVkIGZvciB0aGUg
bV9jb25uZWN0ZWRGcmFtZUNvdW50IGNhbm5vdCBvdmVyZmxvdwotc3RhdGljX2Fzc2VydChQYWdl
OjptYXhOdW1iZXJPZkZyYW1lcyA8IDEwMjQsICJGcmFtZSBsaW1pdCBzaG91bGQgZml0IGluIHJh
cmUgZGF0YSBjb3VudCIpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="367656"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350172</attachid>
            <date>2018-09-19 23:21:00 -0700</date>
            <delta_ts>2018-09-19 23:21:00 -0700</delta_ts>
            <desc>Patch to enable the statistics every 100 nodes</desc>
            <filename>enable-node-statistics.patch</filename>
            <type>text/plain</type>
            <size>763</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDIzNjI0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDYgKzMxMSw4IEBACiAjZW5kaWYK
IAogI2lmIERVTVBfTk9ERV9TVEFUSVNUSUNTCisgICAgaWYgKGxpdmVOb2RlU2V0KCkuc2l6ZSgp
ICUgMTAwID09IDApCisgICAgICAgIGR1bXBTdGF0aXN0aWNzKCk7CiAgICAgbGl2ZU5vZGVTZXQo
KS5hZGQodGhpcyk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMjM2MjQx
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyAr
MzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIC8vIFRoaXMgbmVlZHMgdG8g
YmUgaGVyZSBiZWNhdXNlIERvY3VtZW50LmggYWxzbyBkZXBlbmRzIG9uIGl0LgotI2RlZmluZSBE
VU1QX05PREVfU1RBVElTVElDUyAwCisjZGVmaW5lIERVTVBfTk9ERV9TVEFUSVNUSUNTIDEKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>