<?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>170058</bug_id>
          
          <creation_ts>2017-03-24 10:36:27 -0700</creation_ts>
          <short_desc>[SOUP] URI Fragment is lost after redirect</short_desc>
          <delta_ts>2017-04-07 10:22:05 -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>WebKitGTK</component>
          <version>Other</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="Paul Ogris">pogris</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1290857</commentid>
    <comment_count>0</comment_count>
    <who name="Paul Ogris">pogris</who>
    <bug_when>2017-03-24 10:36:27 -0700</bug_when>
    <thetext>When using webkit_web_view_load_uri with the URI &quot;https://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#v:map&quot;, the jump to the specified anchor is never performed. The page itself redirects to the current version of the documentation hosted there, currently  https://hackage.haskell.org/package/bytestring-0.10.8.1/docs/Data-ByteString.html#v:map. Loading this URI directly works as intended. The problem also exists when testing with MiniBrowser. 

How to reproduce:
./MiniBrowser &quot;https://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#v:map&quot;

Actual Results:
The page is displayed, but not at the anchor point specified

Expected Results:
The page should be scrolled down to the specified anchor. E.g. Firefox preserves the fragment through the redirect.

Tested on Fedora 25, the WebkitGtk version used is 2.14.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290957</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-03-24 12:59:20 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 158420 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291083</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-03-24 16:56:25 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #1)
&gt; 
&gt; *** This bug has been marked as a duplicate of bug 158420 ***

I don&apos;t think this is a duplicate of 158420, since 158420 is about a very specific case that occurs on Apple&apos;s platforms, whereas this bug is about the original use case mentioned in https://bugs.webkit.org/show_bug.cgi?id=24175 and on non-Apple platforms.

WebKit itself makes no effort to preserve these anchors - It relies on the platform networking library beneath it.

It seems that the curl networking port doesn&apos;t do this correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291201</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-25 07:58:28 -0700</bug_when>
    <thetext>We use the soup backend, not curl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291409</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-03-26 23:22:22 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; We use the soup backend, not curl.

Yup sorry, misremembered that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293616</commentid>
    <comment_count>5</comment_count>
      <attachid>306068</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-03 03:03:54 -0700</bug_when>
    <thetext>Created attachment 306068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293619</commentid>
    <comment_count>6</comment_count>
      <attachid>306070</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-03 03:59:33 -0700</bug_when>
    <thetext>Created attachment 306070
Patch

Update test expectations of iOS too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293640</commentid>
    <comment_count>7</comment_count>
      <attachid>306070</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-03 07:29:59 -0700</bug_when>
    <thetext>Comment on attachment 306070
Patch

LGTM, thanks! I&apos;ll let Sergio do final review. My only comment is to please file bugs for Mac WK1 and iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293641</commentid>
    <comment_count>8</comment_count>
      <attachid>306070</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-03 07:30:37 -0700</bug_when>
    <thetext>Comment on attachment 306070
Patch

Oh, I thought Sergio had commented in this bug, but I had it mixed up with another. r+ then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293648</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-03 08:35:40 -0700</bug_when>
    <thetext>See the TestExpectations changes in mac an iOS, bug already exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293669</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-03 10:08:26 -0700</bug_when>
    <thetext>Committed r214807: &lt;http://trac.webkit.org/changeset/214807&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294003</commentid>
    <comment_count>11</comment_count>
      <attachid>306070</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-04-04 01:00:05 -0700</bug_when>
    <thetext>Comment on attachment 306070
Patch

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

&gt; LayoutTests/http/tests/navigation/redirect-preserves-fragment.html:3
&gt; +&lt;head&gt;

No need for &lt;html&gt;, &lt;head&gt; and &lt;body&gt; tags when specifying the DOCTYPE. Same for the other tests.

&gt; Source/WebKit2/NetworkProcess/soup/NetworkDataTaskSoup.cpp:107
&gt; +    m_currentRequest = WTFMove(request);

Not a big fan of adding another element to the internal state of the object.

Also we&apos;re doing additional changes of behaviour here in case of multiple redirections because you are no longer using the first request for several checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294004</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-04 01:05:17 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #11)
&gt; Comment on attachment 306070 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306070&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/navigation/redirect-preserves-fragment.html:3
&gt; &gt; +&lt;head&gt;
&gt; 
&gt; No need for &lt;html&gt;, &lt;head&gt; and &lt;body&gt; tags when specifying the DOCTYPE. Same
&gt; for the other tests.

I copy-pasted it from existing tests, that what I usually do, since I don&apos;t know html, css, js :-P

&gt; &gt; Source/WebKit2/NetworkProcess/soup/NetworkDataTaskSoup.cpp:107
&gt; &gt; +    m_currentRequest = WTFMove(request);
&gt; 
&gt; Not a big fan of adding another element to the internal state of the object.

Do you have a better proposal? This is done by NetworkLoad, which could be our client, we could add currentRequest() to the client interface, but I&apos;m not sure it&apos;s worth it, TBH.

&gt; Also we&apos;re doing additional changes of behaviour here in case of multiple
&gt; redirections because you are no longer using the first request for several
&gt; checks.

That&apos;s what fixes bug #158420 for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295374</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-07 10:22:05 -0700</bug_when>
    <thetext>As I commented over in https://bugs.webkit.org/show_bug.cgi?id=158420#c8, I&apos;m not sure that *always* applying this behavior is correct.

If the investigation in 158420 shows that there&apos;s some cases we shouldn&apos;t do this, the lib soup implementation should adapt to what we learn.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306068</attachid>
            <date>2017-04-03 03:03:54 -0700</date>
            <delta_ts>2017-04-03 03:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-fragment-on-redirect.diff</filename>
            <type>text/plain</type>
            <size>16341</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YzYyNTkxOTFmYS4uZTE5ZjE4Nzc4M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxNy0wNC0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1NPVVBdIFVSSSBGcmFnbWVudCBpcyBsb3N0IGFmdGVyIHJlZGlyZWN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwNTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdG8g
Y2hlY2sgd2UgY29ycmVjdGx5IGhhbmRsZSBmcmFnbWVudCBpZGVudGlmaWVycyBvbiBzZXJ2ZXIg
cmVkaXJlY3Rpb25zLgorCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0
LXByZXNlcnZlcy1mcmFnbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGly
ZWN0LXRvLWZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJl
c2VydmVzLWZyYWdtZW50LnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudC5waHA6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBo
cDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTctMDQtMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGFjY2lkZW50YWxseSBhZGRlZCBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgZnJvbSBo
dHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWluLXdvcmtlci1jcmFzaC5odG1sIGV4cGVjdGF0aW9uLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXBy
ZXNlcnZlcy1mcmFnbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjMxMjg3NGE1YmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtcHJlc2Vy
dmVzLWZyYWdtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQu
cGhwI2ZvbyAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50
LnBocCNmb28sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0
aW9uL3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJl
ZGlyZWN0UmVzcG9uc2UgKG51bGwpCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9y
ZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQuaHRtbCAtIGRpZEZpbmlzaExvYWRpbmcKK2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC1wcmVzZXJ2ZXMt
ZnJhZ21lbnQucGhwI2ZvbyAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VjY2Vzcy5odG1sI2Zvbywg
bWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVkaXJl
Y3QtcHJlc2VydmVzLWZyYWdtZW50Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNw
b25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNv
dXJjZXMvcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocCNmb28sIGh0dHAgc3RhdHVzIGNv
ZGUgMzAyPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGly
ZWN0LXByZXNlcnZlcy1mcmFnbWVudC5waHAjZm9vIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VS
TFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWNj
ZXNzLmh0bWwjZm9vLCBodHRwIHN0YXR1cyBjb2RlIDIwMD4KK1Rlc3QgcGFzc2VzIGlmIFdlYktp
dCBwcmVzZXJ2ZXMgdGhlIHJlcXVlc3QgZnJhZ21lbnQgaWRlbnRpZmllciBhZnRlciB0aGUgcmVk
aXJlY3Rpb24uCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hZjljNzRiOWRkYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1wcmVzZXJ2
ZXMtZnJhZ21lbnQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK29ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBw
YXNzZXMgaWYgV2ViS2l0IHByZXNlcnZlcyB0aGUgcmVxdWVzdCBmcmFnbWVudCBpZGVudGlmaWVy
IGFmdGVyIHRoZSByZWRpcmVjdGlvbi48L3A+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3JlZGly
ZWN0LXByZXNlcnZlcy1mcmFnbWVudC5waHAjZm9vIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVj
dC10by1mcmFnbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yOTQ0NWQwMTYwZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQucGhwI2ZvbyAtIHdpbGxTZW5kUmVxdWVz
dCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNv
dXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQucGhwI2ZvbywgbWFpbiBkb2N1bWVudCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbCwg
aHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEyNy4wLjAu
MTo4MDAwL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbCAtIGRpZEZpbmlzaExv
YWRpbmcKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVj
dC10by1mcmFnbWVudC5waHAjZm9vIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWNjZXNzLmh0bWwj
YmFyLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9y
ZWRpcmVjdC10by1mcmFnbWVudC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9u
c2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0LXRvLWZyYWdtZW50LnBocCNmb28sIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgor
aHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWZy
YWdtZW50LnBocCNmb28gLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3N1Y2Nlc3MuaHRtbCNiYXIsIGh0
dHAgc3RhdHVzIGNvZGUgMjAwPgorVGVzdCBwYXNzZXMgaWYgV2ViS2l0IGlnbm9yZXMgdGhlIHJl
cXVlc3QgZnJhZ21lbnQgaWRlbnRpZmllciBhZnRlciB0aGUgcmVkaXJlY3QgdG8gYSB1cmwgd2l0
aCBhIGZyYWdtZW50IGlkZW50aWZpZXIuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODgwNzlhOWMwY2YKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJh
Z21lbnQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9u
KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBwYXNzZXMg
aWYgV2ViS2l0IGlnbm9yZXMgdGhlIHJlcXVlc3QgZnJhZ21lbnQgaWRlbnRpZmllciBhZnRlciB0
aGUgcmVkaXJlY3QgdG8gYSB1cmwgd2l0aCBhIGZyYWdtZW50IGlkZW50aWZpZXIuPC9wPgorPGlm
cmFtZSBzcmM9InJlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudC5waHAjZm9vIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50Mi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0ZTljNTg3NzA1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGly
ZWN0LXRvLWZyYWdtZW50Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBo
cCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCwgbWFpbiBk
b2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVkaXJlY3QtdG8t
ZnJhZ21lbnQyLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkK
K2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50Mi5o
dG1sIC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24v
cmVzb3VyY2VzL3JlZGlyZWN0LXRvLWZyYWdtZW50Mi5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5T
VVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2Vz
L3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5waHAjYmFyLCBtYWluIGRvY3VtZW50IFVSTCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRt
bCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVu
dDIucGhwLCBodHRwIHN0YXR1cyBjb2RlIDMwMj4KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudDIucGhwIC0gd2lsbFNlbmRSZXF1
ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9zdWNjZXNzLmh0bWwjYmFyLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRtbCwgaHR0cCBtZXRo
b2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQucGhw
I2JhciwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCAtIGRpZFJlY2VpdmVSZXNw
b25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNv
dXJjZXMvc3VjY2Vzcy5odG1sI2JhciwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CitUZXN0IHBhc3Nl
cyBpZiBXZWJLaXQga2VlcHMgZnJhZ21lbnQgaWRlbnRpZmllciBmcm9tIGZpcnN0IHJlZGlyZWN0
ZWQgVVJMLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNmJjMjUwYzk4YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQyLmh0bWwKQEAg
LTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgcGFzc2VzIGlmIFdlYktpdCBrZWVw
cyBmcmFnbWVudCBpZGVudGlmaWVyIGZyb20gZmlyc3QgcmVkaXJlY3RlZCBVUkwuPC9wPgorPGlm
cmFtZSBzcmM9InJlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudDIucGhwIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJlc2VydmVz
LWZyYWdtZW50LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2E3
MjA4YjUxZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5waHAKQEAgLTAsMCAr
MSw0IEBACis8P3BocAoraGVhZGVyKCdMb2NhdGlvbjogc3VjY2Vzcy5odG1sJyk7Cis/PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Jl
ZGlyZWN0LXRvLWZyYWdtZW50LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41MjhmMDBlZTAzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21l
bnQucGhwCkBAIC0wLDAgKzEsNCBAQAorPD9waHAKK2hlYWRlcignTG9jYXRpb246IHN1Y2Nlc3Mu
aHRtbCNiYXInKTsKKz8+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBo
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTVkZTRjZDMxOGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0LXRvLWZyYWdtZW50Mi5waHAKQEAgLTAsMCArMSw0IEBACis8P3BocAoraGVh
ZGVyKCdMb2NhdGlvbjogcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocCNiYXInKTsKKz8+
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzY3OTcx
ZDQ4Y2MuLmZhMTU5ZDJmNTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTU2OCwzICsxNTY4LDUgQEAgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1zZXJ2
ZWQtYXMtdGV4dC13aXRoLXR5cGUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2ODEzMiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3NpbXBsZS1jcm9zcy1vcmlnaW4tcHJvZ3Jlc3MtZXZl
bnRzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTY5ODM4IFsgUmVsZWFz
ZSBdIGZhc3Qvd29ya2Vycy93b3JrZXItY2xvc2UtbW9yZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
Kword2Via2l0Lm9yZy9iLzE1ODQyMCBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8t
ZnJhZ21lbnQyLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlYzhiYTZmODRkYi4uNGMw
ZDkzZjlkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNC0wMyAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NPVVBdIFVS
SSBGcmFnbWVudCBpcyBsb3N0IGFmdGVyIHJlZGlyZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjYXNlIG9mIHJlZGlyZWN0aW9uIGNoZWNrIGlm
IHRoZSBjdXJyZW50IHJlcXVlc3QgaGFzIGEgZnJhZ21lbnQgaWRlbnRpZmllciBhbmQgYXBwbHkg
aXQgdG8gdGhlIHJlZGlyZWN0aW9uCisgICAgICAgIG9ubHkgd2hlbiBpdCBkb2Vzbid0IGhhdmUg
YSBmcmFnbWVudCBpZGVudGlmaWVyIHlldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRh
VGFza1NvdXA6Ok5ldHdvcmtEYXRhVGFza1NvdXApOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrU291cDo6Y29udGludWVIVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5oOgorCiAyMDE3LTA0LTAxICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gPGlucHV0IHR5cGU9Zmls
ZT4gbGFiZWwgc2hvdWxkIGJlIHNwZWNpZmllZCB1c2luZyBwbHVyYWwgcnVsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFz
a1NvdXAuY3BwCmluZGV4IGE4OGU5NGFlYWFkLi44MTdiOGVlY2U4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwCkBAIC03NSw3ICs3NSw3IEBAIE5ldHdvcmtEYXRhVGFza1NvdXA6Ok5ldHdvcmtEYXRh
VGFza1NvdXAoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFzCiAgICAgICAg
IH0KICAgICAgICAgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVxdWVzdChyZXF1ZXN0KTsKICAgICB9
Ci0gICAgY3JlYXRlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBjcmVhdGVSZXF1ZXN0KFdURk1vdmUo
cmVxdWVzdCkpOwogfQogCiBOZXR3b3JrRGF0YVRhc2tTb3VwOjp+TmV0d29ya0RhdGFUYXNrU291
cCgpCkBAIC0xMDIsOSArMTAyLDExIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6c2V0UGVu
ZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uCiAgICAgbV9h
bGxvd092ZXJ3cml0ZURvd25sb2FkID0gYWxsb3dPdmVyd3JpdGU7CiB9CiAKLXZvaWQgTmV0d29y
a0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCit2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCkKIHsKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNvdXBVUkkgPSByZXF1
ZXN0LmNyZWF0ZVNvdXBVUkkoKTsKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gV1RGTW92ZShyZXF1
ZXN0KTsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gc291cFVSSSA9IG1fY3VycmVudFJlcXVl
c3QuY3JlYXRlU291cFVSSSgpOwogICAgIGlmICghc291cFVSSSkgewogICAgICAgICBzY2hlZHVs
ZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwogICAgICAgICByZXR1cm47CkBAIC0xMTYsOSAr
MTE4LDkgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1ZXN0KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJl
cXVlc3QudXBkYXRlU291cFJlcXVlc3Qoc291cFJlcXVlc3QuZ2V0KCkpOworICAgIG1fY3VycmVu
dFJlcXVlc3QudXBkYXRlU291cFJlcXVlc3Qoc291cFJlcXVlc3QuZ2V0KCkpOwogCi0gICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgIGlmICghbV9j
dXJyZW50UmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAg
bV9zb3VwUmVxdWVzdCA9IFdURk1vdmUoc291cFJlcXVlc3QpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTMyLDcgKzEzNCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAKICAgICB1bnNpZ25lZCBt
ZXNzYWdlRmxhZ3MgPSBTT1VQX01FU1NBR0VfTk9fUkVESVJFQ1Q7CiAKLSAgICByZXF1ZXN0LnVw
ZGF0ZVNvdXBNZXNzYWdlKHNvdXBNZXNzYWdlLmdldCgpKTsKKyAgICBtX2N1cnJlbnRSZXF1ZXN0
LnVwZGF0ZVNvdXBNZXNzYWdlKHNvdXBNZXNzYWdlLmdldCgpKTsKICAgICBpZiAobV9zaG91bGRD
b250ZW50U25pZmYgPT0gRG9Ob3RTbmlmZkNvbnRlbnQpCiAgICAgICAgIHNvdXBfbWVzc2FnZV9k
aXNhYmxlX2ZlYXR1cmUoc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfVFlQRV9DT05URU5UX1NOSUZG
RVIpOwogICAgIGlmIChtX3VzZXIuaXNFbXB0eSgpICYmIG1fcGFzc3dvcmQuaXNFbXB0eSgpICYm
IG1fc3RvcmVkQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CkBA
IC0xNTgsNyArMTYwLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICBzb3VwX21lc3NhZ2Vfc2V0X2Zs
YWdzKHNvdXBNZXNzYWdlLmdldCgpLCBzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZUZsYWdzPihzb3Vw
X21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlLmdldCgpKSB8IG1lc3NhZ2VGbGFncykpOwog
CiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQzLCAxKQotICAgIHNvdXBfbWVzc2FnZV9zZXRf
cHJpb3JpdHkoc291cE1lc3NhZ2UuZ2V0KCksIHRvU291cE1lc3NhZ2VQcmlvcml0eShyZXF1ZXN0
LnByaW9yaXR5KCkpKTsKKyAgICBzb3VwX21lc3NhZ2Vfc2V0X3ByaW9yaXR5KHNvdXBNZXNzYWdl
LmdldCgpLCB0b1NvdXBNZXNzYWdlUHJpb3JpdHkobV9jdXJyZW50UmVxdWVzdC5wcmlvcml0eSgp
KSk7CiAjZW5kaWYKIAogICAgIG1fc291cFJlcXVlc3QgPSBXVEZNb3ZlKHNvdXBSZXF1ZXN0KTsK
QEAgLTYzNiwxNCArNjM4LDE3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVI
VFRQUmVkaXJlY3Rpb24oKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QgPSBtX2ZpcnN0UmVxdWVzdDsKLSAgICByZXF1ZXN0LnNldFVSTChVUkwo
bV9yZXNwb25zZS51cmwoKSwgbV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5h
bWU6OkxvY2F0aW9uKSkpOworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gbV9jdXJyZW50
UmVxdWVzdDsKKyAgICBVUkwgcmVkaXJlY3RlZFVSTCA9IFVSTChtX3Jlc3BvbnNlLnVybCgpLCBt
X3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24pKTsKKyAg
ICBpZiAoIXJlZGlyZWN0ZWRVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkgJiYgcmVxdWVzdC51
cmwoKS5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgcmVkaXJlY3RlZFVSTC5zZXRG
cmFnbWVudElkZW50aWZpZXIocmVxdWVzdC51cmwoKS5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgcmVxdWVzdC5zZXRVUkwocmVkaXJlY3RlZFVSTCk7CiAKICAgICAvLyBTaG91bGQgbm90IHNl
dCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24t
c2VjdXJlIG9uZS4KICAgICBpZiAobV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0ICYmICFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJ
cyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKICAgICAgICAgcmVxdWVzdC5jbGVh
ckhUVFBSZWZlcnJlcigpOwogCi0gICAgYm9vbCBpc0Nyb3NzT3JpZ2luID0gIXByb3RvY29sSG9z
dEFuZFBvcnRBcmVFcXVhbChtX2ZpcnN0UmVxdWVzdC51cmwoKSwgcmVxdWVzdC51cmwoKSk7Cisg
ICAgYm9vbCBpc0Nyb3NzT3JpZ2luID0gIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChtX2N1
cnJlbnRSZXF1ZXN0LnVybCgpLCByZXF1ZXN0LnVybCgpKTsKICAgICBpZiAoIWVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHJlcXVlc3QuaHR0cE1ldGhvZCgpLCAiZ2V0IikpIHsKICAgICAg
ICAgLy8gQ2hhbmdlIG5ld1JlcXVlc3QgbWV0aG9kIHRvIEdFVCBpZiBjaGFuZ2Ugd2FzIG1hZGUg
ZHVyaW5nIGEgcHJldmlvdXMgcmVkaXJlY3Rpb24gb3IgaWYgY3VycmVudCByZWRpcmVjdGlvbiBz
YXlzIHNvLgogICAgICAgICBpZiAobV9zb3VwTWVzc2FnZS0+bWV0aG9kID09IFNPVVBfTUVUSE9E
X0dFVCB8fCAhcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgc2hvdWxk
UmVkaXJlY3RBc0dFVChtX3NvdXBNZXNzYWdlLmdldCgpLCBpc0Nyb3NzT3JpZ2luKSkgewpAQCAt
Njg5LDcgKzY5NCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVIVFRQUmVk
aXJlY3Rpb24oKQogI2VuZGlmCiAgICAgICAgICAgICBhcHBseUF1dGhlbnRpY2F0aW9uVG9SZXF1
ZXN0KHJlcXVlc3QpOwogICAgICAgICB9Ci0gICAgICAgIGNyZWF0ZVJlcXVlc3QocmVxdWVzdCk7
CisgICAgICAgIGNyZWF0ZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgICAgIGlmICht
X3NvdXBSZXF1ZXN0ICYmIG1fc3RhdGUgIT0gU3RhdGU6OlN1c3BlbmRlZCkgewogICAgICAgICAg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpTdXNwZW5kZWQ7CiAgICAgICAgICAgICByZXN1bWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmgKaW5kZXggNzFiZDczNWE0MGYuLmY4MmI2YTI1NTU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRUaW1lb3V0KCk7
CiAgICAgdm9pZCBzdG9wVGltZW91dCgpOwogCi0gICAgdm9pZCBjcmVhdGVSZXF1ZXN0KGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgY3JlYXRlUmVxdWVzdChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKICAgICBz
dGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKFNvdXBSZXF1ZXN0KiwgR0FzeW5jUmVzdWx0
KiwgTmV0d29ya0RhdGFUYXNrU291cCopOwogICAgIHZvaWQgZGlkU2VuZFJlcXVlc3QoR1JlZlB0
cjxHSW5wdXRTdHJlYW0+JiYpOwpAQCAtMTI5LDYgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgR1Jl
ZlB0cjxHQXN5bmNSZXN1bHQ+IG1fcGVuZGluZ1Jlc3VsdDsKICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2UgbV9wcm90ZWN0aW9uU3BhY2VGb3JQZXJzaXN0ZW50U3RvcmFnZTsKICAgICBXZWJD
b3JlOjpDcmVkZW50aWFsIG1fY3JlZGVudGlhbEZvclBlcnNpc3RlbnRTdG9yYWdlOworICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX2N1cnJlbnRSZXF1ZXN0OwogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKICAgICBWZWN0b3I8Y2hhcj4gbV9yZWFkQnVmZmVy
OwogICAgIHVuc2lnbmVkIG1fcmVkaXJlY3RDb3VudCB7IDAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306070</attachid>
            <date>2017-04-03 03:59:33 -0700</date>
            <delta_ts>2017-04-03 07:30:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-fragment-on-redirect.diff</filename>
            <type>text/plain</type>
            <size>17027</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YzYyNTkxOTFmYS4uNWJmYWM1YmU2YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxNy0wNC0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1NPVVBdIFVSSSBGcmFnbWVudCBpcyBsb3N0IGFmdGVyIHJlZGlyZWN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwNTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdG8g
Y2hlY2sgd2UgY29ycmVjdGx5IGhhbmRsZSBmcmFnbWVudCBpZGVudGlmaWVycyBvbiBzZXJ2ZXIg
cmVkaXJlY3Rpb25zLgorCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0
LXByZXNlcnZlcy1mcmFnbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGly
ZWN0LXRvLWZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJl
c2VydmVzLWZyYWdtZW50LnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudC5waHA6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBo
cDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTctMDQtMDIgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFjY2lkZW50
YWxseSBhZGRlZCBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgZnJvbSBodHRwL3Rlc3RzL2ZldGNo
L2ZldGNoLWluLXdvcmtlci1jcmFzaC5odG1sIGV4cGVjdGF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJl
Y3QtcHJlc2VydmVzLWZyYWdtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uZjMxMjg3NGE1YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQucGhwI2ZvbyAtIHdpbGxT
ZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocCNmb28sIG1haW4g
ZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3JlZGlyZWN0LXBy
ZXNlcnZlcy1mcmFnbWVudC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2Ug
KG51bGwpCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZWRpcmVjdC1wcmVzZXJ2
ZXMtZnJhZ21lbnQuaHRtbCAtIGRpZEZpbmlzaExvYWRpbmcKK2h0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQucGhwI2Zv
byAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VjY2Vzcy5odG1sI2ZvbywgbWFpbiBkb2N1bWVudCBV
UkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVkaXJlY3QtcHJlc2VydmVzLWZy
YWdtZW50Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSA8TlNVUkxSZXNw
b25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3Qt
cHJlc2VydmVzLWZyYWdtZW50LnBocCNmb28sIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgoraHR0cDov
LzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXByZXNlcnZlcy1m
cmFnbWVudC5waHAjZm9vIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWNjZXNzLmh0bWwjZm9vLCBo
dHRwIHN0YXR1cyBjb2RlIDIwMD4KK1Rlc3QgcGFzc2VzIGlmIFdlYktpdCBwcmVzZXJ2ZXMgdGhl
IHJlcXVlc3QgZnJhZ21lbnQgaWRlbnRpZmllciBhZnRlciB0aGUgcmVkaXJlY3Rpb24uCisKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXBy
ZXNlcnZlcy1mcmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5hZjljNzRiOWRkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQuaHRt
bApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBwYXNzZXMgaWYgV2ViS2l0
IHByZXNlcnZlcyB0aGUgcmVxdWVzdCBmcmFnbWVudCBpZGVudGlmaWVyIGFmdGVyIHRoZSByZWRp
cmVjdGlvbi48L3A+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3JlZGlyZWN0LXByZXNlcnZlcy1m
cmFnbWVudC5waHAjZm9vIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3Qt
dG8tZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yOTQ0NWQwMTYwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw3IEBACitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3QtdG8tZnJhZ21lbnQucGhwI2ZvbyAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0
IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3Qt
dG8tZnJhZ21lbnQucGhwI2ZvbywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRp
b24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbCAtIGRpZEZpbmlzaExvYWRpbmcKK2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudC5w
aHAjZm9vIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWNjZXNzLmh0bWwjYmFyLCBtYWluIGRvY3Vt
ZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFn
bWVudC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9u
c2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRv
LWZyYWdtZW50LnBocCNmb28sIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgoraHR0cDovLzEyNy4wLjAu
MTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWZyYWdtZW50LnBocCNmb28g
LSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L25hdmlnYXRpb24vcmVzb3VyY2VzL3N1Y2Nlc3MuaHRtbCNiYXIsIGh0dHAgc3RhdHVzIGNvZGUg
MjAwPgorVGVzdCBwYXNzZXMgaWYgV2ViS2l0IGlnbm9yZXMgdGhlIHJlcXVlc3QgZnJhZ21lbnQg
aWRlbnRpZmllciBhZnRlciB0aGUgcmVkaXJlY3QgdG8gYSB1cmwgd2l0aCBhIGZyYWdtZW50IGlk
ZW50aWZpZXIuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODgwNzlhOWMwY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQuaHRtbApAQCAt
MCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBwYXNzZXMgaWYgV2ViS2l0IGlnbm9y
ZXMgdGhlIHJlcXVlc3QgZnJhZ21lbnQgaWRlbnRpZmllciBhZnRlciB0aGUgcmVkaXJlY3QgdG8g
YSB1cmwgd2l0aCBhIGZyYWdtZW50IGlkZW50aWZpZXIuPC9wPgorPGlmcmFtZSBzcmM9InJlc291
cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudC5waHAjZm9vIj48L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRp
cmVjdC10by1mcmFnbWVudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0ZTljNTg3NzA1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50
Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCAtIHdpbGxTZW5kUmVx
dWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCwgbWFpbiBkb2N1bWVudCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQyLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK2h0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9uYXZpZ2F0aW9uL3JlZGlyZWN0LXRvLWZyYWdtZW50Mi5odG1sIC0gZGlkRmluaXNo
TG9hZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGly
ZWN0LXRvLWZyYWdtZW50Mi5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXByZXNl
cnZlcy1mcmFnbWVudC5waHAjYmFyLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudDIucGhwLCBodHRwIHN0
YXR1cyBjb2RlIDMwMj4KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9yZWRpcmVjdC10by1mcmFnbWVudDIucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVl
c3QgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWNjZXNz
Lmh0bWwjYmFyLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdh
dGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVj
dFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9u
L3Jlc291cmNlcy9yZWRpcmVjdC1wcmVzZXJ2ZXMtZnJhZ21lbnQucGhwI2JhciwgaHR0cCBzdGF0
dXMgY29kZSAzMDI+CitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNw
b25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VjY2Vzcy5o
dG1sI2JhciwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CitUZXN0IHBhc3NlcyBpZiBXZWJLaXQga2Vl
cHMgZnJhZ21lbnQgaWRlbnRpZmllciBmcm9tIGZpcnN0IHJlZGlyZWN0ZWQgVVJMLgorCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1m
cmFnbWVudDIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVj
dC10by1mcmFnbWVudDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNmJjMjUwYzk4YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcmVkaXJlY3QtdG8tZnJhZ21lbnQyLmh0bWwKQEAgLTAsMCArMSwyMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRlc3QgcGFzc2VzIGlmIFdlYktpdCBrZWVwcyBmcmFnbWVudCBpZGVu
dGlmaWVyIGZyb20gZmlyc3QgcmVkaXJlY3RlZCBVUkwuPC9wPgorPGlmcmFtZSBzcmM9InJlc291
cmNlcy9yZWRpcmVjdC10by1mcmFnbWVudDIucGhwIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2E3MjA4YjUxZTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2Vz
L3JlZGlyZWN0LXByZXNlcnZlcy1mcmFnbWVudC5waHAKQEAgLTAsMCArMSw0IEBACis8P3BocAor
aGVhZGVyKCdMb2NhdGlvbjogc3VjY2Vzcy5odG1sJyk7Cis/PgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWZyYWdt
ZW50LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3QtdG8tZnJhZ21lbnQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi41MjhmMDBlZTAzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQucGhwCkBAIC0wLDAg
KzEsNCBAQAorPD9waHAKK2hlYWRlcignTG9jYXRpb246IHN1Y2Nlc3MuaHRtbCNiYXInKTsKKz8+
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZnJhZ21lbnQyLnBocApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTVkZTRjZDMxOGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRv
LWZyYWdtZW50Mi5waHAKQEAgLTAsMCArMSw0IEBACis8P3BocAoraGVhZGVyKCdMb2NhdGlvbjog
cmVkaXJlY3QtcHJlc2VydmVzLWZyYWdtZW50LnBocCNiYXInKTsKKz8+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjI0MWUxNzliZDIuLjc4NjFlYmNi
NjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjkz
MSwzICsyOTMxLDUgQEAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvaW5pdGlhbC1sZXR0ZXIt
cGFnaW5hdGlvbi1yYWlzZWQuaHRtbCBbIFNraXAgXQogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRl
bnQvaW5pdGlhbC1sZXR0ZXItcGFnaW5hdGlvbi1zdW5rZW4uaHRtbCBbIFNraXAgXQogZmFzdC9j
c3MtZ2VuZXJhdGVkLWNvbnRlbnQvaW5pdGlhbC1sZXR0ZXItcGFnaW5hdGlvbi1yYWlzZWQtcmwu
aHRtbCBbIFNraXAgXQogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvaW5pdGlhbC1sZXR0ZXIt
cGFnaW5hdGlvbi1zdW5rZW4tcmwuaHRtbCBbIFNraXAgXQorCit3ZWJraXQub3JnL2IvMTU4NDIw
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFnbWVudDIuaHRtbCBbIEZhaWx1
cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzNjc5
NzFkNDhjYy4uZmExNTlkMmY1NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xNTY4LDMgKzE1NjgsNSBAQCBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNl
cnZlZC1hcy10ZXh0LXdpdGgtdHlwZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTY4MTMy
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1l
dmVudHMuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNjk4MzggWyBSZWxl
YXNlIF0gZmFzdC93b3JrZXJzL3dvcmtlci1jbG9zZS1tb3JlLmh0bWwgWyBQYXNzIFRpbWVvdXQg
XQorCit3ZWJraXQub3JnL2IvMTU4NDIwIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10
by1mcmFnbWVudDIuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVjOGJhNmY4NGRiLi40
YzBkOTNmOWQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTAzICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0g
VVJJIEZyYWdtZW50IGlzIGxvc3QgYWZ0ZXIgcmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDA1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2Ugb2YgcmVkaXJlY3Rpb24gY2hlY2sg
aWYgdGhlIGN1cnJlbnQgcmVxdWVzdCBoYXMgYSBmcmFnbWVudCBpZGVudGlmaWVyIGFuZCBhcHBs
eSBpdCB0byB0aGUgcmVkaXJlY3Rpb24KKyAgICAgICAgb25seSB3aGVuIGl0IGRvZXNuJ3QgaGF2
ZSBhIGZyYWdtZW50IGlkZW50aWZpZXIgeWV0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmg6CisKIDIwMTctMDQtMDEgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSA8aW5wdXQgdHlwZT1m
aWxlPiBsYWJlbCBzaG91bGQgYmUgc3BlY2lmaWVkIHVzaW5nIHBsdXJhbCBydWxlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5jcHAKaW5kZXggYTg4ZTk0YWVhYWQuLjgxN2I4ZWVjZThhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNr
U291cC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0Rh
dGFUYXNrU291cChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXMKICAgICAg
ICAgfQogICAgICAgICBhcHBseUF1dGhlbnRpY2F0aW9uVG9SZXF1ZXN0KHJlcXVlc3QpOwogICAg
IH0KLSAgICBjcmVhdGVSZXF1ZXN0KHJlcXVlc3QpOworICAgIGNyZWF0ZVJlcXVlc3QoV1RGTW92
ZShyZXF1ZXN0KSk7CiB9CiAKIE5ldHdvcmtEYXRhVGFza1NvdXA6On5OZXR3b3JrRGF0YVRhc2tT
b3VwKCkKQEAgLTEwMiw5ICsxMDIsMTEgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpzZXRQ
ZW5kaW5nRG93bmxvYWRMb2NhdGlvbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb24KICAgICBt
X2FsbG93T3ZlcndyaXRlRG93bmxvYWQgPSBhbGxvd092ZXJ3cml0ZTsKIH0KIAotdm9pZCBOZXR3
b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKK3ZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0KQogewotICAgIEdVbmlxdWVQdHI8U291cFVSST4gc291cFVSSSA9IHJl
cXVlc3QuY3JlYXRlU291cFVSSSgpOworICAgIG1fY3VycmVudFJlcXVlc3QgPSBXVEZNb3ZlKHJl
cXVlc3QpOworCisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzb3VwVVJJID0gbV9jdXJyZW50UmVx
dWVzdC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgaWYgKCFzb3VwVVJJKSB7CiAgICAgICAgIHNjaGVk
dWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTExNiw5
ICsxMTgsOSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
cmVxdWVzdC51cGRhdGVTb3VwUmVxdWVzdChzb3VwUmVxdWVzdC5nZXQoKSk7CisgICAgbV9jdXJy
ZW50UmVxdWVzdC51cGRhdGVTb3VwUmVxdWVzdChzb3VwUmVxdWVzdC5nZXQoKSk7CiAKLSAgICBp
ZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CisgICAgaWYgKCFt
X2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAgICAg
ICBtX3NvdXBSZXF1ZXN0ID0gV1RGTW92ZShzb3VwUmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xMzIsNyArMTM0LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVh
dGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIAogICAgIHVuc2lnbmVk
IG1lc3NhZ2VGbGFncyA9IFNPVVBfTUVTU0FHRV9OT19SRURJUkVDVDsKIAotICAgIHJlcXVlc3Qu
dXBkYXRlU291cE1lc3NhZ2Uoc291cE1lc3NhZ2UuZ2V0KCkpOworICAgIG1fY3VycmVudFJlcXVl
c3QudXBkYXRlU291cE1lc3NhZ2Uoc291cE1lc3NhZ2UuZ2V0KCkpOwogICAgIGlmIChtX3Nob3Vs
ZENvbnRlbnRTbmlmZiA9PSBEb05vdFNuaWZmQ29udGVudCkKICAgICAgICAgc291cF9tZXNzYWdl
X2Rpc2FibGVfZmVhdHVyZShzb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9UWVBFX0NPTlRFTlRfU05J
RkZFUik7CiAgICAgaWYgKG1fdXNlci5pc0VtcHR5KCkgJiYgbV9wYXNzd29yZC5pc0VtcHR5KCkg
JiYgbV9zdG9yZWRDcmVkZW50aWFscyA9PSBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpIHsK
QEAgLTE1OCw3ICsxNjAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIHNvdXBfbWVzc2FnZV9zZXRf
ZmxhZ3Moc291cE1lc3NhZ2UuZ2V0KCksIHN0YXRpY19jYXN0PFNvdXBNZXNzYWdlRmxhZ3M+KHNv
dXBfbWVzc2FnZV9nZXRfZmxhZ3Moc291cE1lc3NhZ2UuZ2V0KCkpIHwgbWVzc2FnZUZsYWdzKSk7
CiAKICNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNDMsIDEpCi0gICAgc291cF9tZXNzYWdlX3Nl
dF9wcmlvcml0eShzb3VwTWVzc2FnZS5nZXQoKSwgdG9Tb3VwTWVzc2FnZVByaW9yaXR5KHJlcXVl
c3QucHJpb3JpdHkoKSkpOworICAgIHNvdXBfbWVzc2FnZV9zZXRfcHJpb3JpdHkoc291cE1lc3Nh
Z2UuZ2V0KCksIHRvU291cE1lc3NhZ2VQcmlvcml0eShtX2N1cnJlbnRSZXF1ZXN0LnByaW9yaXR5
KCkpKTsKICNlbmRpZgogCiAgICAgbV9zb3VwUmVxdWVzdCA9IFdURk1vdmUoc291cFJlcXVlc3Qp
OwpAQCAtNjM2LDE0ICs2MzgsMTcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51
ZUhUVFBSZWRpcmVjdGlvbigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCA9IG1fZmlyc3RSZXF1ZXN0OwotICAgIHJlcXVlc3Quc2V0VVJMKFVS
TChtX3Jlc3BvbnNlLnVybCgpLCBtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVy
TmFtZTo6TG9jYXRpb24pKSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBtX2N1cnJl
bnRSZXF1ZXN0OworICAgIFVSTCByZWRpcmVjdGVkVVJMID0gVVJMKG1fcmVzcG9uc2UudXJsKCks
IG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbikpOwor
ICAgIGlmICghcmVkaXJlY3RlZFVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSAmJiByZXF1ZXN0
LnVybCgpLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICByZWRpcmVjdGVkVVJMLnNl
dEZyYWdtZW50SWRlbnRpZmllcihyZXF1ZXN0LnVybCgpLmZyYWdtZW50SWRlbnRpZmllcigpKTsK
KyAgICByZXF1ZXN0LnNldFVSTChyZWRpcmVjdGVkVVJMKTsKIAogICAgIC8vIFNob3VsZCBub3Qg
c2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5v
bi1zZWN1cmUgb25lLgogICAgIGlmIChtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QgJiYgIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2Nv
bElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQogICAgICAgICByZXF1ZXN0LmNs
ZWFySFRUUFJlZmVycmVyKCk7CiAKLSAgICBib29sIGlzQ3Jvc3NPcmlnaW4gPSAhcHJvdG9jb2xI
b3N0QW5kUG9ydEFyZUVxdWFsKG1fZmlyc3RSZXF1ZXN0LnVybCgpLCByZXF1ZXN0LnVybCgpKTsK
KyAgICBib29sIGlzQ3Jvc3NPcmlnaW4gPSAhcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKG1f
Y3VycmVudFJlcXVlc3QudXJsKCksIHJlcXVlc3QudXJsKCkpOwogICAgIGlmICghZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVxdWVzdC5odHRwTWV0aG9kKCksICJnZXQiKSkgewogICAg
ICAgICAvLyBDaGFuZ2UgbmV3UmVxdWVzdCBtZXRob2QgdG8gR0VUIGlmIGNoYW5nZSB3YXMgbWFk
ZSBkdXJpbmcgYSBwcmV2aW91cyByZWRpcmVjdGlvbiBvciBpZiBjdXJyZW50IHJlZGlyZWN0aW9u
IHNheXMgc28uCiAgICAgICAgIGlmIChtX3NvdXBNZXNzYWdlLT5tZXRob2QgPT0gU09VUF9NRVRI
T0RfR0VUIHx8ICFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCBzaG91
bGRSZWRpcmVjdEFzR0VUKG1fc291cE1lc3NhZ2UuZ2V0KCksIGlzQ3Jvc3NPcmlnaW4pKSB7CkBA
IC02ODksNyArNjk0LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBS
ZWRpcmVjdGlvbigpCiAjZW5kaWYKICAgICAgICAgICAgIGFwcGx5QXV0aGVudGljYXRpb25Ub1Jl
cXVlc3QocmVxdWVzdCk7CiAgICAgICAgIH0KLSAgICAgICAgY3JlYXRlUmVxdWVzdChyZXF1ZXN0
KTsKKyAgICAgICAgY3JlYXRlUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgaWYg
KG1fc291cFJlcXVlc3QgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6U3VzcGVuZGVkKSB7CiAgICAgICAg
ICAgICBtX3N0YXRlID0gU3RhdGU6OlN1c3BlbmRlZDsKICAgICAgICAgICAgIHJlc3VtZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtE
YXRhVGFza1NvdXAuaAppbmRleCA3MWJkNzM1YTQwZi4uZjgyYjZhMjU1NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNr
U291cC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFRpbWVvdXQo
KTsKICAgICB2b2lkIHN0b3BUaW1lb3V0KCk7CiAKLSAgICB2b2lkIGNyZWF0ZVJlcXVlc3QoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBjcmVhdGVSZXF1ZXN0KFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKICAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOwogICAg
IHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soU291cFJlcXVlc3QqLCBHQXN5bmNSZXN1
bHQqLCBOZXR3b3JrRGF0YVRhc2tTb3VwKik7CiAgICAgdm9pZCBkaWRTZW5kUmVxdWVzdChHUmVm
UHRyPEdJbnB1dFN0cmVhbT4mJik7CkBAIC0xMjksNiArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBH
UmVmUHRyPEdBc3luY1Jlc3VsdD4gbV9wZW5kaW5nUmVzdWx0OwogICAgIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZSBtX3Byb3RlY3Rpb25TcGFjZUZvclBlcnNpc3RlbnRTdG9yYWdlOwogICAgIFdl
YkNvcmU6OkNyZWRlbnRpYWwgbV9jcmVkZW50aWFsRm9yUGVyc2lzdGVudFN0b3JhZ2U7CisgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fY3VycmVudFJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIFZlY3RvcjxjaGFyPiBtX3JlYWRCdWZm
ZXI7CiAgICAgdW5zaWduZWQgbV9yZWRpcmVjdENvdW50IHsgMCB9Owo=
</data>
<flag name="review"
          id="327442"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>