<?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>40027</bug_id>
          
          <creation_ts>2010-06-01 14:58:51 -0700</creation_ts>
          <short_desc>location.href and outgoing referrer not updated properly by pushState/replaceState</short_desc>
          <delta_ts>2010-08-19 10:35:04 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hurst</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>232961</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-01 14:58:51 -0700</bug_when>
    <thetext>location.href not updated properly by pushState/replaceState

location.href (FrameLoader::m_url) and FrameLoader::m_outgoingReferrer remain
set to whatever the URL of the original document was.  This seems undesirable.

From http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-location-href:
  &quot;The href attribute must return the current address of the associated Document
   object, as an absolute URL.&quot;

From http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-history-pushstate:
  &quot;If the third argument is present, set the document&apos;s current address to the
   absolute URL that was found earlier in this algorithm.&quot;

This to me implies that location.href should according to the spec be updated
just as the document&apos;s URL and documentURI properties are updated as a result
of pushState/replaceState being called with a valid third parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232962</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-01 15:00:09 -0700</bug_when>
    <thetext>Firefox nightlies seem to update location.href and send a HTTP-Referer corresponding to the updated URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232963</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-01 15:00:34 -0700</bug_when>
    <thetext>Chromium bug report:
http://code.google.com/p/chromium/issues/detail?id=45361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232965</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-01 15:09:46 -0700</bug_when>
    <thetext>I agree.  We update the &quot;current address of the associated Document object&quot; by... updating the URL of the associated Document*.  Sadly FrameLoader has all sorts of crazy notions of URLs of its own.

We really should unravel all of that and have one authoritative source on what URL is current, and FrameLoader should ask that authoritative source when it needs to know.

I think Document/DocumentLoader is the correct place for that.

Adam, thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233073</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-01 22:09:33 -0700</bug_when>
    <thetext>BTW, the simple fix for this bug is to call FrameLoader::setURL() from Document::updateURLForPushOrReplaceState().  I have a patch for that, but I haven&apos;t posted it yet because I haven&apos;t finished the tests for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233418</commentid>
    <comment_count>5</comment_count>
      <attachid>57692</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-02 13:31:13 -0700</bug_when>
    <thetext>Created attachment 57692
v1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233469</commentid>
    <comment_count>6</comment_count>
      <attachid>57692</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-02 15:21:02 -0700</bug_when>
    <thetext>Comment on attachment 57692
v1 patch

I suppose I&apos;m kind of surprised that all the layouttests pass with this change.  That&apos;s actually good news for nuking the redundancy in the future.

r+!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233472</commentid>
    <comment_count>7</comment_count>
      <attachid>57692</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-02 15:36:54 -0700</bug_when>
    <thetext>Comment on attachment 57692
v1 patch

whoops, i left out expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233474</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-02 15:42:21 -0700</bug_when>
    <thetext>lol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233484</commentid>
    <comment_count>9</comment_count>
    <who name="Joey Hurst">hurst</who>
    <bug_when>2010-06-02 16:15:44 -0700</bug_when>
    <thetext>Thanks Darin for the quick follow-up on this bug.

I thought of another problem this could cause for developers using pushState.  Assume the following scenario:
1) Visit http://www.foobar.com/
2) http://www.foobar.com/one (via pushState)
3) http://www.foobar.com/two (via pushState)
4) Visit http://www.someothersite.com/
5) Hit the back button twice.

Logically, this should land the user at /one.  However, if the page isn&apos;t in the back-forward cache and the user rapidly clicks the back button, it is possible that page script will miss the popstate event from /two to /one, and the user will be stuck looking at state /two when the URL indicates /one.

This could be fixed by inspecting the location object at some point and updating the page state to match, but as Darin pointed out, the location object isn&apos;t reliable.  I haven&apos;t been able to find an alternative way to grab the actual location in this scenario.

Once could try placing a popstate handler near the top of the document and hoping for the best, but the error case is rather bad and I can&apos;t think of a way that one could track the issue (since the problem stems from the developer missing an event).

It looks like you&apos;ve already started on a fix, so this comment is intended more for other web developers trying to use pushState in Webkit...

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233505</commentid>
    <comment_count>10</comment_count>
      <attachid>57715</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-02 16:59:33 -0700</bug_when>
    <thetext>Created attachment 57715
v2 patch

Now with test results, more tests, and a fix for an existing test :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233511</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-06-02 17:07:19 -0700</bug_when>
    <thetext>(In reply to comment #9)

Hi Joey,

The patch in this bug makes the location update properly.  If you are trying to workaround the current behavior of WebKit, please try looking at document.URL instead.  This patch just makes location get updated when we update document.URL.

I don&apos;t understand the issue with clicking back rapidly.  We should always dispatch popstate event for the final back navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233517</commentid>
    <comment_count>12</comment_count>
      <attachid>57715</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-02 17:24:15 -0700</bug_when>
    <thetext>Comment on attachment 57715
v2 patch

This one makes me sadder, but is more what I was expecting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233617</commentid>
    <comment_count>13</comment_count>
      <attachid>57715</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-02 22:38:28 -0700</bug_when>
    <thetext>Comment on attachment 57715
v2 patch

Clearing flags on attachment: 57715

Committed r60608: &lt;http://trac.webkit.org/changeset/60608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233618</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-02 22:38:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266815</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-08-19 10:35:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/8330168&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57692</attachid>
            <date>2010-06-02 13:31:13 -0700</date>
            <delta_ts>2010-06-02 15:36:53 -0700</delta_ts>
            <desc>v1 patch</desc>
            <filename>loc_1.txt</filename>
            <type>text/plain</type>
            <size>4121</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYwNTc0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMDIgIERhcmluIEZpc2hlciAgPGRh
cmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBsb2NhdGlvbi5ocmVmIGFuZCBvdXRnb2luZyByZWZlcnJlciBub3QgdXBkYXRl
ZCBwcm9wZXJseSBieQorICAgICAgICBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDAyNworCisgICAgICAgICog
ZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hzdGF0ZS11cGRhdGVzLWxvY2F0aW9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wdXNoc3RhdGUtdXBkYXRl
cy1yZWZlcnJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL3B1c2hzdGF0ZS11cGRhdGVzLXJlZmVycmVyLTIuaHRtbDogQWRkZWQuCisKIDIw
MTAtMDYtMDIgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgTm90IHJldmlld2VkOiBhZGRlZCBuZXcgaW5zcGVjdG9yIHRlc3QgdG8gU2tpcHBlZCBpbiBU
aWdlciBmb3IKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNo
c3RhdGUtdXBkYXRlcy1sb2NhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtdXBkYXRlcy1sb2NhdGlvbi5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hz
dGF0ZS11cGRhdGVzLWxvY2F0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAK
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGhp
c3RvcnkucHVzaFN0YXRlKCJmb28iLCAiZm9vIiwgIj9mb28iKTsKKworICAgIGlmIChsb2NhdGlv
bi5zZWFyY2ggPT0gIj9mb28iKQorICAgICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSAiUEFT
UyI7CisgICAgZWxzZQorICAgICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSAiRkFJTDogbG9j
YXRpb24uc2VhcmNoIGlzIFwnIiArIGxvY2F0aW9uLnNlYXJjaCArICJcJyI7Cit9Cis8L3Njcmlw
dD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wdXNoc3RhdGUtdXBk
YXRlcy1yZWZlcnJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wdXNoc3RhdGUtdXBkYXRlcy1yZWZlcnJlci5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3B1c2hzdGF0ZS11cGRhdGVzLXJl
ZmVycmVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgbnVsbCwg
Ii9mb28iKTsKKyAgbG9jYXRpb24gPSAiL25hdmlnYXRpb24vcmVzb3VyY2VzL3B1c2hzdGF0ZS11
cGRhdGVzLXJlZmVycmVyLTIuaHRtbCI7Cit9Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcHVzaHN0YXRlLXVwZGF0ZXMtcmVmZXJy
ZXItMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvcHVzaHN0YXRlLXVwZGF0ZXMtcmVmZXJyZXItMi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wdXNoc3Rh
dGUtdXBkYXRlcy1yZWZlcnJlci0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAK
KzxzY3JpcHQ+CitmdW5jdGlvbiBwYXRobmFtZU9mKGhyZWYpIHsKKyAgdmFyIGFuY2hvciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgYW5jaG9yLmhyZWYgPSBocmVmOworICByZXR1
cm4gYW5jaG9yLnBhdGhuYW1lOworfQorCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgaWYgKHBh
dGhuYW1lT2YoZG9jdW1lbnQucmVmZXJyZXIpID09ICIvZm9vIikgeworICAgIGRvY3VtZW50LmJv
ZHkuaW5uZXJUZXh0ID0gIlBBU1MiOworICB9IGVsc2UgeworICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJUZXh0ID0gIkZBSUw6IGRvY3VtZW50LnJlZmVycmVyIGlzIFwnIiArIGRvY3VtZW50LnJlZmVy
cmVyICsgIlwnIjsKKyAgfQorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgpJbmRleDog
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDYwNTc0KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMC0wNi0wMiAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGxvY2F0aW9u
LmhyZWYgYW5kIG91dGdvaW5nIHJlZmVycmVyIG5vdCB1cGRhdGVkIHByb3Blcmx5IGJ5CisgICAg
ICAgIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwMDI3CisKKyAgICAgICAgVGVzdHM6IGZhc3QvbG9hZGVyL3N0
YXRlb2JqZWN0cy9wdXNoc3RhdGUtdXBkYXRlcy1sb2NhdGlvbi5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL25hdmlnYXRpb24vcHVzaHN0YXRlLXVwZGF0ZXMtcmVmZXJyZXIuaHRtbAor
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojp1cGRhdGVVUkxGb3JQdXNoT3JSZXBsYWNlU3RhdGUpOgorCiAyMDEwLTA2LTAyICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2Fy
bHNzb24uCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA2MDU3MykKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY1Niw3ICs0NjU2LDkgQEAgdm9pZCBEb2N1
bWVudDo6dXBkYXRlVVJMRm9yUHVzaE9yUmVwbGFjZQogICAgIGlmICghZikKICAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gRklYTUU6IEVsaW1pbmF0ZSB0aGlzIHJlZHVuZGFuY3kuCiAgICAgc2V0
VVJMKHVybCk7CisgICAgZi0+bG9hZGVyKCktPnNldFVSTCh1cmwpOwogICAgIGYtPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpLT5yZXBsYWNlUmVxdWVzdFVSTEZvclNhbWVEb2N1bWVudE5hdmln
YXRpb24odXJsKTsKIH0KIAo=
</data>
<flag name="review"
          id="42328"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57715</attachid>
            <date>2010-06-02 16:59:33 -0700</date>
            <delta_ts>2010-06-02 22:38:27 -0700</delta_ts>
            <desc>v2 patch</desc>
            <filename>loc_2.txt</filename>
            <type>text/plain</type>
            <size>11060</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjA1ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNi0wMiAgRGFyaW4gRmlzaGVyICA8
ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGxvY2F0aW9uLmhyZWYgYW5kIG91dGdvaW5nIHJlZmVycmVyIG5vdCB1cGRh
dGVkIHByb3Blcmx5IGJ5CisgICAgICAgIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDI3CisKKyAgICAgICAg
KiBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvZG9jdW1lbnQtZGVzdHJveWVkLW5hdmlnYXRlLWJh
Y2std2l0aC1mcmFnbWVudC1zY3JvbGwuaHRtbDoKKyAgICAgICAgVXBkYXRlZCB0aGlzIHRlc3Qg
dG8gYWNjb3VudCBmb3IgbG9jYXRpb24gYmVpbmcgbW9kaWZpZWQgYnkgcmVwbGFjZVN0YXRlLgor
CisgICAgICAgICogZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hzdGF0ZS11cGRhdGVzLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIvc3RhdGVv
YmplY3RzL3B1c2hzdGF0ZS11cGRhdGVzLWxvY2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9yZXBsYWNlc3RhdGUtdXBkYXRlcy1sb2NhdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9y
ZXBsYWNlc3RhdGUtdXBkYXRlcy1sb2NhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcHVzaHN0YXRlLXVwZGF0ZXMtcmVmZXJyZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcHVzaHN0YXRlLXVwZGF0
ZXMtcmVmZXJyZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3JlcGxhY2VzdGF0ZS11cGRhdGVzLXJlZmVycmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlcGxhY2VzdGF0ZS11cGRhdGVzLXJlZmVycmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
Y2hlY2stcmVmZXJyZXIuaHRtbDogQWRkZWQuCisKIDIwMTAtMDYtMDIgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHI2MDU4MC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0
cy9kb2N1bWVudC1kZXN0cm95ZWQtbmF2aWdhdGUtYmFjay13aXRoLWZyYWdtZW50LXNjcm9sbC5o
dG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3Rz
L2RvY3VtZW50LWRlc3Ryb3llZC1uYXZpZ2F0ZS1iYWNrLXdpdGgtZnJhZ21lbnQtc2Nyb2xsLmh0
bWwJKHJldmlzaW9uIDYwNTgwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmpl
Y3RzL2RvY3VtZW50LWRlc3Ryb3llZC1uYXZpZ2F0ZS1iYWNrLXdpdGgtZnJhZ21lbnQtc2Nyb2xs
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDIwICs0NiwzMSBAQCBmdW5jdGlvbiBsb2FkZWQo
KQogZnVuY3Rpb24gc3RhdGVQb3BwZWQoKQogewogICAgIGFsZXJ0KCJTdGF0ZSBwb3BwZWQgLSAi
ICsgZXZlbnQuc3RhdGUgKyAiICh0eXBlICIgKyB0eXBlb2YgZXZlbnQuc3RhdGUgKyAiKSIpOwot
ICAgIGlmIChldmVudC5zdGF0ZSA9PSAiRmlyc3RFbnRyeSIpIHsKLSAgICAgICAgaGlzdG9yeS5y
ZXBsYWNlU3RhdGUoIkZpcnN0RW50cnlXaWxsTGF0ZXJCZVJlYWN0aXZhdGVkIiwgbnVsbCwgIiNG
aXJzdEVudHJ5V2lsbExhdGVyQmVSZWFjdGl2YXRlZCIpOwotICAgICAgICBzZXRUaW1lb3V0KCJo
aXN0b3J5LmZvcndhcmQoKTsiLCAwKTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LnN0YXRlID09ICJT
ZWNvbmRFbnRyeSIpIHsKLSAgICAgICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoIlNlY29uZEVudHJ5
V2lsbExhdGVyQmVSZWFjdGl2YXRlZCIsIG51bGwsICIjU2Vjb25kRW50cnlXaWxsTGF0ZXJCZVJl
YWN0aXZhdGVkIik7Ci0gICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvbmF2aWdh
dGUtYmFjay5odG1sIjsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LnN0YXRlID09ICJTZWNvbmRFbnRy
eVdpbGxMYXRlckJlUmVhY3RpdmF0ZWQiKQotICAgICAgICBoaXN0b3J5LmJhY2soKTsKKworICAg
IC8vIEZJWE1FOiBPbmNlIHRoZSBwb3BzdGF0ZSBhbmQgaGFzaGNoYW5nZSBldmVudHMgZmlyZSBh
c3luY2hyb25vdXNseSwgd2UKKyAgICAvLyBjYW4gZWxpbWluYXRlIHRoaXMgc2V0VGltZW91dCBo
YWNrLiAgVGhlIGhhc2hjaGFuZ2UgZXZlbnQgY3VycmVudGx5IHJ1bnMKKyAgICAvLyBzeW5jaHJv
bm91c2x5IGZvbGxvd2luZyB0aGUgcG9wc3RhdGUgZXZlbnQsIGJ1dCB0aGUgY2FsbHMgdG8KKyAg
ICAvLyByZXBsYWNlU3RhdGUgY2F1c2UgdGhlIGxvY2F0aW9uIHRvIGNoYW5nZSBpbW1lZGlhdGVs
eS4gIFRoYXQgY29uZnVzZXMKKyAgICAvLyBvdXIgaGFzaGNoYW5nZSBoYW5kbGVyLCB3aGljaCBl
eHBlY3RzIHRvIHNlZSB0aGUgIm9sZCIgdmFsdWUgb2YgdGhlCisgICAgLy8gbG9jYXRpb24uCisK
KyAgICB2YXIgc3RhdGUgPSBldmVudC5zdGF0ZTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICBpZiAoc3RhdGUgPT0gIkZpcnN0RW50cnkiKSB7CisgICAgICAgICAgICBoaXN0
b3J5LnJlcGxhY2VTdGF0ZSgiRmlyc3RFbnRyeVdpbGxMYXRlckJlUmVhY3RpdmF0ZWQiLCBudWxs
LCAiI0ZpcnN0RW50cnlXaWxsTGF0ZXJCZVJlYWN0aXZhdGVkIik7CisgICAgICAgICAgICBoaXN0
b3J5LmZvcndhcmQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PSAiU2Vjb25kRW50cnki
KSB7CisgICAgICAgICAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZSgiU2Vjb25kRW50cnlXaWxsTGF0
ZXJCZVJlYWN0aXZhdGVkIiwgbnVsbCwgIiNTZWNvbmRFbnRyeVdpbGxMYXRlckJlUmVhY3RpdmF0
ZWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvbmF2aWdhdGUt
YmFjay5odG1sIjsKKyAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PSAiU2Vjb25kRW50cnlXaWxs
TGF0ZXJCZVJlYWN0aXZhdGVkIikKKyAgICAgICAgICAgIGhpc3RvcnkuYmFjaygpOworICAgIH0s
IDApOwogfQogCiBmdW5jdGlvbiBoYXNoQ2hhbmdlZCgpCiB7CiAgICAgYWxlcnQoImhhc2hDaGFu
Z2VkIC0gTGFzdCBwYXRoIGNvbXBvbmVudCBvZiBsb2NhdGlvbiBpcyAiICsgbGFzdFBhdGhDb21w
b25lbnQoKSk7Ci0gICBpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0gIiNGaXJzdEVudHJ5V2ls
bExhdGVyQmVSZWFjdGl2YXRlZCIpIHsKKyAgICBpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0g
IiNGaXJzdEVudHJ5V2lsbExhdGVyQmVSZWFjdGl2YXRlZCIpIHsKICAgICAgICAgYWxlcnQoIlRl
c3QgY29tcGxldGUiKTsKICAgICAgICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTsKICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtdXBkYXRlcy1sb2NhdGlvbi1leHBlY3RlZC50
eHQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMv
cHVzaHN0YXRlLXVwZGF0ZXMtbG9jYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hzdGF0ZS11cGRhdGVzLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorUEFTUwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hzdGF0ZS11cGRhdGVz
LWxvY2F0aW9uLmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9z
dGF0ZW9iamVjdHMvcHVzaHN0YXRlLXVwZGF0ZXMtbG9jYXRpb24uaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtdXBkYXRl
cy1sb2NhdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgaGlzdG9yeS5wdXNoU3Rh
dGUobnVsbCwgbnVsbCwgIj9mb28iKTsKKworICBpZiAobG9jYXRpb24uc2VhcmNoID09ICI/Zm9v
IikgeworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gIlBBU1MiOworICB9IGVsc2Ugewor
ICAgIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gIkZBSUw6IGxvY2F0aW9uLnNlYXJjaCBpcyBc
JyIgKyBsb2NhdGlvbi5zZWFyY2ggKyAiXCciOworICB9Cit9Cis8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9yZXBsYWNlc3RhdGUtdXBkYXRlcy1s
b2NhdGlvbi1leHBlY3RlZC50eHQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9zdGF0ZW9iamVjdHMvcmVwbGFjZXN0YXRlLXVwZGF0ZXMtbG9jYXRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3Rz
L3JlcGxhY2VzdGF0ZS11cGRhdGVzLWxvY2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSBAQAorUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVv
YmplY3RzL3JlcGxhY2VzdGF0ZS11cGRhdGVzLWxvY2F0aW9uLmh0bWwNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcmVwbGFjZXN0YXRlLXVwZGF0
ZXMtbG9jYXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3N0YXRlb2JqZWN0cy9yZXBsYWNlc3RhdGUtdXBkYXRlcy1sb2NhdGlvbi5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE0IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitvbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgbnVsbCwgIj9mb28i
KTsKKworICBpZiAobG9jYXRpb24uc2VhcmNoID09ICI/Zm9vIikgeworICAgIGRvY3VtZW50LmJv
ZHkuaW5uZXJUZXh0ID0gIlBBU1MiOworICB9IGVsc2UgeworICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJUZXh0ID0gIkZBSUw6IGxvY2F0aW9uLnNlYXJjaCBpcyBcJyIgKyBsb2NhdGlvbi5zZWFyY2gg
KyAiXCciOworICB9Cit9Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wdXNoc3RhdGUtdXBkYXRlcy1yZWZlcnJlci1leHBlY3RlZC50eHQNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcHVzaHN0YXRlLXVw
ZGF0ZXMtcmVmZXJyZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3B1c2hzdGF0ZS11cGRhdGVzLXJlZmVycmVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorUEFTUwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3B1c2hzdGF0ZS11cGRhdGVzLXJlZmVycmVyLmh0bWwNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcHVzaHN0YXRl
LXVwZGF0ZXMtcmVmZXJyZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wdXNoc3RhdGUtdXBkYXRlcy1yZWZlcnJlci5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworb25sb2FkID0gZnVuY3Rpb24o
KSB7CisgIGhpc3RvcnkucHVzaFN0YXRlKG51bGwsIG51bGwsICIvZm9vIik7CisKKyAgc2Vzc2lv
blN0b3JhZ2UuZXhwZWN0ZWRSZWZlcnJlciA9IGxvY2F0aW9uLmhyZWY7CisgIGxvY2F0aW9uID0g
Ii9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1yZWZlcnJlci5odG1sIjsKK30KKzwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlcGxhY2VzdGF0ZS11
cGRhdGVzLXJlZmVycmVyLWV4cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXBsYWNlc3RhdGUtdXBkYXRlcy1yZWZlcnJlci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVwbGFjZXN0YXRlLXVwZGF0ZXMtcmVmZXJyZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxIEBACitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcmVwbGFjZXN0YXRlLXVwZGF0ZXMtcmVmZXJyZXIuaHRtbA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXBsYWNlc3RhdGUtdXBkYXRlcy1y
ZWZlcnJlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3JlcGxhY2VzdGF0ZS11cGRhdGVzLXJlZmVycmVyLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgbnVsbCwgIi9mb28iKTsKKworICBzZXNzaW9uU3Rv
cmFnZS5leHBlY3RlZFJlZmVycmVyID0gbG9jYXRpb24uaHJlZjsKKyAgbG9jYXRpb24gPSAiL25h
dmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXJlZmVycmVyLmh0bWwiOworfQorPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXJl
ZmVycmVyLmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcmVzb3VyY2VzL2NoZWNrLXJlZmVycmVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXJlZmVycmVyLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgaWYgKGRvY3VtZW50LnJlZmVycmVyID09IHNlc3Npb25TdG9yYWdlLmV4cGVj
dGVkUmVmZXJyZXIpIHsKKyAgICBkb2N1bWVudC5ib2R5LmlubmVyVGV4dCA9ICJQQVNTIjsKKyAg
fSBlbHNlIHsKKyAgICBkb2N1bWVudC5ib2R5LmlubmVyVGV4dCA9ICJGQUlMOiBkb2N1bWVudC5y
ZWZlcnJlciBpcyBcJyIgKyBkb2N1bWVudC5yZWZlcnJlciArICJcJyI7CisgIH0KKyAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYwNTgxKQorKysgV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wNi0wMiAgRGFy
aW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGxvY2F0aW9uLmhyZWYgYW5kIG91dGdvaW5nIHJlZmVy
cmVyIG5vdCB1cGRhdGVkIHByb3Blcmx5IGJ5CisgICAgICAgIHB1c2hTdGF0ZS9yZXBsYWNlU3Rh
dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDI3
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtdXBk
YXRlcy1sb2NhdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2xvYWRlci9zdGF0ZW9iamVj
dHMvcmVwbGFjZXN0YXRlLXVwZGF0ZXMtbG9jYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3B1c2hzdGF0ZS11cGRhdGVzLXJlZmVycmVyLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXBsYWNlc3RhdGUtdXBkYXRlcy1yZWZl
cnJlci5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnVwZGF0ZVVSTEZvclB1c2hPclJlcGxhY2VTdGF0ZSk6CisgICAgICAgIFVw
ZGF0ZSB0aGUgRnJhbWVMb2FkZXIncyBub3Rpb24gb2YgdGhlIGN1cnJlbnQgVVJMIGFzIHdlbGwh
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRJblNhbWVEb2N1bWVudCk6CisgICAgICAgIFVzZSB0aGUgJ3VybCcg
cGFyYW1ldGVyIGluc3RlYWQgb2YgbV9VUkwgc2luY2UgbV9VUkwgbWlnaHQgaGF2ZQorICAgICAg
ICBjaGFuZ2VkIGR1cmluZyB0aGUgaGFuZGxpbmcgb2YgdGhlIFBvcFN0YXRlIGV2ZW50LiAgRXZl
bnR1YWxseSwKKyAgICAgICAgdGhpcyB3aWxsIGJlY29tZSBpcnJlbGV2YW50IHNpbmNlIHRoZSBQ
b3BTdGF0ZSBldmVudCBzaG91bGQgYmUKKyAgICAgICAgZGlzcGF0Y2hlZCBhc3luY2hyb25vdXNs
eSwgYnV0IGp1c3QgaW4gY2FzZSB3ZSBwYXRjaCBIYXNoQ2hhbmdlCisgICAgICAgIHRvIGJlIGFz
eW5jaHJvbm91cyBiZWZvcmUgUG9wU3RhdGUsIHRoaXMgY2hhbmdlIHdvdWxkIGJlIG5lZWRlZC4K
KwogMjAxMC0wNi0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYwNTgwLgpJbmRleDogV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCShyZXZpc2lvbiA2MDU4MCkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDY1Niw3ICs0NjU2LDkgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVVJMRm9y
UHVzaE9yUmVwbGFjZQogICAgIGlmICghZikKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklY
TUU6IEVsaW1pbmF0ZSB0aGlzIHJlZHVuZGFuY3kuCiAgICAgc2V0VVJMKHVybCk7CisgICAgZi0+
bG9hZGVyKCktPnNldFVSTCh1cmwpOwogICAgIGYtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigp
LT5yZXBsYWNlUmVxdWVzdFVSTEZvclNhbWVEb2N1bWVudE5hdmlnYXRpb24odXJsKTsKIH0KIApJ
bmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA2MDU4MCkKKysrIFdlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5Myw3ICsxNjkzLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEluU2FtZURvY3VtZW50KGNvbgogICAgIH0KICAgICAK
ICAgICBpZiAoaGFzaENoYW5nZSkgewotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5lbnF1
ZXVlSGFzaGNoYW5nZUV2ZW50KG9sZFVSTCwgbV9VUkwpOworICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5lbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KG9sZFVSTCwgdXJsKTsKICAgICAgICAgbV9j
bGllbnQtPmRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCk7CiAgICAgfQogICAg
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>