<?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>67794</bug_id>
          
          <creation_ts>2011-09-08 12:39:23 -0700</creation_ts>
          <short_desc>WebKit2: Assertion when calling didPerform*Redirect on null source/destination URL string</short_desc>
          <delta_ts>2011-09-08 16:42:17 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>beidson</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>464256</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-09-08 12:39:23 -0700</bug_when>
    <thetext>We shouldn&apos;t call WebHistoryClient::didPerformClientRedirect or WebHistoryClient::didPerformServerRedirect when the source or destination URL string is empty or null. When we are creating a CFURLRef from a WKURL in WKURLCF.cpp, we assert that the string inside the WKURLRef is non-null.

Calling WebHistoryClient::didPerform*Redirect will turn the URL strings into URLs, and we don&apos;t want that in the case where they are null or empty.

&lt;rdar://problem/9892024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464414</commentid>
    <comment_count>1</comment_count>
      <attachid>106797</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-09-08 15:07:55 -0700</bug_when>
    <thetext>Created attachment 106797
[PATCH] Fix + Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464421</commentid>
    <comment_count>2</comment_count>
      <attachid>106797</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-08 15:10:59 -0700</bug_when>
    <thetext>Comment on attachment 106797
[PATCH] Fix + Test

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

&gt; Source/WebKit2/ChangeLog:4
&gt; +        WebKit2: Don&apos;t call WebHistoryClient didPerform*Redirect when source or destination is empty
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=67794

It would be better if the bug title described a user-visible symptom.

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Don&apos;t call didPerformClientRedirect or didPerformServerRedirect when source or destination URL string
&gt; +        is empty or null.

If the bug title described an actual problem, your ChangeLog might become more informative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464429</commentid>
    <comment_count>3</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-09-08 15:18:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 106797 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106797&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:4
&gt; &gt; +        WebKit2: Don&apos;t call WebHistoryClient didPerform*Redirect when source or destination is empty
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=67794
&gt; 
&gt; It would be better if the bug title described a user-visible symptom.

Changed it to mention the assert.

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        Don&apos;t call didPerformClientRedirect or didPerformServerRedirect when source or destination URL string
&gt; &gt; +        is empty or null.
&gt; 
&gt; If the bug title described an actual problem, your ChangeLog might become more informative.

Added some more detail to the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464433</commentid>
    <comment_count>4</comment_count>
      <attachid>106801</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-09-08 15:20:23 -0700</bug_when>
    <thetext>Created attachment 106801
[PATCH] Fix + Test + Better ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464448</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-09-08 15:44:37 -0700</bug_when>
    <thetext>Landed in r94812.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464493</commentid>
    <comment_count>6</comment_count>
      <attachid>106801</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-08 16:42:17 -0700</bug_when>
    <thetext>Comment on attachment 106801
[PATCH] Fix + Test + Better ChangeLog

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        WebKit2: Assertion when calling didPerform*Redirect on null source/destination URL string

It would be even better to describe this in terms of what a client app does that results in the assertion.

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Don&apos;t call didPerformClientRedirect or didPerformServerRedirect when source or destination URL string
&gt; +        is empty or null.
&gt; +        
&gt; +        If we call didPerformClientRedirect or didPerformServerRedirect when the source or destination is null,
&gt; +        it causes an assert in WKURLCF::WKURLCopyCFURL when we try to convert the WKURLRef into a CFURLRef.

This still doesn&apos;t explain why it&apos;s OK not to call the callbacks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106797</attachid>
            <date>2011-09-08 15:07:55 -0700</date>
            <delta_ts>2011-09-08 15:20:23 -0700</delta_ts>
            <desc>[PATCH] Fix + Test</desc>
            <filename>no_redirect_with_empty_url.patch</filename>
            <type>text/plain</type>
            <size>19723</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0ODA2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMDggIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdDI6IERvbid0
IGNhbGwgV2ViSGlzdG9yeUNsaWVudCBkaWRQZXJmb3JtKlJlZGlyZWN0IHdoZW4gc291cmNlIG9y
IGRlc3RpbmF0aW9uIGlzIGVtcHR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02Nzc5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTg5MjAyND4KKyAg
ICAgICAgCisgICAgICAgIERvbid0IGNhbGwgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0IG9yIGRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCB3aGVuIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBVUkwgc3Ry
aW5nCisgICAgICAgIGlzIGVtcHR5IG9yIG51bGwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6IFJldHVy
biBlYXJseSBpZiB0aGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIFVSTCBzdHJpbmcgaXMgZW1wdHkg
b3IgbnVsbC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlkUGVyZm9ybVNlcnZlclJl
ZGlyZWN0KTogRGl0dG8uCisKIDIwMTEtMDktMDggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCByZWxlYXNlIHRoZSBtb2RhbCBwbGFjZWhvbGRl
ciB3aW5kb3cgaWYgaXQncyBjbG9zZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAJKHJldmlzaW9uIDk0NzYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzIsNiArNDMyLDkgQEAgdm9pZCBX
ZWJDb250ZXh0OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlYwogICAgIFdlYlBhZ2VQcm94eSogcGFn
ZSA9IG1fcHJvY2Vzcy0+d2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHNvdXJjZVVSTFN0cmluZy5pc0VtcHR5KCkgfHwgZGVzdGluYXRp
b25VUkxTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAgICAgCiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NB
R0VfQ0hFQ0soZnJhbWUpOwpAQCAtNDQ2LDYgKzQ0OSw5IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlk
UGVyZm9ybVNlcnZlclJlZGlyZWMKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKICAg
ICAKKyAgICBpZiAoc291cmNlVVJMU3RyaW5nLmlzRW1wdHkoKSB8fCBkZXN0aW5hdGlvblVSTFN0
cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVD
SyhmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDSyhmcmFtZS0+cGFnZSgpID09IHBhZ2UpOwpJbmRl
eDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gOTQ4MDYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwz
NSBAQAorMjAxMS0wOS0wOCAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViS2l0MjogRG9uJ3QgY2FsbCBXZWJIaXN0b3J5Q2xpZW50IGRpZFBlcmZv
cm0qUmVkaXJlY3Qgd2hlbiBzb3VyY2Ugb3IgZGVzdGluYXRpb24gaXMgZW1wdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Nzk0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS85ODkyMDI0PgorICAgICAgICAKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0
IHdlIGRvbid0IHNlbmQgYSBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qgd2hlbiBhIGxvYWQgaXMg
Y2FuY2VsbGVkIGZyb20gd2lsbFNlbmRSZXF1ZXN0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0xv
YWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHA6IEFkZGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKTogU2V0IGZsYWdzIG9uIHdoZXRo
ZXIgd2UndmUgbG9hZGVkIHRoZSBtYWluIGZyYW1lLCBpZnJhbWUsIG9yIGJvdGguCisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpOiBTZXQgYSBmbGFnIGZv
ciB3aGV0aGVyIHdlJ3ZlIHBlcmZvcm1lZCBhIHNlcnZlciByZWRpcmVjdC4KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOiBTZXQgdXAgYSBXS1BhZ2VMb2FkZXJDbGllbnQgYW5kIFdLQ29u
dGV4dEhpc3RvcnlDbGllbnQsIGFuZCBsb2FkIHNpbXBsZS1pZnJhbWUuaHRtbC4KKyAgICAgICAg
ICAgIE9uY2UgYm90aCBmcmFtZXMgaGF2ZSBsb2FkZWQgKG1haW4gZnJhbWUgYW5kIGJsb2NrZWQg
aWZyYW1lKSwgbWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSBuZXZlciBjYWxsZWQKKyAgICAgICAgICAg
IGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Mb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNw
cDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2FkQ2FuY2VsZWROb1NlcnZlclJl
ZGlyZWN0Q2FsbGJhY2tUZXN0OjpMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tU
ZXN0KTogSW5pdGlhbGl6ZQorICAgICAgICAgICAgb3VyIEluamVjdGVkQnVuZGxlVGVzdC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFj
a1Rlc3Q6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKTogSWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBh
IHJlcXVlc3QKKyAgICAgICAgICAgIGZyb20gdGhlIG1haW4gZnJhbWUgKHRoZSBtYWluIHJlc291
cmNlIGluIHNpbXBsZS1pZnJhbWUuaHRtbCksIGFsbG93IGl0LiBJZiBub3QgKGRlYWxpbmcgd2l0
aCB0aGUgaWZyYW1lKSwgYmxvY2sKKyAgICAgICAgICAgIHRoZSByZXF1ZXN0LgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrVGVzdDo6
ZGlkQ3JlYXRlUGFnZSk6IFNldCB1cCB0aGUgV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3NpbXBsZS1pZnJhbWUu
aHRtbDogQWRkZWQuCisgICAgICAgIAorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qOiBEaXR0by4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUudmNwcm9qOiBE
aXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dpbi9jb3B5LXJlc291cmNlcy5jbWQ6IERp
dHRvLgorCiAyMDExLTA5LTA4ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBjaGVjay13ZWJraXQtc3R5bGU6IFJlZnxPd24gUHRyJiBzaG91bGQgYmUgYWxsb3dl
ZCBhcyBhIHBhcmFtZXRlci4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5
NDc2MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw2ICsxNyw5IEBACiAJCTMzM0I5Q0Uy
MTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMzQjlDRTExMjc3RjIzMTAwRkVG
Q0UzIC8qIFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAgKi87IH07CiAJCTMzQkU1QUY1MTM3QjVB
NkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBN
b3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEz
IC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3Vz
ZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi87IH07CisJCTMzREM4OTExMTQxOTUzQTMwMDc0
N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MTAxNDE5NTNBMzAw
NzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAgKi87IH07
CisJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MEUx
NDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAqLzsgfTsKKwkJMzNEQzg5MTQx
NDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19C
dW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RD
YWxsYmFja19CdW5kbGUuY3BwICovOyB9OwogCQkzM0U3OUUwNjEzN0I1RkQ5MDBFMzJEOTkgLyog
bW91c2UtbW92ZS1saXN0ZW5lci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTc5RTA1MTM3QjVGQ0UwMEUzMkQ5OSAvKiBtb3VzZS1t
b3ZlLWxpc3RlbmVyLmh0bWwgKi87IH07CiAJCTM3MjAwQjkyMTNBMTYyMzAwMDdBNEZBRCAvKiBW
ZWN0b3JSZXZlcnNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3MjAwQjkxMTNBMTYyMzAwMDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLzsg
fTsKIAkJMzc5OUFEM0ExNDEyMEE0MzAwNUVCMEM2IC8qIFN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHRGcm9tU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzc5OUFEMzkxNDEyMEE0MzAwNUVCMEM2IC8qIFN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHRGcm9tU3RyaW5nLm1tICovOyB9OwpAQCAtMTA4LDYgKzExMSw3IEBACiAJCQlkc3RQ
YXRoID0gIiI7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTMz
REM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDMDdFNkNCMjEzRkQ3MzkzMDAzOEIyMkIg
LyogZGV2aWNlUGl4ZWxSYXRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMzRTc5
RTA2MTM3QjVGRDkwMEUzMkQ5OSAvKiBtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0xMzUsNiArMTM5LDkgQEAKIAkJMzMzQjlDRTExMjc3RjIzMTAwRkVG
Q0UzIC8qIFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzM0JFNUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJD
cmFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3VzZU1vdmVB
ZnRlckNyYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVBRjgxMzdC
NUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3
IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzaW1w
bGUtaWZyYW1lLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0RDODkxMDE0
MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRDYW5jZWxlZE5vU2Vy
dmVyUmVkaXJlY3RDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMz
REM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2Fs
bGJhY2tfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
YWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzM0U3OUUwNTEzN0I1RkNFMDBFMzJEOTkgLyogbW91c2UtbW92
ZS1saXN0ZW5lci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm1vdXNlLW1vdmUt
bGlzdGVuZXIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MjAwQjkxMTNB
MTYyMzAwMDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFZlY3RvclJldmVyc2UuY3BwOyBwYXRoID0gV1RGL1ZlY3RvclJldmVy
c2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzk5QUQzOTE0MTIwQTQzMDA1
RUIwQzYgLyogU3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmcubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0RnJvbVN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzOSw2
ICszNDYsOCBAQAogCQkJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0
Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovLAogCQkJCUJDNTc1QUFDMTI2RTgzQjkwMDZGMEYxMiAv
KiBJbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCAqLywKIAkJCQlCQzU3NUFBRjEyNkU4M0M4MDA2RjBG
MTIgLyogSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwICovLAorCQkJCTMzREM4OTEwMTQx
OTUzQTMwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3Bw
ICovLAorCQkJCTMzREM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCAqLywKIAkJCQkzM0JFNUFGNDEzN0I1QTZDMDA3
MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgKi8sCiAJCQkJMzNCRTVBRjgxMzdCNUFB
RTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLywKIAkJCQlCQzkw
OTc3OTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCkBAIC0zNzYsNiAr
Mzg1LDcgQEAKIAkJCQkzM0U3OUUwNTEzN0I1RkNFMDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0
ZW5lci5odG1sICovLAogCQkJCTFBREJFRkJDMTMwQzZBMDEwMEQ2MUQxOSAvKiBzaW1wbGUtYWNj
ZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCAqLywKIAkJCQlDMEFEQkU4NDEyRkNBNkI2MDBEMkMx
MjkgLyogc2ltcGxlLWZvcm0uaHRtbCAqLywKKwkJCQkzM0RDODkwRTE0MTk1MzkzMDA3NDdFRjcg
Lyogc2ltcGxlLWlmcmFtZS5odG1sICovLAogCQkJCUJDOTA5Nzc4MTI1NTcxQUIwMDA4Mzc1NiAv
KiBzaW1wbGUuaHRtbCAqLywKIAkJCQlDMDJCNzg4MjEyNjYxNTQxMDAyNkJGMEYgLyogc3BhY2Vi
YXItc2Nyb2xsaW5nLmh0bWwgKi8sCiAJCQkpOwpAQCAtNTcwLDYgKzU4MCw3IEBACiAJCQkJQTdB
OTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzlCQTkxNzE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2Nh
bGVGYWN0b3JPbkJhY2subW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzk5QUQzQTE0MTIwQTQzMDA1
RUIwQzYgLyogU3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmcubW0gaW4gU291
cmNlcyAqLywKKwkJCQkzM0RDODkxMTE0MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9T
ZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTg4LDYgKzU5OSw3
IEBACiAJCQkJQkMyNDZEOUMxMzJGMUZGMDAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVu
ZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzQkU1QUY5MTM3QjVBQUUwMDcwNTgxMyAvKiBN
b3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUVERTIy
NjEzRTVFN0U3MDBFNjJGRTggLyogSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5v
U2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcAkocmV2aXNp
b24gMCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Mb2FkQ2FuY2VsZWRO
b1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkphdmFTY3JpcHRUZXN0LmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKworI2luY2x1
ZGUgPFdlYktpdDIvV0tDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0ZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK3N0YXRpYyBib29sIGxvYWRlZE1haW5GcmFtZTsKK3N0YXRpYyBib29sIGxvYWRlZElG
cmFtZTsKK3N0YXRpYyBib29sIGxvYWRlZEFsbEZyYW1lczsKKworc3RhdGljIGJvb2wgcGVyZm9y
bWVkU2VydmVyUmVkaXJlY3Q7CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7Cisg
ICAgaWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIGxvYWRlZE1haW5GcmFt
ZSA9IHRydWU7CisgICAgZWxzZQorICAgICAgICBsb2FkZWRJRnJhbWUgPSB0cnVlOworCisgICAg
bG9hZGVkQWxsRnJhbWVzID0gbG9hZGVkTWFpbkZyYW1lICYmIGxvYWRlZElGcmFtZTsKK30KKwor
c3RhdGljIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFdLQ29udGV4dFJlZiBjb250ZXh0
LCBXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlv
blVSTCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBw
ZXJmb3JtZWRTZXJ2ZXJSZWRpcmVjdCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0MiwgTG9hZENh
bmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRC
dW5kbGVUZXN0KCJMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tUZXN0IikpOwor
ICAgIAorICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IGluamVjdGVkQnVuZGxlQ2xp
ZW50OworICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3Rl
ZEJ1bmRsZUNsaWVudCkpOworICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LnZlcnNpb24gPSAwOwor
ICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmNsaWVudEluZm8gPSAwOworICAgIFdLQ29udGV4dFNl
dEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVu
dCk7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAg
IFdLUGFnZUxvYWRlckNsaWVudCBsb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZsb2FkZXJDbGll
bnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKKyAgICAKKyAgICBsb2FkZXJDbGllbnQudmVy
c2lvbiA9IDA7CisgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZp
bmlzaExvYWRGb3JGcmFtZTsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcu
cGFnZSgpLCAmbG9hZGVyQ2xpZW50KTsKKyAgICAKKyAgICBXS0NvbnRleHRIaXN0b3J5Q2xpZW50
IGhpc3RvcnlDbGllbnQ7CisgICAgbWVtc2V0KCZoaXN0b3J5Q2xpZW50LCAwLCBzaXplb2YoaGlz
dG9yeUNsaWVudCkpOworICAgIAorICAgIGhpc3RvcnlDbGllbnQudmVyc2lvbiA9IDA7CisgICAg
aGlzdG9yeUNsaWVudC5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QgPSBkaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3Q7CisgICAgV0tDb250ZXh0U2V0SGlzdG9yeUNsaWVudChjb250ZXh0LmdldCgpLCAm
aGlzdG9yeUNsaWVudCk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ss
IFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwiKSk7Cisg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpy
dW4oJmxvYWRlZEFsbEZyYW1lcyk7CisgICAgCisgICAgLy8gV2Ugc2hvdWxkbid0IGhhdmUgcGVy
Zm9ybWVkIGEgc2VydmVyIHJlZGlyZWN0IHdoZW4gdGhlIGlmcmFtZSBsb2FkIHdhcyBjYW5jZWxs
ZWQuCisgICAgRVhQRUNUX0ZBTFNFKHBlcmZvcm1lZFNlcnZlclJlZGlyZWN0KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL0xvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Mb2FkQ2Fu
Y2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcAkocmV2aXNpb24gMCkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Mb2FkQ2FuY2VsZWROb1NlcnZlclJl
ZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVRlc3QuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKworI2luY2x1ZGUgPFdlYktp
dDIvV0tCdW5kbGVQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworICAgIAorY2xhc3MgTG9hZENhbmNl
bGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrVGVzdCA6IHB1YmxpYyBJbmplY3RlZEJ1bmRsZVRl
c3QgeworcHVibGljOgorICAgIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja1Rl
c3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgICAgIDogSW5qZWN0ZWRCdW5k
bGVUZXN0KGlkZW50aWZpZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgV0tVUkxS
ZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVl
c3RSZWYgcmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgLy8gQWxsb3cgdGhlIGxvYWRpbmcgb2Yg
dGhlIG1haW4gcmVzb3VyY2UsIGJ1dCBkb24ndCBhbGxvdyB0aGUgbG9hZGluZyBvZiBhbiBpZnJh
bWUsIHJldHVybiBudWxsIGZyb20gd2lsbFNlbmRSZXF1ZXN0LgorICAgICAgICBpZiAoV0tCdW5k
bGVGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkgeworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tV
UkxSZXF1ZXN0UmVmPiBuZXdSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgICAgIHJldHVybiBu
ZXdSZXF1ZXN0LmxlYWtSZWYoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYg
YnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKKyAgICB7CisgICAgICAgIFdLQnVuZGxlUGFn
ZVJlc291cmNlTG9hZENsaWVudCByZXNvdXJjZUxvYWRDbGllbnQ7CisgICAgICAgIG1lbXNldCgm
cmVzb3VyY2VMb2FkQ2xpZW50LCAwLCBzaXplb2YocmVzb3VyY2VMb2FkQ2xpZW50KSk7CisgICAg
ICAgIAorICAgICAgICByZXNvdXJjZUxvYWRDbGllbnQudmVyc2lvbiA9IDA7CisgICAgICAgIHJl
c291cmNlTG9hZENsaWVudC53aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSA9IHdpbGxTZW5kUmVxdWVz
dEZvckZyYW1lOworCisgICAgICAgIFdLQnVuZGxlUGFnZVNldFJlc291cmNlTG9hZENsaWVudChw
YWdlLCAmcmVzb3VyY2VMb2FkQ2xpZW50KTsKKworICAgIH0KK307CisKK3N0YXRpYyBJbmplY3Rl
ZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVyPExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFj
a1Rlc3Q+IHJlZ2lzdHJhcigiTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrVGVz
dCIpOworCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvc2ltcGxlLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9zaW1wbGUtaWZyYW1lLmh0bWwJKHJldmlz
aW9uIDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvc2ltcGxlLWlmcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKzxodG1sPgorPGJvZHk+CisgIFNp
bXBsZSBIVE1MIGZpbGUuCisgIDxpZnJhbWUgc3JjPSJzaW1wbGUuaHRtbCI+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0
QVBJLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2Vi
S2l0QVBJLnZjcHJvagkocmV2aXNpb24gOTQ3NjIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL3dp
bi9UZXN0V2ViS2l0QVBJLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNDg0LDYgKzQ4NCwxMCBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VGVzdHNcV2ViS2l0MlxMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVz
dHNcV2ViS2l0Mlxtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CkBAIC01MjAsNiArNTI0LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXHNpbXBsZS1pZnJhbWUuaHRtbCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3Rz
XFdlYktpdDJcc2ltcGxlLmh0bWwiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUudmNwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUElJbmplY3RlZEJ1
bmRsZS52Y3Byb2oJKHJldmlzaW9uIDk0NzYyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
VGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNDIw
LDYgKzQyMCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cVGVzdHNcV2ViS2l0MlxMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2Fs
bGJhY2tfQnVuZGxlLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUu
Y3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
Y29weS1yZXNvdXJjZXMuY21kCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2lu
L2NvcHktcmVzb3VyY2VzLmNtZAkocmV2aXNpb24gOTQ3NjIpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL3dpbi9jb3B5LXJlc291cmNlcy5jbWQJKHdvcmtpbmcgY29weSkKQEAgLTE2LDYgKzE2LDcg
QEAgZm9yICUlZiBpbiAoCiAgICAgLi5cVGVzdHNcV2ViS2l0MlxzaW1wbGUuaHRtbAogICAgIC4u
XFRlc3RzXFdlYktpdDJcc2ltcGxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nLmh0bWwKICAgICAu
LlxUZXN0c1xXZWJLaXQyXHNpbXBsZS1mb3JtLmh0bWwKKyAgICAuLlxUZXN0c1xXZWJLaXQyXHNp
bXBsZS1pZnJhbWUuaHRtbAogICAgIC4uXFRlc3RzXFdlYktpdDJcc3BhY2ViYXItc2Nyb2xsaW5n
Lmh0bWwKICkgZG8gKAogICAgIHhjb3B5IC95IC9kICUlZiAiJVJlc291cmNlc0RpcmVjdG9yeSUi
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106801</attachid>
            <date>2011-09-08 15:20:23 -0700</date>
            <delta_ts>2011-09-08 16:42:17 -0700</delta_ts>
            <desc>[PATCH] Fix + Test + Better ChangeLog</desc>
            <filename>no_redirect_with_empty_url.patch</filename>
            <type>text/plain</type>
            <size>19949</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0ODA2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMDggIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdDI6IEFzc2Vy
dGlvbiB3aGVuIGNhbGxpbmcgZGlkUGVyZm9ybSpSZWRpcmVjdCBvbiBudWxsIHNvdXJjZS9kZXN0
aW5hdGlvbiBVUkwgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Nzc5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTg5MjAyND4KKyAgICAg
ICAgCisgICAgICAgIERvbid0IGNhbGwgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0IG9yIGRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdCB3aGVuIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBVUkwgc3RyaW5n
CisgICAgICAgIGlzIGVtcHR5IG9yIG51bGwuCisgICAgICAgIAorICAgICAgICBJZiB3ZSBjYWxs
IGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCBvciBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qgd2hl
biB0aGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGlzIG51bGwsCisgICAgICAgIGl0IGNhdXNlcyBh
biBhc3NlcnQgaW4gV0tVUkxDRjo6V0tVUkxDb3B5Q0ZVUkwgd2hlbiB3ZSB0cnkgdG8gY29udmVy
dCB0aGUgV0tVUkxSZWYgaW50byBhIENGVVJMUmVmLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOiBSZXR1
cm4gZWFybHkgaWYgdGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBVUkwgc3RyaW5nIGlzIGVtcHR5
IG9yIG51bGwuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdCk6IERpdHRvLgorCiAyMDExLTA5LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgcmVsZWFzZSB0aGUgbW9kYWwgcGxhY2Vob2xk
ZXIgd2luZG93IGlmIGl0J3MgY2xvc2VkCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwCShyZXZpc2lvbiA5NDc2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMyLDYgKzQzMiw5IEBAIHZvaWQg
V2ViQ29udGV4dDo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWMKICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSBtX3Byb2Nlc3MtPndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybjsKKworICAgIGlmIChzb3VyY2VVUkxTdHJpbmcuaXNFbXB0eSgpIHx8IGRlc3RpbmF0
aW9uVVJMU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNT
QUdFX0NIRUNLKGZyYW1lKTsKQEAgLTQ0Niw2ICs0NDksOSBAQCB2b2lkIFdlYkNvbnRleHQ6OmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAg
ICAgCisgICAgaWYgKHNvdXJjZVVSTFN0cmluZy5pc0VtcHR5KCkgfHwgZGVzdGluYXRpb25VUkxT
dHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgCiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hF
Q0soZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUtPnBhZ2UoKSA9PSBwYWdlKTsKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDk0ODA2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMTEtMDktMDggIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYktpdDI6IEFzc2VydGlvbiB3aGVuIGNhbGxpbmcgZGlkUGVyZm9ybSpS
ZWRpcmVjdCBvbiBudWxsIHNvdXJjZS9kZXN0aW5hdGlvbiBVUkwgc3RyaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc5NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vOTg5MjAyND4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCB3
ZSBkb24ndCBzZW5kIGEgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0IHdoZW4gYSBsb2FkIGlzIGNh
bmNlbGxlZCBmcm9tIHdpbGxTZW5kUmVxdWVzdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Mb2Fk
Q2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6IFNldCBmbGFncyBvbiB3aGV0aGVy
IHdlJ3ZlIGxvYWRlZCB0aGUgbWFpbiBmcmFtZSwgaWZyYW1lLCBvciBib3RoLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KTogU2V0IGEgZmxhZyBmb3Ig
d2hldGhlciB3ZSd2ZSBwZXJmb3JtZWQgYSBzZXJ2ZXIgcmVkaXJlY3QuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKTogU2V0IHVwIGEgV0tQYWdlTG9hZGVyQ2xpZW50IGFuZCBXS0NvbnRl
eHRIaXN0b3J5Q2xpZW50LCBhbmQgbG9hZCBzaW1wbGUtaWZyYW1lLmh0bWwuCisgICAgICAgICAg
ICBPbmNlIGJvdGggZnJhbWVzIGhhdmUgbG9hZGVkIChtYWluIGZyYW1lIGFuZCBibG9ja2VkIGlm
cmFtZSksIG1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgbmV2ZXIgY2FsbGVkCisgICAgICAgICAgICBk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHA6
IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrVGVzdDo6TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrVGVz
dCk6IEluaXRpYWxpemUKKyAgICAgICAgICAgIG91ciBJbmplY3RlZEJ1bmRsZVRlc3QuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tU
ZXN0Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6IElmIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBy
ZXF1ZXN0CisgICAgICAgICAgICBmcm9tIHRoZSBtYWluIGZyYW1lICh0aGUgbWFpbiByZXNvdXJj
ZSBpbiBzaW1wbGUtaWZyYW1lLmh0bWwpLCBhbGxvdyBpdC4gSWYgbm90IChkZWFsaW5nIHdpdGgg
dGhlIGlmcmFtZSksIGJsb2NrCisgICAgICAgICAgICB0aGUgcmVxdWVzdC4KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OkxvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja1Rlc3Q6OmRp
ZENyZWF0ZVBhZ2UpOiBTZXQgdXAgdGhlIFdLQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9zaW1wbGUtaWZyYW1lLmh0
bWw6IEFkZGVkLgorICAgICAgICAKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvajogRGl0dG8uCisgICAgICAgICog
VGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnZjcHJvajogRGl0
dG8uCisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vY29weS1yZXNvdXJjZXMuY21kOiBEaXR0
by4KKwogMjAxMS0wOS0wOCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlOiBSZWZ8T3duIFB0ciYgc2hvdWxkIGJlIGFsbG93ZWQg
YXMgYSBwYXJhbWV0ZXIuCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTQ3
NjIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcsOSBAQAogCQkzMzNCOUNFMjEy
NzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNF
MyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovOyB9OwogCQkzM0JFNUFGNTEzN0I1QTZD
MDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JFNUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91
c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgKi87IH07CiAJCTMzQkU1QUY5MTM3QjVBQUUwMDcwNTgxMyAv
KiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VN
b3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovOyB9OworCQkzM0RDODkxMTE0MTk1M0EzMDA3NDdF
RjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzREM4OTEwMTQxOTUzQTMwMDc0
N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwICovOyB9Owor
CQkzM0RDODkxMjE0MTk1NUZFMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzREM4OTBFMTQx
OTUzOTMwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwgKi87IH07CisJCTMzREM4OTE0MTQx
OTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVu
ZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMz
REM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2Fs
bGJhY2tfQnVuZGxlLmNwcCAqLzsgfTsKIAkJMzNFNzlFMDYxMzdCNUZEOTAwRTMyRDk5IC8qIG1v
dXNlLW1vdmUtbGlzdGVuZXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U3OUUwNTEzN0I1RkNFMDBFMzJEOTkgLyogbW91c2UtbW92
ZS1saXN0ZW5lci5odG1sICovOyB9OwogCQkzNzIwMEI5MjEzQTE2MjMwMDA3QTRGQUQgLyogVmVj
dG9yUmV2ZXJzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzIwMEI5MTEzQTE2MjMwMDA3QTRGQUQgLyogVmVjdG9yUmV2ZXJzZS5jcHAgKi87IH07
CiAJCTM3OTlBRDNBMTQxMjBBNDMwMDVFQjBDNiAvKiBTdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0RnJvbVN0cmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3OTlBRDM5MTQxMjBBNDMwMDVFQjBDNiAvKiBTdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0RnJvbVN0cmluZy5tbSAqLzsgfTsKQEAgLTEwOCw2ICsxMTEsNyBAQAogCQkJZHN0UGF0
aCA9ICIiOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkzM0RD
ODkxMjE0MTk1NUZFMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTFBOUU1MkM5MTNFNjVFRjQwMDY5MTdGNSAvKiAxOC1jaGFyYWN0ZXJzLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzA3RTZDQjIxM0ZENzM5MzAwMzhCMjJCIC8q
IGRldmljZVBpeGVsUmF0aW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkzM0U3OUUw
NjEzN0I1RkQ5MDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5lci5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLApAQCAtMTM1LDYgKzEzOSw5IEBACiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNF
MyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHJldmVudEVtcHR5VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzNCRTVBRjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jh
c2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0
ZXJDcmFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY4MTM3QjVB
QUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzREM4OTBFMTQxOTUzOTMwMDc0N0VGNyAv
KiBzaW1wbGUtaWZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2ltcGxl
LWlmcmFtZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNEQzg5MTAxNDE5
NTNBMzAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0RD
ODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxi
YWNrX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2Fk
Q2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzNFNzlFMDUxMzdCNUZDRTAwRTMyRDk5IC8qIG1vdXNlLW1vdmUt
bGlzdGVuZXIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJtb3VzZS1tb3ZlLWxp
c3RlbmVyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzIwMEI5MTEzQTE2
MjMwMDA3QTRGQUQgLyogVmVjdG9yUmV2ZXJzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBWZWN0b3JSZXZlcnNlLmNwcDsgcGF0aCA9IFdURi9WZWN0b3JSZXZlcnNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc5OUFEMzkxNDEyMEE0MzAwNUVC
MEM2IC8qIFN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9tU3RyaW5nLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdEZyb21TdHJpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzksNiAr
MzQ2LDggQEAKIAkJCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCAqLywKIAkJCQlCQzU3NUFBQzEyNkU4M0I5MDA2RjBGMTIgLyog
SW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgKi8sCiAJCQkJQkM1NzVBQUYxMjZFODNDODAwNkYwRjEy
IC8qIEluamVjdGVkQnVuZGxlQmFzaWNfQnVuZGxlLmNwcCAqLywKKwkJCQkzM0RDODkxMDE0MTk1
M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCAq
LywKKwkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8sCiAJCQkJMzNCRTVBRjQxMzdCNUE2QzAwNzA1
ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwICovLAogCQkJCTMzQkU1QUY4MTM3QjVBQUUw
MDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi8sCiAJCQkJQkM5MDk3
NzkxMjU1NzFBQjAwMDgzNzU2IC8qIFBhZ2VMb2FkQmFzaWMuY3BwICovLApAQCAtMzc2LDYgKzM4
NSw3IEBACiAJCQkJMzNFNzlFMDUxMzdCNUZDRTAwRTMyRDk5IC8qIG1vdXNlLW1vdmUtbGlzdGVu
ZXIuaHRtbCAqLywKIAkJCQkxQURCRUZCQzEzMEM2QTAxMDBENjFEMTkgLyogc2ltcGxlLWFjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nLmh0bWwgKi8sCiAJCQkJQzBBREJFODQxMkZDQTZCNjAwRDJDMTI5
IC8qIHNpbXBsZS1mb3JtLmh0bWwgKi8sCisJCQkJMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8q
IHNpbXBsZS1pZnJhbWUuaHRtbCAqLywKIAkJCQlCQzkwOTc3ODEyNTU3MUFCMDAwODM3NTYgLyog
c2ltcGxlLmh0bWwgKi8sCiAJCQkJQzAyQjc4ODIxMjY2MTU0MTAwMjZCRjBGIC8qIHNwYWNlYmFy
LXNjcm9sbGluZy5odG1sICovLAogCQkJKTsKQEAgLTU3MCw2ICs1ODAsNyBAQAogCQkJCUE3QTk2
NkRCMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM5QkE5MTcxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxl
RmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OUFEM0ExNDEyMEE0MzAwNUVC
MEM2IC8qIFN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9tU3RyaW5nLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJMzNEQzg5MTExNDE5NTNBMzAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2Vy
dmVyUmVkaXJlY3RDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU4OCw2ICs1OTksNyBA
QAogCQkJCUJDMjQ2RDlDMTMyRjFGRjAwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRs
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0JFNUFGOTEzN0I1QUFFMDA3MDU4MTMgLyogTW91
c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFREUyMjYx
M0U1RTdFNzAwRTYyRkU4IC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTMzREM4OTE0MTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1Nl
cnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0xvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJl
Y3RDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL0xvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAJKHJldmlzaW9u
IDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9T
ZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJKYXZhU2NyaXB0VGVzdC5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisKKyNpbmNsdWRl
IDxXZWJLaXQyL1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tGcmFtZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
eworCitzdGF0aWMgYm9vbCBsb2FkZWRNYWluRnJhbWU7CitzdGF0aWMgYm9vbCBsb2FkZWRJRnJh
bWU7CitzdGF0aWMgYm9vbCBsb2FkZWRBbGxGcmFtZXM7CisKK3N0YXRpYyBib29sIHBlcmZvcm1l
ZFNlcnZlclJlZGlyZWN0OworCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQoreworICAg
IGlmIChXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICBsb2FkZWRNYWluRnJhbWUg
PSB0cnVlOworICAgIGVsc2UKKyAgICAgICAgbG9hZGVkSUZyYW1lID0gdHJ1ZTsKKworICAgIGxv
YWRlZEFsbEZyYW1lcyA9IGxvYWRlZE1haW5GcmFtZSAmJiBsb2FkZWRJRnJhbWU7Cit9CisKK3N0
YXRpYyB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHNvdXJjZVVSTCwgV0tVUkxSZWYgZGVzdGluYXRpb25V
UkwsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgcGVy
Zm9ybWVkU2VydmVyUmVkaXJlY3QgPSB0cnVlOworfQorCitURVNUKFdlYktpdDIsIExvYWRDYW5j
ZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjaykKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQoQWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVu
ZGxlVGVzdCgiTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrVGVzdCIpKTsKKyAg
ICAKKyAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCBpbmplY3RlZEJ1bmRsZUNsaWVu
dDsKKyAgICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRC
dW5kbGVDbGllbnQpKTsKKyAgICBpbmplY3RlZEJ1bmRsZUNsaWVudC52ZXJzaW9uID0gMDsKKyAg
ICBpbmplY3RlZEJ1bmRsZUNsaWVudC5jbGllbnRJbmZvID0gMDsKKyAgICBXS0NvbnRleHRTZXRJ
bmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQp
OworCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBX
S1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50
LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisgICAgCisgICAgbG9hZGVyQ2xpZW50LnZlcnNp
b24gPSAwOworICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBkaWRGaW5p
c2hMb2FkRm9yRnJhbWU7CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3LnBh
Z2UoKSwgJmxvYWRlckNsaWVudCk7CisgICAgCisgICAgV0tDb250ZXh0SGlzdG9yeUNsaWVudCBo
aXN0b3J5Q2xpZW50OworICAgIG1lbXNldCgmaGlzdG9yeUNsaWVudCwgMCwgc2l6ZW9mKGhpc3Rv
cnlDbGllbnQpKTsKKyAgICAKKyAgICBoaXN0b3J5Q2xpZW50LnZlcnNpb24gPSAwOworICAgIGhp
c3RvcnlDbGllbnQuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0ID0gZGlkUGVyZm9ybVNlcnZlclJl
ZGlyZWN0OworICAgIFdLQ29udGV4dFNldEhpc3RvcnlDbGllbnQoY29udGV4dC5nZXQoKSwgJmhp
c3RvcnlDbGllbnQpOworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOworICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6cnVu
KCZsb2FkZWRBbGxGcmFtZXMpOworICAgIAorICAgIC8vIFdlIHNob3VsZG4ndCBoYXZlIHBlcmZv
cm1lZCBhIHNlcnZlciByZWRpcmVjdCB3aGVuIHRoZSBpZnJhbWUgbG9hZCB3YXMgY2FuY2VsbGVk
LgorICAgIEVYUEVDVF9GQUxTRShwZXJmb3JtZWRTZXJ2ZXJSZWRpcmVjdCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Mb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNl
bGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAJKHJldmlzaW9uIDApCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrX0J1bmRsZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVUZXN0LmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLQnVuZGxlUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVGcmFtZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKyAgICAKK2NsYXNzIExvYWRDYW5jZWxl
ZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja1Rlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0
IHsKK3B1YmxpYzoKKyAgICBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tUZXN0
KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorICAgICAgICA6IEluamVjdGVkQnVuZGxl
VGVzdChpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFdLVVJMUmVx
dWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3QsIFdLVVJMUmVzcG9uc2VSZWYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKKyAgICB7CisgICAgICAgIC8vIEFsbG93IHRoZSBsb2FkaW5nIG9mIHRo
ZSBtYWluIHJlc291cmNlLCBidXQgZG9uJ3QgYWxsb3cgdGhlIGxvYWRpbmcgb2YgYW4gaWZyYW1l
LCByZXR1cm4gbnVsbCBmcm9tIHdpbGxTZW5kUmVxdWVzdC4KKyAgICAgICAgaWYgKFdLQnVuZGxl
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVxdWVzdFJlZj4gbmV3UmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgICAgICAgICByZXR1cm4gbmV3
UmVxdWVzdC5sZWFrUmVmKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1
bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCisgICAgeworICAgICAgICBXS0J1bmRsZVBhZ2VS
ZXNvdXJjZUxvYWRDbGllbnQgcmVzb3VyY2VMb2FkQ2xpZW50OworICAgICAgICBtZW1zZXQoJnJl
c291cmNlTG9hZENsaWVudCwgMCwgc2l6ZW9mKHJlc291cmNlTG9hZENsaWVudCkpOworICAgICAg
ICAKKyAgICAgICAgcmVzb3VyY2VMb2FkQ2xpZW50LnZlcnNpb24gPSAwOworICAgICAgICByZXNv
dXJjZUxvYWRDbGllbnQud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUgPSB3aWxsU2VuZFJlcXVlc3RG
b3JGcmFtZTsKKworICAgICAgICBXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQocGFn
ZSwgJnJlc291cmNlTG9hZENsaWVudCk7CisKKyAgICB9Cit9OworCitzdGF0aWMgSW5qZWN0ZWRC
dW5kbGVUZXN0OjpSZWdpc3RlcjxMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tU
ZXN0PiByZWdpc3RyYXIoIkxvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja1Rlc3Qi
KTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL3NpbXBsZS1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvc2ltcGxlLWlmcmFtZS5odG1sCShyZXZpc2lv
biAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3NpbXBsZS1pZnJhbWUu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorICBTaW1w
bGUgSFRNTCBmaWxlLgorICA8aWZyYW1lIHNyYz0ic2ltcGxlLmh0bWwiPjwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQ
SS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktp
dEFQSS52Y3Byb2oJKHJldmlzaW9uIDk0NzYyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
VGVzdFdlYktpdEFQSS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4NCw2ICs0ODQsMTAgQEAK
IAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRl
c3RzXFdlYktpdDJcTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3Rz
XFdlYktpdDJcbW91c2UtbW92ZS1saXN0ZW5lci5odG1sIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpA
QCAtNTIwLDYgKzUyNCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcV2ViS2l0MlxzaW1wbGUtaWZyYW1lLmh0bWwiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xX
ZWJLaXQyXHNpbXBsZS5odG1sIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5k
bGUudmNwcm9qCShyZXZpc2lvbiA5NDc2MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rl
c3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTQyMCw2
ICs0MjAsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxi
YWNrX0J1bmRsZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNw
cCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL2Nv
cHktcmVzb3VyY2VzLmNtZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9j
b3B5LXJlc291cmNlcy5jbWQJKHJldmlzaW9uIDk0NzYyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS93aW4vY29weS1yZXNvdXJjZXMuY21kCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw2ICsxNiw3IEBA
IGZvciAlJWYgaW4gKAogICAgIC4uXFRlc3RzXFdlYktpdDJcc2ltcGxlLmh0bWwKICAgICAuLlxU
ZXN0c1xXZWJLaXQyXHNpbXBsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZy5odG1sCiAgICAgLi5c
VGVzdHNcV2ViS2l0MlxzaW1wbGUtZm9ybS5odG1sCisgICAgLi5cVGVzdHNcV2ViS2l0MlxzaW1w
bGUtaWZyYW1lLmh0bWwKICAgICAuLlxUZXN0c1xXZWJLaXQyXHNwYWNlYmFyLXNjcm9sbGluZy5o
dG1sCiApIGRvICgKICAgICB4Y29weSAveSAvZCAlJWYgIiVSZXNvdXJjZXNEaXJlY3RvcnklIgo=
</data>
<flag name="review"
          id="103317"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>