<?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>85173</bug_id>
          
          <creation_ts>2012-04-30 03:20:32 -0700</creation_ts>
          <short_desc>[EFL] Frame load callbacks output is missing for redirections</short_desc>
          <delta_ts>2012-05-04 10:22:21 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85072</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>612527</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-30 03:20:32 -0700</bug_when>
    <thetext>Several tests rely on EFL&apos;s DRT properly printing frame load callbacks output for redirections such as &quot;didReceiveServerRedirectForProvisionalLoadForFrame&quot; and &quot;willPerformClientRedirectToURL&quot;:
 http/tests/loading/307-after-303-after-post.html = TEXT
 http/tests/loading/redirect-methods.html = TEXT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612528</commentid>
    <comment_count>1</comment_count>
      <attachid>139429</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-30 03:29:34 -0700</bug_when>
    <thetext>Created attachment 139429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615023</commentid>
    <comment_count>2</comment_count>
      <attachid>139958</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-02 23:02:17 -0700</bug_when>
    <thetext>Created attachment 139958
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615296</commentid>
    <comment_count>3</comment_count>
      <attachid>139958</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-03 08:27:06 -0700</bug_when>
    <thetext>Comment on attachment 139958
Patch

Makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616018</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-04 00:49:43 -0700</bug_when>
    <thetext>*** Bug 84573 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616019</commentid>
    <comment_count>5</comment_count>
      <attachid>140174</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-04 00:52:55 -0700</bug_when>
    <thetext>Created attachment 140174
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616030</commentid>
    <comment_count>6</comment_count>
      <attachid>140174</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-04 01:15:43 -0700</bug_when>
    <thetext>Comment on attachment 140174
Patch

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

&gt; Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp:570
&gt; +    const char* url = static_cast&lt;const char*&gt;(eventInfo);

Is it better to use const_cast&lt;char*&gt; instead of static_cast&lt;const char*&gt; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616135</commentid>
    <comment_count>7</comment_count>
      <attachid>140174</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-04 06:17:09 -0700</bug_when>
    <thetext>Comment on attachment 140174
Patch

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

&gt;&gt; Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp:570
&gt;&gt; +    const char* url = static_cast&lt;const char*&gt;(eventInfo);
&gt; 
&gt; Is it better to use const_cast&lt;char*&gt; instead of static_cast&lt;const char*&gt; ?

I don&apos;t see much value in doing that -- by using a const char* here we also indicate the value is not supposed to be changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616204</commentid>
    <comment_count>8</comment_count>
      <attachid>140174</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-04 07:44:28 -0700</bug_when>
    <thetext>Comment on attachment 140174
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616208</commentid>
    <comment_count>9</comment_count>
      <attachid>140174</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-04 07:46:02 -0700</bug_when>
    <thetext>Comment on attachment 140174
Patch

Rejecting attachment 140174 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
k/ewk_private.h
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp
Hunk #2 succeeded at 499 (offset 1 line).
Hunk #3 succeeded at 558 (offset 1 line).
Hunk #4 succeeded at 589 (offset 1 line).
patching file Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Antonio Go...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12565151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616280</commentid>
    <comment_count>10</comment_count>
      <attachid>140174</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-04 09:14:10 -0700</bug_when>
    <thetext>Comment on attachment 140174
Patch

Rejecting attachment 140174 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
k/ewk_private.h
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp
Hunk #2 succeeded at 499 (offset 1 line).
Hunk #3 succeeded at 558 (offset 1 line).
Hunk #4 succeeded at 589 (offset 1 line).
patching file Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Antonio Go...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12565177</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616284</commentid>
    <comment_count>11</comment_count>
      <attachid>140248</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-05-04 09:17:24 -0700</bug_when>
    <thetext>Created attachment 140248
Patch for landing

Rebasing the patch for landing since the commit queue seems to have trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616366</commentid>
    <comment_count>12</comment_count>
      <attachid>140248</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-04 10:22:16 -0700</bug_when>
    <thetext>Comment on attachment 140248
Patch for landing

Clearing flags on attachment: 140248

Committed r116119: &lt;http://trac.webkit.org/changeset/116119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616368</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-04 10:22:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139429</attachid>
            <date>2012-04-30 03:29:34 -0700</date>
            <delta_ts>2012-05-02 23:02:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>85173_redirection_callbacks.patch</filename>
            <type>text/plain</type>
            <size>15152</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTU3NDViLi4zODBhM2U0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDQt
MzAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVk
aXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgbm93IHRoYXQgRUZMJ3MgRHVtcFJlbmRlclRy
ZWUgaXMKKyAgICAgICAgY29ycmVjdGx5IHByaW50aW5nIGZyYW1lIGxvYWQgY2FsbGJhY2tzIGlu
Zm9ybWF0aW9uIGluIGNhc2Ugb2YKKyAgICAgICAgcmVkaXJlY3Rpb25zLgorCisgICAgICAgICog
cGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dDoKKwogMjAxMi0wNC0zMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWRkIE1hYyBleHBlY3RhdGlvbiBmb3IgZmFzdC9kb20vV2luZG93L3dp
bmRvdy1sb29rdXAtcHJlY2VkZW5jZS5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRl
eCAzNGY0Y2QyLi41ZmEzZjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtNjI5LDkg
KzYyOSw2IEBAIGh0dHAvdGVzdHMvbG9hZGluZy9vbmxvYWQtdnMtaW1tZWRpYXRlLXJlZnJlc2gu
cGwKICMgQlVHOiBNaXNzaW5nIERSVCBBUEkuCiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1z
bG93LWxvYWRpbmcucGhwCiAKLSMgQlVHOiBNaXNzaW5nIHJlc291cmNlIGxvYWQgY2FsbGJhY2sg
YWJpbGl0eSBpbiBEUlQKLWh0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwK
LQogIyBSZXF1aXJlcyB3aWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QgKyB3aWxs
U2VuZFJlcXVlc3QgKyBkaWRGaW5pc2hMb2FkaW5nCiBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5k
LXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9m
YXZpY29uLWxvYWRzLXdpdGgtaWNvbi1sb2FkaW5nLW92ZXJyaWRlLmh0bWwKQEAgLTk0MywxMCAr
OTQwLDYgQEAgaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1yZXBhcmVudGluZy1pZC1jb2xsaXNpb24u
aHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExMjIKIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LTMwNy1yZXNwb25zZS5odG1sCiAKLSMgTmVlZHMgdG8g
bWFrZSBzdXJlIHRoZSByZWRpcmVjdC1jaGFpbiBzY2VuYXJpbyBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0MTAgd29ya3MKLSMgU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTMwMAotaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1h
ZnRlci0zMDMtYWZ0ZXItcG9zdC5odG1sCi0KICMgUHJvYmFibHkgcmVsYXRlZCB0byBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc2MzcKIGh0dHAvdGVzdHMvbG9hZGlu
Zy9iYXNpYy1hdXRoLXJlc2VuZC13cm9uZy1jcmVkZW50aWFscy5odG1sCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDI4Mjc5OGUuLjBm
Mjk4MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dApAQCAtMjg3LDMgKzI4Nyw2IEBAIEJVR1dLODQ3NzUgOiBpZXRlc3RjZW50ZXIvY3NzMy9t
dWx0aWNvbHVtbi9jb2x1bW4td2lkdGgtYXBwbGllcy10by0wMTMuaHRtID0gSU1BCiBCVUdXSzg0
Nzc2IDogaWV0ZXN0Y2VudGVyL2NzczMvbXVsdGljb2x1bW4vY29sdW1uLXdpZHRoLWFwcGxpZXMt
dG8tMDE0Lmh0bSA9IElNQUdFCiBCVUdXSzg0Nzc3IDogaWV0ZXN0Y2VudGVyL2NzczMvbXVsdGlj
b2x1bW4vY29sdW1uLXdpZHRoLWFwcGxpZXMtdG8tMDE1Lmh0bSA9IElNQUdFCiBCVUdXSzg0Nzc4
IDogaWV0ZXN0Y2VudGVyL2NzczMvbXVsdGljb2x1bW4vY29sdW1uLXdpZHRoLW5lZ2F0aXZlLTAw
MS5odG0gPSBJTUFHRQorCitCVUdXSzg1MDcyIDogaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRl
ci0zMDMtYWZ0ZXItcG9zdC5odG1sID0gVEVYVAorQlVHV0s4NTA3MiA6IGh0dHAvdGVzdHMvbG9h
ZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNDA1
ZjJjZS4uNGU2MTQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA0
LTMwICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gRnJhbWUgbG9hZCBjYWxsYmFja3Mgb3V0cHV0IGlzIG1pc3NpbmcgZm9yIHJl
ZGlyZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYSBmZXcgcmVkaXJlY3Rpb24tcmVsYXRlZCBzaWduYWxzIG9uIHRoZSBld2tfZnJhbWUg
c28gdGhhdCBFRkwncworICAgICAgICBEdW1wUmVuZGVyVHJlZSBjYW4gcHJpbnQgdGhlIGV4cGVj
dGVkIG91dHB1dCB3aGVuCisgICAgICAgIExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpIHJldHVybnMgdHJ1ZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50RWZsOjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAg
ICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX3JlZGlyZWN0X3Byb3Zp
c2lvbmFsX2xvYWQpOgorICAgICAgICAoZXdrX2ZyYW1lX3JlZGlyZWN0X3JlcXVlc3RlZCk6Cisg
ICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgor
CiAyMDEyLTA0LTI3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gUmVzb3VyY2VFcnJvciBkb21haW4gbmVlZHMgdG8gYmUgcHJv
cGVybHkgc2V0IGluIEZyYW1lTG9hZGVyQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggMTA4
MjExMi4uYzlmYTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMTk3LDYgKzE5Nyw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIHVuc2lnCiAgICAgICAgIHJlZGlyZWN0VXJsID0gY29yZVJlc3BvbnNl
LnVybCgpLnN0cmluZygpLnV0ZjgoKTsKICAgICAgICAgcmVzcG9uc2VCdWZmZXIudXJsID0gcmVk
aXJlY3RVcmwuZGF0YSgpOwogICAgICAgICByZXNwb25zZUJ1ZmZlci5zdGF0dXNfY29kZSA9IGNv
cmVSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpOworICAgICAgICByZXNwb25zZUJ1ZmZlci5pZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKICAgICAgICAgcmVkaXJlY3RSZXNwb25zZSA9ICZyZXNwb25z
ZUJ1ZmZlcjsKICAgICB9CiAKQEAgLTI2Miw3ICsyNjMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IGNvcmVSZXNwb25zZSkKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVj
ZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKQogewogICAgIC8vIFVw
ZGF0ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFncyAtIHNvbWUgYXJlIG9ubHkg
c2V0CiAgICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4KQEAgLTI3MCw3ICsyNzEsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShE
b2N1bWVudExvYWRlciogbG9hZGVyLCB1bgogCiAgICAgbV9yZXNwb25zZSA9IGNvcmVSZXNwb25z
ZTsKIAotICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSByZXNwb25zZSA9IHsgMCwgY29y
ZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgfTsKKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVz
cG9uc2UgcmVzcG9uc2UgPSB7IDAsIGNvcmVSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCBpZGVu
dGlmaWVyIH07CiAgICAgQ1N0cmluZyB1cmwgPSBjb3JlUmVzcG9uc2UudXJsKCkuc3RyaW5nKCku
dXRmOCgpOwogICAgIHJlc3BvbnNlLnVybCA9IHVybC5kYXRhKCk7CiAKQEAgLTU2OSw3ICs1NzAs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2
ZW50cygpCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIGV3a19mcmFtZV9yZWRpcmVjdF9wcm92aXNpb25hbF9sb2FkKG1fZnJhbWUpOwogfQog
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGly
ZWN0KCkKQEAgLTU3Nyw5ICs1NzgsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkKICAgICBld2tfZnJhbWVfcmVkaXJlY3RfY2Fu
Y2VsbGVkKG1fZnJhbWUpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRj
aFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgS1VSTCYsIGRvdWJsZSwgZG91YmxlKQor
dm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0KGNvbnN0IEtVUkwmIHVybCwgZG91YmxlLCBkb3VibGUpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBld2tfZnJhbWVfcmVkaXJlY3RfcmVxdWVzdGVkKG1fZnJhbWUsIHVybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Zy
YW1lLmNwcAppbmRleCA2MDZmMDY4Li5jOGE3YjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Zy
YW1lLmNwcApAQCAtMTIyNiw2ICsxMjI2LDMzIEBAIHZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X2Nh
bmNlbGxlZChFdmFzX09iamVjdCogZXdrRnJhbWUpCiAKIC8qKgogICogQGludGVybmFsCisgKiBS
ZXBvcnRzIHJlY2VpcHQgb2Ygc2VydmVyIHJlZGlyZWN0IGZvciBwcm92aXNpb25hbCBsb2FkLgor
ICoKKyAqIEBwYXJhbSBld2tGcmFtZSBGcmFtZS4KKyAqCisgKiBFbWl0cyBzaWduYWw6ICJyZWRp
cmVjdCxsb2FkLHByb3Zpc2lvbmFsIgorICovCit2b2lkIGV3a19mcmFtZV9yZWRpcmVjdF9wcm92
aXNpb25hbF9sb2FkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK3sKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAicmVkaXJlY3QsbG9hZCxwcm92aXNpb25hbCIs
IDApOworfQorCisvKioKKyAqIEBpbnRlcm5hbAorICogUmVwb3J0cyB0aGF0IGEgY2xpZW50IHJl
ZGlyZWN0IHdpbGwgYmUgcGVyZm9ybWVkLgorICoKKyAqIEBwYXJhbSBld2tGcmFtZSBGcmFtZS4K
KyAqIEBwYXJhbSB1cmwgUmVkaXJlY3Rpb24gVVJMLgorICoKKyAqIEVtaXRzIHNpZ25hbDogInJl
ZGlyZWN0LHJlcXVlc3RlZCIKKyAqLwordm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfcmVxdWVzdGVk
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdXJsKQoreworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrRnJhbWUsICJyZWRpcmVjdCxyZXF1ZXN0ZWQiLCAo
dm9pZCopdXJsKTsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKICAqIFJlcG9ydHMgYSByZXNvdXJj
ZSB3aWxsIGJlIHJlcXVlc3RlZC4gVXNlciBtYXkgb3ZlcnJpZGUgYmVoYXZpb3Igb2Ygd2Via2l0
IGJ5CiAgKiBjaGFuZ2luZyB2YWx1ZXMgaW4gQHBhcmFtIHJlcXVlc3QuCiAgKgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5oCmluZGV4IDZkYTEzNmEuLmJjODVhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2ZyYW1lLmgKQEAgLTYxLDYgKzYxLDggQEAKICAqICAtICJtaXhlZGNvbnRlbnQscnVuIiwg
dm9pZDogZnJhbWUgaGFzIGxvYWRlZCBhbmQgcnVuIG1peGVkIGNvbnRlbnQuCiAgKiAgLSAibmF2
aWdhdGlvbixmaXJzdCIsIHZvaWQ6IGZpcnN0IG5hdmlnYXRpb24gd2FzIG9jY3VycmVkLgogICog
IC0gInJlZGlyZWN0LGNhbmNlbGxlZCIsIHZvaWQ6IGNsaWVudCByZWRpcmVjdCB3YXMgY2FuY2Vs
bGVkLgorICogIC0gInJlZGlyZWN0LGxvYWQscHJvdmlzaW9uYWwiLCB2b2lkOiByZWNlaXZlZCBz
ZXJ2ZXIgcmVkaXJlY3QgZm9yIHByb3Zpc2lvbmFsIGxvYWQuCisgKiAgLSAicmVkaXJlY3QscmVx
dWVzdGVkIiwgY29uc3QgY2hhcio6IHVybCBvZiB0aGUgY2xpZW50IHJlZGlyZWN0IHRoYXQgd2ls
bCBiZSBwZXJmb3JtZWQuCiAgKiAgLSAicmVzb3VyY2UscmVxdWVzdCxuZXciLCBFd2tfRnJhbWVf
UmVzb3VyY2VfUmVxdWVzdCo6IHJlcG9ydHMgdGhhdAogICogICAgdGhlcmUncyBhIG5ldyByZXNv
dXJjZSByZXF1ZXN0LgogICogIC0gInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBFd2tfRnJh
bWVfUmVzb3VyY2VfTWVzc2FnZXMqOiBhIHJlc291cmNlIHdpbGwgYmUgcmVxdWVzdGVkLgpAQCAt
MTM1LDYgKzEzNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9u
c2UgRXdrX0ZyYW1lX1Jlc291cmNlX1Jlc3BvbnNlOwogc3RydWN0IF9Fd2tfRnJhbWVfUmVzb3Vy
Y2VfUmVzcG9uc2UgewogICAgIGNvbnN0IGNoYXIgKnVybDsgLyoqPCB1cmwgb2YgdGhlIHJlc291
cmNlICovCiAgICAgaW50IHN0YXR1c19jb2RlOyAvKio8IGh0dHAgc3RhdHVzIGNvZGUgKi8KKyAg
ICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXI7IC8qKjwgaWRlbnRpZmllciBvZiByZXNvdXJjZSAq
LwogfTsKIAogLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfRnJhbWVfUmVzb3VyY2Vf
TWVzc2FnZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IGI1YzUxYzAuLjI2
ZDQ0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0yMjYsNiArMjI2LDgg
QEAgdm9pZCBld2tfZnJhbWVfbG9hZF9lcnJvcihFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0
IGNoYXIqIGVycm9yRG9tYWluLCBpbnQgZXIKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfcHJvZ3Jlc3Nf
Y2hhbmdlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogCiB2b2lkIGV3a19mcmFtZV9yZWRpcmVj
dF9jYW5jZWxsZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKK3ZvaWQgZXdrX2ZyYW1lX3JlZGly
ZWN0X3Byb3Zpc2lvbmFsX2xvYWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKK3ZvaWQgZXdrX2Zy
YW1lX3JlZGlyZWN0X3JlcXVlc3RlZChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIq
IHVybCk7CiB2b2lkIGV3a19mcmFtZV9yZXF1ZXN0X3dpbGxfc2VuZChFdmFzX09iamVjdCogZXdr
RnJhbWUsIEV3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyogbWVzc2FnZXMpOwogdm9pZCBld2tf
ZnJhbWVfcmVxdWVzdF9hc3NpZ25faWRlbnRpZmllcihFdmFzX09iamVjdCogZXdrRnJhbWUsIGNv
bnN0IEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KiByZXF1ZXN0KTsKIHZvaWQgZXdrX2ZyYW1l
X3Jlc3BvbnNlX3JlY2VpdmVkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ZyYW1lX1Jlc291
cmNlX1Jlc3BvbnNlKiByZXNwb25zZSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMmU2OTk0OC4uYjAyNTkzOCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA0
LTMwICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gRnJhbWUgbG9hZCBjYWxsYmFja3Mgb3V0cHV0IGlzIG1pc3NpbmcgZm9yIHJl
ZGlyZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDYXRjaCB0aGUgbmV3IGV3a19mcmFtZSBzaWduYWxzIHRvIHByaW50IHRoZSBleHBlY3RlZCBv
dXRwdXQgaW4gY2FzZQorICAgICAgICBvZiByZWRpcmVjdGlvbnMsIHdoZW4gTGF5b3V0VGVzdENv
bnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgcmV0dXJucyB0cnVl
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNw
cDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGVWaWV3KToKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUNyZWF0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uRnJhbWVSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVJlZGlyZWN0UmVxdWVzdGVkKToKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvblJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVDaHJvbWUpOgorCiAyMDEyLTA0LTI5ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogT24gTGlvbiwgcnVuLXdlYmtpdC10ZXN0
cyBjaGFuZ2VzIHRoZSBkaXNwbGF5IGNvbG9yIHByb2ZpbGUgZXZlbiB3aGVuIG5vdCBydW5uaW5n
IHBpeGVsIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmNwcAppbmRleCA2MzAwNDEwLi42MjA5ODA2IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTExMiw2ICsxMTIs
OCBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcoKSBjb25z
dAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLGZp
bmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hlZCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsZXJyb3IiLCBvbkZyYW1lTG9hZEVycm9yLCAw
KTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAicmVkaXJl
Y3QsY2FuY2VsbGVkIiwgb25GcmFtZVJlZGlyZWN0Q2FuY2VsbGVkLCAwKTsKKyAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAicmVkaXJlY3QsbG9hZCxwcm92aXNp
b25hbCIsIG9uRnJhbWVSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCwgMCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgInJlZGlyZWN0LHJlcXVlc3RlZCIs
IG9uRnJhbWVSZWRpcmVjdFJlcXVlc3RlZCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKG1haW5GcmFtZSwgInhzcyxkZXRlY3RlZCIsIG9uRGlkRGV0ZWN0WFNTLCAwKTsK
IAogICAgIHJldHVybiB2aWV3OwpAQCAtNDI5LDcgKzQzMSw3IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mCiAKICAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzKCkpCiAgICAgICAgIHByaW50ZigiJXMgLSB3aWxsU2VuZFJlcXVl
c3QgJXMgcmVkaXJlY3RSZXNwb25zZSAlc1xuIiwKLSAgICAgICAgICAgICAgIHBhdGhTdWl0YWJs
ZUZvclRlc3RSZXN1bHQobWVzc2FnZXMtPnJlcXVlc3QtPnVybCkuZGF0YSgpLAorICAgICAgICAg
ICAgICAgbV9kdW1wQXNzaWduZWRVcmxzLmNvbnRhaW5zKG1lc3NhZ2VzLT5yZXF1ZXN0LT5pZGVu
dGlmaWVyKSA/IG1fZHVtcEFzc2lnbmVkVXJscy5nZXQobWVzc2FnZXMtPnJlcXVlc3QtPmlkZW50
aWZpZXIpLmRhdGEoKSA6ICI8dW5rbm93bj4iLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQobWVzc2FnZXMtPnJlcXVlc3QpLmRhdGEoKSwKICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KG1lc3NhZ2VzLT5yZWRpcmVj
dF9yZXNwb25zZSkuZGF0YSgpKTsKIApAQCAtNDgyLDYgKzQ4NCw4IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVDaHJvbWU6Om9uRnJhbWVDcmVhdGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mbykKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2Fk
LGZpbmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hlZCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxlcnJvciIsIG9uRnJhbWVMb2FkRXJyb3IsIDAp
OwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgInJlZGlyZWN0LGNh
bmNlbGxlZCIsIG9uRnJhbWVSZWRpcmVjdENhbmNlbGxlZCwgMCk7CisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAicmVkaXJlY3QsbG9hZCxwcm92aXNpb25hbCIsIG9u
RnJhbWVSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAicmVkaXJlY3QscmVxdWVzdGVkIiwgb25GcmFtZVJlZGly
ZWN0UmVxdWVzdGVkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJh
bWUsICJ4c3MsZGV0ZWN0ZWQiLCBvbkRpZERldGVjdFhTUywgMCk7CiB9CiAKQEAgLTUzOSw2ICs1
NDMsMjQgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVJlZGlyZWN0Q2FuY2Vs
bGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHYKICAgICB9CiB9CiAKK3ZvaWQgRHVtcFJl
bmRlclRyZWVDaHJvbWU6Om9uRnJhbWVSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCh2b2lkKiwg
RXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRl
c3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3Qg
U3RyaW5nIGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJh
bWVOYW1lKGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRh
KCkpOworICAgIH0KK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVJlZGly
ZWN0UmVxdWVzdGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqIGV2ZW50SW5mbykK
K3sKKyAgICBjb25zdCBjaGFyKiB1cmwgPSBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZXZlbnRJ
bmZvKTsKKworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAg
ICAgcHJpbnRmKCIlcyAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogJXMgXG4iLCBm
cmFtZU5hbWUudXRmOCgpLmRhdGEoKSwgcGF0aFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh1cmwpLmRh
dGEoKSk7CisgICAgfQorfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkRpZERldGVj
dFhTUyh2b2lkKiwgRXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQogewogICAgIGlmICghZG9uZSAm
JiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKQEAgLTU1
Miw3ICs1NzQsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvblJlc3BvbnNlUmVjZWl2
ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbgogICAgIGlmICghZG9uZSAmJiBn
TGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgewogICAg
ICAgICBDU3RyaW5nIHJlc3BvbnNlRGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQocmVzcG9uc2UpKTsKICAgICAgICAgcHJpbnRmKCIlcyAtIGRpZFJlY2VpdmVSZXNw
b25zZSAlc1xuIiwKLSAgICAgICAgICAgICAgIHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQocmVz
cG9uc2UtPnVybCkuZGF0YSgpLAorICAgICAgICAgICAgICAgbV9kdW1wQXNzaWduZWRVcmxzLmNv
bnRhaW5zKHJlc3BvbnNlLT5pZGVudGlmaWVyKSA/IG1fZHVtcEFzc2lnbmVkVXJscy5nZXQocmVz
cG9uc2UtPmlkZW50aWZpZXIpLmRhdGEoKSA6ICI8dW5rbm93bj4iLAogICAgICAgICAgICAgICAg
cmVzcG9uc2VEZXNjcmlwdGlvbi5kYXRhKCkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKaW5kZXggMjQ1MGU3Yi4uY2JhM2Ri
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmgKQEAgLTk2LDYgKzk2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvbkZyYW1lTG9h
ZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIAogICAgIHN0YXRpYyB2b2lk
IG9uRnJhbWVSZWRpcmVjdENhbmNlbGxlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7Cisg
ICAgc3RhdGljIHZvaWQgb25GcmFtZVJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lUmVkaXJlY3RSZXF1
ZXN0ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwogCiAgICAgc3RhdGljIHZvaWQgb25G
cmFtZUxvYWRFcnJvcih2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiAgICAgc3RhdGljIHZv
aWQgb25EaWREZXRlY3RYU1Modm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139958</attachid>
            <date>2012-05-02 23:02:17 -0700</date>
            <delta_ts>2012-05-04 00:52:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>85173_redirection_callbacks.patch</filename>
            <type>text/plain</type>
            <size>14945</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWEyYTgwLi40Njg2NGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUt
MDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVk
aXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgbm93IHRoYXQgRUZMJ3MgRHVtcFJlbmRlclRy
ZWUgaXMKKyAgICAgICAgY29ycmVjdGx5IHByaW50aW5nIGZyYW1lIGxvYWQgY2FsbGJhY2tzIGlu
Zm9ybWF0aW9uIGluIGNhc2Ugb2YKKyAgICAgICAgcmVkaXJlY3Rpb25zLgorCisgICAgICAgICog
cGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dDoKKwogMjAxMi0wNS0wMiAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBBZGp1c3RlZCBleHBlY3Rh
dGlvbnMgZm9yIHNsb3cgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IGY5OTU3
M2UuLjIwYTA1OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC01ODQsOSArNTg0LDYg
QEAgaHR0cC90ZXN0cy9sb2FkaW5nL29ubG9hZC12cy1pbW1lZGlhdGUtcmVmcmVzaC5wbAogIyBC
VUc6IE1pc3NpbmcgRFJUIEFQSS4KIGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLXNsb3ctbG9h
ZGluZy5waHAKIAotIyBCVUc6IE1pc3NpbmcgcmVzb3VyY2UgbG9hZCBjYWxsYmFjayBhYmlsaXR5
IGluIERSVAotaHR0cC90ZXN0cy9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbAotCiAjIFJl
cXVpcmVzIHdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCArIHdpbGxTZW5kUmVx
dWVzdCArIGRpZEZpbmlzaExvYWRpbmcKIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVz
dC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbAogaHR0cC90ZXN0cy9taXNjL2Zhdmljb24t
bG9hZHMtd2l0aC1pY29uLWxvYWRpbmctb3ZlcnJpZGUuaHRtbApAQCAtODk4LDEwICs4OTUsNiBA
QCBodHRwL3Rlc3RzL21pc2MvaWZyYW1lLXJlcGFyZW50aW5nLWlkLWNvbGxpc2lvbi5odG1sCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTEyMgogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Bvc3QtMzA3LXJlc3BvbnNlLmh0bWwKIAotIyBOZWVkcyB0byBtYWtlIHN1
cmUgdGhlIHJlZGlyZWN0LWNoYWluIHNjZW5hcmlvIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMTQxMCB3b3JrcwotIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM1MzAwCi1odHRwL3Rlc3RzL2xvYWRpbmcvMzA3LWFmdGVyLTMw
My1hZnRlci1wb3N0Lmh0bWwKLQogIyBQcm9iYWJseSByZWxhdGVkIHRvIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzYzNwogaHR0cC90ZXN0cy9sb2FkaW5nL2Jhc2lj
LWF1dGgtcmVzZW5kLXdyb25nLWNyZWRlbnRpYWxzLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggZGUyZDE2Ny4uYTAxNTQxMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0yMDgsMyArMjA4LDYgQEAgQlVHV0s4NDcxMCA6IGZhc3QvZm9ybXMvdGV4dGFyZWEtdHlwZS1z
cGFjZXMuaHRtbCA9IFRFWFQKIC8vIFJlcXVpcmVzIFdlYlAgc3VwcG9ydC4KIEJVR1dLRUZMIFNL
SVAgOiBmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAuaHRtbCA9IEZBSUwKIEJVR1dL
RUZMIFNLSVAgOiBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29kaW5nLmh0bWwgPSBGQUlMCisK
K0JVR1dLODUwNzIgOiBodHRwL3Rlc3RzL2xvYWRpbmcvMzA3LWFmdGVyLTMwMy1hZnRlci1wb3N0
Lmh0bWwgPSBURVhUCitCVUdXSzg1MDcyIDogaHR0cC90ZXN0cy9sb2FkaW5nL3JlZGlyZWN0LW1l
dGhvZHMuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwYjgxOWEzLi4xNGQ4N2VjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUtMDMgIENocmlzdG9waGUg
RHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBGcmFt
ZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVkaXJlY3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGZldyByZWRp
cmVjdGlvbi1yZWxhdGVkIHNpZ25hbHMgb24gdGhlIGV3a19mcmFtZSBzbyB0aGF0IEVGTCdzCisg
ICAgICAgIER1bXBSZW5kZXJUcmVlIGNhbiBwcmludCB0aGUgZXhwZWN0ZWQgb3V0cHV0IHdoZW4K
KyAgICAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkg
cmV0dXJucyB0cnVlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRp
c3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgICogZXdrL2V3a19mcmFt
ZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfcmVkaXJlY3RfcHJvdmlzaW9uYWxfbG9hZCk6Cisg
ICAgICAgIChld2tfZnJhbWVfcmVkaXJlY3RfcmVxdWVzdGVkKToKKyAgICAgICAgKiBld2svZXdr
X2ZyYW1lLmg6CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6CisKIDIwMTItMDQtMTggIEpv
biBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkgc2hvdWxkIGJlIGdpdmVuIG1v
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCAxMDgyMTEyLi5jOWZhMWQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwCkBAIC0xOTcsNiArMTk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWcKICAgICAg
ICAgcmVkaXJlY3RVcmwgPSBjb3JlUmVzcG9uc2UudXJsKCkuc3RyaW5nKCkudXRmOCgpOwogICAg
ICAgICByZXNwb25zZUJ1ZmZlci51cmwgPSByZWRpcmVjdFVybC5kYXRhKCk7CiAgICAgICAgIHJl
c3BvbnNlQnVmZmVyLnN0YXR1c19jb2RlID0gY29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7
CisgICAgICAgIHJlc3BvbnNlQnVmZmVyLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgICAg
ICByZWRpcmVjdFJlc3BvbnNlID0gJnJlc3BvbnNlQnVmZmVyOwogICAgIH0KIApAQCAtMjYyLDcg
KzI2Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmZyYW1lTG9hZGVyRGVzdHJveWVk
KCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQg
bG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKQordm9pZCBGcmFtZUxv
YWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiBjb3JlUmVzcG9uc2UpCiB7CiAgICAgLy8gVXBkYXRlIG91ciBrbm93bGVkZ2Ugb2YgcmVxdWVz
dCBzb3VwIGZsYWdzIC0gc29tZSBhcmUgb25seSBzZXQKICAgICAvLyBhZnRlciB0aGUgcmVxdWVz
dCBpcyBkb25lLgpAQCAtMjcwLDcgKzI3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuCiAK
ICAgICBtX3Jlc3BvbnNlID0gY29yZVJlc3BvbnNlOwogCi0gICAgRXdrX0ZyYW1lX1Jlc291cmNl
X1Jlc3BvbnNlIHJlc3BvbnNlID0geyAwLCBjb3JlUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSB9
OworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSByZXNwb25zZSA9IHsgMCwgY29yZVJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIGlkZW50aWZpZXIgfTsKICAgICBDU3RyaW5nIHVybCA9
IGNvcmVSZXNwb25zZS51cmwoKS5zdHJpbmcoKS51dGY4KCk7CiAgICAgcmVzcG9uc2UudXJsID0g
dXJsLmRhdGEoKTsKIApAQCAtNTY5LDcgKzU3MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRF
Zmw6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIAogdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXdrX2ZyYW1lX3JlZGlyZWN0X3By
b3Zpc2lvbmFsX2xvYWQobV9mcmFtZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKQpAQCAtNTc3LDkgKzU3OCw5IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Qo
KQogICAgIGV3a19mcmFtZV9yZWRpcmVjdF9jYW5jZWxsZWQobV9mcmFtZSk7CiB9CiAKLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBLVVJMJiwgZG91YmxlLCBkb3VibGUpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgS1VSTCYgdXJsLCBkb3VibGUs
IGRvdWJsZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV3a19mcmFtZV9yZWRpcmVj
dF9yZXF1ZXN0ZWQobV9mcmFtZSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGlu
UGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IDRhZjAwYjMuLjI0YTEy
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC0xMjI2LDYgKzEyMjYsMzMg
QEAgdm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfY2FuY2VsbGVkKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSkKIAogLyoqCiAgKiBAaW50ZXJuYWwKKyAqIFJlcG9ydHMgcmVjZWlwdCBvZiBzZXJ2ZXIgcmVk
aXJlY3QgZm9yIHByb3Zpc2lvbmFsIGxvYWQuCisgKgorICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1l
LgorICoKKyAqIEVtaXRzIHNpZ25hbDogInJlZGlyZWN0LGxvYWQscHJvdmlzaW9uYWwiCisgKi8K
K3ZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X3Byb3Zpc2lvbmFsX2xvYWQoRXZhc19PYmplY3QqIGV3
a0ZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrRnJhbWUs
ICJyZWRpcmVjdCxsb2FkLHByb3Zpc2lvbmFsIiwgMCk7Cit9CisKKy8qKgorICogQGludGVybmFs
CisgKiBSZXBvcnRzIHRoYXQgYSBjbGllbnQgcmVkaXJlY3Qgd2lsbCBiZSBwZXJmb3JtZWQuCisg
KgorICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1lLgorICogQHBhcmFtIHVybCBSZWRpcmVjdGlvbiBV
UkwuCisgKgorICogRW1pdHMgc2lnbmFsOiAicmVkaXJlY3QscmVxdWVzdGVkIgorICovCit2b2lk
IGV3a19mcmFtZV9yZWRpcmVjdF9yZXF1ZXN0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25z
dCBjaGFyKiB1cmwpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tG
cmFtZSwgInJlZGlyZWN0LHJlcXVlc3RlZCIsICh2b2lkKil1cmwpOworfQorCisvKioKKyAqIEBp
bnRlcm5hbAogICogUmVwb3J0cyBhIHJlc291cmNlIHdpbGwgYmUgcmVxdWVzdGVkLiBVc2VyIG1h
eSBvdmVycmlkZSBiZWhhdmlvciBvZiB3ZWJraXQgYnkKICAqIGNoYW5naW5nIHZhbHVlcyBpbiBA
cGFyYW0gcmVxdWVzdC4KICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKaW5kZXggNmRhMTM2
YS4uYmM4NWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaApAQCAtNjEsNiArNjEsOCBA
QAogICogIC0gIm1peGVkY29udGVudCxydW4iLCB2b2lkOiBmcmFtZSBoYXMgbG9hZGVkIGFuZCBy
dW4gbWl4ZWQgY29udGVudC4KICAqICAtICJuYXZpZ2F0aW9uLGZpcnN0Iiwgdm9pZDogZmlyc3Qg
bmF2aWdhdGlvbiB3YXMgb2NjdXJyZWQuCiAgKiAgLSAicmVkaXJlY3QsY2FuY2VsbGVkIiwgdm9p
ZDogY2xpZW50IHJlZGlyZWN0IHdhcyBjYW5jZWxsZWQuCisgKiAgLSAicmVkaXJlY3QsbG9hZCxw
cm92aXNpb25hbCIsIHZvaWQ6IHJlY2VpdmVkIHNlcnZlciByZWRpcmVjdCBmb3IgcHJvdmlzaW9u
YWwgbG9hZC4KKyAqICAtICJyZWRpcmVjdCxyZXF1ZXN0ZWQiLCBjb25zdCBjaGFyKjogdXJsIG9m
IHRoZSBjbGllbnQgcmVkaXJlY3QgdGhhdCB3aWxsIGJlIHBlcmZvcm1lZC4KICAqICAtICJyZXNv
dXJjZSxyZXF1ZXN0LG5ldyIsIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KjogcmVwb3J0cyB0
aGF0CiAgKiAgICB0aGVyZSdzIGEgbmV3IHJlc291cmNlIHJlcXVlc3QuCiAgKiAgLSAicmVzb3Vy
Y2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyo6IGEgcmVz
b3VyY2Ugd2lsbCBiZSByZXF1ZXN0ZWQuCkBAIC0xMzUsNiArMTM3LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSBFd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9u
c2U7CiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSB7CiAgICAgY29uc3QgY2hh
ciAqdXJsOyAvKio8IHVybCBvZiB0aGUgcmVzb3VyY2UgKi8KICAgICBpbnQgc3RhdHVzX2NvZGU7
IC8qKjwgaHR0cCBzdGF0dXMgY29kZSAqLworICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcjsg
LyoqPCBpZGVudGlmaWVyIG9mIHJlc291cmNlICovCiB9OwogCiAvLy8gQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgX0V3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19wcml2YXRlLmgKaW5kZXggYjVjNTFjMC4uMjZkNDQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19wcml2YXRlLmgKQEAgLTIyNiw2ICsyMjYsOCBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9y
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogZXJyb3JEb21haW4sIGludCBlcgog
dm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSk7CiAKIHZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X2NhbmNlbGxlZChFdmFzX09iamVjdCogZXdr
RnJhbWUpOwordm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfcHJvdmlzaW9uYWxfbG9hZChFdmFzX09i
amVjdCogZXdrRnJhbWUpOwordm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfcmVxdWVzdGVkKEV2YXNf
T2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdXJsKTsKIHZvaWQgZXdrX2ZyYW1lX3JlcXVl
c3Rfd2lsbF9zZW5kKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ZyYW1lX1Jlc291cmNlX01l
c3NhZ2VzKiBtZXNzYWdlcyk7CiB2b2lkIGV3a19mcmFtZV9yZXF1ZXN0X2Fzc2lnbl9pZGVudGlm
aWVyKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVl
c3QqIHJlcXVlc3QpOwogdm9pZCBld2tfZnJhbWVfcmVzcG9uc2VfcmVjZWl2ZWQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lLCBFd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9uc2UqIHJlc3BvbnNlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMjUxZjY3
Li5hYTlmZDM3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDUtMDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJp
c3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxi
YWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVkaXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE3MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhdGNoIHRoZSBuZXcgZXdrX2ZyYW1lIHNp
Z25hbHMgdG8gcHJpbnQgdGhlIGV4cGVjdGVkIG91dHB1dCBpbiBjYXNlCisgICAgICAgIG9mIHJl
ZGlyZWN0aW9ucywgd2hlbiBMYXlvdXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFtZUxvYWRDYWxs
YmFja3MoKQorICAgICAgICByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVD
aHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2ls
bFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lQ3Jl
YXRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1l
UmVkaXJlY3RSZXF1ZXN0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uUmVz
cG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisKIDIwMTItMDUt
MDIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTU5MTguCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBjMTc3MDM5Li4zZGI5YzI1
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5jcHAKQEAgLTExMiw2ICsxMTIsOCBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJv
bWU6OmNyZWF0ZVZpZXcoKSBjb25zdAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZChtYWluRnJhbWUsICJsb2FkLGZpbmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hlZCwgMCk7CiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsZXJyb3Ii
LCBvbkZyYW1lTG9hZEVycm9yLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQobWFpbkZyYW1lLCAicmVkaXJlY3QsY2FuY2VsbGVkIiwgb25GcmFtZVJlZGlyZWN0Q2FuY2Vs
bGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAi
cmVkaXJlY3QsbG9hZCxwcm92aXNpb25hbCIsIG9uRnJhbWVSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwg
InJlZGlyZWN0LHJlcXVlc3RlZCIsIG9uRnJhbWVSZWRpcmVjdFJlcXVlc3RlZCwgMCk7CiAgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgInhzcyxkZXRlY3RlZCIs
IG9uRGlkRGV0ZWN0WFNTLCAwKTsKIAogICAgIHJldHVybiB2aWV3OwpAQCAtNDMyLDcgKzQzNCw3
IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mCiAKICAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRl
c3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpCiAgICAgICAgIHByaW50
ZigiJXMgLSB3aWxsU2VuZFJlcXVlc3QgJXMgcmVkaXJlY3RSZXNwb25zZSAlc1xuIiwKLSAgICAg
ICAgICAgICAgIHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQobWVzc2FnZXMtPnJlcXVlc3QtPnVy
bCkuZGF0YSgpLAorICAgICAgICAgICAgICAgbV9kdW1wQXNzaWduZWRVcmxzLmNvbnRhaW5zKG1l
c3NhZ2VzLT5yZXF1ZXN0LT5pZGVudGlmaWVyKSA/IG1fZHVtcEFzc2lnbmVkVXJscy5nZXQobWVz
c2FnZXMtPnJlcXVlc3QtPmlkZW50aWZpZXIpLmRhdGEoKSA6ICI8dW5rbm93bj4iLAogICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQobWVzc2FnZXMtPnJlcXVl
c3QpLmRhdGEoKSwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVz
dWx0KG1lc3NhZ2VzLT5yZWRpcmVjdF9yZXNwb25zZSkuZGF0YSgpKTsKIApAQCAtNDg1LDYgKzQ4
Nyw4IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVDcmVhdGVkKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQoZnJhbWUsICJsb2FkLGZpbmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hlZCwgMCk7
CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxlcnJvciIs
IG9uRnJhbWVMb2FkRXJyb3IsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZChmcmFtZSwgInJlZGlyZWN0LGNhbmNlbGxlZCIsIG9uRnJhbWVSZWRpcmVjdENhbmNlbGxlZCwg
MCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAicmVkaXJlY3Qs
bG9hZCxwcm92aXNpb25hbCIsIG9uRnJhbWVSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCwgMCk7
CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAicmVkaXJlY3QscmVx
dWVzdGVkIiwgb25GcmFtZVJlZGlyZWN0UmVxdWVzdGVkLCAwKTsKICAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJ4c3MsZGV0ZWN0ZWQiLCBvbkRpZERldGVjdFhTUywg
MCk7CiB9CiAKQEAgLTU0Miw2ICs1NDYsMjQgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25GcmFtZVJlZGlyZWN0Q2FuY2VsbGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHYKICAg
ICB9CiB9CiAKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBp
ZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tz
KCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMg
LSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVxuIiwg
ZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KK30KKwordm9pZCBEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6b25GcmFtZVJlZGlyZWN0UmVxdWVzdGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJh
bWUsIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBjb25zdCBjaGFyKiB1cmwgPSBzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4oZXZlbnRJbmZvKTsKKworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBT
dHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFt
ZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTDogJXMgXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSwgcGF0aFN1aXRhYmxl
Rm9yVGVzdFJlc3VsdCh1cmwpLmRhdGEoKSk7CisgICAgfQorfQorCiB2b2lkIER1bXBSZW5kZXJU
cmVlQ2hyb21lOjpvbkRpZERldGVjdFhTUyh2b2lkKiwgRXZhc19PYmplY3QqIHZpZXcsIHZvaWQq
KQogewogICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKSkKQEAgLTU1NSw3ICs1NzcsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvblJlc3BvbnNlUmVjZWl2ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJ
bgogICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3MoKSkgewogICAgICAgICBDU3RyaW5nIHJlc3BvbnNlRGVzY3JpcHRpb24oZGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UpKTsKICAgICAgICAgcHJpbnRm
KCIlcyAtIGRpZFJlY2VpdmVSZXNwb25zZSAlc1xuIiwKLSAgICAgICAgICAgICAgIHBhdGhTdWl0
YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UtPnVybCkuZGF0YSgpLAorICAgICAgICAgICAgICAg
bV9kdW1wQXNzaWduZWRVcmxzLmNvbnRhaW5zKHJlc3BvbnNlLT5pZGVudGlmaWVyKSA/IG1fZHVt
cEFzc2lnbmVkVXJscy5nZXQocmVzcG9uc2UtPmlkZW50aWZpZXIpLmRhdGEoKSA6ICI8dW5rbm93
bj4iLAogICAgICAgICAgICAgICAgcmVzcG9uc2VEZXNjcmlwdGlvbi5kYXRhKCkpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgK
aW5kZXggMjQ1MGU3Yi4uY2JhM2RiZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKQEAgLTk2LDYgKzk2LDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBvbkZyYW1lTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQq
KTsKIAogICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVSZWRpcmVjdENhbmNlbGxlZCh2b2lkKiwgRXZh
c19PYmplY3QqLCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgb25GcmFtZVJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKyAgICBzdGF0aWMgdm9p
ZCBvbkZyYW1lUmVkaXJlY3RSZXF1ZXN0ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwog
CiAgICAgc3RhdGljIHZvaWQgb25GcmFtZUxvYWRFcnJvcih2b2lkKiwgRXZhc19PYmplY3QqLCB2
b2lkKik7CiAgICAgc3RhdGljIHZvaWQgb25EaWREZXRlY3RYU1Modm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140174</attachid>
            <date>2012-05-04 00:52:55 -0700</date>
            <delta_ts>2012-05-04 09:17:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>85173_redirection_callbacks.patch</filename>
            <type>text/plain</type>
            <size>15286</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OGI3ZDUxLi4xZjdlODNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUt
MDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVk
aXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgbm93IHRoYXQgRUZMJ3MgRHVtcFJlbmRlclRy
ZWUgaXMKKyAgICAgICAgY29ycmVjdGx5IHByaW50aW5nIGZyYW1lIGxvYWQgY2FsbGJhY2tzIGlu
Zm9ybWF0aW9uIGluIGNhc2Ugb2YKKyAgICAgICAgcmVkaXJlY3Rpb25zLgorCisgICAgICAgICog
cGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dDoKKwogMjAxMi0wNS0wNCAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFp
bC5jb20+CiAKICAgICAgICAgQWRkIFBORyBpbWFnZSBwbmdzdWl0ZSB0ZXN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9Ta2lwcGVkCmluZGV4IDUxYTEyZDYuLjUyOTA2OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9T
a2lwcGVkCkBAIC0yNjUsOSArMjY1LDYgQEAgZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1v
bmNoYW5nZS1ldmVudC5odG1sCiAjIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90
IGltcGxlbWVudCBjb3B5e0VuY29kZWQsRGVjb2RlZH1Ib3N0TmFtZQogZmFzdC9lbmNvZGluZy9p
ZG4tc2VjdXJpdHkuaHRtbAogCi0jIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90
IGltcGxlbWVudCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMKLWh0dHAvdGVzdHMvbG9hZGlu
Zy9kZWxldGVkLWhvc3QtaW4tcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS1jYWxsYmFjay5odG1sCi0K
ICMgRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9lcyBub3QgaW1wbGVtZW50IGtlZXBXZWJI
aXN0b3J5CiBmYXN0L2hpc3RvcnkvdmlzaXRlZC1nZW5lcmF0ZWQtY29udGVudC10ZXN0Lmh0bWwK
IGZhc3QvaGlzdG9yeS92aXNpdGVkLWxpbmstYmFja2dyb3VuZC1jb2xvci5odG1sCkBAIC01NzUs
MTUgKzU3Miw5IEBAIHByaW50aW5nL3dpZHRoLW92ZXJmbG93Lmh0bWwKICMgQlVHOiBDYXB0aW9u
cyBzdXBwb3J0IG5lZWRlZCBpbiB0aGUgbWVkaWEgZW5naW5lICh2aWEgR1RLKykKIG1lZGlhL21l
ZGlhLWNhcHRpb25zLmh0bWwKIAotIyBCVUc6IFJlcXVpcmVzIHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTAotaHR0cC90ZXN0cy9sb2FkaW5nL29ubG9hZC12cy1pbW1lZGlhdGUtcmVmcmVz
aC5wbAotCiAjIEJVRzogTWlzc2luZyBEUlQgQVBJLgogaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxv
YWQtc2xvdy1sb2FkaW5nLnBocAogCi0jIEJVRzogTWlzc2luZyByZXNvdXJjZSBsb2FkIGNhbGxi
YWNrIGFiaWxpdHkgaW4gRFJUCi1odHRwL3Rlc3RzL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5o
dG1sCi0KICMgQlVHOiBObyBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgaGFuZGxpbmcKIGh0dHAv
dGVzdHMvbG9hZGluZy9iYXNpYy1jcmVkZW50aWFscy1zZW50LWF1dG9tYXRpY2FsbHkuaHRtbAog
aHR0cC90ZXN0cy9jYWNoZS9zdWJyZXNvdXJjZS1mcmFnbWVudC1pZGVudGlmaWVyLmh0bWwKQEAg
LTg5MSwxMCArODgyLDYgQEAgaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1yZXBhcmVudGluZy1pZC1j
b2xsaXNpb24uaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjExMjIKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LTMwNy1yZXNwb25zZS5odG1sCiAKLSMg
TmVlZHMgdG8gbWFrZSBzdXJlIHRoZSByZWRpcmVjdC1jaGFpbiBzY2VuYXJpbyBpbiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0MTAgd29ya3MKLSMgU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTMwMAotaHR0cC90ZXN0cy9sb2Fk
aW5nLzMwNy1hZnRlci0zMDMtYWZ0ZXItcG9zdC5odG1sCi0KICMgUHJvYmFibHkgcmVsYXRlZCB0
byBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc2MzcKIGh0dHAvdGVz
dHMvbG9hZGluZy9iYXNpYy1hdXRoLXJlc2VuZC13cm9uZy1jcmVkZW50aWFscy5odG1sCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0aW9ucy50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDQw
ZWE2YjUuLjgyMWQ2NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dApAQCAtMjY0LDYgKzI2NCw4IEBAIEJVR1dLODU0OTIgOiBjc3MzL3pvb20t
Y29vcmRzLnhodG1sID0gVEVYVAogCiAvLyBSZWRpcmVjdCByZXNwb25zZSBVUkwgaXMgbm90IHRo
ZSBvbmUgZXhwZWN0ZWQKIEJVR1dLODUwNzIgOiBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwgPSBURVhUCitCVUdXSzg1MDcyIDog
aHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMtYWZ0ZXItcG9zdC5odG1sID0gVEVYVAor
QlVHV0s4NTA3MiA6IGh0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwgPSBU
RVhUCiAKIC8vIE5vIHN1cHBvcnQgZm9yIG92ZXJyaWRpbmcgV2ViS2l0TG9hZFNpdGVJY29uc0tl
eQogQlVHV0s4NTE3MSA6IGh0dHAvdGVzdHMvbWlzYy9mYXZpY29uLWxvYWRzLXdpdGgtaWNvbi1s
b2FkaW5nLW92ZXJyaWRlLmh0bWwgPSBURVhUCkBAIC0yNzksNCArMjgxLDMgQEAgQlVHV0s4NTU2
NSA6IGZhc3QvY3NzL2JvcmRlci1zb2xpZC1zaW5nbGUtZWRnZS1hbnRpYWxpYXMuaHRtbCA9IElN
QUdFCiAgCiAvLyBHZW5lcmF0ZSByZXN1bHRzIGZvciB5b3VyIHBsYXRmb3JtCiBCVUdXSzg1NTY3
IDogZmFzdC9pbWFnZXMvcG5nLXN1aXRlL3Rlc3QuaHRtbCA9IElNQUdFCi0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwppbmRleCA1YTYxZDBiLi5lY2JkMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDUtMDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlz
c2luZyBmb3IgcmVkaXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIGZldyByZWRpcmVjdGlvbi1yZWxhdGVkIHNpZ25hbHMgb24gdGhl
IGV3a19mcmFtZSBzbyB0aGF0IEVGTCdzCisgICAgICAgIER1bXBSZW5kZXJUcmVlIGNhbiBwcmlu
dCB0aGUgZXhwZWN0ZWQgb3V0cHV0IHdoZW4KKyAgICAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIn
cyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfcmVk
aXJlY3RfcHJvdmlzaW9uYWxfbG9hZCk6CisgICAgICAgIChld2tfZnJhbWVfcmVkaXJlY3RfcmVx
dWVzdGVkKToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdrL2V3a19w
cml2YXRlLmg6CisKIDIwMTItMDUtMDMgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmVtb3ZpbmcgbGluZSBpbiBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
IHRoYXQgZW5mb3JjZXMgYSBtaW5pbXVtIHNjYWxlIGZhY3RvciB0byBuZXZlciBhbGxvdyB6b29t
aW5nIG91dCBtb3JlIHRoYW4gdmlld3BvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCAxMDgyMTEy
Li5jOWZhMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0xOTcsNiArMTk3LDcgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgdW5zaWcKICAgICAgICAgcmVkaXJlY3RVcmwgPSBjb3JlUmVzcG9uc2UudXJs
KCkuc3RyaW5nKCkudXRmOCgpOwogICAgICAgICByZXNwb25zZUJ1ZmZlci51cmwgPSByZWRpcmVj
dFVybC5kYXRhKCk7CiAgICAgICAgIHJlc3BvbnNlQnVmZmVyLnN0YXR1c19jb2RlID0gY29yZVJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CisgICAgICAgIHJlc3BvbnNlQnVmZmVyLmlkZW50aWZp
ZXIgPSBpZGVudGlmaWVyOwogICAgICAgICByZWRpcmVjdFJlc3BvbnNlID0gJnJlc3BvbnNlQnVm
ZmVyOwogICAgIH0KIApAQCAtMjYyLDcgKzI2Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRF
Zmw6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgY29y
ZVJlc3BvbnNlKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZl
UmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBjb3JlUmVzcG9uc2UpCiB7CiAgICAgLy8gVXBkYXRl
IG91ciBrbm93bGVkZ2Ugb2YgcmVxdWVzdCBzb3VwIGZsYWdzIC0gc29tZSBhcmUgb25seSBzZXQK
ICAgICAvLyBhZnRlciB0aGUgcmVxdWVzdCBpcyBkb25lLgpAQCAtMjcwLDcgKzI3MSw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIsIHVuCiAKICAgICBtX3Jlc3BvbnNlID0gY29yZVJlc3BvbnNlOwog
Ci0gICAgRXdrX0ZyYW1lX1Jlc291cmNlX1Jlc3BvbnNlIHJlc3BvbnNlID0geyAwLCBjb3JlUmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSB9OworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25z
ZSByZXNwb25zZSA9IHsgMCwgY29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIGlkZW50aWZp
ZXIgfTsKICAgICBDU3RyaW5nIHVybCA9IGNvcmVSZXNwb25zZS51cmwoKS5zdHJpbmcoKS51dGY4
KCk7CiAgICAgcmVzcG9uc2UudXJsID0gdXJsLmRhdGEoKTsKIApAQCAtNTY5LDcgKzU3MCw3IEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRz
KCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgZXdrX2ZyYW1lX3JlZGlyZWN0X3Byb3Zpc2lvbmFsX2xvYWQobV9mcmFtZSk7CiB9CiAKIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Qo
KQpAQCAtNTc3LDkgKzU3OCw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKQogICAgIGV3a19mcmFtZV9yZWRpcmVjdF9jYW5jZWxs
ZWQobV9mcmFtZSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBLVVJMJiwgZG91YmxlLCBkb3VibGUpCit2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
Y29uc3QgS1VSTCYgdXJsLCBkb3VibGUsIGRvdWJsZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIGV3a19mcmFtZV9yZWRpcmVjdF9yZXF1ZXN0ZWQobV9mcmFtZSwgdXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRj
aERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
Y3BwCmluZGV4IDRhZjAwYjMuLjI0YTEyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
Y3BwCkBAIC0xMjI2LDYgKzEyMjYsMzMgQEAgdm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfY2FuY2Vs
bGVkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIAogLyoqCiAgKiBAaW50ZXJuYWwKKyAqIFJlcG9y
dHMgcmVjZWlwdCBvZiBzZXJ2ZXIgcmVkaXJlY3QgZm9yIHByb3Zpc2lvbmFsIGxvYWQuCisgKgor
ICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1lLgorICoKKyAqIEVtaXRzIHNpZ25hbDogInJlZGlyZWN0
LGxvYWQscHJvdmlzaW9uYWwiCisgKi8KK3ZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X3Byb3Zpc2lv
bmFsX2xvYWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwoZXdrRnJhbWUsICJyZWRpcmVjdCxsb2FkLHByb3Zpc2lvbmFsIiwgMCk7
Cit9CisKKy8qKgorICogQGludGVybmFsCisgKiBSZXBvcnRzIHRoYXQgYSBjbGllbnQgcmVkaXJl
Y3Qgd2lsbCBiZSBwZXJmb3JtZWQuCisgKgorICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1lLgorICog
QHBhcmFtIHVybCBSZWRpcmVjdGlvbiBVUkwuCisgKgorICogRW1pdHMgc2lnbmFsOiAicmVkaXJl
Y3QscmVxdWVzdGVkIgorICovCit2b2lkIGV3a19mcmFtZV9yZWRpcmVjdF9yZXF1ZXN0ZWQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB1cmwpCit7CisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInJlZGlyZWN0LHJlcXVlc3RlZCIsICh2b2lk
Kil1cmwpOworfQorCisvKioKKyAqIEBpbnRlcm5hbAogICogUmVwb3J0cyBhIHJlc291cmNlIHdp
bGwgYmUgcmVxdWVzdGVkLiBVc2VyIG1heSBvdmVycmlkZSBiZWhhdmlvciBvZiB3ZWJraXQgYnkK
ICAqIGNoYW5naW5nIHZhbHVlcyBpbiBAcGFyYW0gcmVxdWVzdC4KICAqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2ZyYW1lLmgKaW5kZXggNmRhMTM2YS4uYmM4NWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZnJhbWUuaApAQCAtNjEsNiArNjEsOCBAQAogICogIC0gIm1peGVkY29udGVudCxydW4iLCB2b2lk
OiBmcmFtZSBoYXMgbG9hZGVkIGFuZCBydW4gbWl4ZWQgY29udGVudC4KICAqICAtICJuYXZpZ2F0
aW9uLGZpcnN0Iiwgdm9pZDogZmlyc3QgbmF2aWdhdGlvbiB3YXMgb2NjdXJyZWQuCiAgKiAgLSAi
cmVkaXJlY3QsY2FuY2VsbGVkIiwgdm9pZDogY2xpZW50IHJlZGlyZWN0IHdhcyBjYW5jZWxsZWQu
CisgKiAgLSAicmVkaXJlY3QsbG9hZCxwcm92aXNpb25hbCIsIHZvaWQ6IHJlY2VpdmVkIHNlcnZl
ciByZWRpcmVjdCBmb3IgcHJvdmlzaW9uYWwgbG9hZC4KKyAqICAtICJyZWRpcmVjdCxyZXF1ZXN0
ZWQiLCBjb25zdCBjaGFyKjogdXJsIG9mIHRoZSBjbGllbnQgcmVkaXJlY3QgdGhhdCB3aWxsIGJl
IHBlcmZvcm1lZC4KICAqICAtICJyZXNvdXJjZSxyZXF1ZXN0LG5ldyIsIEV3a19GcmFtZV9SZXNv
dXJjZV9SZXF1ZXN0KjogcmVwb3J0cyB0aGF0CiAgKiAgICB0aGVyZSdzIGEgbmV3IHJlc291cmNl
IHJlcXVlc3QuCiAgKiAgLSAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9S
ZXNvdXJjZV9NZXNzYWdlcyo6IGEgcmVzb3VyY2Ugd2lsbCBiZSByZXF1ZXN0ZWQuCkBAIC0xMzUs
NiArMTM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSBF
d2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9uc2U7CiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9S
ZXNwb25zZSB7CiAgICAgY29uc3QgY2hhciAqdXJsOyAvKio8IHVybCBvZiB0aGUgcmVzb3VyY2Ug
Ki8KICAgICBpbnQgc3RhdHVzX2NvZGU7IC8qKjwgaHR0cCBzdGF0dXMgY29kZSAqLworICAgIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllcjsgLyoqPCBpZGVudGlmaWVyIG9mIHJlc291cmNlICovCiB9
OwogCiAvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19GcmFtZV9SZXNvdXJjZV9NZXNz
YWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggYjVjNTFjMC4uMjZkNDQ4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTIyNiw2ICsyMjYsOCBAQCB2
b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9yKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hh
ciogZXJyb3JEb21haW4sIGludCBlcgogdm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFu
Z2VkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAKIHZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X2Nh
bmNlbGxlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwordm9pZCBld2tfZnJhbWVfcmVkaXJlY3Rf
cHJvdmlzaW9uYWxfbG9hZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwordm9pZCBld2tfZnJhbWVf
cmVkaXJlY3RfcmVxdWVzdGVkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdXJs
KTsKIHZvaWQgZXdrX2ZyYW1lX3JlcXVlc3Rfd2lsbF9zZW5kKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSwgRXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzKiBtZXNzYWdlcyk7CiB2b2lkIGV3a19mcmFt
ZV9yZXF1ZXN0X2Fzc2lnbl9pZGVudGlmaWVyKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3Qg
RXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QqIHJlcXVlc3QpOwogdm9pZCBld2tfZnJhbWVfcmVz
cG9uc2VfcmVjZWl2ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFd2tfRnJhbWVfUmVzb3VyY2Vf
UmVzcG9uc2UqIHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBiMmM3MWVkLi4xYTcxY2QxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDUtMDQg
IENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAg
ICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVkaXJl
Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NTE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENh
dGNoIHRoZSBuZXcgZXdrX2ZyYW1lIHNpZ25hbHMgdG8gcHJpbnQgdGhlIGV4cGVjdGVkIG91dHB1
dCBpbiBjYXNlCisgICAgICAgIG9mIHJlZGlyZWN0aW9ucywgd2hlbiBMYXlvdXRUZXN0Q29udHJv
bGxlcidzIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKQorICAgICAgICByZXR1cm5zIHRydWUuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpvbkZyYW1lQ3JlYXRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNo
cm9tZTo6b25GcmFtZVJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lUmVkaXJlY3RSZXF1ZXN0ZWQpOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVDaHJvbWU6Om9uUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmg6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZUNocm9tZSk6CisKIDIwMTItMDUtMDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhl
LmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBEUlQgc2hvdWxkIG9iZXkgbGF5b3V0
VGVzdENvbnRyb2xsZXIncyBhZGRVUkxUb1JlZGlyZWN0KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IDEzZTY3YmYuLjE5M2My
NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcApAQCAtMTEyLDYgKzExMiw4IEBAIEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVyVHJlZUNo
cm9tZTo6Y3JlYXRlVmlldygpIGNvbnN0CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKG1haW5GcmFtZSwgImxvYWQsZmluaXNoZWQiLCBvbkZyYW1lTG9hZEZpbmlzaGVkLCAwKTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9hZCxlcnJv
ciIsIG9uRnJhbWVMb2FkRXJyb3IsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2FkZChtYWluRnJhbWUsICJyZWRpcmVjdCxjYW5jZWxsZWQiLCBvbkZyYW1lUmVkaXJlY3RDYW5j
ZWxsZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUs
ICJyZWRpcmVjdCxsb2FkLHByb3Zpc2lvbmFsIiwgb25GcmFtZVJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1l
LCAicmVkaXJlY3QscmVxdWVzdGVkIiwgb25GcmFtZVJlZGlyZWN0UmVxdWVzdGVkLCAwKTsKICAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAieHNzLGRldGVjdGVk
Iiwgb25EaWREZXRlY3RYU1MsIDApOwogCiAgICAgcmV0dXJuIHZpZXc7CkBAIC00OTYsNiArNDk4
LDggQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUNyZWF0ZWQodm9pZCosIEV2
YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZChmcmFtZSwgImxvYWQsZmluaXNoZWQiLCBvbkZyYW1lTG9hZEZpbmlzaGVkLCAwKTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLGVycm9yIiwg
b25GcmFtZUxvYWRFcnJvciwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KGZyYW1lLCAicmVkaXJlY3QsY2FuY2VsbGVkIiwgb25GcmFtZVJlZGlyZWN0Q2FuY2VsbGVkLCAw
KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJyZWRpcmVjdCxs
b2FkLHByb3Zpc2lvbmFsIiwgb25GcmFtZVJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkLCAwKTsK
KyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJyZWRpcmVjdCxyZXF1
ZXN0ZWQiLCBvbkZyYW1lUmVkaXJlY3RSZXF1ZXN0ZWQsIDApOwogICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgInhzcyxkZXRlY3RlZCIsIG9uRGlkRGV0ZWN0WFNTLCAw
KTsKIH0KIApAQCAtNTUzLDYgKzU1NywyNCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpv
bkZyYW1lUmVkaXJlY3RDYW5jZWxsZWQodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdgogICAg
IH0KIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqKQoreworICAgIGlm
ICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3Mo
KSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAt
IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lXG4iLCBm
cmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorfQorCit2b2lkIER1bXBSZW5kZXJUcmVl
Q2hyb21lOjpvbkZyYW1lUmVkaXJlY3RSZXF1ZXN0ZWQodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFt
ZSwgdm9pZCogZXZlbnRJbmZvKQoreworICAgIGNvbnN0IGNoYXIqIHVybCA9IHN0YXRpY19jYXN0
PGNvbnN0IGNoYXIqPihldmVudEluZm8pOworCisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0IFN0
cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZyYW1l
TmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdFRvVVJMOiAlcyBcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpLCBwYXRoU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHVybCkuZGF0YSgpKTsKKyAgICB9Cit9CisKIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uRGlkRGV0ZWN0WFNTKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCop
CiB7CiAgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9h
ZENhbGxiYWNrcygpKQpAQCAtNTY2LDcgKzU4OCw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uUmVzcG9uc2VSZWNlaXZlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudElu
CiAgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9h
ZENhbGxiYWNrcygpKSB7CiAgICAgICAgIENTdHJpbmcgcmVzcG9uc2VEZXNjcmlwdGlvbihkZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSkpOwogICAgICAgICBwcmludGYo
IiVzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlICVzXG4iLAotICAgICAgICAgICAgICAgcGF0aFN1aXRh
YmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZS0+dXJsKS5kYXRhKCksCisgICAgICAgICAgICAgICBt
X2R1bXBBc3NpZ25lZFVybHMuY29udGFpbnMocmVzcG9uc2UtPmlkZW50aWZpZXIpID8gbV9kdW1w
QXNzaWduZWRVcmxzLmdldChyZXNwb25zZS0+aWRlbnRpZmllcikuZGF0YSgpIDogIjx1bmtub3du
PiIsCiAgICAgICAgICAgICAgICByZXNwb25zZURlc2NyaXB0aW9uLmRhdGEoKSk7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaApp
bmRleCAyNDUwZTdiLi5jYmEzZGJkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuaApAQCAtOTYsNiArOTYsOCBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIG9uRnJhbWVMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCop
OwogCiAgICAgc3RhdGljIHZvaWQgb25GcmFtZVJlZGlyZWN0Q2FuY2VsbGVkKHZvaWQqLCBFdmFz
X09iamVjdCosIHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworICAgIHN0YXRpYyB2b2lk
IG9uRnJhbWVSZWRpcmVjdFJlcXVlc3RlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiAK
ICAgICBzdGF0aWMgdm9pZCBvbkZyYW1lTG9hZEVycm9yKHZvaWQqLCBFdmFzX09iamVjdCosIHZv
aWQqKTsKICAgICBzdGF0aWMgdm9pZCBvbkRpZERldGVjdFhTUyh2b2lkKiwgRXZhc19PYmplY3Qq
LCB2b2lkKik7Cg==
</data>
<flag name="review"
          id="145966"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
    <flag name="commit-queue"
          id="145967"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140248</attachid>
            <date>2012-05-04 09:17:24 -0700</date>
            <delta_ts>2012-05-04 10:22:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>85173_redirection_callbacks.patch</filename>
            <type>text/plain</type>
            <size>15624</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYzUxNjUyLi5jODE0NTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTItMDUt
MDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAorICAg
ICAgICBbRUZMXSBGcmFtZSBsb2FkIGNhbGxiYWNrcyBvdXRwdXQgaXMgbWlzc2luZyBmb3IgcmVk
aXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTE3MworCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCisKKyAgICAgICAg
VXBkYXRlIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBub3cgdGhhdCBFRkwncyBEdW1wUmVuZGVyVHJl
ZSBpcworICAgICAgICBjb3JyZWN0bHkgcHJpbnRpbmcgZnJhbWUgbG9hZCBjYWxsYmFja3MgaW5m
b3JtYXRpb24gaW4gY2FzZSBvZgorICAgICAgICByZWRpcmVjdGlvbnMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3Rh
dGlvbnMudHh0OgorCisyMDEyLTA1LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5k
dW1lekBpbnRlbC5jb20+CisKICAgICAgICAgW0VGTF0gTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9l
cyBub3Qgc3VwcG9ydCBvdmVycmlkaW5nIFdlYktpdExvYWRTaXRlSWNvbnNLZXkKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTcxCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1NraXBwZWQKaW5kZXggMDBmOTc4MS4uMmZlODdjNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1NraXBwZWQKQEAgLTI2NSw5ICsyNjUsNiBAQCBmYXN0L2Zvcm1zL2NvbG9yL2lucHV0LWNvbG9y
LW9uY2hhbmdlLWV2ZW50Lmh0bWwKICMgRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9lcyBu
b3QgaW1wbGVtZW50IGNvcHl7RW5jb2RlZCxEZWNvZGVkfUhvc3ROYW1lCiBmYXN0L2VuY29kaW5n
L2lkbi1zZWN1cml0eS5odG1sCiAKLSMgRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9lcyBu
b3QgaW1wbGVtZW50IGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cwotaHR0cC90ZXN0cy9sb2Fk
aW5nL2RlbGV0ZWQtaG9zdC1pbi1yZXNvdXJjZS1sb2FkLWRlbGVnYXRlLWNhbGxiYWNrLmh0bWwK
LQogIyBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBpbXBsZW1lbnQga2VlcFdl
Ykhpc3RvcnkKIGZhc3QvaGlzdG9yeS92aXNpdGVkLWdlbmVyYXRlZC1jb250ZW50LXRlc3QuaHRt
bAogZmFzdC9oaXN0b3J5L3Zpc2l0ZWQtbGluay1iYWNrZ3JvdW5kLWNvbG9yLmh0bWwKQEAgLTU3
MiwxNSArNTY5LDkgQEAgcHJpbnRpbmcvd2lkdGgtb3ZlcmZsb3cuaHRtbAogIyBCVUc6IENhcHRp
b25zIHN1cHBvcnQgbmVlZGVkIGluIHRoZSBtZWRpYSBlbmdpbmUgKHZpYSBHVEsrKQogbWVkaWEv
bWVkaWEtY2FwdGlvbnMuaHRtbAogCi0jIEJVRzogUmVxdWlyZXMgd2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMCi1odHRwL3Rlc3RzL2xvYWRpbmcvb25sb2FkLXZzLWltbWVkaWF0ZS1yZWZy
ZXNoLnBsCi0KICMgQlVHOiBNaXNzaW5nIERSVCBBUEkuCiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJl
bG9hZC1zbG93LWxvYWRpbmcucGhwCiAKLSMgQlVHOiBNaXNzaW5nIHJlc291cmNlIGxvYWQgY2Fs
bGJhY2sgYWJpbGl0eSBpbiBEUlQKLWh0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC1tZXRob2Rz
Lmh0bWwKLQogIyBCVUc6IE5vIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBoYW5kbGluZwogaHR0
cC90ZXN0cy9sb2FkaW5nL2Jhc2ljLWNyZWRlbnRpYWxzLXNlbnQtYXV0b21hdGljYWxseS5odG1s
CiBodHRwL3Rlc3RzL2NhY2hlL3N1YnJlc291cmNlLWZyYWdtZW50LWlkZW50aWZpZXIuaHRtbApA
QCAtODg4LDEwICs4NzksNiBAQCBodHRwL3Rlc3RzL21pc2MvaWZyYW1lLXJlcGFyZW50aW5nLWlk
LWNvbGxpc2lvbi5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTEyMgogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtMzA3LXJlc3BvbnNlLmh0bWwKIAot
IyBOZWVkcyB0byBtYWtlIHN1cmUgdGhlIHJlZGlyZWN0LWNoYWluIHNjZW5hcmlvIGluIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTQxMCB3b3JrcwotIyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzAwCi1odHRwL3Rlc3RzL2xv
YWRpbmcvMzA3LWFmdGVyLTMwMy1hZnRlci1wb3N0Lmh0bWwKLQogIyBQcm9iYWJseSByZWxhdGVk
IHRvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzYzNwogaHR0cC90
ZXN0cy9sb2FkaW5nL2Jhc2ljLWF1dGgtcmVzZW5kLXdyb25nLWNyZWRlbnRpYWxzLmh0bWwKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXgg
ODdhMTk3Mi4uNzhmM2EyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9l
eHBlY3RhdGlvbnMudHh0CkBAIC0yNjQsNiArMjY0LDggQEAgQlVHV0s4NTQ5MiA6IGNzczMvem9v
bS1jb29yZHMueGh0bWwgPSBURVhUCiAKIC8vIFJlZGlyZWN0IHJlc3BvbnNlIFVSTCBpcyBub3Qg
dGhlIG9uZSBleHBlY3RlZAogQlVHV0s4NTA3MiA6IGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQt
cmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCA9IFRFWFQKK0JVR1dLODUwNzIg
OiBodHRwL3Rlc3RzL2xvYWRpbmcvMzA3LWFmdGVyLTMwMy1hZnRlci1wb3N0Lmh0bWwgPSBURVhU
CitCVUdXSzg1MDcyIDogaHR0cC90ZXN0cy9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCA9
IFRFWFQKIAogLy8gTm8gc3VwcG9ydCBmb3Igb3ZlcnJpZGluZyBXZWJLaXRMb2FkU2l0ZUljb25z
S2V5CiBCVUdXSzg1MTcxIDogaHR0cC90ZXN0cy9taXNjL2Zhdmljb24tbG9hZHMtd2l0aC1pY29u
LWxvYWRpbmctb3ZlcnJpZGUuaHRtbCA9IFRFWFQKQEAgLTI3OSw2ICsyODEsNSBAQCBCVUdXSzg1
NTY1IDogZmFzdC9jc3MvYm9yZGVyLXNvbGlkLXNpbmdsZS1lZGdlLWFudGlhbGlhcy5odG1sID0g
SU1BR0UKICAKIC8vIEdlbmVyYXRlIHJlc3VsdHMgZm9yIHlvdXIgcGxhdGZvcm0KIEJVR1dLODU1
NjcgOiBmYXN0L2ltYWdlcy9wbmctc3VpdGUvdGVzdC5odG1sID0gSU1BR0UKLQogLy8gSXNzdWUg
d2l0aCBTVkcgaGl0dGVzdGluZyBvbiBzdHJva2VzLCBmYWlscyBvbiBHVEsgYXMgd2VsbC4KIEJV
R1dLODI2MjggOiBzdmcvaGl0dGVzdC9zdmctZWxsaXBzZS1ub24tc2NhbGUtc3Ryb2tlLnhodG1s
ID0gRkFJTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGE1MWZmMTMuLjBlODY1YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMi0wNS0wNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNo
cmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCisgICAgICAgIFtFRkxdIEZyYW1lIGxvYWQgY2Fs
bGJhY2tzIG91dHB1dCBpcyBtaXNzaW5nIGZvciByZWRpcmVjdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTczCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW50b25pbyBHb21lcy4KKworICAgICAgICBBZGQgYSBmZXcgcmVkaXJlY3Rpb24tcmVs
YXRlZCBzaWduYWxzIG9uIHRoZSBld2tfZnJhbWUgc28gdGhhdCBFRkwncworICAgICAgICBEdW1w
UmVuZGVyVHJlZSBjYW4gcHJpbnQgdGhlIGV4cGVjdGVkIG91dHB1dCB3aGVuCisgICAgICAgIExh
eW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIHJldHVybnMgdHJ1
ZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaFdpbGxTZW5k
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAg
ICAgICAoZXdrX2ZyYW1lX3JlZGlyZWN0X3Byb3Zpc2lvbmFsX2xvYWQpOgorICAgICAgICAoZXdr
X2ZyYW1lX3JlZGlyZWN0X3JlcXVlc3RlZCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgor
ICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorCisyMDEyLTA1LTA0ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKICAgICAgICAgW0VGTF0gTGF5b3V0
VGVzdENvbnRyb2xsZXIgZG9lcyBub3Qgc3VwcG9ydCBvdmVycmlkaW5nIFdlYktpdExvYWRTaXRl
SWNvbnNLZXkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTcxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCAxMDgyMTEyLi5jOWZhMWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwCkBAIC0xOTcsNiArMTk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWcK
ICAgICAgICAgcmVkaXJlY3RVcmwgPSBjb3JlUmVzcG9uc2UudXJsKCkuc3RyaW5nKCkudXRmOCgp
OwogICAgICAgICByZXNwb25zZUJ1ZmZlci51cmwgPSByZWRpcmVjdFVybC5kYXRhKCk7CiAgICAg
ICAgIHJlc3BvbnNlQnVmZmVyLnN0YXR1c19jb2RlID0gY29yZVJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCk7CisgICAgICAgIHJlc3BvbnNlQnVmZmVyLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwog
ICAgICAgICByZWRpcmVjdFJlc3BvbnNlID0gJnJlc3BvbnNlQnVmZmVyOwogICAgIH0KIApAQCAt
MjYyLDcgKzI2Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmZyYW1lTG9hZGVyRGVz
dHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5z
aWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKQordm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiBjb3JlUmVzcG9uc2UpCiB7CiAgICAgLy8gVXBkYXRlIG91ciBrbm93bGVkZ2Ugb2Yg
cmVxdWVzdCBzb3VwIGZsYWdzIC0gc29tZSBhcmUgb25seSBzZXQKICAgICAvLyBhZnRlciB0aGUg
cmVxdWVzdCBpcyBkb25lLgpAQCAtMjcwLDcgKzI3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IHVuCiAKICAgICBtX3Jlc3BvbnNlID0gY29yZVJlc3BvbnNlOwogCi0gICAgRXdrX0ZyYW1lX1Jl
c291cmNlX1Jlc3BvbnNlIHJlc3BvbnNlID0geyAwLCBjb3JlUmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSB9OworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSByZXNwb25zZSA9IHsgMCwg
Y29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIGlkZW50aWZpZXIgfTsKICAgICBDU3RyaW5n
IHVybCA9IGNvcmVSZXNwb25zZS51cmwoKS5zdHJpbmcoKS51dGY4KCk7CiAgICAgcmVzcG9uc2Uu
dXJsID0gdXJsLmRhdGEoKTsKIApAQCAtNTY5LDcgKzU3MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIAogdm9pZCBGcmFtZUxv
YWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXdrX2ZyYW1lX3JlZGly
ZWN0X3Byb3Zpc2lvbmFsX2xvYWQobV9mcmFtZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKQpAQCAtNTc3LDkgKzU3OCw5
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3QoKQogICAgIGV3a19mcmFtZV9yZWRpcmVjdF9jYW5jZWxsZWQobV9mcmFtZSk7CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBLVVJMJiwgZG91YmxlLCBkb3VibGUpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgS1VSTCYgdXJsLCBk
b3VibGUsIGRvdWJsZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV3a19mcmFtZV9y
ZWRpcmVjdF9yZXF1ZXN0ZWQobV9mcmFtZSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IDRhZjAwYjMu
LjI0YTEyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC0xMjI2LDYgKzEy
MjYsMzMgQEAgdm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfY2FuY2VsbGVkKEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSkKIAogLyoqCiAgKiBAaW50ZXJuYWwKKyAqIFJlcG9ydHMgcmVjZWlwdCBvZiBzZXJ2
ZXIgcmVkaXJlY3QgZm9yIHByb3Zpc2lvbmFsIGxvYWQuCisgKgorICogQHBhcmFtIGV3a0ZyYW1l
IEZyYW1lLgorICoKKyAqIEVtaXRzIHNpZ25hbDogInJlZGlyZWN0LGxvYWQscHJvdmlzaW9uYWwi
CisgKi8KK3ZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X3Byb3Zpc2lvbmFsX2xvYWQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdr
RnJhbWUsICJyZWRpcmVjdCxsb2FkLHByb3Zpc2lvbmFsIiwgMCk7Cit9CisKKy8qKgorICogQGlu
dGVybmFsCisgKiBSZXBvcnRzIHRoYXQgYSBjbGllbnQgcmVkaXJlY3Qgd2lsbCBiZSBwZXJmb3Jt
ZWQuCisgKgorICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1lLgorICogQHBhcmFtIHVybCBSZWRpcmVj
dGlvbiBVUkwuCisgKgorICogRW1pdHMgc2lnbmFsOiAicmVkaXJlY3QscmVxdWVzdGVkIgorICov
Cit2b2lkIGV3a19mcmFtZV9yZWRpcmVjdF9yZXF1ZXN0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1l
LCBjb25zdCBjaGFyKiB1cmwpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2Fs
bChld2tGcmFtZSwgInJlZGlyZWN0LHJlcXVlc3RlZCIsICh2b2lkKil1cmwpOworfQorCisvKioK
KyAqIEBpbnRlcm5hbAogICogUmVwb3J0cyBhIHJlc291cmNlIHdpbGwgYmUgcmVxdWVzdGVkLiBV
c2VyIG1heSBvdmVycmlkZSBiZWhhdmlvciBvZiB3ZWJraXQgYnkKICAqIGNoYW5naW5nIHZhbHVl
cyBpbiBAcGFyYW0gcmVxdWVzdC4KICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKaW5kZXgg
NmRhMTM2YS4uYmM4NWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19m
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaApAQCAtNjEsNiAr
NjEsOCBAQAogICogIC0gIm1peGVkY29udGVudCxydW4iLCB2b2lkOiBmcmFtZSBoYXMgbG9hZGVk
IGFuZCBydW4gbWl4ZWQgY29udGVudC4KICAqICAtICJuYXZpZ2F0aW9uLGZpcnN0Iiwgdm9pZDog
Zmlyc3QgbmF2aWdhdGlvbiB3YXMgb2NjdXJyZWQuCiAgKiAgLSAicmVkaXJlY3QsY2FuY2VsbGVk
Iiwgdm9pZDogY2xpZW50IHJlZGlyZWN0IHdhcyBjYW5jZWxsZWQuCisgKiAgLSAicmVkaXJlY3Qs
bG9hZCxwcm92aXNpb25hbCIsIHZvaWQ6IHJlY2VpdmVkIHNlcnZlciByZWRpcmVjdCBmb3IgcHJv
dmlzaW9uYWwgbG9hZC4KKyAqICAtICJyZWRpcmVjdCxyZXF1ZXN0ZWQiLCBjb25zdCBjaGFyKjog
dXJsIG9mIHRoZSBjbGllbnQgcmVkaXJlY3QgdGhhdCB3aWxsIGJlIHBlcmZvcm1lZC4KICAqICAt
ICJyZXNvdXJjZSxyZXF1ZXN0LG5ldyIsIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KjogcmVw
b3J0cyB0aGF0CiAgKiAgICB0aGVyZSdzIGEgbmV3IHJlc291cmNlIHJlcXVlc3QuCiAgKiAgLSAi
cmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyo6
IGEgcmVzb3VyY2Ugd2lsbCBiZSByZXF1ZXN0ZWQuCkBAIC0xMzUsNiArMTM3LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSBFd2tfRnJhbWVfUmVzb3VyY2Vf
UmVzcG9uc2U7CiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSB7CiAgICAgY29u
c3QgY2hhciAqdXJsOyAvKio8IHVybCBvZiB0aGUgcmVzb3VyY2UgKi8KICAgICBpbnQgc3RhdHVz
X2NvZGU7IC8qKjwgaHR0cCBzdGF0dXMgY29kZSAqLworICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllcjsgLyoqPCBpZGVudGlmaWVyIG9mIHJlc291cmNlICovCiB9OwogCiAvLy8gQ3JlYXRlcyBh
IHR5cGUgbmFtZSBmb3IgX0V3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19wcml2YXRlLmgKaW5kZXggYjVjNTFjMC4uMjZkNDQ4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19wcml2YXRlLmgKQEAgLTIyNiw2ICsyMjYsOCBAQCB2b2lkIGV3a19mcmFtZV9sb2Fk
X2Vycm9yKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogZXJyb3JEb21haW4sIGlu
dCBlcgogdm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSk7CiAKIHZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X2NhbmNlbGxlZChFdmFzX09iamVj
dCogZXdrRnJhbWUpOwordm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfcHJvdmlzaW9uYWxfbG9hZChF
dmFzX09iamVjdCogZXdrRnJhbWUpOwordm9pZCBld2tfZnJhbWVfcmVkaXJlY3RfcmVxdWVzdGVk
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdXJsKTsKIHZvaWQgZXdrX2ZyYW1l
X3JlcXVlc3Rfd2lsbF9zZW5kKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ZyYW1lX1Jlc291
cmNlX01lc3NhZ2VzKiBtZXNzYWdlcyk7CiB2b2lkIGV3a19mcmFtZV9yZXF1ZXN0X2Fzc2lnbl9p
ZGVudGlmaWVyKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgRXdrX0ZyYW1lX1Jlc291cmNl
X1JlcXVlc3QqIHJlcXVlc3QpOwogdm9pZCBld2tfZnJhbWVfcmVzcG9uc2VfcmVjZWl2ZWQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lLCBFd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9uc2UqIHJlc3BvbnNl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
NzJiYjc2ZS4uMjY2ZWMwZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEyLTA1LTA0ICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKKyAgICAgICAgW0VGTF0gRnJhbWUgbG9h
ZCBjYWxsYmFja3Mgb3V0cHV0IGlzIG1pc3NpbmcgZm9yIHJlZGlyZWN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxNzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgorCisgICAgICAgIENhdGNoIHRoZSBuZXcgZXdrX2Zy
YW1lIHNpZ25hbHMgdG8gcHJpbnQgdGhlIGV4cGVjdGVkIG91dHB1dCBpbiBjYXNlCisgICAgICAg
IG9mIHJlZGlyZWN0aW9ucywgd2hlbiBMYXlvdXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKQorICAgICAgICByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6
Om9uV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lQ3JlYXRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpv
bkZyYW1lUmVkaXJlY3RSZXF1ZXN0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6
Om9uUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlQ2hyb21lLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisKKzIw
MTItMDUtMDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4K
KwogICAgICAgICBbRUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBzdXBwb3J0IG92
ZXJyaWRpbmcgV2ViS2l0TG9hZFNpdGVJY29uc0tleQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxNzEKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggNmM4Y2E1NS4uY2ExNjI0NyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUu
Y3BwCkBAIC0xMTIsNiArMTEyLDggQEAgRXZhc19PYmplY3QqIER1bXBSZW5kZXJUcmVlQ2hyb21l
OjpjcmVhdGVWaWV3KCkgY29uc3QKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQo
bWFpbkZyYW1lLCAibG9hZCxmaW5pc2hlZCIsIG9uRnJhbWVMb2FkRmluaXNoZWQsIDApOwogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLGVycm9yIiwg
b25GcmFtZUxvYWRFcnJvciwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KG1haW5GcmFtZSwgInJlZGlyZWN0LGNhbmNlbGxlZCIsIG9uRnJhbWVSZWRpcmVjdENhbmNlbGxl
ZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgInJl
ZGlyZWN0LGxvYWQscHJvdmlzaW9uYWwiLCBvbkZyYW1lUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJy
ZWRpcmVjdCxyZXF1ZXN0ZWQiLCBvbkZyYW1lUmVkaXJlY3RSZXF1ZXN0ZWQsIDApOwogICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJ4c3MsZGV0ZWN0ZWQiLCBv
bkRpZERldGVjdFhTUywgMCk7CiAKICAgICByZXR1cm4gdmlldzsKQEAgLTQ5Nyw2ICs0OTksOCBA
QCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lQ3JlYXRlZCh2b2lkKiwgRXZhc19P
YmplY3QqLCB2b2lkKiBldmVudEluZm8pCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGZyYW1lLCAibG9hZCxmaW5pc2hlZCIsIG9uRnJhbWVMb2FkRmluaXNoZWQsIDApOwogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgImxvYWQsZXJyb3IiLCBvbkZy
YW1lTG9hZEVycm9yLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJh
bWUsICJyZWRpcmVjdCxjYW5jZWxsZWQiLCBvbkZyYW1lUmVkaXJlY3RDYW5jZWxsZWQsIDApOwor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgInJlZGlyZWN0LGxvYWQs
cHJvdmlzaW9uYWwiLCBvbkZyYW1lUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQsIDApOworICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgInJlZGlyZWN0LHJlcXVlc3Rl
ZCIsIG9uRnJhbWVSZWRpcmVjdFJlcXVlc3RlZCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKGZyYW1lLCAieHNzLGRldGVjdGVkIiwgb25EaWREZXRlY3RYU1MsIDApOwog
fQogCkBAIC01NTQsNiArNTU4LDI0IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJh
bWVSZWRpcmVjdENhbmNlbGxlZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2CiAgICAgfQog
fQogCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFk
b25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7
CisgICAgICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
OjpzdWl0YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIsIGZyYW1l
TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uRnJhbWVSZWRpcmVjdFJlcXVlc3RlZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2
b2lkKiBldmVudEluZm8pCit7CisgICAgY29uc3QgY2hhciogdXJsID0gc3RhdGljX2Nhc3Q8Y29u
c3QgY2hhcio+KGV2ZW50SW5mbyk7CisKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250
cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5n
IGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1l
KGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkw6ICVzIFxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCksIHBhdGhTdWl0YWJsZUZvclRl
c3RSZXN1bHQodXJsKS5kYXRhKCkpOworICAgIH0KK30KKwogdm9pZCBEdW1wUmVuZGVyVHJlZUNo
cm9tZTo6b25EaWREZXRlY3RYU1Modm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKikKIHsK
ICAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkpCkBAIC01NjcsNyArNTg5LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25SZXNwb25zZVJlY2VpdmVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW4KICAg
ICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzKCkpIHsKICAgICAgICAgQ1N0cmluZyByZXNwb25zZURlc2NyaXB0aW9uKGRlc2NyaXB0
aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlc3BvbnNlKSk7CiAgICAgICAgIHByaW50ZigiJXMg
LSBkaWRSZWNlaXZlUmVzcG9uc2UgJXNcbiIsCi0gICAgICAgICAgICAgICBwYXRoU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHJlc3BvbnNlLT51cmwpLmRhdGEoKSwKKyAgICAgICAgICAgICAgIG1fZHVt
cEFzc2lnbmVkVXJscy5jb250YWlucyhyZXNwb25zZS0+aWRlbnRpZmllcikgPyBtX2R1bXBBc3Np
Z25lZFVybHMuZ2V0KHJlc3BvbnNlLT5pZGVudGlmaWVyKS5kYXRhKCkgOiAiPHVua25vd24+IiwK
ICAgICAgICAgICAgICAgIHJlc3BvbnNlRGVzY3JpcHRpb24uZGF0YSgpKTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCmluZGV4
IDI0NTBlN2IuLmNiYTNkYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1w
UmVuZGVyVHJlZUNocm9tZS5oCkBAIC05Niw2ICs5Niw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGlj
IHZvaWQgb25GcmFtZUxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiAK
ICAgICBzdGF0aWMgdm9pZCBvbkZyYW1lUmVkaXJlY3RDYW5jZWxsZWQodm9pZCosIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCopOworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgb25G
cmFtZVJlZGlyZWN0UmVxdWVzdGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIAogICAg
IHN0YXRpYyB2b2lkIG9uRnJhbWVMb2FkRXJyb3Iodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCop
OwogICAgIHN0YXRpYyB2b2lkIG9uRGlkRGV0ZWN0WFNTKHZvaWQqLCBFdmFzX09iamVjdCosIHZv
aWQqKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>