<?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>147366</bug_id>
          
          <creation_ts>2015-07-28 12:38:42 -0700</creation_ts>
          <short_desc>[PerformanceTiming] Don&apos;t expose the restrictedKeyMap() HashMap</short_desc>
          <delta_ts>2016-01-04 23:46:39 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112810</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-07-28 12:38:42 -0700</bug_when>
    <thetext>restrictedKeyMap() in PerformanceUserTiming.cpp should return a const reference to the HashMap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112813</commentid>
    <comment_count>1</comment_count>
      <attachid>257670</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-07-28 12:43:17 -0700</bug_when>
    <thetext>Created attachment 257670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116145</commentid>
    <comment_count>2</comment_count>
      <attachid>257670</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-08-09 18:04:23 -0700</bug_when>
    <thetext>Comment on attachment 257670
Patch

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

&gt; Source/WebCore/page/PerformanceUserTiming.cpp:68
&gt; +    static NeverDestroyed&lt;RestrictedKeyMap&gt; map;
&gt; +    if (map.get().isEmpty()) {
&gt; +        map.get().add(&quot;navigationStart&quot;, &amp;PerformanceTiming::navigationStart);
&gt; +        map.get().add(&quot;unloadEventStart&quot;, &amp;PerformanceTiming::unloadEventStart);
&gt; +        map.get().add(&quot;unloadEventEnd&quot;, &amp;PerformanceTiming::unloadEventEnd);
&gt; +        map.get().add(&quot;redirectStart&quot;, &amp;PerformanceTiming::redirectStart);
&gt; +        map.get().add(&quot;redirectEnd&quot;, &amp;PerformanceTiming::redirectEnd);
&gt; +        map.get().add(&quot;fetchStart&quot;, &amp;PerformanceTiming::fetchStart);
&gt; +        map.get().add(&quot;domainLookupStart&quot;, &amp;PerformanceTiming::domainLookupStart);
&gt; +        map.get().add(&quot;domainLookupEnd&quot;, &amp;PerformanceTiming::domainLookupEnd);
&gt; +        map.get().add(&quot;connectStart&quot;, &amp;PerformanceTiming::connectStart);
&gt; +        map.get().add(&quot;connectEnd&quot;, &amp;PerformanceTiming::connectEnd);
&gt; +        map.get().add(&quot;secureConnectionStart&quot;, &amp;PerformanceTiming::secureConnectionStart);
&gt; +        map.get().add(&quot;requestStart&quot;, &amp;PerformanceTiming::requestStart);
&gt; +        map.get().add(&quot;responseStart&quot;, &amp;PerformanceTiming::responseStart);
&gt; +        map.get().add(&quot;responseEnd&quot;, &amp;PerformanceTiming::responseEnd);
&gt; +        map.get().add(&quot;domLoading&quot;, &amp;PerformanceTiming::domLoading);
&gt; +        map.get().add(&quot;domInteractive&quot;, &amp;PerformanceTiming::domInteractive);
&gt; +        map.get().add(&quot;domContentLoadedEventStart&quot;, &amp;PerformanceTiming::domContentLoadedEventStart);
&gt; +        map.get().add(&quot;domContentLoadedEventEnd&quot;, &amp;PerformanceTiming::domContentLoadedEventEnd);
&gt; +        map.get().add(&quot;domComplete&quot;, &amp;PerformanceTiming::domComplete);
&gt; +        map.get().add(&quot;loadEventStart&quot;, &amp;PerformanceTiming::loadEventStart);
&gt; +        map.get().add(&quot;loadEventEnd&quot;, &amp;PerformanceTiming::loadEventEnd);
&gt; +    };

This is not a good way to create the map. All the adds end up getting inlined. Instead we should use a loop to build the map. I think the best practice is to write a separate create function.

UserTiming::findExistingMarkStartTime also has double hash lookup mistakes in it.

I’m not even sure we should expose the map. I think that a function that takes a string and returns a possibly-null NavigationTimingFunction would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117292</commentid>
    <comment_count>3</comment_count>
      <attachid>258904</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-08-13 11:22:46 -0700</bug_when>
    <thetext>Created attachment 258904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117294</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-13 11:25:49 -0700</bug_when>
    <thetext>Attachment 258904 did not pass style-queue:


ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:46:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:47:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:48:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:49:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:50:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:51:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:52:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:53:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:54:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:55:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:56:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:57:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:59:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:60:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:61:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:62:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:63:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:64:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:66:  Missing space before {  [whitespace/braces] [5]
Total errors found: 21 in 2 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>1152098</commentid>
    <comment_count>5</comment_count>
      <attachid>268136</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-01-03 06:49:55 -0800</bug_when>
    <thetext>Created attachment 268136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152099</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-03 06:51:36 -0800</bug_when>
    <thetext>Attachment 268136 did not pass style-queue:


ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:46:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:47:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:48:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:49:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:50:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:51:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:52:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:53:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:54:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:55:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:56:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:57:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:59:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:60:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:61:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:62:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:63:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:64:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/page/PerformanceUserTiming.cpp:66:  Missing space before {  [whitespace/braces] [5]
Total errors found: 21 in 2 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>1152669</commentid>
    <comment_count>7</comment_count>
      <attachid>268136</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-01-04 23:46:32 -0800</bug_when>
    <thetext>Comment on attachment 268136
Patch

Clearing flags on attachment: 268136

Committed r194578: &lt;http://trac.webkit.org/changeset/194578&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152670</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-01-04 23:46:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257670</attachid>
            <date>2015-07-28 12:43:17 -0700</date>
            <delta_ts>2015-08-13 11:22:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147366-20150728124154.patch</filename>
            <type>text/plain</type>
            <size>5232</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY2ZWViYWQzNWYxNzQy
YjQ3ODM1MzBiMTYyNjY1NWM1MGVhMjZlZS4uYTNjODI4ODM0ZTRiOGIwY2MyZjcyMTE5NWY3N2U5
ZGQ2ZGQxMjhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA3LTI4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICByZXN0cmljdGVkS2V5
TWFwKCkgaW4gUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcCBzaG91bGQgcmV0dXJuIGEgY29uc3Qg
cmVmZXJlbmNlIHRvIHRoZSBIYXNoTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDczNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBMZXQgcmVzdHJpY3RlZEtleU1hcCgpIHJldHVybiBhIGNvbnN0IHJl
ZmVyZW5jZSB0byB0aGUgc3RhdGljIEhhc2hNYXAgb2JqZWN0LAorICAgICAgICBhdm9pZGluZyBj
b3B5aW5nIHRoZSBtYXAgb24gZXZlcnkgcmV0cmlldmFsLgorCisgICAgICAgIFRoZSBwYXRjaCBh
bHNvIG1vZGlmaWVzIHRoZSBjb2RlIHRvIHVzZSBhIHR5cGUgYWxpYXMgaW5zdGVhZCBvZiB0eXBl
ZGVmaW5nCisgICAgICAgIHRoZSBSZXN0cmljdGVkS2V5TWFwIHR5cGUsIGFuZCByZXBsYWNlcyB0
aGUgZGVwcmVjYXRlZCBzdGF0aWMgbG9jYWwgZGVmaW5pdGlvbgorICAgICAgICBtYWNybyB3aXRo
IE5ldmVyRGVzdHJveWVkLgorCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcu
Y3BwOgorCiAyMDE1LTA3LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWxsb3cgbGF4IE1JTUUgdHlwZSBwYXJzaW5nIGZvciBzYW1lLW9yaWdpbiBDU1MgaW4g
cXVpcmtzIG1vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
VXNlclRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWlu
Zy5jcHAKaW5kZXggYTgwMDIyZTBjOWU3N2NhMTAzNDE5N2IxOWE0YWFlNmJmNzJjZWI5MC4uMzcz
ZWFhZjJkMzJmMGYyZjFmYzFiM2Y3NzY2MGU4MzMyNjI0NDdhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VNYXJrLmgiCiAjaW5j
bHVkZSAiUGVyZm9ybWFuY2VNZWFzdXJlLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EvdXRpbHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtMzgsMzMgKzM5LDM0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFt
ZXNwYWNlIHsKIAotdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgTmF2aWdhdGlvblRpbWluZ0Z1bmN0
aW9uPiBSZXN0cmljdGVkS2V5TWFwOwotc3RhdGljIFJlc3RyaWN0ZWRLZXlNYXAgcmVzdHJpY3Rl
ZEtleU1hcCgpCit1c2luZyBSZXN0cmljdGVkS2V5TWFwID0gSGFzaE1hcDxTdHJpbmcsIE5hdmln
YXRpb25UaW1pbmdGdW5jdGlvbj47CitzdGF0aWMgY29uc3QgUmVzdHJpY3RlZEtleU1hcCYgcmVz
dHJpY3RlZEtleU1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJl
c3RyaWN0ZWRLZXlNYXAsIG1hcCwgKCkpOwotICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIG1hcC5hZGQoIm5hdmlnYXRpb25TdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdh
dGlvblN0YXJ0KTsKLSAgICAgICAgbWFwLmFkZCgidW5sb2FkRXZlbnRTdGFydCIsICZQZXJmb3Jt
YW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoInVubG9hZEV2
ZW50RW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCk7Ci0gICAgICAgIG1h
cC5hZGQoInJlZGlyZWN0U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQp
OwotICAgICAgICBtYXAuYWRkKCJyZWRpcmVjdEVuZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVk
aXJlY3RFbmQpOwotICAgICAgICBtYXAuYWRkKCJmZXRjaFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGlt
aW5nOjpmZXRjaFN0YXJ0KTsKLSAgICAgICAgbWFwLmFkZCgiZG9tYWluTG9va3VwU3RhcnQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KTsKLSAgICAgICAgbWFwLmFkZCgi
ZG9tYWluTG9va3VwRW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOwot
ICAgICAgICBtYXAuYWRkKCJjb25uZWN0U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5l
Y3RTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoImNvbm5lY3RFbmQiLCAmUGVyZm9ybWFuY2VUaW1p
bmc6OmNvbm5lY3RFbmQpOwotICAgICAgICBtYXAuYWRkKCJzZWN1cmVDb25uZWN0aW9uU3RhcnQi
LCAmUGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk7Ci0gICAgICAgIG1h
cC5hZGQoInJlcXVlc3RTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KTsK
LSAgICAgICAgbWFwLmFkZCgicmVzcG9uc2VTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVz
cG9uc2VTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoInJlc3BvbnNlRW5kIiwgJlBlcmZvcm1hbmNl
VGltaW5nOjpyZXNwb25zZUVuZCk7Ci0gICAgICAgIG1hcC5hZGQoImRvbUxvYWRpbmciLCAmUGVy
Zm9ybWFuY2VUaW1pbmc6OmRvbUxvYWRpbmcpOwotICAgICAgICBtYXAuYWRkKCJkb21JbnRlcmFj
dGl2ZSIsICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9tSW50ZXJhY3RpdmUpOwotICAgICAgICBtYXAu
YWRkKCJkb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9t
Q29udGVudExvYWRlZEV2ZW50U3RhcnQpOwotICAgICAgICBtYXAuYWRkKCJkb21Db250ZW50TG9h
ZGVkRXZlbnRFbmQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUNvbnRlbnRMb2FkZWRFdmVudEVu
ZCk7Ci0gICAgICAgIG1hcC5hZGQoImRvbUNvbXBsZXRlIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpk
b21Db21wbGV0ZSk7Ci0gICAgICAgIG1hcC5hZGQoImxvYWRFdmVudFN0YXJ0IiwgJlBlcmZvcm1h
bmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoImxvYWRFdmVudEVu
ZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2ZW50RW5kKTsKLSAgICB9CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJlc3RyaWN0ZWRLZXlNYXA+IG1hcDsKKyAgICBpZiAobWFwLmdldCgp
LmlzRW1wdHkoKSkgeworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJuYXZpZ2F0aW9uU3RhcnQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25TdGFydCk7CisgICAgICAgIG1hcC5nZXQoKS5h
ZGQoInVubG9hZEV2ZW50U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3Rh
cnQpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJ1bmxvYWRFdmVudEVuZCIsICZQZXJmb3JtYW5j
ZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJyZWRpcmVj
dFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KTsKKyAgICAgICAgbWFw
LmdldCgpLmFkZCgicmVkaXJlY3RFbmQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5k
KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZCgiZmV0Y2hTdGFydCIsICZQZXJmb3JtYW5jZVRpbWlu
Zzo6ZmV0Y2hTdGFydCk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQoImRvbWFpbkxvb2t1cFN0YXJ0
IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk7CisgICAgICAgIG1hcC5n
ZXQoKS5hZGQoImRvbWFpbkxvb2t1cEVuZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9v
a3VwRW5kKTsKKyAgICAgICAgbWFwLmdldCgpLmFkZCgiY29ubmVjdFN0YXJ0IiwgJlBlcmZvcm1h
bmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJjb25uZWN0
RW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0RW5kKTsKKyAgICAgICAgbWFwLmdldCgp
LmFkZCgic2VjdXJlQ29ubmVjdGlvblN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpzZWN1cmVD
b25uZWN0aW9uU3RhcnQpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJyZXF1ZXN0U3RhcnQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6OnJlcXVlc3RTdGFydCk7CisgICAgICAgIG1hcC5nZXQoKS5hZGQo
InJlc3BvbnNlU3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOworICAg
ICAgICBtYXAuZ2V0KCkuYWRkKCJyZXNwb25zZUVuZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVz
cG9uc2VFbmQpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJkb21Mb2FkaW5nIiwgJlBlcmZvcm1h
bmNlVGltaW5nOjpkb21Mb2FkaW5nKTsKKyAgICAgICAgbWFwLmdldCgpLmFkZCgiZG9tSW50ZXJh
Y3RpdmUiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUludGVyYWN0aXZlKTsKKyAgICAgICAgbWFw
LmdldCgpLmFkZCgiZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1p
bmc6OmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0KTsKKyAgICAgICAgbWFwLmdldCgpLmFkZCgi
ZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21Db250ZW50
TG9hZGVkRXZlbnRFbmQpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJkb21Db21wbGV0ZSIsICZQ
ZXJmb3JtYW5jZVRpbWluZzo6ZG9tQ29tcGxldGUpOworICAgICAgICBtYXAuZ2V0KCkuYWRkKCJs
b2FkRXZlbnRTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOworICAg
ICAgICBtYXAuZ2V0KCkuYWRkKCJsb2FkRXZlbnRFbmQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6Omxv
YWRFdmVudEVuZCk7CisgICAgfTsKKwogICAgIHJldHVybiBtYXA7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258904</attachid>
            <date>2015-08-13 11:22:46 -0700</date>
            <delta_ts>2016-01-03 06:49:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147366-20150813112227.patch</filename>
            <type>text/plain</type>
            <size>7029</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM4YWYzN2IxZGY2Nzgz
NTRlMmViMTJjM2Q4MDVjODdlMmIyYTQyMi4uNmFkYTZhMzE1YjlhY2UwNTUyOGEzOWM2NTZjODFh
NzY5OTJmZWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA4LTEzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbUGVyZm9ybWFuY2VU
aW1pbmddIERvbid0IGV4cG9zZSB0aGUgcmVzdHJpY3RlZEtleU1hcCgpIEhhc2hNYXAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzM2NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgdGhl
IGNhbGxlcnMgbG9va2luZyB1cCBpbiB0aGUgSGFzaE1hcCB0aGF0J3MgcmV0dXJuZWQgYnkgcmVz
dHJpY3RlZEtleU1hcCgpLAorICAgICAgICBrZWVwIHRoZSBIYXNoTWFwIGxvY2FsIGluIHRoZSBz
dGF0aWMgcmVzdHJpY3RlZE1hcmtGdW5jdGlvbigpLiBUaGlzIGZ1bmN0aW9uIGFjY2VwdHMKKyAg
ICAgICAgYSBTdHJpbmcgcmVmZXJlbmNlIGFuZCBwZXJmb3JtcyB0aGUgbG9va3VwLCByZXR1cm5p
bmcgdGhlIHBvaW50ZXIgdG8gYSBQZXJmb3JtYW5jZVRpbWluZworICAgICAgICBtZXRob2QgdGhh
dCBjb3JyZXNwb25kcyB0byB0aGUgcGFzc2VkLWluIG1hcmsgb3IgcmV0dXJucyBudWxscHRyIG90
aGVyd2lzZS4KKworICAgICAgICBUaGUgSGFzaE1hcCBpcyBub3cgd3JhcHBlZCBpbiBhIE5ldmVy
RGVzdHJveWVkIG9iamVjdCBhbmQgaXMgcG9wdWxhdGVkIGluIHRoZSBuZXcKKyAgICAgICAgcG9w
dWxhdGVSZXN0cmljdGVkTWFya0Z1bmN0aW9uTWFwKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBw
YWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVc2VyVGlt
aW5nOjptYXJrKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJUaW1pbmc6OmZpbmRFeGlzdGluZ01h
cmtTdGFydFRpbWUpOgorCiAyMDE1LTA4LTEyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ2Fpcm9dIEltcHJvdmUgaW1hZ2UgcXVhbGl0eSB3
aGVuIHVzaW5nIG5ld2VyIHZlcnNpb25zIG9mIGNhaXJvL3BpeG1hbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmluZGV4IGE4MDAyMmUwYzllNzdjYTEw
MzQxOTdiMTlhNGFhZTZiZjcyY2ViOTAuLjMzNzM3MzFlYzA5YTgxYjRjYmFlMGRiMDYwYjM4MjJk
ZWU5MDc5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2Vy
VGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWlu
Zy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1
ZGUgIlBlcmZvcm1hbmNlTWFyay5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTWVhc3VyZS5oIgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hL3V0aWxz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM4LDM0ICszOSw0NCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKLXR5cGVkZWYgSGFzaE1hcDxT
dHJpbmcsIE5hdmlnYXRpb25UaW1pbmdGdW5jdGlvbj4gUmVzdHJpY3RlZEtleU1hcDsKLXN0YXRp
YyBSZXN0cmljdGVkS2V5TWFwIHJlc3RyaWN0ZWRLZXlNYXAoKQotewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChSZXN0cmljdGVkS2V5TWFwLCBtYXAsICgpKTsKLSAgICBpZiAo
bWFwLmlzRW1wdHkoKSkgewotICAgICAgICBtYXAuYWRkKCJuYXZpZ2F0aW9uU3RhcnQiLCAmUGVy
Zm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25TdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoInVubG9h
ZEV2ZW50U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQpOwotICAg
ICAgICBtYXAuYWRkKCJ1bmxvYWRFdmVudEVuZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2Fk
RXZlbnRFbmQpOwotICAgICAgICBtYXAuYWRkKCJyZWRpcmVjdFN0YXJ0IiwgJlBlcmZvcm1hbmNl
VGltaW5nOjpyZWRpcmVjdFN0YXJ0KTsKLSAgICAgICAgbWFwLmFkZCgicmVkaXJlY3RFbmQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKTsKLSAgICAgICAgbWFwLmFkZCgiZmV0Y2hT
dGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6ZmV0Y2hTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQo
ImRvbWFpbkxvb2t1cFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFy
dCk7Ci0gICAgICAgIG1hcC5hZGQoImRvbWFpbkxvb2t1cEVuZCIsICZQZXJmb3JtYW5jZVRpbWlu
Zzo6ZG9tYWluTG9va3VwRW5kKTsKLSAgICAgICAgbWFwLmFkZCgiY29ubmVjdFN0YXJ0IiwgJlBl
cmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOwotICAgICAgICBtYXAuYWRkKCJjb25uZWN0
RW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0RW5kKTsKLSAgICAgICAgbWFwLmFkZCgi
c2VjdXJlQ29ubmVjdGlvblN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpzZWN1cmVDb25uZWN0
aW9uU3RhcnQpOwotICAgICAgICBtYXAuYWRkKCJyZXF1ZXN0U3RhcnQiLCAmUGVyZm9ybWFuY2VU
aW1pbmc6OnJlcXVlc3RTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoInJlc3BvbnNlU3RhcnQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOwotICAgICAgICBtYXAuYWRkKCJyZXNw
b25zZUVuZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VFbmQpOwotICAgICAgICBtYXAu
YWRkKCJkb21Mb2FkaW5nIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21Mb2FkaW5nKTsKLSAgICAg
ICAgbWFwLmFkZCgiZG9tSW50ZXJhY3RpdmUiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUludGVy
YWN0aXZlKTsKLSAgICAgICAgbWFwLmFkZCgiZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6OmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0KTsKLSAgICAgICAg
bWFwLmFkZCgiZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpk
b21Db250ZW50TG9hZGVkRXZlbnRFbmQpOwotICAgICAgICBtYXAuYWRkKCJkb21Db21wbGV0ZSIs
ICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9tQ29tcGxldGUpOwotICAgICAgICBtYXAuYWRkKCJsb2Fk
RXZlbnRTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOwotICAgICAg
ICBtYXAuYWRkKCJsb2FkRXZlbnRFbmQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVudEVu
ZCk7Ci0gICAgfQotICAgIHJldHVybiBtYXA7CitzdGF0aWMgdm9pZCBwb3B1bGF0ZVJlc3RyaWN0
ZWRNYXJrRnVuY3Rpb25NYXAoSGFzaE1hcDxTdHJpbmcsIE5hdmlnYXRpb25UaW1pbmdGdW5jdGlv
bj4mIG1hcCkKK3sKKyAgICB1c2luZyBNYXBQYWlyID0gc3RkOjpwYWlyPEFTQ0lJTGl0ZXJhbCwg
TmF2aWdhdGlvblRpbWluZ0Z1bmN0aW9uPjsKKyAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxN
YXBQYWlyLCAyMT4gcGFpcnMgPSB7IHsKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJu
YXZpZ2F0aW9uU3RhcnQiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQgfSwK
KyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJ1bmxvYWRFdmVudFN0YXJ0IiksICZQZXJm
b3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJ
SUxpdGVyYWwoInVubG9hZEV2ZW50RW5kIiksICZQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZl
bnRFbmQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJyZWRpcmVjdFN0YXJ0Iiks
ICZQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBB
U0NJSUxpdGVyYWwoInJlZGlyZWN0RW5kIiksICZQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RF
bmQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJmZXRjaFN0YXJ0IiksICZQZXJm
b3JtYW5jZVRpbWluZzo6ZmV0Y2hTdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJSUxpdGVy
YWwoImRvbWFpbkxvb2t1cFN0YXJ0IiksICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3Vw
U3RhcnQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJkb21haW5Mb29rdXBFbmQi
KSwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQgfSwKKyAgICAgICAgTWFwUGFp
cnsgQVNDSUlMaXRlcmFsKCJjb25uZWN0U3RhcnQiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJjb25uZWN0RW5kIiks
ICZQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJ
SUxpdGVyYWwoInNlY3VyZUNvbm5lY3Rpb25TdGFydCIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJSUxpdGVyYWwoInJl
cXVlc3RTdGFydCIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnJlcXVlc3RTdGFydCB9LAorICAgICAg
ICBNYXBQYWlyeyBBU0NJSUxpdGVyYWwoInJlc3BvbnNlU3RhcnQiKSwgJlBlcmZvcm1hbmNlVGlt
aW5nOjpyZXNwb25zZVN0YXJ0IH0sCisgICAgICAgIE1hcFBhaXJ7IEFTQ0lJTGl0ZXJhbCgicmVz
cG9uc2VFbmQiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCB9LAorICAgICAgICBN
YXBQYWlyeyBBU0NJSUxpdGVyYWwoImRvbUxvYWRpbmciKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpk
b21Mb2FkaW5nIH0sCisgICAgICAgIE1hcFBhaXJ7IEFTQ0lJTGl0ZXJhbCgiZG9tSW50ZXJhY3Rp
dmUiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21JbnRlcmFjdGl2ZSB9LAorICAgICAgICBNYXBQ
YWlyeyBBU0NJSUxpdGVyYWwoImRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0IiksICZQZXJmb3Jt
YW5jZVRpbWluZzo6ZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQgfSwKKyAgICAgICAgTWFwUGFp
cnsgQVNDSUlMaXRlcmFsKCJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQiKSwgJlBlcmZvcm1hbmNl
VGltaW5nOjpkb21Db250ZW50TG9hZGVkRXZlbnRFbmQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVND
SUlMaXRlcmFsKCJkb21Db21wbGV0ZSIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUNvbXBsZXRl
IH0sCisgICAgICAgIE1hcFBhaXJ7IEFTQ0lJTGl0ZXJhbCgibG9hZEV2ZW50U3RhcnQiKSwgJlBl
cmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJ
SUxpdGVyYWwoImxvYWRFdmVudEVuZCIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVudEVu
ZCB9LAorICAgIH0gfTsKKworICAgIGZvciAoYXV0byYgcGFpciA6IHBhaXJzKQorICAgICAgICBt
YXAuYWRkKHBhaXIuZmlyc3QsIHBhaXIuc2Vjb25kKTsKK30KKworc3RhdGljIE5hdmlnYXRpb25U
aW1pbmdGdW5jdGlvbiByZXN0cmljdGVkTWFya0Z1bmN0aW9uKGNvbnN0IFN0cmluZyYgbWFya05h
bWUpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBOYXZpZ2F0
aW9uVGltaW5nRnVuY3Rpb24+PiBtYXA7CisgICAgaWYgKG1hcC5nZXQoKS5pc0VtcHR5KCkpCisg
ICAgICAgIHBvcHVsYXRlUmVzdHJpY3RlZE1hcmtGdW5jdGlvbk1hcChtYXApOworCisgICAgcmV0
dXJuIG1hcC5nZXQoKS5nZXQobWFya05hbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBhbm9ueW1v
dXMKQEAgLTk4LDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyUGVmb3JtYW5jZUVudHJpZXMo
UGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgY29uCiB2b2lkIFVzZXJU
aW1pbmc6Om1hcmsoY29uc3QgU3RyaW5nJiBtYXJrTmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgZWMgPSAwOwotICAgIGlmIChyZXN0cmljdGVkS2V5TWFwKCkuY29udGFpbnMobWFya05h
bWUpKSB7CisgICAgaWYgKHJlc3RyaWN0ZWRNYXJrRnVuY3Rpb24obWFya05hbWUpKSB7CiAgICAg
ICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExOSw4ICsx
MzAsOCBAQCBkb3VibGUgVXNlclRpbWluZzo6ZmluZEV4aXN0aW5nTWFya1N0YXJ0VGltZShjb25z
dCBTdHJpbmcmIG1hcmtOYW1lLCBFeGNlcHRpb25DbwogICAgIGlmIChtX21hcmtzTWFwLmNvbnRh
aW5zKG1hcmtOYW1lKSkKICAgICAgICAgcmV0dXJuIG1fbWFya3NNYXAuZ2V0KG1hcmtOYW1lKS5s
YXN0KCktPnN0YXJ0VGltZSgpOwogCi0gICAgaWYgKHJlc3RyaWN0ZWRLZXlNYXAoKS5jb250YWlu
cyhtYXJrTmFtZSkpIHsKLSAgICAgICAgZG91YmxlIHZhbHVlID0gc3RhdGljX2Nhc3Q8ZG91Ymxl
PigobV9wZXJmb3JtYW5jZS0+dGltaW5nKCktPioocmVzdHJpY3RlZEtleU1hcCgpLmdldChtYXJr
TmFtZSkpKSgpKTsKKyAgICBpZiAoYXV0byBmdW5jdGlvbiA9IHJlc3RyaWN0ZWRNYXJrRnVuY3Rp
b24obWFya05hbWUpKSB7CisgICAgICAgIGRvdWJsZSB2YWx1ZSA9IHN0YXRpY19jYXN0PGRvdWJs
ZT4oKG1fcGVyZm9ybWFuY2UtPnRpbWluZygpLT4qKGZ1bmN0aW9uKSkoKSk7CiAgICAgICAgIGlm
ICghdmFsdWUpIHsKICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAg
ICAgICAgcmV0dXJuIDAuMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268136</attachid>
            <date>2016-01-03 06:49:55 -0800</date>
            <delta_ts>2016-01-04 23:46:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147366-20160103064920.patch</filename>
            <type>text/plain</type>
            <size>6824</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDhiNTgyYzk3Mzlm
ZTkzNWMzODY5MTM1NTQ1YjZmMzkyOTk5My4uZGNlNGE4ZDFlZGFhYjAzMWM0YmNjNTE2OTI5OTIw
MmY5MTIyYjgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAxLTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbUGVyZm9ybWFuY2VU
aW1pbmddIERvbid0IGV4cG9zZSB0aGUgcmVzdHJpY3RlZEtleU1hcCgpIEhhc2hNYXAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzM2NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgdGhl
IGNhbGxlcnMgbG9va2luZyB1cCBpbiB0aGUgSGFzaE1hcCB0aGF0J3MgcmV0dXJuZWQgYnkgcmVz
dHJpY3RlZEtleU1hcCgpLAorICAgICAgICBrZWVwIHRoZSBIYXNoTWFwIGxvY2FsIGluIHRoZSBz
dGF0aWMgcmVzdHJpY3RlZE1hcmtGdW5jdGlvbigpLiBUaGlzIGZ1bmN0aW9uIGFjY2VwdHMKKyAg
ICAgICAgYSBTdHJpbmcgcmVmZXJlbmNlIGFuZCBwZXJmb3JtcyB0aGUgbG9va3VwLCByZXR1cm5p
bmcgdGhlIHBvaW50ZXIgdG8gYSBQZXJmb3JtYW5jZVRpbWluZworICAgICAgICBtZXRob2QgdGhh
dCBjb3JyZXNwb25kcyB0byB0aGUgcGFzc2VkLWluIG1hcmsgb3IgcmV0dXJucyBudWxscHRyIG90
aGVyd2lzZS4KKworICAgICAgICBUaGUgSGFzaE1hcCBpcyBub3cgd3JhcHBlZCBpbiBhIE5ldmVy
RGVzdHJveWVkIG9iamVjdCBhbmQgaXMgcG9wdWxhdGVkIHdoZW4gdGhlIGZpcnN0CisgICAgICAg
IG1hcmsgZnVuY3Rpb24gaXMgbG9va2VkIGZvci4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFu
Y2VVc2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJUaW1pbmc6Om1hcmspOgor
ICAgICAgICAoV2ViQ29yZTo6VXNlclRpbWluZzo6ZmluZEV4aXN0aW5nTWFya1N0YXJ0VGltZSk6
CisKIDIwMTUtMTItMzEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlcGxhY2UgV1RGOjptb3ZlIHdpdGggV1RGTW92ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmluZGV4IGE4MDAyMmUwYzllNzdjYTEwMzQxOTdiMTlh
NGFhZTZiZjcyY2ViOTAuLjVjODVmZDEzZTU2NmMzYjkzY2VhZDQ2MjJhYjc4OGFkMDY2OTBkMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlBlcmZv
cm1hbmNlTWFyay5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTWVhc3VyZS5oIgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hL3V0aWxzLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM4LDM0ICszOSw0MCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKLXR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIE5h
dmlnYXRpb25UaW1pbmdGdW5jdGlvbj4gUmVzdHJpY3RlZEtleU1hcDsKLXN0YXRpYyBSZXN0cmlj
dGVkS2V5TWFwIHJlc3RyaWN0ZWRLZXlNYXAoKQorc3RhdGljIE5hdmlnYXRpb25UaW1pbmdGdW5j
dGlvbiByZXN0cmljdGVkTWFya0Z1bmN0aW9uKGNvbnN0IFN0cmluZyYgbWFya05hbWUpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlc3RyaWN0ZWRLZXlNYXAsIG1hcCwg
KCkpOwotICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1hcC5hZGQoIm5hdmlnYXRp
b25TdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlvblN0YXJ0KTsKLSAgICAgICAg
bWFwLmFkZCgidW5sb2FkRXZlbnRTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZl
bnRTdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoInVubG9hZEV2ZW50RW5kIiwgJlBlcmZvcm1hbmNl
VGltaW5nOjp1bmxvYWRFdmVudEVuZCk7Ci0gICAgICAgIG1hcC5hZGQoInJlZGlyZWN0U3RhcnQi
LCAmUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQpOwotICAgICAgICBtYXAuYWRkKCJy
ZWRpcmVjdEVuZCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQpOwotICAgICAgICBt
YXAuYWRkKCJmZXRjaFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0KTsKLSAg
ICAgICAgbWFwLmFkZCgiZG9tYWluTG9va3VwU3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRv
bWFpbkxvb2t1cFN0YXJ0KTsKLSAgICAgICAgbWFwLmFkZCgiZG9tYWluTG9va3VwRW5kIiwgJlBl
cmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOwotICAgICAgICBtYXAuYWRkKCJjb25u
ZWN0U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RTdGFydCk7Ci0gICAgICAgIG1h
cC5hZGQoImNvbm5lY3RFbmQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOwotICAg
ICAgICBtYXAuYWRkKCJzZWN1cmVDb25uZWN0aW9uU3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6
OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk7Ci0gICAgICAgIG1hcC5hZGQoInJlcXVlc3RTdGFydCIs
ICZQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KTsKLSAgICAgICAgbWFwLmFkZCgicmVz
cG9uc2VTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCk7Ci0gICAgICAg
IG1hcC5hZGQoInJlc3BvbnNlRW5kIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCk7
Ci0gICAgICAgIG1hcC5hZGQoImRvbUxvYWRpbmciLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUxv
YWRpbmcpOwotICAgICAgICBtYXAuYWRkKCJkb21JbnRlcmFjdGl2ZSIsICZQZXJmb3JtYW5jZVRp
bWluZzo6ZG9tSW50ZXJhY3RpdmUpOwotICAgICAgICBtYXAuYWRkKCJkb21Db250ZW50TG9hZGVk
RXZlbnRTdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9tQ29udGVudExvYWRlZEV2ZW50U3Rh
cnQpOwotICAgICAgICBtYXAuYWRkKCJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQiLCAmUGVyZm9y
bWFuY2VUaW1pbmc6OmRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCk7Ci0gICAgICAgIG1hcC5hZGQo
ImRvbUNvbXBsZXRlIiwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21Db21wbGV0ZSk7Ci0gICAgICAg
IG1hcC5hZGQoImxvYWRFdmVudFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRT
dGFydCk7Ci0gICAgICAgIG1hcC5hZGQoImxvYWRFdmVudEVuZCIsICZQZXJmb3JtYW5jZVRpbWlu
Zzo6bG9hZEV2ZW50RW5kKTsKKyAgICB1c2luZyBNYXBQYWlyID0gc3RkOjpwYWlyPEFTQ0lJTGl0
ZXJhbCwgTmF2aWdhdGlvblRpbWluZ0Z1bmN0aW9uPjsKKyAgICBzdGF0aWMgY29uc3Qgc3RkOjph
cnJheTxNYXBQYWlyLCAyMT4gcGFpcnMgPSB7IHsKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRl
cmFsKCJuYXZpZ2F0aW9uU3RhcnQiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpuYXZpZ2F0aW9uU3Rh
cnQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJ1bmxvYWRFdmVudFN0YXJ0Iiks
ICZQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCB9LAorICAgICAgICBNYXBQYWly
eyBBU0NJSUxpdGVyYWwoInVubG9hZEV2ZW50RW5kIiksICZQZXJmb3JtYW5jZVRpbWluZzo6dW5s
b2FkRXZlbnRFbmQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJyZWRpcmVjdFN0
YXJ0IiksICZQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCB9LAorICAgICAgICBNYXBQ
YWlyeyBBU0NJSUxpdGVyYWwoInJlZGlyZWN0RW5kIiksICZQZXJmb3JtYW5jZVRpbWluZzo6cmVk
aXJlY3RFbmQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJmZXRjaFN0YXJ0Iiks
ICZQZXJmb3JtYW5jZVRpbWluZzo6ZmV0Y2hTdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJ
SUxpdGVyYWwoImRvbWFpbkxvb2t1cFN0YXJ0IiksICZQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWlu
TG9va3VwU3RhcnQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJkb21haW5Mb29r
dXBFbmQiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQgfSwKKyAgICAgICAg
TWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJjb25uZWN0U3RhcnQiKSwgJlBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQgfSwKKyAgICAgICAgTWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJjb25uZWN0
RW5kIiksICZQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCB9LAorICAgICAgICBNYXBQYWly
eyBBU0NJSUxpdGVyYWwoInNlY3VyZUNvbm5lY3Rpb25TdGFydCIpLCAmUGVyZm9ybWFuY2VUaW1p
bmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCB9LAorICAgICAgICBNYXBQYWlyeyBBU0NJSUxpdGVy
YWwoInJlcXVlc3RTdGFydCIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnJlcXVlc3RTdGFydCB9LAor
ICAgICAgICBNYXBQYWlyeyBBU0NJSUxpdGVyYWwoInJlc3BvbnNlU3RhcnQiKSwgJlBlcmZvcm1h
bmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0IH0sCisgICAgICAgIE1hcFBhaXJ7IEFTQ0lJTGl0ZXJh
bCgicmVzcG9uc2VFbmQiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCB9LAorICAg
ICAgICBNYXBQYWlyeyBBU0NJSUxpdGVyYWwoImRvbUxvYWRpbmciKSwgJlBlcmZvcm1hbmNlVGlt
aW5nOjpkb21Mb2FkaW5nIH0sCisgICAgICAgIE1hcFBhaXJ7IEFTQ0lJTGl0ZXJhbCgiZG9tSW50
ZXJhY3RpdmUiKSwgJlBlcmZvcm1hbmNlVGltaW5nOjpkb21JbnRlcmFjdGl2ZSB9LAorICAgICAg
ICBNYXBQYWlyeyBBU0NJSUxpdGVyYWwoImRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0IiksICZQ
ZXJmb3JtYW5jZVRpbWluZzo6ZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQgfSwKKyAgICAgICAg
TWFwUGFpcnsgQVNDSUlMaXRlcmFsKCJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQiKSwgJlBlcmZv
cm1hbmNlVGltaW5nOjpkb21Db250ZW50TG9hZGVkRXZlbnRFbmQgfSwKKyAgICAgICAgTWFwUGFp
cnsgQVNDSUlMaXRlcmFsKCJkb21Db21wbGV0ZSIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUNv
bXBsZXRlIH0sCisgICAgICAgIE1hcFBhaXJ7IEFTQ0lJTGl0ZXJhbCgibG9hZEV2ZW50U3RhcnQi
KSwgJlBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCB9LAorICAgICAgICBNYXBQYWly
eyBBU0NJSUxpdGVyYWwoImxvYWRFdmVudEVuZCIpLCAmUGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRF
dmVudEVuZCB9LAorICAgIH0gfTsKKworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PFN0cmluZywgTmF2aWdhdGlvblRpbWluZ0Z1bmN0aW9uPj4gbWFwOworICAgIGlmIChtYXAuZ2V0
KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFpciA6IHBhaXJzKQorICAgICAg
ICAgICAgbWFwLmdldCgpLmFkZChwYWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7CiAgICAgfQotICAg
IHJldHVybiBtYXA7CisKKyAgICByZXR1cm4gbWFwLmdldCgpLmdldChtYXJrTmFtZSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIGFub255bW91cwpAQCAtOTgsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQg
Y2xlYXJQZWZvcm1hbmNlRW50cmllcyhQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5jZUVu
dHJ5TWFwLCBjb24KIHZvaWQgVXNlclRpbWluZzo6bWFyayhjb25zdCBTdHJpbmcmIG1hcmtOYW1l
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IDA7Ci0gICAgaWYgKHJlc3RyaWN0ZWRL
ZXlNYXAoKS5jb250YWlucyhtYXJrTmFtZSkpIHsKKyAgICBpZiAocmVzdHJpY3RlZE1hcmtGdW5j
dGlvbihtYXJrTmFtZSkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMTE5LDggKzEyNiw4IEBAIGRvdWJsZSBVc2VyVGltaW5nOjpmaW5kRXhp
c3RpbmdNYXJrU3RhcnRUaW1lKGNvbnN0IFN0cmluZyYgbWFya05hbWUsIEV4Y2VwdGlvbkNvCiAg
ICAgaWYgKG1fbWFya3NNYXAuY29udGFpbnMobWFya05hbWUpKQogICAgICAgICByZXR1cm4gbV9t
YXJrc01hcC5nZXQobWFya05hbWUpLmxhc3QoKS0+c3RhcnRUaW1lKCk7CiAKLSAgICBpZiAocmVz
dHJpY3RlZEtleU1hcCgpLmNvbnRhaW5zKG1hcmtOYW1lKSkgewotICAgICAgICBkb3VibGUgdmFs
dWUgPSBzdGF0aWNfY2FzdDxkb3VibGU+KChtX3BlcmZvcm1hbmNlLT50aW1pbmcoKS0+KihyZXN0
cmljdGVkS2V5TWFwKCkuZ2V0KG1hcmtOYW1lKSkpKCkpOworICAgIGlmIChhdXRvIGZ1bmN0aW9u
ID0gcmVzdHJpY3RlZE1hcmtGdW5jdGlvbihtYXJrTmFtZSkpIHsKKyAgICAgICAgZG91YmxlIHZh
bHVlID0gc3RhdGljX2Nhc3Q8ZG91YmxlPigobV9wZXJmb3JtYW5jZS0+dGltaW5nKCktPiooZnVu
Y3Rpb24pKSgpKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgICAgICAgZWMgPSBJTlZB
TElEX0FDQ0VTU19FUlI7CiAgICAgICAgICAgICByZXR1cm4gMC4wOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>