<?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>94918</bug_id>
          
          <creation_ts>2012-08-24 03:15:42 -0700</creation_ts>
          <short_desc>&apos;self&apos; in a CSP directive should match blob: and filesystem: URLs.</short_desc>
          <delta_ts>2012-08-27 13:08:20 -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>WebCore Misc.</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>703945</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-24 03:15:42 -0700</bug_when>
    <thetext>blob:https://example.com/xxx is same-origin with https://example.com/. We should treat it as such when matching URLs against Content Security Policy directives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703969</commentid>
    <comment_count>1</comment_count>
      <attachid>160387</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-24 04:04:05 -0700</bug_when>
    <thetext>Created attachment 160387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704102</commentid>
    <comment_count>2</comment_count>
      <attachid>160387</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-24 07:58:20 -0700</bug_when>
    <thetext>Comment on attachment 160387
Patch

I&apos;m surprised this doesn&apos;t cause any tests to fail.  Won&apos;t this mess up data URLs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704103</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-24 07:59:00 -0700</bug_when>
    <thetext>Rather than using SecurityOrigin, I wonder if we should use the hasInnerURL and extraceInnerURL functions (those names aren&apos;t 100% right).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704109</commentid>
    <comment_count>4</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-24 08:08:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 160387 [details])
&gt; I&apos;m surprised this doesn&apos;t cause any tests to fail.  Won&apos;t this mess up data URLs?

I&apos;m pretty sure all the data tests simply check that the protocol-only source &apos;data:&apos; works. In that case, the SecurityOrigin returns &apos;data:&apos; as the protocol, so it works (he says, confidently, without having looked at either the tests or the code).

&gt; Rather than using SecurityOrigin, I wonder if we should use the hasInnerURL and extraceInnerURL functions (those names aren&apos;t 100% right).

Neither &apos;shouldUseInnerURL&apos; nor &apos;extractInnerURL&apos; are public at the moment. I vaguely remember having a similar discussion when I tweaked &apos;blob:&apos;s mixed-content behavior... *shrug* This patch has the advantage of not touching SecurityOrigin, but I&apos;m happy to add those methods to SecurityOrigin&apos;s public signature if you&apos;d like. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704729</commentid>
    <comment_count>5</comment_count>
      <attachid>160572</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-25 15:22:10 -0700</bug_when>
    <thetext>Created attachment 160572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704733</commentid>
    <comment_count>6</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-25 15:27:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=160572) [details]
&gt; Patch

I&apos;ve adjusted SecurityOrigin to include these two static functions for innerURL extraction.

This patch also moves the innerURL magic out of CSPSource::match and into CSPSourceList::match, which should be more efficient, and adds a &apos;data:&apos; URL test, as it doesn&apos;t look like we were explicitly testing it before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705435</commentid>
    <comment_count>7</comment_count>
      <attachid>160572</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-27 11:29:37 -0700</bug_when>
    <thetext>Comment on attachment 160572
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:247
&gt; +    KURL urlToMatch = SecurityOrigin::shouldUseInnerURL(url) ? SecurityOrigin::extractInnerURL(url) : url;

urlToMatch -&gt; effectiveURL

&gt; Source/WebCore/page/SecurityOrigin.cpp:195
&gt; +    if (SecurityOrigin::shouldUseInnerURL(url))
&gt; +        return adoptRef(new SecurityOrigin(SecurityOrigin::extractInnerURL(url)));

&quot;SecurityOrigin::&quot; isn&apos;t needed here because SecurityOrigin::create is already in the SecurityOrigin namespace.

&gt; Source/WebCore/page/SecurityOrigin.cpp:225
&gt; -    if (shouldUseInnerURL(url) &amp;&amp; SchemeRegistry::shouldTreatURLSchemeAsSecure(extractInnerURL(url).protocol()))
&gt; +    if (SecurityOrigin::shouldUseInnerURL(url) &amp;&amp; SchemeRegistry::shouldTreatURLSchemeAsSecure(SecurityOrigin::extractInnerURL(url).protocol()))

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705486</commentid>
    <comment_count>8</comment_count>
      <attachid>160768</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-27 12:05:48 -0700</bug_when>
    <thetext>Created attachment 160768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705554</commentid>
    <comment_count>9</comment_count>
      <attachid>160768</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-27 13:08:16 -0700</bug_when>
    <thetext>Comment on attachment 160768
Patch

Clearing flags on attachment: 160768

Committed r126785: &lt;http://trac.webkit.org/changeset/126785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705555</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-27 13:08:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160387</attachid>
            <date>2012-08-24 04:04:05 -0700</date>
            <delta_ts>2012-08-25 15:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94918-20120824130400.patch</filename>
            <type>text/plain</type>
            <size>8649</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y3ODc0MTQyZmFjN2E2
YzMwNGQ1Zjc1ZTAzMmIzNWZjZDUzYjVkNi4uOTlmN2NlYWJlYTZkYjhkMTc0ZWY4ZWQwZTA0MTMz
ZTBiYzFkN2Y4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTI0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgJ3NlbGYnIGluIGEgQ1NQIGRp
cmVjdGl2ZSBzaG91bGQgbWF0Y2ggYmxvYjogYW5kIGZpbGVzeXN0ZW06IFVSTHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDkxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICdibG9iOicgYW5kICdmaWxl
c3lzdGVtOicgVVJMcyBhcmUgc2FtZS1vcmlnaW4gd2l0aCB0aGUgcGFnZSBvbiB3aGljaAorICAg
ICAgICB0aGV5IHdlcmUgY3JlYXRlZC4gQ3VycmVudGx5LCB3ZSdyZSB1c2luZyB0aGUgd3Jvbmcg
VVJMIGZvciBjb21wYXJpc29uCisgICAgICAgIHdoZW4gbWF0Y2hpbmcgYWdhaW5zdCBDU1AgZGly
ZWN0aXZlIHNvdXJjZSBsaXN0cy4gVGhpcyBwYXRjaCBhZGp1c3RzIHRoZQorICAgICAgICBtYXRj
aGluZyBsb2dpYyB0byBjb21wYXJlIGFnYWluc3QgdGhlIGJsb2IncyBTZWN1cml0eU9yaWdpbiwg
cmF0aGVyIHRoYW4KKyAgICAgICAgZGlyZWN0bHkgYWdhaW5zdCB0aGUgVVJMLgorCisgICAgICAg
IFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lz
dGVtLXVybHMtbWF0Y2gtc2VsZi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybHMtbWF0Y2gtc2VsZi5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1BTb3VyY2U6Om1hdGNoZXMpOgorICAgICAgICAgICAgT2J0YWluIHRoZSBVUkwncyBTZWN1
cml0eU9yaWdpbiwgYW5kIGNvbXBhcmUgaXRzIHNjaGVtZSwgaG9zdCwgYW5kCisgICAgICAgICAg
ICBwb3J0IHRvIHRoZSBzb3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpDU1BTb3VyY2U6OnNjaGVt
ZU1hdGNoZXMpOgorICAgICAgICAgICAgQWNjZXB0IGEgU3RyaW5nIHJhdGhlciB0aGFuIGEgS1VS
TC4KKyAgICAgICAgKFdlYkNvcmU6OkNTUFNvdXJjZTo6aG9zdE1hdGNoZXMpOgorICAgICAgICAg
ICAgQWNjZXB0IGEgU3RyaW5nIHJhdGhlciB0aGFuIGEgS1VSTC4KKyAgICAgICAgKFdlYkNvcmU6
OkNTUFNvdXJjZTo6cG9ydE1hdGNoZXMpOgorICAgICAgICAgICAgQWNjZXB0IGFuIGludCByYXRo
ZXIgdGhhbiBhIEtVUkwuCisKIDIwMTItMDgtMjQgIERhbiBDYXJuZXkgIDxkY2FybmV5QGdvb2ds
ZS5jb20+CiAKICAgICAgICAgW1Y4XSBSZWZhY3RvciBhd2F5IElzb2xhdGVkV29ybGQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBhMzgzNGZh
YTdhZTM4OWI2YWU1YjlmZTU5YWIzODhiZTExNGUzM2RmLi5kNmUwN2I3MjU3MWNiMTE5NzhkZWU2
ODdkNWIzNjIzNmFjOGU3NTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwCkBAIC0xNDMsMzUgKzE0MywzMyBAQCBwdWJsaWM6CiAKICAgICBib29s
IG1hdGNoZXMoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKCFzY2hl
bWVNYXRjaGVzKHVybCkpCisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpOworICAgICAgICBpZiAoIXNjaGVtZU1hdGNoZXMo
b3JpZ2luLT5wcm90b2NvbCgpKSkgLy8gRklYTUU6IFJlbmFtZSBmb3IgY29uc2lzdGVuY3kgKCJz
Y2hlbWUiIHZzICJwcm90b2NvbCIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGlmIChpc1NjaGVtZU9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBy
ZXR1cm4gaG9zdE1hdGNoZXModXJsKSAmJiBwb3J0TWF0Y2hlcyh1cmwpOworICAgICAgICByZXR1
cm4gaG9zdE1hdGNoZXMob3JpZ2luLT5ob3N0KCkpICYmIHBvcnRNYXRjaGVzKG9yaWdpbi0+cG9y
dCgpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBzY2hlbWVNYXRjaGVzKGNvbnN0IEtV
UkwmIHVybCkgY29uc3QKKyAgICBib29sIHNjaGVtZU1hdGNoZXMoY29uc3QgU3RyaW5nJiBwcm90
b2NvbCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZSh1cmwu
cHJvdG9jb2woKSwgbV9zY2hlbWUpOworICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2Uo
cHJvdG9jb2wsIG1fc2NoZW1lKTsKICAgICB9CiAKLSAgICBib29sIGhvc3RNYXRjaGVzKGNvbnN0
IEtVUkwmIHVybCkgY29uc3QKKyAgICBib29sIGhvc3RNYXRjaGVzKGNvbnN0IFN0cmluZyYgaG9z
dCkgY29uc3QKICAgICB7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgaG9zdCA9IHVybC5ob3N0KCk7
CiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShob3N0LCBtX2hvc3QpKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBtX2hvc3RIYXNXaWxkY2FyZCAmJiBob3N0
LmVuZHNXaXRoKCIuIiArIG1faG9zdCwgZmFsc2UpOwogCiAgICAgfQogCi0gICAgYm9vbCBwb3J0
TWF0Y2hlcyhjb25zdCBLVVJMJiB1cmwpIGNvbnN0CisgICAgYm9vbCBwb3J0TWF0Y2hlcyhpbnQg
cG9ydCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChtX3BvcnRIYXNXaWxkY2FyZCkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgICAgIGludCBwb3J0ID0gdXJsLnBvcnQoKTsKLQog
ICAgICAgICBpZiAocG9ydCA9PSBtX3BvcnQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDZkNzgyYWNhZGVhZDFkYmRjZDA2ZWJlNmFhOGFlNTA0OWIzM2Q2MzAuLjI4NjlhNWYy
YTMyZTVkZDBhZDYxNmUzYWIxMGMyMDFkYzU3OTNiMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0wOC0yNCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgICdz
ZWxmJyBpbiBhIENTUCBkaXJlY3RpdmUgc2hvdWxkIG1hdGNoIGJsb2I6IGFuZCBmaWxlc3lzdGVt
OiBVUkxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTQ5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJs
cy1tYXRjaC1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvYmxvYi11cmxzLW1hdGNoLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybHMt
bWF0Y2gtc2VsZi5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0yNCAgS3dhbmdZb25nIENob2kgIDxr
eTAuY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGRlZCBtaXNzaW5nIFNLSVAg
a2V5d29yZCB0byBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11
cmxzLW1hdGNoLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmxzLW1hdGNoLXNlbGYtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhlODA4MjQ5MDI4MGVmZGQ4MjNjYWFiYWY0NGNiMTEzZGIwNjQ1OWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9ibG9iLXVybHMtbWF0Y2gtc2VsZi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitBTEVSVDogUEFTUyAoMS8xKSEKK2Jsb2I6IFVSTHMgYXJlIHNhbWUtb3JpZ2lu
IHdpdGggdGhlIHBhZ2UgaW4gd2hpY2ggdGhleSB3ZXJlIGNyZWF0ZWQsIGFuZCBzaG91bGQgdGhl
cmVmb3JlIG1hdGNoIHRoZSAnc2VsZicgc291cmNlIGluIENTUCBkaXJlY3RpdmVzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvYmxvYi11cmxzLW1hdGNoLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDczNTRmMjMwZWM2NDNiYzJiZDc1MGQ0MjY0ODM0ZDQ0NjUxNjk5NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVp
dj0iWC1XZWJLaXQtQ1NQIiBjb250ZW50PSJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyAnc2Vs
ZiciPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAgICAgICBi
bG9iOiBVUkxzIGFyZSBzYW1lLW9yaWdpbiB3aXRoIHRoZSBwYWdlIGluIHdoaWNoIHRoZXkgd2Vy
ZSBjcmVhdGVkLAorICAgICAgICAgICAgYW5kIHNob3VsZCB0aGVyZWZvcmUgbWF0Y2ggdGhlICdz
ZWxmJyBzb3VyY2UgaW4gQ1NQIGRpcmVjdGl2ZXMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmdW5jdGlvbiBw
YXNzKCkgeworICAgICAgICAgICAgICAgIGFsZXJ0KCJQQVNTICgxLzEpISIpOworICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBiID0g
bmV3IEJsb2IoWydwYXNzKCk7J10sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnIH0p
OworCisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2Ny
aXB0Jyk7CisgICAgICAgICAgICBzY3JpcHQuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChiKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxz
LW1hdGNoLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ3Mzk1MjJiYjNiNTc4NDY5ZjA1NmM3MzI5NjRiZTQ2NWQzYTcw
ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gtc2VsZi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyIEBACitBTEVSVDogUEFTUyAoMS8xKSEKK2ZpbGVzeXN0ZW06IFVSTHMg
YXJlIHNhbWUtb3JpZ2luIHdpdGggdGhlIHBhZ2UgaW4gd2hpY2ggdGhleSB3ZXJlIGNyZWF0ZWQs
IGFuZCBzaG91bGQgdGhlcmVmb3JlIG1hdGNoIHRoZSAnc2VsZicgc291cmNlIGluIENTUCBkaXJl
Y3RpdmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0
ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY5NGJmZWFjNTA4ZGEzNGM1ZjIy
YmVjOGMzZjZmOWZmMjk4MGYyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRj
aC1zZWxmLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQIiBjb250ZW50
PSJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyAnc2VsZiciPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAgICAgICBmaWxlc3lzdGVtOiBVUkxzIGFyZSBzYW1l
LW9yaWdpbiB3aXRoIHRoZSBwYWdlIGluIHdoaWNoIHRoZXkgd2VyZQorICAgICAgICAgICAgY3Jl
YXRlZCwgYW5kIHNob3VsZCB0aGVyZWZvcmUgbWF0Y2ggdGhlICdzZWxmJyBzb3VyY2UgaW4gQ1NQ
CisgICAgICAgICAgICBkaXJlY3RpdmVzLgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZnVuY3Rpb24gcGFzcygp
IHsKKyAgICAgICAgICAgICAgICBhbGVydCgiUEFTUyAoMS8xKSEiKTsKKyAgICAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cud2Via2l0
UmVxdWVzdEZpbGVTeXN0ZW0oVEVNUE9SQVJZLCAxMDI0KjEwMjQgLyoxTUIqLywgZnVuY3Rpb24o
ZnMpIHsKKyAgICAgICAgICAgICAgICBmcy5yb290LmdldEZpbGUoJ3Bhc3MuanMnLCB7Y3JlYXRl
OiB0cnVlfSwgZnVuY3Rpb24oZmlsZUVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGZpbGVF
bnRyeS5jcmVhdGVXcml0ZXIoZnVuY3Rpb24oZmlsZVdyaXRlcikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgZmlsZVdyaXRlci5vbndyaXRlZW5kID0gZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
Y3JpcHQnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuc3JjID1maWxlRW50
cnkudG9VUkwoJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcg
QmxvYiBhbmQgd3JpdGUgaXQgdG8gcGFzcy5qcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBiID0gbmV3IEJsb2IoWydwYXNzKCk7J10sIHt0eXBlOiAnYXBwbGljYXRpb24vamF2YXNjcmlw
dCd9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVXcml0ZXIud3JpdGUoYik7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160572</attachid>
            <date>2012-08-25 15:22:10 -0700</date>
            <delta_ts>2012-08-27 12:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94918-20120826002203.patch</filename>
            <type>text/plain</type>
            <size>16089</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJlZmIwN2M3MWM2YjJk
ODBkZjU0MjMzOTBhNGQ2N2JhNGYyMjJjYS4uMTcxNGVlNTIzNDViNzUwNmQyNmVlYzA3YjJlMjA5
OWQ3ZTkwOTllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTI1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgJ3NlbGYnIGluIGEgQ1NQIGRp
cmVjdGl2ZSBzaG91bGQgbWF0Y2ggYmxvYjogYW5kIGZpbGVzeXN0ZW06IFVSTHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDkxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICdibG9iOicgYW5kICdmaWxl
c3lzdGVtOicgVVJMcyBhcmUgc2FtZS1vcmlnaW4gd2l0aCB0aGUgcGFnZSBvbiB3aGljaAorICAg
ICAgICB0aGV5IHdlcmUgY3JlYXRlZC4gQ3VycmVudGx5LCB3ZSdyZSB1c2luZyB0aGUgd3Jvbmcg
VVJMIGZvciBjb21wYXJpc29uCisgICAgICAgIHdoZW4gbWF0Y2hpbmcgYWdhaW5zdCBDU1AgZGly
ZWN0aXZlIHNvdXJjZSBsaXN0cy4gVGhpcyBwYXRjaCBhZGp1c3RzIHRoZQorICAgICAgICBtYXRj
aGluZyBsb2dpYyB0byBjb21wYXJlIGFnYWluc3QgdGhlIGJsb2IncyBpbm5lciBVUkwsIHJhdGhl
ciB0aGFuCisgICAgICAgIGRpcmVjdGx5IGFnYWluc3QgdGhlIGJsb2IgaXRzZWxmLgorCisgICAg
ICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9i
LXVybHMtbWF0Y2gtc2VsZi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gtc2VsZi5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9z
b3VyY2UtbGlzdC1wYXJzaW5nLTA4Lmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTUFNvdXJjZUxpc3Q6Om1hdGNoZXMp
OgorICAgICAgICAgICAgSWYgd2Ugc2hvdWxkIHVzZSB0aGUgaW5uZXIgVVJMIG9mIGEgZ2l2ZW4g
cmVzb3VyY2UsIGV4dHJhY3QgaXQgaW50bworICAgICAgICAgICAgYSBsb2NhbCB2YXJpYWJsZSwg
YW5kIHBhc3MgdGhhdCBpbnRvIENTUFNvdXJjZSBmb3IgY29tcGFyaXNvbi4KKyAgICAgICAgKiBw
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpzaG91bGRVc2VJbm5lclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
ZXh0cmFjdElubmVyVVJMKToKKyAgICAgICAgICAgIE1vdmUgc2hvdWxkVXNlSW5uZXJVUkwgYW5k
IGV4dHJhY3RJbm5lclVSTCB0byBTZWN1cml0eU9yaWdpbidzCisgICAgICAgICAgICBwdWJsaWMg
c2lnbmF0dXJlLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjppc1NlY3VyZSk6CisgICAgICAgICAgICBzaG91bGRVc2VJ
bm5lclVSTCBhbmQgZXh0cmFjdElubmVyVVJMIGFyZSBub3cgc3RhdGljIG1ldGhvZHMgb2YKKyAg
ICAgICAgICAgIFNlY3VyaXR5T3JpZ2luOiB1cGRhdGluZyBjYWxscyB0byBtYXRoYy4KKyAgICAg
ICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTItMDgtMjUgIE1pY2hlbGFuZ2VsbyBE
ZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ3Jhc2hdIE51
bGwgcG9pbnRlciBpbiBDU1NQYXJzZXI6OnBhcnNlTWl4RnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGEzODM0ZmFhN2FlMzg5
YjZhZTViOWZlNTlhYjM4OGJlMTE0ZTMzZGYuLmFiYTI2M2ZlYWJjZGIwZjVjYTE1ZTVmMmIyOGU5
OWEwMTQ0NWExMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHAKQEAgLTI0NCw4ICsyNDQsMTAgQEAgYm9vbCBDU1BTb3VyY2VMaXN0OjptYXRjaGVz
KGNvbnN0IEtVUkwmIHVybCkKICAgICBpZiAobV9hbGxvd1N0YXIpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCisgICAgS1VSTCB1cmxUb01hdGNoID0gU2VjdXJpdHlPcmlnaW46OnNob3VsZFVzZUlu
bmVyVVJMKHVybCkgPyBTZWN1cml0eU9yaWdpbjo6ZXh0cmFjdElubmVyVVJMKHVybCkgOiB1cmw7
CisKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdC5zaXplKCk7ICsraSkgewotICAg
ICAgICBpZiAobV9saXN0W2ldLm1hdGNoZXModXJsKSkKKyAgICAgICAgaWYgKG1fbGlzdFtpXS5t
YXRjaGVzKHVybFRvTWF0Y2gpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGY1Y2QxYzUyZTljYjEyNDY3
NDNmZDljYTYxMGQ0MzI1YzYxMDRlMDIuLjFkYzRhMjI1ZDBhYjAwMjJlZTU5NTliMGEyNjdjODg2
NmE2NGQ1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC01Mywx
OCArNTMsNyBAQCBzdGF0aWMgYm9vbCBzY2hlbWVSZXF1aXJlc0F1dGhvcml0eShjb25zdCBLVVJM
JiB1cmwpCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgdXJsLnBy
b3RvY29sSXMoImZ0cCIpOwogfQogCi0vLyBTb21lIFVSTCBzY2hlbWVzIHVzZSBuZXN0ZWQgVVJM
cyBmb3IgdGhlaXIgc2VjdXJpdHkgY29udGV4dC4gRm9yIGV4YW1wbGUsCi0vLyBmaWxlc3lzdGVt
IFVSTHMgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmc6Ci0vLwotLy8gICBmaWxlc3lzdGVtOmh0dHA6
Ly9leGFtcGxlLmNvbS90ZW1wb3JhcnkvcGF0aC90by9maWxlLnBuZwotLy8KLS8vIFdlJ3JlIHN1
cHBvc2VkIHRvIHVzZSAiaHR0cDovL2V4YW1wbGUuY29tIiBhcyB0aGUgb3JpZ2luLgotLy8KLS8v
IEdlbmVyYWxseSwgd2UgYWRkIFVSTCBzY2hlbWVzIHRvIHRoaXMgbGlzdCB3aGVuIFdlYktpdCBz
dXBwb3J0IHRoZW0uIEZvcgotLy8gZXhhbXBsZSwgd2UgZG9uJ3QgaW5jbHVkZSB0aGUgImphciIg
c2NoZW1lLCBldmVuIHRob3VnaCBGaXJlZm94IHVuZGVyc3RhbmRzCi0vLyB0aGF0IGphciB1c2Vz
IGFuIGlubmVyIFVSTCBmb3IgaXQncyBzZWN1cml0eSBvcmlnaW4uCi0vLwotc3RhdGljIGJvb2wg
c2hvdWxkVXNlSW5uZXJVUkwoY29uc3QgS1VSTCYgdXJsKQorYm9vbCBTZWN1cml0eU9yaWdpbjo6
c2hvdWxkVXNlSW5uZXJVUkwoY29uc3QgS1VSTCYgdXJsKQogewogI2lmIEVOQUJMRShCTE9CKQog
ICAgIGlmICh1cmwucHJvdG9jb2xJcygiYmxvYiIpKQpAQCAtODEsNyArNzAsNyBAQCBzdGF0aWMg
Ym9vbCBzaG91bGRVc2VJbm5lclVSTChjb25zdCBLVVJMJiB1cmwpCiAvLyBJbiBnZW5lcmFsLCBl
eHRyYWN0aW5nIHRoZSBpbm5lciBVUkwgdmFyaWVzIGJ5IHNjaGVtZS4gSXQganVzdCBzbyBoYXBw
ZW5zCiAvLyB0aGF0IGFsbCB0aGUgVVJMIHNjaGVtZXMgd2UgY3VycmVudGx5IHN1cHBvcnQgdGhh
dCB1c2UgaW5uZXIgVVJMcyBmb3IgdGhlaXIKIC8vIHNlY3VyaXR5IG9yaWdpbiBjYW4gYmUgcGFy
c2VkIHVzaW5nIHRoaXMgYWxnb3JpdGhtLgotc3RhdGljIEtVUkwgZXh0cmFjdElubmVyVVJMKGNv
bnN0IEtVUkwmIHVybCkKK0tVUkwgU2VjdXJpdHlPcmlnaW46OmV4dHJhY3RJbm5lclVSTChjb25z
dCBLVVJMJiB1cmwpCiB7CiAgICAgaWYgKHVybC5pbm5lclVSTCgpKQogICAgICAgICByZXR1cm4g
KnVybC5pbm5lclVSTCgpOwpAQCAtMTA1LDcgKzk0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJl
YXRBc1VuaXF1ZU9yaWdpbihjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQgdG8gdW53cmFwIHRoZSBVUkwgZnVydGhlcj8KLSAg
ICBLVVJMIGlubmVyVVJMID0gc2hvdWxkVXNlSW5uZXJVUkwodXJsKSA/IGV4dHJhY3RJbm5lclVS
TCh1cmwpIDogdXJsOworICAgIEtVUkwgaW5uZXJVUkwgPSBTZWN1cml0eU9yaWdpbjo6c2hvdWxk
VXNlSW5uZXJVUkwodXJsKSA/IFNlY3VyaXR5T3JpZ2luOjpleHRyYWN0SW5uZXJVUkwodXJsKSA6
IHVybDsKIAogICAgIC8vIEZJWE1FOiBDaGVjayB3aGV0aGVyIGlubmVyVVJMIGlzIHZhbGlkLgog
CkBAIC0yMDIsOCArMTkxLDggQEAgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiBvcmlnaW4ucmVs
ZWFzZSgpOwogICAgIH0KIAotICAgIGlmIChzaG91bGRVc2VJbm5lclVSTCh1cmwpKQotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKGV4dHJhY3RJbm5lclVSTCh1cmwp
KSk7CisgICAgaWYgKFNlY3VyaXR5T3JpZ2luOjpzaG91bGRVc2VJbm5lclVSTCh1cmwpKQorICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpl
eHRyYWN0SW5uZXJVUkwodXJsKSkpOwogCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWN1cml0
eU9yaWdpbih1cmwpKTsKIH0KQEAgLTIzMyw3ICsyMjIsNyBAQCBib29sIFNlY3VyaXR5T3JpZ2lu
Ojppc1NlY3VyZShjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
Ly8gVVJMcyB0aGF0IHdyYXAgaW5uZXIgVVJMcyBhcmUgc2VjdXJlIGlmIHRob3NlIGlubmVyIFVS
THMgYXJlIHNlY3VyZS4KLSAgICBpZiAoc2hvdWxkVXNlSW5uZXJVUkwodXJsKSAmJiBTY2hlbWVS
ZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShleHRyYWN0SW5uZXJVUkwodXJs
KS5wcm90b2NvbCgpKSkKKyAgICBpZiAoU2VjdXJpdHlPcmlnaW46OnNob3VsZFVzZUlubmVyVVJM
KHVybCkgJiYgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUoU2Vj
dXJpdHlPcmlnaW46OmV4dHJhY3RJbm5lclVSTCh1cmwpLnByb3RvY29sKCkpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uaAppbmRleCAyZTMyY2ZiNjliZDczMTgxMDJjNjQ3MmQ5MjJmMWQ3YzBiZTRmM2ZiLi4z
ZmUxZDA4M2MwYmJmODQwZmYwNDU4MGE3N2M1ZmRiMmQzYmJkMzE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5oCkBAIC01Miw2ICs1MiwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5n
Jik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0KTsKIAorICAgIC8v
IFNvbWUgVVJMIHNjaGVtZXMgdXNlIG5lc3RlZCBVUkxzIGZvciB0aGVpciBzZWN1cml0eSBjb250
ZXh0LiBGb3IgZXhhbXBsZSwKKyAgICAvLyBmaWxlc3lzdGVtIFVSTHMgbG9vayBsaWtlIHRoZSBm
b2xsb3dpbmc6CisgICAgLy8KKyAgICAvLyAgIGZpbGVzeXN0ZW06aHR0cDovL2V4YW1wbGUuY29t
L3RlbXBvcmFyeS9wYXRoL3RvL2ZpbGUucG5nCisgICAgLy8KKyAgICAvLyBXZSdyZSBzdXBwb3Nl
ZCB0byB1c2UgImh0dHA6Ly9leGFtcGxlLmNvbSIgYXMgdGhlIG9yaWdpbi4KKyAgICAvLworICAg
IC8vIEdlbmVyYWxseSwgd2UgYWRkIFVSTCBzY2hlbWVzIHRvIHRoaXMgbGlzdCB3aGVuIFdlYktp
dCBzdXBwb3J0IHRoZW0uIEZvcgorICAgIC8vIGV4YW1wbGUsIHdlIGRvbid0IGluY2x1ZGUgdGhl
ICJqYXIiIHNjaGVtZSwgZXZlbiB0aG91Z2ggRmlyZWZveAorICAgIC8vIHVuZGVyc3RhbmRzIHRo
YXQgImphciIgdXNlcyBhbiBpbm5lciBVUkwgZm9yIGl0J3Mgc2VjdXJpdHkgb3JpZ2luLgorICAg
IHN0YXRpYyBib29sIHNob3VsZFVzZUlubmVyVVJMKGNvbnN0IEtVUkwmKTsKKyAgICBzdGF0aWMg
S1VSTCBleHRyYWN0SW5uZXJVUkwoY29uc3QgS1VSTCYpOworCiAgICAgLy8gQ3JlYXRlIGEgZGVl
cCBjb3B5IG9mIHRoaXMgU2VjdXJpdHlPcmlnaW4uIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAogICAg
IC8vIHdoZW4gbWFyc2hhbGxpbmcgYSBTZWN1cml0eU9yaWdpbiB0byBhbm90aGVyIHRocmVhZC4K
ICAgICBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBpc29sYXRlZENvcHkoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAwZDdjZWY2Y2M1MjRiYmFiYTRkZDE3NGRmZjNlYTRhYzdmNjViMDZhLi5iOTE3ZGEyMGE3
NDYyNzZhZDNhZDc3MzYyNjU2N2M5NTllNTJmYjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTItMDgtMjUgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICAnc2Vs
ZicgaW4gYSBDU1AgZGlyZWN0aXZlIHNob3VsZCBtYXRjaCBibG9iOiBhbmQgZmlsZXN5c3RlbTog
VVJMcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
OTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybHMtbWF0Y2gt
c2VsZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVz
eXN0ZW0tdXJscy1tYXRjaC1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxzLW1h
dGNoLXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICAgICBUZXN0IHRoZSBuZXcgZnVuY3Rpb25h
bGl0eS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9yZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanM6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciBkYXRhOiBVUkxzLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmct
MDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA4Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAgICAgQWRkaW5nIGRhdGE6IFVSTCB0ZXN0cyB0byBlbnN1cmUgdGhhdCBncmFiYmlu
ZyB0aGUgaW5uZXIgVVJMIG9mIHRoZQorICAgICAgICAgICAgVVJMIHRvIHRlc3QgZG9lc24ndCBp
bmFkdmVydGVudGx5IHJlZ3Jlc3MgdGhhdCBiZWhhdmlvci4KKwogMjAxMi0wOC0yNSAgTWljaGVs
YW5nZWxvIERlIFNpbW9uZSAgPG1pY2hlbGFuZ2Vsb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
cmFzaF0gTnVsbCBwb2ludGVyIGluIENTU1BhcnNlcjo6cGFyc2VNaXhGdW5jdGlvbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9ibG9iLXVybHMtbWF0Y2gtc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybHMtbWF0Y2gtc2Vs
Zi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4MDgyNDkwMjgwZWZkZDgyM2NhYWJhZjQ0Y2Ix
MTNkYjA2NDU5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTICgxLzEpIQorYmxvYjogVVJMcyBhcmUg
c2FtZS1vcmlnaW4gd2l0aCB0aGUgcGFnZSBpbiB3aGljaCB0aGV5IHdlcmUgY3JlYXRlZCwgYW5k
IHNob3VsZCB0aGVyZWZvcmUgbWF0Y2ggdGhlICdzZWxmJyBzb3VyY2UgaW4gQ1NQIGRpcmVjdGl2
ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ibG9iLXVybHMtbWF0Y2gtc2VsZi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmxzLW1hdGNoLXNl
bGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNzM1NGYyMzBlYzY0M2JjMmJkNzUwZDQyNjQ4MzRkNDQ2NTE2
OTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmxzLW1hdGNoLXNlbGYuaHRtbApAQCAtMCwwICsx
LDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0
YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Vuc2FmZS1p
bmxpbmUnICdzZWxmJyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAg
ICAgICAgICAgIGJsb2I6IFVSTHMgYXJlIHNhbWUtb3JpZ2luIHdpdGggdGhlIHBhZ2UgaW4gd2hp
Y2ggdGhleSB3ZXJlIGNyZWF0ZWQsCisgICAgICAgICAgICBhbmQgc2hvdWxkIHRoZXJlZm9yZSBt
YXRjaCB0aGUgJ3NlbGYnIHNvdXJjZSBpbiBDU1AgZGlyZWN0aXZlcy4KKyAgICAgICAgPC9wPgor
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGZ1bmN0aW9uIHBhc3MoKSB7CisgICAgICAgICAgICAgICAgYWxlcnQoIlBBU1MgKDEvMSkhIik7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgdmFyIGIgPSBuZXcgQmxvYihbJ3Bhc3MoKTsnXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vamF2
YXNjcmlwdCcgfSk7CisKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBVUkwuY3JlYXRlT2Jq
ZWN0VVJMKGIpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQp
OworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxl
c3lzdGVtLXVybHMtbWF0Y2gtc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gt
c2VsZi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDczOTUyMmJiM2I1Nzg0NjlmMDU2YzczMjk2
NGJlNDY1ZDNhNzBkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxm
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTICgxLzEpIQorZmlsZXN5
c3RlbTogVVJMcyBhcmUgc2FtZS1vcmlnaW4gd2l0aCB0aGUgcGFnZSBpbiB3aGljaCB0aGV5IHdl
cmUgY3JlYXRlZCwgYW5kIHNob3VsZCB0aGVyZWZvcmUgbWF0Y2ggdGhlICdzZWxmJyBzb3VyY2Ug
aW4gQ1NQIGRpcmVjdGl2ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gtc2VsZi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjk0YmZlYWM1
MDhkYTM0YzVmMjJiZWM4YzNmNmY5ZmYyOTgwZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3Rl
bS11cmxzLW1hdGNoLXNlbGYuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1D
U1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnICdzZWxmJyI+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAgICAgICAgIGZpbGVzeXN0ZW06IFVS
THMgYXJlIHNhbWUtb3JpZ2luIHdpdGggdGhlIHBhZ2UgaW4gd2hpY2ggdGhleSB3ZXJlCisgICAg
ICAgICAgICBjcmVhdGVkLCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBtYXRjaCB0aGUgJ3NlbGYnIHNv
dXJjZSBpbiBDU1AKKyAgICAgICAgICAgIGRpcmVjdGl2ZXMuCisgICAgICAgIDwvcD4KKworICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmdW5j
dGlvbiBwYXNzKCkgeworICAgICAgICAgICAgICAgIGFsZXJ0KCJQQVNTICgxLzEpISIpOworICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdp
bmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbShURU1QT1JBUlksIDEwMjQqMTAyNCAvKjFNQiov
LCBmdW5jdGlvbihmcykgeworICAgICAgICAgICAgICAgIGZzLnJvb3QuZ2V0RmlsZSgncGFzcy5q
cycsIHtjcmVhdGU6IHRydWV9LCBmdW5jdGlvbihmaWxlRW50cnkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgZmlsZUVudHJ5LmNyZWF0ZVdyaXRlcihmdW5jdGlvbihmaWxlV3JpdGVyKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmaWxlV3JpdGVyLm9ud3JpdGVlbmQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5z
cmMgPWZpbGVFbnRyeS50b1VSTCgnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENy
ZWF0ZSBhIG5ldyBCbG9iIGFuZCB3cml0ZSBpdCB0byBwYXNzLmpzLgorICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIGIgPSBuZXcgQmxvYihbJ3Bhc3MoKTsnXSwge3R5cGU6ICdhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0J30pOworICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVdyaXRlci53cml0
ZShiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxl
LWlmcmFtZS10ZXN0LmpzCmluZGV4IDdjZDRjZDBiYjgzYzE4YTY0MzgzMzg3NTA0YmZhY2U4Y2Y2
MzEwYjkuLmQyZjE2NWNjOTA3YzBmOGNhNmQ2ODU3MDY0NWUzY2Q3N2Y1MmFiOGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9tdWx0aXBsZS1pZnJhbWUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlwbGUt
aWZyYW1lLXRlc3QuanMKQEAgLTE0LDcgKzE0LDkgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBp
ZnJhbWUuc3JjID0gYmFzZVVSTCArICJyZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsPyIgKwog
ICAgICAgICAgICAgICAgICAic2hvdWxkX3J1bj0iICsgZXNjYXBlKGN1cnJlbnRbMF0pICsKICAg
ICAgICAgICAgICAgICAgIiZjc3A9IiArIGVzY2FwZShjdXJyZW50WzFdKSArCi0gICAgICAgICAg
ICAgICAgICImcT0iICsgYmFzZVVSTCArIGVzY2FwZShjdXJyZW50WzJdKTsKKyAgICAgICAgICAg
ICAgICAgIiZxPSIgKyAoY3VycmVudFsyXS5tYXRjaCgvXmRhdGE6LykgPworICAgICAgICAgICAg
ICAgICAgICAgZXNjYXBlKGN1cnJlbnRbMl0pIDoKKyAgICAgICAgICAgICAgICAgICAgIGJhc2VV
UkwgKyBlc2NhcGUoY3VycmVudFsyXSkpOwogICAgIGlmIChjdXJyZW50WzNdKQogICAgICAgaWZy
YW1lLnNyYyArPSAiJm5vbmNlPSIgKyBlc2NhcGUoY3VycmVudFszXSk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Nv
dXJjZS1saXN0LXBhcnNpbmctMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wOC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzcyYjg2ZjEyZDM5YTBmYjNjMjU5Mzk5MDA3OTNjYWRm
NzFkNDgzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDgtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRo
ZSBzY3JpcHQgJ2RhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdDtiYXNlNjQsZG1GeUlISmxjM1Zz
ZENBOUlHUnZZM1Z0Wlc1MExtZGxkRVZzWlcxbGJuUkNlVWxrS0NkeVpYTjFiSFFuS1R0eVpYTjFi
SFF1Wm1seWMzUkRhR2xzWkM1dWIyUmxWbUZzZFdVZ1BTQnlaWE4xYkhRdVlYUjBjbWxpZFhSbGN5
NW5aWFJPWVcxbFpFbDBaVzBvSjNSbGVIUW5LUzUyWVd4MVpUcz0nIGJlY2F1c2UgaXQgdmlvbGF0
ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3Jp
cHQtc3JjICdzZWxmJyIuCisKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBz
Y3JpcHQgJ2RhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdDtiYXNlNjQsZG1GeUlISmxjM1ZzZENB
OUlHUnZZM1Z0Wlc1MExtZGxkRVZzWlcxbGJuUkNlVWxrS0NkeVpYTjFiSFFuS1R0eVpYTjFiSFF1
Wm1seWMzUkRhR2xzWkM1dWIyUmxWbUZzZFdVZ1BTQnlaWE4xYkhRdVlYUjBjbWxpZFhSbGN5NW5a
WFJPWVcxbFpFbDBaVzBvSjNSbGVIUW5LUzUyWVd4MVpUcz0nIGJlY2F1c2UgaXQgdmlvbGF0ZXMg
dGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQt
c3JjIGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAiLgorCitUZXN0IHByb3BlciBoYW5kbGluZyBvZiBk
YXRhOiBVUkxzLgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUyLS0+LS0+JworLS0tLS0tLS0KK1BBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmct
MDguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jOTZhOTQ3Mjc0MzNjOGM1YmViMzRmYWIzYWMyODkwY2M5MDIy
ZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wOC5odG1sCkBAIC0wLDAg
KzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSdy
ZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Zh
ciBkYXRhVVJMID0gImRhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdDtiYXNlNjQsIiArCisgICAg
YnRvYSgidmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsiICsK
KyAgICAgICAgICJyZXN1bHQuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSByZXN1bHQuYXR0cmlidXRl
cy5nZXROYW1lZEl0ZW0oJ3RleHQnKS52YWx1ZTsiKTsKK3ZhciB0ZXN0cyA9IFsKKyAgICBbJ3ll
cycsICdzY3JpcHQtc3JjIGRhdGE6JywgZGF0YVVSTF0sCisgICAgWydubycsICdzY3JpcHQtc3Jj
IFwnc2VsZlwnJywgZGF0YVVSTF0sCisgICAgWydubycsICAnc2NyaXB0LXNyYyBodHRwczovLzEy
Ny4wLjAuMTo4MDAwJywgZGF0YVVSTF0sCitdOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+CisgIDxwPgorICAgIFRlc3QgcHJvcGVyIGhhbmRsaW5nIG9mIGRhdGE6
IFVSTHMuCisgIDwvcD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160768</attachid>
            <date>2012-08-27 12:05:48 -0700</date>
            <delta_ts>2012-08-27 13:08:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94918-20120827210539.patch</filename>
            <type>text/plain</type>
            <size>17840</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJlZmIwN2M3MWM2YjJk
ODBkZjU0MjMzOTBhNGQ2N2JhNGYyMjJjYS4uZDQwMzA4ZmZmZmE5MGM4ZmQ5ZTE5ZGY1NzkwNjk1
ODdiNjM0NTM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTI3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgJ3NlbGYnIGluIGEgQ1NQIGRp
cmVjdGl2ZSBzaG91bGQgbWF0Y2ggYmxvYjogYW5kIGZpbGVzeXN0ZW06IFVSTHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDkxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgJ2Jsb2I6JyBhbmQgJ2ZpbGVzeXN0
ZW06JyBVUkxzIGFyZSBzYW1lLW9yaWdpbiB3aXRoIHRoZSBwYWdlIG9uIHdoaWNoCisgICAgICAg
IHRoZXkgd2VyZSBjcmVhdGVkLiBDdXJyZW50bHksIHdlJ3JlIHVzaW5nIHRoZSB3cm9uZyBVUkwg
Zm9yIGNvbXBhcmlzb24KKyAgICAgICAgd2hlbiBtYXRjaGluZyBhZ2FpbnN0IENTUCBkaXJlY3Rp
dmUgc291cmNlIGxpc3RzLiBUaGlzIHBhdGNoIGFkanVzdHMgdGhlCisgICAgICAgIG1hdGNoaW5n
IGxvZ2ljIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgYmxvYidzIGlubmVyIFVSTCwgcmF0aGVyIHRo
YW4KKyAgICAgICAgZGlyZWN0bHkgYWdhaW5zdCB0aGUgYmxvYiBpdHNlbGYuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJs
cy1tYXRjaC1zZWxmLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJj
ZS1saXN0LXBhcnNpbmctMDguaHRtbAorCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NQU291cmNlTGlzdDo6bWF0Y2hlcyk6Cisg
ICAgICAgICAgICBJZiB3ZSBzaG91bGQgdXNlIHRoZSBpbm5lciBVUkwgb2YgYSBnaXZlbiByZXNv
dXJjZSwgZXh0cmFjdCBpdCBpbnRvCisgICAgICAgICAgICBhIGxvY2FsIHZhcmlhYmxlLCBhbmQg
cGFzcyB0aGF0IGludG8gQ1NQU291cmNlIGZvciBjb21wYXJpc29uLgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNo
b3VsZFVzZUlubmVyVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpleHRy
YWN0SW5uZXJVUkwpOgorICAgICAgICAgICAgTW92ZSBzaG91bGRVc2VJbm5lclVSTCBhbmQgZXh0
cmFjdElubmVyVVJMIHRvIFNlY3VyaXR5T3JpZ2luJ3MKKyAgICAgICAgICAgIHB1YmxpYyBzaWdu
YXR1cmUuCisgICAgICAgIChXZWJDb3JlOjpzaG91bGRUcmVhdEFzVW5pcXVlT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OmlzU2VjdXJlKToKKyAgICAgICAgICAgIHNob3VsZFVzZUlubmVy
VVJMIGFuZCBleHRyYWN0SW5uZXJVUkwgYXJlIG5vdyBzdGF0aWMgbWV0aG9kcyBvZgorICAgICAg
ICAgICAgU2VjdXJpdHlPcmlnaW46IHVwZGF0aW5nIGNhbGxzIHRvIG1hdGhjLgorICAgICAgICAq
IHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoKKwogMjAxMi0wOC0yNSAgTWljaGVsYW5nZWxvIERlIFNp
bW9uZSAgPG1pY2hlbGFuZ2Vsb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtDcmFzaF0gTnVsbCBw
b2ludGVyIGluIENTU1BhcnNlcjo6cGFyc2VNaXhGdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggYTM4MzRmYWE3YWUzODliNmFl
NWI5ZmU1OWFiMzg4YmUxMTRlMzNkZi4uYzc3MTcwZDExNGMzZGU2YWNmMjYwZjU3NzMzNWZiN2Fm
MDJhOTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcApAQCAtMjQ0LDggKzI0NCwxMCBAQCBib29sIENTUFNvdXJjZUxpc3Q6Om1hdGNoZXMoY29u
c3QgS1VSTCYgdXJsKQogICAgIGlmIChtX2FsbG93U3RhcikKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKKyAgICBLVVJMIGVmZmVjdGl2ZVVSTCA9IFNlY3VyaXR5T3JpZ2luOjpzaG91bGRVc2VJbm5l
clVSTCh1cmwpID8gU2VjdXJpdHlPcmlnaW46OmV4dHJhY3RJbm5lclVSTCh1cmwpIDogdXJsOwor
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3Quc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgaWYgKG1fbGlzdFtpXS5tYXRjaGVzKHVybCkpCisgICAgICAgIGlmIChtX2xpc3RbaV0ubWF0
Y2hlcyhlZmZlY3RpdmVVUkwpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGY1Y2QxYzUyZTljYjEyNDY3
NDNmZDljYTYxMGQ0MzI1YzYxMDRlMDIuLjY5MzQ3MTc3NWIwMzgyOTcwZjJlYWY5YThlNWJkNjA5
ZDkwNTBlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC01Mywx
OCArNTMsNyBAQCBzdGF0aWMgYm9vbCBzY2hlbWVSZXF1aXJlc0F1dGhvcml0eShjb25zdCBLVVJM
JiB1cmwpCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgdXJsLnBy
b3RvY29sSXMoImZ0cCIpOwogfQogCi0vLyBTb21lIFVSTCBzY2hlbWVzIHVzZSBuZXN0ZWQgVVJM
cyBmb3IgdGhlaXIgc2VjdXJpdHkgY29udGV4dC4gRm9yIGV4YW1wbGUsCi0vLyBmaWxlc3lzdGVt
IFVSTHMgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmc6Ci0vLwotLy8gICBmaWxlc3lzdGVtOmh0dHA6
Ly9leGFtcGxlLmNvbS90ZW1wb3JhcnkvcGF0aC90by9maWxlLnBuZwotLy8KLS8vIFdlJ3JlIHN1
cHBvc2VkIHRvIHVzZSAiaHR0cDovL2V4YW1wbGUuY29tIiBhcyB0aGUgb3JpZ2luLgotLy8KLS8v
IEdlbmVyYWxseSwgd2UgYWRkIFVSTCBzY2hlbWVzIHRvIHRoaXMgbGlzdCB3aGVuIFdlYktpdCBz
dXBwb3J0IHRoZW0uIEZvcgotLy8gZXhhbXBsZSwgd2UgZG9uJ3QgaW5jbHVkZSB0aGUgImphciIg
c2NoZW1lLCBldmVuIHRob3VnaCBGaXJlZm94IHVuZGVyc3RhbmRzCi0vLyB0aGF0IGphciB1c2Vz
IGFuIGlubmVyIFVSTCBmb3IgaXQncyBzZWN1cml0eSBvcmlnaW4uCi0vLwotc3RhdGljIGJvb2wg
c2hvdWxkVXNlSW5uZXJVUkwoY29uc3QgS1VSTCYgdXJsKQorYm9vbCBTZWN1cml0eU9yaWdpbjo6
c2hvdWxkVXNlSW5uZXJVUkwoY29uc3QgS1VSTCYgdXJsKQogewogI2lmIEVOQUJMRShCTE9CKQog
ICAgIGlmICh1cmwucHJvdG9jb2xJcygiYmxvYiIpKQpAQCAtODEsNyArNzAsNyBAQCBzdGF0aWMg
Ym9vbCBzaG91bGRVc2VJbm5lclVSTChjb25zdCBLVVJMJiB1cmwpCiAvLyBJbiBnZW5lcmFsLCBl
eHRyYWN0aW5nIHRoZSBpbm5lciBVUkwgdmFyaWVzIGJ5IHNjaGVtZS4gSXQganVzdCBzbyBoYXBw
ZW5zCiAvLyB0aGF0IGFsbCB0aGUgVVJMIHNjaGVtZXMgd2UgY3VycmVudGx5IHN1cHBvcnQgdGhh
dCB1c2UgaW5uZXIgVVJMcyBmb3IgdGhlaXIKIC8vIHNlY3VyaXR5IG9yaWdpbiBjYW4gYmUgcGFy
c2VkIHVzaW5nIHRoaXMgYWxnb3JpdGhtLgotc3RhdGljIEtVUkwgZXh0cmFjdElubmVyVVJMKGNv
bnN0IEtVUkwmIHVybCkKK0tVUkwgU2VjdXJpdHlPcmlnaW46OmV4dHJhY3RJbm5lclVSTChjb25z
dCBLVVJMJiB1cmwpCiB7CiAgICAgaWYgKHVybC5pbm5lclVSTCgpKQogICAgICAgICByZXR1cm4g
KnVybC5pbm5lclVSTCgpOwpAQCAtMTA1LDcgKzk0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJl
YXRBc1VuaXF1ZU9yaWdpbihjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQgdG8gdW53cmFwIHRoZSBVUkwgZnVydGhlcj8KLSAg
ICBLVVJMIGlubmVyVVJMID0gc2hvdWxkVXNlSW5uZXJVUkwodXJsKSA/IGV4dHJhY3RJbm5lclVS
TCh1cmwpIDogdXJsOworICAgIEtVUkwgaW5uZXJVUkwgPSBTZWN1cml0eU9yaWdpbjo6c2hvdWxk
VXNlSW5uZXJVUkwodXJsKSA/IFNlY3VyaXR5T3JpZ2luOjpleHRyYWN0SW5uZXJVUkwodXJsKSA6
IHVybDsKIAogICAgIC8vIEZJWE1FOiBDaGVjayB3aGV0aGVyIGlubmVyVVJMIGlzIHZhbGlkLgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggMmUzMmNmYjY5YmQ3MzE4MTAy
YzY0NzJkOTIyZjFkN2MwYmU0ZjNmYi4uM2ZlMWQwODNjMGJiZjg0MGZmMDQ1ODBhNzdjNWZkYjJk
M2JiZDMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtNTIsNiArNTIs
MTkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVh
dGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiBo
b3N0LCBpbnQgcG9ydCk7CiAKKyAgICAvLyBTb21lIFVSTCBzY2hlbWVzIHVzZSBuZXN0ZWQgVVJM
cyBmb3IgdGhlaXIgc2VjdXJpdHkgY29udGV4dC4gRm9yIGV4YW1wbGUsCisgICAgLy8gZmlsZXN5
c3RlbSBVUkxzIGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nOgorICAgIC8vCisgICAgLy8gICBmaWxl
c3lzdGVtOmh0dHA6Ly9leGFtcGxlLmNvbS90ZW1wb3JhcnkvcGF0aC90by9maWxlLnBuZworICAg
IC8vCisgICAgLy8gV2UncmUgc3VwcG9zZWQgdG8gdXNlICJodHRwOi8vZXhhbXBsZS5jb20iIGFz
IHRoZSBvcmlnaW4uCisgICAgLy8KKyAgICAvLyBHZW5lcmFsbHksIHdlIGFkZCBVUkwgc2NoZW1l
cyB0byB0aGlzIGxpc3Qgd2hlbiBXZWJLaXQgc3VwcG9ydCB0aGVtLiBGb3IKKyAgICAvLyBleGFt
cGxlLCB3ZSBkb24ndCBpbmNsdWRlIHRoZSAiamFyIiBzY2hlbWUsIGV2ZW4gdGhvdWdoIEZpcmVm
b3gKKyAgICAvLyB1bmRlcnN0YW5kcyB0aGF0ICJqYXIiIHVzZXMgYW4gaW5uZXIgVVJMIGZvciBp
dCdzIHNlY3VyaXR5IG9yaWdpbi4KKyAgICBzdGF0aWMgYm9vbCBzaG91bGRVc2VJbm5lclVSTChj
b25zdCBLVVJMJik7CisgICAgc3RhdGljIEtVUkwgZXh0cmFjdElubmVyVVJMKGNvbnN0IEtVUkwm
KTsKKwogICAgIC8vIENyZWF0ZSBhIGRlZXAgY29weSBvZiB0aGlzIFNlY3VyaXR5T3JpZ2luLiBU
aGlzIG1ldGhvZCBpcyB1c2VmdWwKICAgICAvLyB3aGVuIG1hcnNoYWxsaW5nIGEgU2VjdXJpdHlP
cmlnaW4gdG8gYW5vdGhlciB0aHJlYWQuCiAgICAgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
aXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGQ3Y2VmNmNjNTI0YmJhYmE0ZGQxNzRkZmYz
ZWE0YWM3ZjY1YjA2YS4uM2M0MDg4NzZjODkzNTI2OTRlNzI4YmYzY2JjMjQ0YjBiMGFiOTQ0YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA4LTI3ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgJ3NlbGYnIGluIGEgQ1NQIGRpcmVjdGl2ZSBzaG91bGQgbWF0
Y2ggYmxvYjogYW5kIGZpbGVzeXN0ZW06IFVSTHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9ibG9iLXVybHMtbWF0Y2gtc2VsZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRj
aC1zZWxmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICAgICBU
ZXN0IHRoZSBuZXcgZnVuY3Rpb25hbGl0eS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanM6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciBkYXRhOiBV
UkxzLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3NvdXJjZS1saXN0LXBhcnNpbmctMDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJz
aW5nLTA4Lmh0bWw6IEFkZGVkLgorICAgICAgICAgICAgQWRkaW5nIGRhdGE6IFVSTCB0ZXN0cyB0
byBlbnN1cmUgdGhhdCBncmFiYmluZyB0aGUgaW5uZXIgVVJMIG9mIHRoZQorICAgICAgICAgICAg
VVJMIHRvIHRlc3QgZG9lc24ndCBpbmFkdmVydGVudGx5IHJlZ3Jlc3MgdGhhdCBiZWhhdmlvci4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9Ta2lwcGVkOgorICAgICAgICAgICAgU2tpcHBpbmcgZmlsZXNzeXRlbSB0ZXN0IG9u
IHBvcnRzIHdoZXJlIGl0J3Mgbm90IGVuYWJsZWQuCisKIDIwMTItMDgtMjUgIE1pY2hlbGFuZ2Vs
byBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ3Jhc2hd
IE51bGwgcG9pbnRlciBpbiBDU1NQYXJzZXI6OnBhcnNlTWl4RnVuY3Rpb24oKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
YmxvYi11cmxzLW1hdGNoLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmxzLW1hdGNoLXNlbGYtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlODA4MjQ5MDI4MGVmZGQ4MjNjYWFiYWY0NGNiMTEzZGIw
NjQ1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybHMtbWF0Y2gtc2VsZi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyIEBACitBTEVSVDogUEFTUyAoMS8xKSEKK2Jsb2I6IFVSTHMgYXJlIHNhbWUt
b3JpZ2luIHdpdGggdGhlIHBhZ2UgaW4gd2hpY2ggdGhleSB3ZXJlIGNyZWF0ZWQsIGFuZCBzaG91
bGQgdGhlcmVmb3JlIG1hdGNoIHRoZSAnc2VsZicgc291cmNlIGluIENTUCBkaXJlY3RpdmVzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvYmxvYi11cmxzLW1hdGNoLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDczNTRmMjMwZWM2NDNiYzJiZDc1MGQ0MjY0ODM0ZDQ0NjUxNjk5NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0
cC1lcXVpdj0iWC1XZWJLaXQtQ1NQIiBjb250ZW50PSJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5l
JyAnc2VsZiciPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAg
ICAgICBibG9iOiBVUkxzIGFyZSBzYW1lLW9yaWdpbiB3aXRoIHRoZSBwYWdlIGluIHdoaWNoIHRo
ZXkgd2VyZSBjcmVhdGVkLAorICAgICAgICAgICAgYW5kIHNob3VsZCB0aGVyZWZvcmUgbWF0Y2gg
dGhlICdzZWxmJyBzb3VyY2UgaW4gQ1NQIGRpcmVjdGl2ZXMuCisgICAgICAgIDwvcD4KKworICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmdW5j
dGlvbiBwYXNzKCkgeworICAgICAgICAgICAgICAgIGFsZXJ0KCJQQVNTICgxLzEpISIpOworICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZh
ciBiID0gbmV3IEJsb2IoWydwYXNzKCk7J10sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2phdmFzY3Jp
cHQnIH0pOworCisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2NyaXB0Jyk7CisgICAgICAgICAgICBzY3JpcHQuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVS
TChiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3Rl
bS11cmxzLW1hdGNoLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3Mzk1MjJiYjNiNTc4NDY5ZjA1NmM3MzI5NjRiZTQ2
NWQzYTcwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gtc2VsZi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitBTEVSVDogUEFTUyAoMS8xKSEKK2ZpbGVzeXN0ZW06
IFVSTHMgYXJlIHNhbWUtb3JpZ2luIHdpdGggdGhlIHBhZ2UgaW4gd2hpY2ggdGhleSB3ZXJlIGNy
ZWF0ZWQsIGFuZCBzaG91bGQgdGhlcmVmb3JlIG1hdGNoIHRoZSAnc2VsZicgc291cmNlIGluIENT
UCBkaXJlY3RpdmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZmlsZXN5c3RlbS11cmxzLW1hdGNoLXNlbGYuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Zp
bGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY5NGJmZWFjNTA4ZGEz
NGM1ZjIyYmVjOGMzZjZmOWZmMjk4MGYyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJs
cy1tYXRjaC1zZWxmLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQIiBj
b250ZW50PSJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyAnc2VsZiciPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAgICAgICBmaWxlc3lzdGVtOiBVUkxzIGFy
ZSBzYW1lLW9yaWdpbiB3aXRoIHRoZSBwYWdlIGluIHdoaWNoIHRoZXkgd2VyZQorICAgICAgICAg
ICAgY3JlYXRlZCwgYW5kIHNob3VsZCB0aGVyZWZvcmUgbWF0Y2ggdGhlICdzZWxmJyBzb3VyY2Ug
aW4gQ1NQCisgICAgICAgICAgICBkaXJlY3RpdmVzLgorICAgICAgICA8L3A+CisKKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZnVuY3Rpb24g
cGFzcygpIHsKKyAgICAgICAgICAgICAgICBhbGVydCgiUEFTUyAoMS8xKSEiKTsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cu
d2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oVEVNUE9SQVJZLCAxMDI0KjEwMjQgLyoxTUIqLywgZnVu
Y3Rpb24oZnMpIHsKKyAgICAgICAgICAgICAgICBmcy5yb290LmdldEZpbGUoJ3Bhc3MuanMnLCB7
Y3JlYXRlOiB0cnVlfSwgZnVuY3Rpb24oZmlsZUVudHJ5KSB7CisgICAgICAgICAgICAgICAgICAg
IGZpbGVFbnRyeS5jcmVhdGVXcml0ZXIoZnVuY3Rpb24oZmlsZVdyaXRlcikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgZmlsZVdyaXRlci5vbndyaXRlZW5kID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzY3JpcHQnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuc3JjID1m
aWxlRW50cnkudG9VUkwoJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUg
YSBuZXcgQmxvYiBhbmQgd3JpdGUgaXQgdG8gcGFzcy5qcy4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBiID0gbmV3IEJsb2IoWydwYXNzKCk7J10sIHt0eXBlOiAnYXBwbGljYXRpb24vamF2
YXNjcmlwdCd9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVXcml0ZXIud3JpdGUoYik7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9tdWx0aXBsZS1pZnJhbWUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9tdWx0aXBsZS1pZnJh
bWUtdGVzdC5qcwppbmRleCA3Y2Q0Y2QwYmI4M2MxOGE2NDM4MzM4NzUwNGJmYWNlOGNmNjMxMGI5
Li5kMmYxNjVjYzkwN2MwZjhjYTZkNjg1NzA2NDVlM2NkNzdmNTJhYjhjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNv
dXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFt
ZS10ZXN0LmpzCkBAIC0xNCw3ICsxNCw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWZyYW1l
LnNyYyA9IGJhc2VVUkwgKyAicmVzb3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbD8iICsKICAgICAg
ICAgICAgICAgICAgInNob3VsZF9ydW49IiArIGVzY2FwZShjdXJyZW50WzBdKSArCiAgICAgICAg
ICAgICAgICAgICImY3NwPSIgKyBlc2NhcGUoY3VycmVudFsxXSkgKwotICAgICAgICAgICAgICAg
ICAiJnE9IiArIGJhc2VVUkwgKyBlc2NhcGUoY3VycmVudFsyXSk7CisgICAgICAgICAgICAgICAg
ICImcT0iICsgKGN1cnJlbnRbMl0ubWF0Y2goL15kYXRhOi8pID8KKyAgICAgICAgICAgICAgICAg
ICAgIGVzY2FwZShjdXJyZW50WzJdKSA6CisgICAgICAgICAgICAgICAgICAgICBiYXNlVVJMICsg
ZXNjYXBlKGN1cnJlbnRbMl0pKTsKICAgICBpZiAoY3VycmVudFszXSkKICAgICAgIGlmcmFtZS5z
cmMgKz0gIiZub25jZT0iICsgZXNjYXBlKGN1cnJlbnRbM10pOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2Ut
bGlzdC1wYXJzaW5nLTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDgtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM3MmI4NmYxMmQzOWEwZmIzYzI1OTM5OTAwNzkzY2FkZjcxZDQ4
M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA4LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIyIEBACitDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgc2Ny
aXB0ICdkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQ7YmFzZTY0LGRtRnlJSEpsYzNWc2RDQTlJ
R1J2WTNWdFpXNTBMbWRsZEVWc1pXMWxiblJDZVVsa0tDZHlaWE4xYkhRbktUdHlaWE4xYkhRdVpt
bHljM1JEYUdsc1pDNXViMlJsVm1Gc2RXVWdQU0J5WlhOMWJIUXVZWFIwY21saWRYUmxjeTVuWlhS
T1lXMWxaRWwwWlcwb0ozUmxlSFFuS1M1MllXeDFaVHM9JyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRo
ZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNy
YyAnc2VsZiciLgorCitDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgc2NyaXB0
ICdkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQ7YmFzZTY0LGRtRnlJSEpsYzNWc2RDQTlJR1J2
WTNWdFpXNTBMbWRsZEVWc1pXMWxiblJDZVVsa0tDZHlaWE4xYkhRbktUdHlaWE4xYkhRdVptbHlj
M1JEYUdsc1pDNXViMlJsVm1Gc2RXVWdQU0J5WlhOMWJIUXVZWFIwY21saWRYUmxjeTVuWlhST1lX
MWxaRWwwWlcwb0ozUmxlSFFuS1M1MllXeDFaVHM9JyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBm
b2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyBo
dHRwczovLzEyNy4wLjAuMTo4MDAwIi4KKworVGVzdCBwcm9wZXIgaGFuZGxpbmcgb2YgZGF0YTog
VVJMcy4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUw
LS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPicKKy0tLS0tLS0tCitQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA4Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzk2YTk0NzI3NDMzYzhjNWJlYjM0ZmFiM2FjMjg5MGNjOTAyMmU5OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDguaHRtbApAQCAtMCwwICsxLDE5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0ncmVzb3Vy
Y2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgZGF0
YVVSTCA9ICJkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQ7YmFzZTY0LCIgKworICAgIGJ0b2Eo
InZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7IiArCisgICAg
ICAgICAicmVzdWx0LmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gcmVzdWx0LmF0dHJpYnV0ZXMuZ2V0
TmFtZWRJdGVtKCd0ZXh0JykudmFsdWU7Iik7Cit2YXIgdGVzdHMgPSBbCisgICAgWyd5ZXMnLCAn
c2NyaXB0LXNyYyBkYXRhOicsIGRhdGFVUkxdLAorICAgIFsnbm8nLCAnc2NyaXB0LXNyYyBcJ3Nl
bGZcJycsIGRhdGFVUkxdLAorICAgIFsnbm8nLCAgJ3NjcmlwdC1zcmMgaHR0cHM6Ly8xMjcuMC4w
LjE6ODAwMCcsIGRhdGFVUkxdLAorXTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgorICA8cD4KKyAgICBUZXN0IHByb3BlciBoYW5kbGluZyBvZiBkYXRhOiBVUkxz
LgorICA8L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDMzOWIzYTdmM2ZjYWRmYTVj
N2ZjMTZlYjVkM2I4MWU1MzU3ODU2ZDguLjYwODUyYTM0MTI3MWE0ZDMxNDhiMGMyMDBjMjlmNTBl
Y2YwNWNiOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0xMDYyLDYgKzEwNjIsNyBA
QCBtZWRpYS9tZWRpYS1jYW4tcGxheS1mbGFjLWF1ZGlvLmh0bWwKIAogIyBSZXF1aXJlcyBFTkFC
TEUoRklMRV9TWVNURU0pCiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1lbnRyaWVzLmh0bWwK
K2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJs
cy1tYXRjaC1zZWxmLmh0bWwKIAogIyBUcmFuc3BhcmVudCBpbWFnZSBiZWluZyBwcm9kdWNlZAog
ZmFzdC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKaW5kZXggOTc0MjFlNjMwZTQ5OWViNjMzOWRjMzg3MjI4Zjg1MzY3YmU0NzVmMC4uNDFj
Zjg1NjZlOWZhMDZjYjhmOTQ1NTQ0Y2YwNGM3YzU0OTBjODcyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKQEAgLTMzOSw2ICszMzksNyBAQCBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZl
cmVkLmh0bWwKIGZhc3QvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9maWxlc3lzdGVtCiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9maWxlc3lzdGVtCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gtc2VsZi5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2ZpbGVzeXN0ZW0taWZyYW1lLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L2ZpbGVzeXN0ZW0tdXJsLWluLWlmcmFtZS5odG1sCiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCmluZGV4IDFmY2UwYWVhNjYyYWNjMzI4NDUxNzRkM2YzYzdmOGQ1OWRlNGExYTAu
LjI5ZTczMGYyZmU0NGJmZGI5M2YzYzZlNDA3ZjcyOTMxN2MzMTNhZjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZApAQCAtMTE4LDYgKzExOCw3IEBAIGZhc3QvZmlsZXN5c3RlbQogZmFzdC9mb3Jt
cy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1sCiBodHRwL3Rlc3RzL2ZpbGVzeXN0ZW0KIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0KK2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvZmlsZXN5c3RlbS1pZnJhbWUtZnJvbS1yZW1vdGUuaHRtbAogaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1lLmh0bWwKIGh0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2IuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5ZWUyOWY3MjUzOGM4OWQ5MWI5MmMwOWYzZTgxOGFiZDY1
YmZiYmVhLi4zZTBmZGVlNTg1MmRmOTE0YjQxYmIxNDNiY2YwZWVmODFlZjI0NzI4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTMwMCw2ICsxMzAwLDcgQEAgZmFzdC9wYXJzZXIvcHJl
LWh0bWw1LXBhcnNlci1xdWlya3MuaHRtbAogZmFzdC9maWxlc3lzdGVtCiBodHRwL3Rlc3RzL2Zp
bGVzeXN0ZW0KIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0KK2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0
bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvZmlsZXN5c3RlbS1pZnJhbWUtZnJvbS1yZW1vdGUuaHRt
bAogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5odG1sCiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLWZhaWwuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>