<?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>147785</bug_id>
          
          <creation_ts>2015-08-07 10:12:48 -0700</creation_ts>
          <short_desc>Page cache doesn&apos;t work for pages actively using Geolocation</short_desc>
          <delta_ts>2015-08-09 21:14:27 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115789</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-07 10:12:48 -0700</bug_when>
    <thetext>Page cache doesn&apos;t work for pages actively using Geolocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115790</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-07 10:12:57 -0700</bug_when>
    <thetext>rdar://problem/11147901</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115808</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-07 11:08:13 -0700</bug_when>
    <thetext>rdar://problem/11147901</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115816</commentid>
    <comment_count>3</comment_count>
      <attachid>258515</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-07 11:23:20 -0700</bug_when>
    <thetext>Created attachment 258515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115984</commentid>
    <comment_count>4</comment_count>
      <attachid>258557</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-07 20:47:19 -0700</bug_when>
    <thetext>Created attachment 258557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115985</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-07 20:51:48 -0700</bug_when>
    <thetext>I also tested manually with Google Maps on iOS and:
1. The page goes into the PageCache
2. When navigating back, no permission request is done, the location on the map keeps updating
3. If the location permissions are reset in General Settings while the page is into the PageCache, we correctly ask again for permission when navigating back to Google Maps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116148</commentid>
    <comment_count>6</comment_count>
      <attachid>258557</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-08-09 18:11:56 -0700</bug_when>
    <thetext>Comment on attachment 258557
Patch

No rationale in this patch. Why did we think this wasn’t OK before? Why do we know it’s OK now? Is there nothing else we need to do to make everything work correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116150</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 18:25:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 258557 [details]
&gt; Patch
&gt; 
&gt; No rationale in this patch. Why did we think this wasn’t OK before? Why do
&gt; we know it’s OK now? Is there nothing else we need to do to make everything
&gt; work correctly?

I asked Benjamin and he did not remember why he restricted this in the first place. Benjamin thought the issue may have been related to revoking location permissions on iOS but I have manually tested that this is working as expected.

The PageCaching code seems to be doing all the right things and testing (manual and layout tests) seem to work as expected.

It is possible we simply played it safe due to timing restrictions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116170</commentid>
    <comment_count>8</comment_count>
      <attachid>258557</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-09 21:14:22 -0700</bug_when>
    <thetext>Comment on attachment 258557
Patch

Clearing flags on attachment: 258557

Committed r188204: &lt;http://trac.webkit.org/changeset/188204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116171</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-09 21:14:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258515</attachid>
            <date>2015-08-07 11:23:20 -0700</date>
            <delta_ts>2015-08-07 20:47:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147785-20150807112309.patch</filename>
            <type>text/plain</type>
            <size>12352</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkNTFlZDU1ZThhYmJk
MTM5NGZmZjAwZDc5Zjk0ZDUwNzk0ZmUwZC4uZjRkZGUwY2MzNjBhOWE4NmIyNjI5ZDk3MjM4NjZh
MWJhMzgyZDRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA4LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZSBjYWNoZSBkb2Vzbid0
IHdvcmsgZm9yIHBhZ2VzIGFjdGl2ZWx5IHVzaW5nIEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc3ODUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzExMTQ3OTAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IHBhZ2VzIGFjdGl2ZWx5IHVzaW5nIEdlb2xvY2F0aW9uIGludG8g
dGhlIFBhZ2VDYWNoZS4KKworICAgICAgICBUZXN0czogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
Z2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6c3VzcGVuZCk6IERlbGV0ZWQuCisgICAgICAgICogaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwOgorCiAyMDE1LTA4LTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0aGUgV2luZG93cyBidWlsZCBhZnRlciA8aHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTg4MTMwPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBmMTllZmFmNzRk
MmRlODA3MjQzNDAyODg0ZjFlMWFkNWE2MzJjNzZhLi40MTYwNDA4MGU5NjliMmUwYjBiMjNlZDU4
ODhhMTBhZjAxYjU2YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIFBhZ2UqIEdlb2xvY2F0
aW9uOjpwYWdlKCkgY29uc3QKIAogYm9vbCBHZW9sb2NhdGlvbjo6Y2FuU3VzcGVuZEZvclBhZ2VD
YWNoZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFoYXNMaXN0ZW5lcnMoKTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9u
IHJlYXNvbikKQEAgLTE3Miw3ICsxNzIsNiBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIC8vIEFsbG93IHBhZ2VzIHRoYXQgbm8gbG9u
Z2VyIGhhdmUgbGlzdGVuZXJzIHRvIGVudGVyIHRoZSBwYWdlIGNhY2hlLgogICAgIC8vIEhhdmUg
dGhlbSBzdG9wIHVwZGF0aW5nIGFuZCByZXNldCBnZW9sb2NhdGlvbiBwZXJtaXNzaW9ucyB3aGVu
IHRoZSBwYWdlIGlzIHJlc3VtZWQuCiAgICAgaWYgKHJlYXNvbiA9PSBBY3RpdmVET01PYmplY3Q6
OlBhZ2VDYWNoZSkgewotICAgICAgICBBU1NFUlQoIWhhc0xpc3RlbmVycygpKTsKICAgICAgICAg
c3RvcCgpOwogICAgICAgICBtX3Jlc2V0T25SZXN1bWUgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCA3ODUxYjZlYjViM2M2NmI1Yjg0MzcyZTA2NTky
YzY3MzI5Zjg0MzEyLi43OWNhMzA5YmJmMGU3MDc0M2YwZjU2MzAyZThlZWFmNzk1MWQxNmQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC02NiwxMSArNjYsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIWRlZmluZWQoTkRFQlVHKQogCi0jZGVmaW5lIFBDTE9H
KC4uLikgTE9HKFBhZ2VDYWNoZSwgIiUqcyVzIiwgaW5kZW50TGV2ZWwqNCwgIiIsIG1ha2VTdHJp
bmcoX19WQV9BUkdTX18pLnV0ZjgoKS5kYXRhKCkpCisjZGVmaW5lIFBDTE9HKC4uLikgV1RGTG9n
QWx3YXlzKCJQYWdlQ2FjaGU6ICUqcyVzIiwgaW5kZW50TGV2ZWwqNCwgIiIsIG1ha2VTdHJpbmco
X19WQV9BUkdTX18pLnV0ZjgoKS5kYXRhKCkpCiAKICNlbHNlCiAKLSNkZWZpbmUgUENMT0coLi4u
KSAoKHZvaWQpMCkKKyNkZWZpbmUgUENMT0coLi4uKSBXVEZMb2dBbHdheXMoIlBhZ2VDYWNoZTog
JSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgp
LmRhdGEoKSkKIAogI2VuZGlmIC8vICFkZWZpbmVkKE5ERUJVRykKICAgICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZmYy
ZmVkNjYwZWQzMzhkMDEwNGQ4OWVlNjk2NDQ5YWZlZDEwMzBkLi4yMTJkYmFlY2Q3ZjFmZTFiZGVm
YmEyNGIxOWVjYmQzZDhjYWI3M2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDgtMDcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlIGNhY2hlIGRv
ZXNuJ3Qgd29yayBmb3IgcGFnZXMgYWN0aXZlbHkgdXNpbmcgR2VvbG9jYXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc4NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTExNDc5MDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlIGZvciBwYWdlIGNhY2hp
bmcgb2YgcGFnZXMgYWN0aXZlbHkgdXNpbmcKKyAgICAgICAgdGhlIEdlb2xvY2F0aW9uIEFQSS4K
KworICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1v
bmVzaG90LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2Nh
dGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sOiBBZGRlZC4KKwogMjAxNS0wOC0wNyAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBpb3Mtc2ltLWRlcHJlY2F0
ZWQvaXBob25lL2Zhc3QvZXZlbnRzL3RvdWNoLyBhbHJlYWR5IGV4aXN0ZWQgaW4gZmFzdC9ldmVu
dHMvdG91Y2gsIHNvIHJlbW92ZSB0aGVtLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZl
LW9uZXNob3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMGZiNmQ2YTdhMDM1ZTIyNjMzOWNh
ZDU2MTkyY2M5ZDBiYjc5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMSBAQAorVGVzdHMgdGhhdCBhIHBhZ2UgYWN0aXZlbHkgdXNpbmcgZ2VvbG9j
YXRpb24gY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5n
IGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdh
cyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlCitQQVNTIHRlc3RSdW5uZXIuaXNHZW9sb2Nh
dGlvblByb3ZpZGVyQWN0aXZlKCkgaXMgZmFsc2UKK1dhdGNoZXIgY2FsbGJhY2sgY2FsbGVkCitQ
QVNTIHRlc3RSdW5uZXIuaXNHZW9sb2NhdGlvblByb3ZpZGVyQWN0aXZlKCkgaXMgdHJ1ZQorUEFT
UyBzdGFnZSBpcyAiYWZ0ZXJfcmVzdG9yZSIKK1BBU1MgcG9zaXRpb24uY29vcmRzLmxhdGl0dWRl
IGlzIG1vY2tMYXRpdHVkZQorUEFTUyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlIGlzIG1vY2tM
b25naXR1ZGUKK1BBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlzIG1vY2tBY2N1cmFjeQor
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24t
YWN0aXZlLW9uZXNob3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZkYjMwZjRjNjI1
ZmIxZDQwZTQ5MTZlZGIxOGJlZDUxOGJhMTY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0
bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIGFjdGl2ZWx5IHVzaW5nIGdlb2xv
Y2F0aW9uIGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLicpOword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCit2YXIgbW9ja0xhdGl0dWRlID0gNTEuNDc4OwordmFyIG1vY2tMb25naXR1
ZGUgPSAtMC4xNjY7Cit2YXIgbW9ja0FjY3VyYWN5ID0gMTAwLjA7CisKK3ZhciBzdGFnZSA9ICJi
ZWZvcmVfcmVzdG9yZSI7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5u
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIs
IDEpOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obW9ja0xhdGl0
dWRlLCBtb2NrTG9uZ2l0dWRlLCBtb2NrQWNjdXJhY3kpOworfQorCit3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlc2hv
dyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsK
KyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHN0YWdlID0gImFmdGVyX3Jlc3Rv
cmUiOworICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVk
IGZyb20gdGhlIHBhZ2UgY2FjaGUiKTsKKworICAgICAgICAvLyBHb2luZyBpbnRvIFBhZ2VDYWNo
ZSBzaG91bGQgaGF2ZSBkaXNhYmxlZCBHUFMgc28gdGhlIEdlb2xvY2F0aW9uUHJvdmlkZXIgc2hv
dWxkIGJlCisgICAgICAgIC8vIHRlbXBvcmFyaWx5IGluYWN0aXZlIHdoZW4gcmVzdG9yaW5nLgor
ICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzR2VvbG9jYXRpb25Qcm92aWRlckFj
dGl2ZSgpIik7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
cGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAo
ZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAg
aWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90
IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBzdGFnZSA9ICJpbl9wYWdlX2NhY2hlIjsKKworICAgICAgICAvLyBH
aXZlIHBlcm1pc3Npb24gcmlnaHQgYmVmb3JlIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUgdG8gbWFr
ZSBzdXJlIHRoYXQ6CisgICAgICAgIC8vIDEuIFRoZSBnZW9sb2NhdGlvbiBjYWxsYmFjayBpcyBO
T1QgY2FsbGVkIHdoaWxlIGluIHRoZSBwYWdlIGNhY2hlLgorICAgICAgICAvLyAyLiBUaGUgZ2Vv
bG9jYXRpb24gY2FsbGJhY2sgRE9FUyBnZXQgY2FsbGVkIGFmdGVyIHJlc3RvcmluZyBmcm9tIHRo
ZSBwYWdlIGNhY2hlLgorICAgICAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVybWlzc2lv
bih0cnVlKTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGNoZWNrUG9zaXRpb24ocCkg
eworICAgIHBvc2l0aW9uID0gcDsKKyAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRzLmxhdGl0
dWRlJywgJ21vY2tMYXRpdHVkZScpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMubG9u
Z2l0dWRlJywgJ21vY2tMb25naXR1ZGUnKTsKKyAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRz
LmFjY3VyYWN5JywgJ21vY2tBY2N1cmFjeScpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rp
b24gZ2VvbG9jYXRpb25DYWxsYmFjayhwb3NpdGlvbikKK3sKKyAgICBkZWJ1ZygiV2F0Y2hlciBj
YWxsYmFjayBjYWxsZWQiKTsKKyAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNHZW9sb2Nh
dGlvblByb3ZpZGVyQWN0aXZlKCkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0YWdl
JywgJ2FmdGVyX3Jlc3RvcmUnKTsKKyAgICBjaGVja1Bvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5j
dGlvbigpIHsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgLy8gRm9yY2UgYSBi
YWNrIG5hdmlnYXRpb24gYmFjayB0byB0aGlzIHBhZ2UuCisgICAgICB3aW5kb3cubG9jYXRpb24u
aHJlZiA9ICJyZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAgfSwgMCk7CisK
KyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIG5hdmlnYXRvci5nZW9sb2Nh
dGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZ2VvbG9jYXRpb25DYWxsYmFjaywgZnVuY3Rpb24oZSkg
eworICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3Rl
ZGx5Jyk7CisgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICB9KTsKKyAgICB9LCAwKTsK
K30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNo
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2Vv
bG9jYXRpb24tYWN0aXZlLXdhdGNoZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YTEwZDNm
MWQzMzc1M2ViYmJiMjBiMjI0NWZmMDBjZWQ5MTM4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMgdGhhdCBhIHBhZ2UgYWN0aXZl
bHkgdXNpbmcgZ2VvbG9jYXRpb24gY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitXYXRj
aGVyIGNhbGxiYWNrIGNhbGxlZAorUEFTUyB0ZXN0UnVubmVyLmlzR2VvbG9jYXRpb25Qcm92aWRl
ckFjdGl2ZSgpIGlzIHRydWUKK1BBU1Mgc3RhZ2UgPT0gJ2luX3BhZ2VfY2FjaGUnIGlzIGZhbHNl
CitQQVNTIHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSBpcyBtb2NrTGF0aXR1ZGUKK1BBU1MgcG9z
aXRpb24uY29vcmRzLmxvbmdpdHVkZSBpcyBtb2NrTG9uZ2l0dWRlCitQQVNTIHBvc2l0aW9uLmNv
b3Jkcy5hY2N1cmFjeSBpcyBtb2NrQWNjdXJhY3kKKworcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNo
ZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVz
dG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZQorUEFTUyB0ZXN0UnVubmVyLmlzR2VvbG9jYXRpb25Q
cm92aWRlckFjdGl2ZSgpIGlzIGZhbHNlCitXYXRjaGVyIGNhbGxiYWNrIGNhbGxlZAorUEFTUyB0
ZXN0UnVubmVyLmlzR2VvbG9jYXRpb25Qcm92aWRlckFjdGl2ZSgpIGlzIHRydWUKK1BBU1Mgc3Rh
Z2UgPT0gJ2luX3BhZ2VfY2FjaGUnIGlzIGZhbHNlCitQQVNTIHBvc2l0aW9uLmNvb3Jkcy5sYXRp
dHVkZSBpcyBtb2NrTGF0aXR1ZGUKK1BBU1MgcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSBpcyBt
b2NrTG9uZ2l0dWRlCitQQVNTIHBvc2l0aW9uLmNvb3Jkcy5hY2N1cmFjeSBpcyBtb2NrQWNjdXJh
Y3kKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0
aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4NzNjNGRi
NDBhNTQ0MTk5ODY1NjA4YzczZmY3MGIwNjdhOTZiZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hl
ci5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSBhY3RpdmVseSB1c2luZyBn
ZW9sb2NhdGlvbiBjYW4gZ28gaW50byB0aGUgcGFnZSBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIG1vY2tMYXRpdHVkZSA9IDUxLjQ3ODsKK3ZhciBtb2NrTG9u
Z2l0dWRlID0gLTAuMTY2OwordmFyIG1vY2tBY2N1cmFjeSA9IDEwMC4wOworCit2YXIgc3RhZ2Ug
PSAiYmVmb3JlX3Jlc3RvcmUiOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VL
ZXkiLCAxKTsKKyAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbih0cnVlKTsK
KyAgICB0ZXN0UnVubmVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKG1vY2tMYXRpdHVkZSwg
bW9ja0xvbmdpdHVkZSwgbW9ja0FjY3VyYWN5KTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZXNob3cgLSAi
ICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNhY2hlIik7CisgICAg
aWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICBzdGFnZSA9ICJhZnRlcl9yZXN0b3JlIjsK
KyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9t
IHRoZSBwYWdlIGNhY2hlIik7CisKKyAgICAgICAgLy8gR29pbmcgaW50byBQYWdlQ2FjaGUgc2hv
dWxkIGhhdmUgZGlzYWJsZWQgR1BTIHNvIHRoZSBHZW9sb2NhdGlvblByb3ZpZGVyIHNob3VsZCBi
ZQorICAgICAgICAvLyB0ZW1wb3JhcmlseSBpbmFjdGl2ZSB3aGVuIHJlc3RvcmluZy4KKyAgICAg
ICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc0dlb2xvY2F0aW9uUHJvdmlkZXJBY3RpdmUo
KSIpOworICAgIH0KK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2Vo
aWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50
LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNoZSIpOworICAgIGlmICgh
ZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgZGlkIG5vdCBlbnRl
ciB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gVXBkYXRlIHRoZSBwb3NpdGlvbiByaWdodCBiZWZvcmUgZ29pbmcgaW50
byBQYWdlQ2FjaGUgdG8gbWFrZSBzdXJlIHRoYXQ6CisgICAgICAgIC8vIDEuIFRoZSB3YXRjaGVy
IGNhbGxiYWNrIGlzIE5PVCBjYWxsZWQgd2hpbGUgaW4gdGhlIFBhZ2VDYWNoZS4KKyAgICAgICAg
Ly8gMi4gVGhlIHdhdGNoZXIgY2FsbGJhY2sgRE9FUyBnZXQgY2FsbGVkIHdoZW4gcmVzdG9yaW5n
IGZyb20gdGhlIFBhZ2VDYWNoZS4KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbigrK21vY2tMYXRpdHVkZSwgKyttb2NrTG9uZ2l0dWRlLCArK21vY2tBY2N1cmFj
eSk7CisKKyAgICAgICAgc3RhZ2UgPSAiaW5fcGFnZV9jYWNoZSI7CisgICAgfQorfSwgZmFsc2Up
OworCitmdW5jdGlvbiBjaGVja1Bvc2l0aW9uKHApIHsKKyAgICBwb3NpdGlvbiA9IHA7CisgICAg
c2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZScsICdtb2NrTGF0aXR1ZGUnKTsKKyAg
ICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZScsICdtb2NrTG9uZ2l0dWRlJyk7
CisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5hY2N1cmFjeScsICdtb2NrQWNjdXJhY3kn
KTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0aW9uIGdlb2xvY2F0aW9uV2F0Y2hGdW5jdGlv
bihwb3NpdGlvbikKK3sKKyAgICBkZWJ1ZygiV2F0Y2hlciBjYWxsYmFjayBjYWxsZWQiKTsKKyAg
ICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNHZW9sb2NhdGlvblByb3ZpZGVyQWN0aXZlKCki
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJzdGFnZSA9PSAnaW5fcGFnZV9jYWNoZSciKTsKKyAgICBj
aGVja1Bvc2l0aW9uKHBvc2l0aW9uKTsKKworICAgIGlmIChzdGFnZSA9PSAiYmVmb3JlX3Jlc3Rv
cmUiKSB7CisgICAgICAvLyBGb3JjZSBhIGJhY2sgbmF2aWdhdGlvbiBiYWNrIHRvIHRoaXMgcGFn
ZS4KKyAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9wYWdlLWNhY2hlLWhl
bHBlci5odG1sIjsKKyAgICB9IGVsc2UgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9
Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAg
bmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24oZ2VvbG9jYXRpb25XYXRjaEZ1bmN0
aW9uLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOwor
fSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258557</attachid>
            <date>2015-08-07 20:47:19 -0700</date>
            <delta_ts>2015-08-09 21:14:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147785-20150807204708.patch</filename>
            <type>text/plain</type>
            <size>11449</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk4ZjdhNTQwZjUyNGMy
MTQ4NDQ2YjRmOWI1OGJiNzhmYzA3OThjNi4uZGE3MWM3YzQwNTJkNWQxNmU5MTc3NzUwOWRjOGZj
YjRiZmUyNTYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA4LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZSBjYWNoZSBkb2Vzbid0
IHdvcmsgZm9yIHBhZ2VzIGFjdGl2ZWx5IHVzaW5nIEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc3ODUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzExMTQ3OTAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IHBhZ2VzIGFjdGl2ZWx5IHVzaW5nIEdlb2xvY2F0aW9uIGludG8g
dGhlIFBhZ2VDYWNoZS4KKworICAgICAgICBUZXN0czogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
Z2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6c3VzcGVuZCk6IERlbGV0ZWQuCisgICAgICAgICogaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwOgorCiAyMDE1LTA4LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgTGlnaHR3ZWlnaHQgbG9ja3Mgc2hvdWxkIGJlIGFkYXB0aXZlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4
IGYxOWVmYWY3NGQyZGU4MDcyNDM0MDI4ODRmMWUxYWQ1YTYzMmM3NmEuLjgxMTQyNGMyYmE3NWQ1
MzZkNTJkZTQzM2QyODA5NmY3ODYxMTA0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0xNjQsMTUgKzE2NCwxMiBAQCBQ
YWdlKiBHZW9sb2NhdGlvbjo6cGFnZSgpIGNvbnN0CiAKIGJvb2wgR2VvbG9jYXRpb246OmNhblN1
c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogewotICAgIHJldHVybiAhaGFzTGlzdGVuZXJzKCk7
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbiByZWFzb24pCiB7Ci0gICAgLy8gQWxsb3cgcGFnZXMgdGhhdCBubyBsb25n
ZXIgaGF2ZSBsaXN0ZW5lcnMgdG8gZW50ZXIgdGhlIHBhZ2UgY2FjaGUuCi0gICAgLy8gSGF2ZSB0
aGVtIHN0b3AgdXBkYXRpbmcgYW5kIHJlc2V0IGdlb2xvY2F0aW9uIHBlcm1pc3Npb25zIHdoZW4g
dGhlIHBhZ2UgaXMgcmVzdW1lZC4KICAgICBpZiAocmVhc29uID09IEFjdGl2ZURPTU9iamVjdDo6
UGFnZUNhY2hlKSB7Ci0gICAgICAgIEFTU0VSVCghaGFzTGlzdGVuZXJzKCkpOwogICAgICAgICBz
dG9wKCk7CiAgICAgICAgIG1fcmVzZXRPblJlc3VtZSA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRh
ZGUxNjA5NjQ4ZjZhMTY2N2EzYmI4NmQyODNiOTJhZmRkNjAzMDcuLjQ2ZjM1YmNhMDA4MDU1MzU1
NzUzMDhmYWMwNzU0ZmFlN2Q4YjkwYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wOC0w
NyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2UgY2FjaGUg
ZG9lc24ndCB3b3JrIGZvciBwYWdlcyBhY3RpdmVseSB1c2luZyBHZW9sb2NhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Nzg1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMTE0NzkwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UgZm9yIHBhZ2UgY2Fj
aGluZyBvZiBwYWdlcyBhY3RpdmVseSB1c2luZworICAgICAgICB0aGUgR2VvbG9jYXRpb24gQVBJ
LgorCisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZl
LW9uZXNob3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xv
Y2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA4LTA3ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW09TIFhdIEZvbnQg
ZmFsbGJhY2sgaXMgbm90IGxhbmd1YWdlLXNlbnNpdGl2ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRp
b24tYWN0aXZlLW9uZXNob3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMGZiNmQ2YTdhMDM1
ZTIyNjMzOWNhZDU2MTkyY2M5ZDBiYjc5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGVzdHMgdGhhdCBhIHBhZ2UgYWN0aXZlbHkgdXNp
bmcgZ2VvbG9jYXRpb24gY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAt
IGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50
ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlCitQQVNTIHRlc3RSdW5uZXIu
aXNHZW9sb2NhdGlvblByb3ZpZGVyQWN0aXZlKCkgaXMgZmFsc2UKK1dhdGNoZXIgY2FsbGJhY2sg
Y2FsbGVkCitQQVNTIHRlc3RSdW5uZXIuaXNHZW9sb2NhdGlvblByb3ZpZGVyQWN0aXZlKCkgaXMg
dHJ1ZQorUEFTUyBzdGFnZSBpcyAiYWZ0ZXJfcmVzdG9yZSIKK1BBU1MgcG9zaXRpb24uY29vcmRz
LmxhdGl0dWRlIGlzIG1vY2tMYXRpdHVkZQorUEFTUyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRl
IGlzIG1vY2tMb25naXR1ZGUKK1BBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlzIG1vY2tB
Y2N1cmFjeQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2Vv
bG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZk
YjMwZjRjNjI1ZmIxZDQwZTQ5MTZlZGIxOGJlZDUxOGJhMTY3OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1v
bmVzaG90Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIGFjdGl2ZWx5IHVz
aW5nIGdlb2xvY2F0aW9uIGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLicpOword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgbW9ja0xhdGl0dWRlID0gNTEuNDc4OwordmFyIG1v
Y2tMb25naXR1ZGUgPSAtMC4xNjY7Cit2YXIgbW9ja0FjY3VyYWN5ID0gMTAwLjA7CisKK3ZhciBz
dGFnZSA9ICJiZWZvcmVfcmVzdG9yZSI7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVy
ZW5jZUtleSIsIDEpOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
bW9ja0xhdGl0dWRlLCBtb2NrTG9uZ2l0dWRlLCBtb2NrQWNjdXJhY3kpOworfQorCit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVn
KCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20g
Y2FjaGUiKTsKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHN0YWdlID0gImFm
dGVyX3Jlc3RvcmUiOworICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBlbnRlciBhbmQgd2Fz
IHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUiKTsKKworICAgICAgICAvLyBHb2luZyBpbnRv
IFBhZ2VDYWNoZSBzaG91bGQgaGF2ZSBkaXNhYmxlZCBHUFMgc28gdGhlIEdlb2xvY2F0aW9uUHJv
dmlkZXIgc2hvdWxkIGJlCisgICAgICAgIC8vIHRlbXBvcmFyaWx5IGluYWN0aXZlIHdoZW4gcmVz
dG9yaW5nLgorICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzR2VvbG9jYXRpb25Q
cm92aWRlckFjdGl2ZSgpIik7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlk
ZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNhY2hl
Iik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFn
ZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGFnZSA9ICJpbl9wYWdlX2NhY2hlIjsKKworICAg
ICAgICAvLyBHaXZlIHBlcm1pc3Npb24gcmlnaHQgYmVmb3JlIGVudGVyaW5nIHRoZSBQYWdlQ2Fj
aGUgdG8gbWFrZSBzdXJlIHRoYXQ6CisgICAgICAgIC8vIDEuIFRoZSBnZW9sb2NhdGlvbiBjYWxs
YmFjayBpcyBOT1QgY2FsbGVkIHdoaWxlIGluIHRoZSBwYWdlIGNhY2hlLgorICAgICAgICAvLyAy
LiBUaGUgZ2VvbG9jYXRpb24gY2FsbGJhY2sgRE9FUyBnZXQgY2FsbGVkIGFmdGVyIHJlc3Rvcmlu
ZyBmcm9tIHRoZSBwYWdlIGNhY2hlLgorICAgICAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9u
UGVybWlzc2lvbih0cnVlKTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGNoZWNrUG9z
aXRpb24ocCkgeworICAgIHBvc2l0aW9uID0gcDsKKyAgICBzaG91bGRCZSgncG9zaXRpb24uY29v
cmRzLmxhdGl0dWRlJywgJ21vY2tMYXRpdHVkZScpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5j
b29yZHMubG9uZ2l0dWRlJywgJ21vY2tMb25naXR1ZGUnKTsKKyAgICBzaG91bGRCZSgncG9zaXRp
b24uY29vcmRzLmFjY3VyYWN5JywgJ21vY2tBY2N1cmFjeScpOworICAgIGRlYnVnKCcnKTsKK30K
KworZnVuY3Rpb24gZ2VvbG9jYXRpb25DYWxsYmFjayhwb3NpdGlvbikKK3sKKyAgICBkZWJ1Zygi
V2F0Y2hlciBjYWxsYmFjayBjYWxsZWQiKTsKKyAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIu
aXNHZW9sb2NhdGlvblByb3ZpZGVyQWN0aXZlKCkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3N0YWdlJywgJ2FmdGVyX3Jlc3RvcmUnKTsKKyAgICBjaGVja1Bvc2l0aW9uKHBvc2l0aW9u
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBmdW5jdGlvbigpIHsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgLy8g
Rm9yY2UgYSBiYWNrIG5hdmlnYXRpb24gYmFjayB0byB0aGlzIHBhZ2UuCisgICAgICB3aW5kb3cu
bG9jYXRpb24uaHJlZiA9ICJyZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAg
fSwgMCk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIG5hdmlnYXRv
ci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZ2VvbG9jYXRpb25DYWxsYmFjaywgZnVu
Y3Rpb24oZSkgeworICAgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQg
dW5leHBlY3RlZGx5Jyk7CisgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICB9KTsKKyAg
ICB9LCAwKTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0
aXZlLXdhdGNoZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc2YTEwZDNmMWQzMzc1M2ViYmJiMjBiMjI0NWZmMDBjZWQ5MTM4MzQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3Rp
dmUtd2F0Y2hlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMgdGhhdCBhIHBh
Z2UgYWN0aXZlbHkgdXNpbmcgZ2VvbG9jYXRpb24gY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNh
Y2hlCitXYXRjaGVyIGNhbGxiYWNrIGNhbGxlZAorUEFTUyB0ZXN0UnVubmVyLmlzR2VvbG9jYXRp
b25Qcm92aWRlckFjdGl2ZSgpIGlzIHRydWUKK1BBU1Mgc3RhZ2UgPT0gJ2luX3BhZ2VfY2FjaGUn
IGlzIGZhbHNlCitQQVNTIHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSBpcyBtb2NrTGF0aXR1ZGUK
K1BBU1MgcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSBpcyBtb2NrTG9uZ2l0dWRlCitQQVNTIHBv
c2l0aW9uLmNvb3Jkcy5hY2N1cmFjeSBpcyBtb2NrQWNjdXJhY3kKKworcGFnZWhpZGUgLSBlbnRl
cmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFu
ZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZQorUEFTUyB0ZXN0UnVubmVyLmlzR2Vv
bG9jYXRpb25Qcm92aWRlckFjdGl2ZSgpIGlzIGZhbHNlCitXYXRjaGVyIGNhbGxiYWNrIGNhbGxl
ZAorUEFTUyB0ZXN0UnVubmVyLmlzR2VvbG9jYXRpb25Qcm92aWRlckFjdGl2ZSgpIGlzIHRydWUK
K1BBU1Mgc3RhZ2UgPT0gJ2luX3BhZ2VfY2FjaGUnIGlzIGZhbHNlCitQQVNTIHBvc2l0aW9uLmNv
b3Jkcy5sYXRpdHVkZSBpcyBtb2NrTGF0aXR1ZGUKK1BBU1MgcG9zaXRpb24uY29vcmRzLmxvbmdp
dHVkZSBpcyBtb2NrTG9uZ2l0dWRlCitQQVNTIHBvc2l0aW9uLmNvb3Jkcy5hY2N1cmFjeSBpcyBt
b2NrQWNjdXJhY3kKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE4NzNjNGRiNDBhNTQ0MTk5ODY1NjA4YzczZmY3MGIwNjdhOTZiZmUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3Rp
dmUtd2F0Y2hlci5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSBhY3RpdmVs
eSB1c2luZyBnZW9sb2NhdGlvbiBjYW4gZ28gaW50byB0aGUgcGFnZSBjYWNoZS4nKTsKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIG1vY2tMYXRpdHVkZSA9IDUxLjQ3ODsKK3Zh
ciBtb2NrTG9uZ2l0dWRlID0gLTAuMTY2OwordmFyIG1vY2tBY2N1cmFjeSA9IDEwMC4wOworCit2
YXIgc3RhZ2UgPSAiYmVmb3JlX3Jlc3RvcmUiOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVBy
ZWZlcmVuY2VLZXkiLCAxKTsKKyAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVybWlzc2lv
bih0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKG1vY2tM
YXRpdHVkZSwgbW9ja0xvbmdpdHVkZSwgbW9ja0FjY3VyYWN5KTsKK30KKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFn
ZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNhY2hl
Iik7CisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICBzdGFnZSA9ICJhZnRlcl9y
ZXN0b3JlIjsKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0
b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlIik7CisKKyAgICAgICAgLy8gR29pbmcgaW50byBQYWdl
Q2FjaGUgc2hvdWxkIGhhdmUgZGlzYWJsZWQgR1BTIHNvIHRoZSBHZW9sb2NhdGlvblByb3ZpZGVy
IHNob3VsZCBiZQorICAgICAgICAvLyB0ZW1wb3JhcmlseSBpbmFjdGl2ZSB3aGVuIHJlc3Rvcmlu
Zy4KKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc0dlb2xvY2F0aW9uUHJvdmlk
ZXJBY3RpdmUoKSIpOworICAgIH0KK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAi
ICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNoZSIpOwor
ICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgZGlk
IG5vdCBlbnRlciB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVXBkYXRlIHRoZSBwb3NpdGlvbiByaWdodCBiZWZvcmUg
Z29pbmcgaW50byBQYWdlQ2FjaGUgdG8gbWFrZSBzdXJlIHRoYXQ6CisgICAgICAgIC8vIDEuIFRo
ZSB3YXRjaGVyIGNhbGxiYWNrIGlzIE5PVCBjYWxsZWQgd2hpbGUgaW4gdGhlIFBhZ2VDYWNoZS4K
KyAgICAgICAgLy8gMi4gVGhlIHdhdGNoZXIgY2FsbGJhY2sgRE9FUyBnZXQgY2FsbGVkIHdoZW4g
cmVzdG9yaW5nIGZyb20gdGhlIFBhZ2VDYWNoZS4KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbigrK21vY2tMYXRpdHVkZSwgKyttb2NrTG9uZ2l0dWRlLCArK21v
Y2tBY2N1cmFjeSk7CisKKyAgICAgICAgc3RhZ2UgPSAiaW5fcGFnZV9jYWNoZSI7CisgICAgfQor
fSwgZmFsc2UpOworCitmdW5jdGlvbiBjaGVja1Bvc2l0aW9uKHApIHsKKyAgICBwb3NpdGlvbiA9
IHA7CisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZScsICdtb2NrTGF0aXR1
ZGUnKTsKKyAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZScsICdtb2NrTG9u
Z2l0dWRlJyk7CisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5hY2N1cmFjeScsICdtb2Nr
QWNjdXJhY3knKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0aW9uIGdlb2xvY2F0aW9uV2F0
Y2hGdW5jdGlvbihwb3NpdGlvbikKK3sKKyAgICBkZWJ1ZygiV2F0Y2hlciBjYWxsYmFjayBjYWxs
ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNHZW9sb2NhdGlvblByb3ZpZGVy
QWN0aXZlKCkiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJzdGFnZSA9PSAnaW5fcGFnZV9jYWNoZSci
KTsKKyAgICBjaGVja1Bvc2l0aW9uKHBvc2l0aW9uKTsKKworICAgIGlmIChzdGFnZSA9PSAiYmVm
b3JlX3Jlc3RvcmUiKSB7CisgICAgICAvLyBGb3JjZSBhIGJhY2sgbmF2aWdhdGlvbiBiYWNrIHRv
IHRoaXMgcGFnZS4KKyAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9wYWdl
LWNhY2hlLWhlbHBlci5odG1sIjsKKyAgICB9IGVsc2UgeworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24o
KSB7CisgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24oZ2VvbG9jYXRpb25X
YXRjaEZ1bmN0aW9uLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgIH0pOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>