<?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>144640</bug_id>
          
          <creation_ts>2015-05-05 14:50:05 -0700</creation_ts>
          <short_desc>Handle meta viewport in HTMLPreloadScanner</short_desc>
          <delta_ts>2015-05-12 14:21:12 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoav Weiss">yoav</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091895</commentid>
    <comment_count>0</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-05 14:50:05 -0700</bug_when>
    <thetext>Handle meta viewport in HTMLPreloadScanner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091901</commentid>
    <comment_count>1</comment_count>
      <attachid>252409</attachid>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-05 15:06:59 -0700</bug_when>
    <thetext>Created attachment 252409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091902</commentid>
    <comment_count>2</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-05 15:10:29 -0700</bug_when>
    <thetext>In order to avoid cases of double download when a &lt;meta name=viewport&gt; tag is following a script and followed by &lt;img srcset&gt; which may be impacted by the viewport dimensions, I added &lt;meta name=viewport&gt; support to the HTMLPreloadScanner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092726</commentid>
    <comment_count>3</comment_count>
      <attachid>252409</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-07 13:38:30 -0700</bug_when>
    <thetext>Comment on attachment 252409
Patch

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

&gt; LayoutTests/fast/dom/HTMLMetaElement/meta-preloader.html:15
&gt; +    if (actual != expected)
&gt; +        document.writeln(&quot;&lt;p&gt;FAILURE: expected \&quot;&quot; + expected + &quot;\&quot;, actual \&quot;&quot; + actual + &quot;\&quot;&lt;/p&gt;&quot;);
&gt; +    else
&gt; +        document.writeln(&quot;&lt;p&gt;SUCCESS (value: \&quot;&quot; + actual + &quot;\&quot;)&lt;/p&gt;&quot;);

Yuck. I hate document.write :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092749</commentid>
    <comment_count>4</comment_count>
      <attachid>252627</attachid>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-07 14:25:10 -0700</bug_when>
    <thetext>Created attachment 252627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092752</commentid>
    <comment_count>5</comment_count>
      <attachid>252627</attachid>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-07 14:27:14 -0700</bug_when>
    <thetext>Comment on attachment 252627
Patch

Thanks! Got rid of the doc writes :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092781</commentid>
    <comment_count>6</comment_count>
      <attachid>252627</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-07 15:17:50 -0700</bug_when>
    <thetext>Comment on attachment 252627
Patch

Clearing flags on attachment: 252627

Committed r183951: &lt;http://trac.webkit.org/changeset/183951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092782</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-07 15:17:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093610</commentid>
    <comment_count>8</comment_count>
      <attachid>252627</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-10 15:31:13 -0700</bug_when>
    <thetext>Comment on attachment 252627
Patch

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

I’m not happy with the testing strategy here.

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:373
&gt; +bool testPreloadScannerViewportSupport(Document* document)
&gt; +{
&gt; +    ASSERT(document);
&gt; +    HTMLParserOptions options(*document);
&gt; +    HTMLPreloadScanner scanner(options, document-&gt;url());
&gt; +    HTMLResourcePreloader preloader(*document);
&gt; +    scanner.appendToEnd(String(&quot;&lt;meta name=viewport content=&apos;width=400&apos;&gt;&quot;));
&gt; +    scanner.scan(preloader, *document);
&gt; +    return (document-&gt;viewportArguments().width == 400);
&gt; +}

This is not how we expose our internals for testing. We don’t just embed individual tests in the code like this. Lets think about how to do this in a way that matches the rest of our strategy.

A test like this one would make sense in Tools/TestWebKitAPI/Tests/WebCore; there are plenty of others like that there.

Internals exposes things so they can be tested, it doesn’t expose tests already compiled in. We could expose something testable in internals that lets the JavaScript test machinery drive the preload scanner and check its results.

What we want even more is a test that shows the actual end-user effect of this is, testing the whole thing and not just a unit test. But I don’t understand what that effect is. What is the value of calling document.processViewport during preloading? Is it correct to do that at the time of preload scanning? Lets make it so the test machinery can test that real desired effect (earlier correct viewport maybe?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093697</commentid>
    <comment_count>9</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-11 01:59:00 -0700</bug_when>
    <thetext>When asking around in the WebKit contributor meeting, it was suggested that unit testing is possible to do in such a way. Now that I&apos;m aware of /Tools/TestWebKitAPI/Tests/WebCore it does seems significantly better. I&apos;ll move the unit test there.

I tried to write tests that do show the end-user effect using LayoutTests, but couldn&apos;t find a way to turn on &lt;meta name=viewport&gt; awareness in tests, since it is a no-op on desktop.

If there&apos;s a way to that in layout tests, I&apos;ll be happy to add them as well.

And finally, the patch&apos;s goal is to avoid the preloader loading the wrong resource when the HTML is of the form:
```
&lt;html&gt;&lt;head&gt;
&lt;script src=&quot;something.js&quot;&gt;// This is a blocking script, so the preloader kicks in&lt;/script&gt;
&lt;meta name=viewport content=&quot;SOME VIEWPORT CHANGING VALUE&quot;&gt;
&lt;body&gt;
&lt;img srcset=&quot;400px.jpg 400w, 800px.jpg 800w&quot;&gt;
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094266</commentid>
    <comment_count>10</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2015-05-12 14:21:12 -0700</bug_when>
    <thetext>In order to create an HTMLPreloadScanner in the unit tests I need a Document there.
Is there a way to create a Document (or a mock) there?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252409</attachid>
            <date>2015-05-05 15:06:59 -0700</date>
            <delta_ts>2015-05-07 14:25:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144640-20150506000543.patch</filename>
            <type>text/plain</type>
            <size>9167</size>
            <attacher name="Yoav Weiss">yoav</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmOTk3YmFjZjUwMWMw
YjgwNjVhMTM4Mjg5ODgwNWJkYzUwMmY2NC4uZjVjNjZjMDQ1ZDljYzNlNjRiYjA3NmZiMjQ5NjMy
Nzk2YTBhMWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA1LTA1ICBZb2F2
IFdlaXNzICA8eW9hdkB5b2F2LndzPgorCisgICAgICAgIEhhbmRsZSBtZXRhIHZpZXdwb3J0IGlu
IEhUTUxQcmVsb2FkU2Nhbm5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ0NjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSA8bWV0YT4gdGFnIHRvIHRoZSBIVE1MUHJl
bG9hZFNjYW5uZXIKKyAgICAgICAgYW5kIHdoZW4gdGhlIG1ldGEgdGFnJ3MgbmFtZSBpcyB2aWV3
cG9ydCwgZ2V0IHRoZSBkb2N1bWVudAorICAgICAgICB0byBwcm9jZXNzIHRoZSB0YWcncyBhdHRy
aWJ1dGUgdmFsdWUsIGFuZCBzZXQgaXRzIFZpZXdwb3J0QXJndW1lbnQuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZG9tL0hUTUxNZXRhRWxlbWVudC9tZXRhLXByZWxvYWRlci5odG1sCisKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6dGFnSWRGb3IpOiBBZGRlZCBtZXRhLgorICAgICAgICAo
V2ViQ29yZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6aW5pdGlhdG9yRm9yKTogQWRkZWQgbWV0YS4K
KyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6
U3RhcnRUYWdTY2FubmVyKTogQ2FsbCBkb2N1bWVudC5wcm9jZXNzVmlld3BvcnQgaXMgbWV0YSB2
aWV3cG9ydCBlbmNvdW50ZXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5u
ZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6cHJvY2Vzc0F0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6U3RhcnRUYWdTY2FubmVyOjpwcm9jZXNzQXR0cmlidXRl
KTogS2VlcCB0cmFjayBvZiBtZXRhIHZpZXdwb3J0IHRhZ3MuCisgICAgICAgIChXZWJDb3JlOjp0
ZXN0UHJlbG9hZFNjYW5uZXJWaWV3cG9ydFN1cHBvcnQpOiBUZXN0aW5nIGZ1bmN0aW9uIHRoYXQg
bWFrZXMgc3VyZSB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgd29ya2luZy4KKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnRlc3RQcmVsb2FkZXJTZXR0aW5n
Vmlld3BvcnQpOiBDYWxscyB0aGUgdGVzdGluZyBmdW5jdGlvbi4KKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxNS0w
NS0wMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UHVyZ2UgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL2h0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDAwMjQyYjg2ZmFlYmM4NDRj
MDljYWU0MDc3OWNlMzJmNWI3ZWE0NjAuLjMxNzVjMjVkZDgwMTVmMWRjMDAzZjlmNjRiMjNiYzM4
NWFlN2UyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVs
b2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxv
YWRTY2FubmVyLmNwcApAQCAtNTgsNiArNTgsOCBAQCBUb2tlblByZWxvYWRTY2FubmVyOjpUYWdJ
ZCBUb2tlblByZWxvYWRTY2FubmVyOjp0YWdJZEZvcihjb25zdCBIVE1MVG9rZW46OkRhdGFWZQog
ICAgICAgICByZXR1cm4gVGFnSWQ6OkJhc2U7CiAgICAgaWYgKHRhZ05hbWUgPT0gdGVtcGxhdGVU
YWcpCiAgICAgICAgIHJldHVybiBUYWdJZDo6VGVtcGxhdGU7CisgICAgaWYgKHRhZ05hbWUgPT0g
bWV0YVRhZykKKyAgICAgICAgcmV0dXJuIFRhZ0lkOjpNZXRhOwogICAgIHJldHVybiBUYWdJZDo6
VW5rbm93bjsKIH0KIApAQCAtNzYsNiArNzgsNyBAQCBTdHJpbmcgVG9rZW5QcmVsb2FkU2Nhbm5l
cjo6aW5pdGlhdG9yRm9yKFRhZ0lkIHRhZ0lkKQogICAgIGNhc2UgVGFnSWQ6OlN0eWxlOgogICAg
IGNhc2UgVGFnSWQ6OkJhc2U6CiAgICAgY2FzZSBUYWdJZDo6VGVtcGxhdGU6CisgICAgY2FzZSBU
YWdJZDo6TWV0YToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biAidW5rbm93biI7CiAgICAgfQpAQCAtODgsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgU3RhcnRUYWdTY2FubmVyKFRhZ0lkIHRhZ0lkLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9
IDEuMCkKICAgICAgICAgOiBtX3RhZ0lkKHRhZ0lkKQogICAgICAgICAsIG1fbGlua0lzU3R5bGVT
aGVldChmYWxzZSkKKyAgICAgICAgLCBtX21ldGFJc1ZpZXdwb3J0KGZhbHNlKQogICAgICAgICAs
IG1faW5wdXRJc0ltYWdlKGZhbHNlKQogICAgICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0b3IoZGV2
aWNlU2NhbGVGYWN0b3IpCiAgICAgewpAQCAtMTE2LDYgKzEyMCw5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIEltYWdlQ2FuZGlkYXRlIGltYWdlQ2FuZGlkYXRlID0gYmVzdEZpdFNvdXJjZUZvcklt
YWdlQXR0cmlidXRlcyhtX2RldmljZVNjYWxlRmFjdG9yLCBtX3VybFRvTG9hZCwgbV9zcmNTZXRB
dHRyaWJ1dGUsIHNvdXJjZVNpemUpOwogICAgICAgICAgICAgc2V0VXJsVG9Mb2FkKGltYWdlQ2Fu
ZGlkYXRlLnN0cmluZy50b1N0cmluZygpLCB0cnVlKTsKICAgICAgICAgfQorCisgICAgICAgIGlm
IChtX21ldGFJc1ZpZXdwb3J0ICYmICFtX21ldGFDb250ZW50LmlzTnVsbCgpKQorICAgICAgICAg
ICAgZG9jdW1lbnQucHJvY2Vzc1ZpZXdwb3J0KG1fbWV0YUNvbnRlbnQsIFZpZXdwb3J0QXJndW1l
bnRzOjpWaWV3cG9ydE1ldGEpOwogICAgIH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcmVsb2Fk
UmVxdWVzdD4gY3JlYXRlUHJlbG9hZFJlcXVlc3QoY29uc3QgVVJMJiBwcmVkaWN0ZWRCYXNlVVJM
KQpAQCAtMTY2LDYgKzE3MywxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHNldFVybFRv
TG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChhdHRyaWJ1
dGVOYW1lLCB0eXBlQXR0cikpCiAgICAgICAgICAgICAgICAgbV9pbnB1dElzSW1hZ2UgPSBlcXVh
bElnbm9yaW5nQ2FzZShhdHRyaWJ1dGVWYWx1ZSwgSW5wdXRUeXBlTmFtZXM6OmltYWdlKCkpOwor
ICAgICAgICB9IGVsc2UgaWYgKG1fdGFnSWQgPT0gVGFnSWQ6Ok1ldGEpIHsKKyAgICAgICAgICAg
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBjb250ZW50QXR0cikpCisgICAgICAgICAgICAgICAg
bV9tZXRhQ29udGVudCA9IGF0dHJpYnV0ZVZhbHVlOworICAgICAgICAgICAgZWxzZSBpZiAobWF0
Y2goYXR0cmlidXRlTmFtZSwgbmFtZUF0dHIpKQorICAgICAgICAgICAgICAgIG1fbWV0YUlzVmll
d3BvcnQgPSBlcXVhbElnbm9yaW5nQ2FzZShhdHRyaWJ1dGVWYWx1ZSwgInZpZXdwb3J0Iik7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTIzNiw2ICsyNDgsOCBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX2Nyb3NzT3JpZ2luTW9kZTsKICAgICBib29sIG1fbGlua0lzU3R5bGVTaGVldDsKICAgICBT
dHJpbmcgbV9tZWRpYUF0dHJpYnV0ZTsKKyAgICBTdHJpbmcgbV9tZXRhQ29udGVudDsKKyAgICBi
b29sIG1fbWV0YUlzVmlld3BvcnQ7CiAgICAgYm9vbCBtX2lucHV0SXNJbWFnZTsKICAgICBmbG9h
dCBtX2RldmljZVNjYWxlRmFjdG9yOwogfTsKQEAgLTM0Nyw0ICszNjEsMTUgQEAgdm9pZCBIVE1M
UHJlbG9hZFNjYW5uZXI6OnNjYW4oSFRNTFJlc291cmNlUHJlbG9hZGVyJiBwcmVsb2FkZXIsIERv
Y3VtZW50JiBkb2N1bWUKICAgICBwcmVsb2FkZXIucHJlbG9hZChXVEY6Om1vdmUocmVxdWVzdHMp
KTsKIH0KIAorYm9vbCB0ZXN0UHJlbG9hZFNjYW5uZXJWaWV3cG9ydFN1cHBvcnQoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgSFRNTFBhcnNlck9wdGlv
bnMgb3B0aW9ucygqZG9jdW1lbnQpOworICAgIEhUTUxQcmVsb2FkU2Nhbm5lciBzY2FubmVyKG9w
dGlvbnMsIGRvY3VtZW50LT51cmwoKSk7CisgICAgSFRNTFJlc291cmNlUHJlbG9hZGVyIHByZWxv
YWRlcigqZG9jdW1lbnQpOworICAgIHNjYW5uZXIuYXBwZW5kVG9FbmQoU3RyaW5nKCI8bWV0YSBu
YW1lPXZpZXdwb3J0IGNvbnRlbnQ9J3dpZHRoPTQwMCc+IikpOworICAgIHNjYW5uZXIuc2Nhbihw
cmVsb2FkZXIsICpkb2N1bWVudCk7CisgICAgcmV0dXJuIChkb2N1bWVudC0+dmlld3BvcnRBcmd1
bWVudHMoKS53aWR0aCA9PSA0MDApOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5oCmluZGV4IDFhOWMyODM5MDMxMWIxOGRiYmRkZTY5
MzE1MWQwMDQ5Y2NlNTc0YWMuLmI1MWEyZDM0M2RjYjVjMTQ5OTMwMTRjZmNhMTk2NTcwN2RkMjAx
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nh
bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5l
ci5oCkBAIC00OSw2ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIElucHV0LAogICAgICAgICBM
aW5rLAogICAgICAgICBTY3JpcHQsCisgICAgICAgIE1ldGEsCiAKICAgICAgICAgLy8gVGhlc2Ug
dGFncyBhcmUgbm90IHNjYW5uZWQgYnkgdGhlIFN0YXJ0VGFnU2Nhbm5lci4KICAgICAgICAgVW5r
bm93biwKQEAgLTkwLDYgKzkxLDggQEAgcHJpdmF0ZToKICAgICBIVE1MVG9rZW5pemVyIG1fdG9r
ZW5pemVyOwogfTsKIAorV0VCQ09SRV9FWFBPUlQgYm9vbCB0ZXN0UHJlbG9hZFNjYW5uZXJWaWV3
cG9ydFN1cHBvcnQoRG9jdW1lbnQqKTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCA2OThmNDcyMWVjZTI4MjQzNmVmZDc5NjgyN2JlODRiNmFjMDRl
MWUyLi43MjRjMTY2MjliMDViMzg2NTZlOTUzN2Y2ZTY3MGE2NTRkNzljNjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQ
bHVnSW5FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZWxvYWRTY2FubmVyLmgiCiAjaW5jbHVk
ZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgpAQCAtMjc2Niw0ICsyNzY3LDkgQEAgTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgSW50ZXJuYWxzOjptb2NrQ29udGVudEZpbHRlclNldHRp
bmdzKCkKIH0KICNlbmRpZgogCitib29sIEludGVybmFsczo6dGVzdFByZWxvYWRlclNldHRpbmdW
aWV3cG9ydCgpCit7CisgICAgcmV0dXJuIHRlc3RQcmVsb2FkU2Nhbm5lclZpZXdwb3J0U3VwcG9y
dChjb250ZXh0RG9jdW1lbnQoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDJjMTgwZmVmYjU4OTY5MjQ1ZDAyMTY3YTUyNmJkN2ZmNmI4NDMwMWMuLmE1YmE4Mzkw
MmEyOTI3NTg4ZDFhZTc5ZDAwYWZjMjIxODg1ZDg3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMzkzLDYgKzM5Myw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxGaWxlPiBj
cmVhdGVGaWxlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcXVldWVNaWNyb1Rhc2soaW50KTsK
KyAgICBib29sIHRlc3RQcmVsb2FkZXJTZXR0aW5nVmlld3BvcnQoKTsKIAogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklORykKICAgICBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzJiBtb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggODA2YTgyZDhlNWVlMjIyMDM0NTQyMWJiMTcyNzFmNmUyODJhYTI5Yi4uYTFhNGI3NzFkNzhl
YmE3NGY1Zjk2YTgzNTQ4ZGI2YmRhYjBhNjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtMzU1LDYgKzM1NSw3IEBAIGVudW0gUmVzb3VyY2VMb2FkUHJpb3JpdHkgewog
ICAgIAogICAgIEZpbGUgY3JlYXRlRmlsZShET01TdHJpbmcgdXJsKTsKICAgICB2b2lkIHF1ZXVl
TWljcm9UYXNrKGxvbmcgdGVzdE51bWJlcik7CisgICAgYm9vbGVhbiB0ZXN0UHJlbG9hZGVyU2V0
dGluZ1ZpZXdwb3J0KCk7CiAKICAgICBbQ29uZGl0aW9uYWw9Q09OVEVOVF9GSUxURVJJTkddIHJl
YWRvbmx5IGF0dHJpYnV0ZSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzIG1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4MDc5MmE3NmE2MDk2Zjg2Zjk3MWE0OWIxYzJkNDlk
NTFiODgyNzUuLmY0ZTVmMzlkMWE4MjExZmEyZjM5ZmQwZjQ3NGE2YzUyOTZmZjcxN2QgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxNS0wNS0wNSAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4K
KworICAgICAgICBIYW5kbGUgbWV0YSB2aWV3cG9ydCBpbiBIVE1MUHJlbG9hZFNjYW5uZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDY0MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgbGF5
b3V0IHRlc3QgdGhhdCBpcyBzaW1wbHkgY2FsbGluZyBhbiBpbnRlcm5hbHMgbWV0aG9kCisgICAg
ICAgIHRoYXQgdGVzdHMgdGhlIEhUTUxQcmVsb2FkU2Nhbm5lci4KKworICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxNZXRhRWxlbWVudC9tZXRhLXByZWxvYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRhRWxlbWVudC9tZXRhLXByZWxvYWRlci5odG1sOiBB
ZGRlZC4KKwogMjAxNS0wNS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSAoIW5lZWRzTGF5b3V0KCkpIGxvYWRpbmcg
aW5rZWRtYWcuY29tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0YUVs
ZW1lbnQvbWV0YS1wcmVsb2FkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTE1ldGFFbGVtZW50L21ldGEtcHJlbG9hZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MDk4YTYxZWJlNWNhOTJiN2NmYThiYjk1MTRmMmVmZTJlNjBhMTZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGFFbGVtZW50L21ldGEtcHJlbG9hZGVyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1lvdSBzaG91bGQgc2VlIDEgbGluZSB3aXRoICJT
VUNDRVNTIiBiZWxvdzoKK1NVQ0NFU1MgKHZhbHVlOiAidHJ1ZSIpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0YUVsZW1lbnQvbWV0YS1wcmVsb2FkZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRhRWxlbWVudC9tZXRhLXByZWxvYWRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNhYmY5ZWJjODBkNTk4NmFiZTI5OTgxZDUyOWY0NGQxMjJkMjY0YzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0YUVsZW1lbnQvbWV0YS1w
cmVsb2FkZXIuaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgor
PGJvZHk+CitZb3Ugc2hvdWxkIHNlZSAxIGxpbmUgd2l0aCAiU1VDQ0VTUyIgYmVsb3c6Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworCitmdW5jdGlvbiBjaGVja0V4cGVjdGVkKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYg
KGFjdHVhbCAhPSBleHBlY3RlZCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbigiPHA+RkFJTFVS
RTogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWQgKyAiXCIsIGFjdHVhbCBcIiIgKyBhY3R1YWwgKyAi
XCI8L3A+Iik7CisgICAgZWxzZQorICAgICAgICBkb2N1bWVudC53cml0ZWxuKCI8cD5TVUNDRVNT
ICh2YWx1ZTogXCIiICsgYWN0dWFsICsgIlwiKTwvcD4iKTsKK30KKworaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgY2hlY2tFeHBlY3RlZChpbnRlcm5hbHMudGVzdFByZWxvYWRlclNldHRpbmdW
aWV3cG9ydCgpLCB0cnVlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252627</attachid>
            <date>2015-05-07 14:25:10 -0700</date>
            <delta_ts>2015-05-07 15:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144640-20150507232352.patch</filename>
            <type>text/plain</type>
            <size>9321</size>
            <attacher name="Yoav Weiss">yoav</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTEyMTVmMjBlMzExNjcz
YjA2OGE1YzIyYWQwMmVlZWUwMTliMTUxMy4uNTkyMWEwZWNjZWY0MGNjOGFiNWUwN2U0MjVjZjIy
ODljNjhkM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE1LTA1LTA3ICBZb2F2
IFdlaXNzICA8eW9hdkB5b2F2LndzPgogCisgICAgICAgIEhhbmRsZSBtZXRhIHZpZXdwb3J0IGlu
IEhUTUxQcmVsb2FkU2Nhbm5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ0NjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgPG1ldGE+IHRhZyB0byB0aGUgSFRNTFByZWxv
YWRTY2FubmVyCisgICAgICAgIGFuZCB3aGVuIHRoZSBtZXRhIHRhZydzIG5hbWUgaXMgdmlld3Bv
cnQsIGdldCB0aGUgZG9jdW1lbnQKKyAgICAgICAgdG8gcHJvY2VzcyB0aGUgdGFnJ3MgYXR0cmli
dXRlIHZhbHVlLCBhbmQgc2V0IGl0cyBWaWV3cG9ydEFyZ3VtZW50LgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MTWV0YUVsZW1lbnQvbWV0YS1wcmVsb2FkZXIuaHRtbAorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRva2VuUHJlbG9hZFNjYW5uZXI6OnRhZ0lkRm9yKTogQWRkZWQgbWV0YS4KKyAgICAgICAgKFdl
YkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OmluaXRpYXRvckZvcik6IEFkZGVkIG1ldGEuCisg
ICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjpTdGFydFRhZ1NjYW5uZXI6OlN0
YXJ0VGFnU2Nhbm5lcik6IENhbGwgZG9jdW1lbnQucHJvY2Vzc1ZpZXdwb3J0IGlzIG1ldGEgdmll
d3BvcnQgZW5jb3VudGVyZWQuCisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVy
OjpTdGFydFRhZ1NjYW5uZXI6OnByb2Nlc3NBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6cHJvY2Vzc0F0dHJpYnV0ZSk6
IEtlZXAgdHJhY2sgb2YgbWV0YSB2aWV3cG9ydCB0YWdzLgorICAgICAgICAoV2ViQ29yZTo6dGVz
dFByZWxvYWRTY2FubmVyVmlld3BvcnRTdXBwb3J0KTogVGVzdGluZyBmdW5jdGlvbiB0aGF0IG1h
a2VzIHN1cmUgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHdvcmtpbmcuCisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0ZXN0UHJlbG9hZGVyU2V0dGluZ1Zp
ZXdwb3J0KTogQ2FsbHMgdGhlIHRlc3RpbmcgZnVuY3Rpb24uCisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKKzIwMTUtMDUt
MDcgIFlvYXYgV2Vpc3MgIDx5b2F2QHlvYXYud3M+CisKICAgICAgICAgRml4IDxzY3JpcHQgc3Jj
c2V0PiBiZWluZyBsb2FkZWQgYnkgdGhlIHByZWxvYWRlci4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDY3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAzNTkwNDM2M2ExNGQ4
NzlkMWU2MjlmZjAwMTMzNTNlY2Y4YTI2ZDA0Li5kOWY2NGY1MDg1YWY3NTdiN2U4NzIxOWU0YTU5
ZTIwNzJmOTI4NTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKQEAgLTU4LDYgKzU4LDggQEAgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6
VGFnSWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6dGFnSWRGb3IoY29uc3QgSFRNTFRva2VuOjpEYXRh
VmUKICAgICAgICAgcmV0dXJuIFRhZ0lkOjpCYXNlOwogICAgIGlmICh0YWdOYW1lID09IHRlbXBs
YXRlVGFnKQogICAgICAgICByZXR1cm4gVGFnSWQ6OlRlbXBsYXRlOworICAgIGlmICh0YWdOYW1l
ID09IG1ldGFUYWcpCisgICAgICAgIHJldHVybiBUYWdJZDo6TWV0YTsKICAgICByZXR1cm4gVGFn
SWQ6OlVua25vd247CiB9CiAKQEAgLTc2LDYgKzc4LDcgQEAgU3RyaW5nIFRva2VuUHJlbG9hZFNj
YW5uZXI6OmluaXRpYXRvckZvcihUYWdJZCB0YWdJZCkKICAgICBjYXNlIFRhZ0lkOjpTdHlsZToK
ICAgICBjYXNlIFRhZ0lkOjpCYXNlOgogICAgIGNhc2UgVGFnSWQ6OlRlbXBsYXRlOgorICAgIGNh
c2UgVGFnSWQ6Ok1ldGE6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm4gInVua25vd24iOwogICAgIH0KQEAgLTg4LDYgKzkxLDcgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IFN0YXJ0VGFnU2Nhbm5lcihUYWdJZCB0YWdJZCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IgPSAxLjApCiAgICAgICAgIDogbV90YWdJZCh0YWdJZCkKICAgICAgICAgLCBtX2xpbmtJc1N0
eWxlU2hlZXQoZmFsc2UpCisgICAgICAgICwgbV9tZXRhSXNWaWV3cG9ydChmYWxzZSkKICAgICAg
ICAgLCBtX2lucHV0SXNJbWFnZShmYWxzZSkKICAgICAgICAgLCBtX2RldmljZVNjYWxlRmFjdG9y
KGRldmljZVNjYWxlRmFjdG9yKQogICAgIHsKQEAgLTExNiw2ICsxMjAsOSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBJbWFnZUNhbmRpZGF0ZSBpbWFnZUNhbmRpZGF0ZSA9IGJlc3RGaXRTb3VyY2VG
b3JJbWFnZUF0dHJpYnV0ZXMobV9kZXZpY2VTY2FsZUZhY3RvciwgbV91cmxUb0xvYWQsIG1fc3Jj
U2V0QXR0cmlidXRlLCBzb3VyY2VTaXplKTsKICAgICAgICAgICAgIHNldFVybFRvTG9hZChpbWFn
ZUNhbmRpZGF0ZS5zdHJpbmcudG9TdHJpbmcoKSwgdHJ1ZSk7CiAgICAgICAgIH0KKworICAgICAg
ICBpZiAobV9tZXRhSXNWaWV3cG9ydCAmJiAhbV9tZXRhQ29udGVudC5pc051bGwoKSkKKyAgICAg
ICAgICAgIGRvY3VtZW50LnByb2Nlc3NWaWV3cG9ydChtX21ldGFDb250ZW50LCBWaWV3cG9ydEFy
Z3VtZW50czo6Vmlld3BvcnRNZXRhKTsKICAgICB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJl
bG9hZFJlcXVlc3Q+IGNyZWF0ZVByZWxvYWRSZXF1ZXN0KGNvbnN0IFVSTCYgcHJlZGljdGVkQmFz
ZVVSTCkKQEAgLTE2Niw2ICsxNzMsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBzZXRV
cmxUb0xvYWQoYXR0cmlidXRlVmFsdWUpOwogICAgICAgICAgICAgZWxzZSBpZiAobWF0Y2goYXR0
cmlidXRlTmFtZSwgdHlwZUF0dHIpKQogICAgICAgICAgICAgICAgIG1faW5wdXRJc0ltYWdlID0g
ZXF1YWxJZ25vcmluZ0Nhc2UoYXR0cmlidXRlVmFsdWUsIElucHV0VHlwZU5hbWVzOjppbWFnZSgp
KTsKKyAgICAgICAgfSBlbHNlIGlmIChtX3RhZ0lkID09IFRhZ0lkOjpNZXRhKSB7CisgICAgICAg
ICAgICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgY29udGVudEF0dHIpKQorICAgICAgICAgICAg
ICAgIG1fbWV0YUNvbnRlbnQgPSBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KG1hdGNoKGF0dHJpYnV0ZU5hbWUsIG5hbWVBdHRyKSkKKyAgICAgICAgICAgICAgICBtX21ldGFJ
c1ZpZXdwb3J0ID0gZXF1YWxJZ25vcmluZ0Nhc2UoYXR0cmlidXRlVmFsdWUsICJ2aWV3cG9ydCIp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMzYsNiArMjQ4LDggQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9jcm9zc09yaWdpbk1vZGU7CiAgICAgYm9vbCBtX2xpbmtJc1N0eWxlU2hlZXQ7CiAg
ICAgU3RyaW5nIG1fbWVkaWFBdHRyaWJ1dGU7CisgICAgU3RyaW5nIG1fbWV0YUNvbnRlbnQ7Cisg
ICAgYm9vbCBtX21ldGFJc1ZpZXdwb3J0OwogICAgIGJvb2wgbV9pbnB1dElzSW1hZ2U7CiAgICAg
ZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIH07CkBAIC0zNDcsNCArMzYxLDE1IEBAIHZvaWQg
SFRNTFByZWxvYWRTY2FubmVyOjpzY2FuKEhUTUxSZXNvdXJjZVByZWxvYWRlciYgcHJlbG9hZGVy
LCBEb2N1bWVudCYgZG9jdW1lCiAgICAgcHJlbG9hZGVyLnByZWxvYWQoV1RGOjptb3ZlKHJlcXVl
c3RzKSk7CiB9CiAKK2Jvb2wgdGVzdFByZWxvYWRTY2FubmVyVmlld3BvcnRTdXBwb3J0KERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIEhUTUxQYXJzZXJP
cHRpb25zIG9wdGlvbnMoKmRvY3VtZW50KTsKKyAgICBIVE1MUHJlbG9hZFNjYW5uZXIgc2Nhbm5l
cihvcHRpb25zLCBkb2N1bWVudC0+dXJsKCkpOworICAgIEhUTUxSZXNvdXJjZVByZWxvYWRlciBw
cmVsb2FkZXIoKmRvY3VtZW50KTsKKyAgICBzY2FubmVyLmFwcGVuZFRvRW5kKFN0cmluZygiPG1l
dGEgbmFtZT12aWV3cG9ydCBjb250ZW50PSd3aWR0aD00MDAnPiIpKTsKKyAgICBzY2FubmVyLnNj
YW4ocHJlbG9hZGVyLCAqZG9jdW1lbnQpOworICAgIHJldHVybiAoZG9jdW1lbnQtPnZpZXdwb3J0
QXJndW1lbnRzKCkud2lkdGggPT0gNDAwKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaAppbmRleCAxYTljMjgzOTAzMTFiMThkYmJk
ZGU2OTMxNTFkMDA0OWNjZTU3NGFjLi5iNTFhMmQzNDNkY2I1YzE0OTkzMDE0Y2ZjYTE5NjU3MDdk
ZDIwMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNj
YW5uZXIuaApAQCAtNDksNiArNDksNyBAQCBwcml2YXRlOgogICAgICAgICBJbnB1dCwKICAgICAg
ICAgTGluaywKICAgICAgICAgU2NyaXB0LAorICAgICAgICBNZXRhLAogCiAgICAgICAgIC8vIFRo
ZXNlIHRhZ3MgYXJlIG5vdCBzY2FubmVkIGJ5IHRoZSBTdGFydFRhZ1NjYW5uZXIuCiAgICAgICAg
IFVua25vd24sCkBAIC05MCw2ICs5MSw4IEBAIHByaXZhdGU6CiAgICAgSFRNTFRva2VuaXplciBt
X3Rva2VuaXplcjsKIH07CiAKK1dFQkNPUkVfRVhQT1JUIGJvb2wgdGVzdFByZWxvYWRTY2FubmVy
Vmlld3BvcnRTdXBwb3J0KERvY3VtZW50Kik7CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggNGNhMzQwMmQ1N2RmNzFkM2FlMDBiYmY3OGU2YzkyMmYw
NGM2MWY4MC4uODgyOWVlMDA3ODc2OWZhN2E2ZTZhZWYxODQxYWU2MjI0MjU4ZDQ3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGx1Z0luRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVsb2FkU2Nhbm5lci5oIgogI2lu
Y2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKQEAgLTI4MzQsNCArMjgzNSw5IEBA
IFN0cmluZyBJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKEVsZW1lbnQqIGVsZW1lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogfQogI2VuZGlmCiAKK2Jvb2wgSW50ZXJuYWxzOjp0ZXN0UHJlbG9h
ZGVyU2V0dGluZ1ZpZXdwb3J0KCkKK3sKKyAgICByZXR1cm4gdGVzdFByZWxvYWRTY2FubmVyVmll
d3BvcnRTdXBwb3J0KGNvbnRleHREb2N1bWVudCgpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKaW5kZXggMWJhYjk3ODI4OWYzYWJkOTc3OWI4NDc1MzJlMWZkY2ExNzgwMmY0
ZC4uMDk0MTIyOTYxOTIyMTcyZjdkYjcxNzViZGY4OThhNjc4Y2FiZGEyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zOTUsNiArMzk1LDcgQEAgcHVibGljOgogCiAgICAgUmVm
UHRyPEZpbGU+IGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBxdWV1ZU1pY3Jv
VGFzayhpbnQpOworICAgIGJvb2wgdGVzdFByZWxvYWRlclNldHRpbmdWaWV3cG9ydCgpOwogCiAj
aWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgIE1vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MmIG1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCAwMmNkMDg0NDVmNDcyZWM4MzI4OTM4NTUyZjljM2YwYTI3OTJiYzlhLi4x
YjAwOTgwNDRmMzEzNjI3ZWMzYWUzYWZiZGNkMmI3NGUyMGFjYjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNTcsNiArMzU3LDcgQEAgZW51bSBSZXNvdXJjZUxvYWRQ
cmlvcml0eSB7CiAgICAgCiAgICAgRmlsZSBjcmVhdGVGaWxlKERPTVN0cmluZyB1cmwpOwogICAg
IHZvaWQgcXVldWVNaWNyb1Rhc2sobG9uZyB0ZXN0TnVtYmVyKTsKKyAgICBib29sZWFuIHRlc3RQ
cmVsb2FkZXJTZXR0aW5nVmlld3BvcnQoKTsKIAogICAgIFtDb25kaXRpb25hbD1DT05URU5UX0ZJ
TFRFUklOR10gcmVhZG9ubHkgYXR0cmlidXRlIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MgbW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFlMjg4OTQwYThmZThkNzAwMWZhNzNi
NTdhOGFlNmIxMTdmMWEzYWQuLjNlMzk4NTExYzJmNDM4Nzg0ODU5NTg0MTQ1M2E1M2NiNDQyNDVk
YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wNS0wNyAgWW9hdiBXZWlzcyAgPHlvYXZA
eW9hdi53cz4KKworICAgICAgICBIYW5kbGUgbWV0YSB2aWV3cG9ydCBpbiBIVE1MUHJlbG9hZFNj
YW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NDY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBBZGRl
ZCBhIGxheW91dCB0ZXN0IHRoYXQgaXMgc2ltcGx5IGNhbGxpbmcgYW4gaW50ZXJuYWxzIG1ldGhv
ZAorICAgICAgICB0aGF0IHRlc3RzIHRoZSBIVE1MUHJlbG9hZFNjYW5uZXIuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MTWV0YUVsZW1lbnQvbWV0YS1wcmVsb2FkZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTWV0YUVsZW1lbnQvbWV0YS1wcmVsb2FkZXIu
aHRtbDogQWRkZWQuCisKIDIwMTUtMDUtMDcgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbRUZMXSBSRUdSRVNTSU9OKHIxODM5MDcpOiBJdCBtYWRlIGFs
bCBpbnNwZWN0b3ItcHJvdG9jb2wgdGVzdCBjcmFzaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTE1ldGFFbGVtZW50L21ldGEtcHJlbG9hZGVyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRhRWxlbWVudC9tZXRhLXByZWxvYWRlci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTA5OGE2MWViZTVjYTkyYjdjZmE4YmI5NTE0ZjJlZmUyZTYwYTE2
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRhRWxlbWVu
dC9tZXRhLXByZWxvYWRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitZb3Ugc2hvdWxk
IHNlZSAxIGxpbmUgd2l0aCAiU1VDQ0VTUyIgYmVsb3c6CitTVUNDRVNTICh2YWx1ZTogInRydWUi
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGFFbGVtZW50L21ldGEt
cHJlbG9hZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0YUVsZW1lbnQvbWV0
YS1wcmVsb2FkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2ZmMWJkNjhjMDdkZDZkNzM5NDIyMWYwYTUx
ODNkYWNjZDVkZDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TE1ldGFFbGVtZW50L21ldGEtcHJlbG9hZGVyLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+
Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorWW91IHNob3VsZCBzZWUgMSBsaW5lIHdpdGggIlNV
Q0NFU1MiIGJlbG93OgorPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBj
aGVja0V4cGVjdGVkKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgdmFyIHJlc3VsdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICBpZiAoYWN0dWFsICE9IGV4cGVjdGVk
KQorICAgICAgICByZXN1bHQuaW5uZXJIVE1MID0gIjxwPkZBSUxVUkU6IGV4cGVjdGVkIFwiIiAr
IGV4cGVjdGVkICsgIlwiLCBhY3R1YWwgXCIiICsgYWN0dWFsICsgIlwiPC9wPiI7CisgICAgZWxz
ZQorICAgICAgICByZXN1bHQuaW5uZXJIVE1MID0gIjxwPlNVQ0NFU1MgKHZhbHVlOiBcIiIgKyBh
Y3R1YWwgKyAiXCIpPC9wPiI7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGNoZWNr
RXhwZWN0ZWQoaW50ZXJuYWxzLnRlc3RQcmVsb2FkZXJTZXR0aW5nVmlld3BvcnQoKSwgdHJ1ZSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>