<?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>89281</bug_id>
          
          <creation_ts>2012-06-16 02:47:39 -0700</creation_ts>
          <short_desc>Ignore paths in Content Security Policy sources rather than failing to parse them.</short_desc>
          <delta_ts>2012-06-16 17:36:09 -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>
          
          
          <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>650774</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 02:47:39 -0700</bug_when>
    <thetext>`X-WebKit-CSP: script-src http://example.com/;` should work correctly. See http://crbug.com/128493 and the `ext-host-source` definition in the spec (https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-1.0-specification.html#source-list).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650775</commentid>
    <comment_count>1</comment_count>
      <attachid>147961</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 02:53:26 -0700</bug_when>
    <thetext>Created attachment 147961
First pass: needs more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650776</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 02:55:40 -0700</bug_when>
    <thetext>I&apos;d like to take this in steps, if you don&apos;t mind Adam.

The attached patch is a first pass at adjusting the parseSource method to accept paths, but has a more or less no-op `parsePath` method, and throws away the path component. I think it&apos;s complex enough that it deserves it&apos;s own review. I think it also needs more tests... suggestions for cases I&apos;ve missed are welcome. :)

The next step would be to save the path (after properly parsing it), and use it for comparisons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650818</commentid>
    <comment_count>3</comment_count>
      <attachid>147961</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-16 10:33:16 -0700</bug_when>
    <thetext>Comment on attachment 147961
First pass: needs more tests.

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:316
&gt;          if (!parseHost(beginHost, position, host, hostHasWildcard))
&gt;              return false;
&gt;          return true;

Can&apos;t we just say &quot;return parseHost(beginHost, position, host, hostHasWildcard);&quot; in these cases?

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:356
&gt; +            skipWhile&lt;isNotColonOrSlash&gt;(position, end);

Why isNotColonOrSlash here?

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:462
&gt; +    ASSERT(!path);

Does that work?  I would have thought you&apos;d need to say ASSERT(path.isEmpty())

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/source-list-parsing-05.html:17
&gt; +    [&apos;yes&apos;, &apos;script-src http://127.0.0.1:*/path&apos;, &apos;resources/script.js&apos;],

I would add some tests with ? and # parts of the URL.  I&apos;d also add some tests that include spaces and ; in the path to show that we&apos;re not too aggressive in eating up characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650831</commentid>
    <comment_count>4</comment_count>
      <attachid>147961</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 12:04:23 -0700</bug_when>
    <thetext>Comment on attachment 147961
First pass: needs more tests.

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

I&apos;ll fix these up in a patch shortly. Thanks for the quick review!

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:316
&gt;&gt;          return true;
&gt; 
&gt; Can&apos;t we just say &quot;return parseHost(beginHost, position, host, hostHasWildcard);&quot; in these cases?

We can! I only did it this way because I thought it fit better stylistically, but I didn&apos;t like it. :)

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:356
&gt;&gt; +            skipWhile&lt;isNotColonOrSlash&gt;(position, end);
&gt; 
&gt; Why isNotColonOrSlash here?

Hrm. I guess I can replace this with skipUtil(position, end, &apos;/&apos;).

Relatedly: is `skipUtil` intentional? I want to change it to skipU_n_til every time I see it.

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:462
&gt;&gt; +    ASSERT(!path);
&gt; 
&gt; Does that work?  I would have thought you&apos;d need to say ASSERT(path.isEmpty())

I think you&apos;re right. I&apos;m not sure why it worked either.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/source-list-parsing-05.html:17
&gt;&gt; +    [&apos;yes&apos;, &apos;script-src http://127.0.0.1:*/path&apos;, &apos;resources/script.js&apos;],
&gt; 
&gt; I would add some tests with ? and # parts of the URL.  I&apos;d also add some tests that include spaces and ; in the path to show that we&apos;re not too aggressive in eating up characters.

What&apos;s the expected behavior in those cases? I think we&apos;d end up with a path of `/path?query=value`, as both &apos;?&apos; and &apos;#&apos; fall into `&lt;VCHAR except &quot;;&quot; and &quot;,&quot;&gt;`. Is that accurate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650834</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-16 12:24:03 -0700</bug_when>
    <thetext>&gt; Relatedly: is `skipUtil` intentional? I want to change it to skipU_n_til every time I see it.

That&apos;s just a typo.  I fail at spelling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650835</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-16 12:25:00 -0700</bug_when>
    <thetext>&gt; What&apos;s the expected behavior in those cases? I think we&apos;d end up with a path of `/path?query=value`, as both &apos;?&apos; and &apos;#&apos; fall into `&lt;VCHAR except &quot;;&quot; and &quot;,&quot;&gt;`. Is that accurate?

Yeah, the &quot;path&quot; will eat up all those characters.  We&apos;ll probably end up ignoring everything after the ? or the # though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650848</commentid>
    <comment_count>7</comment_count>
      <attachid>147982</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 12:47:44 -0700</bug_when>
    <thetext>Created attachment 147982
abarth feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650849</commentid>
    <comment_count>8</comment_count>
      <attachid>147983</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 12:50:17 -0700</bug_when>
    <thetext>Created attachment 147983
adding abarth as reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650854</commentid>
    <comment_count>9</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-16 12:55:10 -0700</bug_when>
    <thetext>That was fast. :)

I&apos;m renaming this bug to &quot;Ignore paths in Content Security Policy sources rather than failing to parse them.&quot; and will cover any future work on paths in another.

This patch brings us up to 1.0, but the path behavior isn&apos;t really specced out yet... Should I set that next bug to block the CSP 1.1 meta bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650861</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-16 13:04:30 -0700</bug_when>
    <thetext>I commented on the next bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650903</commentid>
    <comment_count>11</comment_count>
      <attachid>147983</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-16 17:36:04 -0700</bug_when>
    <thetext>Comment on attachment 147983
adding abarth as reviewer.

Clearing flags on attachment: 147983

Committed r120540: &lt;http://trac.webkit.org/changeset/120540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650904</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-16 17:36:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147961</attachid>
            <date>2012-06-16 02:53:26 -0700</date>
            <delta_ts>2012-06-16 12:47:36 -0700</delta_ts>
            <desc>First pass: needs more tests.</desc>
            <filename>bug-89281-20120616115323.patch</filename>
            <type>text/plain</type>
            <size>13128</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlMDQ0YWEwMWUzZjAx
YjRhZDJjMTJhMDFmNzdjOTQwMTAwOTZkMS4uMGU0ZDhlMjI1Mzg3MGNkMGZiMjM2NmUyOTVmZjNj
ZjAwOTlmYzdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTE2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgc2hvdWxkIHN1cHBvcnQgcGF0aHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyBDU1BTb3VyY2VMaXN0OjpwYXJz
ZVNvdXJjZSB0byBhY2NlcHQgcGF0aHMgKGFuZAorICAgICAgICBkaXNjYXJkIHRoZW0pLiBPbmNl
IHRoaXMgd29ya3MgY29ycmVjdGx5LCB0aGUgbmV4dCBzdGVwIHdpbGwgYmUgdG8KKyAgICAgICAg
a2VlcCB0aGUgcGF0aCwgYW5kIHVzZSBpdCB3aGVuIGNvbXBhcmluZyBzb3VyY2Ugb3JpZ2lucyBp
biB0aGUgdmFyaW91cworICAgICAgICBhbGxvd1hYWEZyb21Tb3VyY2UgbWV0aG9kcy4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3Vy
Y2UtbGlzdC1wYXJzaW5nLTA1Lmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcDoKKyAgICAgICAgKENTUFNvdXJjZUxpc3QpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BTb3VyY2VMaXN0OjpwYXJzZVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1BTb3VyY2VMaXN0OjpwYXJzZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NQU291cmNlTGlzdDo6cGFyc2VQb3J0KToKKwogMjAxMi0wNi0xMiAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBj
bGVhcmluZyByZXZpc2lvbiBoaXN0b3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDdkYWE5YTlhODY0YjE3OThiYTU1MzM5NDgzYWE4NDQy
ZDBhZTg4NDEuLmMyYWUzYTYzZTMyODkxM2ZjYTEzYzg0MmZjZTAxYmJlNGU4YWU0MzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTc3LDYg
Kzc3LDExIEBAIGJvb2wgaXNOb3RBU0NJSVNwYWNlKFVDaGFyIGMpCiAgICAgcmV0dXJuICFpc0FT
Q0lJU3BhY2UoYyk7CiB9CiAKK2Jvb2wgaXNOb3RDb2xvbk9yU2xhc2goVUNoYXIgYykKK3sKKyAg
ICByZXR1cm4gYyAhPSAnOicgJiYgYyAhPSAnLyc7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAKIHN0
YXRpYyBib29sIHNraXBFeGFjdGx5KGNvbnN0IFVDaGFyKiYgcG9zaXRpb24sIGNvbnN0IFVDaGFy
KiBlbmQsIFVDaGFyIGRlbGltaXRlcikKQEAgLTE5MSw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgcGFyc2VTY2hlbWUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBT
dHJpbmcmIHNjaGVtZSk7CiAgICAgYm9vbCBwYXJzZUhvc3QoY29uc3QgVUNoYXIqIGJlZ2luLCBj
b25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIGhvc3QsIGJvb2wmIGhvc3RIYXNXaWxkY2FyZCk7CiAg
ICAgYm9vbCBwYXJzZVBvcnQoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBp
bnQmIHBvcnQsIGJvb2wmIHBvcnRIYXNXaWxkY2FyZCk7CisgICAgYm9vbCBwYXJzZVBhdGgoY29u
c3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIHBhdGgpOwogCiAgICAg
dm9pZCBhZGRTb3VyY2VTZWxmKCk7CiAgICAgdm9pZCBhZGRTb3VyY2VTdGFyKCk7CkBAIC0yNjMs
MTMgKzI2OSwxNSBAQCB2b2lkIENTUFNvdXJjZUxpc3Q6OnBhcnNlKGNvbnN0IFVDaGFyKiBiZWdp
biwgY29uc3QgVUNoYXIqIGVuZCkKIH0KIAogLy8gc291cmNlICAgICAgICAgICAgPSBzY2hlbWUg
IjoiCi0vLyAgICAgICAgICAgICAgICAgICAvICggWyBzY2hlbWUgIjovLyIgXSBob3N0IFsgcG9y
dCBdICkKKy8vICAgICAgICAgICAgICAgICAgIC8gKCBbIHNjaGVtZSAiOi8vIiBdIGhvc3QgWyBw
b3J0IF0gWyBwYXRoIF0gKQogLy8gICAgICAgICAgICAgICAgICAgLyAiJ3NlbGYnIgogLy8KIGJv
b2wgQ1NQU291cmNlTGlzdDo6cGFyc2VTb3VyY2UoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBV
Q2hhciogZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcmIHNjaGVt
ZSwgU3RyaW5nJiBob3N0LCBpbnQmIHBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wmIGhvc3RIYXNXaWxkY2FyZCwgYm9vbCYgcG9ydEhhc1dpbGRjYXJkKQogeworICAg
IFN0cmluZyBwYXRoOyAvLyBGSVhNRTogV2UncmUgaWdub3JpbmcgdGhlIHBhdGggY29tcG9uZW50
IGZvciBub3cuCisKICAgICBpZiAoYmVnaW4gPT0gZW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTI5NCw1MiArMzAyLDg4IEBAIGJvb2wgQ1NQU291cmNlTGlzdDo6cGFyc2VTb3VyY2Uo
Y29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLAogICAgIH0KIAogICAgIGNvbnN0
IFVDaGFyKiBwb3NpdGlvbiA9IGJlZ2luOwotCiAgICAgY29uc3QgVUNoYXIqIGJlZ2luSG9zdCA9
IGJlZ2luOwotICAgIHNraXBVdGlsKHBvc2l0aW9uLCBlbmQsICc6Jyk7CisgICAgY29uc3QgVUNo
YXIqIGJlZ2luUG9ydCA9IDA7CisgICAgY29uc3QgVUNoYXIqIGJlZ2luUGF0aCA9IDA7CisKKyAg
ICBza2lwV2hpbGU8aXNOb3RDb2xvbk9yU2xhc2g+KHBvc2l0aW9uLCBlbmQpOwogCiAgICAgaWYg
KHBvc2l0aW9uID09IGVuZCkgewotICAgICAgICAvLyBUaGlzIG11c3QgYmUgYSBob3N0LW9ubHkg
c291cmNlLgorICAgICAgICAvLyBob3N0CisgICAgICAgIC8vICAgICBeCiAgICAgICAgIGlmICgh
cGFyc2VIb3N0KGJlZ2luSG9zdCwgcG9zaXRpb24sIGhvc3QsIGhvc3RIYXNXaWxkY2FyZCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAot
ICAgIGlmIChlbmQgLSBwb3NpdGlvbiA9PSAxKSB7Ci0gICAgICAgIEFTU0VSVCgqcG9zaXRpb24g
PT0gJzonKTsKLSAgICAgICAgLy8gVGhpcyBtdXN0IGJlIGEgc2NoZW1lLW9ubHkgc291cmNlLgot
ICAgICAgICBpZiAoIXBhcnNlU2NoZW1lKGJlZ2luLCBwb3NpdGlvbiwgc2NoZW1lKSkKKyAgICBp
ZiAoKnBvc2l0aW9uID09ICcvJykgeworICAgICAgICAvLyBob3N0L3BhdGggfHwgaG9zdC8gfHwg
LworICAgICAgICAvLyAgICAgXiAgICAgICAgICAgIF4gICAgXgorICAgICAgICBpZiAoIXBhcnNl
SG9zdChiZWdpbkhvc3QsIHBvc2l0aW9uLCBob3N0LCBob3N0SGFzV2lsZGNhcmQpCisgICAgICAg
ICAgICB8fCAhcGFyc2VQYXRoKHBvc2l0aW9uLCBlbmQsIHBhdGgpCisgICAgICAgICAgICB8fCBw
b3NpdGlvbiAhPSBlbmQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIEFTU0VSVChlbmQgLSBwb3NpdGlvbiA+PSAyKTsKLSAgICBp
ZiAocG9zaXRpb25bMV0gPT0gJy8nKSB7Ci0gICAgICAgIGlmICghcGFyc2VTY2hlbWUoYmVnaW4s
IHBvc2l0aW9uLCBzY2hlbWUpCi0gICAgICAgICAgICB8fCAhc2tpcEV4YWN0bHkocG9zaXRpb24s
IGVuZCwgJzonKQotICAgICAgICAgICAgfHwgIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICcv
JykKLSAgICAgICAgICAgIHx8ICFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5kLCAnLycpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBiZWdpbkhvc3QgPSBwb3NpdGlvbjsKLSAg
ICAgICAgc2tpcFV0aWwocG9zaXRpb24sIGVuZCwgJzonKTsKKyAgICBpZiAoKnBvc2l0aW9uID09
ICc6JykgeworICAgICAgICBpZiAoZW5kIC0gcG9zaXRpb24gPT0gMSkgeworICAgICAgICAgICAg
Ly8gc2NoZW1lOgorICAgICAgICAgICAgLy8gICAgICAgXgorICAgICAgICAgICAgaWYgKCFwYXJz
ZVNjaGVtZShiZWdpbiwgcG9zaXRpb24sIHNjaGVtZSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAocG9zaXRpb25bMV0gPT0gJy8nKSB7CisgICAgICAgICAgICAvLyBzY2hlbWU6Ly9ob3N0IHx8
IHNjaGVtZTovLworICAgICAgICAgICAgLy8gICAgICAgXiAgICAgICAgICAgICAgICBeCisgICAg
ICAgICAgICBpZiAoIXBhcnNlU2NoZW1lKGJlZ2luLCBwb3NpdGlvbiwgc2NoZW1lKQorICAgICAg
ICAgICAgICAgIHx8ICFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5kLCAnOicpCisgICAgICAgICAg
ICAgICAgfHwgIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICcvJykKKyAgICAgICAgICAgICAg
ICB8fCAhc2tpcEV4YWN0bHkocG9zaXRpb24sIGVuZCwgJy8nKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAocG9zaXRpb24gPT0gZW5kKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgYmVnaW5Ib3N0ID0gcG9zaXRpb247Cisg
ICAgICAgICAgICBza2lwV2hpbGU8aXNOb3RDb2xvbk9yU2xhc2g+KHBvc2l0aW9uLCBlbmQpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCpwb3NpdGlvbiA9PSAnOicpIHsKKyAgICAgICAgICAg
IC8vIGhvc3Q6cG9ydCB8fCBzY2hlbWU6Ly9ob3N0OnBvcnQKKyAgICAgICAgICAgIC8vICAgICBe
ICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgYmVnaW5Qb3J0ID0gcG9zaXRpb247
CisgICAgICAgICAgICBza2lwV2hpbGU8aXNOb3RDb2xvbk9yU2xhc2g+KHBvc2l0aW9uLCBlbmQp
OworICAgICAgICB9CiAgICAgfQorICAgIAorICAgIGlmICgqcG9zaXRpb24gPT0gJy8nKSB7Cisg
ICAgICAgIC8vIHNjaGVtZTovL2hvc3QvcGF0aCB8fCBzY2hlbWU6Ly9ob3N0OnBvcnQvcGF0aAor
ICAgICAgICAvLyAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAg
ICAgICBpZiAocG9zaXRpb24gPT0gYmVnaW5Ib3N0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKHBvc2l0aW9uID09IGJlZ2luSG9zdCkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBiZWdpblBhdGggPSBwb3NpdGlvbjsKKyAgICB9CiAKLSAgICBpZiAoIXBhcnNl
SG9zdChiZWdpbkhvc3QsIHBvc2l0aW9uLCBob3N0LCBob3N0SGFzV2lsZGNhcmQpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGJlZ2luUG9ydCkgeworICAgICAgICBpZiAoIXBhcnNl
SG9zdChiZWdpbkhvc3QsIGJlZ2luUG9ydCwgaG9zdCwgaG9zdEhhc1dpbGRjYXJkKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChwb3NpdGlvbiA9PSBlbmQpIHsKKyAgICAg
ICAgaWYgKCFiZWdpblBhdGgpCisgICAgICAgICAgICBiZWdpblBhdGggPSBlbmQ7CisgICAgICAg
IGlmICghcGFyc2VQb3J0KGJlZ2luUG9ydCwgYmVnaW5QYXRoLCBwb3J0LCBwb3J0SGFzV2lsZGNh
cmQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlm
ICghcGFyc2VIb3N0KGJlZ2luSG9zdCwgYmVnaW5QYXRoLCBob3N0LCBob3N0SGFzV2lsZGNhcmQp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBwb3J0ID0gMDsKLSAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgaWYgKCFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5k
LCAnOicpKQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLQotICAgIGlmICghcGFyc2VQ
b3J0KHBvc2l0aW9uLCBlbmQsIHBvcnQsIHBvcnRIYXNXaWxkY2FyZCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoYmVnaW5QYXRoICYmIGJlZ2luUGF0aCAhPSBlbmQpIHsKKyAgICAg
ICAgaWYgKCFwYXJzZVBhdGgoYmVnaW5QYXRoLCBlbmQsIHBhdGgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDExLDYgKzQ1NSwx
OSBAQCBib29sIENTUFNvdXJjZUxpc3Q6OnBhcnNlSG9zdChjb25zdCBVQ2hhciogYmVnaW4sIGNv
bnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgaG9zdAogICAgIHJldHVybiB0cnVlOwogfQogCisvLyBG
SVhNRTogRGVhbCB3aXRoIGFuIGFjdHVhbCBwYXRoLiBUaGlzIGp1c3Qgc3Vja3MgdXAgZXZlcnl0
aGluZyB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuCitib29sIENTUFNvdXJjZUxpc3Q6OnBhcnNl
UGF0aChjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgcGF0aCkK
K3sKKyAgICBBU1NFUlQoYmVnaW4gPD0gZW5kKTsKKyAgICBBU1NFUlQoIXBhdGgpOworCisgICAg
aWYgKGJlZ2luID09IGVuZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcGF0aCA9IFN0
cmluZyhiZWdpbiwgZW5kIC0gYmVnaW4pOworICAgIHJldHVybiB0cnVlOworfQorCiAvLyBwb3J0
ICAgICAgICAgICAgICA9ICI6IiAoIDEqRElHSVQgLyAiKiIgKQogLy8KIGJvb2wgQ1NQU291cmNl
TGlzdDo6cGFyc2VQb3J0KGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgaW50
JiBwb3J0LCBib29sJiBwb3J0SGFzV2lsZGNhcmQpCkBAIC00MTksNiArNDc2LDkgQEAgYm9vbCBD
U1BTb3VyY2VMaXN0OjpwYXJzZVBvcnQoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciog
ZW5kLCBpbnQmIHBvcnQsIGIKICAgICBBU1NFUlQoIXBvcnQpOwogICAgIEFTU0VSVCghcG9ydEhh
c1dpbGRjYXJkKTsKIAorICAgIGlmICghc2tpcEV4YWN0bHkoYmVnaW4sIGVuZCwgJzonKSkKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKICAgICBpZiAoYmVnaW4gPT0gZW5kKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMWYyZTNjYzA1YzViMmUyOGE2MjNjNDBlMDc5
Y2UyNWM5Mzg0NjNhLi4yMDBjOTM2NjAxMTA0MWVjMjdhMzY0YWIzYzM1MTg5M2QyYTM2YmI0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTYgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzaG91bGQgc3VwcG9y
dCBwYXRocy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg5MjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1w
YXJzaW5nLTA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wNS5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wNi0xMiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIGVuYWJsZSBMRUdBQ1lfV0VCS0lUX0JMT0JfQlVJ
TERFUiBmbGFnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Nv
dXJjZS1saXN0LXBhcnNpbmctMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZTZhYzNhY2Y0
NWIxYzBjMjI4MDc4ZTc1NGE3OThlNGNkZmI1NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlz
dC1wYXJzaW5nLTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgwIEBACitDT05TT0xFIE1FU1NB
R0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgc2NyaXB0ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3JpcHQuanMnIGJlY2F1c2Ug
aXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3Rp
dmU6ICJzY3JpcHQtc3JjIDEyNy4wLjAuMTo4MDAwLyIuCisKK0NPTlNPTEUgTUVTU0FHRTogUmVm
dXNlZCB0byBsb2FkIHRoZSBzY3JpcHQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9s
YXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNj
cmlwdC1zcmMgMTI3LjAuMC4xLyIuCisKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2Fk
IHRoZSBzY3JpcHQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9s
bG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgMTI3
LjAuMC4xOiovIi4KKworQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGxvYWQgdGhlIHNjcmlw
dCAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9y
ZXNvdXJjZXMvc2NyaXB0LmpzJyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyBodHRwOi8vMTI3LjAu
MC4xLyIuCisKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBzY3JpcHQgJ2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3Vy
Y2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMTo4
MDAwLyIuCisKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBzY3JpcHQgJ2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3Vy
Y2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgMTI3LjAuMC4xOjgwMDAvcGF0
aCIuCisKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBzY3JpcHQgJ2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2Vz
L3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgMTI3LjAuMC4xL3BhdGgiLgorCitD
T05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgc2NyaXB0ICdodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3JpcHQu
anMnIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjIDEyNy4wLjAuMToqL3BhdGgiLgorCitDT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgc2NyaXB0ICdodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3JpcHQuanMnIGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBk
aXJlY3RpdmU6ICJzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjEvcGF0aCIuCisKK0NPTlNPTEUg
TUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBzY3JpcHQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVj
YXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRp
cmVjdGl2ZTogInNjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3BhdGgiLgorCitDT05T
T0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgc2NyaXB0ICdodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3JpcHQuanMn
IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6Ki9wYXRoIi4KKworUGF0
aHMgc2hvdWxkIGJlIGlnbm9yZWQgd2hlbiBldmFsdWF0aW5nIHNvdXJjZXMuCisKKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0t
CitGQUlMCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+
LS0+JworLS0tLS0tLS0KK0ZBSUwKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTItLT4tLT4nCistLS0tLS0tLQorRkFJTAorCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0tPicKKy0tLS0tLS0tCitGQUlMCisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU0LS0+LS0+JworLS0tLS0tLS0K
K0ZBSUwKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTUtLT4t
LT4nCistLS0tLS0tLQorRkFJTAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lNi0tPi0tPicKKy0tLS0tLS0tCitGQUlMCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZVBhdGggLy88IS0tZnJhbWU3LS0+LS0+JworLS0tLS0tLS0KK0ZBSUwKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTgtLT4tLT4nCistLS0tLS0tLQor
RkFJTAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lOS0tPi0t
PicKKy0tLS0tLS0tCitGQUlMCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUxMC0tPi0tPicKKy0tLS0tLS0tCitGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1w
YXJzaW5nLTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc4
MTJiMjcyYjcyZmMyZjk2ZTkzNDA1Y2M5ZDZkZTMyZDJhYjFhZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Nv
dXJjZS1saXN0LXBhcnNpbmctMDUuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0ncmVzb3VyY2VzL211bHRpcGxlLWlmcmFt
ZS10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgdGVzdHMgPSBbCisgICAgWyd5ZXMn
LCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAwMC8nLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAor
ICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xLycsICdyZXNvdXJjZXMvc2NyaXB0Lmpz
J10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6Ki8nLCAncmVzb3VyY2VzL3Nj
cmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMS8nLCAn
cmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwLycsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2Ny
aXB0LXNyYyAxMjcuMC4wLjE6ODAwMC9wYXRoJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAg
ICBbJ3llcycsICdzY3JpcHQtc3JjIDEyNy4wLjAuMS9wYXRoJywgJ3Jlc291cmNlcy9zY3JpcHQu
anMnXSwKKyAgICBbJ3llcycsICdzY3JpcHQtc3JjIDEyNy4wLjAuMToqL3BhdGgnLCAncmVzb3Vy
Y2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAu
MS9wYXRoJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAgICBbJ3llcycsICdzY3JpcHQtc3Jj
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wYXRoJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAg
ICBbJ3llcycsICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6Ki9wYXRoJywgJ3Jlc291cmNl
cy9zY3JpcHQuanMnXSwKK107Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKyAgPHA+CisgICAgUGF0aHMgc2hvdWxkIGJlIGlnbm9yZWQgd2hlbiBldmFsdWF0aW5n
IHNvdXJjZXMuCisgIDwvcD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147982</attachid>
            <date>2012-06-16 12:47:44 -0700</date>
            <delta_ts>2012-06-16 12:50:08 -0700</delta_ts>
            <desc>abarth feedback.</desc>
            <filename>bug-89281-20120616214742.patch</filename>
            <type>text/plain</type>
            <size>14703</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I4NmVjYjU0ZjU2Y2U1
OGE4OWM4ODBmZWY0ODE3NjIzZTUyYThiYS4uMTdhYmU3ZTZmOTg5N2JjOGI1MTVjMzE2M2Y4YWFj
NDY2ZDAzOWRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTE2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSWdub3JlIHBhdGhzIGluIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IHNvdXJjZXMgcmF0aGVyIHRoYW4gZmFpbGluZyB0byBwYXJz
ZSB0aGVtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODkyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biBzaG9ydDogYHNjcmlwdC1zcmMgaHR0cDovL2V4YW1wbGUuY29tL2Agc2hvdWxkIGFsbG93IHNj
cmlwdHMgZnJvbQorICAgICAgICBodHRwOi8vZXhhbXBsZS5jb20uIEN1cnJlbnRseSwgaXQgYWxs
b3dzIG5vIHNjcmlwdHMgYXQgYWxsLCBhcyB0aGUKKyAgICAgICAgdGVybWluYWwgYC9gIGlzbid0
IGFjY2VwdGVkIGFzIHBhcnQgb2YgYSBob3N0bmFtZS4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
anVzdHMgQ1NQU291cmNlTGlzdDo6cGFyc2VTb3VyY2UgdG8gYWNjZXB0IHBhdGhzIChhbmQKKyAg
ICAgICAgZGlzY2FyZCB0aGVtKS4gT25jZSB0aGlzIGxhbmRzLCB0aGUgbmV4dCBzdGVwIHdpbGwg
YmUgdG8ga2VlcCB0aGUKKyAgICAgICAgcGF0aCwgYW5kIHVzZSBpdCB3aGVuIGNvbXBhcmluZyBz
b3VyY2Ugb3JpZ2lucyBpbiB0aGUgdmFyaW91cworICAgICAgICBhbGxvd1hYWEZyb21Tb3VyY2Ug
bWV0aG9kcy4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wNS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJz
aW5nLTA2Lmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoK
KyAgICAgICAgKENTUFNvdXJjZUxpc3QpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1BTb3VyY2VMaXN0OjpwYXJzZVNvdXJjZSk6CisgICAgICAgICAgICBSZXdvcmtl
ZCB0aGlzIG1ldGhvZCBlbnRpcmVseSB0byBzdXBwb3J0IHBhdGhzLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NQU291cmNlTGlzdDo6cGFyc2VQYXRoKToKKyAgICAgICAgICAgIE1vcmUgb3IgbGVzcyBh
IG5vLW9wIGF0IHRoZSBtb21lbnQuCisgICAgICAgIChXZWJDb3JlOjpDU1BTb3VyY2VMaXN0Ojpw
YXJzZVBvcnQpOgorICAgICAgICAgICAgTW92ZWQgdGhlIGA6YCBhc3NlcnRpb24gaGVyZSBmcm9t
IHBhcnNlU291cmNlLgorCiAyMDEyLTA2LTE1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIwMjgw
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4
IDdkYWE5YTlhODY0YjE3OThiYTU1MzM5NDgzYWE4NDQyZDBhZTg4NDEuLmY4NzU3ZDBjY2JkZDFm
NTAyZGFmOGQyNmI1MTk5Y2U5N2NkMTcyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTc3LDYgKzc3LDExIEBAIGJvb2wgaXNOb3RBU0NJ
SVNwYWNlKFVDaGFyIGMpCiAgICAgcmV0dXJuICFpc0FTQ0lJU3BhY2UoYyk7CiB9CiAKK2Jvb2wg
aXNOb3RDb2xvbk9yU2xhc2goVUNoYXIgYykKK3sKKyAgICByZXR1cm4gYyAhPSAnOicgJiYgYyAh
PSAnLyc7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAKIHN0YXRpYyBib29sIHNraXBFeGFjdGx5KGNv
bnN0IFVDaGFyKiYgcG9zaXRpb24sIGNvbnN0IFVDaGFyKiBlbmQsIFVDaGFyIGRlbGltaXRlcikK
QEAgLTk4LDcgKzEwMyw3IEBAIHN0YXRpYyBib29sIHNraXBFeGFjdGx5KGNvbnN0IFVDaGFyKiYg
cG9zaXRpb24sIGNvbnN0IFVDaGFyKiBlbmQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0
aWMgdm9pZCBza2lwVXRpbChjb25zdCBVQ2hhciomIHBvc2l0aW9uLCBjb25zdCBVQ2hhciogZW5k
LCBVQ2hhciBkZWxpbWl0ZXIpCitzdGF0aWMgdm9pZCBza2lwVW50aWwoY29uc3QgVUNoYXIqJiBw
b3NpdGlvbiwgY29uc3QgVUNoYXIqIGVuZCwgVUNoYXIgZGVsaW1pdGVyKQogewogICAgIHdoaWxl
IChwb3NpdGlvbiA8IGVuZCAmJiAqcG9zaXRpb24gIT0gZGVsaW1pdGVyKQogICAgICAgICArK3Bv
c2l0aW9uOwpAQCAtMTkxLDYgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXJzZVNjaGVt
ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgc2NoZW1lKTsK
ICAgICBib29sIHBhcnNlSG9zdChjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQs
IFN0cmluZyYgaG9zdCwgYm9vbCYgaG9zdEhhc1dpbGRjYXJkKTsKICAgICBib29sIHBhcnNlUG9y
dChjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIGludCYgcG9ydCwgYm9vbCYg
cG9ydEhhc1dpbGRjYXJkKTsKKyAgICBib29sIHBhcnNlUGF0aChjb25zdCBVQ2hhciogYmVnaW4s
IGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgcGF0aCk7CiAKICAgICB2b2lkIGFkZFNvdXJjZVNl
bGYoKTsKICAgICB2b2lkIGFkZFNvdXJjZVN0YXIoKTsKQEAgLTI2MywxMyArMjY5LDE1IEBAIHZv
aWQgQ1NQU291cmNlTGlzdDo6cGFyc2UoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciog
ZW5kKQogfQogCiAvLyBzb3VyY2UgICAgICAgICAgICA9IHNjaGVtZSAiOiIKLS8vICAgICAgICAg
ICAgICAgICAgIC8gKCBbIHNjaGVtZSAiOi8vIiBdIGhvc3QgWyBwb3J0IF0gKQorLy8gICAgICAg
ICAgICAgICAgICAgLyAoIFsgc2NoZW1lICI6Ly8iIF0gaG9zdCBbIHBvcnQgXSBbIHBhdGggXSAp
CiAvLyAgICAgICAgICAgICAgICAgICAvICInc2VsZiciCiAvLwogYm9vbCBDU1BTb3VyY2VMaXN0
OjpwYXJzZVNvdXJjZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyYgc2NoZW1lLCBTdHJpbmcmIGhvc3Qs
IGludCYgcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCYgaG9zdEhh
c1dpbGRjYXJkLCBib29sJiBwb3J0SGFzV2lsZGNhcmQpCiB7CisgICAgU3RyaW5nIHBhdGg7IC8v
IEZJWE1FOiBXZSdyZSBpZ25vcmluZyB0aGUgcGF0aCBjb21wb25lbnQgZm9yIG5vdy4KKwogICAg
IGlmIChiZWdpbiA9PSBlbmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjk0LDUyICsz
MDIsODAgQEAgYm9vbCBDU1BTb3VyY2VMaXN0OjpwYXJzZVNvdXJjZShjb25zdCBVQ2hhciogYmVn
aW4sIGNvbnN0IFVDaGFyKiBlbmQsCiAgICAgfQogCiAgICAgY29uc3QgVUNoYXIqIHBvc2l0aW9u
ID0gYmVnaW47Ci0KICAgICBjb25zdCBVQ2hhciogYmVnaW5Ib3N0ID0gYmVnaW47Ci0gICAgc2tp
cFV0aWwocG9zaXRpb24sIGVuZCwgJzonKTsKKyAgICBjb25zdCBVQ2hhciogYmVnaW5QYXRoID0g
ZW5kOworICAgIGNvbnN0IFVDaGFyKiBiZWdpblBvcnQgPSAwOworCisgICAgc2tpcFdoaWxlPGlz
Tm90Q29sb25PclNsYXNoPihwb3NpdGlvbiwgZW5kKTsKIAogICAgIGlmIChwb3NpdGlvbiA9PSBl
bmQpIHsKLSAgICAgICAgLy8gVGhpcyBtdXN0IGJlIGEgaG9zdC1vbmx5IHNvdXJjZS4KLSAgICAg
ICAgaWYgKCFwYXJzZUhvc3QoYmVnaW5Ib3N0LCBwb3NpdGlvbiwgaG9zdCwgaG9zdEhhc1dpbGRj
YXJkKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIC8vIGhvc3QKKyAgICAgICAgLy8gICAgIF4KKyAgICAgICAgcmV0dXJuIHBhcnNlSG9z
dChiZWdpbkhvc3QsIHBvc2l0aW9uLCBob3N0LCBob3N0SGFzV2lsZGNhcmQpOwogICAgIH0KIAot
ICAgIGlmIChlbmQgLSBwb3NpdGlvbiA9PSAxKSB7Ci0gICAgICAgIEFTU0VSVCgqcG9zaXRpb24g
PT0gJzonKTsKLSAgICAgICAgLy8gVGhpcyBtdXN0IGJlIGEgc2NoZW1lLW9ubHkgc291cmNlLgot
ICAgICAgICBpZiAoIXBhcnNlU2NoZW1lKGJlZ2luLCBwb3NpdGlvbiwgc2NoZW1lKSkKKyAgICBp
ZiAoKnBvc2l0aW9uID09ICcvJykgeworICAgICAgICAvLyBob3N0L3BhdGggfHwgaG9zdC8gfHwg
LworICAgICAgICAvLyAgICAgXiAgICAgICAgICAgIF4gICAgXgorICAgICAgICBpZiAoIXBhcnNl
SG9zdChiZWdpbkhvc3QsIHBvc2l0aW9uLCBob3N0LCBob3N0SGFzV2lsZGNhcmQpCisgICAgICAg
ICAgICB8fCAhcGFyc2VQYXRoKHBvc2l0aW9uLCBlbmQsIHBhdGgpCisgICAgICAgICAgICB8fCBw
b3NpdGlvbiAhPSBlbmQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIEFTU0VSVChlbmQgLSBwb3NpdGlvbiA+PSAyKTsKLSAgICBp
ZiAocG9zaXRpb25bMV0gPT0gJy8nKSB7Ci0gICAgICAgIGlmICghcGFyc2VTY2hlbWUoYmVnaW4s
IHBvc2l0aW9uLCBzY2hlbWUpCi0gICAgICAgICAgICB8fCAhc2tpcEV4YWN0bHkocG9zaXRpb24s
IGVuZCwgJzonKQotICAgICAgICAgICAgfHwgIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICcv
JykKLSAgICAgICAgICAgIHx8ICFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5kLCAnLycpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBiZWdpbkhvc3QgPSBwb3NpdGlvbjsKLSAg
ICAgICAgc2tpcFV0aWwocG9zaXRpb24sIGVuZCwgJzonKTsKKyAgICBpZiAoKnBvc2l0aW9uID09
ICc6JykgeworICAgICAgICBpZiAoZW5kIC0gcG9zaXRpb24gPT0gMSkgeworICAgICAgICAgICAg
Ly8gc2NoZW1lOgorICAgICAgICAgICAgLy8gICAgICAgXgorICAgICAgICAgICAgcmV0dXJuIHBh
cnNlU2NoZW1lKGJlZ2luLCBwb3NpdGlvbiwgc2NoZW1lKTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChwb3NpdGlvblsxXSA9PSAnLycpIHsKKyAgICAgICAgICAgIC8vIHNjaGVtZTovL2hvc3Qg
fHwgc2NoZW1lOi8vCisgICAgICAgICAgICAvLyAgICAgICBeICAgICAgICAgICAgICAgIF4KKyAg
ICAgICAgICAgIGlmICghcGFyc2VTY2hlbWUoYmVnaW4sIHBvc2l0aW9uLCBzY2hlbWUpCisgICAg
ICAgICAgICAgICAgfHwgIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICc6JykKKyAgICAgICAg
ICAgICAgICB8fCAhc2tpcEV4YWN0bHkocG9zaXRpb24sIGVuZCwgJy8nKQorICAgICAgICAgICAg
ICAgIHx8ICFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5kLCAnLycpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBlbmQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBiZWdpbkhvc3QgPSBwb3NpdGlvbjsK
KyAgICAgICAgICAgIHNraXBXaGlsZTxpc05vdENvbG9uT3JTbGFzaD4ocG9zaXRpb24sIGVuZCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoKnBvc2l0aW9uID09ICc6JykgeworICAgICAgICAg
ICAgLy8gaG9zdDpwb3J0IHx8IHNjaGVtZTovL2hvc3Q6cG9ydAorICAgICAgICAgICAgLy8gICAg
IF4gICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICBiZWdpblBvcnQgPSBwb3NpdGlv
bjsKKyAgICAgICAgICAgIHNraXBVbnRpbChwb3NpdGlvbiwgZW5kLCAnLycpOworICAgICAgICB9
CiAgICAgfQorICAgIAorICAgIGlmICgqcG9zaXRpb24gPT0gJy8nKSB7CisgICAgICAgIC8vIHNj
aGVtZTovL2hvc3QvcGF0aCB8fCBzY2hlbWU6Ly9ob3N0OnBvcnQvcGF0aAorICAgICAgICAvLyAg
ICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICBpZiAocG9z
aXRpb24gPT0gYmVnaW5Ib3N0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KHBvc2l0aW9uID09IGJlZ2luSG9zdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBi
ZWdpblBhdGggPSBwb3NpdGlvbjsKKyAgICB9CiAKLSAgICBpZiAoIXBhcnNlSG9zdChiZWdpbkhv
c3QsIHBvc2l0aW9uLCBob3N0LCBob3N0SGFzV2lsZGNhcmQpKQorICAgIGlmICghcGFyc2VIb3N0
KGJlZ2luSG9zdCwgYmVnaW5Qb3J0ID8gYmVnaW5Qb3J0IDogYmVnaW5QYXRoLCBob3N0LCBob3N0
SGFzV2lsZGNhcmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocG9zaXRpb24g
PT0gZW5kKSB7CisgICAgaWYgKGJlZ2luUG9ydCkgeworICAgICAgICBpZiAoIXBhcnNlUG9ydChi
ZWdpblBvcnQsIGJlZ2luUGF0aCwgcG9ydCwgcG9ydEhhc1dpbGRjYXJkKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgewogICAgICAgICBwb3J0ID0gMDsKLSAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgaWYgKCFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5k
LCAnOicpKQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLQotICAgIGlmICghcGFyc2VQ
b3J0KHBvc2l0aW9uLCBlbmQsIHBvcnQsIHBvcnRIYXNXaWxkY2FyZCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoYmVnaW5QYXRoICE9IGVuZCkgeworICAgICAgICBpZiAoIXBhcnNl
UGF0aChiZWdpblBhdGgsIGVuZCwgcGF0aCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00MTEsNiArNDQ3LDE5IEBAIGJvb2wgQ1NQ
U291cmNlTGlzdDo6cGFyc2VIb3N0KGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVu
ZCwgU3RyaW5nJiBob3N0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIEZJWE1FOiBEZWFsIHdp
dGggYW4gYWN0dWFsIHBhdGguIFRoaXMganVzdCBzdWNrcyB1cCBldmVyeXRoaW5nIHRvIHRoZSBl
bmQgb2YgdGhlIHN0cmluZy4KK2Jvb2wgQ1NQU291cmNlTGlzdDo6cGFyc2VQYXRoKGNvbnN0IFVD
aGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5nJiBwYXRoKQoreworICAgIEFTU0VS
VChiZWdpbiA8PSBlbmQpOworICAgIEFTU0VSVChwYXRoLmlzRW1wdHkoKSk7CisKKyAgICBpZiAo
YmVnaW4gPT0gZW5kKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBwYXRoID0gU3RyaW5n
KGJlZ2luLCBlbmQgLSBiZWdpbik7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIC8vIHBvcnQgICAg
ICAgICAgICAgID0gIjoiICggMSpESUdJVCAvICIqIiApCiAvLwogYm9vbCBDU1BTb3VyY2VMaXN0
OjpwYXJzZVBvcnQoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBpbnQmIHBv
cnQsIGJvb2wmIHBvcnRIYXNXaWxkY2FyZCkKQEAgLTQxOSw2ICs0NjgsOSBAQCBib29sIENTUFNv
dXJjZUxpc3Q6OnBhcnNlUG9ydChjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQs
IGludCYgcG9ydCwgYgogICAgIEFTU0VSVCghcG9ydCk7CiAgICAgQVNTRVJUKCFwb3J0SGFzV2ls
ZGNhcmQpOwogCisgICAgaWYgKCFza2lwRXhhY3RseShiZWdpbiwgZW5kLCAnOicpKQorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKwogICAgIGlmIChiZWdpbiA9PSBlbmQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIApAQCAtNzY3LDcgKzgxOSw3IEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlz
dDo6cGFyc2UoY29uc3QgU3RyaW5nJiBwb2xpY3kpCiAKICAgICB3aGlsZSAocG9zaXRpb24gPCBl
bmQpIHsKICAgICAgICAgY29uc3QgVUNoYXIqIGRpcmVjdGl2ZUJlZ2luID0gcG9zaXRpb247Ci0g
ICAgICAgIHNraXBVdGlsKHBvc2l0aW9uLCBlbmQsICc7Jyk7CisgICAgICAgIHNraXBVbnRpbChw
b3NpdGlvbiwgZW5kLCAnOycpOwogCiAgICAgICAgIFN0cmluZyBuYW1lLCB2YWx1ZTsKICAgICAg
ICAgaWYgKHBhcnNlRGlyZWN0aXZlKGRpcmVjdGl2ZUJlZ2luLCBwb3NpdGlvbiwgbmFtZSwgdmFs
dWUpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTdkYjUzOTZlMmU5ZDY0ODVmNTBkYmFmYWEwYTMwYzE0ZGFlZTM1Ni4u
YzU0ZjE2NTk2MTVlZTk0MjAyODYwM2RjNGZhYWI1YzY2MGU3OGZhNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTA2LTE2ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSWdub3JlIHBhdGhzIGluIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHNvdXJjZXMgcmF0
aGVyIHRoYW4gZmFpbGluZyB0byBwYXJzZSB0aGVtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2Ut
bGlzdC1wYXJzaW5nLTA1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDYtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA2Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA2LTE2
ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBV
bnJldmlld2VkIHdlZWtlbmQgZ2FyZGVuaW5nLCBza2lwIGEgbmV3IGZhaWxpbmcgdGVzdC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFy
c2luZy0wNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZjYTY5NDFmNjM2OTM4ZDkwNTY2OTkz
M2Y4YjUwNTc5YzkwMjZjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25p
emVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAncGF0aHdpdGhhc2VtaWNvbG9u
Jy4KKworUGF0aHMgc2hvdWxkIGJlIGlnbm9yZWQgd2hlbiBldmFsdWF0aW5nIHNvdXJjZXMuCisK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicK
Ky0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0tPicKKy0tLS0tLS0tCitQQVNT
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU0LS0+LS0+Jwor
LS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTUtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lNi0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU3LS0+LS0+JworLS0tLS0tLS0KK1BBU1MK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTgtLT4tLT4nCist
LS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lOS0tPi0tPicKKy0tLS0tLS0tCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5n
LTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk3ZDg2ZTFk
YjVkZGU2NjM5MDgyMjNhZWQwMDg5YzYyMGJiYmViMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1s
aXN0LXBhcnNpbmctMDUuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0ncmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgdGVzdHMgPSBbCisgICAgWyd5ZXMnLCAnc2Ny
aXB0LXNyYyAxMjcuMC4wLjE6Ki8nLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVz
JywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOiovcGF0aCcsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10s
CisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6Ki9wYXRoP3F1ZXJ5PXN0cmluZycs
ICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4w
LjE6Ki9wYXRoI2FuY2hvcicsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAn
c2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAwMC8nLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAg
IFsneWVzJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOjgwMDAvcGF0aCcsICdyZXNvdXJjZXMvc2Ny
aXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAwMC9wYXRoP3F1
ZXJ5PXN0cmluZycsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0
LXNyYyAxMjcuMC4wLjE6ODAwMC9wYXRoI2FuY2hvcicsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10s
CisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAwMC90aGlzaXNhO3BhdGh3aXRo
YXNlbWljb2xvbicsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0
LXNyYyAxMjcuMC4wLjE6ODAwMC90aGlzIGlzIGEgcGF0aCB3aXRoIHNwYWNlcycsICdyZXNvdXJj
ZXMvc2NyaXB0LmpzJ10sCitdOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QoKSI+CisgIDxwPgorICAgIFBhdGhzIHNob3VsZCBiZSBpZ25vcmVkIHdoZW4gZXZhbHVhdGlu
ZyBzb3VyY2VzLgorICA8L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA2LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
Y2E2OTQxZjYzNjkzOGQ5MDU2Njk5MzNmOGI1MDU3OWM5MDI2YzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9z
b3VyY2UtbGlzdC1wYXJzaW5nLTA2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU1IEBACitDT05T
T0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJ3BhdGh3aXRoYXNlbWljb2xvbicuCisKK1BhdGhzIHNob3VsZCBiZSBpZ25vcmVkIHdoZW4g
ZXZhbHVhdGluZyBzb3VyY2VzLgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUyLS0+LS0+JworLS0tLS0t
LS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTMt
LT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRo
IC8vPCEtLWZyYW1lNC0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU1LS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTYtLT4tLT4nCistLS0tLS0t
LQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNy0t
Pi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWU4LS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTktLT4tLT4nCistLS0tLS0tLQorUEFTUwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvc291cmNlLWxpc3QtcGFyc2luZy0wNi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wNi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQzMTQyNTJlZTEzMjZiYzUyNzFlY2YxYzY5MGRlYjlkOWFjNTVlNjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA2Lmh0bWwKQEAgLTAsMCArMSwyMyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9J3Jlc291cmNl
cy9tdWx0aXBsZS1pZnJhbWUtdGVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHRlc3Rz
ID0gWworICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMToqLycsICdyZXNv
dXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyBodHRwOi8vMTI3LjAu
MC4xOiovcGF0aCcsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0
LXNyYyBodHRwOi8vMTI3LjAuMC4xOiovcGF0aD9xdWVyeT1zdHJpbmcnLCAncmVzb3VyY2VzL3Nj
cmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMToqL3Bh
dGgjYW5jaG9yJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAgICBbJ3llcycsICdzY3JpcHQt
c3JjIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8nLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAg
IFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3BhdGgnLCAncmVzb3Vy
Y2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3BhdGg/cXVlcnk9c3RyaW5nJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAgICBb
J3llcycsICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wYXRoI2FuY2hvcicsICdy
ZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvdGhpc2lzYTtwYXRod2l0aGFzZW1pY29sb24nLCAncmVzb3VyY2VzL3Njcmlw
dC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Ro
aXMgaXMgYSBwYXRoIHdpdGggc3BhY2VzJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKK107Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKyAgPHA+CisgICAgUGF0
aHMgc2hvdWxkIGJlIGlnbm9yZWQgd2hlbiBldmFsdWF0aW5nIHNvdXJjZXMuCisgIDwvcD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147983</attachid>
            <date>2012-06-16 12:50:17 -0700</date>
            <delta_ts>2012-06-16 17:36:03 -0700</delta_ts>
            <desc>adding abarth as reviewer.</desc>
            <filename>bug-89281-20120616215015.patch</filename>
            <type>text/plain</type>
            <size>14695</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I4NmVjYjU0ZjU2Y2U1
OGE4OWM4ODBmZWY0ODE3NjIzZTUyYThiYS4uMzk3ZjBhOTkyNWE2Mjg4OWQ5ZTIwMjFkMjQ4Zjc2
OTk2M2JlZTMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTE2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSWdub3JlIHBhdGhzIGluIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IHNvdXJjZXMgcmF0aGVyIHRoYW4gZmFpbGluZyB0byBwYXJz
ZSB0aGVtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODkyODEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEluIHNo
b3J0OiBgc2NyaXB0LXNyYyBodHRwOi8vZXhhbXBsZS5jb20vYCBzaG91bGQgYWxsb3cgc2NyaXB0
cyBmcm9tCisgICAgICAgIGh0dHA6Ly9leGFtcGxlLmNvbS4gQ3VycmVudGx5LCBpdCBhbGxvd3Mg
bm8gc2NyaXB0cyBhdCBhbGwsIGFzIHRoZQorICAgICAgICB0ZXJtaW5hbCBgL2AgaXNuJ3QgYWNj
ZXB0ZWQgYXMgcGFydCBvZiBhIGhvc3RuYW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0
cyBDU1BTb3VyY2VMaXN0OjpwYXJzZVNvdXJjZSB0byBhY2NlcHQgcGF0aHMgKGFuZAorICAgICAg
ICBkaXNjYXJkIHRoZW0pLiBPbmNlIHRoaXMgbGFuZHMsIHRoZSBuZXh0IHN0ZXAgd2lsbCBiZSB0
byBrZWVwIHRoZQorICAgICAgICBwYXRoLCBhbmQgdXNlIGl0IHdoZW4gY29tcGFyaW5nIHNvdXJj
ZSBvcmlnaW5zIGluIHRoZSB2YXJpb3VzCisgICAgICAgIGFsbG93WFhYRnJvbVNvdXJjZSBtZXRo
b2RzLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA1Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmct
MDYuaHRtbAorCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAg
ICAgICAoQ1NQU291cmNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTUFNvdXJjZUxpc3Q6OnBhcnNlU291cmNlKToKKyAgICAgICAgICAgIFJld29ya2VkIHRo
aXMgbWV0aG9kIGVudGlyZWx5IHRvIHN1cHBvcnQgcGF0aHMuCisgICAgICAgIChXZWJDb3JlOjpD
U1BTb3VyY2VMaXN0OjpwYXJzZVBhdGgpOgorICAgICAgICAgICAgTW9yZSBvciBsZXNzIGEgbm8t
b3AgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkNTUFNvdXJjZUxpc3Q6OnBhcnNl
UG9ydCk6CisgICAgICAgICAgICBNb3ZlZCB0aGUgYDpgIGFzc2VydGlvbiBoZXJlIGZyb20gcGFy
c2VTb3VyY2UuCisKIDIwMTItMDYtMTUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjAyODAuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggN2Rh
YTlhOWE4NjRiMTc5OGJhNTUzMzk0ODNhYTg0NDJkMGFlODg0MS4uZjg3NTdkMGNjYmRkMWY1MDJk
YWY4ZDI2YjUxOTljZTk3Y2QxNzJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNzcsNiArNzcsMTEgQEAgYm9vbCBpc05vdEFTQ0lJU3Bh
Y2UoVUNoYXIgYykKICAgICByZXR1cm4gIWlzQVNDSUlTcGFjZShjKTsKIH0KIAorYm9vbCBpc05v
dENvbG9uT3JTbGFzaChVQ2hhciBjKQoreworICAgIHJldHVybiBjICE9ICc6JyAmJiBjICE9ICcv
JzsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAogc3RhdGljIGJvb2wgc2tpcEV4YWN0bHkoY29uc3Qg
VUNoYXIqJiBwb3NpdGlvbiwgY29uc3QgVUNoYXIqIGVuZCwgVUNoYXIgZGVsaW1pdGVyKQpAQCAt
OTgsNyArMTAzLDcgQEAgc3RhdGljIGJvb2wgc2tpcEV4YWN0bHkoY29uc3QgVUNoYXIqJiBwb3Np
dGlvbiwgY29uc3QgVUNoYXIqIGVuZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2
b2lkIHNraXBVdGlsKGNvbnN0IFVDaGFyKiYgcG9zaXRpb24sIGNvbnN0IFVDaGFyKiBlbmQsIFVD
aGFyIGRlbGltaXRlcikKK3N0YXRpYyB2b2lkIHNraXBVbnRpbChjb25zdCBVQ2hhciomIHBvc2l0
aW9uLCBjb25zdCBVQ2hhciogZW5kLCBVQ2hhciBkZWxpbWl0ZXIpCiB7CiAgICAgd2hpbGUgKHBv
c2l0aW9uIDwgZW5kICYmICpwb3NpdGlvbiAhPSBkZWxpbWl0ZXIpCiAgICAgICAgICsrcG9zaXRp
b247CkBAIC0xOTEsNiArMTk2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBhcnNlU2NoZW1lKGNv
bnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5nJiBzY2hlbWUpOwogICAg
IGJvb2wgcGFyc2VIb3N0KGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgU3Ry
aW5nJiBob3N0LCBib29sJiBob3N0SGFzV2lsZGNhcmQpOwogICAgIGJvb2wgcGFyc2VQb3J0KGNv
bnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgaW50JiBwb3J0LCBib29sJiBwb3J0
SGFzV2lsZGNhcmQpOworICAgIGJvb2wgcGFyc2VQYXRoKGNvbnN0IFVDaGFyKiBiZWdpbiwgY29u
c3QgVUNoYXIqIGVuZCwgU3RyaW5nJiBwYXRoKTsKIAogICAgIHZvaWQgYWRkU291cmNlU2VsZigp
OwogICAgIHZvaWQgYWRkU291cmNlU3RhcigpOwpAQCAtMjYzLDEzICsyNjksMTUgQEAgdm9pZCBD
U1BTb3VyY2VMaXN0OjpwYXJzZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQp
CiB9CiAKIC8vIHNvdXJjZSAgICAgICAgICAgID0gc2NoZW1lICI6IgotLy8gICAgICAgICAgICAg
ICAgICAgLyAoIFsgc2NoZW1lICI6Ly8iIF0gaG9zdCBbIHBvcnQgXSApCisvLyAgICAgICAgICAg
ICAgICAgICAvICggWyBzY2hlbWUgIjovLyIgXSBob3N0IFsgcG9ydCBdIFsgcGF0aCBdICkKIC8v
ICAgICAgICAgICAgICAgICAgIC8gIidzZWxmJyIKIC8vCiBib29sIENTUFNvdXJjZUxpc3Q6OnBh
cnNlU291cmNlKGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nJiBzY2hlbWUsIFN0cmluZyYgaG9zdCwgaW50
JiBwb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBob3N0SGFzV2ls
ZGNhcmQsIGJvb2wmIHBvcnRIYXNXaWxkY2FyZCkKIHsKKyAgICBTdHJpbmcgcGF0aDsgLy8gRklY
TUU6IFdlJ3JlIGlnbm9yaW5nIHRoZSBwYXRoIGNvbXBvbmVudCBmb3Igbm93LgorCiAgICAgaWYg
KGJlZ2luID09IGVuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yOTQsNTIgKzMwMiw4
MCBAQCBib29sIENTUFNvdXJjZUxpc3Q6OnBhcnNlU291cmNlKGNvbnN0IFVDaGFyKiBiZWdpbiwg
Y29uc3QgVUNoYXIqIGVuZCwKICAgICB9CiAKICAgICBjb25zdCBVQ2hhciogcG9zaXRpb24gPSBi
ZWdpbjsKLQogICAgIGNvbnN0IFVDaGFyKiBiZWdpbkhvc3QgPSBiZWdpbjsKLSAgICBza2lwVXRp
bChwb3NpdGlvbiwgZW5kLCAnOicpOworICAgIGNvbnN0IFVDaGFyKiBiZWdpblBhdGggPSBlbmQ7
CisgICAgY29uc3QgVUNoYXIqIGJlZ2luUG9ydCA9IDA7CisKKyAgICBza2lwV2hpbGU8aXNOb3RD
b2xvbk9yU2xhc2g+KHBvc2l0aW9uLCBlbmQpOwogCiAgICAgaWYgKHBvc2l0aW9uID09IGVuZCkg
ewotICAgICAgICAvLyBUaGlzIG11c3QgYmUgYSBob3N0LW9ubHkgc291cmNlLgotICAgICAgICBp
ZiAoIXBhcnNlSG9zdChiZWdpbkhvc3QsIHBvc2l0aW9uLCBob3N0LCBob3N0SGFzV2lsZGNhcmQp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgLy8gaG9zdAorICAgICAgICAvLyAgICAgXgorICAgICAgICByZXR1cm4gcGFyc2VIb3N0KGJl
Z2luSG9zdCwgcG9zaXRpb24sIGhvc3QsIGhvc3RIYXNXaWxkY2FyZCk7CiAgICAgfQogCi0gICAg
aWYgKGVuZCAtIHBvc2l0aW9uID09IDEpIHsKLSAgICAgICAgQVNTRVJUKCpwb3NpdGlvbiA9PSAn
OicpOwotICAgICAgICAvLyBUaGlzIG11c3QgYmUgYSBzY2hlbWUtb25seSBzb3VyY2UuCi0gICAg
ICAgIGlmICghcGFyc2VTY2hlbWUoYmVnaW4sIHBvc2l0aW9uLCBzY2hlbWUpKQorICAgIGlmICgq
cG9zaXRpb24gPT0gJy8nKSB7CisgICAgICAgIC8vIGhvc3QvcGF0aCB8fCBob3N0LyB8fCAvCisg
ICAgICAgIC8vICAgICBeICAgICAgICAgICAgXiAgICBeCisgICAgICAgIGlmICghcGFyc2VIb3N0
KGJlZ2luSG9zdCwgcG9zaXRpb24sIGhvc3QsIGhvc3RIYXNXaWxkY2FyZCkKKyAgICAgICAgICAg
IHx8ICFwYXJzZVBhdGgocG9zaXRpb24sIGVuZCwgcGF0aCkKKyAgICAgICAgICAgIHx8IHBvc2l0
aW9uICE9IGVuZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgQVNTRVJUKGVuZCAtIHBvc2l0aW9uID49IDIpOwotICAgIGlmIChw
b3NpdGlvblsxXSA9PSAnLycpIHsKLSAgICAgICAgaWYgKCFwYXJzZVNjaGVtZShiZWdpbiwgcG9z
aXRpb24sIHNjaGVtZSkKLSAgICAgICAgICAgIHx8ICFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5k
LCAnOicpCi0gICAgICAgICAgICB8fCAhc2tpcEV4YWN0bHkocG9zaXRpb24sIGVuZCwgJy8nKQot
ICAgICAgICAgICAgfHwgIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICcvJykpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGJlZ2luSG9zdCA9IHBvc2l0aW9uOwotICAgICAg
ICBza2lwVXRpbChwb3NpdGlvbiwgZW5kLCAnOicpOworICAgIGlmICgqcG9zaXRpb24gPT0gJzon
KSB7CisgICAgICAgIGlmIChlbmQgLSBwb3NpdGlvbiA9PSAxKSB7CisgICAgICAgICAgICAvLyBz
Y2hlbWU6CisgICAgICAgICAgICAvLyAgICAgICBeCisgICAgICAgICAgICByZXR1cm4gcGFyc2VT
Y2hlbWUoYmVnaW4sIHBvc2l0aW9uLCBzY2hlbWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHBvc2l0aW9uWzFdID09ICcvJykgeworICAgICAgICAgICAgLy8gc2NoZW1lOi8vaG9zdCB8fCBz
Y2hlbWU6Ly8KKyAgICAgICAgICAgIC8vICAgICAgIF4gICAgICAgICAgICAgICAgXgorICAgICAg
ICAgICAgaWYgKCFwYXJzZVNjaGVtZShiZWdpbiwgcG9zaXRpb24sIHNjaGVtZSkKKyAgICAgICAg
ICAgICAgICB8fCAhc2tpcEV4YWN0bHkocG9zaXRpb24sIGVuZCwgJzonKQorICAgICAgICAgICAg
ICAgIHx8ICFza2lwRXhhY3RseShwb3NpdGlvbiwgZW5kLCAnLycpCisgICAgICAgICAgICAgICAg
fHwgIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICcvJykpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKHBvc2l0aW9uID09IGVuZCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGJlZ2luSG9zdCA9IHBvc2l0aW9uOworICAg
ICAgICAgICAgc2tpcFdoaWxlPGlzTm90Q29sb25PclNsYXNoPihwb3NpdGlvbiwgZW5kKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICgqcG9zaXRpb24gPT0gJzonKSB7CisgICAgICAgICAgICAv
LyBob3N0OnBvcnQgfHwgc2NoZW1lOi8vaG9zdDpwb3J0CisgICAgICAgICAgICAvLyAgICAgXiAg
ICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgIGJlZ2luUG9ydCA9IHBvc2l0aW9uOwor
ICAgICAgICAgICAgc2tpcFVudGlsKHBvc2l0aW9uLCBlbmQsICcvJyk7CisgICAgICAgIH0KICAg
ICB9CisgICAgCisgICAgaWYgKCpwb3NpdGlvbiA9PSAnLycpIHsKKyAgICAgICAgLy8gc2NoZW1l
Oi8vaG9zdC9wYXRoIHx8IHNjaGVtZTovL2hvc3Q6cG9ydC9wYXRoCisgICAgICAgIC8vICAgICAg
ICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgIGlmIChwb3NpdGlv
biA9PSBiZWdpbkhvc3QpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocG9z
aXRpb24gPT0gYmVnaW5Ib3N0KQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJlZ2lu
UGF0aCA9IHBvc2l0aW9uOworICAgIH0KIAotICAgIGlmICghcGFyc2VIb3N0KGJlZ2luSG9zdCwg
cG9zaXRpb24sIGhvc3QsIGhvc3RIYXNXaWxkY2FyZCkpCisgICAgaWYgKCFwYXJzZUhvc3QoYmVn
aW5Ib3N0LCBiZWdpblBvcnQgPyBiZWdpblBvcnQgOiBiZWdpblBhdGgsIGhvc3QsIGhvc3RIYXNX
aWxkY2FyZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChwb3NpdGlvbiA9PSBl
bmQpIHsKKyAgICBpZiAoYmVnaW5Qb3J0KSB7CisgICAgICAgIGlmICghcGFyc2VQb3J0KGJlZ2lu
UG9ydCwgYmVnaW5QYXRoLCBwb3J0LCBwb3J0SGFzV2lsZGNhcmQpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CiAgICAgICAgIHBvcnQgPSAwOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIXNraXBFeGFjdGx5KHBvc2l0aW9uLCBlbmQsICc6
JykpCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgaWYgKCFwYXJzZVBvcnQo
cG9zaXRpb24sIGVuZCwgcG9ydCwgcG9ydEhhc1dpbGRjYXJkKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmIChiZWdpblBhdGggIT0gZW5kKSB7CisgICAgICAgIGlmICghcGFyc2VQYXRo
KGJlZ2luUGF0aCwgZW5kLCBwYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQxMSw2ICs0NDcsMTkgQEAgYm9vbCBDU1BTb3Vy
Y2VMaXN0OjpwYXJzZUhvc3QoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBT
dHJpbmcmIGhvc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLy8gRklYTUU6IERlYWwgd2l0aCBh
biBhY3R1YWwgcGF0aC4gVGhpcyBqdXN0IHN1Y2tzIHVwIGV2ZXJ5dGhpbmcgdG8gdGhlIGVuZCBv
ZiB0aGUgc3RyaW5nLgorYm9vbCBDU1BTb3VyY2VMaXN0OjpwYXJzZVBhdGgoY29uc3QgVUNoYXIq
IGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJUKGJl
Z2luIDw9IGVuZCk7CisgICAgQVNTRVJUKHBhdGguaXNFbXB0eSgpKTsKKworICAgIGlmIChiZWdp
biA9PSBlbmQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHBhdGggPSBTdHJpbmcoYmVn
aW4sIGVuZCAtIGJlZ2luKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogLy8gcG9ydCAgICAgICAg
ICAgICAgPSAiOiIgKCAxKkRJR0lUIC8gIioiICkKIC8vCiBib29sIENTUFNvdXJjZUxpc3Q6OnBh
cnNlUG9ydChjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIGludCYgcG9ydCwg
Ym9vbCYgcG9ydEhhc1dpbGRjYXJkKQpAQCAtNDE5LDYgKzQ2OCw5IEBAIGJvb2wgQ1NQU291cmNl
TGlzdDo6cGFyc2VQb3J0KGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgaW50
JiBwb3J0LCBiCiAgICAgQVNTRVJUKCFwb3J0KTsKICAgICBBU1NFUlQoIXBvcnRIYXNXaWxkY2Fy
ZCk7CiAKKyAgICBpZiAoIXNraXBFeGFjdGx5KGJlZ2luLCBlbmQsICc6JykpCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworCiAgICAgaWYgKGJlZ2luID09IGVuZCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCkBAIC03NjcsNyArODE5LDcgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpw
YXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKIAogICAgIHdoaWxlIChwb3NpdGlvbiA8IGVuZCkg
ewogICAgICAgICBjb25zdCBVQ2hhciogZGlyZWN0aXZlQmVnaW4gPSBwb3NpdGlvbjsKLSAgICAg
ICAgc2tpcFV0aWwocG9zaXRpb24sIGVuZCwgJzsnKTsKKyAgICAgICAgc2tpcFVudGlsKHBvc2l0
aW9uLCBlbmQsICc7Jyk7CiAKICAgICAgICAgU3RyaW5nIG5hbWUsIHZhbHVlOwogICAgICAgICBp
ZiAocGFyc2VEaXJlY3RpdmUoZGlyZWN0aXZlQmVnaW4sIHBvc2l0aW9uLCBuYW1lLCB2YWx1ZSkp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA1N2RiNTM5NmUyZTlkNjQ4NWY1MGRiYWZhYTBhMzBjMTRkYWVlMzU2Li5mN2Ex
MThmM2FhYjUzZDZkYzdkY2VmNDZkNWZmYTJkMDQwMTkyNzQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDYtMTYgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBJZ25vcmUgcGF0aHMgaW4gQ29udGVudCBTZWN1cml0eSBQb2xpY3kgc291cmNlcyByYXRoZXIg
dGhhbiBmYWlsaW5nIHRvIHBhcnNlIHRoZW0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFy
c2luZy0wNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA2LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c291cmNlLWxpc3QtcGFyc2luZy0wNi5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xNiAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdl
ZCB3ZWVrZW5kIGdhcmRlbmluZywgc2tpcCBhIG5ldyBmYWlsaW5nIHRlc3QuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9z
b3VyY2UtbGlzdC1wYXJzaW5nLTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2Y2E2OTQxZjYzNjkzOGQ5MDU2Njk5MzNmOGI1MDU3
OWM5MDI2YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJzaW5nLTA1LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDU1IEBACitDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250
ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3BhdGh3aXRoYXNlbWljb2xvbicuCisKK1Bh
dGhzIHNob3VsZCBiZSBpZ25vcmVkIHdoZW4gZXZhbHVhdGluZyBzb3VyY2VzLgorCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0t
LQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0t
Pi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUyLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTMtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNC0tPi0tPicKKy0tLS0tLS0t
CitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU1LS0+
LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTYtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNy0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU4LS0+LS0+JworLS0tLS0tLS0K
K1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTktLT4t
LT4nCistLS0tLS0tLQorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wNS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c291cmNlLWxpc3QtcGFyc2luZy0wNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5N2Q4NmUxZGI1ZGRlNjYz
OTA4MjIzYWVkMDA4OWM2MjBiYmJlYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zb3VyY2UtbGlzdC1wYXJz
aW5nLTA1Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9J3Jlc291cmNlcy9tdWx0aXBsZS1pZnJhbWUtdGVzdC5qcyc+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgordmFyIHRlc3RzID0gWworICAgIFsneWVzJywgJ3NjcmlwdC1zcmMg
MTI3LjAuMC4xOiovJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAgICBbJ3llcycsICdzY3Jp
cHQtc3JjIDEyNy4wLjAuMToqL3BhdGgnLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsn
eWVzJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOiovcGF0aD9xdWVyeT1zdHJpbmcnLCAncmVzb3Vy
Y2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOiovcGF0
aCNhbmNob3InLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1z
cmMgMTI3LjAuMC4xOjgwMDAvJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAgICBbJ3llcycs
ICdzY3JpcHQtc3JjIDEyNy4wLjAuMTo4MDAwL3BhdGgnLCAncmVzb3VyY2VzL3NjcmlwdC5qcydd
LAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOjgwMDAvcGF0aD9xdWVyeT1zdHJp
bmcnLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgMTI3
LjAuMC4xOjgwMDAvcGF0aCNhbmNob3InLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsn
eWVzJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOjgwMDAvdGhpc2lzYTtwYXRod2l0aGFzZW1pY29s
b24nLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgMTI3
LjAuMC4xOjgwMDAvdGhpcyBpcyBhIHBhdGggd2l0aCBzcGFjZXMnLCAncmVzb3VyY2VzL3Njcmlw
dC5qcyddLAorXTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgor
ICA8cD4KKyAgICBQYXRocyBzaG91bGQgYmUgaWdub3JlZCB3aGVuIGV2YWx1YXRpbmcgc291cmNl
cy4KKyAgPC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wNi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9z
b3VyY2UtbGlzdC1wYXJzaW5nLTA2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmNhNjk0MWY2
MzY5MzhkOTA1NjY5OTMzZjhiNTA1NzljOTAyNmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxp
c3QtcGFyc2luZy0wNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorQ09OU09MRSBNRVNT
QUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICdwYXRo
d2l0aGFzZW1pY29sb24nLgorCitQYXRocyBzaG91bGQgYmUgaWdub3JlZCB3aGVuIGV2YWx1YXRp
bmcgc291cmNlcy4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPicKKy0tLS0tLS0tCitQQVNT
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUzLS0+LS0+Jwor
LS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTQtLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lNS0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU2LS0+LS0+JworLS0tLS0tLS0KK1BBU1MK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTctLT4tLT4nCist
LS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lOC0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWU5LS0+LS0+JworLS0tLS0tLS0KK1BBU1MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJj
ZS1saXN0LXBhcnNpbmctMDYuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctMDYuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MzE0MjUyZWUxMzI2YmM1MjcxZWNmMWM2OTBkZWI5ZDlhYzU1ZTY4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy0wNi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSdyZXNvdXJjZXMvbXVsdGlw
bGUtaWZyYW1lLXRlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB0ZXN0cyA9IFsKKyAg
ICBbJ3llcycsICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6Ki8nLCAncmVzb3VyY2VzL3Nj
cmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMToqL3Bh
dGgnLCAncmVzb3VyY2VzL3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0
cDovLzEyNy4wLjAuMToqL3BhdGg/cXVlcnk9c3RyaW5nJywgJ3Jlc291cmNlcy9zY3JpcHQuanMn
XSwKKyAgICBbJ3llcycsICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6Ki9wYXRoI2FuY2hv
cicsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwKKyAgICBbJ3llcycs
ICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wYXRoJywgJ3Jlc291cmNlcy9zY3Jp
cHQuanMnXSwKKyAgICBbJ3llcycsICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9w
YXRoP3F1ZXJ5PXN0cmluZycsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCisgICAgWyd5ZXMnLCAn
c2NyaXB0LXNyYyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvcGF0aCNhbmNob3InLCAncmVzb3VyY2Vz
L3NjcmlwdC5qcyddLAorICAgIFsneWVzJywgJ3NjcmlwdC1zcmMgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3RoaXNpc2E7cGF0aHdpdGhhc2VtaWNvbG9uJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnXSwK
KyAgICBbJ3llcycsICdzY3JpcHQtc3JjIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90aGlzIGlzIGEg
cGF0aCB3aXRoIHNwYWNlcycsICdyZXNvdXJjZXMvc2NyaXB0LmpzJ10sCitdOworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisgIDxwPgorICAgIFBhdGhzIHNob3Vs
ZCBiZSBpZ25vcmVkIHdoZW4gZXZhbHVhdGluZyBzb3VyY2VzLgorICA8L3A+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>