<?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>110517</bug_id>
          
          <creation_ts>2013-02-21 15:02:09 -0800</creation_ts>
          <short_desc>Make BackgroundHTMLParser rewind the preload scanner instead of clear it</short_desc>
          <delta_ts>2013-02-21 16:23:21 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838876</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:02:09 -0800</bug_when>
    <thetext>Make BackgroundHTMLParser rewind the preload scanner instead of clear it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838879</commentid>
    <comment_count>1</comment_count>
      <attachid>189607</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:04:48 -0800</bug_when>
    <thetext>Created attachment 189607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838880</commentid>
    <comment_count>2</comment_count>
      <attachid>189607</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:06:25 -0800</bug_when>
    <thetext>Comment on attachment 189607
Patch

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

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:285
&gt; +    m_cssScanner.reset();

It looks like it is safe to just reset the CSSPreloadScanner instead of restoring any of its members, but I&apos;m not 100% sure about this part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838883</commentid>
    <comment_count>3</comment_count>
      <attachid>189607</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 15:08:58 -0800</bug_when>
    <thetext>Comment on attachment 189607
Patch

Great!  Does this have any effect on the top25 benchmark?  (Just curious---not a requirement for landing.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838885</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 15:09:57 -0800</bug_when>
    <thetext>Yes.  There&apos;s no way to document.write in the middle of a &lt;style&gt; element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838886</commentid>
    <comment_count>5</comment_count>
      <attachid>189607</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-21 15:10:04 -0800</bug_when>
    <thetext>Comment on attachment 189607
Patch

Should this just be a state struct?  And we have one single checkpoint object?   Which has one of each state struct?  The preload scanner just has an m_state member for all its state?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838892</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:13:20 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 189607 [details])
&gt; Should this just be a state struct?  And we have one single checkpoint object?   Which has one of each state struct?  The preload scanner just has an m_state member for all its state?

I don&apos;t quite see where you are going. Can you please explain a bit more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838895</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:14:30 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 189607 [details])
&gt; Great!  Does this have any effect on the top25 benchmark?  (Just curious---not a requirement for landing.)

I didn&apos;t run it, but it sure seems like we would have missed some preload scanning opportunities before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838911</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-21 15:24:24 -0800</bug_when>
    <thetext>class PreloadScanner {
    struct State {
        bool inStyle;
        int templateCount;
         ...
    }

private:
   PreloadScannerState m_state;
}

class CheckPoint {
    TokenizerState tokenizerState;
    PreloadScannerState preloadScannerState;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838914</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:28:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; class PreloadScanner {
&gt;     struct State {
&gt;         bool inStyle;
&gt;         int templateCount;
&gt;          ...
&gt;     }
&gt; 
&gt; private:
&gt;    PreloadScannerState m_state;
&gt; }
&gt; 
&gt; class CheckPoint {
&gt;     TokenizerState tokenizerState;
&gt;     PreloadScannerState preloadScannerState;
&gt; }

Sure, I&apos;ll rework this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838922</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-21 15:31:54 -0800</bug_when>
    <thetext>My review comment was more a question than anything. :)  You should use your discretion of course and do whatever you think reads best.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838925</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 15:32:15 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; class PreloadScanner {
&gt; &gt;     struct State {
&gt; &gt;         bool inStyle;
&gt; &gt;         int templateCount;
&gt; &gt;          ...
&gt; &gt;     }
&gt; &gt; 
&gt; &gt; private:
&gt; &gt;    PreloadScannerState m_state;
&gt; &gt; }
&gt; &gt; 
&gt; &gt; class CheckPoint {
&gt; &gt;     TokenizerState tokenizerState;
&gt; &gt;     PreloadScannerState preloadScannerState;
&gt; &gt; }
&gt; 
&gt; Sure, I&apos;ll rework this

On second thought, BackgroundHTMLInputStream&apos;s rewindTo() is a bit more involved than just copying a single state object. I&apos;m not sure it lends itself well to this approach. I also think it is a bit awkward for the preload scanner code to have to do m_state.inStyle everywhere instead of just m_inStyle. WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838946</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 15:50:49 -0800</bug_when>
    <thetext>I don&apos;t think it&apos;s a big deal either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838947</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-21 15:51:13 -0800</bug_when>
    <thetext>I&apos;m not sure it matters much either way.  Just felt a bit odd at first sight to have 2 separate Checkpoint objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838981</commentid>
    <comment_count>14</comment_count>
      <attachid>189607</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 16:23:17 -0800</bug_when>
    <thetext>Comment on attachment 189607
Patch

Clearing flags on attachment: 189607

Committed r143661: &lt;http://trac.webkit.org/changeset/143661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838982</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 16:23:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189607</attachid>
            <date>2013-02-21 15:04:48 -0800</date>
            <delta_ts>2013-02-21 16:23:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110517-20130221150109.patch</filename>
            <type>text/plain</type>
            <size>9150</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFkNGRlZGZiZmY3ZGJj
MjQxMGI3ZjEwODgwM2VkMDFjZWIwMTVmYy4uYmYyN2M3NDJkOTA2OThkNmRkY2MwNzg3N2JjZDEz
YTI1ZGM1Yjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTIxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBCYWNrZ3Jv
dW5kSFRNTFBhcnNlciByZXdpbmQgdGhlIHByZWxvYWQgc2Nhbm5lciBpbnN0ZWFkIG9mIGNsZWFy
IGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA1
MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgYmVjdWFzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGh0bWwv
cGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tn
cm91bmRIVE1MUGFyc2VyOjpyZXN1bWVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91
bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91
bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKToKKyAgICAgICAgKiBodG1sL3Bh
cnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oOgorICAgICAgICAoQ2hlY2twb2ludCk6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkRmFpbFNwZWN1bGF0aW9uKToKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFBhcnNlZENodW5rKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6Y3JlYXRlQ2hlY2twb2ludCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OnJld2lu
ZFRvKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoVG9rZW5QcmVsb2FkU2Nhbm5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjpDaGVja3BvaW50OjpDaGVja3BvaW50KToKKyAg
ICAgICAgKENoZWNrcG9pbnQpOgorCiAyMDEzLTAyLTIxICBWaXZlayBHYWxhdGFnZSAgPHZpdmVr
LnZnQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtKUyBCaW5kaW5nXSBTY3JpcHRPYmplY3QgZGVm
YXVsdCBjb25zdHJ1Y3RvciBzaG91bGQgaW5pdGlhbGl6ZSB0aGUgU2NyaXB0IFN0YXRlIHRvIDAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2Vy
LmNwcAppbmRleCA3ZDgzOGQxMjRkN2E2MmZkMTk0NzFiYTc5OWQ2ZjUyZjkyMGU3NjE2Li5jOWE3
OWRjMjU3ZDQ1NDllOWZkMWNmNzE0ZTZiMDRhNTE4YWUxOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCkBAIC0xNDAsNyAr
MTQwLDcgQEAgdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6cmVzdW1lRnJvbShQYXNzT3duUHRy
PENoZWNrcG9pbnQ+IGNoZWNrcG9pbnQpCiAgICAgbV90b2tlbiA9IGNoZWNrcG9pbnQtPnRva2Vu
LnJlbGVhc2UoKTsKICAgICBtX3Rva2VuaXplciA9IGNoZWNrcG9pbnQtPnRva2VuaXplci5yZWxl
YXNlKCk7CiAgICAgbV9pbnB1dC5yZXdpbmRUbyhjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQs
IGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQpOwotICAgIG1fcHJlbG9hZFNjYW5uZXIuY2xlYXIo
KTsgLy8gRklYTUU6IFdlIHNob3VsZCByZXdpbmQgdGhlIHByZWxvYWQgc2Nhbm5lciByYXRoZXIg
dGhhbiBjbGVhcmluZyBpdC4KKyAgICBtX3ByZWxvYWRTY2FubmVyLT5yZXdpbmRUbyhjaGVja3Bv
aW50LT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQpOwogICAgIHB1bXBUb2tlbml6ZXIoKTsKIH0K
IApAQCAtMjM1LDggKzIzNSw3IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tl
bml6ZXIoKQogICAgICAgICAgICAgaWYgKHhzc0luZm8pCiAgICAgICAgICAgICAgICAgdG9rZW4u
c2V0WFNTSW5mbyh4c3NJbmZvLnJlbGVhc2UoKSk7CiAKLSAgICAgICAgICAgIGlmIChtX3ByZWxv
YWRTY2FubmVyKQotICAgICAgICAgICAgICAgIG1fcHJlbG9hZFNjYW5uZXItPnNjYW4odG9rZW4s
IG1fcGVuZGluZ1ByZWxvYWRzKTsKKyAgICAgICAgICAgIG1fcHJlbG9hZFNjYW5uZXItPnNjYW4o
dG9rZW4sIG1fcGVuZGluZ1ByZWxvYWRzKTsKIAogICAgICAgICAgICAgbV9wZW5kaW5nVG9rZW5z
LT5hcHBlbmQodG9rZW4pOwogICAgICAgICB9CkBAIC0yNjMsNyArMjYyLDggQEAgdm9pZCBCYWNr
Z3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCgpCiAgICAgT3duUHRyPEhU
TUxEb2N1bWVudFBhcnNlcjo6UGFyc2VkQ2h1bms+IGNodW5rID0gYWRvcHRQdHIobmV3IEhUTUxE
b2N1bWVudFBhcnNlcjo6UGFyc2VkQ2h1bmspOwogICAgIGNodW5rLT50b2tlbnMgPSBtX3BlbmRp
bmdUb2tlbnMucmVsZWFzZSgpOwogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVuZGluZ1By
ZWxvYWRzKTsKLSAgICBjaHVuay0+Y2hlY2twb2ludCA9IG1faW5wdXQuY3JlYXRlQ2hlY2twb2lu
dCgpOworICAgIGNodW5rLT5pbnB1dENoZWNrcG9pbnQgPSBtX2lucHV0LmNyZWF0ZUNoZWNrcG9p
bnQoKTsKKyAgICBjaHVuay0+cHJlbG9hZFNjYW5uZXJDaGVja3BvaW50ID0gbV9wcmVsb2FkU2Nh
bm5lci0+Y3JlYXRlQ2hlY2twb2ludCgpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmSFRN
TERvY3VtZW50UGFyc2VyOjpkaWRSZWNlaXZlUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNl
ciwgbV9wYXJzZXIsIGNodW5rLnJlbGVhc2UoKSkpOwogCiAgICAgbV9wZW5kaW5nVG9rZW5zID0g
YWRvcHRQdHIobmV3IENvbXBhY3RIVE1MVG9rZW5TdHJlYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKaW5kZXggOGM5ZTgwNThkNTI1
ZjM1YzBjOTQ5N2QwYTYxMzEyOGI2YTY4NmIyNy4uNjVhYmI2MzU5NWVkYzdlZTExMGRiOWZiYTUx
MGYyNzc1Mjg4NjJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFj
a2dyb3VuZEhUTUxQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgT3du
UHRyPEhUTUxUb2tlbj4gdG9rZW47CiAgICAgICAgIE93blB0cjxIVE1MVG9rZW5pemVyPiB0b2tl
bml6ZXI7CiAgICAgICAgIEhUTUxJbnB1dENoZWNrcG9pbnQgaW5wdXRDaGVja3BvaW50OworICAg
ICAgICBUb2tlblByZWxvYWRTY2FubmVyQ2hlY2twb2ludCBwcmVsb2FkU2Nhbm5lckNoZWNrcG9p
bnQ7CiAgICAgICAgIFN0cmluZyB1bnBhcnNlZElucHV0OwogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGY5Yzk3
YzJhMTliYmIwNmZkZDdlYWE1OTEyODAxYWM1ZThjN2U3NWUuLjRmMjZhZDBiMTUzNDNhZDk0ZGZh
NDlhYzRhMzQ2NTJjNGYzZWM1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMzE1LDcgKzMxNSw4IEBAIHZvaWQgSFRNTERv
Y3VtZW50UGFyc2VyOjpkaWRGYWlsU3BlY3VsYXRpb24oUGFzc093blB0cjxIVE1MVG9rZW4+IHRv
a2VuLCBQYXNzT3duCiAgICAgY2hlY2twb2ludC0+cGFyc2VyID0gbV93ZWFrRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCk7CiAgICAgY2hlY2twb2ludC0+dG9rZW4gPSB0b2tlbjsKICAgICBjaGVja3Bv
aW50LT50b2tlbml6ZXIgPSB0b2tlbml6ZXI7Ci0gICAgY2hlY2twb2ludC0+aW5wdXRDaGVja3Bv
aW50ID0gbV9jdXJyZW50Q2h1bmstPmNoZWNrcG9pbnQ7CisgICAgY2hlY2twb2ludC0+aW5wdXRD
aGVja3BvaW50ID0gbV9jdXJyZW50Q2h1bmstPmlucHV0Q2hlY2twb2ludDsKKyAgICBjaGVja3Bv
aW50LT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgPSBtX2N1cnJlbnRDaHVuay0+cHJlbG9hZFNj
YW5uZXJDaGVja3BvaW50OwogICAgIGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQgPSBtX2lucHV0
LmN1cnJlbnQoKS50b1N0cmluZygpLmlzb2xhdGVkQ29weSgpOwogICAgIG1faW5wdXQuY3VycmVu
dCgpLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmgKaW5kZXggZDFjNDY0ZWFlOTY5MDZkNmM1Zjk3ZGU0ZTIxYTEwMDkzMTVmNDc2
Ny4uMWM2ZDE0Y2VkOTI1OWEyYTM5NjgyMDJhYmVhY2E4M2Y2YTdiOGVlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTg5LDcgKzg5
LDggQEAgcHVibGljOgogICAgIHN0cnVjdCBQYXJzZWRDaHVuayB7CiAgICAgICAgIE93blB0cjxD
b21wYWN0SFRNTFRva2VuU3RyZWFtPiB0b2tlbnM7CiAgICAgICAgIFByZWxvYWRSZXF1ZXN0U3Ry
ZWFtIHByZWxvYWRzOwotICAgICAgICBIVE1MSW5wdXRDaGVja3BvaW50IGNoZWNrcG9pbnQ7Cisg
ICAgICAgIEhUTUxJbnB1dENoZWNrcG9pbnQgaW5wdXRDaGVja3BvaW50OworICAgICAgICBUb2tl
blByZWxvYWRTY2FubmVyQ2hlY2twb2ludCBwcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQ7CiAgICAg
fTsKICAgICB2b2lkIGRpZFJlY2VpdmVQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyKFBh
c3NPd25QdHI8UGFyc2VkQ2h1bms+KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMDEwZjEyZDU0YjgzMDBmODA0
NmQxYmVkMjc3NjJmNjRlOTIyYzQ0Ni4uOWM5NGI5NjlkNWYyZDQ2ZWM2OWUzODBmZDgyZjcxZGM3
NzI3ZTA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxv
YWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuY3BwCkBAIC0yNjIsNiArMjYyLDMzIEBAIFRva2VuUHJlbG9hZFNjYW5uZXI6On5U
b2tlblByZWxvYWRTY2FubmVyKCkKIHsKIH0KIAorVG9rZW5QcmVsb2FkU2Nhbm5lckNoZWNrcG9p
bnQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6Y3JlYXRlQ2hlY2twb2ludCgpCit7CisgICAgVG9rZW5Q
cmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgY2hlY2twb2ludCA9IG1fY2hlY2twb2ludHMuc2l6ZSgp
OworICAgIG1fY2hlY2twb2ludHMuYXBwZW5kKENoZWNrcG9pbnQobV9wcmVkaWN0ZWRCYXNlRWxl
bWVudFVSTCwgbV9pblN0eWxlCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG1fdGVtcGxhdGVDb3VudAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKTsKKyAgICByZXR1cm4gY2hlY2tw
b2ludDsKK30KKwordm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjpyZXdpbmRUbyhUb2tlblByZWxv
YWRTY2FubmVyQ2hlY2twb2ludCBjaGVja3BvaW50SW5kZXgpCit7CisgICAgQVNTRVJUKGNoZWNr
cG9pbnRJbmRleCA8IG1fY2hlY2twb2ludHMuc2l6ZSgpKTsgLy8gSWYgdGhpcyBBU1NFUlQgZmly
ZXMsIGNoZWNrcG9pbnRJbmRleCBpcyBpbnZhbGlkLgorICAgIGNvbnN0IENoZWNrcG9pbnQmIGNo
ZWNrcG9pbnQgPSBtX2NoZWNrcG9pbnRzW2NoZWNrcG9pbnRJbmRleF07CisgICAgbV9wcmVkaWN0
ZWRCYXNlRWxlbWVudFVSTCA9IGNoZWNrcG9pbnQucHJlZGljdGVkQmFzZUVsZW1lbnRVUkw7Cisg
ICAgbV9pblN0eWxlID0gY2hlY2twb2ludC5pblN0eWxlOworI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIG1fdGVtcGxhdGVDb3VudCA9IGNoZWNrcG9pbnQudGVtcGxhdGVDb3VudDsK
KyNlbmRpZgorICAgIG1fY3NzU2Nhbm5lci5yZXNldCgpOworCisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBiZSBhYmxlIHRvIGFjdGl2ZWx5IGludmFsaWRhdGUgYWxsIHRoZSBvdXRzdGFuZGluZyBj
aGVja3BvaW50cworICAgIC8vIGJ5IGNsZWFyaW5nIG1fY2hlY2twb2ludHMsIGJ1dCB0aGF0IGNh
dXNlcyBmYXN0L3Rva2VuaXplci93cml0ZS1iZWZvcmUtbG9hZC5odG1sCisgICAgLy8gdG8gaGl0
IHRoZSBBU1NFUlQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZ1bmN0aW9uLgorfQorCiB2b2lk
IFRva2VuUHJlbG9hZFNjYW5uZXI6OnNjYW4oY29uc3QgSFRNTFRva2VuJiB0b2tlbiwgVmVjdG9y
PE93blB0cjxQcmVsb2FkUmVxdWVzdD4gPiYgcmVxdWVzdHMpCiB7CiAgICAgc2NhbkNvbW1vbih0
b2tlbiwgcmVxdWVzdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFByZWxvYWRTY2FubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJl
bG9hZFNjYW5uZXIuaAppbmRleCA1OTZjZTliY2YwNjI4MWQ0NDQxNTYyYzdmMzkxNjBiMTkzZjJj
ZmE2Li40N2E1NDQ0ZjEwZThjZmRkNmJhNzBiMDZiZTA4ZjI1NDQwNGNjMDFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaApAQCAtMzEsOSAr
MzEsMTIgQEAKICNpbmNsdWRlICJDb21wYWN0SFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRv
a2VuLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3R5cGVkZWYgc2l6ZV90IFRva2VuUHJlbG9h
ZFNjYW5uZXJDaGVja3BvaW50OworCiBjbGFzcyBIVE1MUGFyc2VyT3B0aW9uczsKIGNsYXNzIEhU
TUxUb2tlbml6ZXI7CiBjbGFzcyBTZWdtZW50ZWRTdHJpbmc7CkBAIC01MSw2ICs1NCwxMSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFByZWRpY3RlZEJhc2VFbGVtZW50VVJMKGNvbnN0IEtVUkwm
IHVybCkgeyBtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMID0gdXJsOyB9CiAKKyAgICAvLyBBIFRv
a2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IGlzIHZhbGlkIHVudGlsIHRoZSBuZXh0IGNhbGwg
dG8gcmV3aW5kVG8sCisgICAgLy8gYXQgd2hpY2ggcG9pbnQgYWxsIG91dHN0YW5kaW5nIGNoZWNr
cG9pbnRzIGFyZSBpbnZhbGlkYXRlZC4KKyAgICBUb2tlblByZWxvYWRTY2FubmVyQ2hlY2twb2lu
dCBjcmVhdGVDaGVja3BvaW50KCk7CisgICAgdm9pZCByZXdpbmRUbyhUb2tlblByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludCk7CisKICAgICBib29sIGlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgp
CiAgICAgewogICAgICAgICByZXR1cm4gbV9kb2N1bWVudFVSTC5pc1NhZmVUb1NlbmRUb0Fub3Ro
ZXJUaHJlYWQoKQpAQCAtODUsMTQgKzkzLDM3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVG9rZW4+CiAgICAgdm9pZCB1cGRhdGVQcmVkaWN0ZWRCYXNlVVJMKGNvbnN0IFRva2Vu
Jik7CiAKKyAgICBzdHJ1Y3QgQ2hlY2twb2ludCB7CisgICAgICAgIENoZWNrcG9pbnQoY29uc3Qg
S1VSTCYgcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwsIGJvb2wgaW5TdHlsZQorI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQorICAgICAgICAgICAgLCBzaXplX3QgdGVtcGxhdGVDb3VudAorI2Vu
ZGlmCisgICAgICAgICAgICApCisgICAgICAgICAgICA6IHByZWRpY3RlZEJhc2VFbGVtZW50VVJM
KHByZWRpY3RlZEJhc2VFbGVtZW50VVJMKQorICAgICAgICAgICAgLCBpblN0eWxlKGluU3R5bGUp
CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgICAgICAsIHRlbXBsYXRlQ291
bnQodGVtcGxhdGVDb3VudCkKKyNlbmRpZgorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBLVVJMIHByZWRpY3RlZEJhc2VFbGVtZW50VVJMOworICAgICAgICBib29sIGluU3R5bGU7Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIHNpemVfdCB0ZW1wbGF0ZUNvdW50
OworI2VuZGlmCisgICAgfTsKKwogICAgIENTU1ByZWxvYWRTY2FubmVyIG1fY3NzU2Nhbm5lcjsK
LSAgICBLVVJMIG1fZG9jdW1lbnRVUkw7CisgICAgY29uc3QgS1VSTCBtX2RvY3VtZW50VVJMOwog
ICAgIEtVUkwgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTDsKICAgICBib29sIG1faW5TdHlsZTsK
IAogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgIHNpemVfdCBtX3RlbXBsYXRlQ291
bnQ7CiAjZW5kaWYKKworICAgIFZlY3RvcjxDaGVja3BvaW50PiBtX2NoZWNrcG9pbnRzOwogfTsK
IAogY2xhc3MgSFRNTFByZWxvYWRTY2FubmVyIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>